![]() |
1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!
![]() |
kosyak |
![]()
Сообщение
#1
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 100 Пол: Мужской Репутация: ![]() ![]() ![]() |
Доброго всем времени суток. Помогите разобраться с задачей: "определение цикла Гамильтона в заданном графе". Язык prolog. Какой может быть алгоритм, где можно об этом попонятней почитать? Может есть уже готовая))) На pascalе бы быстро все сделал, а вот с логическим программированием пока проблемы.
Заранее огромное спасибо. |
![]() ![]() |
kosyak |
![]()
Сообщение
#2
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 100 Пол: Мужской Репутация: ![]() ![]() ![]() |
Что-то у меня не особо получается... не могу понять как правильно задать граф. По вышеуазанной ссылке написано: "графу соответствует пара множеств - множество вершин и множество ребер. Каждое множество можно задавать при помощи списка, каждое ребро - парой вершин. Для объединения двух множеств в пару будем применять функтор граф, а для записи ребра - функтор р."
Вот я сделал как понял: Код domains V=integer VMas=V* R=R(V,V) RMas=R* Graf=Graf(VMas,RMas) Правильно ли я понял? Не получается определить следующий предикат: Код смеж( X, Y, граф( Верш, Реб) ) :- принадлежит( р( X, Y), Реб); принадлежит( р( Y, X), Реб). Не знаю как разделить domain Graf на состовляющие : вершины и ребра... Сообщение отредактировано: kosyak - 2.11.2008 13:39 |
![]() ![]() |
![]() |
Текстовая версия | 8.08.2025 6:00 |