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

Нестрогое вложение деревьев в приложении к поиску математических выражений Текст научной статьи по специальности «Математика»

CC BY
87
16
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
СЕМАНТИЧЕСКИЙ ПОИСК / ПОИСК В ДЕРЕВЕ ПО ШАБЛОНУ / ПОИСК МАТЕМАТИЧЕСКИХ ВЫРАЖЕНИЙ

Аннотация научной статьи по математике, автор научной работы — Кубаев Вячеслав Андреевич

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

The artcle deals with the approximate pattern searching in orderedlabelledtrees in application to semantic searching of mathematicalexpressions. We introduce a new approach to approximate searching in trees which uses set of allowedsubtree transformations for target tree. Each allowedtransformation is assignedwith some weight andthe problem is to findthe minimaltotalweight of transformations which allow to match pattern tree with the target

Текст научной работы на тему «Нестрогое вложение деревьев в приложении к поиску математических выражений»

плекса в Управлении связи, специальной техники и автоматизации МВД по РТ в составе системы поддержки принятия решений при видеомонито-

СПИСОКЛ

1. Глова, В.И Исследование операторов выделения контуров на размытых и неразмытых изображениях. [Текст]/В.И. Глова, И.В. Аникин, Д.В. Козырев.-Казань: Изд-во Казан. гос. техн. ун-та, 1998.

2. Глова, В.И. Системы поддержки принятия решений при видеомониторинге подвижных объектов [Текст]/В.И. Глова, Р.Х. Шакиров, А.С. Катасёв//Ин-формационные технологии в науке, образовании и про-

ринге подвижных объектов [2]. Текущие результаты эксплуатации показали его пригодность для практического использования.

ГЕРАТУРЫ

изводстве: Матер. Всерос. науч. конф.-Казань: Изд-во Казан. гос. техн. ун-та, 2007.-С. 519-522.

3. Макаров, Д.А. Выделение размытых контуров на изображении [Текст]/Д.А. Макаров,

A.С. Катасёв//Наука и профессиональная деятельность: Матер. Всерос. науч.-практ. конф; Под ред.

B.А. Песошина.-Казань: Изд-во Казан. гос. техн. унта, 2008. -С. 164-166.

УДК 519:324.17

В.А. Кубаев

НЕСТРОГОЕ ВЛОЖЕНИЕ ДЕРЕВЬЕВ В ПРИЛОЖЕНИИ К ПОИСКУ МАТЕМАТИЧЕСКИХ ВЫРАЖЕНИЙ

В данной статье рассматривается задача по нестрогому поиску по шаблону в упорядоченных размеченных деревьях. Эта задача имеет прикладное значение и широкую область применения при организации семантического поиска математической информации, представленной в XML-форматах (MathML, OpenMath, Office Open XML).

Задача поиска в целевом дереве T по шаблону P состоит в необходимости определения, может ли шаблонное дерево быть вложено в некотором смысле в целевое дерево. Для организации гибкости поиска это вложение целесообразно делать нестрогим, а для определения релевантности результата поиска вводить стоимостную функцию вложения.

В литературе встречаются различные подходы для определения стоимостной функции в случае нестрогого поиска поддерева. Ряд авторов [3, 7 и др.] определяют стоимостную функцию на основании операций редактирования (удаления, вставки и переименования вершин). В [8] предложен алгоритм, определяющий стоимостную функцию на основе числа несовпадающих путей в целевом и шаблонном дереве. Нестрогое соответствие поддеревьев возникает также в задаче определения изменений в структурированных и частично структурированных данных [4, 9].

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

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

Основные определения. Дадим основные определения, используемые в статье. Эти определения являются общепринятыми и с некоторыми вариациями могут быть найдены в классических работах [1, 2 и др.].

Деревом Тназывается набор Т = (V, Е, гао^Т)), в котором V - конечное множество вершин, Е -двоичное отношение на множестве вершин, назы-

ваемое множеством ребер, и гоо^Т) - выделенная вершина, называемая корнем дерева. Говорят, что пара (и, V) является ребром дерева, если (и, v)еE. При этом вершину и называют родительской вершиной для вершины V, а вершину V - дочерней вершиной для вершины и.

Множество ребер Е должно удовлетворять следующим условиям.

1. Корень дерева не имеет родительской вершины: 3V е V: (V, (оо1:(Г) е Е .

2. Любая вершина, за исключением корня, имеет ровно одну родительскую вершину: Vv е V, V ф гоо1:(Г) 3! и е V :(и, V) е Е.

3. Из корня к любой вершине идет путь: (гоо^Г), у)е Е* Vv е V , где Е* - рефлексивное транзитивное замыкание Е.

Дерево называют упорядоченным, если для любой вершины vе V, множество ее дочерних вершин сЫЫгеп^) упорядочено.

Дерево Т называется помеченным, если существует функция I : V ^ А, задающая соответствие между множеством вершин V и некоторым алфавитом А. Будем обозначать метку вершины V как ¡аЬе^). В дальнейшем будем считать, что все рассматриваемые деревья помечены с помощью одного и того же алфавита.

Если для пары вершин и, vеV существует путь из и в V (то есть (и, v)еE+, где Е + - транзитивное замыкание Е), то V называют потомком вершины и. Множество потомков вершины V обозначим desc(v).

Количество дочерних вершин для вершины V будем обозначать через VI. Количество вершин в дереве Т будем обозначать через |Т.

Дерево, образованное некоторой вершиной vеV и всеми ее потомками, называют поддеревом дерева Т и обозначают Т [V]. Т [V] = (V', Е', V), где

V' = МЦаевф), Е' =

Пусть в дереве Т = (V, Е, гоо^Т)) вершины v1, v2, ..., vk, k > 0 являются дочерними вершинами корня гао^Т). Тогда обход дерева в обратном порядке задается рекурсивным алгоритмом:

1. посетить в обратном порядке Т Т ..., Т V] в указанной последовательности;

2. посетить гоо^Т).

Будем обозначать порядковый номер вершины V при обратном порядке обхода через post(v).

Везде далее, под деревом, если специально не оговорено иное, мы будем понимать упорядоченное помеченное дерево.

Постановка задачи

Рассмотрим представление математической формулы в виде дерева, вершины которого представляют собой элементы формулы, а ребра определяют отношения между этими элементами. В качестве практической иллюстрации такого представления можно привести пример форматов MathML, OpenMath и формат Office Open XML. Например, в формате разметки содержания MathML 2.0 выражение «переменная х в квадрате» будет записана в следующем виде:

<apply> <power/> <ci>x</ci> <cn>2</cn> </apply>

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

Дадим формальную постановку этой задачи.

Введем понятие множества G допустимых преобразований деревьев как множество троек {(GО Gl сД (Go G< SX (G- G^ c^ где G° - дерево, к которому может быть применено i-е допустимое преобразование, G'- дерево, представляющее собой результат i-го допустимого преобразования, и с, с. > 0 - стоимость i-го допустимого преобразования.

Будем говорить, что дерево P = (W, F, root(P)) может быть вложено в дерево T = (V, E, root(T)) (обозначаем Px T), если существует инъективная функция f : W ^ V, такая, что выполнены условия:

1. Vu,weW f(u) = f(w)<=>u = w;

2. Vwe W label(w) = label(/(w));

3. Vu,wgW (u,w)g F &(f(u),f(w))e E;

4. V«,we W post(i<) < post(w) <=> post(/(м))< < post(/(w)).

Если дерево P может быть вложено в дерево T так, что f(root(P)) = root(T), то будем говорить,

что дерево Р может быть вложено в дерево Т с сохранением корня (обозначаем Р< Т).

Будем говорить, что дерево Р = (Ж, Е, гао^Р)) может быть вложено в дерево Т = (V, Е, гао^Т)) с помощью множества допустимых преобразований G (обозначаем Р< ОТ), если существует:

подмножество вершин Ж' с Ж, Ж' = = «, ..., <),

мультимножество допустимых преобразований О' = {(°Л О', c1), ..., (О; О', ф

VI = ^(О- в; * *

инъективная функция / : Ж" ^ V, где Wм =

такие, что выполнены условия:

1. \ие

2. \/и,м>е\У'/(и) =и = м>-,

3. Уи-е У/"XV/' 1аЬе1(>у) = 1аЬе1(/(»);

4. ^¡еУУ' ] = и в), )];

5. Е;

6. V«,н-е У/" ров^и) < ров^™) <=> роя1(/(м)) <

< роьЦ/М).

Весом вложения с помощью допустимых преобразований О' назовем сумму весов используемых при вложении преобразований ^ ,_о^ .

Пусть Ь = {Ьр Ь2, ..., Ьм } - фиксированное множество деревьев, в которых необходимо осуществить поиск, и дерево Р - запрос пользователя. Задача нестрогого относительно набора преобразований поиска поддерева по шаблону состоит

в том, чтобы для данного шаблона Р найти минимальный вес вложения с помощью множества допустимых преобразований в каждое дерево библиотеки Ь.

На рисунке приведен пример вложения с помощью набора допустимых преобразований для формул вформате разметки содержания MathML 2.0.

Алгоритм поиска

Алгоритм поиска состоит из двух этапов: этапа предобработки шаблона Р и элементов библиотеки Ь и этапа поиска вложения с минимальным весом.

На этапе предобработки шаблона Р осуществляется поиск допустимых преобразований, которые могут быть применены к дереву Р, и к метке каждой вершины шаблона добавляется множество идентификаторов преобразований, которые могут быть применены в данных вершинах (обозначим это множество йаш(у)). В терминах вложения деревьев это означает, что для каждой пары О°и Р нам необходимо найти все вершины V дерева Р, такие что Р[у] идентично в° Эта задача является классической и может быть решена за время 0(|Р|) [5, 6].

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

Пример вложения

v добавляется множество идентификаторов преобразований, результаты которых могут быть вложены в Lj[v] с сохранением корня (также обозначим это множество trans(v)).

Для реализации алгоритма предобработки используется техника динамического программирования: для каждой пары G' и L. организуется обратный обход вершин деревьев. Такой порядок обеспечивает нам то, что при проверке вложения поддерева G' [v] в поддерево L.[v] мы будем обладать информацией о возможности вложить поддеревья в дочерних вершинах u в поддеревья в дочерних вершинах v. На основании этого в процессе обхода для каждого дерева G' заполняется двумерный массив A[1...|G'|, 1... |L.|], в элементе Л [к, Г] которого сохраняется информация о возможности вложить поддерево в вершине с номером к в G'в поддерево в вершине с номером l в L ..

1 J

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

Алгоритм 1 Предобработка элемента библиотеки L.

j

Вход: Множество помеченных упорядоченных деревьев G' = (G'}, i = 1, ..., NG и помеченное упорядоченное дерево Lj.

Выход: Упорядоченное дерево L к метке каждой вершины v которого добавлено множество идентификаторов преобразований, результаты которых могут быть вложены в L [v] с сохранением корня.

Алгоритм:

01 for i := 1.....Ng do // Организуем цикл по G';

02 Инициализируем A[l...lPI,l...lLjJ] величиной

03 for v := 1.....\Lj I do II Организуем обратный

обход вершин Ly;

04 for и := 1,..., IG,' I do // Организуем обратный обход вершин G't;

05 if label(w) = label(v) then

06 Обозначим {и,.....иы} := desc(M);

07 if Существуют {^,..., vM} e desc(v) такие, что A[Mi,vi]<+ooVi = l,...,lMl

and post (v.) < post(v;) Vf < j then

08 A[m,V] :=0;

09 endif;

10 endif;

11 endfor;

12 if A[root(G/),v] < then //Нашли вхождение G/ в поддерево L[v];

13 trans(v) := trans(v)[J{(};

14 endif;

15 endfor;

16 endfor.

Условие, сформулированное в строке 07 алгоритма 1, может быть проверено за линейное время O(|v|). Для этого достаточно установить указатель на вершину u1 и последовательно перебирать вершины children(v) слева направо, передвигая указатель при каждом совпадении меток вершин на u.+y Если в конце просмотра указатель будет указывать на вершину u|u|, то условие выполнено. В противном случае, не выполнено.

Лемма 1 Сложность алгоритма 1 по времени составляет o(|LJ ^. \G'\).

Доказательство. Внутри цикла 01 - 16, с учетом замечания после алгоритма 1, сложность составит:

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

О

\\

l+Z(l+lvl)

USE С'

= 0(1 Lj I +1 Lj

IG' I +

JJ

-н I С/1 (| ^ I —1)) = о(| II С?/1).

Суммируя по г, получаем требуемую величину.

Перед тем как перейти к этапу поиска вложения с минимальным весом, рассмотрим вспомогательную задачу. Пусть имеется таблица С(к х п), п > к, содержащая неотрицательные числа с/ и значения +да. Требуется найти минимальную сумму чисел для всех множеств с1, ..., ск, таких что для любого г = 2, ..., к, / > / ,

/1 /к г-1

(т. е. для множеств, содержащих в каждой строке ровно по одному числу, при этом в каждой следующей строке число должно находиться правее числа в предыдущей строке). Назовем такие множества чисел «лесенками», а задачу - «задачей о минимальной сумме лесенки».

Лемма 2 Задача о минимальной сумме лесенки может быть решена за время О(кп).

Доказательство. Для доказательства утверждения рассмотрим алгоритм, решающий задачу за время O(kn). В основе алгоритма лежит идея

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

Алгоритм 2 Поиск минимальной суммы лесенки.

Вход: Таблица C(k х n), n > k, содержащая неотрицательные числа cj и значения +<».

Выход: Множество с минимальной суммой чисел 'Yjci среди всех множеств cj ,..., cj, таких что для любого i = 2, ..., k, j. > j. j. Алгоритм:

01 for i2 do // Организуем цикл по строкам таблицы;

02 c_min:=C[i,n-(k-i)]; //Инициализируем минимальное число;

03 for у := n—(fc-/),...,/ do И Организуем цикл по необходимым столбцам; ]

04 if c_min > C[i, j] then

05 c_min := C[i, j];

06 endif;

07 C[i-l,j-l]:=C[i-l,j-l] + c_min;

08 endfor;

09 endfor;

10 return шш(С[1,1],...,С[1Д]).

Заметим, что алгоритм можно легко модифицировать так, чтобы он возвращал не только минимальную сумму лесенки, но и лесенку, на которой эта сумма достигается. Для этого необходимо в строке 07 алгоритма 2 сохранять в ячейке не только вес, но и номера ячеек лесенки.

Сложность по времени предложенного алгоритма составляет O(kn).

Перейдем теперь к алгоритму поиска минимального вложения. В этом алгоритме использу-

ется техника, аналогичная технике в алгоритме 1.

Алгоритм 3 Поиск минимального вложения дерева.

Вход: Множество допустимых преобразований G, предобработанный шаблон P, предобрабо-

танный элемент библиотека L .

j

Выход: Минимальный вес вложения с помощью множества допустимых преобразований шаблона P в элемент библиотеки L .

j

Алгоритм:

01 Инициализируем А[1...1Р1,\...\L¡ I] величиной

02 for v:=\,...,\L¡ I do//Организуем обратный обход вершин Lj;

03 for и := 1.....1РI do // Организуем обратный

обход вершин Р;

04 c_min := ;

05 if 1аЬе1(и) = label(v) then

06 Обозначим {«!,...,iílBl}:=desc(i<);

07 Обозначим {^,..., vlvl} := desc(v);

08 c_min := минимальная сумма лесенки для подматрицы А, образованной пересечением строк Щ,...,и1и1 и столбцов V1;...,V|V|;

09 endif;

10 if trans(»P)trans(v) Ф 0 then

11 С := mÍn¡etrans(ii)P|traiis(v) C, >

12 c_min := min(c, c_miri);

13 endif;

14 А[и, v] := c_min;

15 endfor;

16 endfor;

17 return min(A[root(P),l],..., A[root(P),l L¡ I]).

В строках 05-09 алгоритма 3 мы ищем минимальную стоимость сопоставления дочерних вершин u с подмножеством дочерних вершин вершины v с сохранением порядка. Эта задача эквивалентна решению задачи о минимальной

сумме лесенки для подматрицы А, образованной пересечением строк и1, ..., м^ и столбцов vl, ..., У| | (каждая лесенка может быть естественным образом отождествлена с сопоставлением дочерних вершин, и наоборот). В строках 10-13 проверяется возможность изменить поддерево Р[и] с помощью набора допустимых преобразований, так чтобы оно могло быть вложено с сохранением корня в поддерево Т [у]. После этого минимальный вес вложения сохраняется в ячейке А [и, у].

Теорема 1 Алгоритм 3 имеет сложность О^.Щ + Мв |р|).

Доказательство. Внутри цикла 02-16, с учетом леммы 2, сложность составит:

О

£ 1 + Б1 +lvllMl+iVG)

= O^LJ\ + \LJ\\P\

+

+(l PI -l)(l Lj I -l)+1PI Ne)= 0(l L},11PI +1PI Ng).

Слагаемое \v\\u\ соответствует решению задачи о минимальной сумме лесенки, а NG - поиску пересечения множеств преобразований и выбору минимального по весу преобразования.

Суммируя сложность всех используемых алгоритмов, мы получаем, что для предобработки библиотеки нам требуется время o(^j \Lj\ ^. \G'\) и для каждого запроса пользователя требуется время o(\P\ NG) на предобработку запроса и o(\P\Xj Lj\ + \PNg Nl) на поиск минимального вложения.

СПИСОК ЛИТЕРАТУРЫ

1. Ахо, А. Построение и анализ вычислительных алгоритмов [Текст]/А. Ахо, Дж. Хопкрофт, Дж. Ульман-М.:-Мир, 1979.

2. Кнут, Д.Е. Искусство программирования [Текст]/Д.Е. Кнут//Основные алгоритмы; 3-е изд. -Ви-льямс.-2000. -Т. 1.

3. Bille, P. Tree Edit Distance, Alignment Distance and Inclusion [Текст]/ P. Bille//IT University Technical Report Series.-2003.

4. Chawathe, S.S. Representing and Querying Changes in Semistructured Data [Текст]/8.8. Chawathe, S. Abiteboul, J. Widom//Proc. of the 14th International Conf. on Data Engineering (ICDE'98).-1998. -P. 4-13.

5. Dublish, P. Some comments on the subtree isomorphism problem for ordered trees [Текст]/Р. Dublish// Information Proc. Letters.-1990.-Vol. 36.-P. 273-275.

6. Grossi, R. A note on the subtree isomorphism for ordered trees and related problems [TeKCT]/R. Grossi// Information Proc. Letters.-1991.-Vol. 39.-P. 81-84.

7. Kovacs, L. Approximate Subtree Search for Labeled Trees with Small Depth Value [TeKCT]/L. Kovacs, T. Repasi, E. Baksa-Varga//Proc. of SAMI 2005.-P. 303-311.

8. Shasha, D. ATreeGrep: Approximate Searching in Unordered Trees [TeKCT]/D. Shasha, J. T.-L. Wang, H. Shan [et al.]//SSDBM '02: Proc. of the 14th International Conf. on Scientific and Statistical Database Management.-2002.-P. 89-98.

9. Su, H. Automating the Transformation of XML Documents [TeKCT]/H. Su, H. Kuno, E.A. Rundensteiner// Proc. of the 3rd International Workshop on Web Information and Data Management (WIDM'01).-2001. -P. 68-75.

УДК 519.86

Б.И. Мызникова, Т.П. Васильева

МАТЕМАТИЧЕСКОЕ МОДЕЛИРОВАНИЕ ПРОЦЕССА ГРАДОФОРМИРОВАНИЯ: ДЕТЕРМИНИРОВАННЫЙ ПОДХОД

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

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

Явлениям, сопровождающим развитие современных территориальных образований, посвящен

i Надоели баннеры? Вы всегда можете отключить рекламу.