Задачи о переправе
Задачи о переправе через реку — тип головоломки, в которой цель состоит в том, чтобы переправить предметы с одного берега реки на другой, обычно за наименьшее количество рейсов.
Общая информация[править]
Сложность головоломки может возникать из-за ограничений на то, какие или сколько предметов можно перевозить одновременно, или какие или сколько предметов можно безопасно оставлять вместе[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-трудной. Однако для определённых классов графов выполняются более сильные результаты. Например, для планарных графов определение того, какое из двух отношений выполняется, может быть сделано за полиномиальное время (хотя определение либо , либо остается NP-трудной задачей); для двудольных графов и могут быть вычислены точно за полиномиальное время[5].
См. также[править]
Источники[править]
- ↑ 1,0 1,1 Peterson, Ivars (2003), "«Tricky crossings»", Science News Т. 164 (24), <http://www.sciencenews.org/articles/20031213/mathtrek.asp>. Проверено 7 февраля 2008..
- ↑ p. 74, Pressman, Ian & Singmaster, David (1989), "«"The Jealous Husbands" and "The Missionaries and Cannibals"»", The Mathematical Gazette (The Mathematical Association) . — Т. 73 (464): 73–81, DOI 10.2307/3619658.
- ↑ 3,0 3,1 Borndörfer, Ralf; Grötschel, Martin & Löbel, Andreas (1995), «Alcuin's Transportation Problems and Integer Programming», Preprint SC-95-27, Konrad-Zuse-Zentrum für Informationstechnik Berlin, <http://www.zib.de/Publications/Reports/SC-95-27.ps.Z>.
- ↑ Schwartz, Benjamin L. (1961), "«An analytic method for the "difficult crossing" puzzles»", Mathematics Magazine Т. 34 (4): 187–193, DOI 10.2307/2687980.
- ↑ 5,0 5,1 5,2 Csorba, Péter; Hurkens, Cor A. J. & Woeginger, Gerhard J. (2008), "The Alcuin number of a graph", «Algorithms: ESA 2008», vol. 5193, Lecture Notes in Computer Science, Springer-Verlag, сс. 320–331, DOI 10.1007/978-3-540-87744-8_27.
- ↑ Bellman, Richard (1962), "«Dynamic programming and "difficult crossing" puzzles»", Mathematics Magazine (Mathematical Association of America) . — Т. 35 (1): 27–29, DOI 10.2307/2689096.
- ↑ River Crossings (and Alcuin Numbers) — Numberphile.
![]() | Одним из источников, использованных при создании данной статьи, является статья из википроекта «Руниверсалис» («Руни», руни.рф) под названием «Задачи о переправе», расположенная по адресу:
Материал указанной статьи полностью или частично использован в Циклопедии по лицензии CC BY-SA. Всем участникам Руниверсалиса предлагается прочитать «Обращение к участникам Руниверсалиса» основателя Циклопедии и «Почему Циклопедия?». |
---|