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

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

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

50

 

Г Л .

2. О С Н О В Н Ы Е

понятия Т Е О Р И И

У П О Р Я Д О Ч Е Н И Я

« Я І

находится в порядке

по отношению к я2 »

и

«я2 на­

ходится в порядке по отношению к яз» следует

истин­

ность отношения «яі находится

в порядке по

отношению

к Яз».

 

 

 

 

 

 

 

 

 

 

 

4°. Для любых двух возможных значений

признака

(яі

и

Яг)

непременно

должно

выполняться

либо отно­

шение

«яі

находится

в

порядке

по

отношению

к я2 »,

либо

отношение «я2

находится

в

порядке

по

отноше­

нию К Яі».

 

 

 

 

 

 

 

 

 

Всем необходимым требованиям к отношению поряд­

ка или следования отвечают отношения ~>- и

•< для

числовых

значений признака и отношения ^=

 

и

для

порядка следования двух слов в лексикографическом смысле. Отношения > и < для чисел являются отрица­ ниями отношений < и ^ соответственно и не имеют поэтому самостоятельного значения. Действительно, из справедливости отрицания отношения я і > - я 2 следует, что Я і < я 2 и, наоборот, из справедливости отрицания от­

ношения

я і < я г следует, что

Л]~>-

я 2 . Аналогичное

поло­

жение и для другой пары отношений.

 

При выполнении указанных условий множество воз­

можных

значений признака

может

быть линейно

упоря­

дочено.

Это значит, что множество

возможных значений

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

Для упорядочения объектов (элементов) по задан­ ному признаку используется рассмотренное выше отно­ шение порядка между значениями признака, приписанны­ ми различным элементам. Бели считать это отношение распространенным на сами объекты (элементы), то в этом случае не выполнено 'свойство 2° для линейного упорядочения, так как из равенства значений признаков элементов отнюдь не следует равенство самих элементов. Это приводит к тому, что в множестве объектов линейное упорядочение возможно не среди всех элементов этого множества, а только между группами элементов, где в

группу объединены все объекты, обладающие

одним и

тем же значением признака и не различаемые

заданным

отношением порядка, причем объекты с различными зна-

§ 2.1. ХАРАКТЕРИСТИКИ ПРОЦЕДУРЫ УПОРЯДОЧЕНИЯ

51

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

Возможные значения признана

Объекты

Рис. 2.1. Упорядочение объектов по значению признака.

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

Когда объект совместно с приписанным ему значением

признака занимает одну ячейку, машинное

наименова­

ние позиции этого объекта будет просто

совпадать с

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

52

Г Л . 2.

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

машинным

наименованием его позиции адрес первой

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

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

подвергают не множество самих объектов,

а множество

ссылок на

объекты (оглавление). Ссылка

является в этом случае

полноправным представителем

объекта, и машинное наименование объекта может быть заменено на машинное наименование ссылки на объект.

Сама

ссылка должна иметь

при

этом

стандартную

форму

и допускать

размещение

на

произвольных пози­

циях оглавления.

 

 

 

 

При

размещении

нескольких

объектов

(или ссылок

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

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

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

§ 2.І. ХАРАКТЕРИСТИКИ ПРОЦЕДУРЫ

УПОРЯДОЧЕНИЯ

53

последовательность натуральных

чисел г = 1 , 2, 3,...,

N

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

упорядочения. Действительно,

считая, что машинные на­

именования позиций а связаны

с индексами

функцио­

нальной зависимостью

 

 

 

«М = А , - 1 - К

' S

{1,2,3,..., Л/},

(2-1)

где машинные наименования позиций совпадают с адре­ сами ячеек памяти и Ло —адрес первой ячейки из выде­ ленного объема, получаем простейший случай, когда каждому объекту отведена одна ячейка и позиции объектов располагаются в естественном порядке в груп­ пе ячеек с адресами от Л 0 до Л 0 h+N (рис. 2.2). Счи­ тая, что машинные наименования позиций связаны с ин­ дексами другой функциональной зависимостью:

а[/] = Ao — h + hi, /<={ 1,2,3, . . . , # } ,

С2 -2 )

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

Используя в качестве функциональной зависимости

машинного наименования позиции от индекса

выражение

*[<•] = !

К * < л ,

( 2 - 3 )

I В0

k + / при k < і < N,

 

ІЕЕ\1,

2, 3,..., N),

 

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

Естественно, возможны и более сложные функцио­ нальные зависимости.

На множестве индексов, присвоенных выделенным позициям, определено отношение порядка > или •<

54

Г Л . 2. О С Н О В Н Ы Е П О Н Я Т И Я Т Е О Р И И У П О Р Я Д О Ч Е Н И Я

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

Ап

 

А+1

A+Z А+3

A-1+N

 

о

о

о

 

аШ

о)

 

 

 

 

 

 

 

 

 

 

N

 

 

 

a

[L]

 

 

 

 

A0+h

A0+2h

AQ-h+Hh

 

 

• • • О—О — О

• • •

• » • O — О — О * » » О — О — < ) * • • * •

В)

N

а [I] = А - fy + hi

В0 Bf1B+2...B0-k+NA0

AftA+2

А£2+к

^

1=fAf1+L

при

і^-к

\ Bf

k + L при I

 

Рис. 2.2. Различные виды сьязи

машинного

наименования позиции

с

индексом.

 

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

§ 2.1. ХАРАКТЕРИСТИКИ ПРОЦЕДУРЫ УПОРЯДОЧЕНИЯ

55

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

личное место. Один простой пример подобной

ситуации

приведен на рис. 2.3.

 

 

 

 

О п р е д е л е н и е . Множество из п

объектов

будем

называть упорядоченным

по заданному

признаку

я

в по­

следовательности позиций

с адресами

а[і], і

GE

{ 1 , 2,

3,..., n } , если для любой пары индексов /, / ЕЕ { 1,2,3,...,«}

из отношения следования

между индексами ( г < 7 или

\ Ао+> A t z

Ао+3

A;1 + N

 

 

•ce

N-!\N

N N-1 N-2 N-3

Рис. 2.3. Пример использования двух систем индексации одного множества позиций.

/ однозначно вытекает отношение следования между признаками объектов, расположенных в позициях с адре­

сами

<х[і]

и

а [ / ] , причем,

если

из /

< /

следует

я { а [/]} =^ іг {а [/]},

a из /

< /

следует

я { а [/]}=< я а j[t]},

то

такое

 

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

будем

 

называть

упоря­

дочением

множества объектов

в порядке

возрастания

значения

признака

(или просто

в порядке

возрастания),

а

если

из i

f

следует

ъЩ) ^=я{а[/]} ,

а из

/ • < /

следует

я{а[/])

{

 

,

то

такое

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

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

множества

объектов в по­

рядке

убывания

значения

признака

(или просто в поряд­

ке убывания)

(рис. 2.4).

 

 

 

 

 

 

 

2.1.2. Формулировка задачи упорядочения. Пусть в запоминающем устройстве вычислительной машины вы­ делена область памяти, содержащая ѵ позиций для раз­ мещения объектов заданного типа Q. В некоторых извест­ ных позициях с адресами а[і], iŒ { 1, 2,..., n} размеще-

56 ГЛ. 2. ОСНОВНЫЕ ПОНЯТИЯ ТЕОРИИ УПОРЯДОЧЕНИЯ

ны п объектов. При этом, естественно, предполагается, что п не превосходит ѵ. Объект, размещенный на пози­ ции с адресом а[і], будем обозначать Qx[i] (или Q[i], если это не будет вызывать недоразумений). Каждому объекту приписано значение некоторого признака тс. Зна­ чение признака объекта, помещенного на позицию с адресом а[і], будем обозначать тса [і] или просто тс[і]. Предполагается, что исходное размещение объектов по

Ось признаков *Ъ >а > о —

3

Ось индексов позиции

 

Рис. 2.4. Упорядоченное множество объектов.

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

адресами са[і], і ЕЕ [ 1, 2, 3,...,п } ,

объекты были

упоря­

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

отношении (в

поряд­

ке возрастания или в порядке убывания).

 

Задачи упорядочения в различных отношениях

(в по­

рядке возрастания или в порядке убыванкя)| эквивалент­ ны друг другу, так как тривиальной заменой переменной і = п+1—/ в окончательной последовательности адресов позиций <а[і] легко преобразовать один тип упорядочения в другой без изменения позиций отдельных объектов. При этом новая последовательность позиций будет иметь адреса

о / [ / ] = ü>[n + 1 _ / ] , jŒ{ 1,2,3, ... ,«} . (2.4)

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

$ 2.1. ХАРАКТЕРИСТИКИ ПРОЦЕДУРЫ УПОРЯДОЧЕНИЯ

57

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

Сравнение признаков двух объектов, расположенных в общем случае на позициях из различных последователь­

ностей с адресами а[і] и

ß[y]

соответственно,

требует

выполнения

следующей

последовательности

действий:

1. Выделение признака

ѵа [і] объекта, расположенно­

го на позиции с адресом а[і],

по заданному

значению і.

2. Выделение признака

тер [/]

объекта,

расположен­

ного на позиции с адресом ß [ / ] , по заданному значению /.

3. Сравнение признаков тса [і]

и Kß [/]

в

заданном

отношении

порядка.

 

 

 

 

 

Выполнение указанной

последовательности

действий

требует некоторых затрат

времени

цифровой

вычисли­

тельной машины. Эти затраты времени определяются сложностью вычисления адресов позиций объектов по заданным значениям индексов і и /, сложностью выделе­ ния признаков у объектов, а также сложностью выпол­ нения операции сравнения признаков, особенно если при­ знаки сравниваются в лексикографическом смысле или если значение признака занимает несколько ячеек памя­ ти. Указанная сложность определяется конкретной фор­ мой организации информации об объекте, формой пред­ ставления признака, а также трудоемкостью выполнения указанных выше действий в системе команд конкретной машины. Детальный анализ всех возможных здесь си­ туаций выходит за рамки тематики данной работы.

Будем считать, что выбрана форма организации ин­ формации об объекте, форма представления признака и известна система команд машины. В этих условиях мож­ но оценить трудоемкость выполнения каждого из пере-

58 ГЛ. 2. ОСНОВНЫЕ ПОНЯТИЯ ТЕОРИИ УПОРЯДОЧЕНИЯ

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

Обозначим:

Тжа

—время выборки значения признака

я

у объекта,

расположенного

в позиции по

адресу

а[і],

7\tß —время выборки значения признака

-г.

у объекта,

расположенного

по адресу

ß [ / ] , при заданных

значениях

индексов і и /; Г т е время

сравнения двух

признаков it

и Т% — общее время выполнения операции

сравнения,

причем

 

 

 

 

 

 

 

 

 

Тк — Т

+

Trf -\-Тта.

 

(2.5)

В дальнейшем описанную операцию сравнения значений признака двух объектов, расположенных в позициях с адресами а[і] и ß [ / ] , будем обозначать 5Л {a[i], ß[/°]}.

По результатам сравнения признаков должны прово­ диться те или иные перемещения объектов по позициям. Рассмотрим две операции такого типа.

Первой операцией будет пересылка объекта, располо­

женного на позиции с адресом а[і],

на позицию с

адре­

сом ß [ / ] . Позиция с адресом ß[/]

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

при

этом свободной, так как имевшаяся там информация в результате пересылки будет утеряна. Операцию пересыл­

ки можно записать в виде

оператора присваивания

ß № =

«[/].

(2.6)

Трудоемкость операции пересылки зависит от сложно­

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

значениям

индексов і и /, а также от трудоемкости самого переме­ щения объекта с одной позиции на другую, зависящей от

организации

информации

в позиции

и

от

ее объема.

В дальнейшем будем считать время

одной

пересылки

известным

и обозначать

его Тп [а[і],

ß[/]}

или про­

сто Тп .

 

 

 

 

 

Второй операцией будет перестановка или обмен объектов между позициями с адресами а[і] и ß[/] соот­ ветственно. Такой обмен может быть осуществлен с по­ мощью трех операций пересылки при наличии одной

§ 2.1. ХАРАКТЕРИСТИКИ ПРОЦЕДУРЫ УПОРЯДОЧЕНИЯ

59

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

р: = я № *[»']: = РІЛ; ß [ / ] : = Р

(2-7)

объект, размещавшийся на позиции с адресом а[і], пе­ реходит на позицию с адресом ß[/] и, наоборот, объект с позиции ß[/] перемещается на позицию а[і]. Трудоем­ кость обмена в этом случае можно оценить по суммар­ ному времени выполнения трех пересылок

То6 {а [і], ß [/], р} = Г п [і], ?} + Та {ß [/], а [/]) + Тп {р, ß [/]}. (2.8)

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

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

а [/]: = a [і] 0 ß [/];

ß [/]: = а [/] ф ß [/];

а [/]: = а [і] ф ß [/].

 

 

 

 

(2.9)

Если

обозначить

первоначальные

значения

величин

а[і]

и ß[/] через а0

и ß0 , то в результате второй

опера­

ции

получаем

 

 

 

 

 

* o 0 ß o e ß o = « o .

 

(2.10)

а третьей —

 

 

 

 

 

Ч Ѳ ßo Ѳ Ч = Po.

 

(2.11)

иобмен осуществлен.

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

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