Чтение онлайн

на главную - закладки

Жанры

Программирование на языке Пролог для искусственного интеллекта

Братко Иван

Шрифт:

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

если

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

то

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

Рис. 14.6. Соединения между предохранителями и приборами в простой электрической схеме.

Эти два правила опираются на некоторые факты (относящиеся к нашей конкретной схеме), а именно что лампа1 соединена с предохранитель1

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

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

 если

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

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

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

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

 то

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

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

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

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

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

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

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

 если

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

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

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

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

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

 то

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

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

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

 если

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

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

 то

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

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

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

% сгорел.

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

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

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

 если

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

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

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

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

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

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

 то

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

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

 если

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

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

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

 то

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

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

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

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

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

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

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

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

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

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

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

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

можно_спросить( вкл( П), вкл( 'Прибор') ).

можно_спросить( работает( П), работает(' Прибор')).

Рис. 14.7. База знаний для локализации неисправностей в схеме, показанной на рис. 14.6.

Упражнения

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

14.2. Придумайте какую-нибудь задачу принятия решений и сформулируйте соответствующие знания в форме "если-то"-правил. Можете рассмотреть, например, планирование отпуска, предсказание погоды, простой медицинский диагноз и лечение и т.п.

14.4. Разработка оболочки

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

Животное это млекопитающее :-

 Животное имеет шерсть;

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

Животное это хищник :-

 Животное это млекопитающее,

 Животное ест мясо.

...

Теперь эта программа сможет подтвердить, что тигр по имени Питер — это действительно тигр, если мы добавим в нее некоторые из свойств Питера (в виде прологовских фактов):

питер имеет шерсть.

питер ленив.

Поделиться:
Популярные книги

Моя на одну ночь

Тоцка Тала
Любовные романы:
современные любовные романы
короткие любовные романы
5.50
рейтинг книги
Моя на одну ночь

Черный Маг Императора 8

Герда Александр
8. Черный маг императора
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Черный Маг Императора 8

Измена. Отбор для предателя

Лаврова Алиса
1. Отбор для предателя
Фантастика:
фэнтези
5.00
рейтинг книги
Измена. Отбор для предателя

Кодекс Крови. Книга II

Борзых М.
2. РОС: Кодекс Крови
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Крови. Книга II

Шаг в бездну

Муравьёв Константин Николаевич
3. Перешагнуть пропасть
Фантастика:
фэнтези
космическая фантастика
7.89
рейтинг книги
Шаг в бездну

Часовая битва

Щерба Наталья Васильевна
6. Часодеи
Детские:
детская фантастика
9.38
рейтинг книги
Часовая битва

Вечная Война. Книга II

Винокуров Юрий
2. Вечная война.
Фантастика:
юмористическая фантастика
космическая фантастика
8.37
рейтинг книги
Вечная Война. Книга II

Хроники странного королевства. Вторжение. (Дилогия)

Панкеева Оксана Петровна
110. В одном томе
Фантастика:
фэнтези
9.38
рейтинг книги
Хроники странного королевства. Вторжение. (Дилогия)

Часовой ключ

Щерба Наталья Васильевна
1. Часодеи
Фантастика:
фэнтези
9.36
рейтинг книги
Часовой ключ

Инвестиго, из медика в маги

Рэд Илья
1. Инвестиго
Фантастика:
фэнтези
городское фэнтези
попаданцы
5.00
рейтинг книги
Инвестиго, из медика в маги

Кротовский, может, хватит?

Парсиев Дмитрий
3. РОС: Изнанка Империи
Фантастика:
попаданцы
альтернативная история
аниме
7.50
рейтинг книги
Кротовский, может, хватит?

Драконий подарок

Суббота Светлана
1. Королевская академия Драко
Любовные романы:
любовно-фантастические романы
7.30
рейтинг книги
Драконий подарок

Очешуеть! Я - жена дракона?!

Амеличева Елена
Фантастика:
юмористическая фантастика
5.43
рейтинг книги
Очешуеть! Я - жена дракона?!

Идеальный мир для Лекаря 9

Сапфир Олег
9. Лекарь
Фантастика:
боевая фантастика
юмористическое фэнтези
6.00
рейтинг книги
Идеальный мир для Лекаря 9