0 / 0 / 0
Регистрация: 25.05.2012
Сообщений: 52
1

Проверить, является ли заданный граф связным

25.05.2012, 18:30. Показов 3585. Ответов 2
Метки нет (Все метки)

Помогите, пожалуйста, исправить ошибку!!!
Prolog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
edge(a, c).
edge(a, b).
edge(c, d).
edge(b, d).
edge(e, d).
 
e(A,B):-edge(A,B);edge(B,A). %budem schitat, chto graf nenapravlenii
 
%vspomogatelnii predikat member(E,L), proveryayushii prinadlezit li element E spisku L
member(H,[H|_]). %esli element raven golove spiska, to rezultat polozitelnii
member(X,[_|Tail]):-member(X,Tail). %esli element vstrechaetsya v hvoste spiska, to rezultat polozitelnii
 
path(A,B,P):-p(A,[B],P).%ishem put ot konechnoi vershini v nachalnuyu. Ishodnii put budet sostoyat iz odnoi konechnoi vershini
 
p(A,[A|Tail],[A|Tail]).%esli tekushaya vershina v nashem puti ravna nachalnoi, to etot put yavlyaetsya iskomim
p(A,[B|Tail],P):-e(B,C,_),not(member(C,Tail)),p(A,[C,B|Tail],P). %B-tekushaya vershina puti
 
%not_connected - vspomogatelnii predicat, proveryayushii est li v grafe nesvyazannaya para vershin
not_connected:- e(A,_),e(B,_), A<>B, not(path(A,B,P)). %istenen, esli est dve vershini, dlya kotorih ne vipolnim predicat path
 
%is_connected
is_connected:-not(not_connected).%graf svyazan, esli net ne svyazannoi pari vershin
пишет ошибку, что в 19 строке пропущен оператор(((( вроде всё на месте.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.05.2012, 18:30
Ответы с готовыми решениями:

Определить, является ли связным заданный граф
Определить, является ли связным заданный граф

Проверить является ли заданный граф блоком SWI prolog
Граф задается списком ребер, нужно проверить является ли заданный граф блоком на SWI prolog. ...

Определить, является ли заданный граф связным
Пожалуйста, помогите, очень-очень нужна ваша помощь в задании: &quot;определить является ли заданный...

Проверить , является ли граф связным
Доброго времени суток. В очередной раз без Вашей помощи не обойтись!!!!!! ЗАДАНИЕ: Дан...

2
2505 / 1479 / 37
Регистрация: 14.09.2009
Сообщений: 2,740
25.05.2012, 18:54 2
A<>B замените на A\=B или not(A=B)
1
0 / 0 / 0
Регистрация: 25.05.2012
Сообщений: 52
25.05.2012, 19:25  [ТС] 3
СПАСИБО БОЛЬШОЕ!!!! Помогло))

Только теперь выдаёт yes на любой граф((((

Добавлено через 15 минут
последняя версия! работает!

Prolog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
edge(a, c).
edge(a, b).
edge(c, d).
edge(b, d).
edge(e, d).
 
e(A,B):-edge(A,B);edge(B,A). %budem schitat, chto graf nenapravlenii
 
%vspomogatelnii predikat member(E,L), proveryayushii prinadlezit li element E spisku L
member(H,[H|_]). %esli element raven golove spiska, to rezultat polozitelnii
member(X,[_|Tail]):-member(X,Tail). %esli element vstrechaetsya v hvoste spiska, to rezultat polozitelnii
 
path(A,B,P):-p(A,[B],P).%ishem put ot konechnoi vershini v nachalnuyu. Ishodnii put budet sostoyat iz odnoi konechnoi vershini
 
p(A,[A|Tail],[A|Tail]).%esli tekushaya vershina v nashem puti ravna nachalnoi, to etot put yavlyaetsya iskomim
p(A,[B|Tail],P):-e(B,C),not(member(C,Tail)),p(A,[C,B|Tail],P). %B-tekushaya vershina puti.
 
%not_connected - vspomogatelnii predicat, proveryayushii est li v grafe nesvyazannaya para vershin
not_connected:-e(A,_),e(B,_),A\=B,not(path(A,B,_)).%istenen, esli est dve vershini, dlya kotorih ne vipolnim predicat path
 
%is_connected
is_connected:-not(not_connected).%graf svyazan, esli net ne svyazannoi pari vershin
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.05.2012, 19:25
Помогаю со студенческими работами здесь

Является ли граф связным
В задаче нужно определить является ли неориентированный граф связным. Нужно использовать стек....

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

Определить, является ли заданный граф двудомным
Написать программу на VB6, которая определяет, является ли заданный граф двудомным (теорема...

Является ли планарным граф, заданный списком смежности?
Если да, нарисовать соответствующий плоский граф, если нет, доказать по признакам планарности. 1...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru