Форум программистов, компьютерный форум, киберфорум
Prolog
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
1 / 1 / 3
Регистрация: 20.10.2012
Сообщений: 166
1

Задача с графом

25.11.2014, 21:39. Просмотров 817. Ответов 2
Метки нет (Все метки)


Здравствуйте! помогите написать программу на прологе, задание такое:
Напишите программу, которая определяет, является ли данный граф свободным деревом. Свободное дерево – это связный граф, не имеющий циклов.
Буду очень благодарен)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.11.2014, 21:39
Ответы с готовыми решениями:

Задача с графом
program prog; uses SysUtils; const n0 = 30; var ves : array of integer; L : array of...

Задача с графом
Написать программу,определяющую все маршруты из вершины v1 в вершину v3 для графа

Работа с графом
Здравствуйте, у меня такая проблема ,по матрице смежности (7x7) со случайными числами я получил...

Задание графом
Задан граф, вывести все пары вершин, между которыми нет пути. можете помочь???

__________________
Помогаю в написании студенческих работ здесь.
2
1 / 1 / 3
Регистрация: 20.10.2012
Сообщений: 166
27.11.2014, 21:11  [ТС] 2
на форумах нашел вот такую реализацию, но мне кажется что она не совсем правильно работает, или я просто недопонимаю принцип ее работы,
вот код:
Prolog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
domains il=integer*
predicates
nondeterm rebro(integer,integer)
nondeterm cikle(il,il)
nondeterm duga(integer,integer)
prtnadlezhit(integer,il)
prefics(integer,il,il)
 
clauses 
duga(1,2).  duga(2,3).  duga(2,4).
duga(3,4).  
rebro(A,C):-duga(A,C);duga(C,A).
 
cikle([C,A|Stek],[B|Cikle]):-rebro(C,B),B<>A,
   prtnadlezhit(B,Stek),prefics(B,[C,A|Stek],Cikle),!.
cikle([C,A|Stek],Cikle):-rebro(C,B),B<>A,
   not(prtnadlezhit(B,Stek)),cikle([B,C,A|Stek],Cikle).
 
prtnadlezhit(A,[A|_]):-!.
prtnadlezhit(A,[_|Stek]):-prtnadlezhit(A,Stek).
 
prefics(A,[A|_],[A]):-!.
prefics(A,[C|Stek],[C|Cikle]):-prefics(A,Stek,Cikle).
goal 
duga(A,C),
cikle([C,A],Cikle).
граф в скрине, мне кажется показываются не все циклы, результат работы программы во втором скрине
0
Миниатюры
Задача с графом   Задача с графом  
Фрилансер
3680 / 2051 / 565
Регистрация: 31.05.2009
Сообщений: 6,684
28.11.2014, 05:54 3
Цитата Сообщение от den4ik_fpmi Посмотреть сообщение
граф в скрине
Это ведь не тот граф, который в коде.

Цитата Сообщение от den4ik_fpmi Посмотреть сообщение
я просто недопонимаю принцип ее работы
Могу успокоить - я тоже недопонимаю. Копаться в чужом коде без комментариев тяжело..

Цитата Сообщение от den4ik_fpmi Посмотреть сообщение
мне кажется показываются не все циклы
Сложно сказать.. Циклов будет больше, если в строке 25 поставить rebro вместо duga.
Но реально это будет влиять только на направление обхода циклов, поэтому отсутствие циклов выявится и так.

Короче, если будет цикл - программа его найдет. А вот все ли она найдет, надо думать.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.11.2014, 05:54

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Работа с графом
Написать программу, которая находит по заданным вершинам графа все пути между ними и определяет...

Перестановка с графом
Имеется граф у которого 7 ребер (ребра имеют вес). Требуется построить все графы удалив из...

написать программу с графом
В клубе N человек. Многие из них - друзья. Так же известно, что друзья друзей так же являются...

Работа с неориентированным графом
Есть неориентированный граф 4х4, нужно составить алгоритм, который бы находил пути в которых...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.