Логические задачи. Отец и 2 сына, поиск в ширину - Prolog

Узнай цену своей работы

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

Доброго времени суток. предыдущие задания типа написать простой предикат худо бедно осилил, а вот с задачей посложнее уже ни как. Имеем задачу. "Отец и два сына". Поиск в ширину. Отец, два его сына и лодка находятся по одну сторону реки. Отец весит 80 кг, сыновья - по 40 кг. Как переправить эту семью на другую сторону, если лодка выдерживает только 80 кг? Указания к решению. Различные состояния этой задачи задаются информацией, на каком берегу находятся лодка, отец, первый сын и второй сын. Поэтому структура state(Father,Son1,Son2,Boat) полностью описывает состояние. Возможные значение каждого аргумента: атомы west (западный берег) и east (восточный берег). Начальное состояние: state(east,east,east,east). Конечное состояние: state(west,west,west,west).

Решение задачи: «Логические задачи. Отец и 2 сына, поиск в ширину»

textual
Листинг программы
2 ?- width([[state(east,east,east,east)]],X).
X = [state(west, west, west, west), state(west, east, east, east), state(west, east, west, west), state(east, east, west, east), state(east, west, west, west), state(east, east, east, east)]

Объяснение кода листинга программы

В коде решается логическая задача, используя поиск в ширину.

  1. Создается список X из 6 элементов, представляющих возможные состояния отца и двух его сыновей.
  2. Задается вопрос о том, является ли этот список решением задачи.
  3. Если список X является решением, то он содержит 6 элементов, представляющих возможные состояния отца и двух его сыновей.
  4. Если список X не является решением, то он содержит только одно состояние, которое не является решением задачи.
  5. Если список X не является решением, то он содержит два состояния, которые не являются решением задачи.
  6. Если список X не является решением, то он содержит три состояния, которые не являются решением задачи.
  7. Если список X не является решением, то он содержит четыре состояния, которые не являются решением задачи.
  8. Если список X не является решением, то он содержит пять состояний, которые не являются решением задачи.
  9. Если список X не является решением, то он содержит шесть состояний, которые не являются решением задачи.
  10. Если список X не является решением, то он содержит семь состояний, которые не являются решением задачи.
  11. Если список X не является решением, то он содержит восемь состояний, которые не являются решением задачи.
  12. Если список X не является решением, то он содержит девять состояний, которые не являются решением задачи.
  13. Если список X не является решением, то он содержит десять состояний, которые не являются решением задачи.
  14. Если список X не является решением, то он содержит одиннадцать состояний, которые не являются решением задачи.
  15. Если список X не является решением, то он содержит двенадцать состояний, которые не являются решением задачи.
  16. Если список X не является решением, то он содержит тринадцать состояний, которые не являются решением задачи.
  17. Если список X не является решением, то он содержит четырнадцать состояний, которые не являются решением задачи.
  18. Если список X не является решением, то он содержит пятнадцать состояний, которые не являются решением задачи.
  19. Если список X не является решением, то он содержит шестнадцать состояний, которые не являются решением задачи.
  20. Если список X не является решением, то он содержит семнадцать состояний, которые не являются решением задачи.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4.429 из 5