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

на главную

Жанры

Неизвестно

Шрифт:

read( Переменная),

запрос_перем( Переменные).

выд_трассу( [ ]) :-

nl, write( 'Это был ваш вопрос'), nl.

выд_трассу( [Цель по Прав | Трасса] ) :-

nl, write( 'Чтобы проверить по' ),

write(

Прав), write( ', что'),

write( Цель),

выд_трассу( Трасса).

конкретный( Терм) :-

нумпер( Терм, 0, 0). % Нет переменных в Терм'е

% конкретизация( Т1, Т2) означает, что Т2 - конкретизация Т1,

% т.е. терм Т1 - более общий, чем Т2, или той же степени

% общности, что и Т2

конкретизация( Терм, Терм1) :-

% Терм1 - частный случай Терм 'а

копия( Терм1, Терм2),

% Копия Терм1 с новыми переменными

нумпер( Терм2, 0, _), !,

Терм = Терм2. % Успех, если Терм1 - частный случай Терм2

копия( Терм, НовТерм) :-

% Копия Терм' а с новыми переменными

asserta( copy( Терм) ),

retract( сору( НовТерм) ), !.

посл_индекс( 0). % Начальный индекс для "сказано"

след_индекс( Инд) :- % Следующий индекс для "сказано"

retract( посл_индекс( ПослИнд) ), !,

Инд is ПослИнд + 1,

assert( посл_индекс( Инд) ).

Рис. 14. 11. Оболочка экспертной системы: Вопросы к пользователю

и ответы на вопросы "почему".

нумпер( Терм, N, М) :-

Терм =.. [Функтор | Аргументы], % Структура или атом

нумарг( Аргументы, N, M).

% Пронумеровать переменные в аргументах

нумарг( [ ], N, N) :- !.

нумарг( [X |

Спис], N, M) :-

нумпер( X, N, N1),

нумарг( Спис, N1, М).

14. 5. 4. Процедура выдать

Процедура

выдать( Ответ)

приведенная на рис. 14.12, показывает пользователю окончательный результат консультационного сеанса и дает объяснения типа "как". Ответ включает в себя как ответ на вопрос пользователя, так и дерево вывода, демонстрирующее как система пришла к такому заключению. Сначала процедура выдать представляет пользователю свое заключение. Затем, если пользователь пожелает узнать, как это заключение достигнуто, то печатается дерево вывода в некоторой удобной для восприятия форме - это и есть объяснение типа "как". Форма объяснения показана в примере разд. 14.4.3.

14. 5. 5. Драйвер верхнего уровня

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

% Выдача заключения консультационного сеанса и

% объяснения типа "как"

выдать( Ответ) :-

nl, заключение( Ответ),

nl, write( 'Хотите узнать, как?'),

принять( Ответ1),

( Ответ1 = да, !, отобр( Ответ);

true). % Показ решающего дерева

заключение( Ответ1 и Ответ2) :- !,

заключение( Ответ1), write( 'и'),

заключение( Ответ2).

заключение( Заключение было Найдено) :-

write( Заключение).

% "отобр" отображает полное решающее дерево

отобр( Решение) :-

nl, отобр( Решение, 0), !. % Отступ 0

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

Сталин

Рыбас Святослав Юрьевич
1190. Жизнь замечательных людей
Документальная литература:
биографии и мемуары
4.50
рейтинг книги
Сталин

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

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

Я царь. Книга XXVIII

Дрейк Сириус
28. Дорогой барон!
Фантастика:
боевая фантастика
аниме
попаданцы
5.60
рейтинг книги
Я царь. Книга XXVIII

Второгодка. Книга 3. Ученье свет

Ромов Дмитрий
3. Второгодка
Фантастика:
городское фэнтези
сказочная фантастика
альтернативная история
5.00
рейтинг книги
Второгодка. Книга 3. Ученье свет

Дружба

Фриза
Любовные романы:
современные любовные романы
9.07
рейтинг книги
Дружба

Князь Мещерский

Дроздов Анатолий Федорович
3. Зауряд-врач
Фантастика:
альтернативная история
8.39
рейтинг книги
Князь Мещерский

В поисках христиан и пряностей

Клифф Найджел
Страницы истории
Научно-образовательная:
история
5.00
рейтинг книги
В поисках христиан и пряностей

ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание

Троелсен Эндрю
Компьютеры и Интернет:
программирование
5.00
рейтинг книги
ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание

Красные звезды. Ядерный рассвет (сборник)

Березин Федор Дмитриевич
Красные звезды
Фантастика:
боевая фантастика
5.29
рейтинг книги
Красные звезды. Ядерный рассвет (сборник)

Домашняя медицинская энциклопедия. Симптомы и лечение самых распространенных заболеваний

Коллектив авторов
Научно-образовательная:
медицина
5.00
рейтинг книги
Домашняя медицинская энциклопедия. Симптомы и лечение самых распространенных заболеваний

Дом для демиурга Том 1: Поднимается ветер...

Kriptilia
1. Триада
Фантастика:
фэнтези
5.00
рейтинг книги
Дом для демиурга Том 1: Поднимается ветер...

День без вранья (сборник)

Токарева Виктория Самойловна
Проза:
современная проза
6.60
рейтинг книги
День без вранья (сборник)

Рекс

Орлов Алекс
Фантастика:
боевая фантастика
6.64
рейтинг книги
Рекс

Газлайтер. Том 14

Володин Григорий Григорьевич
14. История Телепата
Фантастика:
попаданцы
аниме
фэнтези
4.75
рейтинг книги
Газлайтер. Том 14