Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Path1(А, Р1, G, Р)

Постановка 5.

Ациклічний шлях Р між вершинами А і Z у заданому явно графі G позначимо відношенням path(А, Z, G, Р).

Для графа G на рис. 1 (а) вірними є твердження:

path(a, d, G, [a, b, d])

path(а, d, G, [a, b, c, d]).

 

Оскільки шлях має бути ациклічним, всяка вершина у шляху може зустрітись лише раз. Один з методів пошуку шляху відповідно до предикату path(А, Z, G, Р):

§ якщо А=Z, то покласти шлях Р= [А],

§ інакше знайти ациклічний шлях Р1 з довільної вершини Y в вершину Z, а потім шлях з А в Y без використання вершин з шляху Р1.

Для цього визначено ще один предикат:

чиї аргументи мають наступний смисл:

§ А - деяка вершина,

§ P1 - шлях в G,

§ G - граф,

§ Р - ациклічний шлях в G, що йде з А в початкову вершину шляху Р1, а потім - уздовж шляху Р1.

Pис. 3. Відношення path фіксує шлях Р між А і Z, що у своїй заключній частині співпадає зі шляхом Р1 між вершинами Y і Z відношення path1.

Між path і path1 має місце наступне співвідношення:

path(А, Z, G, Р):- path1(А, [Z], G, Р).

На рис.3 показана ідея рекурсивного визначення відношення path1. Існує "граничний" випадок, коли початкова вершина шляху P1 (Y на рис. 3) збігається з початковою вершиною А шляху Р. Якщо ж початкові вершини цих двох шляхів не збігаються, то має існувати така вершина X, що

(1) Y - вершина, суміжна з X,

(2) Х не втримується в Р1 та

(3) для Р виконується відношення

path1(А, [Х | Р1], G, Р).

Таким чином, пошук у графі G ациклічного шляху Р з вершини А в Z визначається наступною програмою:

path(A, Z, G, Р):- path1(А, [Z], G, Р).

path1(А, [А | Р1], _, [А | Р1]).

path1(А, [Y | Р1], G, Р):- incident(X, Y, G),

not(member(X, Р1)), % Умова відсутності циклу

path1(А, [ X, Y | Р1], G, Р).

 

Тут відношення інцидентності (суміжності) вершин

<== предыдущая лекция | следующая лекция ==>
Edge(e, d, 9). Path(string,string,slist) | Edge(e, d, 9)
Поделиться с друзьями:


Дата добавления: 2014-01-04; Просмотров: 260; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.011 сек.