В данном случае предпосылка состоит в том, что определенный микроорганизм имеет форму палочки и размножается в воздушной среде. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

В данном случае предпосылка состоит в том, что определенный микроорганизм имеет форму палочки и размножается в воздушной среде.



Правило, которое включает такую предпосылку, на языке CLIPS имеет вид, показанный в листинге 5.1.

Листинг 5.1. Оргправило системы MYCIN, записанное на языке CLIPS

(defrule diagnosis

(patient (name Jones)

(organism organism-1))

(organism (name organism-1)

(morphology rod)

(aerobicity aerobic)) => (assert

(organism

(name organism-1)

(identify enterobacteriaceae)

(confidence 0.8)))

На языке CLIPS представление правила имеет следующий формат:

(defrule <наименование правила> <предпосылка1>

<предпосылка m > =>

<действие 1>

<действие n>

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

(organism (name organism-1)

(identify enterobacteriaceae)

(confidence 0.8)).

Таким образом, правило diagnosis означает следующее: если у определенного пациента обнаружена связь с определенным микроорганизмом, который имеет перечисленные в правиле свойства, то мы можем с определенным шансом на успех предполагать, что этот микроорганизм принадлежит такому-то классу. Это правило не является общим, поскольку применимо только к конкретному пациенту (Jones) и конкретному микроорганизму (organism-1). Гораздо чаще нам придется применять правила, которые пригодны для любого пациента и любого микроорганизма. В такие правила поле имени пациента вовсе не включается.

Желание сформировать общие правила требует включения в него переменных, которые играют роль местодержателя. В правиле, представленном в листинге 5.2, такие переменные отличаются от прочих членов наличием префикса? перед именем. Обратите внимание на то, что переменная?pat не появляется в заключительной части правила, а значит, использование поля имени пациента в предпосылках правила действительно является избыточным.

Листинг 5.2. Правило, в котором используются переменные

(defrule diagnosis

(patient (name?pat)

(organism?org))

(organism (name?org)

(morphology rod)

(aerobicity aerobic)) => (assert

(organism

(name?org)

(identify enterobacteriaceae) (confidence 0.8)))

При использовании правила интерпретатором вместо всех одноименных переменных подставляется одно и то же значение.

Рабочая память

Основная функция рабочей памяти — хранить данные в формате векторов объект-атрибут-значение. Эти данные используются интерпретатором, который в случае присутствия (или отсутствия) определенного элемента данных в рабочей памяти активизирует те правила, предпосылки в которых удовлетворяются наличными данными. Как это делается, рассмотрим на примере.

Пусть в рабочей памяти содержатся векторы

(patient (name Jones) (age 40)

(organism organism-1))

(organism (name organism-1)

(morphology rod) (aerobicity.aerobic)).

В очередном цикле интерпретатор просмотрит имеющийся список правил и отыщет в нем то, которое содержит условия, удовлетворяющиеся этими векторами.

Если предпосылка в правиле не содержит переменных, она удовлетворяется при точном совпадении выражений в правиле и в рабочей памяти. Если же предпосылка в правиле содержит переменные, т.е. является образцом, то она удовлетворяется, если в рабочей памяти содержится вектор, включающий такую пару атрибут-значение, которая остается постоянной при удовлетворении всех остальных условий в том же правиле.

В самом простом случае соответствие проверяется присвоением постоянных значений переменным, которые делают предпосылку совпадающей с вектором в рабочей памяти. Так, вектор состояния в рабочей памяти

(patient (name Jones) (age 40)

(organism organism-1))



Поделиться:


Последнее изменение этой страницы: 2021-07-18; просмотров: 32; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.137.192.3 (0.007 с.)