1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!
| kosyak |
30.10.2008 12:13
Сообщение
#1
|
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 100 Пол: Мужской Репутация: 0 |
Доброго всем времени суток. Помогите разобраться с задачей: "определение цикла Гамильтона в заданном графе". Язык prolog. Какой может быть алгоритм, где можно об этом попонятней почитать? Может есть уже готовая))) На pascalе бы быстро все сделал, а вот с логическим программированием пока проблемы.
Заранее огромное спасибо. |
![]() ![]() |
| kosyak |
3.11.2008 13:57
Сообщение
#2
|
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 100 Пол: Мужской Репутация: 0 |
Вот написал полную программу.... но не работает (((
Код domains VMas=integer* R=rebro(integer,integer) RMas=R* predicates inlist(integer, VMas) path(integer,integer,VMas,RMas,VMas) path1(integer,VMas,VMas,RMas,VMas) smezh(integer,integer,VMas,RMas) prinad(R, RMas) gamilton(VMas,RMas,VMas) vseversh(VMas,VMas,RMas) clauses gamilton(VM, RM, P):- path(_,_,VM,RM,P), vseversh(P,VM,RM). vseversh(P,VM,RM):- not(inlist(B,VM)), not(inlist(B,P)). path(A,Z,VM,RM,P):- path1(A,[Z],VM,RM,P). path1(A,[A|P1],_,_,[A|P1]). path1(A,[Y|P1],VM,RM,P):- smezh(X,Y,VM,RM), inlist(X,P1), path1(A,[X,Y|P1],VM,RM,P). smezh(X,Y,VM,RM):- prinad(rebro(X,Y),RM); prinad(rebro(Y,X),RM). prinad(X, [X|_]). prinad(X, [_|L]):-prinad(X, L). inlist(X, [X|_]). inlist(X, [_|L]):-inlist(X, L). /* goal*/ /* gamilton([1,2,3,4],[rebro(1,2),rebro(2,4),rebro(2,3),rebro(3,4)],X)*/ /* path(1,3,[1,2,3,4],[rebro(1,2),rebro(2,4),rebro(2,3),rebro(3,1)],X)*/ Она даже путь не может посчитать... никак не могу найти ошибку |
kosyak Гамильтонов цикл на Prolog 30.10.2008 12:13
volvo Начать можно отсюда: http://isr.by.ru/prolog/ch9_5... 30.10.2008 12:25
kosyak
Начать можно отсюда: http://isr.by.ru/prolog/ch9_... 30.10.2008 14:37
kosyak Что-то у меня не особо получается... не могу понят... 2.11.2008 13:38
kosyak Вот описал часть программы:
domains
VMas=integ... 2.11.2008 14:51
volvo Хм... Что ты тут натворил?
Смотри, что ты делаешь... 2.11.2008 18:25
kosyak Спасибо большое... пойду дальше разбираться... 3.11.2008 11:35
kosyak Все, вроде сделал:
domains
top=symbol
Vlist=... 3.11.2008 17:22
volvo Вот именно... Тебе выводит несколько раз одно и то... 3.11.2008 18:16
kosyak Так он правильно выводит... нет никакого цикла... ... 3.11.2008 19:00
-Алексей-
Так он правильно выводит... нет никакого цикла...... 27.12.2012 16:17![]() ![]() |
|
Текстовая версия | 8.12.2025 8:08 |