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

книги из ГПНТБ / Зубов В.С. Математическое обеспечение цифровых вычислительных машин и систем учеб. пособие

.pdf
Скачиваний:
4
Добавлен:
23.10.2023
Размер:
4.93 Mб
Скачать

- w -

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

Сопоставлением записей будем называть их сравнение по

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

быть различными (например, ^ для полей I ранга -

самых стар­

ших полей, ^

- для

следующих полей и т . п . )

Введём булевский

векторB tt'h ] ,

число

элементов которого h

равно

числу

полей

в управляющем слове,

а I -й элемент соответствует

полям 1 ранга.

Значением элемента вектора будет tr u e ,

если используемое

отношение порядка есть 5 , и -fa lse , если им является

.

Какие-либо другие отношения порядка здесь не будем учитывать.

Значения управляющих полей двух сопоставляемых записей обоз­

начим через УШ/Уи УП2 //7 ,т .е . как элементы вектора-управляю­

щего слова; L - номер ранга сравниваемых полей. Тогда обычная

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

УП2 Щ th en lifUilihen ynift] >УП2 & 1 else y n ifik УП2 1)e lse ify a iM t УП2[2khea(if B&]then ш М > т 2 Щ еЫ т -\р ]< . тп

... УП2[Ь) thenl if BlHiihen ynipij >УР2Melse УШ/hj<ffl2[til)e/se tru e

Докажем, что при конечной длине последовательности запи­ сей её можно преобразовать в правильную последовательность

путём конечного числа сопоставлений отдельных записей и их перенумераций.

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

Утверждение I . Если для двух записей последовательности

3 [i] к 31J] существует инверсия, то на отрезке последователь-

- 4 f -

ности, ограниченном данными записями, существует хо«н бы од­ на инверсия смежных записей.

Доказательство проведём от противного: воли между всеми

смежными записями указанного отрезка выполняется отношение

порядка, то в силу транзитивности отношения порядка оно вы­ полнится и между 3/</ и 3 [j] , что противоречит нашему условии.

Утверждение 2. Перестановка в последовательности (перену­

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

Утверждение очевидно.

Из утверждений I и 2 вытекает, что многократное осуществ­ ление проверки правильности следования лишь смежных записей

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

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

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

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

- 4 ? -

 

 

 

вильная последовательность. Находящаяся в

обработке

транс­

формируемая последовательность, состоящая

в

одном из этих

подмножеств, имеет " отображение" в другом

-

в виде

последова­

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

ределёняости. Сокращение множества неопределённости в резуль­ тате сопоставления отражает уменьшение неопределённости сис­

темы. В конечном итоге, после сокращения множества неопределен­

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

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

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

Оценим максимальную величину средней информационной цен­

ности одного

сопоставления записей I Ср

^Уменьшение энтропии

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

t o g a s ' ,

где черезS

обозначен размер исходного

множества неопределён­

ности, а черезS * - полученвого. Обозначим мощность подмножес­ тву, совместимого с результатом сравнения, т .е . содержащего текущую последовательность, черезS j , а мощность подмножества,

- 4 3 -

её не содержащего, через«?2 " В силу равновозможносш всех со ­ стояний обобщённой последовательности правильная последовате­

льность с

вероятностью/^ = S j/5

может оказаться в

одном под­

множестве

с текущей

и с

вероятностьюр 2 = S q/ S

-

в

разных с

нею подмножествах,

т .е .

с вер оятн остью м ощ н остью

нового

множества

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

ста ть S j

и с

вероятностью^,

~ S z . Тогда I Ср=1Ю{дН) =

to g a .S

-

P i

-

P 2 &>дг S £ =

= (1/5) *

 

 

. Максимум' 1 cp соответствует ус­

ловию

=-S"2 = S /2 и равен I

биту, т . е . / Ср ^ 1 , а

это озна­

чает, что

минимальная оценка для математического

ожидания

среднего числа сопоставлений, в процессе трансформации последо­

вательности от случайной к правильной имеет пределом величину

tygfcb

§ 3.

Оптимизация процесса сопоставительного

 

 

метода упорядочения данных

 

Для удобства дальнейшего изложения условимся выражать

выполнение

или невыполнение отношения порядка для какой-либо

записи - в

паре со всеми остальными записями - т .н .

вектором

инверсий этой записи, обозначая наличие инверсии I ,

а её от­

сутствие -

0. Так, если .например,

12-я запись упорядочена о

1 -Й, но имеет инверсию со 2 -й , её

вектор начнётся с

кода 0 1 . . .

Дополнив вектор инверсий каждой записи фиктивным элемен­

том отношения к самой себе, содержащим 0 (поскольку

соответ­

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

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

ментов, поэтому условимся использовать треугольную матрицу ,

состоящую из элементов, лежащих выше главной диагонали, со­

хранив за ней прежнее название матрицы инверсий. В этой мат­

рице L- я строка отражает выполнение отношения порядка [

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

Элементы гипотенузы характеризуют упорядоченность смежных

запиоей. С помощью матрицы инверсий легко могут быть получе­

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

Матрица инверсий содержит избыточную информацию, так как содержание еб отдельных элементов взаимосвязано (эта взаимо­

связь проистекает из транзитивности отношения порядка). Пол-

2

ный объём информации матрицы равен (Л - П ) / 2 , где /7 - чис­

ло записей в последовательности (её длина). Математическое

ожидание (МО) числа единиц в матрице для случайной последо­ вательности равно (Л 2 - л )/4 (наличие и отсутствие инверсий

равновероятно). Эта же величина является оценкой МО числа перенумераций, если производится перенумерация лишь смежных записей, что свойственно примитивным сопоставительным алго­ ритмам. МО числа сопоставлений в-них не может иметь меньшей оценки , чем для перенумераций, и в большинстве простейших алгоритмов соответствует объёму информации матрицы (сопос­ тавьте с ранее полученной нижней грань» среднего их числа).

Прежде, чем рассмотреть основы построения более произ­

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

не являющихся' смежными, может приводить к сокращению общего

числа инверсий более,

чем на I . Например, если

к

элемент

не образует инверсии с

ik - I - 1 )-м , но образует

её с

проме-

- 4 5 -

жуточныш между ними I элементами, мы можем ожидать устране­

ния в среднем

L инверсий

при обмене

местами в последователь­

ности к~го и

( ^ - / - 1 )-г о

элементов,

ш ея в

виду случайную ве­

личину числа инверсий ( к

~ / - 1 )- г о

элемента

о /промежуточными.

Назовём перенумерацию, связанную с взаимным обменом мес­ тами в последовательности двух её элементов, обменом. Опре­

делим как вставку -исключение перенумерацию путём перестанов­ ки одного элемента в последовательности с одного её места на другое с соответствующим изменением позиций элементов, лежа­

щих в промежутке между ними. Обмен просто реализуется в опис­ ках типа А и Б и затруднительно - в списках типа В и Г. Нап­

ротив, вставка-исключение проще реализуется в списке типа В.

Утверждение I .

Любой отрезок гипотенузы матрицы иявероий,

содержащий

только

0 или только I , является гипотенузой треу­

гольной её

части,

содержащей только 0 или только I соответох-

венно.

Действительно, нулевое содержимое элементов некоторого

отрезка гипотенузы указывает на отсутствие инверсий между смежными записями некоторого сегмента последовательности,

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

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

отрезке гипотенузы

- только единицы, являются аналогичными.

Утверждение 2.

Любая перенумерация обменом записей,

вхо­

дящих в сегмент, содержащий с

Z -й по

к ч а записи, может

из­

менить соотношение

числа 0 и I

лишь в

пределах соответству-

-М6-

пцего ему треугольника внутренних отношений.

Представим теперь, что некоторым способом произведено

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

льности, номера

элементов которых лежат в диапазоне от i по

Ас—1 (I сегмент)

и о т k по t - I

( 2 сегмент). Тогда фрагмент мат­

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

иметь вид, указанный на рис.

4. Знаком X отмечены элементы,

I

Рис. 4 . Фрагмент матрицы инверсий, соответству­ ющий 2 смежным внутренне упорядоченным сегментам

- 4 7 -

оодержимым которых может бить либо 0 , либо I : для исходной последовательности наличие и отсутствие инверсии между за­ писями равновероятно, а упорядочение сегментов могло приве­ сти лишь к перестановке элементов, показанных завком X,Обо­ значим 1~к через р , а к -1 через 1 . Если некоторым образом осуществить полное упорядочение записей, входящих в оба се ­ гмента ("объединение" сегментов), то все символы X окажутся нулями, т .е . тем самым в среднем будет устранено ещё Р '%J2

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

результате чего выясняется, что одна из,.них ( "выигравшая"

запись) должна следовать раньше. Применяя свойство транзи­ тивности, заключаем, что все не рассмотренные записл^долх-

ны так®е следовать за нею. Выигравшая запись загружается,

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

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

а ) Последовательность записей задана списком типа Оператор начинает работу с сопоставления к-& и /- й записей.

Если между к-й и /-й записями выполняется отношение поряд­ ка, то в силу свойства транзитивности оно выполняется и нейду всеми записями 2 сегмента и t- ii записью. £ противном случае отношение порядка не выполняется между к -й записью

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

б ) Используется список типа А или £ . Ввиду сложно реализации вставки-исключения в описках типа А и Б, явные перенумерации записей при их использовании заменяются по­ строением отдельной подпоследовательности записей, в кото­ рую в правильном порядке включаются (путём копирования)

выигравшие записи. Ври исчерпании одного из исходных с е г -

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

Число сопоставлений записей при выполнении оператора

меньше,

чем общее количество записей в исходных сегментах

{Р *1 ) ,

ж приблизительно равно ему

(будем приравнивать его

величине р+7-1 ) . Следовательно,

проведение приблизительно

- 4>д-

p + J-l сопоставлений позволяет устранять в с р е д н е м / 2

инверсий в результате объединения рассматриваемых сегментов,

что говорит о более эффективном использовании сопоставлен^,

чем в простейших сопоставительных алгоритмах.

Обратимся к схеме всего алгоритма упорядочении. Любую

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

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

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

ящие из 2 записей каждая, причём будет произведено Л / 2 со ­ поставлений где П - общее число записей. Применив опера­ тор для попарного объединения полученных сегментов, мы по­ лучим упорядоченные сегменты из 4 записей, причём будет произведено примерно (3 /4 сопоставлений. Процесс дальней­

шего объединения упорядоченных сегментов приведёт в итоге

к получению единственного сегмента - правильной последова­ тельности всех записей. Если П представляет степень числа

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

довательности, равно Из предыдущих рассуждений можно

заключить, что общее число сопоставлений приблизительно со­

ставят величину п2одг П-п. .

Как указывалось выше, оптималь­

ная оценка равна 0 b g {n l).

Но по формуле

Стирлинга

&£2 (п !)~ п £ogs п

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

число сопоставле­

ний в рассмотренном алгоритме близко к теоретической мини­ мальной оценке математического ожидания среднего числа со ­ поставлений. Число перенумераций - не больше rt(bgs n .

Если П - произвольное целое число, то число этапов

о

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