Операции преобразования ситуации
Определим основные преобразования ситуации, к которым относятся исключение и добавление фактов. Для фиксированного d' Î D:
1. Операция исключения: elim[d'] : D ®D
elim[d'](d) = d\ d'
2. Операция добавления: аdd[d'] : D ®D
add[d'](d)=d È d'
Определим множество программ R преобразования ситуации следующим образом. Во-первых, будем считать элементами R программы add[d'], elim[d'] при любых d' Î D, во-вторых, если две программы r1, r2 Î R, то программа (r1; r2) определенная равенством (r1; r2) (d) = r2(r1(d)), "d Î D, также элемент R.
Для любого r Î D введем множество in(r) переменных, добавляемых программой r, и множество out(r) переменных, исключаемых r, по следующим правилам: "d' Î D
- out(add[d']) = Æ, in(add [d']) = var(d');
- out(elim[d']) = var(d'), iп(еliт[d']) = Æ;
- out (r1; r2) = out(r1) È оиt(r2), in(r1; r2) = in (r1 ; r2 ) È in(r2).
Определение 3. Программу r+ , содержащую только операции типа add[d'] ("d' Î D), назовем позитивной. Заметим, что out(r+) = Æ и, если d2 = r+(d1), то d2 Ê d1.
Через rq, где q = [t1 /x1, ... , tm /xm} — произвольная подстановка, обозначим программу r, во всех операциях которой аргументы-переменные xi заменены на сопоставленные им в q термы ti, i = 1...m. Переменные программы, которым не сопоставлены в подстановке q никакие термы, заменяются на новые, еще неиспользованные переменные из множества Xs , s Î S.
Определение 4. Продукцией назовем пару < q, r >, в которой q — ситуация, называемая условием применимости продукции, r — программа, rÎ R, называемая действием, причем q и r связаны соотношением
var(q) Ê out(r).
|
d2=r(qq)È (d1\qq).
Если найдется последовательность продукций рr1, рr2, ..., prk, pri Î Pr, i = 1...k, k³ 0, и состояний базы d0, d1, …, dk таких, что
|
|
то говорим, что dk выводимо из d0, и пишем или , a pr1, рr2, ..., prk назовем последовательностью применимых к d0 продукций.
Если и "pr ( => d' = dk), то dk назовем результирующей ситуацией d0.
Рассмотрим вывод по продукции на примере задачи планирования химического синтеза. Предположим, что можно провести следующие химические реакции:
MgO + Н2 ® Mg + Н2O ,
СиО + Н2 ® Си + H2O,
Zn + H2S04 ® ZnS04 + Н2.
Опишем предметную область посредством многосортной алгебры с множествами носителями:
окись = {MgO, CuO},
металл = {Mg, Cu, Zn},
газ={Н2, 0},
соль = {ZnSO4},
кислота = {H2S04},
вода= {Н2О},
вещества = окиcь È металлÈ газ È сольÈ кислотaÈ вода
и отображениями
основание: окись —> металл (например, основание (MgO) = Mg);
формула:вещества —> вещества (тождественное преобразование, сопоставляющее веществу его химическую формулу).
Тогда химические реакции можно переписать в виде следующих продукций (в некотором условном синтаксисе):
1) pr1 =< q1, r1 >,
где q1 = (mun, х, окись) Ù (основание, х, у) Ù (тип, у, металл) Ù (формула, z, Н2) Ù (тип, z, газ);
ri = add[(mun, z', вода) Ù (формула, z', Н2О) Ù (mun,z", металл) Ù (формула, z",y)];
elim[(тип, x, окись) Ù (формула, z, H2) Ù (тип, z, газ)]
2) рr2 =< q2, r2 >,
где q2 = (тип, x, металл) Ù (формула, х, Zn) Ù (формула, z, H2SО4) Ù (тип, z, кислота),
r2 = аdd[(тип, z', газ) Ù (формула, z', H2) Ù (тип, z", соль) Ù (формула, z", ZnSО4)];
elim [(тип, x, металл) Ù (формула, х, Zn) Ù {тип, z, кислота) Ù (формула, z, H2SО4)].
Первой продукции соответствуют первые две реакции, вторая — описывает третью реакцию.
Пусть имеется информация о наличии веществ {MgO, CuO, Zn, H2SО4}, что задается следующей исходной ситуацией:
d0=(mun, e1, окись) Ù (основание, e1, Mg) Ù (тип, е2, окись) Ù (основание, е2, Сu) Ù (формула, e1, MgO) Ù (формула, е2, CuO) Ù (тип, е3, металл} Ù (формула, е3, Zn) Ù (тип, е4, кислота) Ù (формула, e4, H2SО4).
Для наглядности в дальнейшем не будем выписывать факты ситуации, а ограничимся лишь перечислением химических элементов, информация о которых задается ситуацией.
Ставится задача: какие вещества могут быть получены (результирующая ситуация) из заданных по продукциям pr1 — pr2.
Рассмотрим процесс вывода. На первом шаге применима продукция рr2, которая приводит к ситуации, описывающей наличие следующих веществ: {MgO, CuO, H2, ZnS04}.
На втором шаге применима лишь продукция рr1, однако для нее существуют две подстановки
q1 = {Mg/y,e1/x}, q2 = {Сu/у, е2/х},
что дает в первом случае ситуацию, описывающую наличие веществ {Mg, H20, CuO, ZnS04}, а во втором — {MgO, Н20, Си, ZnS04}.
Из примера видно, что результирующая ситуация зависит в общем случае от выбора подстановки и порядка применения продукций, т.е. неоднозначна. Для СП, результат конъюнктивного вывода в которых однозначен, разработаны эффективные методы поиска решений (каким, например, является использование смешанных вычислений [91] в реляционной модели [24]). Поэтому в этой модели СП актуальна задача выделения подклассов, в которых результирующая ситуация однозначна.
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>, для которых найдется такая подстановка q, что d Ê qiq, называется конфликтным множеством продукций относительно d, CS{d) = {< q,r > | $qd Ê qq}, а конфликтное множество фрагментов Fr(d) определяется следующим образом:
Fr(d) = {d' Í d½$q $ <q,r> d'=qq}.
Так, в описанном выше примере, на втором шаге вывода конфликтное множество фрагментов состоит из двух ситуаций, описывающих наличие следующих веществ: {{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)
|
|
2)
|
|
|
|
3)устойчивость: "d Î D "pr1, pr2 Î Pr, если pr1 ¹ pr2 и $d',d" такие, что и , то $d"' такое, что
Очевидным следствием этих условий является следующая теорема.
Теорема 1. Пусть Рr — система продукций такая, что каждая < q,r > Î Рr имеет позитивную программу. Тогда система продукций конфлюэнтна.
Доказательство. Поскольку каждая продукция содержит программу, состоящую только из операций add[d], которые по определению коммутативны и ассоциативны, то для позитивных программ определение вывода по продукции можно заменить на эквивалентное ему в этих ограничениях, а именно, будем говорить, что d1 ® d2 по продукции рr = < q,r+>, если
,
где q ¢ = {q½di Ê qq}. При такой модификации вывода система продукций с позитивными программами обладает свойством 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 q1 Í d1, d" = q2q2 Í d1 для некоторых подстановок q1 и q2 причем, d' Ç d" = Æ, а, следовательно,
d'Í d1\ d", d"Í d1\d'.
Тогда, по определению вывода, имеем
d3= r1q1 ( d') È r2q2( d")È ((d1\d')\d"),
d'3 = r2q2(d") È r1q1(d') È ((d1\ d")\d'), откуда следует, что d3 = d .
2. Проверка условия устойчивости. Пусть Аналогично выше приведенным рассуждениям можно утверждать, что существует путь , где
Доказательство теоремы для случая (T(out(r1)) Ç Т(q2) == Æ) проводится аналогично.
Замечание. Система продукций, для которой на каждом шаге вывода для любой продукции <р, q> существует единственная подстановка q такая, что qq Í di где di — текущее состояние базы, удовлетворяет условию детерминированности. Однако проверка этого условия осуществляется на текущем состоянии базы и, следовательно, это условие невозможно проверить статически на множестве продукций независимо от базы.
Теорема 3. Пусть Pr = {pri} — система продукций, для которой выполнены условия теоремы 2. Если дополнительно для любых рri =< qi,ri>,prj =< qj,rj>,i, j = 1 . . . n
T(qi) Ç T(in(rj)) =Æ для исходного состояния базы d0 выполнено условие: для всех подстановок qi, qj, если qiqI Í d0 и qjqj Í d0, то qiqi Ç qjqj =Æ. Тогда Pr на d0 корректна.
Доказательство очевидным образом следует из теоремы 2 и представляет собой модификацию для систем продукций условия корректности вычислений асинхронных программ.
Вернемся к примеру. Легко заметить, что условия теоремы 2 для него выполнены, т.е. различные продукции можно применить в такой системе внутри одного варианта вывода в любом порядке. Однако условия теоремы 3 не выполнены. Это означает, что в этой системе результат зависит от состояния базы, т.е. от выбора подстановки.
Дата добавления: 2016-03-05; просмотров: 634;