КОРПОРАТИВНЫЕ ИНФОРМАЦИОННЫЕ СИСТЕМЫ
УДК [681.3.06: 681.323]:519.6
СХЕМА ПОИСКА ДАННЫХ РАЗЛИЧНЫХ ТИПОВ ПО НЕСКОЛЬКИМ МАСКАМ НА ОСНОВЕ СОРТИРОВКИ
© 2006 г. Я.Е. Ромм, С.С. Белоконова
Введение и постановка вопроса
Проблема поиска информации принадлежит к числу важнейших при разработке информационно-поисковых систем. Поисковая система для нахождения документов по заданным признакам исполняет некоторый алгоритм. Различают четыре основных класса поисковых алгоритмов - прямого поиска, инвертированных файлов, суффиксных деревьев, сигнатур [1, 2].
Прямой поиск происходит без предварительной обработки документов, интенсивно развивается, применяется в Internet в качестве основы поисковой системы Fast (www.fastsearch.com).
Остальные три класса алгоритмов требуют индексирования - предварительной обработки документов и создания вспомогательного файла. Некоторые поисковые алгоритмы комбинируют индексный поиск для нахождения блока текста с дальнейшим прямым поиском внутри блока.
Прямые алгоритмы не ограничивают возможности приближенного и нечеткого поиска, работают непосредственно по оригинальным документам без искажений информации. Использование индексирования влечет упрощение, нормализацию терминов, но сопряжено с потерей информации.
В рамках традиционных методов предлагается схема, которая существенно уточняет результат и повышает эффективность поиска, при этом осуществляет детерминированный поиск данных различных типов одновременно по нескольким маскам. Помимо того, учитывается зависимость от сочетания масок друг с другом, от расстояния между ними, от взаимно -го расположения полных и частичных комбинаций заданных масок.
Это делается с целью точного нахождения части файла, включающей не единственный ключ, а заданную комбинацию ключей, возможно с дополнительными ограничениями на условия их взаимного сочетания и расположения.
Схема поиска конструируется на основе сортировки и идентификации экстремальных элементов последовательности числовых значений, сопоставленных просматриваемым текстовым фрагментам. Искомый элемент является локально экстремальным в окрестности произвольно задаваемого радиуса. Отсюда вытекает возможность применить для поиска сред-
ства арифметической обработки числовых выражений и распространить поиск на файлы числовых значений.
Применяемые сортировки. Оператор локализации экстремальных элементов последовательности
В качестве основной составляющей части схемы поиска используется устойчивая адресная сортировка. Произвольная сортировка может быть преобразована к требуемой форме [3]. Ниже для определенности выбрана сортировка подсчетом, модификация которой
2 6 8 3 9
2 0 + + + +
6 - 0 + - +
8 - - 0 - +
3 - + + 0 +
9 - - - - 0
Сортируемый массив располагается горизонтально сверху и вертикально слева от МС. Для вставки в отсортированный массив j-го элемента входного массива, достаточно подсчитать число нулей и плюсов в j-м столбце над диагональю, включая диагональный элемент, и сложить это число с числом плюсов ниже диагонали. Сумма накапливается в счетчик по k , значение k становится адресом вставки: c1[k] := c[ j], при этом в порядке отсортированных элементов запоминается входной индекс вставленного элемента e[k] := j . Программа сортировки представлена в [5].
К процедуре сортировки присоединяется оператор локализации экстремальных элементов (ниже оператор локализации) [6], идентифицирующий элементы последовательности меньшие (большие) в смысле отношения порядка, применяемого в сортировке, чем соседние элементы в окрестности радиуса eps1 .
Оператор локализации может быть использован независимо от типа отсортированных элементов, поскольку обрабатывает только их входные индексы. Оператор локализация минимумов имеет вид j:=1;
while j<= k do begin
FOR L:= 1 TO j-1 do if abs(e[j]-e[j-L\) <=eps1 then goto 22;
Writeln (' ',c[e[/]],' >[/]);
22: j:=j+1; end; e[j] - элемент массива индексов на выходе сортировки. Смысл условия в том, что в epsl -окрестности входного элемента с индексом e[j] нет элемента в отсортированном массиве, превосходящего элемент с этим индексом.
Величина epsl задает радиус окрестности локализации минимума. Чем величина epsl меньше, тем больше локальных минимумов найдено и наоборот. При epsl равном числу элементов массива будет найден глобальный минимум.
Замечание 1. Глобальный минимум будет найден, если это условие (с учетом его смысла) заменить на if abs(e[j]-e[j-L\) >=1 then goto 22.
Поиск в числовом массиве
В случае числового массива оператор локализации позволяет сконструировать условие поиска как нахождение нулевого элемента модуля разности между текущим элементом массива и заданным искомым элементом. Пусть требуется найти в числовой последовательности a = (aj,a2,...,an) заданный элемент b . Для этой цели на вход сортировки подается массив a = (|a 1 -b|,|a2 -b|,..., |an -b|). К элементам отсортированного массива применяется оператор локализации минимумов, который идентифицирует все нули. Способ распространяется на поиск чисел любого типа и может производиться не как поиск нуля в массиве, а как поиск минимума модуля, идентифицируемого с точностью до заданной границы погрешности. Листинг программы, реализующей подход, дан в [7].
Пример 1. Найти в последовательности (2,00600077709, 2,00600077709, 31,123, 2,00600077708, 7,25) число 2,006 с точностью eps=0,00000000001.
В результате работы описанной схемы будут найдены элементы 2,00600077709 (1) и 2,00600077708 (2).
Изменение начального значения цикла на L = 2 позволит выводить последовательно повторяющиеся (соседние) элементы, отличающиеся между собой на eps. В примере 1 получим следующий результат: 2,00600077709 (1), 2,00600077709 (2), 2,00700077708 (4).
Перенос схемы поиска с числового массива на массив строковых элементов
Изложенная схема переносится на поиск в массиве слов следующим образом. Входному массиву слов сопоставляется числовой массив из абсолютных величин разностей ascii-кода символа, стоящего на заданной позиции текущего слова, и ascii-кода символа, указанного в маске поиска:
r[i]:=abs(ord(c[i[k]]) - ord(w)); c - входной массив строковых элементов; к - номер позиции, заданной в маске; w - символ, заданный в маске; i - номер элемента входного массива c; r [i ] -
числовой элемент, сопоставляемый входному элементу с тем же значением индекса.
Поиск символов происходит как поиск всех локальных минимумов, которые в данном случае оказываются нулями [7].
Для поиска слов по некоторой комбинации символов, массив слов переводится в числовой массив путем суммирования абсолютных величин разностей ascii-кода символа входного массива и символа «маски» поиска с учетом соответствия позиций. Идентификация искомой комбинации слов основана на том, что сумма нулевых разностей сохранит нулевое значение.
Замечание 2. Применение оператора локализации минимумов дает возможность сформировать в качестве условия поиска условие наличия заданного количества нулей в определенной окрестности (например, заданного количества совпадающих слов на странице).
Замечание 3. Для поиска и идентификации в заданной строке, выполняемых одновременно по нескольким маскам, предложенная схема должна быть модифицирована. Для этого исследуемой строке ставится в соответствие одномерный числовой массив, причем количество элементов массива совпадает с количеством символов в строке, индексация элементов совпадает с индексами символов строки [8]. Элементы одномерного числового массива принимает значение либо равные п , либо п -1, где п - число априори заданных масок поиска, где каждая маска представляет собой слово или совокупность символов. Поиск сводится к поиску элементов сопоставленного числового массива, равных п -1. Схема идентифицирует индексы символов строки, начиная с которых расположена маска поиска. Листинг программы, реализующей схему, приведен в [8].
Пример 2. Поиск по сопоставленному числовому массиву одновременно по п маскам, п = 3 :
Исследуемая строка
Маски поиска a s d g h r o p a i t
''asd 0 1 1 1 1 1 1 1 1 1 1 1 1
ai 1 1 1 1 1 1 1 1 1 1 0 1 1
-<
rop 1 1 1 1 1 1 0 1 1 1 1 1 1
2 3 3 3 3 3 2 3 3 3 2 3 3
1-----^____->
Сопоставленный числовой массив Найденные числовые элементы без предварительного просмотра локализованного фрагмента не дают однозначного ответа, какое слово было найдено. Этот недостаток устраняет следующее видоизменение данной схемы.
Поиск и автоматическая идентификация строковых элементов массива одновременно по нескольким маскам
В описанных схемах минимальное значение могло быть только одно (хотя количество индексов, отвечающих этому значению, могло быть произвольно). Предлагаемая ниже схема содержит минимумы с различными числовыми значениями, при этом локальный минимум, при соответственном радиусе окрестности локализации, достигнет взаимно однозначного соответствия полному набору масок.
Конкретно схема строится следующим образом. Исследуемой строке сопоставляется одномерный числовой массив, количество элементов которого совпадает с количеством слов заданной строки. Элементы сопоставленного числового массива, соответствующие различным маскам, перемножаются, причем сомножители априори задаются так, чтобы произведения взаимно однозначно соответствовали различным маскам, а локальные минимумы в их последовательности единственным образом соотносились с полным набором масок. Для осуществления такого поиска в массиве Mas из m слов по n маскам, где каждая маска - произвольное слово, маски задаются в требуемом фиксированном порядке. Исследуемому массиву Mas сопоставляется следующий числовой
массив c = (c1
П
j=1
aJ =
(1)
j +1, если i-е слово совпадает с j-й маской поиска; j +1 + n, если i-е слово не совпадает с j -й маской поиска.
Индексация числового массива c [i] совпадает с
индексами элементов исследуемого массива слов
Mas .
Пример 3. В массиве слов «Князь», «Болконский», «был», «небольшого», «роста», «Князь», «был», «весьма», «красивый», «молодой», «человек», «Князь», «вошел», «в», «гостиную» выполнить поиск по маскам «Князь», «был», «роста». Таблица иллюстрирует соответствие (1).
Выполним просмотр в обе стороны от локализованного индекса на eps = n отсчетов. С помощью оператора локализации и соответствия индексов можно найти элементы, которые содержат все маски в заданной последовательности. Идентификация искомых слов выполняется на основе совпадения индексов числового и строкового массива. Идентифицированным окажется искомое сочетание одновременно нескольких масок (однако, можно вести поиск по разрозненному сочетанию нескольких масок и по их взаимному положению в исходном массиве). Программная реализация описанной схемы приведен в [8]. В данном примере eps = 3 , локализованным окажется сочетание масок «роста», «Князь», «был»: (84 210 ^ (120 84 105 S (210 84 210 ^
1
12 13 14
По наличию признака 210 два лишних случая исключаются из рассмотрения, промежуточный случай содержит искомую информацию (при поиске частичного соответствия заданному набору масок выполняется просмотр в соответствии с индексами элементов каждого локализованного минимума).
В дальнейшем eps назовем радиусом окрестности локализованного элемента.
Предложенный подход допускает формальное обоснование.
Пусть n - количество рассматриваемых масок поиска, i - индекс элемента исследуемого массива слов Mas . При каждом i слову с индексом i сопоставляется одно из двух значений a j и b j :
= 2, - = 3,
Ь = n + 2, b 2 = n + 3,
a, = j + 1
b j = n + j + 1,
an = n +1;
При этом в (2) a ,
bn = n + n + 1.
(2)
. у = } +1, если i -е слово совпадает с у-й маской поиска, иначе Ь у = п + у +1 для любого i = 1, 2,. „ . Данные соотношения устанавливаются путем просмотра по всем i = 1, 2,... с одним зафиксированным значением у. Начальное значение у принимается равным 1. При следующем просмотре значение у увеличивается на 1. Процесс продолжается до исчерпания значения всех п масок поиска.
С учетом (2) каждый элемент левой части (1) примет вид
= П b
j=1
j
Juk
(3)
или
П b,ak = П b,
j=1
jФ k
j=1 jФ k
Способ формирования масок по соотношениям (2), (3) ниже будет именоваться мультипликативной схемой.
Имеет место
Лемма 1. Пусть маски сформированы по мультипликативной схеме (2), (3). Тогда при любом выборе числовой маски из соотношений (1) значения произведений ci не совпадают при различных значениях
Таблица
Соответствие числового массива исследуемому массиву слов
Князь 2 5 5 5 5 2 5 5 5 5 5 5 2 5 5 5
был 6 6 3 6 6 6 3 6 6 6 6 6 6 6 6 6
роста 7 7 7 7 4 7 7 7 7 7 7 7 7 7 7 7
84 210 105 210 120 84 105 210 210 210 210 210 84 210 210 210
индекса k из (3). Иными словами, при i ф r выполнено ci ф cr в случае совпадения i-го и r-го слов массива Mas с какими бы то ни было различными масками из заданного набора.
Доказательство. Согласно (2), (3) при k ф l для k -й и t -й маски совпадение i-го слова с маской a k и
t -го слова с маской a. влечет
= П V j=i
= П b
j=i
jb,
Обозначим правые части этих равенств с ^ к и с (е
соответственно. Требуется доказать, что с^ к Ф с( 1
при к Ф I, каковы бы ни были I и (. Если это не так, найдутся I и (, при которых с ^ к = с ( 1, или
а, а,
Пг ы k тт / и Р и k и / т-г
b = Пb , —~; в этом случае —- = —. По по-
bk j=i b, bk b e
aк = ^^ a ' j=1 bk j=1 ul строению bk = ak + n и b t = a t + n , поэтому ak a,
-. Следовательно, ak = a e, что проти-
Теорема 2. Если в условиях леммы 1 I -е слово соответствует к -ой маске поиска, / + 1-е слово соответствует к +1 -ой маске поиска, то с^ < с г+1.
Доказательство. Согласно (2), (3)
с' = П bjf,
j=i bk
= П bj
"k+1 j=1 j bk+1
Достаточно доказать, что П b j — < П b j k+1
j=i bk j=i bk+i
u k u k+1 гт^ / /
или — <-. Так как bk = ak + n , bk+1 = ak+1 + n и
bk bk+1
ak+1 = ak +1, то искомое неравенство равносильно
a,, a
k+1
a. a. +1
или
ak + n ak+1 + n ak + n ak +1 + n
имеет место, поскольку
ak ak +1
. Последнее
ik + n ak +1 + n (ak + n )(ak +1 + n)
< 0.
ак + п а 1 + п воречит (2). Лемма доказана.
По лемме 1 значения с^ взаимно однозначно соответствуют словам, совпадающим с масками. В данной схеме число масок произвольно.
Из изложенного вытекает
Теорема 1. Пусть количество масок, заданных в виде строковых элементов, равно п и для них сконструирована мультипликативная схема (2), (3). Тогда оператор локализации минимума в окрестности радиуса ерт = п идентифицирует все локально минимальные элементы, соответствующие группе из п подряд расположенных масок.
Для группы числовых элементов, локализованных в -окрестности, могут встретиться два случая [8]:
1. В группу локализованных элементов попадают только те числа, каждое из которых соответствует некоторой отдельно взятой маске поиска.
2. В группе локализованных элементов есть числа, которые соответствуют отсутствию маски поиска.
Идентификация искомых слов определяется проверкой их совпадения с заданной комбинацией масок поиска.
Замечание 4. Если условием поиска является не только определение местоположения заданных слов, сгруппированных воедино, но и наличия в группе заданного порядка слов, то радиус ер$ при задании условия следует считать равным числу масок группы. Числовые элементы искомой группы и их индексы будут упорядочены по возрастанию, а индексы соседних элементов отличаются на единицу.
Свойство локализованных элементов с заданной последовательностью сохраняется в общем случае.
Теорема доказана.
Таким образом, при поиске по сгруппированным в заданном порядке маскам, в случае выполнения условия поиска, индекс локализованного значения всегда наименьший, последующие индексы упорядочены, возрастая на единицу.
Замечание 5. Поиск по разрозненному сочетанию n разрозненных масок осуществляется в результате идентификации всех локальных экстремумов с последующим просмотром искомых элементов, индексы которых соответствуют индексам экстремумов сопоставленного числового массива. При этом в условие формирования мультипликативной схемы (2), (3) можно включить взаимное положение масок и дополнительные условия более сложного характера. Помимо того, можно показать, что набор разрозненных масок идентифицируется как элемент числового массива, получаемого арифметическим преобразованием числового массива, полученного по схеме (2), (3).
Перенос схемы на поиск в текстовых файлах
Описанные схемы поиска в массиве слов переносятся на поиск в текстовых файлах следующим образом. Файл открывается, текст из файла переводится в массив слов с сохранением исходного порядка. К полученному массиву применяется одна из описанных выше схем.
Замечание 6. Предложенный метод применим для поиска в произвольно заданном количестве файлов. Для этого достаточно производить открытие текущего файла, его анализ, затем закрытие файла. За малый промежуток времени можно последовательно обработать на Delphi сравнительно большое количество файлов. В ходе эксперимента для 560000 текстовых файлов формировался полный список файлов, удовлетворяющих заданным условиям. В каждом файле идентифицировались фрагменты, отвечающие заданным
—n
маскам и их взаимному расположению. На Pentium 4 поиск выполнялся = 24 мин.
Схема поиска может быть применена ко всем файлам, которые содержат текстовую информацию и допускают преобразование заданного типа файла к текстовому. Такими файлами, например, могут быть файлы, содержащие тексты программ (bas, pas, dpr), файлы электронных таблиц (xls). Для выполнения поиска в таких файлах достаточно привести их к текстовым, затем применить описанную схему.
Поиск группы файлов и данных различных типов
Можно предложить следующую схему обобщенного поиска. Мультипликативная схема (2), (3) переносится на поиск во множестве произвольного объекта, удовлетворяющего группе различных признаков, или на поиск подмножества таких объектов, если элементам множества по этой схеме сопоставить элементы одномерного числового массива в соответствии наличию или отсутствию в текущем объекте заданного признака. В сформированном таким образом массиве затем идентифицируется глобальный или набор локальных экстремумов, индексы которых соответствуют указателям, привязанным к исходным объектам.
Пример 4. Среди упорядоченного набора логических формул
ab ^ c v a , ac v ab v b (ab v c )^(c v b ),
a v bc)л a ^ c, (ab © bCac, (b + c)^ abc
требуется указать те, которые принимают значение false на наборе переменных true, false, true, значение true на наборе false, true, false и значение true на наборе true, true , true. Ниже под цифрой I в i-м столбце проставлено соответствие i-го объекта набору переменных в строке, под цифрой II в i-м столбце согласно этому соответствию по схеме (2), (3) сформирован i-й элемент числового массива:
I II
S- Г
Свойства
поиска 1 2 3 4 5 6 1 2 3 4 5 6
п 0 1 1 1 1 0 5 2 2 2 2 5
1 0 1 1 1 0 3 6 3 3 3 6
ь 1 0 1 1 0 0 4 7 4 4 7 7
60 84 24 24 42 210
Сопоставленный числовой массив
Локально минимальный элемент 24 в окрестности радиуса 3 (число масок) соответствует наличию требуемой формулы в объектах с номерами 3, 4. С радиусом eps = 1 получаются все такие объекты, глобальный минимум соответствует первому из них в
порядке расположения; элемент 210 соответствует отсутствию заданного признака.
Такой подход совмещает поиск с распознаванием заданных сочетаний свойств. В частности, возможен поиск заданного сочетания линий в оптическом спектре [9, 10]. Непосредственно по аналогии с данным примером можно выполнить тестирование логических схем в электронных устройствах.
Возвращаясь к контексту рассматриваемой схемы поиска, отметим, что может быть выполнен ее перенос на поиск группы объектов различного типа внутри файла и файлов также различного типа.
Пусть требуется выполнить поиск каталога файлов различного типа.
В основу положена схема поиска и автоматической идентификации в массиве строковых элементов одновременно по нескольким маскам. Рассматривается т групп файлов, среди которых требуется найти каталог, содержащий одновременно п требуемых файлов (масок поиска группы), последовательность которых определена заранее. Первоначально создается числовой массив С (т), каждый элемент которого равен 1. Просматривается / - я группа файлов, начиная с I = 1, исследуется каждый файл этой группы. Если файл группы соответствует маске поиска, то 1-й элемент числового массива с [ ] умножается на число
у +1, иначе с [ ] умножается на п + у +1. В результате исходной последовательности групп файлов сопоставлен числовой массив согласно мультипликативной схеме (2), (3). Дополнительно создается массив строк, который содержит имя или полный путь группы файлов. Этот массив позволяет комбинировать поиск по содержимому рассматриваемых файлов с поиском «по имени файла».
Индексация числового массива совпадает с индексами элементов исследуемых групп файлов и индексами имен групп.
Далее схема поиска группы файлов полностью повторяет схему поиска в массиве строковых элементов одновременно по нескольким маскам, с распознаванием найденного.
Экстремумы числового массива соответствуют различным наборам найденных файлов.
В группу файлов могут быть включены файлы, не приводимые к текстовым. Так, например, можно выполнить поиск типизированных файлов, содержащих заданное число или поиск рисунка в этом каталоге.
Поиск с заданной точностью элементов в числовом массиве может быть перенесен на поиск в типизированном числовом файле. Для этого информация из файла считывается в числовой массив с сохранением порядка следования элементов. Далее без изменений применяется схема, описанная в начале сообщения. Схема обобщается на поиск типизированных числовых файлов.
С целью поиска графических файлов каждому рисунку может быть сопоставлен вектор распознавания [11]. Для текущего рисунка находится норма разности между вектором исследуемого рисунка и вектором эталонного рисунка. Рисунок считается найденным, если норма разности соответственной пары векторов не превосходит заданной границы погрешности. С использованием схемы (2), (3) может быть найдена группа рисунков с заданными признаками.
В принципе схема поиска может быть распространена на поиск рисунков, числовых, формульных, текстовых фрагментов и данных других типов.
Ограничения для практической реализации данной схемы в случае текстовых файлов может представлять та особенность, что файлы с помощью дополнительных преобразований должны быть переведены к файлам типа Ш. Таким образом, схема обрабатывает все файлы совместимых с Ш типов при наличии программного определения кодировки.
Целесообразно отметить, что изложенный метод обладает параллелизмом, который основан на максимальной параллельности используемых сортировок [4, 6] и на параллелизме обработки отдельно взятых файлов и их фрагментов.
Программный эксперимент по реализации изложенного подхода выявляет устойчивость данных схем поиска во всех отмеченных аспектах.
Существенным качеством изложенного метода является детерминированность результатов поиска. Сочетанием этих свойств, по построению и принципом экстремальности метод отличается от известных [12, 13].
Заключение
В работе описана детерминированная схема поиска данных различных типов по нескольким маскам на основе сортировки. Схема конструируется на основе сортировки и идентификации экстремальных элементов последовательности числовых значений, сопоставленных просматриваемым текстовым фрагментам или группам объектов. Искомые элементы идентифицируются по локально экстремальным элементам числовой последовательности в окрестности произвольно задаваемого радиуса. В схеме учитывается зависимость сочетания масок друг с другом, расстояние между ними, взаимное расположение полных и частичных комбинаций заданных масок. Схема распространяется на поиск значений в файлах различных
типов, на поиск данных различных типов внутри файлов и сочетает поиск с элементами распознавания.
Литература
1. Арутюнян Р.Э. Разработка архитектуры программной
системы автоматизированного сбора тематической информации в сети Интернет: автореф. дис. ... канд. техн. наук. - Ростов н/Д, 2004.
2. Аграновский А.В., Арутюнян Р.Э. Индексация массивов
документов // Мир ПК. - 2003. - № 6.
3. Виноградский В.В., Ромм Я.Е. Преобразование сортировок в форму устойчивых схем со свойствами прямой и обратной адресности / ТГПИ. Таганрог, 2003. - 43 с. -Деп. в ВИНИТИ 8.12.2003, № 2130-В2003.
4. Ромм Я.Е. Параллельная сортировка слиянием по матрицам сравнений. I // Кибернетика и системный анализ. -1994. - № 5. - С. 3 - 23.
5. Ромм Я.Е. Метод вычисления нулей и экстремумов функций на основе сортировки с приложением к поиску и распознаванию. I // Кибернетика и системный анализ. -2001. - № 4. - С. 142-159.
6. Ромм Я.Е. Метод вычисления нулей и экстремумов функций на основе сортировки с приложением к поиску и распознаванию. II // Кибернетика и системный анализ. -2001. - № 5. - С. 81-101.
7. Ромм Я.Е., Белоконова С.С. Схема поиска на основе сортировки и локализации экстремальных элементов / ТГПИ. - Таганрог, 2003. - 31 с. - Деп. в ВИНИТИ 12.03.2003, № 436-В2003.
8. Ромм Я.Е., Белоконова С.С. Поиск по группам масок на основе сортировки и локализации экстремальных элементов / ТГПИ. - Таганрог, 2005. - 56 с. - Деп. в ВИНИТИ 28.06.2005, № 916-В2005.
9. Ромм Я.Е., Гуревич М.Ю., Белоконова С.С., Соловьева И.А. Вычисление нулей и полюсов функций на основе устойчивой адресной сортировки с приложением к поиску и распознаванию // Проблемы программирования. - 2004. -№ 2-3. - С. 462 - 472.
10. Гуревич М.Ю. Алгоритмические схемы распознавания изображений двумерных объектов на основе адресных сортировок: дис. ... канд. техн. наук. - Таганрог, 2001.
11. Ромм Я.Е., Тюшнякова И.А. Метод вычисления собственных значений матриц на основе сортировки в приложении к распознаванию изображений // Изв. вузов. Сев.-Кавк. регион. Техн. науки. - Прил. № 1. - 2006. -С. 11 - 20.
12. Толстобров А.А., Хромых В.Г. Полнотекстовый поиск в электронных библиотеках // матер. IV Всероссийская науч. конф. Электронные библиотеки: перспективные методы и технологии, электронные коллекции: Дубна, 1517 октября 2002 г. / Объединенный институт ядерных исследований. - Дубна, 2002.
13. Озкархан Э. Машины баз данных и управления базами данных. - М., 1989.
Таганрогский государственный педагогический институт 20 апреля 2006 г.