Графы и деревья.
Рассмотрим мн-во , соединенных некоторым образом точек. Назовем мн-вом вершин, а его элементы вершинами. Направленным графом называется совокупность конечного мн-ва вершин и определенного на этом мн-ве отношения . Направленный граф можно представить графически следующим образом. Расположим на листе бумаги все вершины мн-ва . Каждую вершину изобразим в виде окружности, внутри которой вписан элемент множества . Две вершины и соединим отрезком линии, если существует пара . В этом случае будем говорить, что граф содержит ребро .
Если в графе имеется некоторая последовательность вершин , где и для , говорят, что в графе существует путь длиной из вершины в вершину . Для . Граф может содержать подграфы вида , если и . Два подграфа, не имеющие общих вершин, называются раздельными подграфами.
Рекурсивное определение дерева. Деревом называют такой направленный граф, который имеет либо одну единственную вершину, называемую корнем , либо совокупность корня, нескольких раздельных подграфов-деревьев и ребер от корня дерева до вершин-корней деревьев . Дерево представляют в виде расположенного вверху корня и направленных сверху вниз ребер. В этом случае можно не указывать направление ребер. Вершину дерева из которой не выходит ни одного ребра называют листом, остальные вершины - внутренними вершинами дерева.
Строки.
Под строкой всегда понимается некоторая последовательность символов , каждый из которых принадлежит некоторому конечному алфавиту . В дальнейшем для обозначения отдельных символов будем использовать строчные буквы , а для обозначения строк - буквы . Строка, состоящая из символов , будет обозначаться . Длина произвольной строки представляет собой число символов в строке и обозначается. В общем случае существует пустая строка , которая имеет нулевую длину и обозначается .
Формально строки символов в алфавите определяются следующим образом:
-
- строка в ;
-
если - строка в и , то - строка в ;
-
- строка тогда и только тогда, когда она является таковой в силу первых двух положений.
Если и строки, то строка называется конкатенацией (сцеплением или объединением) и . Причём , но . Для пустой строки справедливо следующее утверждение для любого . Обращением строки называется строка, записанная в обратном порядке .
Пусть , и произвольные строки в некотором алфавите и строка , тогда строка называется префиксом строки , а строка - суффиксом строки .
Формальные языки.
Обозначим через множество определенных над алфавитом строк. Например, для
Множество всех строк в за исключением обозначается . Таким образом .
Формальным языком над алфавитом называется произвольное подмножество множества . Пусть и - два формальных языка, тогда их конкатенация (объединение) также является формальным языком. Например, для языков и , . Конкатенация формального языка с самим собой записывается в виде . В общем случае это выглядит так , , для . Тогда можно определить как , а