Задача о переправе

Задача о переправе — это тип головоломки, в которой целью является перевоз объектов с одного берега реки на другой, обычно за наименьшее число рейсов. Сложность головоломки может возникать от ограничений, сколько и какие объекты могут быть переправлены за одну поездку, или сколько объектов могут быть надёжно оставлены вместе[1]. Условия могут несколько меняться, например, река заменяется мостом[1]. Самые ранние известные задачи о переправе через реку встречаются в рукописи Propositiones ad Acuendos Juvenes (Задачи для развития молодежи), авторство которой традиционно приписывается Алкуину. Самые ранние копии этой рукописи датируются IX веком. Она содержит три задачи о пересечении реки, включая в том числе задачу про лису, гуся и мешок бобов и задачу о ревнивых мужьях[2].

Головоломка «Волк, коза и капуста»
Головоломка «Задача о мосте и факеле».
Решения некоторых головоломок, представленные в виде графиков

Известные головоломки о переправе включают:

  • Головоломка «Лиса, гусь и мешок бобов», в которой фермер должен перевезти лису, гуся и мешок с бобами с одной стороны реки на другую в лодке, в которую помещаются только сам фермер и один объект, при ограничениях, что лиса не может оставаться наедине с гусем, а гусь не может оставаться наедине с мешком бобов. В аналогичной задаче объектами являются лиса, цыплёнок и мешок зерна или волк, коза и капуста, и так далее.
  • Задача о ревнивых мужьях, в которой три супружеские пары должны пересечь реку с помощью лодки, которая может вместить только двоих, при условии, что никакая женщина не может находиться в присутствии другого мужчины, если рядом нет мужа. Задача подобна задаче о миссионерах и людоедах, в которой три миссионера и три людоеда должны пересечь реку с условием, что в любой момент времени, если на одном из берегов находятся и миссионеры, и людоеды, число людоедов не должно превышать числа миссионеров.
  • Задача о мосте и факеле.
  • Propositio de viro et muliere ponderantibus plaustrum. В этой задаче, также встречающейся в Propositiones ad Acuendos Juvenes, мужчина и женщина равного веса с двумя детьми равного веса, каждый в половине веса взрослого, хотят пересечь реку с помощью лодки, которая может выдержать вес только одного взрослого человека[3].

Эти задачи могут быть проанализированы с помощью методов теории графов[4][5], с помощью динамического программирования[6] или целочисленного программирования[3].

Формулировка с использованием теории графов

Пусть неориентированный граф, множество вершин которого представляет объекты, которые фермер должен перевезти, а множество рёбер которого состоит из конфликтующих пар объектов. Например, если вершина представляет гуся, а представляет мешок бобов, то две эти вершины будут соединены ребром, поскольку гусь не может быть оставлен на берегу вместе с мешком с бобами. Заметим, что рёбра неорентированные, поскольку причина конфликта между объектами не влияет на факт, что они не могут быть оставлены на том же самом берегу. Задача состоит в определении минимальной вместимости лодки, при которой пересечение реки возможно Это число известно как число Алкуина графа .

Рассмотрим успешное пересечение реки, в котором фермер перевозит сначала подмножество через реку, оставив множество объектов на берегу. Поскольку первое пересечение успешно, не должно быть конфликтов между оставшимися объектами на берегу. То есть, в графе нет рёбер из между любыми двумя элементами множества . Из этого следует, что все рёбра имеют одну или две вершины в , то есть, что является вершинным покрытием графа . Таким образом, вместимость лодки должна быть не меньше размера минимального вершинного покрытиямножества . Эта величина равна нижней границей чисел Алкуина графа : .

С другой стороны, можно завершить успешно переправу с лодкой вместимостью . Этого можно достичь, требуя, чтобы элементы минимального вершинного покрытия оставались на лодке все время. Это число элементов с одним дополнительным место в лодке. Поскольку среди оставшихся элементов нет конфликтов, они могут быть взяты по одному для пересечения реки в любом порядке, занимая одно оставшееся место в лодке. Таким образом, , что даёт верхнюю границу для . Объединив два неравенства получим , то есть, либо , либо [7].

Чсорба, Хуркенс и Воегингер доказали в 2008 году, что определение, которое и равенств и выполняется, является NP-трудной задачей[5]. Задача о вершинном покрытии является NP-полной, из чего следует, что вычисление числа Алкуина графа NP-трудно. Однако для некоторых классов графов выполняются более сильные результаты. Например, для планарных графов, определение, которое из двух равенств выполняется, можно выполнить pf полиномиальное время (хотя определение или остаётся NP-трудной задачей). Для двудольных графов и могут быть вычислены за полиномиальное время[5].

Смотрите также

Примечания

  1. 1 2 Ivars Peterson. Tricky crossings // Science News. — 2003. — Т. 164, вып. 24..
  2. Ian Pressman, David Singmaster. "The Jealous Husbands" and "The Missionaries and Cannibals" // The Mathematical Gazette. — The Mathematical Association, 1989. — Т. 73, вып. 464. — С. 73–81 (74). — doi:10.2307/3619658. — ..
  3. 1 2 Ralf Borndörfer, Martin Grötschel, Andreas Löbel. Alcuin's Transportation Problems and Integer Programming. — Konrad-Zuse-Zentrum für Informationstechnik Berlin, 1995. — (Preprint SC-95-27). — [Архивировано из оригинала 19 июля 2011 года.].
  4. Benjamin L. Schwartz. {{{заглавие}}} // Mathematics Magazine. — 1961. — Т. 34, вып. 4. — С. 187–193. — doi:10.2307/2687980. — ..
  5. 1 2 3 Péter Csorba, Cor A. J. Hurkens, Gerhard J. Woeginger. The Alcuin number of a graph // Algorithms: ESA 2008. — Springer-Verlag, 2008. — Т. 5193. — С. 320–331. — (Lecture Notes in Computer Science). — doi:10.1007/978-3-540-87744-8_27..
  6. Richard Bellman. Dynamic programming and "difficult crossing" puzzles // Mathematics Magazine. — Mathematical Association of America, 1962. — Т. 35, вып. 1. — С. 27–29. — doi:10.2307/2689096. — ..
  7. Numberphile (5 января 2018). River Crossings (and Alcuin Numbers) - Numberphile. Дата обращения: 17 мая 2024 — YouTube.

Ссылки