Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги из ГПНТБ / Папернов А.А. Методы упорядочения информации в цифровых системах

.pdf
Скачиваний:
16
Добавлен:
25.10.2023
Размер:
13 Mб
Скачать

§ 10.1. СТАТИЧЕСКИЙ МАССИВ

371

при фиксированном z имеет минимум по h0. Оптималь­ ное значение п0 найдем, приравнивая нулю производную

% ^ = _ 2

( r c p

+ ^ r n

y ^ + Z Z Î ! ! = 0,

(10.23)

dh0

- \ с р

1

3

 

 

откуда

 

 

 

 

 

2 ^ = 4 ( 1

+ — — ) « .

(10.24)

 

 

 

3

7*^

 

Минимальная общая сложность определяется выраже­ нием

T7& = 2

( T ^ +

YT")

 

 

 

4(Tcp+-jTn)

 

 

 

+ 2 T C p ( 2 + log2 n).

(10.25)

На рис.

10.3 приведены зависимости общей сложности

процедур

частичного (взаимного и внутреннего)

упоря­

дочения и поиска от числа запросов на поиск при оп­ тимальном разбиении массива. Зависимости получены при условиях ТП = Т С р, п= 1000 и в случае использования и для внутреннего упорядочения подмассивов, и для их взаимного упорядочения однотипных процедур типа ме­ тода Хиббарда. При использовании частичного внутрен­ него упорядочения общая сложность существенно выше (на 50—60%), чем при использовании частичного вза­ имного упорядочения. Для максимального показанного на рисунке значения z в случае внутреннего упорядоче­ ния требуется уже создание единого массива. При даль­

нейшем увеличении числа запросов на

поиск /г0

будет

постепенно уменьшаться до 1 и тогда

характеристики

общей сложности данных двух методов

сольются, так

как при этом уже и для взаимного упорядочения

будет

требоваться организация единого упорядоченного мас­

сива. В случае частичного взаимного

упорядочения еди­

ный упорядоченный массив потребуется при

z = 4 ( l + - i - b j „ ,

(10.26)

372 ГЛ. ДО. СОВМЕСТНАЯ ОПТИМИЗАЦИЯ ПОИСКА И УПОРЯДОЧЕНИЯ

а в случае частичного

внутреннего

упорядочения —

при

 

 

 

 

2 1 + —

 

log2 n — log2

(10.27)

1

3 т,

е

 

ср

 

 

В последнем случае величина z существенно меньше первой, что подтверждает большую эффективность мето­ да взаимного упорядочения.

Ist>ML_

22000

гоооо

18000

16000

14000

/2000

 

10000

 

 

ср

 

 

 

8000\

 

г? = /ООО

 

 

 

BODO

 

 

 

 

 

 

2000

 

 

 

 

 

 

 

100

200

300

 

 

Рис.

10.3. Зависимость

Гобш/^ср

процедур

частичного

(взаимного

и внутреннего) упорядочения и поиска от числа запросов

на

поиск z

 

при оптимальном

разбиении

массива.

 

 

 

Сравнивая описанные

методы,

нельзя не

отметить

также и естественную возможность

дополнения

частич-'

но

упорядоченного

массива

новыми

элементами

в слу­

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

§ 10.2. ДИНАМИЧЕСКИЙ МАССИВ

373

§ 10.2. Поиск и упорядочение в динамическом

массиве

Рассмотрим некоторый динамический массив, состо­ ящий из п элементов. Будем считать, что этот массив упорядочен. Пусть в некоторую единицу времени посту­ пает z запросов на поиск элементов, у новых элементов массива и 5 сигналов об изъятии устаревших элементов.

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

ранее элементами методом

вставки.

 

Предполагая случайность массива новых элементов,

определим, что сложность

упорядочения

такого масси­

ва из п0 элементов составляет

 

Туп(п0)=

^(ТСР + ТП).

(10.28)

Поиск в системе с подобной организацией должен со­

стоять из двух этапов — поиска

в

основном массиве n

и поиска в малом массиве п0.

Учитывая,

что объем ос­

новного массива n постоянен,

а

объем вспомогательно­

го массива с равной вероятностью

может

быть 1, 2, 3, ...

п0, получаем оценку сложности

 

поиска

 

= zzTQV ( l o g 2 r t + ^ - I o g , ( / i o l ) ) . (10.29)

Также подлежат поиску и s устаревших элементов для того, чтобы отметить эти устаревшие элементы и в даль­

нейшем удалить их из массива. Поиск этих

элементов

мы включим в общее число запросов на поиск.

По окончании некоторого интервала времени, в те­

чение которого во вспомогательном

массиве

накопится

По элементов, производится слияние

основного массива

374ГЛ. .10. СОВМЕСТНАЯ ОПТИМИЗАЦИЯ ПОИСКА И УПОРЯДОЧЕНИЯ

с массивом новых элементов, во время которого произ­ водится также удаление устаревших элементов.

Сложность этой процедуры

(п + п0) (Тср + Тп)

(10.30)

Общая сложность такого цикла работы (с накоплением новых элементов в специальном массиве и следующим затем единственным слиянием) составляет (из (10.28), (10.29) и (10.30))

Г 0 6

щ

f — ) = X (Гер + Тв) + {п+ п0) с р + Гп ) +

 

 

 

 

П0

zaT

(log a n - |

 

log2(«oO

 

(10.31)

 

 

 

У

n0

 

так

как в единицу

времени

приходят z

запросов, а

цикл

продолжается

п0

единиц

времени.

Сложность

описанного

цикла работ

в расчете

на единицу

времени

составляет

 

 

 

 

 

 

 

 

 

г 0 6

щ

(1) =

с р + Г П ) +

п0

с р + Тп ) +

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

+ zaTcp

(log2 n +

— log2 (n0\)).

(10.32)

Отсюда следует,

что в данном

процессе существует оп­

тимальное

значение

п0,

обеспечивающее

наименьшую

сложность в единицу

времени. Учитывая, что

 

 

log2 (п0!) % log2

ГЦ \n,

У2ъщ

 

 

 

 

 

e

°

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

=

— log

2 2 TU +

1

 

 

log2

n0 n0

log2

e,

(10.33)

log2 щ + n0

определим

производную

от Т 0 Б Щ (1) по п 0

и приравня­

ем ее нулю:

 

 

 

 

 

 

 

 

 

оГобщО) _ у

. ~ ч

 

У"

ср

дп0

ср + Т„)

 

 

 

 

 

 

log 2 2it

loga e — !og 2 n 0

ср

2 ni

 

 

По

+Тп) +

+- i L = 0 . (10.34) n0 j

 

§

10.2. ДИНАМИЧЕСКИЙ

МАССИВ

 

375

Пренебрегая log 2 n 0

по сравнению

с n0\og2e,

преобразу­

ем полученное уравнение к виду

 

 

 

 

nl+±

 

U log, е +

log2

 

\ -

4 п =

0.

 

 

 

 

 

 

 

 

 

 

 

 

(10.35)

Учитывая

также, что е/}/ 2я

близко к единице,

получим

 

пі + щі.

 

4

а Г

с р

 

log2 e — 4 n = 0 ,

(10.36)

 

0

у

 

тср

+

тп

 

 

 

 

 

 

откуда уже легко

найти

выражение

для

оптимального

значения

По:

 

 

 

 

 

 

 

 

 

 

 

 

 

2 « r c p l o g 2 e \2 / _ 2 _ \ 2

2 a r c p l o g 2 e _г

 

 

Tcp

+ Tn

I \ у J

 

Tcp + Tn

у

 

 

 

 

 

 

 

 

 

 

 

 

(10.37)

при а=\,

Тср = Тп

получаем

 

 

 

 

 

 

" о =

Y4я-2,07

 

 

 

(-J-)2-2,07^-.

(10.38)

Из (10.37)

можно заключить, что я 0

должно быть мень­

ше единицы при выполнении

 

условия

 

 

 

 

 

_ ^ 4 а г с р

l o g , e > 4 w

 

 

( 1 0 3 9 )

 

 

 

у

тср

+

т п

 

 

 

 

или

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

>• " ^ с р ^

 

 

 

(10.40)

При а = 1 и Г с р

Т п получаем

 

 

 

 

 

 

 

г/*/>

1,39 л.

 

 

 

(10.41)

При выполнении этого условия нецелесообразно иметь дополнительный массив, а необходимо проводить объеди­ нение сразу же при появлении очередного нового элемента.

СРАВНИТЕЛЬНЫЕ ХАРАКТЕРИСТИКИ ОСНОВНЫХ

 

 

 

 

 

 

 

 

 

Характеристики

алгоритма

 

 

Наименование

 

 

 

 

 

 

 

 

 

 

Пара­

 

Оценка сложности

метода

 

Оценка

метры

п/п

метода

 

 

требуемого

прове­

 

 

 

 

 

 

 

 

при упорядочении

 

резерва

ряв­

 

 

 

 

 

 

 

 

случайного массива

 

памяти

шейся

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

про­

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

граммы

1

Слияние

по двум

С^ср + Тп)

n log2

n

 

п

элементов

 

 

 

направлениям

 

 

 

 

 

 

 

 

 

 

 

 

 

2

Слияние

по

s нап­

[(s—

 

l)Tcp+Tn]n\ogsn

n элементов

s =

4

 

равлениям

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

Вставка

 

 

 

 

 

nTcp + Y

(Тер +

Ta)

1

элемент

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

Метод

Шелла

с че­

y —

r c p + —

 

Tnjn\og2n

1

элемент

 

 

 

редованием

некрат­

 

 

 

 

 

 

 

ных шагов

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5

Метод

Хиббарда со

1,39( Ѵ с р +

^ п ) '

log2 w

адре­

 

 

 

случайным

опорным

сов +

1 эле­

 

 

 

элементом

 

 

 

 

• n log2

n

 

 

 

мент

 

 

6

Метод

Хиббарда

с

 

 

 

 

 

 

log2 n адре­

 

~{тср

+ ~T„

y

 

\og2n

<7 =

3

 

опорным

элементом,

 

сов +

1 эле­

 

 

 

определяемым

 

по

 

 

 

 

 

 

 

мент

 

 

 

выборке

 

размера

q

 

 

 

 

 

 

 

 

 

 

 

7

Поразрядный

метод,

(rcp

+ ~Y T„j

nt,

где

1 адресов +

 

 

 

начиная

 

со

старших

+

1 элемент

 

 

разрядов

8 Метод

анализа р

m-разрядных

групп

признака

в

сочета­

нии с методом вставки

_

t log2 n при log2 n < l

 

 

 

1 / при 1og2

n > l

 

 

 

l(Tn + 2T9P)

n +

2 т

адресов + m — 5

+

QTu2m]p -f- Т'вставки

+

n элемен­ р = 2

 

 

 

 

тов

Обозначения: Т с р — сложность цикла

сравнения, Тп

— сложность

массива, / — количество разрядов в признаке,

m — размер

группы анали-

 

 

 

 

 

 

 

 

ПРИЛОЖЕНИЕ

 

МЕТОДОВ УПОРЯДОЧЕНИЯ

 

 

 

 

 

 

Характеристики рабочей программы в кодах БЭСМ-4

 

 

Объем

 

Экспериментальные

данные по количеству выполненных

 

 

команд, приходящихся в среднем на один элемент

 

рабочей

 

при упорядочении случайного

массива

 

 

программы

 

 

Размер массива в элементах

 

 

 

 

 

 

 

 

команд

кон­

10

25

200

500

1075

1575

2000

2500

3200

стант

87

9

47,3

53,2

75,5

83

100

100

210

13

29,2

37,5

50

58,5

69,5

69

13

1

16,6

41,1

259

596

1370

2010

2520

3120

3850

31

4

36,7

50

94,5

116

139

150

158

168

173

65

1

29,2

38,6

68

78

90,5

93

98

103

106

103

2

21,1

31

55,5

64,5

75,5

81

83

86,5

86,2

92

1

62,1

66

93

105

113

115

118

118

121

84

20

125

86,5

61,5

61

62,5

63,5

 

цикла пересылки, Ти —сложность операции над адресом, n—число элементов зируемых разрядов, р — число групп анализируемых разрядов.

378 ПРИЛОЖЕНИЕ

В таблице приведены характеристики следующих методов, опи­ санных в основном тексте книги:

1. Слияние по двум направлениям, то есть слияние с объедине­

нием

на каждом

этапе

пар

подмассивов

в один

подмассив (блок-

схема на рис. 3.9).

 

 

 

 

 

 

 

2.

Слияние

по

четырем

направлениям

(блок-схема

на рис. 3.7).

3.

Вставка

(блок-схема

на рис. 3.18).

 

 

 

4.

Метод Шелла

с

чередованием некратных

шагов

(блок-схема

на рис. 4.7).

 

 

 

 

 

 

 

 

5.

Метод разделения Хиббарда со случайным выбором опорного

элемента (блок-схема

на

рис. 5.9).

 

 

 

6.Метод разделения с выбором опорного элемента из группы, состоящей из трех элементов.

7.Метод поразрядного упорядочения, начиная со старших раз­

рядов

(блок-схема

на рис. 6.2).

 

8.

Метод поразрядного упорядочения по

группе из 5-я разрядов,

начиная с младших, в сочетании с методом

вставки.

Д л я

каждого

из упомянутых методов

в таблице собраны сле­

дующие

характеристики:

 

оценка сложности метода при упорядочении случайного мас­ сива в зависимости от его размера, времени .выполнения основных операций и некоторых других параметров;

оценки требуемых дополнительных резервов памяти;

некоторые дополнительные сведения, существенные для ха­ рактеристики отдельных методов упорядочения.

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

ной машины

типа БЭСМ-4. В таблице приведены следующие дан­

ные об этих

программах:

 

 

 

 

объем

рабочей программы

по

количеству

команд

и констант

в ней;

 

 

 

 

 

 

экспериментальные данные

о

количестве

команд,

отнесенных

к одному элементу

массива,

которые пришлось выполнить в про­

цессе упорядочения случайных массивов различного

размера.

Цель экспериментального исследования состояла в уточнении

фактической

сложности этих

методов. Теоретические оценки,

при­

веденные в тексте книги и в

таблице, учитывают основные операции,

выполняемые

в

процессе

упорядочения — сравнения

и

пере­

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

ПРИЛОЖЕНИЕ

379

ваемых теоретическим анализом. Правда, приводимые в таблице дан­

ные

относятся

к конкретной

цифровой

машине с

конкретным

соста­

вом

операций.

Однако, можно предполагать, что эти

данные

отра­

жают порядок

сложности

отдельных

методов

и их

соотношения

друг

с другом

и для цифровых машин

с другой

системой команд.

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

рялись на массивах

в 10, 25, 200, 500,

1075,

1575 слов,

а те, которые

не

требуют больших

резервных объемов

памяти, —

дополнительно

на

массивах в 2500 и 3200 слов. Массивы

одинакового

размера, упо­

рядочивавшиеся разными

методами,

имели

не только одинаковый

размер, но и одинаковый

исходный состав.

 

 

 

ЛИТЕРАТУРА

1. А д е л ь с о н-В е л ь с к и й Г. М., Л а н д и с

Е.

М.,

Один алго­

ритм организации информации, ДАН СССР

146,

2, 1962.

2.Алгоритмический язык АЛГОЛ 60. Пересмотренное сообщение, перев. с англ., «Мир», 1965.

3.А л е к с е е в В. Е., О некоторых алгоритмах сортировки с мини­

мальной памятью, Кибернетика, № 5, 1969.

4.

А л ф е р о в а 3.

В.,

В о л о в и ч

М. А.,

Сортировка

информации

 

с помощью электоонных вычислительных машин, «Статистика»,

 

1965.

 

 

 

 

 

 

 

 

 

 

 

5.

Б е л о н о г о в Г. Г.,

К о т о в

Р.

Г.,

Автоматизированные инфор­

 

мационно-поисковые

системы,

«Советское радио»,

1968.

 

6.

Б е р ж К. Теория

графов

и ее

применения, перев. с

франц.,

И Л ,

 

1962.

 

 

 

 

 

 

 

 

 

 

 

7.

Б у д ь к о

Н. С ,

К у д и н

Н. И.,

Г о р о х о в

С. А.,

Автоматизи­

 

рованная

информационно-поисковая

система

для

источников

 

научно-технической информации по радиоэлектронике «Сетка-3».

 

Научно-техническая

информация,

10,

1966.

 

 

 

8.

В о л к о в

Б. Г., С е л е т к о в

С. Н.,

Применение переключатель­

 

ных функций для поиска информации

методом

позиционных

 

матриц, Сб. «Цифровая вычислительная техника и программиро­

 

вание», № 4 «Советское радио»,

1968.

 

 

 

 

9.

Г л а д у н

В. П.,

Организация

памяти

для поиска

и записи

по

 

ключу, Кибернетика,

№ 4,

1965.

 

 

 

 

 

 

10.Г л а д у н В. П., Сортировка в памяти типа «матричный каталог», Кибернетика, № 5, 1965.

11.

Г л а д у н

В. П.,

Сортировка по

шкале признаков,

Кибернетика,

 

№ 4,

1967.

 

 

 

 

 

 

 

 

 

 

 

 

 

12.

Г л а д у н

В.

П., К о б ц е в а

С.

 

А., Методы

выполнения

обра­

 

щений по признакам в памяти произвольного доступа, Киберне­

 

тика,

2,

1967.

 

 

 

 

 

 

 

 

 

 

 

13.

Г л а д у н

В. П.,

Р а б и н о в и ч

3.

Л., Быстродействующие

алго­

 

ритмы

сортировки

в

оперативной

памяти, Кибернетика,

1,

 

1965.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

14.

Г л у ш к о в

В. М.,

Г л а д у н

В.

 

П., Л о з и н с к и й

Л.

С ,

П о -

 

г р е б и н с к и й

С.

Б.,

Обработка

 

информационных

массивов

в

 

автоматизированных

 

системах

 

управления,

«Наукова

думка»,

 

Киев,

1970.

 

 

 

 

 

 

 

 

 

 

 

 

 

15.

Г н е д е н к о

Б.

В.,

Курс теории

вероятностей,

Физматгиз,

1961.

16.3 у б о в В С , К вопросу о классификации методов внутренней сортировки, Сб. «Цифровая вычислительная техника и програм­ мирование», вып. 4, «Советское радио», 1968.

 

 

 

ЛИТЕРАТУРА

381

17. З у б о в

В. С.,

О сравнительных характеристиках

древовидных

методов

внутреннего

упорядочения. Сб. докладов

научно-техни­

ческой

конференции

по итогам научно-исследовательских работ,

МЭИ, Москва,

1970.

 

 

18. З ы к о в

А. А., Теория конечных графов, т. I , «Наука», Сибир­

ское отделение,

1969.

 

 

19.К а б а н о в М. И., Методы хранения и воспроизведения инфор­ мации с использованием цифровых вычислительных машин (рота­ принт), Изд-во МГУ, 1968.

20.К и т о в А. И., Программирование информационно-логических за­ дач, «Советское радио», 1967.

21. К и т о в А. И., К е р и м о в С. К-, Некоторые вопросы

машин­

ного

поиска информации с использованием методов ассоциатив­

ного

программирования, Научно-техническая информация,

№ 10,

1966.

22.К о ж у р и н Ф. Д., Об одном методе внешней сортировки, Кибер­ нетика, № 3, 1970.

23. К р и н и ц к и й

Н. А., О некоторых информационных системах,

Сб. «Цифровая

вычислительная техника и программирование»,

2 «Советское радио», 1967.

24.К р о н р о д М. А., Оптимальный алгоритм упорядочения без ра­ бочего поля. ДАН СССР, 186, № 6, 1969.

25.К У р б а к о в К. И., Кодирование и поиск информации в автома­ тическом словаре, «Советское радио», 1968.

26.

Л а в р о в

С. С.,

Универсальный

 

язык

программирования

 

А Л Г О Л 60, изд.

2-е, «Наука»,

1967.

 

 

 

 

 

 

 

27.

Л а в р о в

С. С ,

 

Г о н ч а р о в а

Л. И.,

Автоматическая

обработка

 

данных, Хранение информации

в памяти

ЭВМ,

 

«Наука», 1971.

28.

Л е д л и

Р. С ,

 

Программирование

и

использование

цифровых

 

вычислительных

 

машин, перев.

с англ.,

«Мир»,

1966.

 

 

29.

Л о з и н с к и й

Л. С , Анализ методов

внешней

сортировки,

ис­

 

пользующих слияние, Кибернетика,

1,

1968.

 

 

 

 

30.

Л о з и н с к и й

Л. С , Внутренняя сортировка

 

информации

при

 

ограниченной памяти, Кибернетика,

3,

1965.

 

 

 

 

31.Л о з и н с к и й Л. С , К вопросу о внутренней сортировке инфор­ мации, Кибернетика, № 5, 1965.

32. Л о з и н с к и й Л. С , П о г р е б и н с к и й С. Б., Об

одном быстро­

действующем . алгоритме сортировки, Кибернетика,

№ 5, 1965.

33.M а р т ы н ю к В. В., Экономная организация поиска и занесения информации при избыточной памяти, Журнал вычислительной математики и математической физики, т. 4, № 3, 1964.

34.M и д о у Ч., Анализ информационно-поисковых систем. Введение для программистов, перев. с англ., «Мир», 1970.

35. Н и к и т и н

А. И., Ш о л м о в

Л. И., Об одном алгоритме сор­

тировки на

магнитных лентах,

Кибернетика, № 6, 1966.

36.П а п е р н о в А. А., Упорядочение информации в цифровых ма­ шинах, как процесс управления. Труды МИРЭА. Вычислитель­ ная техника и программирование, вып. 58., Москва, 1972.

37.П а п е р н о в А. А., С т а с е в и ч Г. В., Об одном методе упоря­

дочения информации

в

ЗУ цифровых машин, Проблемы пере­

дачи информации, №

1,

1965.

Соседние файлы в папке книги из ГПНТБ