![]() |
|
|
![]()
|
|
| Alenkakiss |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 22.12.2009 Репутация: нет Всего: нет |
Помогите нововичку разобраться в логической задаче.
Условие Миссионеры и людоеды (поиск в ширину). Три миссионера и три людоеда находятся по одну сторону реки, через которую они хотят переправиться. В их распоряжении имеется лодка, которая может выдержать вес только двух человек. Кроме того, если в какой-то мо-мент число людоедов станет больше числа миссионеров, миссионеры будут съедены независимо от того, на каком берегу реки это случится. Указания к решению. Различные состояния этой задачи однозначно задаются информацией, на каком берегу находятся лодка и сколько миссионеров и лю-доедов на этом же берегу. Поэтому структура state(ЛокализацияЛодки, ЧислоМиссионеровНаТомБерегуГдеЛодка, ЧислоЛюдоедовНаТомБерегуГдеЛодка) полностью описывает состояние. Допустимые состояния для решения задачи - это те, когда людоеды не могут съесть миссионеров ни на том берегу, где лодка, ни на противоположном, Возможные значение первого аргумента: атомы west (западный берег) и east (восточный берег). Возможные значения остальных аргументов: 0, 1, 2 или 3. Начальное состояние: state(east,3, 3). Конечное состояние: state(west,3,3). 2 людоеда или 1 людоед и 1 миссионер переправляются. 2. миссионер возвращается назад, если посылали 2 людоедов, то возвращается один из людоедов. Итак: на 1-ом берегу 2Л и 3М, на втором 1Л. 3. Посылаем на тот берег 2Л. 4. Возвращаем 1Л. Итак: на 1-ом берегу 1Л и 3М, на втором 2Л. 5. Пускаем 2М на тот берег. 6. Возвращаем 1Л и 1М. Итак: На этом берегу 2Л и 2М, на втором 1Л и 1М 7. Посылаем на тот берег 2М. 8. Возвращаем на 1-ый берег 1Л. Итак: на 1-ом берегу 3Л, на втором 3М. 9. Посылаем на тот берег 2Л. 10. Возвращаем назад 1Л. 11. Переправляем последних голодных и уставших 2Л. Нашла решение этой задачи на VIP7 с помощью поиска в ширину. Оно содержит 11 переправ.
Подскажите, как переделать для SWI-Prolog? |
|||
|
||||
![]()
|
| Правила форума Prolog | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Void. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Prolog | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |