Научная статья на тему 'Имитационное моделирование алгоритма произвольнопоследовательной обработки файлов в однородной запоминающей среде'

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

CC BY
109
28
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ОБРАБОТКА ФАЙЛОВ / ПОИСК ПО КЛЮЧУ / ИМИТАЦИОННОЕ МОДЕЛИРОВАНИЕ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Литвинов В. А., Майстренко С. Я., Ходак В. И.

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

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

t is described the advanced algorithm of the direct-sequential processing of an ordered file. The results of the imitation modeling the algorithm and comparative estimations of its speed of response in homogeneous memory are given

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

УДК 681.3.06

В.А. ЛИТВИНОВ, С.Я. МАЙСТРЕНКО, В.И. ХОДАК

ИМИТАЦИОННОЕ МОДЕЛИРОВАНИЕ АЛГОРИТМА ПРОИЗВОЛЬНОПОСЛЕДОВАТЕЛЬНОЙ ОБРАБОТКИ ФАЙЛОВ В ОДНОРОДНОЙ ЗАПОМИНАЮЩЕЙ СРЕДЕ____________________________________________________________________________

Abstract: It is described the advanced algorithm of the direct-sequential processing of an ordered file. The results of the imitation modeling the algorithm and comparative estimations of its speed of response in homogeneous memory are given.

Key words: file processing, key search, imitation modeling.

Анотація: Описується удосконалений алгоритм довільно-послідовної обробки упорядкованого файла. Приводяться результати імітаційного моделювання алгоритму і порівняльні оцінки його швидкодії в однорідному запам’ятовуючому середовищі.

Ключові слова: обробка файлів, пошук по ключу, імітаційне моделювання.

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

Ключевые слова: обработка файлов, поиск по ключу, имитационное моделирование.

1. Введение

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

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

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

2. Сущность алгоритма ППО и критерий оптимальности

Примем следующие обозначения и определения.

Основной файл ОФ - файл объемом N записей, в котором производится поиск и выборка нескольких записей по заданным ключам (идентификаторам).

Ключевой файл КФ - список K ключей искомых записей, упорядоченный синфазно с ОФ.

Активная запись - запись ОФ, ключ которой содержится в КФ.

Поле F(i, j) объема V(i, j) = j -i +1 - совокупность последовательных записей ОФ, заключенных в интервале порядковых номеров от i до j включительно.

© Литвинов В.А., Майстренко С.Я., Ходак В.И., 2009 ISSN 1028-9763. Математичні машини і системи, 2009, № 1

Активность А(і, у) поля ¥ (і, у) - количество активных записей, входящих в поле. Если А(і, у) = 0, то поле ¥ (і, у) - пустое, если А(і, у) = 1, то поле единичное, если А(і, у) > 1, то поле групповое.

В смысле приведенных определений, ОФ - это групповое поле ¥(1,Ы) объема N и

активности К. Сущность алгоритма ППО состоит в разбиении заданного группового поля на некоторое количество производных полей (подполей) меньшего объема и последовательной проверке их активностей путем просмотров ключей граничных записей. Если в результате проверки оказывается, что проверяемое поле пустое, то над ним никакой дальнейшей обработки не производится. Если поле единичное, то активная запись ищется методом дихотомии ("бинарного" поиска [2]). Если поле групповое, то оно вновь подвергается аналогичному разбиению.

Формально рекурсивная процедура реализации алгоритма ППО включает следующую последовательность этапов, начиная с обработки поля ¥ (1, Ы).

2. Определение оптимального объема V(1,у1) первого подполя, вычисляемого как некоторая функция /[А(і, у), V(і, у)], и номера его нижней граничной записи ^ .

3. Определение активности подполя А(1,у1). Выполняется путем последовательных

сравнений ключа граничной записи у с ключами КФ, начиная с первой. Если А(1,у) = 0, то

выполняется п.4; иначе, если А(1, у1) = 1, то выполняется п.5; иначе выполняется п.6.

4. Задача сводится к первоначальной задаче обработки поля ¥(у +1, Ы) активностью К, то есть к повторению пп. 2, 3 с измененными исходными данными.

5. Активная запись ищется методом дихотомии, после чего задача сводится к обработке поля ¥(у +1, N) активностью К —1.

6. Задача сводится к обработке поля ¥ (1, у1) активностью (1, у), т.е. к повторению пп. 2, 3

и т.д. с исходными данными: і := 1; у := А(і,у) := А(1,у); V(і,у) := V(1,у1).

После ее решения происходит возврат на первоначальный уровень разбиения и переход к обработке поля (у +1, Ы) . При этом і := у +1; у := N; А(1,у) = К — А(1,у1) и повторно выполняются пп. 2, 3 и т.д. Обработка подполей заканчивается, когда исчерпывается КФ и активность остающейся части ОФ становится равной нулю.

В [1] исследована более простая схема обработки, не требующая вычисления оптимального объема очередного подполя на каждом шаге. В упрощенной схеме оптимальное разбиение группового поля на т равных подполей на каждом уровне производится один раз на первом этапе и в дальнейшем изменениям не подвергается. Разница эффективностей общей и упрощенной схемы иллюстрируется следующим примером. Пусть N = 16, К = 4 и активными

1. і := 1; у := N; А(і, у):= К; V(і, у) := N.

являются записи с номерами 10, 11, 14, 16. Пусть далее

упрощенной схеме последовательно обрабатываются подполя (1,4), (5,8), (9,12), (13,16), а в общей схеме - подполя (1,4), (5,7), (8,9), (10,11), (12,13), (14,15), (15,16). В первом случае количество обращений к ОФ равно 12, во втором - 10. Отметим попутно, что для чисто последовательной обработки и «простого» дихотомического (бинарного) поиска этот показатель равен 16.

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

обращений к ОФ достигается при т0 = 2. Анализ более эффективной общей схемы

показывает, что минимум обращений к ОФ достигается в «узловых» точках, соответствующих

, Vи, ])

целым значениям ю§2 —)—г . Искомая узловая точка соответствует функции

л(и ])

/[Л(г, ]), V(i,j)] = ] 2^а1ц , (1)

где а = 1о§2 ,

л(i, j)

а ] х означает ближайшее целое, большее х .

Оптимальное значение т0 на каждом шаге разбиения равно

то = ] • (2)

В частности, если V^ j) = 2” , (п = 1,2,...), то т = Л .

, л(/, j) , 1 , , ;, ° у

Для начального разбиения V(/, j) = Ы, Л(г, j) = К , и если ^ = 2”, то т0 = К.

К

Соотношения (1), (2) определяют оптимальные параметры алгоритма ППО в терминах количества обращений к ОФ (т.е. без учета обработки КФ).

3. Имитационная модель и результаты моделирования

Аналитическая оценка полных затрат времени на выполнение программы ППО в однородной памяти для КФ и ОФ представляет значительные сложности. Поэтому в качестве более простого инструмента исследования выбрано имитационное моделирование процесса ППО. Целью моделирования является сравнение реальных скоростей работы программы ППО с программами дихотомического поиска и чисто последовательно совместной обработки КФ и ОФ в широком диапазоне значений коэффициента активности а = К/N и разных значений коэффициента т .

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

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

Моделирование проведено на компьютере Р4 , язык программирования Паскаль (ОеірИі). Схема имитационной модели показана на рис. 1.

КФ

Сеанс

ППО

,0)

т

0

к1=100

Генерация

упорядоченных

ключей

Генерация случайных, чисел 0^д

12

Управление серией сеансов к 2 = 100

Сеанс

ППО

т02) к1=100

Сеанс

ППО

т(3) к1=100

ОФ

Сеанс дихотомии к1=100

Сеанс

СПО

к1=100

Рис. 1. Схема моделирования Результаты моделирования отражены в табл. 1 и на рис. 2. Таблица 1. Данные отдельной серии сеансов

а 2-14 2-12 2-10 2-8 2 -6 2 -4

0,21333 0,22413 0,25790 0,25894 0,20103 0,14780

ч 0:0:6 0:0:26 0:0:126 0:0:505 0:1:560 0:4:472

?2 0,21333 0,23305 0,26981 0,29007 0,23877 0,21641

^2 0:0:6 0:0:28 0:0:131 0:0:564 0:1:849 0:6:542

160,27586 38,7355 9,95072 2,59835 0,69389 0,19172

0:4: 648 0:4: 687 0: 4:846 0:5: 059 0:5:368 0:5: 791

Таблица содержит следующие данные для серии сеансов с конкретным значением N = 5 • 105 и коэффициентом деления т0'

1п2

- абсолютные значения усредненной продолжительности сеансов t1,t2,tз (формат мин:сек:

мсек для ППО, дихотомии и совместной последовательной обработки (СПО) соответственно при разных значениях коэффициента активности а;

- удельные значения продолжительности сеансов Т1,Т2,Т3 (мсек), отнесенные к одному искомому ключу.

Рис. 2. Усредненные значения т1 / Т2 ,Т1 / Т3 Рис. 2 представляет усредненные зависимости относительных значений Т1/Т2 для

коэффициентов деления т01) » Л^’ ^), т02) » ] — , т(3) » 0,7Л(/, j) и г1 /т3 от значений

Т.ц

—-, т0 » т— 1п2 0 ] 2

5 5 5 (3)

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

коэффициента активности для ОФ=2Ю , 510, 810 . Значение т 7 выбрано произвольно для сопоставления результатов с т0(1), т0(2) .

Проанализировав таблицу и рис. 2, можно сделать следующие выводы:

1. Алгоритм ППО обеспечивает меньшее время обработки, чем дихотомия и СПО в

широком диапазоне значений а. Так, в диапазоне а = 2-12 2-6 отношение т1/т2 составляет

величины порядка 0,9-0,65, т.е. ППО «работает» в 1,1 -1,5 раз быстрее дихотомии. В таблице а > 2-6 СПО эффективнее ППО (и, тем более, дихотомического поиска).

2. Значения т0(1) и т0(2) дают примерно одинаковый результат, что свидетельствует, с одной стороны, о недостаточной корректности приложения (2) к однородной памяти, а с другой стороны, о пологости гипотетической функции /(т) в области минимума. Произвольно взятое

значение т(3) дает явно худшие результаты, что косвенно подтверждает адекватность выбора оптимальных значений т .

4. Заключение

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

Поскольку общий механизм сужения области поиска в В-деревьях, организующих индексы баз данных [3], подобен механизму дихотомии (т -томии), представляется возможным приложение схемы «групповой» произвольно-последовательной обработки к страницам В-деревьев для поиска К ключей-запросов.

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

1. Литвинов В.А. Алгоритм произвольно-последовательной обработки файлов // Кибернетика. - 1975. - № 5. -С. 56 - 58.

2. Кнут Д. Искусство программирования для ЭВМ. - М.: Мир, 1978. - Т. 3: Сортировка и поиск. - 845 с.

3. Кузнецов С.Д. http://www.citform.ru/proarammina/theorv/sortina/sortina 2^І~гїті.

Стаття надійшла до редакції 11.12.2008

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