УДК 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,...,Еп имеет место равенство
х£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
Эл. почта: [email protected]
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.
Кручинин Владимир Викторович