СПИРАЛЕВИДНАЯ СТРУКТУРА ДАННЫХ ДЛЯ РЕШЕНИЯ

advertisement
СПИРАЛЕВИДНАЯ СТРУКТУРА ДАННЫХ
ДЛЯ РЕШЕНИЯ ЗАДАЧИ ПОИСКА ИНФОРМАЦИИ
В данной статье рассматривается структура данных для эффективного поиска информации по ключам,
отличающаяся простотой организации и высокой производительностью.
Задача поиска в общем виде может быть сформулирована следующим образом. Имеется набор из
некоторого числа записей N, требуется найти одну из них по некоторому критерию. Если набор содержит
такую запись, поиск считается успешным, и сама запись передается в качестве решения задачи. В
противном случае поиск считается неудачным и решением задачи является сообщение об отсутствии
искомой записи в исходном наборе. В соответствие с общепринятым подходом считаем, что каждая запись
содержит специальное поле, именуемое ключом. Ключи уникальны в пределах набора записей, и критерием
поиска служит нахождение записи в наборе по заданному ключу.
Предлагаемая структура данных, спираль, отличается простотой организации и выполняемых над ней
операций. Спираль, используя в основе список, обладает существенно большей производительностью при
решении задачи поиска, нежели список. Кроме того, спираль может быть построена на основе уже
имеющегося списка, также спираль можно перестроить в процессе работы. Процедуры добавления, поиска и
удаления являются простыми и в чистом виде итеративными, без намека на рекурсию.
Элементом спирали является запись из 4-х полей: ключ, данные, указатель bottom и указатель right.
Центром спирали является самый первый элемент; хвостом назовем последний элемент спирали. Луч
спирали есть линейный список, который образуют все элементы, лежащие между хвостом и центром и
связанные между собой по указателям bottom. Витком спирали является линейный список, голову и хвост
которого образуют два соседних элемента, расположенные на луче спирали; связь элементов витка
осуществляется с помощью указателей right. Основное свойство спирали – каждый виток отсортирован по
возрастанию (убыванию) ключей, таким образом, в голове и хвосте каждого витка располагаются элементы
с минимальным и максимальным в пределах данного витка значением ключей. Таким образом, все элементы
с максимальным и минимальным значением ключа в каждом витке принадлежат лучу спирали. Головой
самого первого витка является центр спирали; хвост предыдущего витка есть голова последующего; хвостом
самого последнего является хвост спирали. Спираль считается сбалансированной, если количество элементов в каждом ее витке одинаково.
В процессе заполнения спирали происходит формирование как указателей right, так и
указателей bottom. Последние определяются только для каждого M-го элемента одного витка. Параметр M
определяет число элементов в одном витке и должен быть задан перед заполнением спирали.
При добавлении элемента в спираль осуществляется просмотр луча спирали по значениям ключей, тем
самым определяется тот виток, в который будет вставлен новый элемент. Далее, просматривая этот виток,
определяем местоположение нового элемента путем сравнения ключей нового элемента с ключами
элементов витка. После этого происходит собственно вставка – аналогично стандартной вставке элемента в
линейный список, при этом модифицируются указатели right, но не модифицируются указатели bottom.
Поиск информации осуществляется следующим образом. Просматривая ключи элементов, расположенных
на луче, исходя из основного свойства спирали, определяем тот виток, в котором может находиться
искомый элемент. Затем осуществляется поиск элемента с заданным ключом внутри найденного ранее
витка. Если такой элемент присутствует, цель поиска достигнута, в противном случае делается вывод об
отсутствии элемента в спирали. Удаление элемента происходит аналогично поиску – по ключу удаляемого
элемента, используя луч спирали, определяем виток, затем ищем элемент внутри него и удаляем элемент из
витка, модифицируя при этом указатели right. Балансировка спирали заключается в просмотре элементов
спирали и формировании новых значений указателей bottom с тем, чтобы количество элементов в каждом
витке было одинаково и равно заданному значению.
Исходя из сказанного выше, время поиска складывается из поиска по лучу и поиска в витке. Если число
элементов в спирали равно N, спираль сбалансирована и число элементов витка равно M, нетрудно видеть,
что среднее время поиска определяется формулой: t ~ N/2M + M/2, что близко к результату,
обеспечиваемому с помощью хэш-таблиц – при гораздо более простой организации спирали.

Информационно-поисковая система RetrievalWare представляет собой средство
полнотекстового и атрибутивного поиска. Она обеспечивает поиск, анализ и выделение
информации посредством задания пользователем поисковых запросов на естественном
языке к информации, хранящейся как в неструктурированном виде, так и
формализованных базах данных.

Эта информация может быть расположена как в локальной сети организации, так и в сети
Internet. Использование RetrievalWare позволяет быстро находить и получать документы,
используя в качестве клиентского места обычный web-браузер. К преимуществам системы
относятся наличие семантической сети, технологии нечеткого и ассоциативного поисков,
ввод запросов на естественном языке, высокая точность извлечения информации.

Семантическая сеть позволяет пользователю ввести поисковый запрос на естественном
языке, предоставив системе самой искать все документы, контекст которых совпадает с
контекстом запроса. Используемые технологии позволяют распознать слово в любой
грамматической форме. Для слов, имеющих несколько значений, пользователь может
уточнить, какие именно значения он имеет в виду.

Гибкость адаптации технологии поиска к решению конкретных задач обеспечивается, в
частности, за счет одновременного использования нескольких словарей и нескольких
семантических сетей (включая наложение нескольких сетей на один словарь). В результате
можно создавать иерархическую структуру поисковой системы: общеупотребительный
язык – область деятельности – организация – подразделение – пользователь.
Цель диссертационной работы: повышение эффективности многоагентных систем для поиска,
анализа и компьютерной обработки тематико-ориентированной информации за счет реализации
новых поисковых технологий, основанных на специализированных тематических коллекциях.
Поставленная цель достигается путем решения следующих задач:
• анализ компьютерных систем поиска и метапоиска информации в глобальной сети Internet;
• анализ алгоритмов работы многоагентных систем поиска и обработки информации в сети
Internet;
• анализ существующих подходов к мониторингу различных аспектов работы пользователей с
информационными системами и используемых в них алгоритмов и методов моделирования
объектов предметной области;
• модификация и разработка новых алгоритмов поиска и управления информацией в тематикоориентированных коллекциях, обеспечивающих высокий уровнь релевантности поисковых
процедур;
• разработка алгоритма определения уровня релевантности Internet-отклика запросу,
удовлетворяющему предметной области и тематике запроса в рамках многоязычной предметной
области, с использованием мультилингвистических частотных словарей;
• разработка алгоритма тематико-ориентированного мониторинга предпочтений пользователя
информационной системы и метода определения тематических предпочтений пользователя;
• разработка независимой структуры многоагентной системы с возможностью применения
предлагаемых агентов в любых системах поиска и обработки информации в сети Internet
Download