Стратегия установления выводимости формул в структурных функциональных моделях

11. Смирнов А.В., Юсупов Р.М. Совмещенное проектирование: необходимость, проблемы внедрения. - СПб.: СПИИРАН, 1992. - 439 с.

12. Минц Г.Е. Резолютивные исчисления для неклассических логик // 9-й Советский Кибернетический симпозиум. - 1981. -Т. 2. - № 4. - С. 34-36.

13. Fitting M. Proof methods for modal and intuicionistic logics // Synthesis Library. - 1983. - V. 169. - P. 56-78.

14. Voronkov A. How to optimize proof-search in modal logics: new methods of proving redundancy criteria for sequent calculi // ACM Transactions and Computational logic. - 2001. - V. 1. - P. 1-35.

15. Новосельцев В.Б., Бурлуцкий В.В. Реализация обратного метода для модальной логики KT. - Томск: ТГУ, 2001. - 147 с.

УДК 004.89

СТРАТЕГИЯ УСТАНОВЛЕНИЯ ВЫВОДИМОСТИ ФОРМУЛ В СТРУКТУРНЫХ ФУНКЦИОНАЛЬНЫХ МОДЕЛЯХ

Д.А. Коваленко, В.Б. Новосельцев

Томский политехнический университет E-mail: msmaklaud@gmail.com

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

Введение

Рассматривается формальное исчисление, используемое для установления выводимости предложений в рамках теории структурных (С-) функциональных моделей [1, 2]. Проведенные исследования традиционно относят к области искусственного интеллекта. Прикладной стороной исследования является создание интеллектуальных программных комплексов широкого класса, опирающихся на дедуктивный подход в области менеджмента знаний. Термин «знание» здесь имеет ограниченную трактовку: знания представляются специальными строго определенными информационными структурами, допускающими автоматизированную обработку с использованием аппарата формальной логики. Представляемые результаты могут быть использованы при реализации различных информационных комплексов, - от экспертных [3] и когнитивных систем [4] до инструментальных и СЛБЕ-оболочек быстрого прототипирования программ

[5].

В первом разделе определяются используемые понятия и необходимые соглашения. Во втором вводится понятие интерпретации С-модели и формулируется исчисление функциональных предложений для теории структурных моделей [6], а также исследуются некоторые свойства построенного исчисления. Третий раздел посвящен описанию стратегии и базового алгоритма установления выводимости предложений языка. Для алгоритма доказывается свойство корректности, и устанавливаются сложностные характеристики. Наконец, в последнем разделе кратко рассмотрены особенности введения рекурсии.

1. Базовые определения

Дадим основные определения. Прежде всего, зафиксируем сигнатуру Б.

Определение 1. Зафиксируем Е=(Л,Р,Р,Б), где Л, Б, Р и Б - не более чем счетные множества (элементарных) имен объектов, функциональных символов, селекторных символов и имен схем, соответственно. Выделим в Б непустое конечное подмножество ЕеБ имен примитивных или первичных схем.

Элементы множества Л используются для формирования (имен) объектов. Связь объекта а с некоторой схемой £ отражается записью ¿(а). Если объект а связан со схемой £ и ¿еЕ, стандартная запись ¿(а) заменяется записью аБ либо а, когда ссылка на схему не важна или очевидна из контекста.

Определение 2. Выражение вида

/:аь..,ап^ао,

где а;еЛ, ;=0,...,п - имена объектов, называется функциональной связью (ФС). В записи (1)/еБ -это имя ФС, а; - ее аргументы (; = 1,...,п), а0 - результат.

Имена объектов при моделировании прикладной предметной области (ПО) формируются следующим образом.

Определение 3. Пусть аеЛ,а- имя объекта, тогда а, а.а и а.а также являются именами. В записи а.а а называется префиксом. Длина имени а определяется числом вхождений элементов Л (с учетом возможных повторений).

Функциональные связи используются при задании (непервичных) схем объектов моделируемой ПО.

Определение 4. Схема S объекта r определяется выражением вида

S(r) = МОиХ- S0N0(a0N0)>

if Pl 3 S11

) ffer),

где SeD\E, re A. Для всех возможных значений индексов i,j, Se D - собственные подсхемы схемы S, aeA - ее собственные величины, р;еР - выбирающие селекторы. В правой части (2) r называется префиксом схемы, участок до вертикальной черты - заголовком, фрагмент if...fi - вариантной его частью, а остальная часть заголовка - постоянной частью. Иероглиф filter скрывает список собственных ФС схемы S. Префикс r может «проноситься» в скобочный фрагмент, так что r.(S(a),...)°(r.S(a),...)°(S(r.a),...). Аналогичным образом префиксируются имена селекторов и отображений, а также имена величин, вовлеченных в формирование ФС из filter.

Селекторы на интерпретации I получают истинностные (шкальные) значения и образуют полную систему, т. е. yij, Щ,р\1&р1\1=Лир1\1^...^рк\1=И.

Определение 5. Пусть S(r)=(...Sij(i^.aij)...) - схема. Если Sje E, то r.ay - имя величины схемы S. Если S ¡¡е D\E и а - имя величины схемы Sip то щ.а -имя величины схемы S. Величины схемы S будем также называть её атрибутами.

Определение 6. Рассмотрим схему S. ФС f:a1,...,an—a0 из filter называется допустимой для схемы S, если и только если a0, ab...,a„ - атрибуты схемы S. Схема называется синтаксически правильной, если filter содержит только допустимые ФС.

В дальнейшем рассматриваются только синтаксически правильные схемы. Помимо этого считается, что ФС из набора filter, отвечают следующим требованиям: (а) ФС содержит по крайней мере один собственный атрибут схемы; (б) в наборе filter нет ФС, в которые вовлечены атрибуты из разных ветвей вариантной части схемы S или атрибуты из вариантных частей её подсхем; (в) длина любого атрибута (имени), входящего в ФС, не превышает двух.

С каждым атрибутом связывается условие допустимости его существования в схеме.

Определение 7. Факт наличия условия р у атрибута a отмечается записью a/р, при этом a/р называется у-атрибутом. Считается, что с атрибутами, определёнными в общей части заголовка схемы, связывается условие И, - в этом случае фрагмент «/р» опускается.

Определение 8. Структурной (С-) моделью называется конечная совокупность (описаний) схем M=(Sl,...,Sm), где каждая S, i=l,...,n, является элементарной или задана в соответствие с определением 4. С-модель Мявляется (синтаксически) замкнутой, если и только если для каждого её элемента SeM схемы, встречающиеся в определении S, являются элементарными либо определены в описании С-модели M.

Описывая С-модель для предметной области, мы строим специальную (формальную) теорию, в которой можно решать, в частности, задачу установления выводимости предложений соответствующего языка и генерации реализующей вывод программы.

Постановка задачи в С-модели носит непроцедурный характер - в ней указываются лишь исходные и искомые атрибуты некоторой схемы. Содержательно, постановка задачи на модели есть задание на построение схемы алгоритма, реализующего требуемые вычисления. Схема алгоритма извлекается из (конструктивного) доказательства соответствующей теоремы существования (в силе [7]). Схема становится алгоритмом (программой) в результате задания интерпретации модели.

Определение 9. Задачей в С-модели Mназывается тройка T=(A0,X0,S), где A0 и X0 - наборы имён, соответственно, исходных и искомых величин, а S - схема С-модели M, в которой определены эти имена.

При исследовании свойств С-моделей и алгоритмов установления выводимости в них потребуется понятие развёртки схемы S.

Определение 10. Пусть S(r)=r.(...Sij(aj),...\filter) -схема, и Sfe E. Развёрткой S на атрибуте a9 называется выражение, получающееся в результате: (а) подстановки в заголовок исходной схемы на место Sa) заголовка схемы S9 и (б) присоединения к набору filter схемы S ФС схемы Sj. Все добавленные в схему S в результате такого действия атрибуты, имена селекторов и отображений модифицируются префиксом r.a(. Под полной развёрткой S С-мо-дели понимается объект, полученный из схемы S, у которой в результате последовательности развёрток на атрибутах в заголовке остаются только атрибуты, связанные с элементарными схемами.

Понятие схемы нетрудно переопределить с тем, чтобы оно оставалось корректным для развёртки на атрибуте и полной развёртки. При построении С-модели допускаются возможность рекурсивных определений схем. В общем случае рекурсивная конструкция должна содержать, по меньшей мере, одну цепочку определений вида S=(...[S2]...), S2=(...[S3]...),...,Sk=(...[Sj]...), обеспечивающую участие в дефиниции некоторого понятия ссылки на себя. Ясно, что для рекурсивной схемы полная развертка не определенна.

2. Интерпретация С-модели и исчисление SR

Интерпретация (семантика) С-модели вводится стандартным образом.

Определение 11. Интерпретация I С-модели M задаёт: (а) для каждой элементарной схемы Se E непустое множество (первичный тип) S\I; (б) для каждого функционального символа feF - отображение f \I:S1\Ix...xSn\I—>S0\I; (в) для каждого селекторареР -булевское отображениер \I:S1\Ix...xSn\I—{И,Л}.

В результате задания интерпретации каждой неэлементарной схеме сопоставляется отношение, т. е. множество наборов, удовлетворяющих некоторым условиям. Наборы принадлежат декартову произведению множеств, сопоставленных подсхемам схемы Элементы наборов поименованы атрибутами заголовка. Если в заголовке схемы присутствует альтернативная часть, то наборы отношения выбираются из размеченного декартова произведения [8]. Разметку определяют селекторы альтернативной части. Термин «тип атрибута» служит сокращением для выражения «множество, сопоставленное схеме, с которым связан атрибут». В отличие от первичного типа такой тип мы будем называть (непервичным или просто) типом, наборы типа - кортежами, а их именованные элементы - компонентами.

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

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

Используется только двухальтернативная форма вариантной части в (2): 1/р з...;...Д

Вводится понятие предложения вычислимости (ПВ) вида ¥:А^Х, служащее сокращением для {ДА^х,}, где - определяемые ниже программные термы, формирующие Д а Х°^{х;|.

Определение 12. Рассмотрим С-модель М=(...5...). Пусть а1/р1,...,ап/рп, х1/д1,...,хи/ди - у-атри-буты развёртки 5, ¥°Т:а1/р1,...,аУр„^х1/д1,...,хи/ди -предложение вычислимости, а г - кортеж, определяемый заголовком развёртки при некоторой интерпретации I. Будем говорить, что имеет смысл для кортежа г, если р,|1=И, /=1,...,и и ^=И, у=1,...,т.

Определение 13. Будем говорить, что ПВ удовлетворяет схеме 5, если при любой интерпретации I тип 511 не содержит двух кортежей, для которых Т|1 имеет смысл, таких что их компоненты совпадают для всех атрибутов множества А, но не совпадают по крайней мере для одного атрибута множества Х. При этом для произвольного кортежа г, который принадлежит отношению 511, результатом применения Т |1 к компонентам г, именованным атрибутами множества А, является набор компонент, именованных атрибутами множества Х. Все ФС схемы удовлетворяют ей по определению.

В исчислении имеется три сорта термов.

Определение 14. (1) Термы первого сорта (а-тер-мы) представляют собой упорядоченные списки атрибутов, имена которых строятся из элементов А.

(2) Термы второго сорта (у-термы) строятся из термов первого сорта и селекторных символов, принадлежащих множеству P, согласно следующей рекурсивной процедуре. Пусть p(n)eP - селектор, реализуемый «-местной булевской функцией, А -«-элементный терм первого сорта, такой, что его г-й атрибут связан с той же схемой, что и г-й аргументp; P и Q - термы второго сорта; а - некоторый атрибут; «-» и «&» - символы отрицания и конъюнкции, соответственно. Тогда перечисленные выражения являются термами второго сорта (других термов второго сорта нет): а.р(А), -P, P&Q. (3) Наконец, программные (пр-) термы третьего сорта строятся из термов всех сортов по следующим правилам. Пусть P - терм второго сорта; f g, h - функциональные символы (элементы множества F); F1, F2, F3 - термы третьего сорта и имеются вхождения символа g в F3; а - некоторый атрибут; F3[h/g] -обозначение замены вхождения g на h в терме F3. Тогда a.h:...—... - терм третьего сорта; F1;F2 - терм, построенный с применением оператора композиции; ifP then F1 else F2fi- терм (оператор ветвления); h=if P then F1 else F3[h/g] fi - терм (оператор рекурсии). - Других термов третьего сорта нет.

В рамках введенных соглашений используется базовый набор правил вывода:

(0) схема аксиом: UN:A—A.

(1) 'rF-A—XZ (правило сужения);

hF:A—X \~FA—X, Z/P \~f-Z —}x/p

\~F; f A'Z/P—X' Z, x/P&p

(правило композиции),

здесь P - конъюнкция (шкальных) условий достижимости атрибутов из Z, а p - условие допустимости х (условие достижимости - это условие, при котором в процессе построения доказательства обеспечивается достижимость некоторого атрибута, а условие допустимости - это условие, при котором атрибут имеет смысл в описании).

(3) l-FiA—X, x/Q&p \~F2 A—X x/Q&-p

\~if p then F i else F 2 fi A —X, x/Q (правило ветвления);

(4) bFi A—X,x/Q&p

gi:nk(A)—nk(X)...,gsrf'CA)—k(X) hF2A—X,x/Q&-p

_1_1_s_s_

h=if p then F1 else F2[h/gi]...[h/gs] fiA —X/Q (правило рекурсии). Построенное исчисление будем называть исчислением SR (structured recursive calculus).

Для исчисления SR справедливы следующие утверждения.

Теорема 1. Исчисление SR является корректным относительно понятия ПВ, удовлетворяющего схеме S.

Теорема 2. Исчисление SR является полным относительно понятия ПВ, удовлетворяющего схеме S.

3. Стратегия и алгоритм установления выводимости предложений SR

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

• Ск — множество у-атрибутов (развертки) исходной схемы, достижимость которых установлена на текущий момент;

• по-аксиома - проблемно-ориентированная или предметная аксиома - ФС из текущей схемы;

• «вход в подсхему» - наличие в Ck у-атрибутов, которые принадлежат подсхеме текущей схемы;

• А0 и S берутся из формулировки задачи T.

Описание алгоритма:

«установить /=0, С0=А0»;

«поднять флаг «продолжать доказательство»»;

«текущей схемой объявить S»;

while «поднят флаг «продолжать доказательство»» do if «имеется по-аксиома текущей схемы, аргументы которой входят в С» then «применить правило композиции, и, если возможно, правило ветвления»;

«построить С;+1: к С; добавить новые у-атрибуты либо изменить условия достижимости ранее полученных»; «установить /=/+1»;

«если определился вход в подсхему, запомнить её в стеке»;

else if «имеется подсхема, в которую определён вход» then «объявить её текущей схемой»; else if «текущая - рекурсивная схема» then «применить правило введения рекурсии; установить /=/+1»; «определить С+1»;

else «объявить текущей внешнюю схему»; fi fi fi;

if «текущая - исходная и нет по-аксиом, аргументы которых входят в С « then «опустить флаг «продолжать доказательство»» fi od. Для приведенного алгоритма справедлива следующая теорема.

Теорема 3. Приведённый алгоритм корректен, т. е. обеспечивает нахождение всех выводимых атрибутов. Верхней оценкой сложности алгоритма является выражение O(|M|3).

4. Особенности введения рекурсии

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

Определение 15. Пусть S(r) = r.(A,X, ... | filter) и пусть A - некоторый набор атрибутов схемы S. Замыканием A+ для A относительно S будем называть объединение всех таких атрибутов X, что ПВ F.A^X может быть получено с использованием правил SR из информации о схеме S.

Теперь предположим, что мы имеем рекурсивную детерминированную схему S(a)=a.(A,...if рз...; S(v),... fi | filter). Пусть, для простоты, все подсхемы за исключением S являются элементарными. По сделанному предположению схема S стала текущей с «входом», определяемым множеством A.

Введем следующие обозначения Arg и Res -множество аргументов и результатов рекурсивного ПВ соответственно;

Опишем на содержательном уровне процесс, который позволяет определить Arg и Res из заключения правила введения рекурсии. Сначала, не применяя правила (4) исчисления SR для схемы S, выводим из атрибутов A всё, что возможно. В Arg включаем все входные атрибуты A. Для этих атрибутов показана достижимость при условии, которое приписано постоянной части схемы S (условие «входа» в S). После этого определяем замыкание A+ и объявляем его окончательным множеством аргументов Arg.

В Res помешаем у-атрибуты из постоянной части схемы S не попадающие в Arg, для которых показана достижимость от Arg при условии нерекурсивной ветви, и такие, что вовлечены в левые части ФС вида a.fi..,a.v.b,...^a.c - «выводящие» из рекурсивного вхождения схемы a.S(v). Наконец, транзитивное замыкание полученного множества атрибутов Res+ объявляем окончательным множеством результатов рекурсивного ПВ.

Замечание 1. Если любое из транзитивных замыканий окажется пустым, применение правила введения рекурсии оказывается невозможным.

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

Заключение

Как показывает практика, стратегия, обеспечиваемая теорией С-моделей в комплексе с исчислением SR допускает весьма эффективные реализации разнообразных когнитивных систем. В силу того, что задача установления выводимости тесно связана с нахождением транзитивных замыканий специальных отношений, естественные варианты реализации опираются на прекрасно зарекомендовавшие себя и весьма эффективные подходы. Прежде всего, среди последних имеет смысл выделить алгоритмы Армстронга и Диковского[10]. В разных модификациях эти алгоритмы обладают полиномиальными оценками с невысокими степенями (линейные либо квадратичные), хотя и связаны с существенно более бедными по сравнению с

описываемыми здесь моделями. В первом случае речь идет о связях на атрибутах реляционных схем

СПИСОК ЛИТЕРАТУРЫ

1. Минц Г.Е. Резолютивные исчисления для неклассических логик. // 9-ый Советский Кибернетический симпозиум. - 1981. - Т. 2. - № 4. - С. 34-36.

2. Новосельцев В.Б. Использование методов ИИ в системах автоматизации атмосферно-оптических исследований. // Журнал оптики атмосферы и океана. Спец. выпуск. - 1998.- № 2. - С. 56-63.

3. Alty J.L. Expert systems. - Washington: NCC Publications, 1987. - 190 p.

4. Поспелов Д.А. Логико-лингвистические модели в системах управления. - М.: Энергоиздат, 1981. - 231 с.

5. Кахро М.И., Калья А.П., Тыугу Э.Х. Инструментальная система программирования ЕС ЭВМ (ПРИЗ). - М.: Финансы и статистика, 1981. - 216 с.

в базах данных, а во втором - рассматриваются линейные вычислительные модели.

6. Новосельцев В.Б. Синтез рекурсивных программ в системе СПОРА // Институт теоретической астрономии АН СССР. Алгоритмы небесной механики. - 1985. - № 43. - С. 21-45.

7. Минц Г.Е., Тыугу Э.Х. Полнота правил структурного синтеза // Доклады АН СССР. - 1982. - Т. 2. - № 6. - С. 41-60.

8. Дал У., Дейкстра Э., Хоар К. Структурное программирование. - М.: Мир, 1975. - 327 с.

9. Ульман Дж. Основы систем баз данных. - М.: Финансы и статистика, 1983. - 432 с.

10. Диковский А.Я. Детерминированные вычислительные модели // Техническая кибернетика. - 1984. - Т. 5. - № 5. - С. 84-105.

УДК 004.89

ОБРАБОТКА РЕКУРСИВНЫХ ДАННЫХ КОНЕЧНЫМИ АВТОМАТАМИ

В.Б. Новосельцев, В.В. Соколова

Институт «Кибернетический центр» ТПУ E-mail: vbn@osu.cctpu.edu.ru

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

Классическая парадигма работы с организованными данными определяется реляционной моделью Кодда [1]. При всей своей строгости и лаконичности эта модель обладает одним серьезным недостатком - она является существенно эксплицитной, т. е. не допускает «динамики» в процессе использования. Существует много рекурсивных моделей, в которых образующим элементом является определенная внутренняя структура, сама являющаяся объектом модели, например, модели геномов, сложные химические образования или экономические модели. В таких случаях, реляционный подход позволяет определять рекурсию на данных путем введения, например, явного понятия предка, однако, этот паллиативный вариант не более чем моделирует частичный порядок внесистемными конструкциями [2]. Определенное продвижение в организации рекурсивных данных может предоставить функциональный подход на основе А-форма-лизма Черча [3], реализованного, в частности, в семействе функциональных языков программирования класса ЛИСП, естественно включающих рекурсию, как базовую конструкцию управления.

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

претации первичной составляющей модели, либо применения некоторого автомата к другим данным. Таким образом, необходимо переопределить понятие запроса. Атомарный запрос есть первичное значение, допустимое в заданной интерпретации. Непервичный (автоматный) запрос определяется некоторым конечным автоматом и реализуется применением этого автомата к входным данным.

Входной поток для фиксированного запроса (автомата) представляет собой список, сформированный другими атомарными либо автоматными запросами. Термины запрос и автомат считаются синонимами, если не оговорено противного.

Различаются явное описание запроса и его реализация. Согласно классическому определению, конечный автомат - это система с ограниченным набором состояний и определенной дисциплиной переходов [4], поэтому любая система, обладающая ограниченным набором возможностей, каждая из которых может быть отмечена отдельным состоянием, может быть представлена в виде конечного автомата (КА).

Для строгого введения последующих понятий зафиксируем сигнатуру:

Е =