Я долго думал об этом вопросе и не мог понять, как его решить.Использование алгоритма поиска в Python для решения головоломки 3 волков и 3 ягнят
Проблема заключается в следующем:
У нас есть 3 ягнят и 3 волков в стороне, и мы должны позволить им пройти через реку на другую сторону. В начале это выглядело легко, пока я не остановился с этими трудными условиями:
- Волков не могут быть больше, чем у ягнят, что означает ягнята могут быть больше или равно волки.
- Лодка, несущая животных на другую сторону, не может нести более 2
- Лодка ДОЛЖНА всегда носить животных, а это значит, что вы не можете переместить пустую лодку.
вопрос должен быть решен по алгоритму поиска, как A * или BFS и т.д.
Мы все знаем, что эти алгоритмы не работают, пока вы не предоставите график в качестве входных данных, и здесь это проблема.
Как мы можем создать график из 3 ягнят и 3 волков?
Я, хотя об этом много раз, и единственный способ, который пришел мне на ум, - это все возможности. Звучит неплохо для меня, но все же не дает мне никаких успехов, потому что проблема остается прежней, как ее реализовать или написать в виде кода Python, чтобы передать этот график алгоритму, чтобы алгоритм мог его решить?
Ни А *, ни BFS требует весь граф, чтобы быть предварительно вычислена –
Вместо мышления состояния (на каждом узле) как только барашки и волки, добавьте лодку в вектор состояния. Действительный переход перемещает лодку и увеличивает или уменьшает количество животных. –
@IanMercer я не понял, не могли бы вы подробнее рассказать о некоторых кодах и примерах? – Kale