Открыть сервис

Задача о волке, козе и капусте

Задача о волке, козе и капусте — классическая логическая головоломка, относящаяся к классу задач на переправу (river crossing puzzles). В наиболее распространённой формулировке требуется перевезти через реку волка, козу и капусту, используя лодку, в которую помещается только один предмет (или животное) вместе с перевозчиком. Задача иллюстрирует принципы поиска в пространстве состояний, графов и планирования действий, а также часто используется в обучении основам алгоритмизации и искусственного интеллекта.

История и происхождение

Точное происхождение задачи неизвестно, но её корни восходят к средневековым европейским сборникам логических загадок. Впервые в письменном виде она встречается в трактате «Propositiones ad Acuendos Juvenes» («Задачи для оттачивания ума молодых»), приписываемом Алкуину Йоркскому (около 800 года н. э.). В этом сборнике, содержащем 56 логических задач, присутствует задача о волке, козе и капусте под номером 18. В оригинальной латинской версии фигурируют волк (lupus), коза (capra) и кочан капусты (caulis). Задача была широко распространена в фольклоре разных народов, часто с заменой персонажей: например, в русских вариантах могли фигурировать лиса, гусь и зерно, а в африканских — леопард, коза и бананы.

В эпоху Возрождения задача включалась в учебники по арифметике и логике. В XX веке она стала популярным примером в теории графов и информатике, а также в тестах на интеллект и собеседованиях.

Формулировка задачи

Классическая постановка задачи:

  • Крестьянин (или лодочник) стоит на левом берегу реки вместе с волком, козой и капустой.
  • Имеется лодка, в которой крестьянин может перевезти только один предмет (или животное) за один раз. Крестьянин должен переправляться сам, чтобы грести.
  • Нельзя оставлять без присмотра:
  • волка с козой (волк съест козу);
  • козу с капустой (коза съест капусту).
  • Волк с капустой остаются в безопасности друг без друга.
  • Требуется переправить всех троих на правый берег, соблюдая все ограничения.

Решение

Задача имеет единственное решение (с точностью до симметрии и порядка действий). Оно состоит из семи переправ (речных переходов) и включает возврат лодки на исходный берег.

Пошаговое решение

  1. Перевезти козу на правый берег. На левом берегу остаются волк и капуста (они безопасны друг с другом). Лодка возвращается пустой (или с крестьянином) на левый берег.
  2. Перевезти волка на правый берег. На правом берегу оказываются волк и коза — их нельзя оставлять вместе. Поэтому крестьянин забирает козу обратно на левый берег.
  3. Оставить козу на левом берегу, перевезти капусту на правый берег. На правом берегу теперь волк и капуста (безопасны). Лодка возвращается пустой на левый берег.
  4. Перевезти козу на правый берег. Все оказываются на правом берегу.

Альтернативный вариант: на втором шаге можно перевезти капусту, а затем вернуть козу, но логика остаётся той же.

Графическое представление

Состояние системы можно описать как кортеж (берег крестьянина, положение волка, козы, капусты). Решение в виде последовательности состояний (Л — левый берег, П — правый):

  1. (Л, Л, Л, Л) — исходное.
  2. (П, Л, П, Л) — коза на правом.
  3. (Л, Л, П, Л) — лодка вернулась.
  4. (П, П, П, Л) — волк на правом.
  5. (Л, П, Л, Л) — коза вернулась.
  6. (П, П, Л, П) — капуста на правом.
  7. (Л, П, Л, П) — лодка вернулась.
  8. (П, П, П, П) — коза на правом, все на месте.

Математическая модель и обобщения

Задача является частным случаем задачи о переправе с ограничениями. В терминах теории графов каждое состояние — вершина, а возможные переправы — рёбра. Решение представляет собой путь в графе от начального состояния к целевому. Количество состояний в классической задаче — 16 (2^4), но из-за ограничений допустимы только 10.

Обобщение на n объектов

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

Алгоритмические аспекты

В информатике задача используется для демонстрации:

  • поиска в ширину (BFS) — для нахождения кратчайшего пути;
  • поиска в глубину (DFS);
  • метода ветвей и границ;
  • логического программирования (Prolog, Answer Set Programming).

Применение в обучении и культуре

Задача о волке, козе и капусте широко применяется в педагогике и психологии:

  • Развитие логического мышления — у детей и взрослых.
  • Обучение программированию — как пример задачи на состояние и переходы.
  • Тестирование алгоритмов ИИ — в задачах планирования (например, в системе STRIPS).
  • В тестах на IQ — часто встречается в разделах на пространственное и логическое мышление.

В массовой культуре задача упоминается в книгах по занимательной математике (Я. Перельман, М. Гарднер), а также в эпизодах телесериалов (например, «Симпсоны», «Звёздный путь»). В русскоязычной среде она известна с детства как одна из «задач на смекалку».

Критика и ограничения

Задача критикуется за упрощённость и нереалистичность допущений: крестьянин не может оставить лодку без присмотра, животные и капуста ведут себя предсказуемо, а волк не нападает на человека. Однако именно эта абстракция делает задачу полезной для обучения основам логики и алгоритмов. В реальных сценариях (например, переправа скота) требуется учитывать множество дополнительных факторов (время, вместимость лодки, поведение животных).

Интересные факты

  • В некоторых версиях задачи вместо волка фигурирует лиса, а вместо капусты — гусь или зерно.
  • Задача имеет ровно одно решение (с точностью до симметрии), если не считать возвратов пустой лодки.
  • Минимальное количество переправ — 7 (включая возвраты).
  • В 1990-х годах задача была использована в качестве примера для демонстрации работы экспертных систем.
  • В 2012 году задача была включена в список «100 величайших головоломок всех времён» по версии журнала «New Scientist».

Источники

  • Алкуин Йоркский. «Propositiones ad Acuendos Juvenes» (ок. 800 г.).
  • Гарднер М. «Математические головоломки и развлечения». — М.: Мир, 1971.
  • Перельман Я. И. «Живая математика». — М.: Наука, 1967.
  • Russell S., Norvig P. «Artificial Intelligence: A Modern Approach» (3rd ed.). — Pearson, 2010.
  • New Scientist. «The 100 greatest puzzles of all time» (2012).

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →