Задачи о переправе
Задачи о переправе через реку — тип головоломки, в которой цель состоит в том, чтобы переправить предметы с одного берега реки на другой, обычно за наименьшее количество рейсов.
Общая информация[править]
Сложность головоломки может возникать из-за ограничений на то, какие или сколько предметов можно перевозить одновременно, или какие или сколько предметов можно безопасно оставлять вместе[1]. Обстановка может незначительно меняться, например, река — на мост[1].
Самые ранние известные задачи о переправе через реку встречаются в рукописи Propositiones ad Acuendos Juvenes (в пер. с лат. — «Задачи для оттачивания молодого ума»), традиционно приписываемой Алкуину. Самые ранние копии этой рукописи датируются IX веком; она содержит три задачи о переправе через реку, в том числе головоломку о лисе, гусе и мешке фасоли, а также задачу о ревнивых мужьях[2].
К известным головоломкам о переправе через реку относятся:
- Головоломка о лисе, гусе и мешке фасоли, в которой фермер должен перевезти лису, гуся и мешок фасоли с одной стороны реки на другую, используя лодку, которая может вместить только один предмет в дополнение к фермеру, при условии, что лису нельзя оставлять наедине с гусем, а гуся нельзя оставлять наедине с фасолью. Эквивалентные головоломки также формулируются с лисой, курицей и мешком зерна, или (в русском варианте) с волком, козой и капустой и т. д.
- Задача о ревнивых мужьях, в которой три супружеские пары должны переправиться через реку, используя лодку, которая может вместить не более двух человек, при условии, что ни одна женщина не может находиться в присутствии другого мужчины, если ее мужа нет рядом. Схожая с ней задача — о миссионерах и каннибалах, в которой три миссионера и три каннибала должны переправиться через реку, при условии, что в любое время, когда и миссионеры, и каннибалы находятся на одном из берегов, каннибалов на этом берегу не должно быть больше, чем миссионеров.
- Задача о мосте и факеле.
- Propositio de viro et muliere ponderantibus plaustrum. В этой задаче, также встречающейся в Propositiones ad Acuendos Juvenes, мужчина и женщина одинакового веса вместе с двумя детьми, каждый из которых имеет половину их веса, хотят переправиться через реку, используя лодку, которая может выдержать вес только одного взрослого человека[3].
Эти задачи можно проанализировать с помощью теории графов[4][5], динамического программирования[6], или целочисленного программирования[3].
Формулировка с использованием теории графов[править]
Пусть Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle G=(V, E)} — неориентированный граф, множество вершин Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle V} которого представляет предметы, которые должен нести фермер, а множество ребер Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle E} состоит из пар конфликтующих предметов. Например, если вершина Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle v_1} представляет гуся, а Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle v_2} — мешок фасоли, то эти две вершины будут соединены, поскольку гуся нельзя оставлять на одной стороне реки с мешком фасоли. Обратите внимание, что ребра являются неориентированными, поскольку характер конфликта между двумя предметами не влияет на тот факт, что их нельзя оставлять на одной стороне реки. Цель задачи — определить минимальный размер лодки, при котором переправа возможна; это известно как «число Алькуина» графа Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle G} .
Рассмотрим успешную переправу через реку, при которой фермер сначала перевозит подмножество Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle V'} предметов через реку, оставляя оставшиеся Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle V \setminus V'} предметы на берегу. Поскольку переправа успешна, не должно быть конфликтов между предметами, оставшимися на берегу; то есть в Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle G} нет ребер в Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle E} между любыми двумя элементами из Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle V \setminus V'} . Это подразумевает, что все ребра Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle E} имеют одну или обе вершины в , то есть что является вершинным покрытием графа . Следовательно, размер лодки должен быть как минимум равен размеру минимального вершинного покрытия графа ; это образует нижнюю границу числа Алькуина графа : .
С другой стороны, можно совершить успешную переправу с размером лодки, равным . Этого можно добиться, потребовав, чтобы члены минимального вершинного покрытия все время оставались в лодке; их количество равно , и, таким образом, в лодке остается ещё одно место. Поскольку среди оставшихся предметов нет конфликтов, их можно перевозить через реку по одному в любом порядке, занимая одно оставшееся место в лодке. Таким образом, , что образует верхнюю границу для . Объединяя их вместе, получаем , то есть либо , либо [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. Всем участникам Руниверсалиса предлагается прочитать «Обращение к участникам Руниверсалиса» основателя Циклопедии и «Почему Циклопедия?». |
