Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Реализация сетевой модели вычислений с аксиоматической и рекурсивной формами задания функций и предикатов (бакалаврская работа)

.pdf
Скачиваний:
6
Добавлен:
28.06.2014
Размер:
704.41 Кб
Скачать

НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ

«МЭИ»

Институт Автоматики и вычислительной техники Кафедра Прикладной математики

В Ы П У С К Н А Я Р А Б О Т А

бакалавра Прикладной математики и информатики

по направлению «Прикладная математика и информатика» (010500)

Тема: «Реализация сетевой модели вычислений с аксиоматической и рекурсивной формами задания функций и

предикатов»

 

 

 

 

Студент

Афанасьев С.Е

 

А-13-08

 

 

фамилия, и. о

 

группа,

подпись

Научный

 

 

 

 

руководитель

Профессор

д.т.н

Фальк В.Н.

 

 

должность

звание

Фамилия, и.о. подпись

«Работа допущена к защите»

Зав. кафедрой

Еремеев А.П.

 

дата

Фамилия, и.о.

подпись

Дата_____________

Москва

2012 г.

1

Введение

Теория направленных отношений, разработанная Фальком В.Н. и Кутеповым В. П., является универсальной теоретической моделью, позволяющей в естественной форме описывать и вычислять рекурсивно заданные объекты некоторой предметной области. На базе теории направленных отношений была разработана одна из реализаций функционально-логического языка программирования FLOGOL (Function and LOGic Oriented Language), обладающая возможностью в компактной схемной форме задавать определения конструктивных объектов в терминах направленных отношений.

Цель работы:

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

Основные задачи:

исследование языка FLOGOL и формальное описание его семантики;

разработка основных принципов и метода компиляции FLOGOL-

запросов;

разработка специальной технологии ввода программ и соответствующих интерфейсных средств;

2

1. Теоретическая часть

1.1. Основные понятия

В основе теории направленных отношений лежит понятие направленного отношения (НО). Различают два вида направленных

отношений –

бестиповые и типизированные.

 

 

 

 

 

 

Направленным

отношением

типа

, ,

на

 

носителе

D

называется график соответствия из

 

в

. Пара | |, | | называется

арностью этого НО.

 

 

 

 

 

 

 

 

 

 

 

 

Подкласс

НО на носителе D

 

типа , (арности < | |, | | >)

обозначается

,

.

Тип или

арность

НО

при

необходимости

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

указываются в виде правого верхнего индекса.

 

 

 

 

 

 

Здесь D

множество всевозможных кортежей элементов множества D

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

длины ϑ. Иными словами, направленное отношение

R арности < n , n’’ >

на носителе

D (точнее,

его график)

есть множество упорядоченных пар

′ ′

′′

′′

где все

di′,di′′ D

. Кортеж

′ ′

назовем входным, а

вида < d1...dn',d1...dn ' > ,

 

 

d1...dn'

′′

′′

выходным для соответствующего элемента

d

-отношения

R

.

кортеж d1...dn '

 

 

Кортеж нулевой длины (пустой кортеж) обозначается

λ ,

а в случаях его

использования в выражениях там, где это не приводит к недоразумениям, он представляется непосредственно пустым словом.

В случае если в качестве D выбирается односортный носитель (универсум), то тип любого НО на D вполне определяется его арностью. В языке программирования FLOGOL в качестве носителя выбран односортный носитель, поэтому язык можно считать нетипизированным. Однако вследствие того, что многосортный носитель может быть легко промоделирован с использованием односортного носителя, введение в язык пользовательских типов данных затруднений не вызывает.

3

НО называется обратным для НО , если

, ≈ ,

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

НО арности ,

на называется тотальным, если

 

→ & #, $

НО R называется функциональным, если

′ ′′ , & , → = ′′

Этими свойствами могут обладать как само НО, так и братное ему НО. Свойства функциональности и тотальности, определенные для обратного отношения, будем называть свойствами обратной функциональности и тотальности.

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

1.2. Языки и схемы направленных отношений

В основу построения данной реализации языка FLOGOL положено определенное понятие языка схем НО. Для задания языка схем необходимо определение области интерпретации, символов элементарных констант и переменных, связок и операторов. Связки используются для обозначения результатов применения операций композиции НО на области интерпретации.

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

4

конкатенация, условная композиция, эквализация (унификация), операции объединения и пересечения типизированных НО.

Последовательная композиция НО и ' обозначается через

':

 

 

 

 

 

 

 

 

 

' { , | , , , & ,, '}

 

 

 

Если

 

и – НО арностей , и , соответственно,

то

 

 

 

'

 

 

 

 

 

– НО

арности , ′′ .

Операция

последовательной

композиции

 

'

 

 

 

 

 

 

ассоциативна.

 

 

 

 

 

 

Параллельная композиция

НО

и ' обозначается

#'

и

определяется как раздельное декартово произведение компонентов

графиков

 

и ':

 

 

 

 

 

 

 

 

 

 

 

 

 

#' { ', '| , & ', ' '}

Если

и

– НО арности

 

,

 

и

 

,

'

соответственно,

 

 

'

 

 

 

 

 

 

 

 

'

 

 

то #

НО арности

+ ′ ,

 

+ ′′ .

Операция параллельной

'

 

 

 

 

'

 

 

 

'

 

 

 

 

композиции ассоциативна.

 

 

 

 

 

 

 

 

 

 

 

Объединение

НО и ' обозначается

через ' и определяется

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

Пересечение НО R и R' обозначается

через R ∩ R'

и определяется

как теоретико-множественное пересечение

НО R и R'

как графиков.

Пересечение накладывает требование равенства арности НО, причем результат пересечения имеет ту же самую арность. Операция пересечения ассоциативна и коммутативна.

5

Операция эквализации (унификации). Эквализация d -отношений R1 и

R2 определяется как декартово произведение первых компонентов графиков при равных вторых компонентах:

R1ÑR2 @{<α1α2 , β >|<α1, β R1 & <α2 , β R2}.

Эквализация определена только для операндов арностей < n1,n >

и

< n2 , n >. Результат операции будет иметь арность

< n1 + n2 ,n >.

 

Условная композиция d -отношений R1 и R2

обозначается знаком

и представляет собой проекцию R2 по первому компоненту графика на

область определения

d -отношения R1 :

 

 

 

 

 

 

 

 

R1 ® R2 @{<α, β >|<α, β R2 & $β '(<α, β 'R1 )}.

 

 

Арности операндов условной композиции должны быть < n,n1 >

и

< n, n2 > , соответственно. Результат

композиции,

очевидно,

имеет

арность

второго операнда.

 

 

 

 

 

 

 

 

 

 

 

 

 

Операция итерации. Итерация

d -отношения R < n ,n >

обозначается

{R}

и определяется так:

 

 

 

 

 

 

 

 

 

 

 

 

 

{ R} U R ( k )

 

R(0)

{< α ,α >| α D n }

(тождественное d -отношение

k ³0

, где

 

 

 

 

 

 

арности < n,n > ), R (1)

 

R

и

R (i +1)

R (i ) R

 

 

 

 

 

 

Очевидно, что итерация {R}

d -отношения

R является наименьшим

решением уравнения

x = R(0)

R x, т.е.

 

 

 

 

 

 

 

 

 

 

 

 

{R} = {x = R(0)

R x}.

 

 

 

 

Результат

применения

итерации

будет

иметь

ту

же

арность

< n,n >, n ³ 0, что и ее операнд.

 

6

 

Операция повторения. Повторение

d -отношения

R < n ,n > обозначается

[R] и определяется так:

 

 

[R] U R ( k ) = R { R}

 

k ³1

.

 

Результат применения операции повторения будет иметь ту же арность

< n,n >, n ³ 0, что и ее операнд.

 

 

Реализация языка функционально-логического

программирования

FLOGOL опирается на формализм

направленного

отношения, что

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

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

базе[1].

 

 

 

 

 

 

 

 

 

 

 

 

Вычисление

запроса

производится

на

 

основе

сетевого

представления направленных отношений.

 

 

 

 

 

 

 

1.3. Комбинаторные d -отношения.

 

 

 

 

 

 

 

d -отношение

R

называется

комбинаторным,

если

оно

является

фиксированной точкой

для

любой

перестановки

ξ

на

носителе

D :

ξ(R) = R для любого всюду определенного на

D

взаимно-однозначного

отображения

ξ . Класс комбинаторных

d -отношений на носителе

D

обозначим R к , полагая, что сам носитель ясен из контекста (фактически нас

интересует только его мощность).

 

 

 

 

 

 

 

 

Пустое множество задает пустое комбинаторное

d -отношение.

 

 

Среди

простых

комбинаторных

d -отношений особо

выделим

следующие d -отношения:

7

 

 

 

 

 

 

 

 

< n,n > -арные, n ³ 0 , d -отношения

n

{< α,α >|

 

1)

тождественные

 

α Î D n } . Очевидно,

что

 

n

правая

 

и левая

единица

операции

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n'

 

 

 

 

n"

 

 

последовательной композиции

d -отношений:

 

R<n',n"> = R = R

;

 

 

 

 

 

 

 

 

 

 

 

0

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2)

 

{<, >} .

правая

и

левая

единица

операции

 

 

параллельной композиции: # R = R = R# ;

 

 

 

 

 

 

 

 

 

3)

пустые

′′

> -арные

 

 

 

 

 

′ ′′

³ 0, обозначаются

 

< n ,n

 

d -отношения, n ,n

 

nn′′

.

nn′′

правые

и

левые единицы для

 

операции

 

объединения

 

d -

отношений:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n' n" R<n′,n′′>

= R = R nn′′ ;

 

 

 

 

 

 

 

4)

универсальные

 

 

′ ′′

> -арные

 

d

-отношения,

′ ′′

³ 0,

 

 

< n ,n

 

n ,n

обозначаются

 

nn′′

n

 

n′′

правые

и левые

единицы

для

операции

 

.

 

 

пересечения

 

d -отношений:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

nn′′Ç R<n′,n′′>

= R = R Çnn′′

 

 

 

 

 

 

 

Выделим

в множестве

простых

комбинаторных

 

d -отношений

следующее подмножество элементарных d -отношений:

 

 

 

 

 

 

R кпэ { , , , , , , },

где <>{<,>},

{< α , >|α D}

{<,α >| α D},

{< αα ,α >| α D},

8

@ {< α,αα >| α Î D},

@ {<α , β >Î D & β Î D & α ¹ β},

@ {< α 'α",α"α '>| α 'Î D &α"Î D}.

 

 

 

 

 

Пусть

n ³ 0 .

Определим сначала тождественное

< n,n > -арное d -

 

n

0

 

n+1

 

n

 

 

 

 

@ ,

b) @ # , где @ ·

отношение : a)

.

 

 

 

 

 

 

 

 

 

d -Отношения

n

 

 

и

n

{<,α >| α Dn }

определим

{< α , >| α Dn }

 

так:

 

 

 

 

 

 

 

 

 

0

0

 

n+1

n

 

n+1

n

 

 

=

=

,

@

# ,

@ # .

 

Универсальное

 

′ ′′

-арное

 

d

-отношение

< n ,n >

 

 

 

 

 

определяется так: nn′′ @

n

n′′

nn′′ {< α ′,α ′′ > |α ' Dn

&α ′′ Dn′′}

·

.

Остальные константы:

n

@ {< α ,αα >| α Î Dn },

n

@ {< αα,α >| α Î Dn },

n

@ {< α, β >| α Î Dn & β Î Dn ¹ β}, n' n" {< α ′α ′′,α ′′α ′ >| α ′ D n& α ′′ D n′′ }

могут быть определены следующим образом:

 

0 n = n 0 @

n

n′+1

n′′ @

n

 

1 n′′ ) · ( n

n′′ # )

 

1)

 

( #

,

 

 

 

,

 

 

 

 

 

1 n′′+1

@ (1 n′′ #

 

 

n′′

 

 

 

 

 

)·( # ) ;

 

 

 

 

 

0

 

n+1

 

n

 

 

n

 

 

2)

 

@ ,

@ ( # )

· ( # n 1

# ) ,

 

9

 

0

 

 

n+1

 

n

n

3)

 

 

,

( # 1 n # ) ∙

( # ) ,

 

0

 

n+1

 

n

 

4)

 

,

 

n n # # .

 

1.4. Правила вычисления схем направленных отношений

1.4.1 Операция подстановки сети.

 

Определение.

Результат [S1 / e]S2

подстановки сети

S1 в сеть S2

 

 

 

 

′ ′′

> , такого, что его арность совпадает с арностью

вместо элемента e ≡< R,q q

 

S

 

′ ′′

 

P , I

 

,O , E E \ {e},G G > .

сети

[I O / q q ] < P

2

1 , есть

1 1

 

1

2

2

1

2

1

2

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

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