Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Формальные модели систем продукций
Среди наиболее известных формальных моделей СП следует указать реляционную модель А.С. Клещева, К-системы В.Е. Кузнецова, реляционные модели S.Vere и модель управляемой СП M.Georgeff. Яхно Т.М. была предложена алгебраическая модель СП, которая обобщает перечисленные выше модели и позволяет описывать поведение СП в самом общем виде [67, 69, 70]. Алгебраическая модель Рассмотрим основанный на теории алгебраических систем формальный аппарат, который позволяет дать строгую трактовку системам продукций и исследовать свойства, влияющие на эффективность поиска решения в них. 2.5.9.1.1. Основные определения Введем понятия из теории моделей в том объеме, в котором они понадобятся для дальнейшего изложения. Согласно терминологии работы [129], многосортная алгебра A = < (sA)sÎ S, (fA)fÎ F> состоит из семейства множеств-носителей sA и семейства частичных функций fA: fA: s1A ´ s2A ´ ... ´ sn-1A® snA, n³ 0, Сигнатура S = (S, F) состоит из непустого множества S — символов для обозначения индексов множеств-носителей, называемых также сортами, и непустого множества F функциональных символов, каждому из которых приписана схема отображения f: s1 ´ s2 ´ ... ´ sn-1® sn, n³ 0, означающая запись арности функции, сортность ее аргументов и результата. Для сигнатуры S = (S, F) многосортная алгебра A = < (sA)sÎ S, (fA)fÎ F> называется S-алгеброй, если схемы отображений для всех fÎ F согласованы с соответствующими отображениями fA. Пусть задана сигнатура S = (S, F). С каждым сортом s Î S свяжем счетное множество Xs переменных и определим множество термов TR и функцию тип: TR —> S следующим образом: - всякая переменная х Î Xs есть терм, причем тип(х) = s; - всякий нульарный функциональный символ (константа) fÎ F со схемой отображения f: х ® s есть терм, причем mun(f) = s; - если fÎ F имеет схему f: s1 ´ ... ´ sn-1 ® sn и t1, t2, …, tn-1 — термы, где mun(t1) = s1, ..., mun{tn-1} = sn-1, то f(t1, t2,..., tn-1) — терм, mun(f(t1, t2,..., tn-1)) = sn. Заметим, что везде в дальнейшем предикатные символы рассматриваются как функциональные со схемой отображения в специальный выделенный сорт BOOLA = {0, 1}. В дальнейшем считаем заданными сигнатуру Σ = (S, F) и Σ – алгебру A=< (sA)sÎ S, (fA)fÎ F> . Определение 1. Назовем фактом упорядоченный список вида (fA, e1,..., en), где fÎ F, f: s1 ´ s2 ´ ... ´ sn-1 ® sn, ei Î TR, mun(ei) = si, i = 1...n. В этих обозначениях ситуацией назовем конечную конъюнкцию фактов. В дальнейшем через D будем обозначать множество всевозможных ситуаций. Заметим, что понятие ситуации соответствует понятию текущего состояния базы данных или рабочей памяти. Проиллюстрируем введенные понятия простым примером. Рассмотрим алгебраическую систему A = < (R, BOОLA), (+, -, *, ³ ) >, где R — множество вещественных чисел, BOOLA={0, 1}; +, —, *, ³ — обычные операции и отношения над числами. Переменные будем обозначать буквами x, у, z. Тогда уравнение х+у =5 запишется в виде следующего факта: (+, x, y, 5), а система соотношений х+y=5, y ³ 0, х £ 3 в виде ситуации: d0 = (+, x, y, 5) Ù (³, у, 0, 1) Ù (³, 3, x, 1) Если все еi, (i = 1... n) в факте суть константы, то факт назовем терминальным. Поскольку среди фактов ситуации могут быть нетерминальные, то, в общем случае, ей соответствует неединственный набор множеств носителей алгебраической системы. Для простоты изложения в дальнейшем ограничим термы в определении факта константами и переменными, что не нарушает общности изложения, поскольку термы с функциональными символами могут быть записаны в ситуации без них увеличением числа переменных. Например, отношение х+ у ³ 2 запишется в виде (+, х, у, z) Ù (³, z, 2, 1). Определенная таким образом ситуация представляет собой множество конъюнктивно-связанных фактов, и поэтому в дальнейшем будем обращаться с нею как с множеством, используя операции объединения È, пересечения Ç, разности \ и отношение включения Ê. Обозначим через var{d) множество имен переменных, входящих в ситуацию d, а через T(d) = {mun(x)½ x Î var(d)} — множество типов переменных, входящих в факты ситуации d. Традиционным образом введем понятие подстановки q= {t1/v1, t2/v2, ..., tm/vm}, где ti — термы, vi — переменные, mun(ti) = mun(vi), i = 1...т. Запись dq означает результат одновременной замены каждого вхождения переменной vi, в d на соответствующий терм ti. Подстановку q = {x1/y1, x2/y2, ..., xm/ym}, где xi, уi, (i = 1...m) — переменные, назовем алфавитным вариантом. Для каждого алфавитного варианта определена обратная к нему подстановка q -1 при условии, что между переменными определено взаимно - однозначное соответствие. Определение 2. Две ситуации d и d' назовем эквивалентными (d º d'), если найдется алфавитный вариант q такой, что d Ê d' q и d' Ê dq -1. Пусть, например, задана подстановка q = {3/x, z/y}. Тогда ее применение к ситуации d0, приведенной выше, дает d0 q = (+, 3, z, 5) Ù (³, z, 0, 1) Ù (³, 3, 3, 1). Очевидно, что относительно терминальных фактов, каким, например, является (³, 3, 3, 1), в заданной алгебраической системе всегда можно говорить, истинны они или ложны. Все истинные терминальные факты опускаются при дальнейшем рассмотрении, так как они являются тавтологиями. Таким образом, ситуация d0 q эквивалента ситуации d0 q = (+, 3, z, 5) Ù (³, z, 0, 1). Если при подстановке появляется ложный терминальный факт, то считается, что подстановка неприменима к заданной ситуации. 2.5.9.1.2. Операции преобразования ситуации Определим основные преобразования ситуации, к которым относятся исключение и добавление фактов. Для фиксированного 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-17; Просмотров: 987; Нарушение авторского права страницы