Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Инстр сред разр ИС.docx
Скачиваний:
23
Добавлен:
18.09.2019
Размер:
219.09 Кб
Скачать

4.2.2. Синтаксис многоуровневой логики

Определим синтаксис MLL.

Алфавит:

1) константы: а,b,c,...; X,Y,Z (константные множества),...;

2) переменные: x,y,z,...;

3) функциональные символы: f,g,h,...;

4) предикатные символы: P,Q,R,...;

5) кванторы: , ;

6) логические связки: &, V, , ;

7) вспомогательные символы: #,*,/,/,//,{,},(,).

Термы.

1). Любая константа или переменная является термом.

2). Если f есть n-местный функциональный символ и t1,t2,...,tn являются термами, то f(t1,t2,...,tn) есть терм.

3). Все термы получаются применением (1) и (2).

Правила образования ППФ.

F1. Если Р является n-местным предикатным символом и t1,t2,...,tn есть термы, то P ( t1,t2,...,tn ) является ППФ (атомарной формулой).

F2. Если F и G  ППФ, то F, F&G, FG, FG являются ППФ.

F3. Если F  ППФ, θ{,}, х – переменная, а y – константа или переменная, то: (θxy)F – ППФ, где {/, /, //}.

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

Слэшем назовем некоторый разделитель, который используется в префиксе формулы. Так, простой слэш (θx/X) используется для обозначения, что х является элементом множества Х (xX), простой «жирный» слэш (θx/X) обозначает, что х определен на множестве, элементами которого являются компоненты объекта Х (Xx), двойной слэш (θx// X) обозначает, что х определен на множестве, элементами которого являются части объекта Х (Xx), где θ{,}. Отметим, что:

(x/X) P(x) ↔ x (Element_of(x,X)  P(x))

(x/X) P(x) ↔ x (Element_of(x,X) &P(x))

(x/X) P(x) ↔ x (Component_of(x,X)  P(x))

(x/X) P(x) ↔ x (Component_of (x,X) & P(x))

(x//X) P(x) ↔ x (Part_of(x,X)  P(x))

(x//X) P(x) ↔ x (Part_of(x,X) &P(x))



Рис. 19. Пример иерархической структуры

- отношение “Part-of’” ( )

Таким образом, семантика MLL совпадает с семантикой логики 1-го порядка. Приведем эквивалентные выражения в MLL:

1) (x/{a}) P(x) ↔ P(a);

2) ( x/{a}) P(x) ↔ P(a);

3) (x/X) P(x) ↔(x/<X>) P(x);

4) (x/X) P(x) ↔(x/<X>)P(x);

5) (x//X) P(x) ↔ (y/X) (x/y) P(x);

6) (x//X) P(x) ↔ (y/X) (x/y) P(x).

Примечание. В 5) и 6) переменная y не имеет вхождения в Р.

Если объект Y имеет в качестве компонента объект Х, то для того, чтобы задать свойства объекта хХ, который является частью объекта Y, имеется формула: (θx//#Y) G( x ), (1)

где # – обозначение константы; θ{,}; G(х) – предикат, задающий свойства объекта х (атрибут).

Формула (1) записана в стандартной форме для MLL. Если объект Y имеет в качестве компонентов несколько объектов, как показано на рис. 19, то для того, чтобы задать компонент Х объекта Y, необходимо использовать селектор, который представляется предикатом F(X,Y). Для задания того, что объект хХ, который является частью объекта Y, обладает свойством G, имеется формула:

( X/#Y)( θx/X) [F(X,Y) & G(x)] . (2)

Формула (2) может быть преобразована к стандартной форме:

(θx//#Y) [F(х,Y)&G(x)]. (3)

Предикат-селектор F(X,Y) используется для указания компонента X: θxХ, θ{,}, в формуле (2) обладают свойством G, или объектов компонента Х, которые являются частями объекта Y и обладают свойством G, в формуле (3).

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

Пусть объект #Y имеет в качестве компонентов несколько объектов, т.е. <#Y> = {Xi} , i=1..N , тогда для задания того, что xXi , являющийся частью объекта #Y, обладает свойством G, используется формула:

(θ(x/Xi)//#Y) G(x), (4)

где θ {, }; Xi задает сортность х.

Определение 3. #Y, заданный в формуле (4), будем называть - предком для х.

Так, модифицированные правила построения ППФ имеют следующий вид.

F1. Если Р является n-местным предикатным символом и t1,t2,...,tn есть термы, то P ( t1,t2,...,tn ) является ППФ (атомарной формулой).

F2. Если F и G  ППФ, то (F), (F&G), (FG), (FG) являются ППФ.

F3. Если F  ППФ, θ {,}, х – переменная, а y – константа или переменная, то:

1) (θ xy)F – ППФ, где {/, /, //};

2) (θ (x/Z)//y)F – ППФ, где Z есть константное множество.

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

Преимущества модифицированных правил построения ППФ заключаются в следующем:

 не затрачивается время на унификацию предиката-селектора;

 не затрачивается память на хранение многочисленных фактов проблемной среды для означивания переменных в предикате-селекторе.

Отметим, что:

((x/X)//#Y) G(x)↔ (X/#Y)(x/X) F(X,Y)&G(x)↔(x//#Y) F(x,Y)&G(x) ↔ xy (Part_of(x,y)&F(x,y)→G(x)) и

((x/X)//#Y) G(x)↔ (X/#Y)(x/X) F(X,Y)&G(x)↔(x//#Y) F(x,Y)&G(x) ↔ xy (Part_of(x,y)&F(x,y)→G(x)).

Формализуем некоторое утверждение на естественном языке на языке MLL и многосортной логики (MSL), которая является развитием логики 1-го порядка.

Пример 1. Программная подсистема х, входящая в состав интеллектуальной системы поддержки принятия решений (ИСППР) #Р, обеспечивает посадку самолета у, приписанного к аэропорту #А, если имеется :

 ЭВМ t, на которой функционирует х;

 радиолокационная станция (РЛС) s, соединенная с ЭВМ t;

 поток информации #I1, содержащий поток сообщений , принимаемый РЛС s и содержащий класс сообщений , описывающий самолет y и обрабатываемый x;

 поток информации #I2, содержащий поток сообщений, передающийся РЛС s, в который входит класс сообщений , содержащий сведения, необходимые для посадки самолета y, вырабатываемый x и принимаемый у.

Иерархические структуры представлены на рис. 20, где Р1, Р2 и Р3 – программные подсистемы, #О – объект управления.

Запись в MSL:

(#А/Аэропорт)(#Р/ИСППР)(x/программная_подсистема)(y/самолет) (s/РЛС)(t/ЭВМ)(#I1/поток_информации)(#I2/поток_информации) (/поток_сообщений)(/класс_сообщений)(/поток_сообщений) (/класс_сообщений)[Содержит(#Р,х)&Содержит(#A,y)&Содержит(#А,s)&Содержит(#A,t)& Функционирует(x,t) & Соединена(s,t) & Содержит(#I1,) & Принимает_РЛС(s,) & Содержит() & Описывает(,y) & Обрабатывает(x,) & Содержит(#I2,) & Передает_РЛС(s,) & Содержит() & Вырабатывает(x,) & Принимает_самолет(y,) Обеспечивает_посадку(х,y)]

Запись в MLL:

((x/программная_подсистема)//#Р)((y/самолет)//#О)((s/РЛС)//#А) ((t/ЭВМ)//#А)(/поток_сообщений)//#I1)(/класс_сообщений)//) (/поток_сообщений)//#I2)(/класс_сообщений)//)

[Функционирует(x,t) & Соединена(s,t) & Принимает_РЛС(s,) & Описывает(,y) & Обрабатывает(x,) & Передает_РЛС(s,) & Вырабатывает(x,) & Принимает_самолет(y,) Обеспечивает_посадку(х,y) ]

В матрице формулы в модифицированном синтаксисе MLL имеется 8 предикатов. В матрице формулы в логике 1-го порядка имеется 28 предикатов (программа на языке Пролог приведена в приложении). В матрице формулы в многсортной логике имеется 16 предикатов (в программе на языке Пролог имеется 12 одноместных предикатов).

Рис. 20. Иерархические структуры для примера 1

В матрице формулы в MLL имеется 10 предикатов (к 8 предикатам добавляются 2 предиката-селектора). Таким образом, применяя в качестве процедуры вывода входную линейную резолюцию, получим, что модифицированный синтаксис MLL, используемый для формализации приведенного утверждения, имеющего структурную сложность, позволяет увеличить эффективность процедуры получения ответа на запрос на ее основе:

1) относительно синтаксиса MLL на 20%;

2) относительно многосортной логики на 50 %;

3) относительно логики 1-го порядка на 72%.