
- •Оглавление
- •1. Классификации технологий разработки информационных систем
- •1.1. Классификация технологий разработки информационных систем в соответствии с научно-техническими направлениями их создания
- •1.2. Классификация технологий разработки информационных систем, созданная в рамках направления менеджмента – реинжиниринга бизнес-процессов
- •2. Жизненный цикл разработки информационных систем и его модели
- •2.1. Каскадная модель
- •2.2. Спиральная модель
- •3. Методологии разработки информационных систем
- •3.1. Структурная методология разработки информационных систем idef
- •Правила определения сущностей
- •Правила определения атрибутов
- •Первичные и альтернативные ключи
- •Правила определения отношений
- •Отношения категоризации
- •Правила определения отношений категоризации
- •Основные правила формирования информационной модели
- •"Функциональный аспект" рассмотрения системы
- •3.2. Объектно-ориентированные методологии разработки информационных систем
- •3.2.1. Методики объектно-ориентированного анализа
- •3.2.2. Объектно-ориентированный процесс разработки rup
- •3.3. Методология создания информационных систем Datarun, ориентированая на данные
- •4. Case-средства разработки информационных систем
- •4.1. Классификация case-средств
- •Диаграммные средства
- •4.2. Подход к интеллектуализации case-средств
- •4.2.1. Гибридная модель проблемной области case-системы
- •4.2.2. Синтаксис многоуровневой логики
- •4.2.3. Дедуктивный вывод в многоуровневой логике
- •4.2.3.1. Алгоритм сколемизации
- •4.2.3.2. Алгоритм унификации
- •4.2.3.3. Особенности использования линейной входной резолюции в многоуровневой логике
- •4.2.3.4. Иерархическая абстракция и продукционная модель
- •4.2.4. Программное инструментальное средство для моделирования сложноструктурированной проблемной области как компонента информационной базы проекта в case-системах
- •4.2.4.1. Архитектура программного инструментального средства «Инфолог»
- •4.2.4.2. Концептуальный язык описания сложноструктурированной проблемной области
- •4.2.4.3 Реализация программного инструментального средства «Инфолог»
- •5. Технология разработки интеллектуальных систем «логсемис»
- •5.1. Методология разработки интеллектуальных систем «логсемис»
- •Алгоритм генерирования метаправил
- •5.2. Программное инструментальное средство поддержки методологии «логсемис»
- •6. Задания на лабораторные работы
- •7. Контрольные вопросы
- •Библиографический список рекомендуемой литературы «Информационная инженерия»
4.2.3. Дедуктивный вывод в многоуровневой логике
Неотъемлемой частью интеллектуальных систем являются механизмы обработки знаний, одним из которых является дедуктивный вывод.
Рассмотрим процесс дедуктивного вывода более подробно. В дедуктивном выводе используются два алгоритма: алгоритм сколемизации и алгоритм унификации. Эти алгоритмы в MLL являются модификацией соответствующих алгоритмов в логике 1-го порядка.
Приведем разработанные автором алгоритмы дедуктивного вывода для модифицированного синтаксиса MLL. Исходная формула для алгоритма сколемизации должна быть представлена в пренексной нормальной форме.
4.2.3.1. Алгоритм сколемизации
Рассмотрим особенности алгоритма сколемизации в MLL. Алгоритм сколемизации основывается на следующих положениях.
А. Сколемовская функция содержит в качестве аргументов все переменные, которые связаны квантором и которые расположены слева от квантора , за исключением переменной, которая является предком переменной, связанной квантором .
Б. предок и домен должны быть включены в сколемовскую функцию и в матрицу для процедуры унификации. Они сохраняются в форме (х/Х)//Y.
Поясним положение (А) на примере.
Построение сколемовской функции не зависит от числа компонентов объектов. Поэтому рассмотрим случай, когда объекты состоят из одной компоненты. При этом области определения термов в логической формуле однозначно определяются их -предками по иерархической структуре. Пусть иерархическая структура задана (рис. 21).
Рассмотрим формулу:
(x1//X) ( x0//x1) P(x1,x0) (5)
Формула (5) читается следующим образом: для любого объекта х1, который является частью объекта Х, (на рис.21 это а1, а2, а3), существует объект х0, который является частью объекта х1, ( на рис. 23 это b11 или b12 или b1k, если х1 есть а1,и b21 или b22 или b2n, если х1 есть а2, и b31 или b32 или b3m, если х1 есть а3), такой что P(х1,х0).
В классическом алгоритме сколемизации х0 заменяется на функцию fc(x1), т.е. получим формулу с учетом положения (Б):
P(x1//X, fс(x1//X)//(x1//Х) ).
Иерархическая структура является фиксированной. Поэтому фиксированными являются и все структурные отношения в ней, и, следовательно, области определения термов. Функция fc(x1//X)//(x1//X) определена на множестве частей объекта, заданного переменной х1. Поэтому она не зависит непосредственно от переменной х1//Х. Следовательно, функция fс заменяется на «обобщенную» константу Bc, которой может быть любая константа b11 или b12 или b1k, если х1 есть а1, и b21 или b22 или b2n, если х1 есть а2, и b31 или b32 или b3m, если х1 есть а3, и на которую заменяется переменная х0 в классическом алгоритме сколемизации, если она связана квантором и стоит на первом месте в префиксе. В результате получим формулу: P( x1//X, Bс//(x1//Х) ).
Отсюда следует, что при построении сколемовской функции для переменной х0 переменная х1 «мысленно» вычеркивается из префикса.
Это положение может быть распространено на произвольную формулу MLL. Пусть задана формула:
(x1//X1 )...(xn-1 //Xn-1 )( xn //х1 ) P(x1 ,..,xn ) (6)
Применим классический алгоритм сколемизации к формуле (6). Получим формулу:
P(x1//X1,...,xn-1//Xn-1,f(x1//X1,...,xn-1//Xn-1)//(x1//X1)).
|
|
|
|
Рис. 21. Иерархическая структура
Функция f определена на множестве частей объекта, заданного переменной х1//Х1. Поэтому ее значение не зависит непосредственно от переменной х1//Х1, и следовательно, переменная хn в алгоритме сколемизации заменяется на функцию: f(x2//X2,...,xn-1 // Xn-1 )//(x1//X1 ).
Рассмотрим алгоритм сколемизации для модифицированного синтаксиса MLL.
Пусть формула представлена в виде: (θ1 (x1/X1)//Y1)( θ2 (x2/X2)//Y2)... (θr(xr/Xr)//Yr) P(x1,x2,..,xr), где θi{, }, Xi–сортность переменной хi, Yi –предок переменной хi, i=1..r, P – бескванторная формула (матрица). (В качестве Yi, i=1..r, может быть константа или переменная).
Шаг 1. Найти наименьший индекс i такой, что θ1, θ2,..., θi-1 все равны , а θi = .
Если такого i нет, то перейти к шагу 4. Если i=1, то xi заменяется на константу (@а/Хi)//Yi во всех вхождениях в матрицу и на @а во всех вхождениях хi в префикс в виде предка другой переменной.
Замечание. Специальный символ @ означает, что @а может быть любой константой сорта Хi, обозначающей часть объекта Yi.
Если i1, то перейти к шагу 3.
Шаг 2. Квантор θi = вычеркивается. Перейти к шагу 1.
Шаг З. Все переменные с индексом до i сравнить с предком i-й переменной.
Если совпадения нет, то взять новый (i-1)-местный функциональный символ fi. Переменная хi заменяется на сколемовскую функцию (fi(x1,x2,..,xi-1)/Хi)//Yi во всех вхождениях в матрицу и на функцию fi (x1,x2 ,...,xi-1 ) во всех вхождениях xi в префикс, и перейти к шагу 2.
Если имеются совпадения (т.е. имеется переменная xj (j < i) под квантором , которая является и предком заменяемой переменной) и если i-2 равняется нулю, то хi заменяется на (@а/Хi)//хj во всех вхождениях в матрицу и на @а во всех вхождениях в префикс как - предок другой переменной, то перейти к шагу 2.
Если i-2 не равняется нулю, то взять (i-2)-местный функциональный символ, не встречавшийся в формуле. Переменная xi заменяется на сколемовскую функцию (fi(x1,x2,...,xi-2)/Хi)//xj во всех вхождениях в матрицу и на функцию fi (x1 ,x2 ,...,xi-2 ), где хkxj , k=1i-2 во всех вхождениях в префикс как предок другой переменной, и перейти к шагу 2.
Шаг 4. Если кванторов нет, то стоп. Если в префиксе формулы в качестве предков выступают сколемовские функции, то аргументам функции приписываются их домены и предки. Всем переменным, стоящим под квантором , в матрице формулы приписываются их домены и предки, за исключением случая, когда переменная является предком другой переменной.
Кванторы опускаются, предполагая, что они существуют.
Стоп.
Пример 2. Рассмотрим пример использования алгоритма. Предположим, что объекты X,Y,Z имеют в качестве компонентов несколько объектов. Приведем последовательность шагов алгоритма сколемизации, примененного к формуле:
((x1/D1)//X) ((y1/D2)//Y)((y0/D3)//y1)((x0/D4)//x1) ((z1/D5)//Z) P(x1,x0,y1,y0,z1)
Шаг 1. i=2
Шаг З. ((x1/D1)//X)( (y1/D2)//Y)((y0/D3)//f1(x1)) ((x0/D4)//x1)((z1/D5)//Z)
P(x1,x0,(f1(x1)/D2)//Y,y0,z1)
Шаг 2. ((x1/D1)//X)((y0/D3)//f1(x1))((x0/D4)//x1)((z1/D5)//Z) P(x1,x0,(f1(x1)/D2)//Y,y0,z1)
Шаг 1. i=3
Шаг 3. ((x1/D1)//X)((y0/D3)//f1(x1))((x0/D4)//x1)((z1/D5)//Z) Р(x1,(f2(y0)/D4)//x1,(f1(x1)/D2)//Y,y0,z1)
Шаг 2. ((x1/D1)//X)((y0/D3)//f1(x1))((z1/D5)//Z) P(x1,(f2(y0)/D4)//x1,(f1(x1)/D2)//Y,y0,z1)
Шаг 1. i нет
Шаг 4.
P((x1/D1)//X, (f2((y0/D3)//f1((x1/D1)//X))/D4)//x1, (f1((x1/D1)//X)/D2)//Y, (y0/D3)//f1((x1/D1)//X), (z1/D5)//Z)
Стоп.