книги из ГПНТБ / Зубов В.С. Математическое обеспечение цифровых вычислительных машин и систем учеб. пособие
.pdf- 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 .
Если П - произвольное целое число, то число этапов
о