![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 06.10.2011
Сообщений: 5
|
![]()
Есть Программма вот задание: найти путь между 2мя заданными вершинами в ненагруженном графе, используя поиск в ширину.
Непосредственно код: domains slist=string* sslist=slist* predicates r(string,string). road(string,string). find(string,string). f(string,sslist). member(string,slist). append(sslist,sslist,sslist). next(slist,slist). show(slist). clauses r(a,b). r(a,c). r(a,d). r(a,e). r(b,c). r(b,d). r(b,e). r(c,d). r(c,e). r(d,e). road(A,B):-r(A,B);r(B,A). member(H,[H|_]). member(X,[_|T]):-member(X,T). append([],B,B). append([H|T],B,[H|Tail]):-append(T,B,Tail). find(A,B):-f(B,[[A]]). next([A|T],[C,A|T]):-road(A,C),not(member(C,T)). show([]). show([H|T]):-show(T),write(' ',H). f(B,[[B|T]|Tail]):-!,show([B|T]),nl,f(B,Tail). f(B,[[A|T]|Tail]):-findall(X,next([A|T],X),List),!, append(Tail,List,New),f(B,New). goal find(a,e). Объясните пожалуйста простым языком, где в коде реализован этот поиск в ширину и как он работает . Читал wiki ничего не понятно. Заранее благодарю. Если можно поподробнее(по шагам) |
![]() |
![]() |
![]() |
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Поиск в ширину и глубину | Дядя Тёма | Фриланс | 0 | 21.05.2011 10:42 |
графы поиск в ширину | KaMish_44 | Паскаль, Turbo Pascal, PascalABC.NET | 0 | 30.04.2011 05:31 |
поиск в ширину | ooooch | Помощь студентам | 1 | 29.11.2009 11:26 |
поиск в ширину на с++ | Pavel.d | Помощь студентам | 1 | 19.04.2009 12:08 |