Нейроинформатика

       

Граф вычисления сложной функции


Сложная функция задается с помощью суперпозиции некоторого набора "простых". Простые функции принадлежат исходно задаваемому конечному множеству F. Формально они выделены только принадлежностью к множеству F - никаких обязательных иных отличий этих функций от всех прочих в общем случае не предполагается.

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

Теория выражений, определяющих сложные функции, является простейшим разделом математической логики, в которой сами эти выражения называются термами [3.4].

Термы - это правильно построенные выражения в некотором формальном языке. Чтобы задать такой язык, необходимо определить его алфавит. Он состоит из трех множеств символов:

  1. C - множество символов, обозначающих константы;
  2. V - множество символов, обозначающих переменные;
  3. F - множество функциональных символов,
    Граф вычисления сложной функции
    , где
    Граф вычисления сложной функции
    - множество символов для обозначения функций k переменных.

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

Термы определяются индуктивно:

  1. любой символ из
    Граф вычисления сложной функции
    есть терм;
  2. если
    Граф вычисления сложной функции
    - термы и
    Граф вычисления сложной функции
    , то
    Граф вычисления сложной функции
    - терм.

Множество термов T представляет собой объединение:

Граф вычисления сложной функции

где

Граф вычисления сложной функции
,

Граф вычисления сложной функции

Удобно разбить T на непересекающиеся множества - слои

Граф вычисления сложной функции
. Элементы
Граф вычисления сложной функции
будем называть термами глубины i или i-слойными термами. Множеству
Граф вычисления сложной функции
принадлежат выражения, обозначающие те функции от термов предыдущих слоев
Граф вычисления сложной функции
, которые сами им не принадлежат1).

Для оперирования с термами очень полезны две теоремы [3.4].


Эта теорема является точной формулировкой эквивалентности используемой бесскобочной и обычной записи.

Пусть u и v - выражения, то есть последовательности символов алфавита. Скажем, что u входит в v, если существуют такие выражения p и q (возможно, пустые), что v совпадает с puq.

Теорема 2 (о вхождении терма в терм). Пусть
Граф вычисления сложной функции
,
Граф вычисления сложной функции
- термы, t представляется в виде
Граф вычисления сложной функции
, ? - терм и ? входит в t. Тогда или ? совпадает с t, или ? входит в одно из
Граф вычисления сложной функции
.

Доказываются эти теоремы элементарной индукцией по длине термов [3.4]. В доказательстве теоремы 2 выделяется лемма, представляющая и самостоятельный интерес.

Лемма 1. Каждое вхождение любого символа в терм ? начинает вхождение некоторого терма в ?.

Определим отношение между термами
Граф вычисления сложной функции
индуктивным образом "сверху вниз" - по глубине вхождения:

  1. Граф вычисления сложной функции
    ;
  2. если t совпадает с
    Граф вычисления сложной функции
    ,
    Граф вычисления сложной функции
    и
    Граф вычисления сложной функции
    - термы, то
    Граф вычисления сложной функции
    ;
  3. если
    Граф вычисления сложной функции
    и
    Граф вычисления сложной функции
    , то
    Граф вычисления сложной функции
    .


Согласно теореме 2,
Граф вычисления сложной функции
тогда и только тогда, когда
Граф вычисления сложной функции
входит в
Граф вычисления сложной функции
.

Для каждого терма t определим множество входящих в него термов
Граф вычисления сложной функции
. Если
Граф вычисления сложной функции
, то при
Граф вычисления сложной функции
непусты множества
Граф вычисления сложной функции
. При этом множество
Граф вычисления сложной функции
состоит из одного элемента - исходного терма t.

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

Для произвольного графа G будем обозначать v(G) множество вершин, а e(G) - множество ребер G.

Возьмем для примера выражение для сложной функции

Граф вычисления сложной функции


(3)
В принятой выше бесскобочной префиксной записи оно имеет вид

Граф вычисления сложной функции


(3')
где все функциональные символы принадлежат
Граф вычисления сложной функции
.

Граф вычисления сложной функции

Рис. 3.1. 

Граф
Граф вычисления сложной функции
для этого терма изображен на рис. 3.1.

Для того, чтобы терм однозначно восстанавливался по графу, необходимы еще два дополнения.

  1. Сопоставим каждой вершине
    Граф вычисления сложной функции
    метку p(?) - символ алфавита. Если вершина принадлежит нулевому слою
    Граф вычисления сложной функции
    , то ей соответствует терм, совпадающий с символом из
    Граф вычисления сложной функции
    . Этот символ и сопоставляется вершине в качестве метки.


    Если вершина принадлежит
    Граф вычисления сложной функции
    (i>0), то меткой служит функциональный символ: вершине ? сопоставляется
    Граф вычисления сложной функции
    , если ? имеет вид
    Граф вычисления сложной функции
    , где
    Граф вычисления сложной функции
    , а
    Граф вычисления сложной функции
    - термы.
  2. Каждому ребру
    Граф вычисления сложной функции
    , приходящему в вершину ?, сопоставим метку P(?', ?) - конечное множество натуральных чисел (номеров): пусть терм ? имеет вид
    Граф вычисления сложной функции
    , где
    Граф вычисления сложной функции
    , а
    Граф вычисления сложной функции
    - термы, тогда ребру (?', ?) сопоставляется множество тех i (
    Граф вычисления сложной функции
    ), для которых ?' совпадает с
    Граф вычисления сложной функции
    . На практике в большинстве случаев эта метка состоит из одного номера, но возможны и другие варианты - так же, как функции вида f(x,x). Для графических иллюстраций удобно ребра (?', ?), имеющие в своей метке P(?', ?) больше одного номера, рисовать как пучок ребер, идущих от вершины ?' к вершине ? - по одному такому ребру для каждого номера из P(?', ?); этот номер и будет меткой соответствующего ребра из пучка.


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

Итак, для всякого терма t построен ориентированный граф
Граф вычисления сложной функции
и две функции: первая сопоставляет каждой вершине
Граф вычисления сложной функции
символ алфавита
Граф вычисления сложной функции
, вторая (обозначим ее P) - каждому ребру
Граф вычисления сложной функции
- конечное множество натуральных чисел P(?', ?). Отмеченный граф - набор (
Граф вычисления сложной функции
) обозначаем
Граф вычисления сложной функции
. Функции p и P удовлетворяют следующему ограничению:

А) если для данного
Граф вычисления сложной функции
множество входящих ребер (?', ?) непусто, то
Граф вычисления сложной функции
(является k-местным функциональным символом при некотором k) и семейство множеств
Граф вычисления сложной функции


при фиксированном ? образует разбиение множества номеров {1,...,k}, то есть

Граф вычисления сложной функции


при
Граф вычисления сложной функции
,

Граф вычисления сложной функции


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

Пусть G - конечный ориентированный граф, не имеющий ориентированных циклов, и в G существует и единственна такая вершина
Граф вычисления сложной функции
, к которой от любой вершины ведет ориентированный путь. Пусть, далее, заданы две функции: p - на множестве вершин G со значениями в множестве символов алфавита и P - на множестве ребер G со значениями в множестве конечных наборов натуральных чисел и выполнено условие A.



Теорема 3. Существует и единственен терм t, для которого
Граф вычисления сложной функции
.

Доказательство проводится в два этапа. Сначала в G устанавливается послойная структура: строится разбиение множества вершин G:
Граф вычисления сложной функции
. Множество
Граф вычисления сложной функции
состоит из тех вершин, к которым не ведет ни одного ребра - из-за отсутствия ориентированных циклов такие вершины существуют. Множество
Граф вычисления сложной функции
состоит из тех вершин, к которым ведут ребра только из элементов
Граф вычисления сложной функции
. Последний непустой элемент в последовательности
Граф вычисления сложной функции
состоит из одной вершины
Граф вычисления сложной функции
, все предшествующие элементы этой последовательности непусты, а объединение всех
Граф вычисления сложной функции
содержит все вершины G.

Доказательство основного утверждения теоремы проводится индукцией по числу слоев k.

Интерпретация сопоставляет терму сложную функцию. Она строится так. Задается некоторое множество D - область интерпретации. Каждой константе с, входящей в интерпретируемый терм t, сопоставляется элемент из D (
Граф вычисления сложной функции
), каждому k-местному функциональному символу f, входящему в t, сопоставляется функция k переменных
Граф вычисления сложной функции
(мы сохраняем одинаковое обозначение для символов и их интерпретации, это вполне соответствует интуиции и не должно приводить к путанице). Каждой переменной, входящей в интерпретируемый терм t, сопоставляется переменная, пробегающая D. В результате терму t сопоставляется функция n переменных
Граф вычисления сложной функции
, где n - число различных символов переменных, входящих в t. Эта "сложная" функция получается суперпозицией "простых" функций, соответствующих функциональным символам.

Если
Граф вычисления сложной функции
, то есть терм является константой или переменной, то вместо сложной функции
Граф вычисления сложной функции
получаем константу или тождественную функцию id, переводящую значение переменной в него же. Если
Граф вычисления сложной функции
, то соответствующая функция является "простой". Истинные сложные функции появляются, начиная со слоя
Граф вычисления сложной функции
.

Заметим, что заданная интерпретация терма t одновременно определяет интерпретацию каждого терма, входящего в t.

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



Пусть задана интерпретация терма t и определены значения всех переменных, входящих в t. Тогда для любого терма ?, входящего в t, также задана интерпретация и определены значения всех функций
Граф вычисления сложной функции
. Каждой вершине ?, входящей в граф
Граф вычисления сложной функции
, сопоставляется значение функции
Граф вычисления сложной функции
- элемент D. При этом вершинам нулевого слоя соответствуют значения переменных и констант, а единственной вершине последнего (выходного) слоя - значение
Граф вычисления сложной функции
. Будем называть элементы D, соответствующие вершинам, значениями этих вершин и обозначать их Z(? ).

Для каждой вершины ?, принадлежащей ненулевому слою, можно выписать уравнение функционирования, связывающее значения вершин. Пусть
Граф вычисления сложной функции
,
Граф вычисления сложной функции
и in(?) - совокупность входящих в ? ребер. Напомним, что совокупность меток ребер, оканчивающихся в ?,

Граф вычисления сложной функции


образует разбиение множества {1,2,...,k}.

Уравнение функционирования для вершины ?, принадлежащей ненулевому слою, имеет вид

Граф вычисления сложной функции


(4)
при
Граф вычисления сложной функции


В силу уравнения функционирования (4), если для входящих в ? ребер
Граф вычисления сложной функции
известны значения Z(?') и задана интерпретация символа
Граф вычисления сложной функции
- метки вершины, то можно найти значение вершины Z(?). На основании этого (очевидного) замечания строится динамическое представление вычисления сложной функции.

С каждой вершиной графа ?, принадлежащей ненулевому слою, ассоциируется автомат, вычисляющий функцию
Граф вычисления сложной функции
, где
Граф вычисления сложной функции
- метка вершины ?. Автоматы срабатывают по слоям в дискретные моменты времени (такты) - автоматы i-го слоя в i-й момент времени. В начальный момент сформированы значения вершин нулевого слоя - известны значения переменных и констант. Они поступают на входы автоматов первого слоя в соответствии с нумерацией аргументов. После i-го такта функционирования определены значения вершин, принадлежащих слоям
Граф вычисления сложной функции
. На i+1-м такте автоматы i+1-го слоя вычисляют значения вершин i+1-го слоя, получая входные сигналы с предыдущих слоев по правилу (4) - в соответствии с метками входящих ребер.


Содержание раздела