Лекции.Орг


Поиск:




Категории:

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

 

 

 

 


Процедура explore




Основой командного интерпретатора является процедура explore; Goal, Trace, Answer)

Эта процедура находит в стиле обратного логического вывода ответ Answer на указанный вопрос Goal с использованием принципов, описанных в разделе 16.2.2. Для этого она находит Goal как факт в базе знаний, или применяет к базе знаний некоторое правило, или запрашивает пользователя, или обрабатывает Goal как ком­бинацию подцелей, соединенную операторами AND или OR

366 Часть II. Применение языка Prolog в области искусственного интеллекта


• Назначение и структура параметров этой процедуры описаны ниже.

• Goal. Это - рассматриваемый вопрос, представленный в виде комбинации простых высказываний, связанных операторами AND/OR, например, следую­щим образом:

(X has feathers) or {X flies} and (X lays eggs)

• Trace. Это — цепочка дочерних целей и правил, соединяющая текущую цель
Goal с первоначальной целью верхнего уровня и представленная как список
элементов в форме:

Goal by Rule Это означает, что выполнена проверка цели Goal с помощью правила Rule. На­пример, допустим, что целью верхнего уровня является "peter isa tiger" (Питер - тигр), а проверяемой в данный момент целью является "peter eats meat" (Питер питается мясом). Соответствующая трассировка, сформированная со­гласно базе знаний, которая приведена в листинге 16.1, показана ниже. t (peter isa carnivore) by rule3, (peter isa tiger) by rule5 ]

Эта трассировка означает следующее.

• Я могу использовать правило "peter eats meat", чтобы проверить с помо­щью правила rule3 истинность высказывания "peter isa carnivore" (Питер — плотоядное животное). Кроме того, я могу использовать высказыва­ние "peter isa carnivore", чтобы проверить с помощью правила ruleS ис­тинность высказывания "peter isa tiger".

• Answer. Это — дерево доказательства (т.е. дерево решения AND/OR) для во­проса Goal. Общая форма ответа Answer состоит в следующем:

Conclusion was Found

где Found представляет обоснование для заключения Conclusion. Ниже при­ведены три примера ответов, иллюстрирующих различные ситуации, возни­кающие при формировании ответов.

1. Обнаружен факт:

(connected| heater, fusel) is true) was 'found as a fact1

2. Получен ответ на запрос к пользователю; (peter eats neat) is false was told

3. Сформирован логический вывод на основании имеющихся и полученных све­дений:

(peter isa carnivore) i3 true was ('derived by' rule3 from (peter isa mammal) is true was ('derived by- rulel from (peter has hair) is true was told) and (peter eats meat) is true was told)

Код процедуры explore на языке Prolog приведен в листинге 16.3. В этом коде реализованы принципы, описанные в разделе 16.2.2, с использованием структур данных, указанных выше.

Листинг 16.3. Основная процедура командного интерпретатора экспертной системы

Процедура t % explore(Goal, Trace, Answer)

% находит ответ Answer, соответствующий заданной цели Goal, где Trace - цепочка

% родительских целей и правил, с помошьп которых процедура explore пытается

% кайти содержательный ответ на вопрос. Ответ Answer может принять ложное

I значение, только если ОЫЛИ проверены все варианты и для всех ник получен

I ложный результат

:- ор(900, xfx,::).


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



 

- op ( 800, xfx, was).
- op ( 870, fx,  
- op ( 880, xfx, then).
- Op ( 550, xf у, or).
- op ( 540, xfy, and).
- op( 300, fx, 'derivedby')
- op ( 600, xfx, from).
- op( 600, xfx, by).

% в этой программе предполагается, что директивы ор(700, xfx, is) 4 и op! 900, fx, not) уже введены

explore! Goal, Trace, Goal is true was ' found as a fact'):-fact:: Goal.

Ь Предполагается, что для цели каждого типа предусмотрено только одно правило


Goall

explore! Goal, Trace,

•derived by' Rule from Answer]:- Правило Rule, соответствующее цели Goal Trace], Answer),

Goal is TruthValue was

Rule:: if Condition then Goal,

explore [ Condition, [Goal by Rule

!,

truth{ Answer, TruthValue). explore) Goall and Goal2, Trace, Answer)

explore С Goall, Trace, Answerl),

continues Answerl, Goall and Goal2, Trace, Answer). explore! Goal] or Goal2, Trace, Answer]:-

exploreyes! Goall, Trace, Answer) - Ответ, соответствующий


exploreyes! Goal2, Trace, Answer). l Ответ, соответствующий цел:' Goal2 explore(Goall or Goal2, Trace, Answerl and Answer2):-!, not exploreyes! Goall, Trace, J),

not exploreyes i Goal2, Trace, _~), ': Соответствующий ответ отсутствует explore(Goall, Trace, Answerl), Ответ Answerl должен Сыть ложным explore (Goal2, Trace, Answer2). % Ответ Answer; должен быть ложным explore! Goal, Trace, Goal is Answer was -old):-

useransweri Goal, Trace, Answer).! Ответ, предоставленный пользователем

exploreyes! Goal, Trace, Answer):-

explore! Goal, Trace, Answer),

positive! Answer). continue! Answerl, Goall and Goal2, Trace, Answer):-

positive! Answerl),

explore! Goal2, Trace, Answer2), {positive С Answer2!,

Answer = Answerl and Answer2


: -

TruthValue)

negative!. Answer2),

Answer = Answer2

). continue; Answerl, Goall and Goal2, _, Answerl)

negative! Answerl). trutht Question is TruthValue was Found, truth [ Answerl andAnswer2, TruthValue)

truth(Answerl, true),

truth! Answer2r true], I,

TruthValue - true


: -


!.


TruthValue = false. positive(Answer):-

truth I Answer, true). negative{ Answer):-

truth С Answer, false).


getreply! Reply):-read (Answer), means С Answer, Reply),!


% Ответ имеет смысл для программы?


 



Часть II. Применение языка Prolog в области искусственного интеллекта


i

nl, write('Answer unknown, try again please'), nl, % Нет

getreply(Reply). % Сделать еще одну попытку

means(yesr yes). means { y, yes),. means { no, no). means in, no). means! why, why). meansI w, why).





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


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


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

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

Студент может не знать в двух случаях: не знал, или забыл. © Неизвестно
==> читать все изречения...

2806 - | 2367 -


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

Ген: 0.011 с.