Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.11.2009, 11:31   #1
Setochka
Новичок
Джуниор
 
Регистрация: 27.11.2009
Сообщений: 2
По умолчанию Задача на Prolog'е

необходимо как можно скорее реализовать на Прологе следующую задачу:

Задан ориентированный граф, он задан множеством дуг. Выяснить, является ли этот граф связным (из любой вершины есть путь в любую вершину).

подробно что такое связный граф
что такое ориентированный граф


буду очень благодарна за помощь. заранее спасибо.
Setochka вне форума Ответить с цитированием
Старый 27.11.2009, 12:13   #2
ОДИНОЧЕСТВО В СЕТИ
Любопытная Вредина
Участник клуба
 
Аватар для ОДИНОЧЕСТВО В СЕТИ
 
Регистрация: 19.06.2009
Сообщений: 1,285
По умолчанию

Код:
% Граф задается списком вершин и списком ребер. Ребро - список из двух вершин
?- is_connected([a, b, c, d, q], [[a, b], [a, c], [c, d], [d, q]]).

is_connected(V, E):- not(disconnected(V, E)).

disconnected(V, E):-
    member(V1, V),
    member(V2, V),
    not(eq(V1, V2)),
    not(path(V1, V2, E, [ ])).

path(St, End, E, _):-
    edge(St, End, E).  
path(St, End, E, Passed):-
    edge(St, Via, E),
    not(member([St, Via], Passed)),
    path(Via, End, E, [[St, Via] | Passed]).

edge(St, End, E):- 
    member([St, End], E).
edge(St, End, E):- 
    member([End, St], E).

eq(V, V).

% 
member(E, [E | _]).
member(E, [_ | T]):-
    member(E, T).
Дурь - это особая форма материи, которая не возникает ниоткуда и не исчезает никуда, а лишь переходит из одной головы в другую.
ОДИНОЧЕСТВО В СЕТИ вне форума Ответить с цитированием
Старый 28.11.2009, 07:21   #3
Setochka
Новичок
Джуниор
 
Регистрация: 27.11.2009
Сообщений: 2
По умолчанию

не получается скомпилить,

Цитата:
ERROR: toplevel: Undefined procedure: is_connected/2 (DWIM could not correct goal)
2 ?- | ERROR: toplevel: Undefined procedure: (:-)/2 (DWIM could not correct goal)
3 ?- | | | | | ERROR: toplevel: Undefined procedure: (:-)/2 (DWIM could not correct goal)
4 ?- | |
ERROR: toplevel: Undefined procedure: (:-)/2 (DWIM could not correct goal)
5 ?- | | | ERROR: toplevel: Undefined procedure: (:-)/2 (DWIM could not correct goal)
6 ?- | | ERROR: toplevel: Undefined procedure: (:-)/2 (DWIM could not correct goal)
7 ?- | ERROR: toplevel: Undefined procedure: (:-)/2 (DWIM could not correct goal)
8 ?- | ERROR: toplevel: Undefined procedure: eq/2 (DWIM could not correct goal)
9 ?- | | true
SWI-Prolog 5.8.1
на прологе пишу впервые, синтаксис не знаю, а хелп кроме констатации факта чего-то ничего и не дает.

Последний раз редактировалось Setochka; 28.11.2009 в 10:16.
Setochka вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц