Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по СИИ.doc
Скачиваний:
175
Добавлен:
02.05.2014
Размер:
3.54 Mб
Скачать

2.5.9.1.3. Условия корректности вычислений над конъ­юнктивной базой данных

Пусть дано исходное состояние d0и система продукций

Рr = {рri = < qi , ri >}, i=1...n, n 0

Определение 5.НазовемРr корректнойнаd0,если не существует бесконечной последовательности применимых кd0продукций, и для лю­бых двух результирующих ситуацийd'иd",выводимых изd0, выполненоd'=d".

Определение 6.Систему продукций назовемконфлюэнтной,если для любых состояний базыd, d',d",таких, чтои,следует, что найдетсяd'"такое, чтои[104].

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

Множество продукций < qi ,ri >,для которых найдется такая подста­новка, чтоdqi, называетсяконфликтныммножеством продукций относительноd,CS{d)={<q,r >|dq},а конфликтное множе­ство фрагментовFr(d)определяется следующим образом:

Fr(d) = {d' d <q,r> d'=q}.

Так, в описанном выше примере, на втором шаге вывода конфликтное множество фрагментов состоит из двух ситуаций, описывающих наличие следующих веществ: {{MgO,H2}, {CuO,H2}}.

Для каждой пары элементов d'иd"изFr(d)выполнено одно из сле­дующих условий:

  • d'd" =, либо

  • d'd".

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

Пусть d' d" —общая часть фрагментовd' иd",к которым применимыpr1 =< q1, r1 >, рr2 = < q2, r2>,соответственно. Если программыr1иr2не исключают элементы изdиd", то такие продукции можно применять кd'иd" влюбом порядке.

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

В работе [104] сформулированы три достаточных в совокупности локальных условия конфлюэнтности асинхронных моделей вычислений. Для систем продукций эти условия примут вид:

  1. д

    d

    pr

    d''

    d

    pr

    d'

    етерминированность:d ,d', d"D,prРr,если и,, тоd'=d";

  2. к

    d

    pr1pr2 

    d'

    d

    pr2pr1

    d'',

    оммутативность:dDpr1, pr2Pr,еслиd',d"такие, что и

d

pr1pr2 

d'''

d

pr2pr1



d''';

тоd"'такое, что и

  1. устойчивость: d D pr1, pr2 Pr,еслиpr1 pr2иd',d"такие, чтои,тоd"'такое, что

Очевидным следствием этих условий является следующая теорема.

Теорема 1.ПустьРrсистема продукций такая, что каждая <q,r>Рrимеет позитивную программу. Тогда система продукций конфлюэнтна.

Доказательство.Поскольку каждая продукция содержит програм­му, состоящую только из операцийadd[d], которые по определению ком­мутативны и ассоциативны, то для позитивных программ определение вывода по продукции можно заменить на эквивалентное ему в этих ограничениях, а именно, будем говорить, чтоd1d2по продукциирr= <q,r+ >,если

,

где = {diq}. При такой модификации вывода система продукций с позитивными программами обладает свойством 1. Проверка условий 2 и 3 также очевидна, откуда следует, что система продукций конфлюэнтна. Этот класс систем продукций аналогичен реляционнымСП предложенным А. С. Клещевым.

Выполнение условий 1 и 2 исключает неоднозначность, связанную с выбором подстановки, выполнение условий 2 и 3 исключает неоднознач­ность, связанную с выбором продукции. Следующая теорема формули­рует достаточные условия отсутствия неоднозначности второго типа.

Теорема 2:Пусть Рr— система продукций, в которой выполнено условие: для любыхpr1= <q1, r1>,pr2=<q2,r2>,pr1pr2(T(q1)T(q2) =)(T(out(r1))T(q2) =). Тогда Рr— коммутативна и устойчива.

Доказательство.Пусть выполнено условие(T(q1) T(q2)=.

  1. Проверка условия коммутативности. Пусть имеем . Так какT(q1) T(q2)= , то существуютd'иd" такие, чтоd' = q1 1d1,d"=q22 d1 для некоторых подстановок1и2причем,d' d"=, а, следовательно,

d' d1\ d", d" d1\d'.

Тогда, по определению вывода, имеем

d3= r11 ( d') r22( d") ((d1\d')\d"),

d'3 = r22(d") r11(d') ((d1\ d")\d'), откуда следует, чтоd3=d.

  1. Проверка условия устойчивости. Пусть Анало­гично выше приведенным рассуждениям можно утверждать, что существует путь , где

Доказательствотеоремы для случая(T(out(r1))Т(q2)==)прово­дится аналогично.

Замечание.Система продукций, для которой на каждом шаге выво­да для любой продукции <р, q>существует единственная подстановкатакая, чтоq diгдеdi— текущее состояние базы, удовлетворяет условию детерминированности. Однако проверка этого условия осуще­ствляется на текущем состоянии базы и, следовательно, это условие не­возможно проверить статически на множестве продукций независимо от базы.

Теорема 3.ПустьPr={pri}— система продукций, для которой выполнены условия теоремы 2. Если дополнительно для любыхрri =< qi,ri >, prj =< qj,rj >, i, j = 1 . . . n

T(qi) T(in(rj)) = для исходного состояния базы d0 выполнено условие: для всех под­становокi, j,еслиqiI d0иqjj d0, то qii qjj =. ТогдаPrнаd0 корректна.

Доказательствоочевидным образом следует из теоремы 2 и предста­вляет собой модификацию для систем продукций условия корректности вычислений асинхронных программ.

Вернемся к примеру. Легко заметить, что условия теоремы 2 для него выполнены, т.е. различные продукции можно применить в такой системе внутри одного варианта вывода в любом порядке. Одна­ко условия теоремы 3 не выполнены. Это означает, что в этой системе результат зависит от состояния базы, т.е. от выбора подстановки.