Метод вычислений в параллельном логическом выводе

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

Рубрика Математика
Вид статья
Язык русский
Дата добавления 18.01.2018
Размер файла 32,7 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Метод вычислений в параллельном логическом выводе

Д.А. Страбыкин (strabykin@mail.ru)

М.М. Шихов (kafevm@mail.ru)

Вятский государственный университет, Киров

Введение

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

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

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

1. Модификация формальной системы IP с целью введения вычислений

За основу был взят обобщенный метод параллельного дедуктивного вывода, представленный в работе [Страбыкин, 1998], в котором отсутствует возможность вычислений. Метод использует вводимую в той же работе формальную систему IP, которая подвергается незначительной модификации. Значениями будем называть специально вводимые символы, например, числа, строки, матрицы и т.д.

Изменяется определение терма.

Всякая предметная переменная (xiN), значение или функциональный символ (ajN) есть терм (будем обозначать либо просто t, либо tN, когда необходимо. Множество значений функциональных символов также будем называть множеством предметных констант).

Если tN, t1,…,tN - термы, то tN(t1,…,tN) - также терм.

Если t - терм, то e(t) - терм. Здесь e - специальный символ, обозначающий вычислитель.

Других правил образования термов нет.

Вводятся дополнительные аксиомы. При этом мы полагаем, что в обозначении A[…,t,…] атом A имеет вхождения терма t в своем составе.

Аксиома вычисления предметной константы:

A[…,e(ai),…]> A[…,ai,…].

Аксиома вычисления функции с константными аргументами:

A[…,e(a0N(a1,…,aN)),…]>A[…,aM,…],

где aM есть результат отображения a0N:(a1,…,aN) > aM. При этом все аргументы функции a0N в левой части формулы являются предметными константами.

Обобщенная аксиома вычисления функции:

A[…,e(t0N(t1,…,tN)),…]>A[…,e(e(t0N)(e(t1),…, e(tN))),…].

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

2. Реализация вычислений на подстановках

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

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

Подстановку л удобно определить как объединение двух непересекающихся множеств: л= лv лe. Множество лe составляют замены вида e(t)/x, где t - терм, x - переменная исчисления, e(t) - вычислитель. Оставшиеся элементы t/x составляют множество лv. В заменах t/x лv не может быть вхождений вычислителя e(t'). Это достигается за счет того, что t[…,e(t'),…]/x преобразуется в t[…,y,…]/x, а к множеству лe добавляется замена e(t')/y. Здесь y - фиктивная новая переменная предметной области. Причины такого подхода - минимизация объемов вычислений и упрощение описания алгоритмов. Также введем ряд дополнительных обозначений. Подстановку, не содержащую ни одной замены, будем обозначать . Подстановку, в которой присутствуют замены, конфликтующие по одной и той же переменной, причем термы-значения этих переменных не могут никакими заменами переменных в их составе сведены к одному значению, будем называть несогласованной и обозначать .

Результат работы вычислителя зависит от ограничений, накладываемых на область определения функций в составе его аргумента, и влияет на ход алгоритма согласованного объединения подстановок. Внутри системы вычислитель удобно рассматривать в виде процедуры, определенной следующим образом: e=<t, v, s>, где t - исходный терм; v - результат вычисления; s - признак окончания вычислений. Признак окончания s может принимать следующие значения: 0 - вычисления прошли без ошибок и v - константа предметной области; 1 - вычисления прошли без ошибок, но v - не является константой; 2 - в ходе вычислений возникли ошибки, делающие дальнейшее согласование подстановок невозможным. Алгоритм процедуры задается следующим образом.

1. Если терм принадлежит множеству констант предметной области, то v=t, s=0. Переход к пункту 10.

2. Если терм принадлежит множеству переменных, то v=e(t), s=1. Переход к пункту 10.

3. Если t=e(t'), то выполняется e<t',v,s>. Переход к пункту 10.

4. Иначе терм t есть функция t0(t1, …, tn). Для каждого ti (0 i n) рекурсивно выполняется e<ti, vi, si>.

5. Если max(s1,…,sn)=2, то v=e(t), s=2. Переход к пункту 10.

6. Иначе, если max(s1,…,sn)=1, то v = e(v'0(v'1, …, v'n)), s=1. Где v'i = t'i, если v'i=e(t'i), и v'i=vi иначе. Переход к пункту 10.

7. Осуществляется проверка принадлежности кортежа (v1,…,vn) области определения функции v0.

8. Если значения (v1,…,vn) не принадлежат области определения, то v=e(v0(v1,…,vn)), s=2. переход к пункту 9.

9. Иначе, если значения (v1,…,vn) принадлежат области определения, то выполняется отображение v0:(v1,…,vn) v. Фиксируется s=0.

10. Конец процедуры e.

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

вычисление параллельный логический вывод

3. Определение наименьшего общего унификатора

Задачи унификации термов и согласованного объединения подстановок тесно связаны между собой. Чтобы иметь возможность рассматривать согласованное объединение подстановок как операцию, вводится отношение строгого порядка на множестве переменных.

Рассмотрим все варианты возможных унификаций термов. Результатом унификации t0(t1,…,tn) и t'0(t'1,…,t'm) будет согласованное объединение подстановок {t0/y0,t1/y1,…,tn/yn} и {t'0/y0,t'1/y1,…,t'm/ym}. Особенностью специальных вспомогательных переменных yi (1 i max(m, n)) является то, что сравнение x<yi всегда истина для любой x из предметной области. Из результата согласованного объединения подстановок все элементы вида t/yi могут быть исключены. Результатом унификации t0(t1,…,tn) и предметной константы a всегда будет . Результатом унификации t0(t1,…,tn) и переменной x будет либо , если t0(t1,…,tn) содержит вхождения x, либо подстановка {t0(t1,…,tn)/x}. Результатом унификации t0(t1,…,tn) и вычислителя e(t) всегда будет . Результатом унификации констант a и a' будет либо (если a?a'), либо (если a=a'). Результатом унификации константы a и переменной x всегда будет подстановка {a/x}. Результатом унификации константы a и вычислителя e(t) будет подстановка {a/y, e(t)/y}, где y - фиктивная переменная (x<y всегда истина для любой x из предметной области). В дальнейшем если e(t) будет вычислен и окажется равным a, замены с фиктивной переменной можно удалить из результата. Результатом унификации двух переменных x и x' будет либо (если x=x'), либо {x/x'} (если x<x'), либо {x'/x} (если x'<x). Результатом унификации переменной x и вычислителя e(t) всегда будет подстановка {e(t)/x}. Результатом унификации двух вычислителей e(t) и e(t') будет либо (если t=t'), либо {e(t)/y, e(t')/y} (если t?t'). Здесь y - фиктивная переменная (x<y всегда истина, и в случае вычисления e(t)=e(t'), замены с y можно исключить).

Алгоритм двуместной операции согласованного объединения подстановок ' " следующий.

1. Если ' = , то ="; переход к пункту 17.

2. Иначе, если " = , то ='; переход к пункту 17.

3. Иначе, если '= или "=, то =; переход к пункту 17.

4. Иначе выполняется ='".

5. Множество разделяется на константную и вычислимую части =ve; ve=.

6. Выполняются замены переменных в составе термов t; t/x, соответствующими значениями из множества v.

7. Для всех e(ti); e(ti)/xie множества выполняются процедуры e<ti, vi, si>.

8. Если хоть один si=2 то фиксируется =. Переход к пункту 17.

9. Иначе все e(ti)/xie в составе преобразуются в vi/xi и, если имеются si=0, то переход к пункту 5.

10. Фиксируется одно из множеств всех значений некоторой переменной x: {t1,…,tn}; ti/xv, (1 i n). Причем n 2.

11. Если ни для какой переменной такое множество сформировать не удается, то выполняется переход к пункту 17.

12. Иначе устанавливается t'=t1, j=2. Из множества исключается замена t1/x.

13. В соответствии с изложенными выше правилами унификации находится t как результат унификации терма t' и терма tj.

14. Если t=, то фиксируется = и выполняется переход к пункту 17.

15. Иначе из множества исключается замена ti/x, выполняется j=j+1, t'=tt', =t.

16. Если j>n, то выполняется ={t'/x} и переход к пункту 5, иначе переход к пункту 13.

17. В качестве результата операции фиксируется .

В данном алгоритме следует отдельно прокомментировать пункт 13. Унификация термов, как следует из описания, реализуется в ряде случаев через согласованное объединение подстановок. Алгоритм рекурсивен, и так как сводится к базовому случаю унификации терма с переменной или терма с константой, имеет неизбежный рекурсивный возврат.

4. Пример вычислений

Выполнить согласованное объединение подстановок: '={1/X, f(Y)/M, e(sin(Y))/Z} и "={f(0)/M, e(add(Z,X))/K}, которое предполагает вычисление элементарной функции sin(Y) и выполнение суммирования add(Z,X).

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

1: 2: 3: 4: ='" ={1/X, f(Y)/M, e(sin(Y))/Z, f(0)/M, e(add(Z, X))/K}.

5: =ve={1/X, f(Y)/M, f(0)/M}{e(sin(Y))/Z, e(add(Z, X))/K}.

6: =ve= {1/X, f(Y)/M, f(0)/M}{e(sin(Y))/Z, e(add(Z, 1))/K}.

7: =ve= {1/X, f(Y)/M, f(0)/M}{e(sin(Y))/Z, e(add(Z, 1))/K}.

8: 9: 10: {f(Y), f(0)} для переменной M.

11: 12: t'= f(Y); ={1/X, f(0)/M}{e(sin(Y))/Z, e(add(Z, 1))/K}; j=2.

13: результатом унификации t' и t2, т.е. f(Y) и f(0) являетя t={0/Y}.

14: 15: ={1/X}{e(sin(Y))/Z, e(add(Z, 1))/K}; j=3; t'=f(0); ={1/X} {e(sin(Y))/Z, e(add(Z, 1))/K}{0/Y}.

16: ={t'/x}={1/X}{e(sin(Y))/Z, e(add(Z, 1))/K}{0/Y}{f(0)/M}.

5: =ve={1/X, 0/Y, f(0)/M}{e(sin(Y))/Z, e(add(Z, 1))/K}.

6: ={1/X, 0/Y, f(0)/M}{e(sin(0))/Z, e(add(Z, 1))/K.}

7: 8: 9: ={1/X, 0/Y, f(0)/M, 0/Z, e(add(Z, 1))/K} есть si=0 для получившейся 0/Z.

5: =ve={1/X, 0/Y, f(0)/M, 0/Z}{e(add(Z, 1))/K}.

6: ={1/X, 0/Y, f(0)/M, 0/Z}{e(add(0, 1))/K}.

7: 8: 9: ={1/X, 0/Y, f(0)/M, 0/Z, 1/K} есть si=0 для получившейся 1/K.

5: =ve={1/X, 0/Y, f(0)/M, 0/Z, 1/K}.

6: 7: 8: 9: 10: 11: 17: результат: {1/X, 0/Y, f(0)/M, 0/Z, 1/K}.

Таким образом, в процессе согласованного объединения подстановок выполнены вычисления: sin(Y)=0 (в замене sin(Y))/Z при Y=0) и add(Z,X)=1 (в замене add(Z,X))/K) при Z=0, X=1).

5. Свойства операции согласованного объединения подстановок

Согласование с пустой подстановкой не влияет на исходный операнд: ==. Согласование с несогласованной подстановкой в результате дает несогласованную подстановку: ==. Операция коммутативна: '='. И ассоциативна: '"=(')"=('").

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

6. Достоинства и недостатки подхода

Основным достоинством подхода является то, что он позволяет сохранить декларативность описания предметной области, что является существенным моментом, например для самообучающихся систем. Вычисления фактически становятся отложенными до того момента, пока полностью не определятся аргументы вычислителя. Также остались все возможности по распараллеливанию логического вывода, какие имелись в исходном методе. Вычисления остаются «прозрачными» для системы логического вывода.

Введение вычислений на уровне термов дает большую гибкость и полностью покрывает возможности введения вычислений на уровне атомов, например, правила: ADD(A, B, e(add(A, B))), ADD(A, e(sub(C, A)), C), ADD(e(sub(C, B)), B, C) позволяют организовать «вычислимый» предикат, позволяющий находить числа, состоящие в отношении A+B=C.

Вычисления сосредоточены в рамках одной операции.

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

Также необходимо отметить, что приведенные алгоритмы имеют высокий ресурс распараллеливания как на уровне узла, выполняющего согласованное объединение подстановок, так и на более высоком уровне согласования решений [Страбыкин, 1998].

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

Список литературы

1. [Вагин и др., 2004] Вагин, В.Н. Достоверный и правдоподобный вывод в интеллектуальных системах [Текст] / В. Н. Вагин, Е. Ю. Головина, А. А. Загорянская, М. В. Фомина; под ред. В. Н. Вагина, Д. А. Поспелова. - М.: Физматлит, 2004.

2. [Страбыкин, 1998] Страбыкин, Д.А. Логический вывод в системах обработки знаний [Текст] / Д. А. Страбыкин; под ред. Д. В. Пузанкова. - СПб.: СПбГЭТУ, 1998.

3. [Страбыкин, 2008] Логический вывод с обобщением функциональных символов в формулах посылок и заключений [текст] / Д.А. Страбыкин, М.М. Шихов, Р.С. Петров // КИИ-2008 Одиннадцатая национальная конференция по искусственному интеллекту с международным участием (28 сентября - 3 октября 2008 г., Дубна, Россия). - М.: Физматлит, 2008, в 3-х т. - Т.1.

Размещено на Allbest.ru

...

Подобные документы

  • Введение в численные методы, план построения вычислительного эксперимента. Точность вычислений, классификация погрешностей. Обзор методов численного интегрирования и дифференцирования, оценка апостериорной погрешности. Решение систем линейных уравнений.

    методичка [7,0 M], добавлен 23.09.2010

  • Понятие предикатов и кванторов, порядок составления логических формул. Запись предиката как множество высказываний, формулы их исчисления. Аксиоматическое и натуральное представление узкого исчисления предикатов, погружение аристотелевской силлогистики.

    контрольная работа [35,0 K], добавлен 12.08.2010

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

    реферат [648,7 K], добавлен 15.06.2014

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

    курсовая работа [185,3 K], добавлен 24.05.2015

  • Многошаговые методы и их построение. Вычисление интеграла. Формула для определения неизвестного значения сеточной функции. Запись разностной схемы четвертого порядка. Сущность методов Адамса, Милна, прогноза и коррекции. Оценка точности вычислений.

    презентация [162,9 K], добавлен 18.04.2013

  • Создание программы на языке матрично-ориентированной системы Mat LAB. Особенности математической интерпретации метода. Оценка влияния величины шага интегрирования и начальных значений на качество и точность вычислений. Анализ полученных результатов.

    курсовая работа [459,0 K], добавлен 27.04.2011

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

    курсовая работа [50,7 K], добавлен 28.05.2015

  • Европейская математика эпохи Возрождения. Создание буквенного исчисления Франсуа Виет и метода решения уравнений. Усовершенствование вычислений в конце XVI – начале XVII веков: десятичные дроби, логарифмы. Установление связи тригонометрии и алгебры.

    презентация [4,9 M], добавлен 20.09.2015

  • Определение погрешности вычислений при численном дифференцировании. Алгебраический порядок точности численного метода как наибольшей степени полинома. Основной и вспомогательный бланк для решения задачи Коши. Применение интерполяционной формулы Лагранжа.

    реферат [1,4 M], добавлен 10.06.2012

  • История развития математической науки в Европе VI-XIV вв., ее представители и достижения. Развитие математики эпохи Возрождения. Создание буквенного исчисления, деятельность Франсуа Виета. Усовершенствование вычислений в конце XVI – начале XVI вв.

    презентация [7,3 M], добавлен 20.09.2015

  • Характеристика способов решения систем линейных алгебраических уравнений (СЛАУ). Описание проведения вычислений на компьютере методом Гаусса, методом квадратного корня, LU–методом. Реализация метода вращений средствами системы программирования Delphi.

    курсовая работа [118,4 K], добавлен 04.05.2014

  • Понятие формальной системы. Основные понятия логики первого порядка. Доказательство неразрешимости проблемы остановки. Машина Тьюринга, ее структура. Вывод неразрешимости логики первого порядка из неразрешимости проблемы остановки и методом Геделя.

    курсовая работа [243,0 K], добавлен 16.02.2011

  • Нечёткие системы логического вывода. Исследование основных понятий теории нечетких множеств. Операции над нечёткими множествами. Нечёткие соответствия и отношения. Описания особенностей логических операций: конъюнкции, дизъюнкции, отрицания и импликации.

    презентация [191,0 K], добавлен 29.10.2013

  • Сущность методов сведения краевой задачи к задаче Коши и алгоритмы их реализации на ПЭВМ. Применение метода стрельбы (пристрелки) для линейной краевой задачи, определение погрешности вычислений. Решение уравнения сшивания для нелинейной краевой задачи.

    методичка [335,0 K], добавлен 02.03.2010

  • Изучение аппроксимации таблично заданной функции методом наименьших квадратов при помощи вычислительной системы Mathcad. Исходные данные и функция, вычисляющая матрицу коэффициентов систему уравнений. Выполнение вычислений для разных порядков полинома.

    лабораторная работа [166,4 K], добавлен 13.04.2016

  • Составление таблицы истинности. Получение уравнений функций алгебры логики для заданных выходов. Реализация схемы логического автомата на электромагнитных реле РП-23, на диодной матрице. Реализация структурной схемы логического автомата, на микросхемах.

    курсовая работа [862,4 K], добавлен 12.12.2012

  • Методы решения нелинейных уравнений: касательных и хорд, результаты их вычислений. Алгоритм и блок схема метода секущих. Исследование характерных примеров для практического сравнения эффективности рассмотренных методов разрешения нелинейных уравнений.

    дипломная работа [793,2 K], добавлен 09.04.2015

  • Ознакомление с основными элементами управления редактора Matlab. Выполнение элементарных вычислений с помощью данной программной системы. Структура справочной системы, принципы ее функционирования. Решение системы линейных уравнений в матричном виде.

    лабораторная работа [289,8 K], добавлен 20.09.2015

  • Понятие определенного интеграла, его геометрический смысл. Численные методы вычисления определенных интегралов. Формулы прямоугольников и трапеций. Применение пакета Mathcad для вычисления интегралов, проверка результатов вычислений с помощью Mathcad.

    курсовая работа [1,0 M], добавлен 11.03.2013

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

    презентация [185,0 K], добавлен 17.09.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.