Читаем Prolog полностью

        принадлежит( X, [гепард, тигр, пингвин, альбатрос]).

можно_спросить( _ 'кормит детенышей'_,

        'Животное' 'кормит детенышей' 'Чем').

можно_спросить( _ летает, 'Животное' летает).

можно_спросить( _ откладывает яйца,

        'Животное' откладывает яйца).

можно_спросить( _ ест _, 'Животное' ест 'Что').

можно_спросить( _ имеет _,'Животное' имеет 'Нечто').

можно_спросить( _ 'не может' _,

        'Животное' 'не может' 'Что делать').

можно_спросить( _ плавает, 'Животное' плавает).

можно_спросить( _ летает хорошо,

        'Животное' летает хорошо).

Рис. 14. 5.  Простая база знаний для идентификации животных.

Заимствовано из Winston (1984). Отношение "можно_спросить"

определяет вопросы, которые можно задавать пользователю.

Операторы  еслитои,   или  определены на рис. 14.10.

Рассмотрим еще одну небольшую базу знаний, которая может помочь локализовать неисправности в простой электрической схеме, состоящей из электрических приборов и предохранителей. Электрическая схема показана на рис. 14.6. Вот одно из возможных правил:

        если

                лампа1 включена  и

                лампа1 не работает  и

                предохранитель1 заведомо цел

        то

                лампа1 заведомо неисправна.

Вот другой пример правила:

        если

                радиатор работает

        то

                предохранитель1 заведомо цел.

Эти два правила опираются на некоторые факты (относящиеся к нашей конкретной схеме), а именно что лампа1 соединена с предохранитель1 и что лампа1 и радиатор имеют общий предохранитель. Для другой схемы нам понадобится еще один набор правил. Поэтому было бы лучше сформулировать правила в более общем виде (используя прологовские переменные) так, чтобы они были применимы к любой схеме, а затем уже дополнять их информацией о конкретной схеме. Например, вот одно из полезных правил: если прибор включен, но не работает, а соответствующий предохранитель цел, то прибор неисправен. На наш

Рис. 14. 6.  Соединения между предохранителями и приборами в

простой электрической схеме.

формальный язык это транслируется так:

правило_поломки:

                        если

                                Прибор включен и

                                не (Прибор работает) и

                                Прибор соединен с Предохранитель и

                                Предохранитель заведомо цел

                        то

                                Прибор заведомо неисправен.

База знаний такого рода показана на рис. 14. 7.

Упражнения

14. 1.    Рассмотрите "если-то"-правила рис. 14.2-14.4 и транслируйте их в нашу систему обозначений для правил. Предложите расширение нотации, чтобы, при необходимости, можно было работать с оценками уверенности.

% Небольшая база знаний для локализации неисправностей в

% электрической схеме

% Если прибор включен, но не работает, и предохранитель цел,

% то прибор неисправен.

        правило_поломки:

                                        если

                                                вкл( Прибор) и

                                                прибор( Прибор) и

                                                не работает( Прибор) и

                                                соед( Прибор, Предохр) и

                                                доказано( цел( Предохр) )

                                        то

                                                доказано( неиспр( Прибор) ).

% Если устройство работает, то его предохранитель цел

        правило_цел_предохр:

                                        если

                                                соед( Прибор, Предохр)

                                                и работает( Прибор)

                                        то

                                                доказано( цел( Предохр) ).

% Если два различных прибора подключены к одному и тому же

% предохранителю, оба включены и не работают, то предохранитель

% сгорел.

% ЗАМЕЧАНИЕ: предполагается, что из двух приборов неисправных -

% не более одного!

            правило_предохр:

                                        если

                                                соед( Прибор1, Предохр) и

                                                вкл( Прибор1) и

                                                не работает( Прибор1) и

                                                общ_предохр( Прибор2, Прибор1) и

                                                вкл( Прибор2) и

                                                не работает( Прибор2)

                                        то

                                                доказано( сгорел( Предохр) ).

        правило_общ_предохр:

                                        если

                                                соед( Прибор1, Предохр) и

                                                соед( Прибор2, Предохр) и

                                                различны( Прибор1, Прибор2)

                                        то

                                                общ_предохр( Прибор1, Прибор2).

        факт:  различны( X, Y) :- not (X=Y).

        факт:  прибор( радиатор).

        факт:  прибор( лампа1).

        факт:  прибор( лампа2).

        факт:  прибор( лампа3).

        факт:  прибор( лампа4).

        факт:  соед( лампа1, предохр1).

Перейти на страницу:

Похожие книги

12 великих трагедий
12 великих трагедий

Книга «12 великих трагедий» – уникальное издание, позволяющее ознакомиться с самыми знаковыми произведениями в истории мировой драматургии, вышедшими из-под пера выдающихся мастеров жанра.Многие пьесы, включенные в книгу, посвящены реальным историческим персонажам и событиям, однако они творчески переосмыслены и обогащены благодаря оригинальным авторским интерпретациям.Книга включает произведения, созданные со времен греческой античности до начала прошлого века, поэтому внимательные читатели не только насладятся сюжетом пьес, но и увидят основные этапы эволюции драматического и сценаристского искусства.

Александр Николаевич Островский , Иоганн Вольфганг фон Гёте , Оскар Уайльд , Педро Кальдерон , Фридрих Иоганн Кристоф Шиллер

Драматургия / Проза / Зарубежная классическая проза / Европейская старинная литература / Прочая старинная литература / Древние книги
Волчья тропа
Волчья тропа

Мир после ядерной катастрофы. Человечество выжило, но высокие технологии остались в прошлом – цивилизация откатилась назад, во времена Дикого Запада.Своенравная, строптивая Элка была совсем маленькой, когда страшная буря унесла ее в лес. Суровый охотник, приютивший у себя девочку, научил ее всему, что умел сам, – ставить капканы, мастерить ловушки для белок, стрелять из ружья и разделывать дичь.А потом она выросла и узнала страшную тайну, разбившую вдребезги привычную жизнь. И теперь ей остается только одно – бежать далеко на север, на золотые прииски, куда когда-то в поисках счастья ушли ее родители.Это будет долгий, смертельно опасный и трудный путь. Путь во мраке. Путь по Волчьей тропе… Путь, где единственным защитником и другом будет таинственный волк с черной отметиной…

Алексей Семенов , Бет Льюис , Даха Тараторина , Евгения Ляшко , Сергей Васильевич Самаров

Фантастика / Приключения / Боевик / Славянское фэнтези / Прочая старинная литература