Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка по Прологу.doc
Скачиваний:
68
Добавлен:
01.05.2014
Размер:
501.25 Кб
Скачать

5.2.1. Синтаксис правил

Каждое правило базы данных может иметь следующую структуру, в которой строки, забранные в квадратные скобки, являются необязательными:

< type > < name >

DISPLAY < display string >

[ HELP < help string > ]

[ PRIOR < probability value > ]

< function name > < function parameters >

[ CONTEXT < context information > ]

где

< type > одно из hypothesis, intermediate или data;

< name >идентификатор правила, может быть любым допустимым именем Пролога;

< display string > строка, заключенная в кавычки, которая во время консультации отражает следующее:

data-правило показывает эту строку, чтобы подсказать пользователю, что он должен ввести, чтобы это правило оценивалось;

hypothesis-правило высвечивает эту строку как заключение гипотезы, если гипотеза достигла установленного уровня определенности;

для правил вcех трех типов эта строка показывается при выборе пункта трассировки заключения;

< help string > если нажата клавиша Esc во время ввода данных с использованием data-правила, эта строка, заключенная в кавычки, показывает текст помощи, записанный в теле этого правила;

< probabilityvalue>

с помощью параметра PRIORможно изменить ранее указанное соответствие между вероятностью и определенностью, чтобы показать, что это правило в оценке гипотезы предпочтительнее другого. Здесь указывается значение вероятности. Если этот параметр не указан, данное правило равновероятно может быть истинным или ложным и, следовательно, имеет значение вероятности, равное 0,5;

< function name > < function parameters >

задает функции экспертной системы и ее параметры, функции детально рассмотрены далее;

< contextinformation>

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

5.2.2. Функции

В PEXPERTимеется одиннадцать функций. Три из них:BAYES,ANDиORкомбинируют вероятности из одного или нескольких источников и возвращают новую вероятность.

BAYES

Параметры для BAYESдолжны быть заданы списком пар:

rulename1 inc i1 dec d1

rulename2 inc i2 dec d2

rulename3 inc i3 dec d3

Каждое значение inc должно быть по крайней мере 1 и каждое dec должно быть не больше 1. BAYES используется при обращении вероятностей в определенности, с которыми программа работает дальше.

AND и OR

Вероятность, возвращаемая AND-функцией, принимается самой низкой среди вводимых вероятностей; вероятностьOR-функции является наибольшей среди вводимых. Задаваемые параметры для этих функций имеют схожее представление:

AND rulename1

rulename2

rulename3

или

OR rulename1

rulename2

rulename3

NOT

Эта функция имеет единственный параметр:

NOT rulename

Если rulename связано с вероятностьюP,NOT-функция возвращает значение вероятности, равное1–P, ассоциированной с правиломrulename.

YESNO

Пользователь может давать прямые ответы в форме “да”, “нет” или “не знаю”, выбирая из меню. Эта возможность достигается использованиемYESNO-функции. Ответы транслируются в значения определенности как следующие:

Yes 5

Don’t know 0

No– 5

Пример правила, содержащего функцию YESNO:

data drive_yourself

display "Do you want to drive yourself?"

yesno

CERTAINTY

В некоторых случаях пользователь может ввести прямое значение определенности, которое затем конвертируется в вероятность. Значения определенности могут изменяться от –5 (определенно не верно) через 0 (не знаю) до +5 (определенно верно).

Пример:

data eats_meat

display "Does it eat meat?"

certainty

Если правило eats_meatоценивается во время выполнения программы, сообщение

Does it eat meat?

появится на экране и пользователь должен будет ввести значение определенности с клавиатуры.

VALUE

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

VALUE loverlimit upperlimit ,

в которой loverlimit иupperlimitопределяют диапазон допустимых числовых значений. Также возможно представить пользователю перечислимый диапазон в виде меню; в этом случаеVALUE имеет форму:

VALUE option1 option2 option3 …

Например:

data sun

display "How much sun was there today?"

help "Enter hours of sunshine today"

value 0 24

При оценке этого правила появится сообщение:

How much sun was there today?

Если введенное значение выходит за пределы диапазона (0, 24), будет предложено еще раз ввести значение.

Пример перечислимого диапазона:

data select_frut

display "Which frut do you like most?"

value apple orange banana

тогда во время работы программы появится меню:

apple

orange

banana

don’t know

Из этого меню пользователю предлагается выбрать подходящий параметр.

MAP

Когда выбор делается из меню, как в вышеприведенном примере, такое data-правило может быть связано с промежуточным правилом (типаintermediate), использующим одну из формMAP-функции. Например:

intermediate healthy_transport_to_work

display "Means of transport is healthy"

PRIOR 0.4

map transport_mode ( walk 0.9 ) ( bike 0.7 ) ( car 0.3 )

data transport_mode

display "Which means of transport will you use?"

value walk bike car

Во время выполнения появится сообщение:

Which means of transport will you use?

и пользователь может выбрать walk, bike, car или dont know из результирующего меню. Если выбран параметрbike, то правилоhealthy_transport_to_work будет ассоциировано с вероятностью 0.7. Если выбраноdont know, то это правило получит вероятность 0.4, так как имеет значение параметраPRIOR, равное 0.4.

Численные значения, введенные посредством VALUE, могут быть переведены в вероятность с помощью другой формыMAP-функции:

MAP rulename ( v1 p1 ) ( v2 p2 ) … ( vn pn ).

Здесь rulename является именемdata-правила, которое выдает числовое значение. Каждоеvi является этим значением и каждоеpi связано с ассоциированным с этим значением вероятностью. Еслиn > = 2, система вычисляет вероятность, соответствующую промежуточному значениюvi. При этом должно выполняться условие

v1 < v2 < … < vn.

Пример:

intermediate rail_speed

display "Desired journey speed permits rail use"

map speed ( 60 1 ) ( 150 0 )

Здесь значению скорости, равному 60, соответствует вероятность 1 и скорости, равной 150, – вероятность 0. На промежутке от 60 до 150 значение вероятности убывает линейно.

CONTEXT

Этот параметр используется, чтобы приостановить обработку экспертной системой правила, указанного в заголовке, если правило функции CONTEXTне достигло заданной определенности. В общем видеCONTEXTимеет следующую форму:

CONTEXT

rulename1 certainty_start1 certainty_stop1

rulename2 certainty_start2 certainty_stop2

. . .

rulenameN certainty_startN certainty_stopN ,

где rulenames – это правила, которые оцениваются с помощьюCONTEXT-функции;certainty_start и certainty_stop определяют диапазон, в котором должна находиться определенность правилаrulename.

Пример:

hypothesis tiger

display "Animal is a tiger"

and mammal tawny_colour carnivore black_stripes

context mammal 5 5 carnivore 5 5 cheetah – 5 0

Эта гипотеза идентифицирует животное как «тигр» при условии, что оно является млекопитающим (определенность mammal равна 5), хищником (carnivore) и в тоже время не является гепардом (определенность гипотезыcheetah от –5 до 0).