Реализация сетевой модели вычислений с аксиоматической и рекурсивной формами задания функций и предикатов (бакалаврская работа)
.pdfНАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ
«МЭИ»
Институт Автоматики и вычислительной техники Кафедра Прикладной математики
В Ы П У С К Н А Я Р А Б О Т А
бакалавра Прикладной математики и информатики
по направлению «Прикладная математика и информатика» (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 |
|
||||||||||||||||||
n′ n′′ |
. |
n′ n′′ |
– |
правые |
и |
левые единицы для |
|
операции |
|
объединения |
|
d - |
||||||||||
отношений: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
n' n" R<n′,n′′> |
= R = R n′ n′′ ; |
|
|
|
|
|
|
||||||
|
4) |
универсальные |
|
|
′ ′′ |
> -арные |
|
d |
-отношения, |
′ ′′ |
³ 0, |
|||||||||||
|
|
< n ,n |
|
n ,n |
||||||||||||||||||
обозначаются |
|
n′ n′′ |
n′ |
|
n′′ |
правые |
и левые |
единицы |
для |
операции |
||||||||||||
|
. |
|
|
– |
||||||||||||||||||
пересечения |
|
d -отношений: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
n′ n′′Ç R<n′,n′′> |
= R = R Çn′ n′′ |
|
|
|
|
|
|
||||||
|
Выделим |
в множестве |
простых |
комбинаторных |
|
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 > |
|
||||||||
|
|
|
|
определяется так: n′ n′′ @ |
n′ |
n′′ |
|||
n′ n′′ {< α ′,α ′′ > |α ' 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.
Вычисление основывается на методе сетевой резолюции – доказательстве общезначимости формул.