Подход к созданию баз данных, основанный на алгоритмах генерации и идентификации кортежей

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

1. Журавлев Ю.И., Гуревич И.Б. Распознавание образов и анализ изображений // Искусственный интеллект в 3-х кн. Кн. 2. Модели и методы: Справочник / Под ред. Д.А. Поспелова. - М: Радио и связь, 1990. - С. 149-190.

2. Yankovskaya A.E. Test Pattern Recognition with the Use of Genetic Algorithms // Pattern Recognition and Image Analysis. - 1999. -V.9. - №. 1. - P. 121-123.

3. Петровский А.Б. Упорядочивание и классификация объектов с противоречивыми признаками // Новости искусственного интеллекта. - 2003. - № 4. - С. 34-43.

4. Саати Т.Л. Принятие решений. Метод анализа иерархий. - М.: Радио и связь, 1993. - 315 с.

.И. О применении мультимножеств к задаче вычисления весовых коэффициентов признаков в интеллектуальных распознающих системах // Новости искусственного интеллекта. - 2004. - № 2. - С. 216-220.

6. Ногин В.Д. Упрощенный вариант метода анализа иерархий на основе нелинейной свертки критериев // Журнал вычислительной математики и математической физики. - 2004. - Т. 44. - № 7. - С. 1259-1268.

7. Янковская А.Е., Колесникова С.И. Поддержка принятия решений, коллективная оценка весовых признаков в интеллектуальных системах // Интеллектуальные системы. Интеллектуальные САПР: Труды Междунар. научно-техн. конференций. -М.: Физматлит, 2004. - С. 249-255.

Введение

Анализ реальных информационных систем показывает, что зачастую домены таблицы имеют небольшие множества значений. Например, атрибуты: «сотрудник», «зарплата», «профессия», «возраст», «дата», «время» и т. д. [1]. Поэтому возможно предложить следующую идею: каждому кортежу декартового произведения множеств степенью n ставится в соответствие число и вместо кортежа в базе данных хранится это число. Для этого зададим отображение:

F: A х А2 х ...х Ап ^ Nn,

где 4х^2х...хД, - декартово произведение множеств; Nn - множество номеров 0,n.

Если F биективно, то можно задать обратное отображение:

FNn ^ А1 х А2 х ...х А.

Таким образом, биективное отображение F задает алгоритм идентификации кортежа декартового произведения:

num = Rank (D, a),

где ае4х^2х...хД,, numeNn, D - описание множеств декартового произведения А^А^.хА,,. А oтображение F- задает алгоритм генерации значения кортежа по номеру:

a = Generate (D, num),

где ае4х^2х...хД,, numeNn, D - описание множеств. Тогда отношение ЕсА1хАгх...хАп, numeNn можно однозначно представить подмножеством целых чисел NUM^Nn.

Используя алгоритмы Rank и Generate можно предложить следующую структуру базы данных (рис. 1). При записи кортежа в базу данных работает алгоритм Rank, который присваивает номер данному кортежу. Далее этот номер хранится в базе данных. При выборке данных из базы работает алгоритм Generate, который по заданному номеру получает кортеж. Важным элементом является описание множеств декартового произведения D. Рассмотрим подробнее способы организации D, Rank, Generate.

Рис. 1. Описание структуры базы данных

5. Янковская А.Е., Колесникова С

УДК 519.6:004.652.4

ПОДХОД К СОЗДАНИЮ БАЗ ДАННЫХ, ОСНОВАННЫЙ НА АЛГОРИТМАХ ГЕНЕРАЦИИ И ИДЕНТИФИКАЦИИ КОРТЕЖЕЙ

В.В. Кручинин, А.В. Титков, С.Л. Хомич

Томский университет систем управления и радиоэлектроники E-mail: kru@ie.tusur.ru

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

1. Алгоритмы генерации и идентификации на основе деревьев И-ИЛИ

Рассмотрим способ построения описаний множеств значений доменов D, алгоритмов идентификации Rank и генерации Generate. В качестве такого инструмента предлагается использовать деревья И-ИЛИ [2]. Правила построения дерева И-ИЛИ следующие:

1. Если некоторое множество разбивается на n множеств {Д}^, то это разбиение можно представить ИЛИ-узлом. При этом должно быть выполнено следующее условие:

П A = 0

ra( z) =

) для ИЛИ-узла

1=1 n

Пта^2) дляИ-узла

где z - рассматриваемый узел дерева; sf - множество сыновей узла z; n - число сыновей.

Тогда, зная ra(z) для каждого узла, можно предложить следующий алгоритм генерации варианта (Generate):

1. Корень дерева записывается в вариант и зано-

push

сится в стек Stack ^ < sroot, L >.

2.

3.

4.

2. Если искомое множество является комбинацией элементов из п множеств, то данное преобразование представляется И-узлом. В этом случае, условие (1) не требуется, необходимо, что бы комбинация была уникальной.

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

Вариантом дерева И-ИЛИ назовем дерево, которое получается из заданного путем отсечения дуг кроме одной у всех ИЛИ-узлов. Корнем варианта будет являться корень дерева И-ИЛИ. На рис. 2 показан пример дерева И-ИЛИ и всех его вариантов.

Если дерево описывает некоторое множество, то вариант описывает один элемент множества. Тогда общее число вариантов в дереве (или мощность множества) можно вычислить по формуле:

pull

Из стека вынимается пара < z, lz Stack. Если стек пуст, то завершить работу. Определяется тип текущего узла. Если это И-узел, то переход на шаг 4, иначе переход на шаг 5.

Все сыновья {sj рассматриваемого узла z записываются в данный вариант V, вычисляется lA(sz), используя выражение

L

lA (si) =

n

-modffl(sf) i > 1

j=i

lA (z)mod ra( si) и пары ^,Д(ф> заносятся в стек.

i = 1

Если это ИЛИ-узел, то, используя выражение

¡о (*к) =

¡о(2) при ¡о (2) <0к), к = 1

*

пип[/„(2)sZ)] при ¡о (4) >0, к > 1 '

к 1=1

определяется единственный сын зЦ и ¡^1). Сын записывается в вариант V а пара <%*,/„(,%*)> заносится в стек.

6. Переход на шаг 3.

Анализ данного алгоритма показывает, что временная сложность пропорциональна количеству узлов, которые заносятся в стек, следовательно, пропорциональна числу узлов в варианте. При этом количество делений равно числу сыновей всех И-узлов варианта плюс число сложений и сравнений для ИЛИ узлов (см. выражения 3 и 4).

i=1

1

Теорема. Пусть дано дерево И-ИЛИ D и для каждого узла z^D имеется cc(z), тогда алгоритм генерации задает биективное отображение G:Nn^W, где W - множество всех вариантов. Покажем что отображение G инъективно, т. е. для Vtej следует, что G(i)^G(j). Это утверждение основывается на рассмотрении выражений (3) и (4). Выражение (3) заданным числам i и j ставит в соответствие два разных набора чисел для сыновей узла И, поскольку происходит преобразование чисел i и j в числа со смешанными основаниями, представленными {(s,z)}n=1 для узла z. Выражение (4) числам i и j для узла ИЛИ, получает две разных пары (к, /), где к -номер узла, / - значение co(sf). Таким образом, алгоритм Generate задает инъективное отображение G:Nn^W. Поскольку множества Nn и Wконечны и мощности их равны, следовательно, отображение G:Nn^W биективно. Из этого следует, что VVeW3ieN, что V=G(i), следует, что для любого варианта дерева И-ИЛИ можно найти единственный номер i. Построим алгоритм нумерации варианта для данного дерева И-ИЛИ. Для этого необходимо найти сопоставление варианта V в дереве D и нахождение соответствующего номера i.

Сопоставление производится следующим образом:

1. Первоначально в стек M1 заносится корень варианта У,в стек M2 корень дерева D.

2. Если стек M1 пуст, то завершить работу алгоритма.

3. Из стека M1 извлекается узел варианта dv и из стека M2 извлекается узел d.

4. Если это узлы И, то все сыновья dv заносятся в стек M1, а сыновья d заносятся в M2. Переход на шаг 2.

5. Если это узлы ИЛИ, то сын dv ищется в множестве сыновей узла d. Если найдено совпадение, то сыновья заносятся в стек. Переход на шаг 2.

6. Если dv и d листья, то они удаляются из стека.

Вычисление номера начинаем производить с рассмотрения листьев варианта V. Все листья варианта имеют значения ©(z)=1.

После того как сопоставление найдено, выполняем следующие действия:

1. Для каждого И-узла z вычисляем

lz = ll + ©(X)(/2 + ф2){...{1п )ю(sn_!))...)),

где {si}n=1 - сыновья узла z, а {/}= - соответствующие номера, полученные для сыновей.

2. Для каждого ИЛИ-узла вычисляем

k-1

lz =ЕС(/) + l1'

i=1

где к - номер соответствия для узла ИЛИ в дереве D, /1 - номер варианта для этого сына. Рекурсивно производим вычисления номера, пока не достигнем корня дерева. Полученное число /z для корня варианта будет номером варианта, т. е. V=R(/z). Очевидно, что /<a>(z). Таким образом, для множества, представленного деревом И-ИЛИ, можно создать алгоритмы Rank и Generate.

2. Преобразование таблицы атрибутов в дерево И-ИЛИ

Рассмотрим построение дерева И-ИЛИ для таблицы атрибутов. Поскольку значение aeA1xA2x...xAn является комбинацией элементов из множеств {Д)П=ь то корень дерева будет И-узлом, имеющих n сыновей, каждый i-й сын соответствует множеству Д, графическое изображение такого соответствия показано на рис. 3.

Ш2.

Рис. 3. Соответствие между таблицей и деревом И-ИЛИ

Общее число множества значений вычисляется по формуле:

о(Т) = П©( А,).

,=1

Далее для каждого множества Д строится свое дерево И-ИЛИ. В общем случае можно представить множество значений Д

1. справочником;

2. числовым интервалом;

3. деревом И-ИЛИ.

Для представления множества уникальных объектов, которые используются в базе данных некоторого домена, используется справочник. Справочник имеет две части, первая часть содержит пронумерованные уникальные объекты, вторая часть резервная, предназначена для внесения новых объектов. Соответствие между справочником деревом И-ИЛИ показано на рис. 4. Справочник представляется ИЛИ-узлом, а все сыновья являются элементами справочника. Тогда общее число вариантов дерева (или элементов множества) равно: о (А,) = п + т.

Рис. 4. Соответствие между справочником и деревом И-ИЛИ

Для представления числового интервала задается границы и шаг, тогда данное множество можно представить деревом И-ИЛИ, которое имеет ИЛИ-узел в качестве корня, а сыновья, конкретные значения чисел из этого интервала. Графическое изображение такого дерева показано на рис. 5.

Таким же образом, можно представить атрибуты «Зарплата» и «Коэффициент» (рис. 8).

Рис. 5. Дерево для представления числа

Тогда общее число вариантов (элементов множества) будет:

Ь - а

<(А) = :

А

Множество значений А может быть представлено деревом И-ИЛИ. Рассмотрим несколько наиболее распространенных примеров. Если А1 это дата, то ее можно представить следующим деревом И-ИЛИ (рис. 6):

Рис. 6. Дерево И-ИЛИ для представления даты

Здесь при описании даты год представлен некоторым числовым интервалом. Например, 1950-2050, А=1. Тогда общее число вариантов может быть представлено формулой:

ю( Дата) = < (день) • < (месяц) • < (год).

Аналогично может быть представлен атрибут «время». На рис. 7 показано дерево И-ИЛИ для представления атрибута.

О )( 2 ) (23)(0)(13

Рис. 7. Дерево И-ИЛИ для представления атрибута «время»

Тогда общее число вариантов может быть представлено формулой:

< (Время) = < (час) • < (минута) • < (секунда).

Рис. 8. Деревья И-ИЛИ для представления атрибутов «зарплата» и «коэффициент»

3. Оценка мощности множества вариантов дерева И-ИЛИ для представления декартового произведения

Пусть дано декартово произведение множеств

А1хА2хА3хА4хА5хА6хА7хА8, где:

А^ФИО;

А2^стаж;

А3^оклад;

А4^проработанное время; А5^коэффициент; А^дата; А7^должность; А8^районный коэффициент.

Пусть в фирме работает 1000 чел., текучесть кадров 100 чел. в год. Тогда

<(А) = (1000 + 2000) = 3000 = 3 +103

<о( А) = [(0,100), А = 1] =100 =102

со(А3) = 100[(0,106), А =1] =108 ^

<о(А4) = 24• 30 = 720 «103

<А5) = [(0,1), А = 0,001] = 100 =102

<(А6) = 74400 « 75000 = 75 -105

<о( А) = (200 + 800) =1000 = 103

<( А8) = [(1,2), А = 0,1] =10 = 101

Тогда

<( Э) = П <( А,) = (3 •Ю3) • (102) • (108) х

1=1

Х(720) • (102) • (75 • 103) • (103) • (101) = 1,62 • 1027.

Таким образом, все множество картежей меньше, чем 1,62 1027 и 1028<293.

8

Тогда, для представления номера картежа П А,

1 =1

необходимо 93 бита или 12 байт. Оценим теперь размер дерева И-ИЛИ Б для описания множества кортежей. Общий размер дерева вычисляется по формуле:

8

Б11в( Э) = £ Б11в( А,),

1 =1

где 811е(А1)=п-811в(ФИ0)=1000.60.

Все множества, описываемые интервалами значений, имеют фиксированную длину Const. Size( Aj) = n  Бйефолжностъ) = 200  40.

Тогда Size(D)=60000+8000+Cow,tf6<70000. Это означает, что объем базы данных будет равен: SD = N -12 + Size(D),

где N - число кортежей в базе; Size(D) - размер описания дерева И-ИЛИ для описания множеств.

Предположим, что в базе имеется 1000 кортежей, тогда:

S=12000+70000=82000 байт.

Оценим размер таблицы при традиционном подходе:

ST = N  Size

= Size

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

1. Рубанов В.В. Способы отображения объектов в реляционных базах данных // Труды ИСП РАН. - 2002. - Т. 3. - C. 137-162.

В нашем примере этот коэффициент равен 128000/70000=1,82.

Однако для больших значений N можно получить значительный эффект, при условии, что размер Б не пропорционален N. Тогда такое построение базы данных позволяет в разы сократить размер базы данных.

Заключение

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

п

ры 106 и более. Тогда значения т(Б) = П(А) мо-

{=1

гут превышать значение 10100. Переход на архитектуру процессоров с разрядностью регистров 64 и 128 решит возникающие трудности по обработке больших целых чисел.

2. Кручинин В.В. Алгоритмы и перечислительные свойства деревьев И-ИЛИ // Вестник ТГУ. - 2004. - № 284. - C. 181-184.

УДК 621.397

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

В.Е. Лаевский

Томский государственный университет систем управления и радиоэлектроники E-mail: Viktor.E.Laevski@mail.ru

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

Введение

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

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