Научная статья на тему 'Метод кодирования информационных объектов на основе деревьев и/или'

Метод кодирования информационных объектов на основе деревьев и/или Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
252
48
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
кодирование / информационный объект / методы генерации комбинаторных множеств / дерево И/ИЛИ

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

Рассматриваются вопросы применения метода построения алгоритмов комбинаторной генерации, основанного на деревьях И/ИЛИ для кодирования информационных объектов. Предлагается метод кодирования, основанный на представлении всего множества информационных объектов в виде дерева И/ИЛИ.

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

Текст научной работы на тему «Метод кодирования информационных объектов на основе деревьев и/или»

621.391.15:004.65

В.В. Кручинин, Б.А. Люкшин

Метод кодирования информационных объектов на основе деревьев И/ИЛИ

Рассматриваются вопросы применения метода построения алгоритмов комбинаторной генерации, основанного на деревьях И/ИЛИ для кодирования информационных объектов. Предлагается метод кодирования, основанный на представлении всего множества информационных объектов в виде дерева И/ИЛИ.

Ключевые слова: кодирование, информационный объект, методы генерации комбинаторных множеств, дерево И/ИЛИ.

Кодирование является одним из способов повышения информационной безопасности в системах хранения и передачи информации [1]. Зачастую информационные объекты в таких системах носят иерархическую или рекурсивную природу описания. В таком случае древовидная структура является естественной формой представления информационного объекта. Однако современные базы данных имеют реляционную модель хранения данных. Это приводит к коллизии между естественной структурой информационного объекта и табличной формой представления информации.

Для решения указанной проблемы предлагается использовать подход, основанный на применении алгоритмов комбинаторной генерации Generate и Rank. Обобщенная схема работы этих алгоритмов представлена на рис. 1.

В общем случае для получения процедур генерации Generate и нумерации Rank комбинаторного множества задается биективное отображение:

Generate: Nn ^ An,

где

N -n

Рис. 1. Основная схема алгоритмов Generate и Rank

конечное подмножество натуральных чисел; комбинаторное множество. Тогда обратное отобра-

.-1

жение Rank = Gen задает процедуру нумерации:

Rank: An ^ Nn

Алгоритм Generate на основании числа num е Nn и некоторого описания комбинаторного множества D создает элемент a е An. Алгоритм Rank производит обратное действие на основании a е An и некоторого описания D, формирует номер num е Nn .

Рассмотрим методы построения алгоритмов генерации и нумерации комбинаторных объектов, основанные на представлении описания D в виде дерева И/ИЛИ [2]. Введем определения:

1) деревом И/ИЛИ называется дерево, которое содержит узлы двух типов: И-узел и ИЛИ-узел;

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

Число вариантов для узла z дерева И/ИЛИ вычисляется по формуле

®z =

для листа,

1,

k

^ , для ИЛИ-узла,

i=1 k

, для И-узла,

i=1

где щ - число вариантов для узлов, являющихся сыновьями узла г.

n

В.В. Кручинин, БА. Люкшин. Метод кодирования информационных объектов

171

Рис. 2. Дерево И/ИЛИ и все его варианты

Зная число вариантов wi для всех узлов дерева И/ИЛИ, строятся алгоритмы генерации и нумерации вариантов.

Алгоритм генерации варианта следующий:

1. В стек помещается пара (num, root) номер варианта и корень дерева.

2. Из стека вынимается очередная пара (lz, z).

3. Если z - это И-узел, то вычисляются ¡i для всех сыновей si узла z, используя wi и схему Горнера lz = ¡1 + w(s1)(¡2 + «(s2)(...«(sn-1)(¡n)...)).

Все пары (¡i, s¿) заносятся в стек, переход на шаг 2.

4. Если z - это ИЛИ-узел, то определяется пара (lk, sk) из условия:

если w(si) < lz < w(si) + w(s2), то выбирается второй сын и ¡2 := lz - w(si);

k k+1 k

если ^ w(s¿) < ¡z < ^ w(s¿), то выбирается k+1 сын и ¡k+i := ¡z - ^w(si). i=1 i=1 i=1

Найденная пара (¡k, sk) заносится в стек, переход на шаг 2.

5. Если z - лист, то переход на шаг 2.

6. Если стек пуст, то останов.

Представленный алгоритм задает биективное отображение Generate: Nn ^ W , где Nn - подмножество натуральных чисел; W - множество вариантов. Из этого следует, что для любого варианта дерева И/ИЛИ можно найти единственный номер i. Таким образом, можно однозначно задать алгоритм нумерации варианта Rank. Временная сложность алгоритмов генерации и нумерации вариантов в среднем зависит от структуры дерева И/ИЛИ и пропорциональна среднему числу узлов в варианте.

Рассмотрим представление информационного объекта в виде дерева И/ИЛИ. Пусть все множество информационных объектов из некоторой предметной области можно представить пятеркой (O, S, T, P, Он), где O - множество объектов, имеющих некоторую структуру; Он - обозначение множества объектов, S - множество структур объектов; T - множество элементарных объектов; P - множество правил перехода вида:

1) Oi^Tü|T2i |...|Tni.

2) Oi^Süfei |—| Ski.

3) S^ Oi1Oi2—Oim.

Правила типа (1) гласит, что объект имеет одну из возможных элементарных реализаций. Правила типа (2) означает, что объект имеет одну из возможных структур, и правила типа (3), что структура Sij содержит некоторое подмножество объектов. Такое представление информационного объекта позволяет построить для него дерево И/ИЛИ:

1) для правил типа (1) записывается ИЛИ - узел Oi, у которого будут сыновья T1i, T2i ,—, Tni - листья;

2) для правил типа (2) записывается ИЛИ - узел Oi, у которого будут сыновья S1i, S2i , —, Ski - И-узлы;

3) для правил типа (3) записывается И - узел Sj, у которого будут сыновья OiiOiO— Oim - ИЛИ-узлы.

В качестве примера рассмотрим информационный объект, имеющий атрибуты стандарта сертификата x.509 (stdat). Перечислим их: C (страна); L (размещение); ST (штат или провинция); O (организация); OU (подразделение); CN (фамилия, имя, отчество); STREET (адрес); E (электронный адрес). На основе данного стандарта каждый удостоверяющий центр формирует свои собственные атрибуты полей. Например, в поле CN могут быть занесены паспортные данные, номер свидетельства ИНН, номер пенсионного свидетельства и т.д. Тогда атрибуты stadat можно представить деревом И/ИЛИ (рис. 3).

Рис. 3. Дерево И/ИЛИ для атрибутов сертификата

Далее строятся деревья И/ИЛИ для конкретных атрибутов. Например, атрибут «адрес».

Если для множества информационных объектов получено дерево И/ИЛИ, то алгоритм Rank по описанию конкретного информационного объекта получает уникальный номер, а алгоритм Generate по номеру получает описание этого объекта.

Такой метод кодирования информационных объектов позволяет:

1. Повысить информационную безопасность системы хранения данных, поскольку внутри системы информационные объекты явно не хранятся, а хранятся их номера и дерево И/ИЛИ.

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

3. Сократить объем базы данных.

Литература

1. Белов Е.Б. Основы информационной безопасности / Е.Б. Белов, В.П. Лось, Р.В. Мещеряков, А.А. Шелупанов. - М.: Горячая линия - Телеком, 2006. - 544 с.

2. Кручинин В.В. Методы построения алгоритмов генерации и нумерации комбинаторных объектов на основе деревьев И/ИЛИ. - Томск: В-Спектр, 2007. - 200 с.

Кручинин Владимир Викторович

Канд. техн. наук, зам. директора института инноватики ТУСУРа Тел.: (+7 382-2) 41-50-00 Эл. адрес: kru@tdec.ru

Люкшин Борис Александрович

Доктор техн. наук, профессор, зав. каф. механики, графики и управления качеством ТУСУРа Тел.: (+7 382-2) 51-05-30 Эл. адрес: lba2008@yandex.ru

V.V. Kruchinin, B.A. Lukschin

Method of Coding of Information Objects on the Basis of Trees And-Or

Questions of application of a method of construction of algorithms of the combinatory generation, based on trees And-Or for coding of information objects are considered. The method of coding based on representation of all set of information objects in the form of a tree And-Or is offered. Keywords: coding, information object, methods of generation of combinatory sets, a tree And-Or.

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