Пусть задано порождающее правило в форме 


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



ЗНАЕТЕ ЛИ ВЫ?

Пусть задано порождающее правило в форме



а1$1...am$m-> b1$'1...bn$'n

В нем a1$1... аm$m часто называют антецедентом (antecedent) правила, а b,$'1... bn$'n консеквентом (consequent) правила, по аналогии с условным выражением логики высказываний (см. главу 8). Условный оператор обычно записывается в виде

p U q1 что означает, "если р, то q", например "если вы упали в реку, то будете мокрым".

Однако часто значок 'U' заменяют значком '->', что вряд ли стоит делать, поскольку последний несет более императивный или разрешающий смысл. Как правило, он говорит не столько о логическом следствии, сколько о том, что нужно сделать, или о том, что можно было бы сделать.

Правило в форме Х->У говорит о том, что можно записать, сгенерировать или породить консеквент У при заданном анцеденте X. Оно не говорит о том, что набор X, У является неразрывно связанной последовательностью, как в примере с купанием в реке. Правила переписывания в теоретической лингвистике называются "порождениями", поскольку правило вида

S->NP+ VP

имеет следующую интерпретацию: "один из способов сформировать предложение S состоит в том, чтобы взять существительное (NР) и добавить к нему глагол (VP)".

Системы порождающих правил для решения проблем

Хотя в приложении к экспертным системам порождающие правила и отличаются от тех правил переписывания, о которых шла речь выше, фундаментальные принципы и формальные свойства их остаются теми же. Но при этом нас интересует не столько сама по се-

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

Синтаксис представления правил

В настоящее время порождающие правила обычно реализуются в форме правил, манипулирующих с символическими структурами типа списка векторов, а не строк символов. В этом сказывается влияние языков программирования вроде LISP и тех структур данных, которые они поддерживают. (В ранних реализациях использовались языки манипулирования символами, например SNOBOL.)

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

подмножества N имен объектов предметной области;

подмножества Р имен свойств, которые рассматриваются в качестве атрибутов объектов;

подмножества V допустимых значений атрибутов.

На практике подмножества N и V перекрываются.

Используемая грамматика, как правило, имеет вид триад объект-атрибут-значение. Триада (v, л, w) существует, если v принадлежит N и л принадлежит Р, w принадлежит V. Например, триада

(ОРГАНИЗМ-1, морфология, палочка)

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

Представленная синтаксическая форма обобщается в том случае, когда нужно для некоторого объекта v представить «вариантов пар атрибут-значение (л1,w1)..., (лn,wn). В таком случае они объединяются в вектор в форме

(v, л1, w1,..., лn, wn).

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

(organism-1 (morphology rod) (aerobicity aerobic)).

В дальнейшем мы будем повсеместно использовать именно такой синтаксис, поскольку CLIPS будет нашим основным программным инструментом.

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

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

Продукционная система (production system) состоит из множества правил (иногда этот набор правил называют продукционной памятьюproduction memory), интерпретатора правил, который решает, когда надлежит применить каждое из них, и рабочей памяти, содержащей данные, описание цели и промежуточные результаты, в совокупности определяющие текущее состояние проблемы. Именно структуры данных в рабочей памяти анализируются и преобразуются порождающими правилами. Обращение к правилам синхронизируется текущими данными, а интерпретатор правил управляет выбором и активизацией определенных правил в каждом цикле.

Схематически правила в продукционной системе имеют такую обобщенную форму:

P1,..., Pm,->Q1,..., Qn

которая читается следующим образом:

если предпосылки Р1 и... и Рт верны, то выполнить действия Q1 и... и Qn.

Предпосылки часто называются условиями, а действия — заключениями, поскольку один из видов действий — сделать заключение, если встретилось такое сочетание условий, которое делает истинным или вероятным определенное порождающее правило, как это было показано в главе 3. Иногда используется и другая терминология, согласно которой предпосылки называются левой частью правила, а действия — правой.

Предпосылки обычно бывают представлены в форме вектора объект-атрибут— значение, как, например:

(organism-1 (morphology rod) (aerobicity aerobic)).



Поделиться:


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

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