Тверской государственный университет
Опубликован: 21.08.2007 | Доступ: свободный | Студентов: 3249 / 335 | Оценка: 4.08 / 3.92 | Длительность: 15:40:00
ISBN: 978-5-9556-0110-6
Специальности: Программист, Математик
Лекция 10:

Деревья

< Лекция 9 || Лекция 10: 123 || Лекция 11 >

Деревья и формулы (выражения)

Напомним, что в "Индукция и комбинаторика" было введено общее понятие формулы над системой функций \mathcal{B} (определение 3.2), которое применимо для произвольных функций, а не только булевых. В "Эквивалентность формул и нормальные формы" аналогичные синтаксические объекты для логики предикатов названы термами (определение 7.1), а в языках программирования такие конструкции часто называются выражениями.

Итак, пусть формула над множеством функций F, множеством констант C и множеством переменных Var определяется индуктивно по следующим правилам.

  • Переменная из Var есть формула.
  • Константа из C есть формула.
  • Если g1, ..., gk - формулы, а f(k) - k -местная функция из F, то f(g1, ..., gk) - это формула.

Обозначим множество всех таких формул через \mathcal{F}({\bf F},{\bf C},{\bf Var}).

Рассмотрим класс упорядоченных размеченных деревьев \mathcal{T}({\bf F},{\bf C},{\bf Var}), листья которых помечены элементами из (C \cup  Var), а внутренние вершины - функциями из F, причем, если вершина помечена символом k -местной функции из F, то у нее имеется k сыновей.

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

Рис. 10.3. Индуктивное определение связи между формулами и деревьями

Предложение 10.1. Между множеством формул\ \mathcal{F}({\bf F},{\bf C},{\bf Var}) и множеством деревьев \mathcal{T}({\bf F},{\bf C},{\bf Var}) имеется взаимно однозначное соответствие.

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

Пример 10.2. Рассмотрим, например, класс обычных арифметических формул над множеством функций F = { +, -, *, : }, целочисленных констант C = {0, 1, 2,... } и переменных Var = {x,y,z, ... }. Пусть формула \Phi  = +( \times (5, +(x,7)),(:(y,+(x, 7))) (ее обычное представление \Phi  = 5 \times (x+7) + y :(x + 7) )

Тогда в соответствии с предложением 10.1 эта формула представляется деревом T_{\Phi }, изображенном на рис. 10.4.

Дерево T

Рис. 10.4. Дерево T

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

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

Определение 10.4. Ориентированное дерево называется бинарным или двоичным, если у каждой его внутренней вершины имеется не более двух сыновей, причем ребра, ведущие к ним помечены двумя разными метками (обычно используются метки из пар: "левый" - "правый", 0 - 1, + - - и т.п.)

Бинарное дерево называется полным, если у каждой его внутренней вершины имеется два сына и все его ветви имеют одинаковую длину.

Ориентированные ациклические графы также используются для представления формул. Они получаются из соответствующих деревьев при склеивании вершин, представляющих одинаковые подформулы. Для формулы \Phi  = 5 \times (x+7) + y :(x + 7) такой граф G_{\Phi } получается при склеивании вершин v5 и v7 дерева T_{\Phi }, представляющих подформулу (x+7).

Ациклический граф G

Рис. 10.5. Ациклический граф G

На рис.10.5 явно указаны номера ребер, выходящих из вершины v3, которые определяют порядок аргументов приписанной этой вершине операции :. Ясно, что при отсутствии такого указания и использовании порядка " по умолчанию" - первый аргумент слева - граф представлял бы другое выражение.

< Лекция 9 || Лекция 10: 123 || Лекция 11 >
Елена Алексеевская
Елена Алексеевская

Это в лекции 3.

Татьяна Дембелова
Татьяна Дембелова

Почему в вводной лекции курса Основы дискретной математики одним из свойств отношения частичного порядка упоминается антирефлексивность? Посмотрела в других источниках, там -0  рефлексивность... http://ru.wikipedia.org/wiki/%D0%9E%D1%82%D0%BD%D0%BE%D1%88%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BF%D0%BE%D1%80%D1%8F%D0%B4%D0%BA%D0%B0