Введение 3
Многоуровневое описание классов 6
Многоуровневое описание базы данных для решения задачи «Конъюнктивный булевский запрос» 10
Алгоритм выделения общих подформул 14
Список литературы 19
Приложение А: Код программы 20
Приложение B: Пример работы алгоритма 40
В данной работе предлагается подход для выделения общих с точностью до имен переменных подформул из базы данных для решения задачи «Конъюнктивный булевский запрос» и описывается его реализация.
При использовании баз данных время выполнения запроса - очень важная характеристика, особенно если учитывать объемы данных, хранящихся в современных базах. «Конъюнктивный булевский запрос» - NP- полная задача, касающаяся баз данных. Далее приведена ее формулировка, как она дана в [2]:
Конъюнктивный булевский запрос
ДАНО. Домен D, набор отношений R = {R1, R2,..., Rm](где Ri есть подмножество множества Ddi), конъюнктивный булевский запрос Q над R и D, т.е. запрос вида
(Эу1;У2; ...;Ут ^^l Л Л ... Л Ar
где Ai имеет вид Ri(u1,u2, ...,Udl), а переменные и принадлежат множеству ({У1,У2,...,У1} и D).
ВОПРОС. Верно ли, что Q истинен при интерпретации его как утверждения об R и D?
Данную задачу можно переформулировать следующим образом:
Конъюнктивный булевский запрос
ДАНО. Множество объектов D, предикаты p1,p2, ...pm, задающие отношения на D. Множество истинных на D постоянных атомарных формул S(D). Элементарная конъюнкция Q вида A1 & А2 & ... & Ar, где Ai = pi(u1,u2, ...,Ukl), ut - переменные или константы из D.
ВОПРОС. Верно ли, что Q выполняется на D?
S(D) ЗУ1,У2,...,Ут (A1 & A2 & ... & Ar)?
В этом виде задача получается весьма схожей с задачей «Выполнимость в конечной интерпретации» [4, 5], которая возникает при распознавании объектов в рамках логико-предметного подхода к распознаванию образов. Данная задача формулируется следующим образом:
Выполнимость в конечной интерпретации
ДАНО. Множество ш = {ш1, ш2,..., шг}, набор предикатов {p1,p2, ...,pn}, задающих свойства элементов из ш и отношения между ними, набор S(ш) истинных постоянных атомарных формул видаPi(T), где i = 1,..., n, т С ш, бескванторная формула A (у), представленная в виде дизъюнкции элементарных конъюнкций атомарных формул (у = (у1,...,уа) - список предметных переменных, входящих в формулу).
ВОПРОС. Существует ли набор значений для у из ша, для которого формула A(y) истинна? Или другими словами
S(ш) ЗуА(у)?
Алгоритм полного перебора всех возможных подстановок, как было доказано в [4], имеет число шагов
O(tmS ||),
где t - число элементов в ш, m - количество переменных в A(x), ||S|| - число атомарных формул в описании S(ш).
Алгоритмы, основанные на построении вывода в исчислении предикатов, имеют число шагов
О( £ Ц),
i:pi is in A(x)
где si и ai - количество вхождений предиката pi в описание S(ш) и в формулу A(x) соответственно. Очевидно, те же оценки будут и у алгоритмов решения задачи «Конъюнктивный булевский запрос».
Важное различие данных задач состоит в следующем:
- база данных, как правило, меняется довольно редко или вообще постоянна, а запросы, наоборот, каждый раз различные (S(D) неизменна, а запрос Q сильно изменчив);
- в распознавании образов множество формул может либо не меняться совсем, либо меняться, но очень редко, а распознаваемые объекты могут появляться различные (A(y) неизменна, а объект ш и его описание S(ш) часто меняются).
Для уменьшения числа шагов решения задачи выполнимости существует алгоритм построения многоуровневого описания классов, который будет рассмотрен далее. Однако тот же алгоритм не может быть эффективно использован для решения задачи «Конъюнктивный булевский запрос» из-за различий между данными задачами, в связи с чем предлагается его модификация.
В данной работе разработан подход с целью выделения общих с точностью до имен переменных подформул из базы данных для решения задачи «Конъюнктивный булевский запрос», рассмотрена его реализация.
При использовании баз данных время выполнения запроса - очень важная характеристика, особенно если учитывать объемы данных, хранящихся в современных базах. «Конъюнктивный булевский запрос» - NP-полная задача, касающаяся баз данных. Для уменьшения числа шагов решения задачи выполнимости существует алгоритм построения многоуровневого описания классов, который и модифицирован в работе, поскольку не может быть эффективно использован для конъюнктивного булевского запроса из-за существующих различий в самих задачах.
[1] Kosovskaya Tatyana. Conjunctive Boolean Query as a logic-objective recognition problem // International Journal on Information Theories Applications. — 2017. — Vol. 24, no. 3. — P. 72-78.
[2] Гэри М., Джонсон Д. Труднорешаемые задачи.— М. : Мир, 1982.
[3] Коба Д.А. Алгоритм построения многоуровневого описания в задачах распознавания образов и оценка числа шагов его работы // Материалы XVII Международной школы-семинара «Синтез и сложность управляющих систем» им. акад. О.Б. Лупанова (Новосибирск, 27 октября - 1 ноября 2008 г.). — P. 55-59.
[4] Косовская Т.М. Доказательства оценок числа шагов решения некоторых задач распознавания образов, имеющих логические описания // Вестник Санкт-Петербургского университета. Сер. 1. 2007. Вып. 4. — P. 82-90.
[5] Косовская Т.М. Многоуровневые описания классов для уменьшения числа шагов решения задач распознавания образов, описываемых формулами исчисления предикатов // Вестник Санкт- Петербургского университета. Сер. 10. 2008. Вып. 1.— P. 64-72.
[6] Косовская Т.М., Петров Д.А. Выделение наибольшей общей подформулы предикатных формул для решения ряда задач искусственного интеллекта // Вестник СПбГУ. Прикладная математика. Информатика. Процессы управления. — 2017. — Vol. 13, no. 3. — P. 250-263.
[7] Петров Д.А. Алгоритмы выделения наибольшей общей с точностью до имён переменных формул исчисления предикатов и их реализация // Материалы 9-й конференции «Информационные технологии в управлении (ИТУ - 2016)». СПб. — 2016. — P. 97-102.