Представление множеств деревьями и/илио

УДК 519.172.1

В.В. Кручинин

Представление множеств деревьями И/ИЛИ

Рассматривается возможность представления множеств в виде деревьев И/ИЛИ. Показано, что если мощность множества описывается примитивно-рекурсивной функцией алгебры {И, +, х, В, 5}, то для такого множества можно взаимно однозначно поставить в соответствие схему рекурсивной композиции построения дерева И/ИЛИ. Получен метод построения выражения мощности множества, представленного рекурсивной композицией построения дерева И/ИЛИ.

Понятие дерева И/ИЛИ впервые было предложено Д. Слейглом для построения системы взятия интегралов в символьном виде [1]. В настоящее время данный класс деревьев нашел широкое применение при создании систем искусственного интеллекта, о чем свидетельствует достаточно большое число работ, посвященных этой теме [2-5]. Однако деревья И/ИЛИ можно использовать не только для представления знаний и поиска решений, но и для представления множеств, структура которых задана некоторой иерархией. В связи с этим дадим ряд определений:

1) деревом И/ИЛИ будем называть дерево, которое содержит узлы двух типов: И-узел и ИЛИ-узел;

2) вариантом дерева И/ИЛИ назовем дерево, которое получается из данного путем отсечения всех дуг, кроме одной, у всех ИЛИ-узлов. Пример дерева И/ИЛИ и всех его вариантов представлен на рис. 1.

Корень дерева — Г, Вершины дерева Т, В являются И-узлами, вершины А, В — ИЛИ-узлами; вершины с, пг, п, f, к — листьями.

Поскольку корень является И-узлом, то все сыновья (узлы А, В) включаются в вариант дерева. Узлы .А и В являются ИЛИ-узлами, тогда один из их сыновей включается в вариант. Лемма. Любое поддерево дерева И/ИЛИ является деревом И/ИЛИ.

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

Правила построения дерева И/ИЛИ

Во многих случаях множество может иметь некоторую структуру, т.е. множество может быть представлено как объединение некоторых других множеств или как декартово произведение других множеств и т.д. Тогда такое множество можно представить деревом И/ИЛИ. Правила построения будут следующие.

Введение

Рис. 1. Дерево И/ИЛИ и все его варианты

1. Если некоторое множество разбивается на п множеств {£/}"=!, то это разбиение можно представить ИЛИ-узлом. При этом должно быть выполнено условие

Е1 п Е) = 0, I* }.

2. Если искомое множество является декартовым произведением Е| х Е2 х •  - * Еп из л множеств {£, х, то данное преобразование представляется И-узлом.

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

Используя эти правила, можно строить деревья И/ИЛИ для описания различных классов множеств. Рассмотрим пример множества (см. рис. 1). Пусть Т = {cf,mnf,ef,ch,mnh,eh}. Тогда для Т можно записать

Т = Ах В, А = (с}иЛи(г}, В = {тп} х {л}, В = {/} и {Л}.

Отсюда для множества Т, используя описанные выше правила, строится дерево И/ИЛИ (см. рис. 1). Корнем дерева становится узел Т, который становится И-узлом. Он будет иметь двух сыновей — А и В. В свою очередь А становится ИЛИ-узлом и будет иметь сыновей с, В, е. Узел В также является ИЛИ-узлом, содержащим сыновей / и Л. Узел й станет И-узлом с сыновьями той«.

Если для некоторого множества имеется дерево И/ИЛИ, можно предложить следующий алгоритм получения варианта из дерева И/ИЛИ.

1. Корнем варианта становится г-корень дерева Див стек узлов заносится корень

Бгаск.РиЩг).

2. Если стек дуст, работа алгоритма завершается. Иначе из стека выталкивается узел г, и он становится текущим: г - 31аск.РиЩ).

3. Если рассматриваемый узел г — ИЛИ-узел, то в вариант V и в стек заносится — один из сыновей узла г.

4. Если рассматриваемый узел г — И-узел, то все его сыновья заносятся в стек и вариант V как сыновья узла варианта.

5. Если рассматриваемый узел г — лист, то происходит переход на шаг 2.

Очевидно, что данный алгоритм всегда останавливается, поскольку происходит переход

от узла к сыновьям, а листья удаляются из стека.

Теорема. Если дерево И/ИЛИ описывает некоторое множество Е, построенное по п. 1-3, то вариант дерева И/ИЛИ описывает один из элементов этого множества.

Для доказательства покажем, что, применяя правила п. 1-3, мы получим однозначное соответствие между вариантом дерева И/ИЛИ и элементом множества Е. Если множество описывается узлом ИЛИ, то оно разбивается на п непересекающихся множеств (п. 1). Это означает, что далее можно рассматривать только одного из сыновей этого узла, поскольку в вариант попадает один из сыновей узла ИЛИ.

Узел И описывает декартовое произведение множеств, поэтому в вариант попадают все сыновья узла И. Это означает, что в варианте будет присутствовать один из кортежей декартового произведения, что также взаимно однозначно задает соответствие между вариантом и элементом множества Е.

Рекурсивно применяя правила п. 1-2, мы дойдем до листьев дерева И/ИЛИ (п. 3). Таким образом, вариант дерева И/ИЛИ однозначно описывает элемент множества Е.

Следствие 1. Все варианты в дереве И/ИЛИ различны, поскольку описывают элементы множества.

Следствие 2. Число вариантов в дереве И/ИЛИ Х>, описывающее множество Е, равно мощности множества Е.

Подсчет числа вариантов в дереве И/ИЛИ

Фундаментальную роль в перечислительной комбинаторике играют правила сложения и умножения. Правило сложения гласит, что для любых конечных множеств Е1,Е2, и п Е] = 0, имеет место равенство

1 Е1 и Е2 и... и Еп Н | + | Е2 1 +...+ | Еп |.

Правило умножения утверждает, что для любых конечных множеств Е1,Е2,...,Еп имеет место равенство

Рассмотрим подсчет числа вариантов в случае, когда дерево И/ИЛИ представляет некоторое множество Е и содержит различные типы узлов. Учитывая, что все поддеревья сыновей узла дерева И/ИЛИ являются также деревьями И/ИЛИ (лемма), для ИЛИ-узла число вариантов будет равно сумме вариантов всех его сыновей (правило сложения):

п

ю(г) = р

¡=1

где з, — сыновья узла г.

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

п

(0(2) = П^) .

г=1

Очевидно, что для листьев а)(г) = X. Тогда можно записать следующую рекурсивную функцию для подсчета вариантов:

о)(2) =

2 со(8?) для ИЛИ-узла;

£=1

[] ) для И-узла; ¡=1

1 для листа,

где 2 — рассматриваемый узел дерева; {в?} — множество сыновей узла г\ п — число сыновей; <л(г) — число вариантов для узла г.

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

Для листьев ш(с) = <й(т) = а)(л) = 0)(е) = ю(/) = ш(А) = 1; для И-узла (4) ш(В) = ы(т) - ш(п) = 1; для ИЛИ-узла (2) со(А) = о>(с) + а>(.0) + ы(е) = 3 ; для ИЛИ-узла (3) со(В) = ы(/) + ш(Л) = 2 ; для И-узла (1) о)(Г) = ш(А) • ш(В) = 6 .

Построение дерева И/ИЛИ для множества с заданной функцией мощности

Рассмотрим множество, мощность которого задана функцией /(га), где п — некоторый параметр. Докажем, что если функция /(п) сводима к примитивно-рекурсивной и относится к алгебре {М, +, х, й, 5}, то для такой функции можно взаимно однозначно поставить схему построения деревьев И/ИЛИ.

Из теоремы [6] следует, что для любой функции, сводимой к примитивно-рекурсивной и относящейся к алгебре х, Л, Я}, можно построить схему рекурсивной суперкомпозиции

деревьев. Это означает, что для фиксированных аргументов функции /(л) можно взаимно однозначно получить дерево терма И. Поскольку операций всего две (+, х}, дерево будет содержать узлы, помеченные * +» и <х» , а листья будут содержать константы. Таким образом, все узлы, помеченные *+», будут ИЛИ-узлами, а узлы, помеченные «х» , — И-узлами.

Для подсчета вариантов необходимо, чтобы го(лист) = 1, следовательно, листья дерева терма, в которых записаны значения аргументов функции, необходимо заменить ИЛИ-узла-ми, у которых ровно й сыновей, где к — константа, хранящаяся в соответствующем листе дерева терма.

Таким образом, для любой функции /(п), сводимой к примитивно-рекурсивной и относящейся к алгебре {Ы, +, х, Я, 5}, можно взаимно однозначно поставить схему построения деревьев И/ИЛИ.

Рассмотрим пример построения дерева И/ИЛИ для заданной функции

[1, п = 0; \2/<п) + 3

алгебры . Создадим рекурсивную композицию для построения дерева И/ИЛИ.

Для этого построим деревья для функций g(x) = 1 и к(х) = 2*х+3. Поскольку эти функции описываются терминальными выражениями, их легко представить в виде деревьев и (рис. 2).

О

Кп + 1)=2/(п) + 3

fin + 1)

JK

\

\

Рис. 2. Деревья D и Dh и рекурсивная композиция

Далее, лист дерева 1>А , помеченный х, заменяется на корень дерева и £>л в зависимости от значения параметра рекурсии. В результате получим рекурсивную композицию для построения дерева И/ИЛИ {см. рис. 2). Предположим, что п - 2, тогда, используя рекурсивную композицию (рис. 3), получим конкретное дерево И/ИЛИ, у которого число вариантов равно /(2).

Таким образом, для множества, мощность которого задана функцией f(n), сводимой к примитивно-рекурсивной и относящейся к алгебре {ДГ, +, х,Я,5}, можно взаимно однозначно поставить дерево И/ИЛИ, число вариантов которого равно /(п).

Рис. 3. Дерево И-ШШ для функции f{2)

Метод построения дерева И/ИЛИ или схемы рекурсивной композиции по известной функции f{n) мощности множества Е следующий.

1. Проводится анализ функции мощности некоторого множества Е\ если функция терминальная, то строится фиксированное дерево терма.

2. Если функция сводима к примитивно-рекурсивной, то строятся два дерева — Dg и .

доклады ТУСУРа. M 1П7). июнь 2008

3. Все константы, записанные в листьях полученных деревьев, заменяются ИЛИ-узлами, у которых число сыновей равно значению константы.

4. Если функция рекурсивна, то записывается схема рекурсивной суперкомпозиции:

Вывод формулы мощности множества на основе дерева И/ИЛИ

Если для некоторого множества Е получена рекурсивная суперкомпозиция построения дерева И/ИЛИ, т.е. известны деревья I) , £)л и задана 5:

то можно получить рекурсивную функцию для мощности этого множества.

Для этого по дереву терма строится функция а для £>А — функция Ь(х), Затем записывается рекурсивная схема функции:

Рассмотрим пример. Полным двоичным деревом называется двоичное дерево, узлы которого имеют ровно два сына или не имеют сыновей. Построим схему рекурсивной суперкомпозиции. •Ор описывает узел, у которого нет сыновей.

£>л описывает два варианта: узел, у которого нет сыновей, и узел, у которого ровно два сына (рис. 4). Запишем рекурсивную композицию:

Д(0) =

Жу+1) = ^.......(^.а^-.Л*);

И; = Щу), } = Ьк.

ЩО) = £>в;

щу +1) = .....^.а^.-.л*);

= щу), } = Га,

Развивая этот метод, можно предложить формулу для перечисления троичных деревьев высотой не более п:

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

1. Для множества Е строится дерево И/ИЛИ.

2. На основе анализа дерева И/ИЛИ строится схема рекурсивной композиции:

Выводы

Рис. 4. Схема рекурсивной композиции для полных двоичных деревьев

Д(0) = 1)г;

Щу +1) = .. .л(2>а, .....

= Щу), } = Г*.

3. Записываются функции g(x), Л(х) и выводится выражение для рекурсивной функции

Литература

1. Slagle J.R. A Heuristic Program that Solves Symbolic Integration / J.R. Slagle // Problems in Freshmen Calculus In E. Feigenbaum and J. Feldman, editors, Computer and Thought. -McGraw-Hill : New York, 1963. - P. 192-203.

2. Хант Э. Искусственный интеллект / Э. Хант. - М. : Мир, 1978. - 558 с.

3. Попов Э.В. Общение с ЭВМ на естественном языке / Э.В. Попов. - М. : Наука, 1986. - 360 с.

4. Ефимов Е.И. Решатели интеллектуальных задач / Е.И. Ефимов. - М. : Наука, 1982.

5. Братко И. Программирование на языке Пролог для искусственного интеллекта / И. Братко. - М. : Мир, 1990. - 560 с,

6. Кручинин В.В. Рекурсивные композиции деревьев и их свойства / В.В. Кручинин // Доклады ТУСУРа. - 2007. - № 2 (16). - С. 74-80.

Канд. техн. наук, зав. лаб. инструментальных систем моделирования и обучения ТУСУРа

Тел.: 45 10 00

Эл. почта: kru@tcde.ru

V.V. Kruchinin

Presentation of set by means of tree AND/OR

The possibility of the presentation set is considered in the manner of tree AND/OB. It is shown that if power set is described primitive recursive function of the algebra {N, +, x, R, S} then for such set possible one-to-one to put in correspondence to scheme to recursive composition of the building tree AND/OR. It is received method of the building of the expression to powers of set, presented recursive composition of the building tree AND/OR.

- 320 c.

Кручинин Владимир Викторович