книги из ГПНТБ / Каверкин, И. Я. Анализ и синтез измерительных систем
.pdfтов. Кроме того, |
будучи равномерным, т. е. |
основываясь на исполь |
зовании кодовых |
комбинаций постоянной |
длины, он неэкономен. |
В общем случае при длине кодовой комбинации элемента инфор |
||
мации т длина сообщения, содержащего |
k элементов, равна I — |
|
= mk. |
|
|
Равномерные коды удобны простотой декодирования, поскольку нет необходимости в использовании разделительных знаков. Однако при использовании равномерных кодов не удается использовать априорную информацию о статистических характеристиках множе ства элементов информации. Учитывая статистические свойства кодируемого множества элементов информации, можно уменьшить (решить задачу минимизации) среднее число двоичных символов, требующихся для выражения одного элемента информации или, точнее, одного символа исходного алфавита, что обеспечивает умень шение (минимизацию) необходимого объема памяти. Коды, в ко торых кодовые комбинации, выражающие символы исходного ал фавита, имеют различную длину, носят название неравномерных. Очевидно, что символам, характеризующимся малой вероятностью появления, целесообразно ставить в соответствие более длинные кодовые комбинации, а символам с большой вероятностью — ко роткие. Доказано, что сообщения, составленные из символов не которого алфавита, можно закодировать так, что среднее число двоичных символов, выражающих символы исходного алфавита, будет сколь угодно близко к энтропии сообщений, но не меньше.
Как известно, энтропия определяет неопределенность исходного состояния или количество информации, необходимой для ликви дации неопределенности. Таким образом, теорема о минимальных длинах кодовых комбинаций символов исходного алфавита позво ляет решать задачу построения эффективных кодов строго, на объек тивной основе.
Разработкой эффективных кодов применительно к различным задачам обработки информации занималось большое число специа листов. Широко используются эффективные коды Шеннона—Фано и Хаффмена. Алгоритмы получения этих кодов неоднократно из лагались (см., например, [26]), и мы их приводить не будем. Отме тим, однако, что принцип неравномерного кодирования требует рассмотрения одного важного аспекта, связанного с декодирова нием. Именно, должна быть решена проблема разделения кодовых комбинаций, соответствующих символам исходного алфавита, по скольку использование разделительных знаков ведет, по существу, к потере эффекта устранения избыточности.
Указанная проблема решается с помощью такого построения эффективных кодов, когда ни одна кодовая комбинация не совпа дает с началом более длинной комбинации. Подобные коды назы ваются префиксными. К их числу относятся и упомянутые коды Шеннона—Фано и Хаффмена.
Изложенное позволяет составить лишь самое общее представ ление о принципах формализации информации в целях обеспечения
40
возможности ее обработки с помощью технических средств. Доба вим к сказанному, что в настоящее время широко используются методы помехоустойчивого кодирования, т. е. кодирования, учиты вающего воздействие помех и, по возможности, устраняющего его. Такие коды называют корректирующими. Рассмотренный выше восьмиразрядный равномерный код представления букв русского алфавита и арабских цифр с контрольной единицей, дополняющей общее число до четного, относится к корректирующим.
В системотехнике задаче кодирования при формализованном представлении информации, входящей в тезаурус, предшествует установление множества элементов информации, включаемых в те заурус. К этому множеству относятся перечни и характеристики требований, ограничений, условия задач и технических реше ний.
Затем все элементы информации кодируются и заносятся в па мять, которая называется применительно к подобным задачам ав томатическим или машинным словарем [15].
Организация исходной информации в виде автоматического словаря требует решения второй важной задачи — поиска инфор мации, или поиска по словарю. Поиск по словарю является одной из важнейших операций, применяемых при обработке информации на ЭВМ. Непосредственно на поиск информации, как правило, рас ходуется значительная часть машинного времени, отведенного на решение задачи в целом.
Одной из основных характеристик операции поиска является среднее время поиска одного слова (Тср п) в словаре. Эта характе ристика зависит от структуры машинного словаря и способа адре сации. Под организацией словаря (структурой) обычно понимается принцип его построения, т. е. размещение элементов информации в ячейках памяти. Оптимальная организация словаря соответст вует минимальному значению Тср.п. Организация машинного сло варя существенно зависит от количества и объема элементов инфор мации. Большое количество элементов информации усложняет адресацию, а значительный объем информации, приходящийся на каждый элемент, не позволяет разместить его в одной ячейке. Воз никает необходимость в использовании двухступенчатых процедур поиска и извлечения информации из ЗУ.
Организация словаря и способ адресации к нему взаимозависимы и, в свою очередь, могут быть связаны со способом кодирования символов алфавита и элементов информации.
Из сказанного следует, что создание машинного словаря требует решения следующих задач: кодирования элементов информации; кодирования адресов; разработки структуры словаря и способа адресации.
Все эти задачи решаются во взаимосвязи и с учетом характе ристик ЗУ — количества адресов и емкости каждой запоминающей ячейки. Емкость ячеек существующих быстродействующих ЗУ с произвольным обращением невелика и ограничивается 36—48 дво
41
ичными разрядами. Для размещения кодовой комбинации, соот ветствующей одному элементу информации со всей сопровождаю щей информацией, этого часто не хватает. Поэтому основная инфор мация может храниться во внешних накопителях, а в ячейки бы стродействующего ЗУ помещается лишь ее адрес (адресная привязка). Тогда процедура извлечения всей необходимой инфор мации становится двухступенчатой: по адресу — вхождение в бы стродействующее ЗУ, а по дополнительной адресной привязке — вхождение во внешнюю память с извлечением всей информации, соответствующей данному элементу.
Организации памяти ЦВМ и способом адресации посвящено большое число работ. В частности, с достаточной полнотой эти во просы изложены в [15, 1&].
Вцелом задачи кодирования и организации хранения больших массивов информации решаются с общих позиций, и обеспеченность системотехники, и в частности теории проектирования ИИС, можно считать удовлетворительной.
Мы рассмотрели кодирование числовых массивов и содержатель ных описаний. Ниже мы рассмотрим и кодирование структур, но предварительно остановимся на принципах представления алго ритмов.
Внастоящее время для описания алгоритмов служат специали зированные, так называемые алгоритмические, языки, обеспечи вающие возможность представления используемых вычислительных процедур в виде, удобном для автоматизации программирования. При этом для различных задач применяются различные языки, число которых достигает нескольких сотен и непрерывно увеличи вается. Это объясняется тем, что бурное развитие методов количе ственного анализа на основе ЭВМ привело к пересмотру взглядов на формальный аппарат, лежащий в основе такого анализа. Если еще сравнительно недавно инженерная методика расчета предпо лагала наличие компактных и удобных в реализации аналитических соотношений, то в настоящее время целью разработчиков такой методики является создание алгоритма. Именно для описания ал горитмов создаются специальные языки, которые позволяют пред ставлять вычислительные процессы с учетом их динамики. По скольку различные задачи (инженерные, экономические управ ленческие и т. п.) требуют для своего решения использования раз личных методов, разработка большого числа алгоритмических язы ков становится необходимостью. Как все формализованные языки, алгоритмические языки включают в свой состав набор элементар ных символов (алфавит), из которых составляются слова (выраже ния, кодовые комбинации), набор формальных правил действия над словами и выражениями (синтаксис), а также указание значе ний этих выражений (семантика). Правила строго формальны, т. е. выполняются без учета содержания выражений.
Наиболее известны и распространены три языка: ФОРТРАН, КОБОЛ и АЛГОЛ.
42
ФОРТРАН (Formula Translator) представляет собой язык для инженерных расчетов главным образом численных задач на малых вычислительных машинах.
КОБОЛ (Common Business Orientid Language) предназначен для решения экономических задач, характеризующихся большими массивами исходной информации.
АЛГОЛ (Algoritmic Language) наиболее распространен в силу своей универсальности и достаточно широких возможностей.
Последнее время повысился интерес к методам описания систем и разработке соответствующих языков. Представляет интерес алго ритмический язык АЛ ГОС (алгоритмическое описание систем), предложенный для удовлетворения требований системотехники и основанный на идее последовательной формализации.
Рассмотрение любого алгоритмического языка связано с исполь зованием некоторого метаязыка для введения необходимых первич ных определений. При этом используется ограниченная совокуп ность металингвистических понятий и формул. К их числу чаще всего относятся понятия «постоянная» и «переменная», операции перечисления и составления, а также формула «равно по определе нию». Примером метаязыка может служить метаязык Бэкуса, ис пользовавшийся для описания АЛГОЛ-60 [7]. В металингвисти ческих формулах в левой части пишется определяемое понятие, а
вправой — определяющее его выражение. Разделяются левая и правая части символом:: = , имеющим смысл «равно по определению».
Вкачестве постоянных величин в формулах выступают основные символы описываемого языка, а в качестве переменных — более общие понятия (слово, оператор и т. п.). Эти понятия заключаются
вугловые скобки <7 >> и называются металингвистическими пе ременными, на место которых в металингвистической формуле мо жет быть поставлено любое конкретное их значение.
Вкачестве примера приведем две формулы, использующие опе рации перечисления и составления:
< х > : : = A \ B \ C \ D . . . ; < л :> : ; =АВС .
Первая формула |
читается так: |
«переменная < » равна по |
определению или А, |
или В, или С, |
или . . . ». Здесь вертикальная |
черта выражает логическое «ИЛИ». Вторая формула читается сле дующим образом: «переменная равна по определению АВСу>. Последовательное написание двух символов выражает логическое «И». При построении металингвистических формул применяется и объединение операций перечисления и составления.
Теперь можно компактно охарактеризовать конкретные алго ритмические языки, представляющие интерес для современной теории проектирования ИИС. Поскольку при алгоритмическом описании систем применяются как формульные, так и универ сальные языки, приведем основные данные языков ФОРТРАН и АЛГОЛ-60.
43
ФОРТРАН. Алфавит ФОРТРАН включает в свой состав 26 заглавных букв латинского алфавита, 10 арабских цифр, 5 симво лов операций и некоторые знаки препинания.
Именно:
< б у к в а > : : = A \ B\ C \ D \ E \ F \ G \ H \ I \ J \ K \ L \ M \ N \ 0 \ P \
|
\ Q \ R \ S \ T \ U \ V \ W \ X \ Y \ Z \ - , |
|
< ц и ф р а > : : = 0 11 I 2 I 3 14 15 16 I 7 18 19 ; |
||
<<операция>>: : = + | — | * | / |
| ** ; |
|
< з н а к > : : = |
: = |( |) . |
|
Таким образом, для символа может быть составлена следующая |
||
формула: |
|
|
< с и м в о л > : : = < б у к в а > |< ц и ф р а > |< о п е р а ц и я > | |
||
|
|
|< з н а к > . |
Символы операций |
имеют следующий смысл: «+» — сложить; |
|
«—» — вычесть; «*» —■умножить; |
« \» — разделить; «**» —' воз |
|
вести в степень. |
|
|
Знаки, входящие в алфавит языка ФОРТРАН, выполняют функ ции, близкие к функциям аналогичных знаков естественных языков. Заметим лишь, что знак : = выражает операцию присваивания, т. е. запись а : = Ь означает, что идентификатору а присваивается зна чение выражения Ь.
Язык ФОРТРАН позволяет описывать в качестве объектов, над которыми выполняются действия, значения, переменные и функции. Из значений, переменных, функций и операций составляются вы ражения. Выражение, как и идентификатор, может принимать раз личные значения, определяемые значениями входящих в него опе рандов.
Описание действий производится с помощью операций и, глав ным образом, операторов: присваивания, перехода, останова и др.
В целом алгоритмический язык ФОРТРАН оказывается весьма эффективным для инженерных расчетов. Однако отсутствие воз можности выполнения логических операций ограничивает область применения ФОРТРАНА.
Существенно богаче возможности универсального алгоритмиче ского языка АЛГОЛ-60. Алфавит АЛГОЛ содержит 116 символов:
1. < буква > : : = А [ В | С | . . . \ a \ b \ c \ . . . | z;
2.< ц и ф р а > :: = 0 |1 |2 |3 |4 |5 |6 |7 |8 |9 ;
3.<логическое значение> :: = true | false;
4. < разд ели тел ь > :: = , | • 1101: | ; | —■| step | until | while |
I comment |: : = ;
5. |
<• арифметическая операция |
1— | х | / |
1-f-1t ; |
6. |
< :логическая операция> : : = = |
|=) | V ІА I |
і ‘> |
44
7. ^операция отношения> : : = < I |
I= |
IО I > I Ф ; |
8. операция последовательности > : : = |
go |
to j if | then | else ] |
|
|
J for I do; |
9.< ск о б к а > — ( |) |1 |] |< ^ |> | begin | end ;
10.<описание>-: : = own | boolean j integer | real | array | switch |
Jprocedure;
11. < спецификатор > : : = string | label | value.
В результате алфавит может быть описан таким образом:
< с и м в о л > : := < б уква > |< ц и ф р а > |< л о ги ч еско е значение>
|< р азд ел и тел ь > |. . . |-<спецификатор)>.
В отличие от алфавита языка ФОРТРАН здесь используется 52 буквы латинского алфавита — строчные и заглавные. Больше арифметических операций: добавляется операция «деление нацело», выражаемая символом
Важным дополнением в языке АЛГОЛ является включение в его алфавит логических значений true (истинно) и false (ложно) и, со ответственно, логических операций. В результате на языке АЛГОЛ могут быть записаны не только арифметические, но и булевы вы ражения.
Характерной особенностью языка АЛГОЛ является наличие в нем так называемого оператора цикла. Оператор цикла указывает на необходимость многократного выполнения некоторого следую щего за ним оператора, причем перед очередным повторением не которой управляемой переменной присваивается каждый раз но вое значение. Наконец, важнейшей грамматической категорией языка АЛГОЛ являются процедуры. Процедура представляет со бой некоторую последовательность команд, снабженную заголов ком, включающим в себя описание параметров, идентификаторы и необходимые пояснения. За заголовком следует тело процедуры, т. е. конкретный блок, представляющий всю последовательность операций.
Возможность введения процедур делает АЛГОЛ открытым язы ком, т. е. позволяет по мере необходимости расширять язык, добав ляя описания процедур и вводя операторы этих процедур в состав основного словаря языка. Допустимо также создание^ диалектов, т. е. самостоятельных языков, составленных частично из основных символов и частично из операторов процедур.
Совместное рассмотрение специфики процесса проектирования сложной многофункциональной информационной измерительной системы (например, на основе графа проектирования) и методов формализованного представления исходных и промежуточных дан ных показывает, что непосредственное использование известных принципов кодирования и алгоритмических языков типа ФОРТРАН и АЛГОЛ не обеспечивает приемлемого для практики решения
45
проблемы. Пожалуй, только 2-й и 4-й подэтапы процесса проекти рования при полной автоматизации их выполнения могут быть обеспечены формализованным представлением информации на ос нове рассмотренных выше принципов: кодирование данных — ввод в память; алгоритмизация — автопрограммирование.
Подавляющее большинство подэтапов требует для своего вы полнения обращения к эвристическим процедурам принятия реше ния, поскольку из процесса формулирования целей, распознавания и отбора ценной информации, кодирования, декодирования, полу чения и оценки новых решений нельзя устранить человека. Отсюда следует, что организация проектирования должна быть приспособ лена к возможностям и особенностям проектировщика, участвую щего в переработке информации. Опыт алгоритмизации таких слож ных процедур, как проектирование, показывает, что наибольшие трудности связаны с созданием математической модели, когда осу ществляется длительный и интенсивный обмен информацией между различными специалистами. После этого наступает также весьма важный и трудоемкий этап систематизации исходной информации, первичного ее кодирования и перекодирования на машинные языки.
Для обеспечения подобной работы специалиста, занимающегося данным видом информационной техники, необходимо обеспечить алгоритмическим языком, позволяющим строить математическую модель на основе исходного содержательного описания системы. Этот язык должен быть снабжен совокупностью правил кодирова ния исходных данных при вводе в машину и системой автопрограм мирования для расшифровки описания и получения искомых ре зультатов.
Поскольку известные формальные алгоритмические языки не обеспечивают возможности решения перечисленных задач, для опи сания сложных систем и процессов изыскиваются новые принципы, лежащие на стыке эвристических и алгоритмических описаний. Так, в основу языка АЛГОС [14] положена идея последовательной формализации. Иначе говоря, разрабатывается система уровней обобщенного языка, обеспечивающая возможность перехода от со держательного описания к формализованному в той степени, кото рая соответствует объему и характеру исходной информации, вы ставленным требованиям и заданным целям. Доля эвристических элементов языка уменьшается от уровня к уровню. Переходы с уровня на уровень производятся в соответствии с решаемыми зада чами и степенью «наработанности» информации.
Вязыке АЛГОС выделены следующие основные уровни:
1.Нулевой уровень — язык унификации. Язык близок к языку научных публикаций, однако введены унификация и существенные ограничения по символике и форме представления информации. Обработка информации производится вручную или полуавтомати чески.
2.Первый уровень — язык кодирования. Более формален и обеспечивает возможность кодирования информации и организо
46
ванной ее обработки вручную или полуавтоматически. Предусмат ривается устранение неоднозначности обозначений.
3. Второй уровень — язык автопрограммирования (эталонный). Близок к языку АЛГОЛ-60 с изменениями и дополнениями, необ ходимыми для описания систем. Информация обрабатывается ав томатически.
4. Третий уровень — язык инженерных вычислений. Приспо соблен к возможностям малых машин.
Особенностью языка АЛГОС является списочное представление информации, т. е. широкое использование /г-списков, предназна ченных для кодирования структур (структурных схем). Элементами /е-списков являются последовательности узлов кодируемых схем. Пара соседних идентификаторов характеризует соответствующую
Рис. 2-1. Структурная схема аналога- |
Рис. 2-2. Схема подвклю- |
вого коррелометра |
чения датчиков к корре |
|
лометру |
связь. Считается, что связь ориентирована от левого идентифика тора к правому. Между идентификаторами, характеризующими на правленную связь, ставится разделитель, в качестве которого может выступать любой удобный символ: ( О, ■ и др. Элементы списка также отделяются специальными разделителями.
Рассмотрим в качестве примера структурную схему простейшего аналогового коррелометра, представленную на рис. 2-1. Исследуе мый случайный процесс через входное устройство (ВУ ) поступает на перемножающее устройство (ПУ) непосредственно и через ли нию задержки (Л З ). После перемножающего устройства сигнал с помощью интегрирующего звена (И) сглаживается и попадает на компаратор (К), где и сравнивается с образцовой величиной, фор мируемой мерой (М ). Результат измерения поступает в блок пред ставления информации (БПИ), обеспечивающий представление результатов измерений в требуемом виде.
Данную структурную схему можно описать с помощью следую
щего ^-списка: |
ВУ : ПУ; ВУ : |
ЛЗ; ЛЗ : ПУ; ПУ : И; И : К; |
М : К; К : БПИ. |
В сочетании со |
списком идентификаторов этот |
/е-список позволяет однозначно закодировать описание структур ной схемы.
Кодирование ^-списками позволяет выразить весьма сложные структурные построения. Различая в структурных схемах пере ключательные и непереключательные блоки, можно представлять
47
не только последовательность соединений блоков, но и различные варианты соединений. При этом перечень идентификаторов, лежа щий в основе кодирования и декодирования, должен быть пополнен правилом переключения. Удобно использовать для этой цепи ло гическую переменную р, принимающую одно из двух возможных значений, 0 или 1. Переключательные блоки при составлении 6-списков кодируются парой последовательностей, отображающих два возможных сопряжения элементов.
Предположим, что рассмотренный выше коррелометр предназна чен для изучения случайных процессов, формируемых двумя раз личными датчиками Д1 и Д2. На рис. 2-2 приведена структурная схема подключения этих датчиков к входному устройству с помощью переключателя (Я). Обозначим возможные состояния переключа
тельного блока идентификаторами р и р (не р). Тогда, кодируя сое динение первого датчика с входным устройством сочетанием ДІрВУ,
а соединение второго — сочетанием Д2рВУ, мы отобразим не только наличие этих соединений, но и невозможность их одновременного
выполнения (либо р, либо р). Таким образом, каждый переключа
тельный блок рассматривается как двойной, р и р. Описание струк турной схемы коррелометра с двумя датчиками, соединяемыми че рез переключатель, может быть представлено в следующем виде:
Д1 р ВУ; Д 2рВ У ; ВУ : ПУ; В У :Л З; ЛЗ : ПУ; ПУ : И ;
И : К; М : К; К : БПИ.
Очевидно, что эта запись отображает два возможных состояния:
Д1 р ВУ; ВУ : ПУ; ВУ : ЛЗ; ЛЗ : ПУ; ПУ : И; И : К; М : К;
К : БПУ
и
Д2 р ВУ; ВУ : ПУ; ВУ : ЛЗ; ЛЗ : ПУ: ПУ : И; И : К; М : К;
К : БПУ.
Расчленение схемы может быть более сложным, и для его коди рования может понадобиться либо целая совокупность переключа тельных блоков, либо использование более сложных правил преоб разования элементов 6-списков.
Рассматривая 6-списки как алгебраические выражения, можно ввести целесообразные алгебраические операции, использование которых упрощает кодирование, устраняет избыточность и расши ряет возможности отображения структур и их функционирования.
Так, например, параллельное разветвление блоков может быть отображено тождеством А : В, А : С = А {В, С). Тогда пара сое динений ВУ : ПУ; ВУ : ЛЗ может быть в рассмотренном примере представлена в виде кодовой комбинации ВУ (ПУ, ЛЗ). Последо вательное соединение блоков А, В я С может быть представлено сочетанием А : В : С. И, следовательно, соединения П : И. И ; К
48
могут быть описаны кодовой комбинацией П : И : К- Подобные правила, как уже указывалось, существенно расширяют возмож ности к-списков, которые, вообще говоря, могут рассматриваться как функции, для которых определены допустимые операции.
Таким образом, дополняя аппарат формализованного представ ления информации A-списками и вводя различные уровни формали зации (язык АЛ ГОС), мы получаем возможность привести в соот ветствие объем и характер используемой информации, преследуе мые на каждом этапе цели, с уровнем и степенью формализации об рабатываемых массивов.
До настоящего времени, рассматривая вопросы формализован ного представления априорной и промежуточной информации, об рабатываемой в процессе проектирования, мы имели в виду обеспе чение возможности получения количественных оценок и выработки на их основе суждений и решений о принципах построения систем и о закладываемых на основе расчетов технических решений. Ко дирование и программирование (запись на алгоритмическом языке) предусматривает в качестве непосредственного «потребителя» ин формации расчет.
Однако громоздкость систем, сложность взаимодействия под систем и их реакции на воздействия, многообразие взаимодейст вующих факторов и объектов очень часто не позволяют разработать эффективные алгоритмы расчета. Допущения, аппроксимации и ограничения, вынужденно вводимые в процессе построения мето дики расчета, делают его порой бесцельным. Не менее трудно бы вает организовать экспериментальное исследование сложной си стемы, причем в этом случае не приходится говорить о переборе вариантов, об оптимизации системы. Эксперимент требует создания образца и воспроизведения многообразных условий его работы. Широко известный метод исследования физических явлений и объек тов на основе физического моделирования, базирующийся на прин ципе подобия, в данном случае нереализуем.
Выход находится в применении так называемого машинного мо делирования, т. е. воспроизведения алгоритма функционирования исследуемой системы (устройства) с помощью ЭВМ. Этот метод ока зывается весьма эффективным при оценке различных вариантов сложной системы на стадии ее проектирования.
Продолжим рассмотрение вышеприведенного примера, оценив сложность определения метрологических характеристик коррело метра, предназначенного для измерения значений корреляционных функций случайных процессов различных классов. Функциониро вание коррелометра, структурная схема которого приведена на рис. 2-1, основано на усреднении по времени с использованием од ной реализации случайного процесса. При этом точность измерений значений корреляционной функции существенно зависит от класса процесса: стационарный или нестационарный, эргодический или неэргодический, характера нестационарности или неэргодичности (если процесс нестационарный или неэргодический), спектра про-
3 Заказ № 171 |
49 |
