0 / 0 / 0
Регистрация: 29.11.2011
Сообщений: 6
|
||||||
1 | ||||||
Итеративный поиск в глубину04.12.2011, 00:22. Показов 2400. Ответов 7
Метки нет (Все метки)
Доброго времени суток.
Нуждаюсь в вашей помощи! Реализовать в программе amzi_6-2-10 пространство состояний задачи о перемещении кубиков. Количество кубиков — 4.Начальное состояние: кубики стоят один на другом в следующем порядке (сверху вниз): a,b,c,d. Конечное состояние — 3 кубика стоят один на другом в порядке a,b,c; а кубик d отдельно лежит на столе. В качестве аргументов структуры 'состояние' использовать состояния отдельных кубиков (определяющие, на чём кубик лежит). В качестве решателя использовать итеративный поиск в глубину. Найти решение в виде алгоритма (последовательности действий игрока). Вот написал по faq но не работает. Что я сделал не так?
0
|
04.12.2011, 00:22 | |
Ответы с готовыми решениями:
7
Итеративный поиск в глубину Поиск в глубину Поиск в глубину с итеративным погружением Рыцари и дамы. Поиск в глубину с ограничением глубины до 16 |
2505 / 1480 / 37
Регистрация: 14.09.2009
Сообщений: 2,740
|
||||||
04.12.2011, 01:40 | 2 | |||||
Почему Вы код взяли для Визуал пролога? Вам для SWI больше подойдет. Но главная проблема в неправильном написании предиката move, а именно определении состояния. Как из этого [a,b,c,d,"_"] можно понять, что это столбик из 4х кубиков, а не 4е кубика на столе? Тут лучше как-нибудь так хранить [a/b,b/c,c/d,d/table] и например снять самый верхний кубик и положить на стол будет
move(A,B):-select(X/_, A,Temp),not(member(_/X,Temp)),ins(X/table,Temp,B). Надо еще написать предикат положить кубик, на котором ничего не лежит, на другой кубик. Поскольку при таком способе хранения одна и та же позиция может определсять многими способами (порядок в списке не важен), то надо сделать, что бы определялось однозначно, т.е подходил только список с цпорядоченными по алфавиту названиями кубиков.
1
|
0 / 0 / 0
Регистрация: 29.11.2011
Сообщений: 6
|
||||||
06.12.2011, 00:58 [ТС] | 3 | |||||
Я очень плохо знаком с данным языком программирования. Это 4 программа на нём.
0
|
2505 / 1480 / 37
Регистрация: 14.09.2009
Сообщений: 2,740
|
||||||
06.12.2011, 02:56 | 4 | |||||
1
|
2 / 2 / 0
Регистрация: 14.12.2011
Сообщений: 37
|
|
14.12.2011, 23:44 | 5 |
Задача состоит в формировании плана сооружения из кубиков, т. е. описании последовательности перестановки кубиков, приводящей из начального состояния в конечное состояние.
Например: имеются 3 кубика a,b,c и три места p,q,r. Разрешёнными являются два действия: перемещение верхнего в конструкции кубика на другой кубик. Написать на языке Visual Prolog программу планирования для данной задачи. Для нахождения оптимального плана действий по перемещению кубиков предлагается составить планировщик, основанный, например, на принципе анализа целей и средств. Подскажите, пожалуйста, как код этой программы будет выглядеть на Visual Prolog 5.2??? Я сама ничего не понимаю в этом языке, поэтому не могу найти готовое решение
0
|
2505 / 1480 / 37
Регистрация: 14.09.2009
Сообщений: 2,740
|
|
14.12.2011, 23:49 | 6 |
Основная часть на 5.2 уже есть Поиск в пространстве состояний (поиск по графам тоже сюда!) Вам надо только предикат move перевести, уж это сделайте самостоятельно.
1
|
0 / 0 / 0
Регистрация: 25.02.2017
Сообщений: 1
|
||||||
07.05.2012, 10:24 | 7 | |||||
Здравствуйте! Помогите ответить на вопрос "Почему в задаче о кубиках можно утверждать,что путь будет кратчайшим? и вообще будет ли он таковым? "
Задача о кубиках. Имеются три места и три кубика, расставленных по местам или друг на друга. Необходимо найти план переупорядочивания кубиков. Разрешенными являются два действия: перемещение верхнего в столбике кубика на свободное место или на другой кубик со свободной верхней гранью.
?- search([[c,a,b],[],[]], Solution), write_list(Solution).
0
|
2505 / 1480 / 37
Регистрация: 14.09.2009
Сообщений: 2,740
|
||||||
07.05.2012, 14:06 | 8 | |||||
Ага, прям короче не придумаешь
0
|
07.05.2012, 14:06 | |
07.05.2012, 14:06 | |
Помогаю со студенческими работами здесь
8
Поиск в глубину или ширину (SWI Prolog) Итеративный поиск в глубину Поиск в глубину, поиск в ширину, дерево Поиск в глубину Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |