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

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

CC BY
184
51
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
НЕТОЧНЫЙ (ПРИБЛИЗИТЕЛЬНЫЙ) ПОИСК ПО ОБРАЗЦУ / ДВОИЧНАЯ ХАРАКТЕРИСТИЧЕСКАЯ МАТРИЦА СРАВНЕНИЙ / УНИТАРНЫЙ КОД / INEXACT (APPROXIMATE) SEARCH ON THE MODEL / THE BINARY CHARACTERISTIC MATRIX COMPARISONS

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Титенко Е. А.

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

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

METHOD AND MULTI-UNIT OF k-APPROXIMATE SEARCH OF THE OCCURRENCES ON THE PATTERN

The article created a method of irrevocable search occurrences of words based on the representation and processing of binary matrix of single-character pattern matching and text. Feature of the method are the computational processes of the parallel processing of binary vectors by diagonal matrices, extended view of k errors replace characters in arbitrary positions of the sample

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

УДК 004.031

МЕТОД И ОДНОРОДНОЕ ВЫЧИСЛИТЕЛЬНОЕ УСТРОЙСТВО

к-ПРИБЛИЗИТЕЛЬНОГО ПОИСКА ВХОЖДЕНИЙ ПО ОБРАЗЦУ

Е.А. Титенко

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

Ключевые слова: неточный (приблизительный) поиск по образцу, двоичная характеристическая матрица сравнений, унитарный код

Актуальность работы. Современный этап развития средств вычислительной техники (ВТ) характеризуется интеллектуализацией процессов поиска, доступа, преобразования и хранения информации, что требует создания математических и аппаратнопрограммных средств, ориентированных на обработку знаний [1]. Интеллектуализация вычислений имеет множество побудительных причин, среди которых доминирующую роль играет необходимость учета не-факторов описания задачи и ее решения. Неточность и избыточность исходных данных, недетерминированность метода решения, неоднозначность результата задач искусственного интеллекта (ИИ) определяют использование высших форм распараллеливания вычислений, свойственных естественному интеллекту, и применению базовой схемы принятия решений человеком «условие ^-действие». Формальным отражением данной схемы мышления является особая система правил - система продукций, а элементарными вычислительными операциями - поиск по образцу и модификация структуры данных. Основные содержательные моменты задач ИИ заключаются в следующем. Во-первых, основным форматом представления и обработки знаний в настоящий момент является символьный формат, принципиально имеющий более высокий уровень организации параллельных вычислений, чем числовой формат. Во-вторых, эффективная обработка знаний с учетом не-факторов описания задачи - это реализация ветвящихся конструктивных процессов для многовариантной обработки символьной информации (ОСИ), что по умолчанию требует разработки многопроцессорных реконфигурируемых архитектур устройств и систем [2, 3]. В-третьих, интеллектуальный характер решения задач ИИ подразумевает использование эффективных средств множественного поиска возможных кандидатов с учетом переменного количества ошибок, их структурного расположения и генерации графа решений над конструктивными объектами обработки. Это означает, что наибольший интерес представляют настраиваемые однородные устройства и системы ВТ, ориентированные на поддержку параллельных вычислений и имеющие инвариантную по времени схемотехническую организацию операцион-

Титенко Евгений Анатольевич - ЮЗГУ, канд. техн. наук, доцент, тел. 8-(4712)-51-98-87

ной части для параллельной генерации множества кандидатов и их преобразования с учетом возможных ошибок. Наконец, недетерминированный характер символьных вычислений определяется возможностью объективного искажения исходных данных, левых и правых частей продукций. Элементарные действия над символами - замена, вставка, удаление - делают значимой для ОСИ задачу ^-приблизительного поиска вхождений, способного учитывать замену, добавление и пропуск к символов образца в произвольном расположении. Таким образом, приблизительный поиск вхождений связан с созданием эффективных (безвозвратных) методов и средств генерации множества процессов поиска по образцу, результатом которого является вычисленное множество позиций неточных вхождений.

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

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

Вычислительная (временная) сложность процесса поиска вхождения зависит от размера и логической структуры образца и текста. Общее количество сравнений символов между строками О и Т определяется величиной пхт и соответственно верхняя граница временной

2

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

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

Известные методы поиска по образцу

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

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

Алгоритмы конвейерного сопоставления строк основаны на получении и последовательной обработке двоичных векторов, характеризующих в рамках отдельного вектора позиционные односимвольные вхождения текущего символа во фрагмент второго операнда. На рис.1 приведены варианты конвейерного поиска с формированием двоичного вектора вхождений по строке (Кулик) [4] или столбцу (Манбер-Ву) [4]. Недостаток данных конвейерных алгоритмов заключается в последовательной обработке двоичных векторов, что приводит к непродуктивным затратам

во время поиска.

Достаточно подробный обзор алгоритмов направленного поиска и их характеристик принадлежит Клаусу Пирклбауеру (K.Pirklbauer) и Гоннету и Бейза-Ейтсу (Gonnet and Baeza-Yates). Интересный класс представляет алгоритм Карпа-Рабина, в которых процесс поиска вхождений замещается сжатием значений операндов с помощью хэш-функции. Сжатие операндов до двух чисел однозначно позволяет получить ответ при отсутствии вхождения образца, но при положительном результате поиска требуется дополнительная проверка. В качестве показателей сравнения алгоритмов выделены следующие сущности: емкостная и временная сложность, предобработка входных данных, битовые операции, параллелизм вычислительных процессов, способность к нечеткому поиску, отраженные в сравнительной таблице.

времени для итерационного вычисления конечного характеристического вектора.

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

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

Наконец, существует подход к приблизительному поиску по образцу с внешним маскированием заранее заданных позиций образца О или текста Т, заимствованный из ассоциативной организации поиска. Данный подход не обеспечивает учет произвольных ошибочных позиций сопоставлений символов, что не всегда целесообразно в ОСИ.

Сравнительные характеристики алгоритмов поиска

Алгоритм Пред. обработка Среднее время поиска Худшее время поиска Затраты памяти Нечеткий поиск Использование битовых операций

Алгоритм прямого поиска Нет О(2*п) O(n*m) Нет Нет Нет

Алгоритм Кнута-Морриса-Пратта O(m) O(n+m) O(n+m) O(m) Нет Нет

Алгоритм Боуера-Мура O(m+s) O(n+m) O(n*m) O(m+s) Нет Нет

Алгоритм Боуера-Мура-Хорспула O(m+s) O(n+m) O(n*m) O(m+s) Нет Нет

Алгоритм максимального сдвига O(m2+s) O(n+m) O(n*m) O(m+s) Нет Нет

Алгоритм Карпа-Рабина O(m) O(n+m) O(n*m) Нет Да Да

Метод последовательного ^-приблизительного поиска по образцу.

Пусть в рабочем алфавите А={&, %2, %з, &} за-

дана алфавитная переменная Е,еА и пусть введены алфавитные переменные Цг такие, что справедливо Уг( цх е а2 = {А\ %2})\г = 1...я (1)

Введение 5 алфавитов А1 -г- Л8 с исключением текущей буквы алфавита A позволяет организовать приблизительный поиск вхождения при неполном структурном соответствии образца и фрагмента текста за счет множественного анализа локальной окрестности области текущей буквы в двумерном пространстве смежных букв текста.

Известна модификация конвейерного поиска по Манбер-Ву, ориентированная на реализацию 1-приблизительного поиска по образцу, связанная с анализом части двумерной окрестности текущего анализируемого символа (рис.2).

образец О хв текст Т А В А В А С К Моменты времени сравнений

ХВо 1, і і, і ; і і і

' ч * 10 10 10 0 1

ХВі 0 1,0 1, 0 1 0 0

А в—Г* 0^1 0 1 0 0 0 2

ХВ2 0 0 1,0 1,0 0 0

і 1 0*1 0^ 0 0 3

ХВз 0 0 0 10 10 0

Текст Т СВ Образец О хвп Номер срабаты ваши

А В А

і 0 0 0 хвгш 1

А - Ч1 0 1

і 1 N 0 0 ХВП1 1

В 0 ч 1 0

к 0 1 > 0 \ ХВІЇ2 2

А к 1 0

і 1 ч 0 1 ХВПз 3

В и Ч1 0

к 0 1 0 ч 1 ХВП4 4

А 0

і 1 0 1 хвгв 5

с: и 0 0

і 0 0 0 ХВПй 6

к - 0 0 0

0 0 0 ХВП7 7

--------------------------------------- б)

Рис. 1. Конвейерный поиск: а) по характеристическим векторам-строкам, б) по характеристическим векторам- столбцам, СВ=ХВ0= 1...11 - стартовый вектор

Рис. 2. Область анализа окрестности символа ^: у - позиция по образцу, . - позиция по тексту

Анализ части двумерной окрестности с направлением поиска слева направо позволяет учитывать ошибки добавления, замены и пропуска одного (соседнего) символа образца и обеспечивает модификации фрагмента образца

(°=...^1-1]-1^1]^1+1]+1...

При этом учет положительного совпадения соседнего слева символа от ^ позволяет вести положительный поиск с учетом добавления одного символа в образец и модификации образца к виду

О = ... \-1j-1 %1-1&+1]+1... (2)

Другими словами, добавление одного символа в образец эквивалентно его пропуску в соответствующей позиции из текста Т.

Учет положительного совпадения соседнего сверху символа от ^ позволяет вести положительный поиск с учетом добавления одного символа в образец и модификации образца к виду

0'=&1Я&1 Л^+и+1, (3)

где Я - пустой символ, обозначающий пропуск символа образца в у-ой позиции.

Другими словами, добавление одного символа в текст эквивалентно его пропуску в соответствующей позиции из образца О.

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

О = ... ^1-1]-1^з^1+1]+1... (4)

Таким образом, известная реализация приблизительного поиска основана на реализации трех независимых процессов обработки смежных символов относительно текущего символа. Конечный результат положительного 1-приблизительного поиска относительно текущего символа в двумерном представлении текста формируется как операция дизъюнкции трех положительных сравнений ( добавления, пропуска, замены одного символа) и изменения структуры образца в соответствии с выражениями (2), (3), (4).

Ограниченность известного метода приблизительного поиска и соответствующего ему

алгоритма обработки характеристических двоичных векторов-столбцов определяется следующими моментами:

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

- последовательный характер обработки векторов-столбцов;

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

Вместе с тем процессы ОСИ опираются на конструктивное задание обрабатываемых объектов и правил для их обработки (продукций). Согласно [5], конструктивный объект - это конечный объект, имеющий внутреннюю систему координат для указания его отдельных элементов, взятых из заранее установленного конечного алфавита. Существование внутренней системы координат, с одной стороны, является отражением правил построения конструктивного объекта (правил конкатенации букв из заданного алфавита). С другой стороны, внутренняя система координат позволяет задавать метрику над объектом, т. е. различать расстояния между элементами. Следствием задания единой метрики является возможность разбиения конструктивного объекта на локальные независимые фрагменты, характеризуемые расстоянием удаления от начала координат и собственным размером. Таким образом, отдельные элементы (буквы) конструктивного объекта характеризуются индивидуальной позицией расположения и абсолютным расстоянием по всей структуре объекта от его начала или текущим расстоянием в фрагменте конструктивного объекта. Другими словами, это означает, что конструктивный объект имеет структурную и количественную сложность. Ко-личественнаясложность выражается фиксированным количеством символов, составляющих длину объекта. В рамках фиксированной длины объекта на основе комбинации правил присоединения букв алфавита возможно построение конечного набора слов одинако-

, „ I

вой длины I числом размещений с повторениями 5 ,

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

для программных и технических средств ОСИ значимым для к-приблизительного поиска вхождений следует считать ситуации замены к символов образца в произвольных позициях.

Метод параллельного к-

приблизительного поиска по образцу

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

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

Аппаратно-ориентированный характер

предлагаемого метода и алгоритма к-

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

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

4

\ \ \ \ \ \ \

\ \ \ \ \ \ \

\ \ \ \ \ \ \

\ \ \ \ \ \ \

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

\ \ \ \ \ \ \

\ \ \ \ \ \ \

\ \ \ \ \ \ \

\ \ \ \ \ \ \

\ \ \ \ \ \ \

ч ч \ ч ч ч ч

ЖЖ+ +

V 10 10 0 10 1

Рис. 3. Параллельной к-приблизите^ьный^оиска п^^^ра^^у:^ хОр^кт^истическая матрица позиционного сравнения символов образца и символов текста; б - характеристическая матрица параллельного поиска при к=1 Л7 ЛПЛЛПЛПЛ

Отличительная особенность двоичного вектора^ | мент сравнения. ^Таким образом, принцип струк-

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

ставляет собой унитарный,тг.е. невесовой, код (УК). И применяемой пр^ созданий! многопроцессорных

Значение УК определяетсяхчислом «1», входящих в I V./ рено

него в произвольных позициях. Фактически эти «1» отражают ситуацию совпадения пары символов операндов. УК, хранящийся-'в двоичном векторе-

водительных систем, позволяет сп

П о£нЬродноа] вычисли1ельнЬе Гус

приблизительного пстиска"^ с нет

реконфигурируемых 'архитектур высокопроиз-водительныхсистем, ^позволяет^спроектировать

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

диагонали матрицы, отражает результаты односимвольных вхождений операнда О в операнд Т. Следовательно, в соответствии с принципом обработки конструктивных объектов двоичные результаты сравнение пар операндов, расположенных по диагоналям, представляются основой параллельного поиска вхожденир,т т ^значения-., где к- шмар стрчрират расширенных возможностью подсчета «V в диага/ !_ V 1На 1рА.4УредставЛена пбщая

нально расположенных УК.

Организация к-приблизительного поиска вхождений основана на введении для каждой диагонали ячеек схем: к-анализ(атор) УК, представляющий собой функциональный узел подсчета «1» и пороговый эле-

организация матрицы ячеек, составляющей основу однородного устройства, и функциональные схемы базовых элементов - ячейки и 1 (Д

а)

Позиции вхождений при не более, чем к ошибках

от Я

1q -порог к

+1 CT

R

2

к - анализ

________q___

б)

ЯІ+Ц+1

Режим

текст Т

*ij

D0

MX

D1

A

D

C с

Яі-^^-1

в)

CLOCK

Рис. 4. Структурно-функциональная организация операционной части однородного устройств поиска:

а) структурная схема матрицы ячеек; б) функциональная схема к-анализатора в) функциональная схема ячейки поиска

Матрица ячеек получает на левой и нижней границам входные операнды в виде параллельного кода разрядностью рп бит и параллельного кода разрядностью рт бит, где р - разрядность одного символа (на рис.4 распределение р-разрядных кодов операндов по ячейкам не показано). Работа матрицы начинается с подачи входа «Старт»=1 и продолжается путем обсчета ячеек диагоналей, объединенных в сдвиговый регистр управляющим сигналом «Режим»=1.

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

теллектуальных систем, процессорах логического вывода, в системах информационного поиска и других технических средствах ОСИ. Главное конкурентное преимущество разработанного метода и однородного устройства поиска - возможность генерации множества кандидатов-решений с учетом произвольно расположенных в дискретном пространстве операндов искажений отдельных элементов. Особенность схемотехнической реализации матрицы ячеек - реконфигурируемая по входу «Режим» структура диагональных ячеек, что позволяет вычислить и обработать УК.

t

Литература

1. Гаврилова, Т. А. Базы знаний интеллектуальных систем / Т.А. Гаврилова, В.Ф. Хорошевский - СПб.: Питер. 2001. - 384 с.

2. Ва, Б.У. ЭВМ для обработки символьной информации / Лоурай М.Б., Гоцзе Ли.// ТИИЭР. 1989. т.77, N 4. С.5-40.

3. Каляев А.В., Левин И.И. Модульно-

наращиваемые многопроцессорные системы со структурнопроцедурной организацией вычислений. - М.: Янус-К, 2003. 380 с.

4. Кулик, Б. А. Системы поиска в произвольном тексте / Б.А. Кулик // Программирование. 1987. №1 - С.49-50.

5. Максимов, В. Алгоритмы поиска, или как искать неизвестно что / В. Максимов // Монитор. 1995. №6 - С.10-16.

6. Титенко, Е.А. Продукционная система для реализации параллельных символьных вычисое-ний / Е.А. Титенко // Системы управления и информационные технологии. 2006. №1 (23) - С. 187-191.

Юго-Западный государственный университет (г. Курск)

METHOD AND MULTI-UNIT OF ^-APPROXIMATE SEARCH OF THE OCCURRENCES ON THE PATTERN

E.A. Titenko

The article created a method of irrevocable search occurrences of words based on the representation and processing of binary matrix of single-character pattern matching and text. Feature of the method are the computational processes of the parallel processing of binary vectors by diagonal matrices, extended view of k errors replace characters in arbitrary positions of the sample

Key words: inexact (approximate) search on the model, the binary characteristic matrix comparisons

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