|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
30.11.2013, 20:12 | #1 |
Регистрация: 30.11.2013
Сообщений: 7
|
Эвристический поиск в лабиринте
Помогите плиз!!Срочно надо)
лабиринт представляет собой систему комнат,соединенных между собой переходами.В лабиринте имеется вход и выход,а также комната с золотым кладом.Кроме того,имеются комнаты,запрещенные для посещений:комната монстров и комната разбойников. 1)Найди путь в лабиринте от входа до входа,не посещая дважды одной и той же комнаты. 2)Найти путь с посещением золотой комнаты. 3)Найти путь,избегающий запрещенных к посещению комнат. 4)Подсчет количество пройденных комнат. |
01.12.2013, 01:19 | #2 |
Санитар
Старожил
Регистрация: 04.10.2008
Сообщений: 2,577
|
на прологе, наверное?
|
01.12.2013, 18:21 | #3 |
Регистрация: 30.11.2013
Сообщений: 7
|
|
02.12.2013, 08:46 | #4 |
Санитар
Старожил
Регистрация: 04.10.2008
Сообщений: 2,577
|
Я думаю, начать надо с построение графа переходов.
комната монстров и комната разбойников - вершины, в которые нет ни одной входящей дуги. Потом останется только запустить поиск в ширину или в глубину на этом графе. Что именно не получается? И на каком прологе? |
05.12.2013, 11:57 | #5 |
Регистрация: 30.11.2013
Сообщений: 7
|
я вообще не могу понять,с чего начинать,P# Prolog,вы говорите,что нужно использовать граф-это и есть мой лабиринт в виде графа,я правильно поняла?
|
05.12.2013, 11:57 | #6 |
Регистрация: 30.11.2013
Сообщений: 7
|
я вообще не могу понять,с чего начинать,P# Prolog,вы говорите,что нужно использовать граф-это и есть мой лабиринт в виде графа,я правильно поняла?
|
05.12.2013, 17:18 | #7 | |
Санитар
Старожил
Регистрация: 04.10.2008
Сообщений: 2,577
|
Цитата:
Нужен граф состояний игры, но в вашем случае состояние - это положение в лабиринте, поэтому граф-лабиринт сойдет. |
|
18.12.2013, 16:54 | #8 |
Регистрация: 30.11.2013
Сообщений: 7
|
это эвристический поиск,можете проверить на ошибки,очень надо!
route(room1,room2,4). route(room2,gold,3). route(room2,monsters,5). route(room2,monsters,4). route(gold,razb,2). route(razb,room3,7). route(monsters,room3,2). route(gold,room3,4). move(room1,room2,monsters):-route(room1,room2,monsters);route(r oom2,room1,monsters). member(H,[H|_]). member(H,[_|Tail]):-member(H,Tail). place([],SortedWays,SortedWays). place([Way|Tail],PrevWays,SortedWays):-placeone(Way,PrevWays,PrevWays1),pl ace(Tail,PrevWays1,SortedWays). placeone(Length:Way,[LengthH:WayH|Tail],[Length:Way,LengthH:WayH|Tail]):-Length=<LengthH,!. placeone(LengthWay,[LengthHWayH|Tail],[LengthHWayH|NewTail]):-placeone(LengthWay,Tail,NewTail). placeone(LengthWay,[],[LengthWay]). search_bst(Start,Finish):- bst([0:[Start]],Finish,Length:Way), show_answer(Way),nl,write('Length of way: '),write(Length). bst([Length:[Finish|Tail]|_],Finish,Length:[Finish|Tail]). bst([TempWay|OtherWays],Finish,Way):- findall(W,prolong(TempWay,W),Ways), place(Ways,OtherWays,NewWays),bst(N ewWays,Finish,Way). show_answer([_]):-!. show_answer([room1,room2|Tail]):- show_answer([room2|Tail]),nl,write(room2),write(' -> '),write(room1). count([],0). count([1|Tail],Y1):-count(Tail,Y), Y1 is Y+1. |
18.12.2013, 18:19 | #9 |
Санитар
Старожил
Регистрация: 04.10.2008
Сообщений: 2,577
|
твоя задача решена тут с подробными комментариями: http://pro-prof.com/archives/1299
на SWI Prolog. Вместо спасибо можешь жамкнуть кнопку гугл+ или оценить сайт в web of trust, например. "Эвристический" поиск подразумевает использование какой-то догадки (которая, в общем случае, не гарантирует результат). Для твоей задачи я такой догадки придумать не могу. |
18.12.2013, 18:27 | #10 |
Регистрация: 30.11.2013
Сообщений: 7
|
спасибо большое!А на турбо прологе пойдет?
|
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Поиск пути в лабиринте. Маршрутный алгоритм. C# | Wanz | Помощь студентам | 9 | 17.03.2013 18:56 |
Поиск кратчайшего пути в лабиринте Java | Omnikus | Фриланс | 1 | 15.12.2011 20:46 |
Поиск пути в лабиринте - Пролог | yulia | Помощь студентам | 15 | 21.08.2010 00:14 |
поиск маршрута в лабиринте. Delphi 7 | savraska | Помощь студентам | 2 | 16.05.2010 14:29 |
Поиск пути в лабиринте | s2dentishe | Помощь студентам | 2 | 13.03.2010 18:36 |