Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Листинг 16.6. Управляющая процедура командного интерпретатора экспертной системы. Командный интерпретатор можно вызвать на выполнение из системы Prolog с помощью процедуры




expert

% Управляющая процедура верхнего уровня

expert:-

getquestion(Question), % Вывести приглашение пользователю к вводу вопроса (answeryes(Question) % Попытаться найти положительный ответ


answerno(Question)).

% Если положительного ответа нет, найти отрицательный

answeryes(Question):- % Поиск положительных ответов на вопрос Question
mar-kstatus(negative), % Положительных ответов еще нет

explore! Question, [], Answer), % Трассировка пуста


Глава 16. Командный интерпретатор экспертной системы



positive! Answer}, % Выполнить поиск положительных ответов

markstatusC positive), % Положительный ответ найден

present! Answer), nl,

write! 'Mere solutions? '),

getreply(Reply), % Получить от пользователя ответ на запрос

Reply = ПО. % В противном случае возвратиться к процедуре explore

answernoC Question):- % Выполнить поиск отрицательного ответа на вопрос

retract! no_positive_ari5wer_yet),!, % Положительного ответа не было?

explore] Question, [], Answer),

negative (Answer),

present! Answer), nl,

write("More negative solutions? '),

getreply{ Reply),

Reply - no. % В противном случае возвратиться к процедуре

markstatus(negative):-

assert (no_positive_answer_yet) * markstatust positive;:-

retract{ no_positive_answer yet},!

true. getquestion(Question):-

nl, write{ 'Question, please'), nl, read(Question).

Пояснения к программе командного интерпретатора

Создается впечатление, что в некоторых фрагментах рассматриваемой программы командного интерпретатора отсутствует декларативная ясность, характерная для программ Prolog. Причина этого состоит в том, что в подобном командном интерпре­таторе приходится обеспечивать более жесткое управление процессом выполнения, поскольку предполагается, что экспертная система не только находит ответ, но и обеспечивает его поиск таким способом, который представляется разумным для пользователя, постоянно взаимодействующего с системой. Поэтому в программе пришлось реализовать определенный процесс решения задачи, а не просто логиче­ский вывод на основе отношений, связывающих между собой входную и выходную информацию. В связи с этим результирующая программа действительно характери­зуется наличием более ярко выраженных процедурных свойств, чем обычно. Она от­носится к одному из таких примеров, в которых нельзя полагаться на собственный процедурный механизм Prolog, поэтому требуется подробно регламентировать проце­дурное поведение программы.





Поделиться с друзьями:


Дата добавления: 2015-10-01; Мы поможем в написании ваших работ!; просмотров: 402 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Свобода ничего не стоит, если она не включает в себя свободу ошибаться. © Махатма Ганди
==> читать все изречения...

2382 - | 2132 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.011 с.