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

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

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

40 ГЛ. 1. ПОИСК ИНФОРМАЦИИ В ЗУ ЦИФРОВЫХ МАШИН

На каждом иерархическом уровне любой элемент спи­ ска содержит одну букву алфавита и два адреса связи. Один адрес связи ведет к следующей букве того же иерархического уровня или представляет собой признак окончания списка этого иерархического уровня.

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

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

заголовка (например, бур и бурка).

Если заголовок со­

держит К букв, то точка запишется

в

списке

(/(+1)-го

иерархического уровня. Поиск буквы

в

списке

каждого

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

изображен на блок-схеме

рис.

1.10, где / — номер

буквы

в заголовке и k[j]—/-я

буква

заголовка.

Блок

/ при­

сваивает номеру

буквы у в заданном заголовке исходное

значение, равное

единице.

 

 

 

 

Функции, выполняемые остальными блоками, понят­

ны из блок-схемы.

 

 

 

 

Выход из блока 3, свидетельствующий

об отсутствии

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

скольких

заголовках, записывается

в памяти

только

один раз.

 

 

Рассмотрим некоторые вопросы

рационального по­

строения

словаря с точки зрения уменьшения

среднего

времени

поиска.

 

 

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

§ 1.6. ПРИМЕРЫ ПОИСКОВЫХ

СИСТЕМ. СЛОВАРИ

41

ности известны заранее, то

их следует использовать

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

j • - 1

Обращение к начальной бунде списка

1-го иерархичесппго уровня

Поиск закончен

Рис. 1.10. Блок-схема алгоритма поиска в словаре типа многосту­ пенчатого цепного списка.

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

,1.6.2. Организация словаря в виде совокупности мас­ сивов. Если состав заголовков словаря фиксирован зара­ нее и корректировка словаря в процессе работы над ним

42 ГЛ. 1. ПОИСК ИНФОРМАЦИИ В ЗУ ЦИФРОВЫХ МАШИН

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

©

шого разброса в количестве букв,

содержащихся в заголовках, это

Подсчет

привело бы к весьма неэффектив­

количества буке (і)

ному

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

объемов

в заданном

памяти.

 

 

заголовке

 

 

®

Вычисление адресауправляющего слова

і-ео списка

Ф

Присвоение значений границам зоны поиска НП-НГ

ВГ:=ВГ,

01

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

ницы

заголовков

могут

распола­

гаться

внутри

ячеек памяти и

не зависят от

границ

ячеек

памяти.

 

 

 

 

 

Ж

Информация

о

размещении

в

 

Дихотомический

памяти

каждого

 

из упомянутых

 

 

поиск

 

массивов

хранится

в

отдельном

 

в і-м списке

 

управляющем слове. Все управ­

 

 

 

 

ляющие

 

слова

объединяются

в

Рис. 1.11. Блок-схема ал­

отдельный

служебный

массив,

причем

адрес

любого

управляю­

горитма поиска в

слова­

ре,

организованном

в ви­

щего слова в этом массиве может

де

совокупности

масси­

быть вычислен по заданной длине

вов,

сгруппированных из

заголовка.

 

 

 

 

 

заголовков

постоянной

Блок-схема

алгоритма поиска

 

длины.

 

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

изображена іна рис. 1.11. В блоке 1 фактически форми­ руется признак, по которому производится вычисление адреса блоком 2.

§ 1.7. П Р И М Е Р Ы П О И С К О В Ы Х С И С Т Е М . Т А Б Л И Ц Ы Ф У Н К Ц И И

43

§1.7. Примеры поисковых систем. Таблицы функций

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

Функция может быть задана в виде совокупности дискретных точек. Каждая из этих точек характери­ зуется:

значением аргумента х іг которое мы будем называть узловым;

значением функции у h соответствующим

узловому

значению аргумента;

а\іг а,...,

набором интерполяционных коэффициентов

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

Задача поиска состоит в нахождении по заданному значению аргумента дискретной точки, у которой узловое значение аргумента минимально отличается от заданного. По классификации, приведенной в § 1.1, поиск в таблице функции одного аргумента может быть отнесен к поиску

по

близости.

 

у

 

 

 

 

аргументу х

 

Вычисление

функции

по

заданному

производится в

следующей

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

 

1 ) по заданному аргументу х выполняется поиск по

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

аргумента

х t

и

считывание

связанных с ним узлового значения

функции у{ и интер­

поляционных коэффициентов аи,

а

, ... ;

 

 

 

2) вычисляется отклонение

 

 

 

 

 

 

 

Ьх = х — хц

 

 

 

(1.8)

 

3) вычисляется уточненное значение функции по ин­

терполяционной

формуле

 

 

 

 

 

 

 

 

 

y = f(x,bx,yi,au,a2i,...).

 

 

 

(1.9)

В случае линейной интерполяции функция

вычисляется

по

формуле

 

 

 

 

 

 

 

 

 

у = Уі + ацЪх

= Уі + аиіх

— xt),

(1.10)

в

случае квадратичной интерполяции — по

 

формуле

 

 

У = Уі + аиЪх

+ а(Ьх)2

 

 

(1.11)

и т. д.

 

 

 

 

 

 

 

 

44

Г Л . 1. П О И С К И Н Ф О Р М А Ц И И В З У Ц И Ф Р О В Ы Х М А Ш И Н

Рассмотрим два

способа

записи в память

таблицы

функции, требующие

разной

организации поиска:

1)

запись функции через

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

значения

аргумента;

 

 

 

2) запись функции через неравноотстоящие значения

аргумента.

 

 

 

В

первом случае

поиск может быть организован по

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

X. =хг+

(і — 1)Д X,

(1.12)

где Х\ — начальное значение

аргумента,

а Ах — интервал

изменения узловых значений

аргумента.

 

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

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

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

си

должен производиться

в каждом конкретном

случае

с учетом их преимуществ и недостатков.

 

 

1.7.2. Таблица функции от двух числовых аргументов.

Таблица функции y = f(xu

х2) от двух аргументов Х\ и х2

в

прямоугольной области

может быть записана

в ЗУ в

§ 1.7. П Р И М Е Р Ы П О И С К О В Ы Х С И С Т Е М . Т А Б Л И Ц Ы Ф У Н К Ц И Й

45

виде совокупности узловых точек при некоторых фикси­ рованных наборах обоих аргументов.

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

(хі уЗ Л )і +

(і—

1)

= 1 , 2 ,

...,m),

(*2узл+

(/'—

1)A*2

( / = 1,2,

...,p),

и по каждому из тр возможных сочетаний указанных фиксированных значений аргументов записаны в ЗУ уз­ ловые значения функции и интерполяционные коэффици­ енты. Как «и в случае таблицы функции от одного аргу­ мента, при указанном выборе узловых точек можно не записывать в явном виде в каждой узловой точке узло­ вые значения обоих аргументов.

Все записи (элементы таблицы) должны быть разме­ щены в памяти таким образом, чтобы их адрес можно

было

вычислить

как

линейную

функцию

от номера

jXm

+ i.

 

 

 

 

При поиске

узловой

точки по

заданным

значениям

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

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

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

46 Г Л . 1. П О И С К И Н Ф О Р М А Ц И И В З У Ц И Ф Р О В Ы Х М А Ш И Н

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

старших разрядов которого отведена для

записи

в

них

л 'іузл. а группа

младших разрядов — для

записи

в

них

х2узл

. Размещение элементов таблицы

в

памяти

упоря­

дочено по этому

коду.

 

 

 

 

 

Дихотомический поиск узловой точки, соответствую­

щей заданным значениям аргументов Х\

и х2, может быть

выполнен в два

этапа.

 

 

 

 

 

На первом

этапе осуществляется

дихотомический

поиск по близости к числу, сформированному в виде за­ данного Х\ в старших разрядах и нулей в разрядах, отведенных для записи х2. В результате поиска находит­ ся элемент таблицы с минимальным отрицательным от­

клонением аргумента от

заданного

аргумента

Х\,

и из

него выводится значение

х 1 у з л .

 

 

 

На втором этапе осуществляется дихотомический по­

иск по близости к числу,

сформированному в виде

Х\узя

в старших разрядах и х2

в младших

разрядах.

интерпо­

Значение функции вычисляется с

помощью

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

изменения. Однако

при таком способе описания функций

процедура поиска

сильно усложняется, так как

в об­

щем случае дихотомический поиск оказывается

непри­

менимым.

 

 

1.7.3. Таблица, описывающая функционирование ко­ нечного автомата. Конечным автоматом называется ус­ тройство, перерабатывающее входной сигнал х из конеч­ ного множества X возможных входных сигналов в вы­ ходной сигнал у из конечного множества Y возможных выходных сигналов. Функциональная связь между вход­ ными и выходными сигналами не является жесткой и

§ 1.7. П Р И М Е Р Ы П О И С К О В Ы Х С И С Т Е М . Т А Б Л И Ц Ы Ф У Н К Ц И Й

47

зависит от внутреннего состояния конечного автомата. Конечный автомат может находиться в одном из состоя­ ний а из конечного множества А возможных внутренних состояний.

Реакция конечного автомата на входной сигнал за­ ключается в выработке некоторого выходного сигнала и переходе в некоторое новое внутреннее состояние. Как новое состояние, так и вырабатываемый конечным авто­ матом выходной сигнал есть функции двух аргументов: входного сигнала и старого состояния конечного авто­ мата. Таблицы этих функций полностью описывают функционирование конечного автомата и позволяют оп­ ределить его реакцию «а любую последовательность входных сигналов, если известно начальное состояние конечного автомата.

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

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

целыми

числами.

Информация,

относящаяся к каждой

точке, не

должна

в явном виде

содержать аргументы, т.

е. номера старых

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

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

возможные сочетания

состояния

и входного

сигнала,

а для несущественных

сочетаний

записывать

какой-либо

48 ГЛ. 1. ПОИСК ИНФОРМАЦИИ В ЗУ ЦИФРОВЫХ МАШИН

признак, указывающий, что данное сочетание несущест­ венно.

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

совместимого с ним

номера

входного сигнала. Информа­

ция, относящаяся к

каждой

точке, естественно,

должна

в явном виде содержать старое

состояние и

входной

сигнал. В этом случае таблица

конечного

автомата

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

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

ГЛАВА 2

ОСНОВНЫЕ п о н я т и я ТЕОРИИ УПОРЯДОЧЕНИЯ

§ 2.1. Определение и основные характеристики

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

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

ных возможных значений этого признака. На

множестве

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

определено

бинарное

(т. е. действующее только между

двумя произвольными

элементами множества возможных значений признака) отношение порядка или следования. Для числовых зна­ чений признака таким отношением порядка может быть одно из хорошо известных отношений > или •<. Для нечисловых значений признака таким отношением поряд­ ка может быть, например, порядок следования двух слов в лексикографическом смысле.

Для отношения порядка или следования должны вы­ полняться следующие свойства:

1°. Любое возможное значение признака находится в порядке по отношению к самому себе (или может следо­

вать за собой).

 

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

признака

(яі и яг) из одновременной истинности

отношений

«яі находится в порядке по отношению к я2 » и «я 2 нахо­ дится в порядке по отношению к яі» следует совпадение

значений

признака (яі = я 2 ) .

признака

3°. Для любых трех возможных значений

(яі, яг и

я3 ) из одновременной истинности

отношений

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