Функциональная классификация программ математического обеспечения ЭВМ

Описанные в общих чертах требования к системным про­граммам в основном определяют структуру математическо­го обеспечения ЭВМ, являются синтаксическими требова­ниями. Для пользователя не менее (а, может быть, более) важным является содержание системы математического обеспечения. Обычно в ее состав входят:

1) операционная система;

2) система средств программирования (трансляторы, отладочные программы, собирающие программы);

3) системы программ ввода и вывода информации;

4) система программ поддерживания ОС в рабочем сос­тоянии;

5) система программ управления данными;

6) система испытательных программ;

7) совокупность комплексов прикладных программ. Читатель уже знает, что такое операционная система, трансляторы, программы ввода и вывода. Из программ под­держания в рабочем состоянии операционной системы нуж­но прежде всего назвать программу, с помощью которой операционная система вводится в оперативную память и настраивается на конфигурацию ЭВМ, и те условия, в ко­торых ЭВМ должна применяться. Кроме того, к их числу относятся всевозможные программы, предназначенные для освобождения операционной системы от информации, кото­рая возникла при решении уже завершенных задач и может мешать нормальной работе системы.

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

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

Операционные системы

Самой сложной частью каждой системы математического обеспечения бесспорно является операционная система. Мы уже говорили, что по отношению к программам на язы­ке загрузки операционная система создает тот или иной ре­жим их выполнения. Это, конечно, важнейшая функция операционной системы. Очень важна также система правил, в соответствии с которой, в рамках принятого режима, про­изводится так называемое обслуживание работ. Термин «обслуживание» пришел в теорию программирования из математической дисциплины, называемой теорией массо­вого обслуживания. Заложенная в операционной системе совокупнссть правил обслуживания работ называется дис­циплиной обслуживания. Далее, операционная система осуществляет обмен информацией между ЭВМ и оператором, управляющим ЭВМ. Наконец, операционная система рас­ширяет или видоизменяет набор операций, выполняемых машиной за счет того, что в своем составе содержит спе­циальную библиотеку подпрограмм. Вот важнейшие функ­ции операционной системы.

Сама операционная система состоит из двух основных подсистем. Одна из них реализует стратегию использова­ния машины. Назовем эту подсистему диспетчером[26]. Эта подсистема обеспечивает прогон программ в соответствии с установленными режимом и дисциплиной обслуживания.

Вторая подсистема осуществляет «общение» ОС с опера­тором и обеспечивает осуществление задаваемой им такти­ки применения ЭВМ. Эту систему будем называть суперви­зором. Каждая из указанных систем в свою очередь состоит из ряда подпрограмм (их привыкли называть программами, что неточно).

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

Супервизор состоит из следующих основных блоков, которые, как мы уже сказали, называют программами.

1. Управляющая программа супервизора, координирующая работу остальных его блоков.

2. Программа общения. Расшифровывает приказы оператора, вводимые в ЭВМ с пульта, и осуществляет выдачу информации, получаемой при работе ОС на пульт управления.

Функциональная классификация программ математического обеспечения ЭВМ - student2.ru

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

приказов оператора.

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

Основными частями диспетчера являются следующие.

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

2. Программа обработки прерываний. Получает управление после каждого незамаскиро­ванного прерывания. Считывая содержимое регистра преры­ваний он5 «устанавливает» источник прерывании и передает управление либо ведущей программе супервизора, либо ве-пущей программе диспетчера.

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

Причинами прерываний могут быть:

1 Поступление приказа с пульта управления. В этом случае должен работать супервизор.

2 Сигнал неисправности ЭВМ, поступающий от аппара­туры контроля. Опять управление получает супервизор, для выдачи соответствующего сообщения на пульт управ­ления и последующего останова ЭВМ.

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

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

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

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

7. Сигнал от таймера. Как используется этот сигнал и в каких операционных системах, мы уже знаем.

Теперь читатель представляет себе, правда, в очень общих чертах, работу современной ЭВМ, являющейся мощным наполнителем алгоритмов. Ясно, что для созна­тельного и эффективного применения ЭВМ необходимо глубокое понимание принципов ее работы и построения программ. Такое понимание может быть достигнуто только при наличии хорошо разработанной теории алгоритмов. Кстати, заметим здесь, что анализ коллективов алгоритмов, проведенный в § 10 гл. 8, говорит о том, что в работе ЭВМ могут происходить безрезультатные остановки, являю­щиеся абсолютными или мерцающими тупиками,— явление крайне нежелательное. Это является лишним подтвержде­нием значительности роли аналитической теории алгорит­мов как при разработке ЭВМ, так и при составлении про­грамм.

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

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

Г л а в а 10 АЛГОРИТМЫ

И АВТОМАТИЗАЦИЯ ПРОЦЕССОВ

§ I. Использование ЭВМдля управления

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

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

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

Таким образом, исходными данными для ЭВМ, управ­ляющей объектом, являются сигналы, поступающие от объекта. Результаты переработки этих данных в соответст­вии с алгоритмами (программами), выполняемыми ЭВМ, поступают на объект для управления им. При этом состоя­ние объекта изменяется, новые серии исходных данных поступают в ЭВМ и т. д.

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

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

Интересной особенностью режима реального времени является отсутствие программ пользователя. Все выпол­няемые с помощью ОС в этом режиме программы являются системными. Это связано с теми жесткими требованиями, которые при управлении объектами предъявляются к ЭВМ и ее программам. В некоторых системах задачи управления решаются «на фоне» пользовательских задач.

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

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

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

Как же в таком случае можно применить ЭВМ при управлении людьми? Двояко: 1) для выполнения расчетов в помощь руководящему органу коллектива, чтобы изба­вить руководителей и их помощников от технической ра­боты; 2) для подготовки и группировки информации, как той, которая необходима руководящему органу для при­нятия решений, так и той, которая должна быть направлена исполнителям.

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

Информационные системы

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

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

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

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

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

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

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

Некоторые информационные системы должны работать в режиме коллективного пользования. Для них приме­няются ЭВМ, оснащенные большим числом терминалов. Естественно, что ОС такой информационной системы долж­на обеспечивать режим разделения времени. . Как правило, такие «оперативные» информационные системы выдают сведения непосредственно в том виде, в ка­ком эти сведения в них хранятся.

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

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

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

Как может быть защищена конфиденциальность? Наи­более простым способом ее защиты является система по­стоянно изменяющихся паролей. Для того чтобы записать информацию или прочитать ее, пользователь, кроме собст­венного запроса, должен ввести в ЭВМ свой пароль. При отсутствии или несоответствии пароля ни прием, ни выдача информации не производятся.

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

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

Функционально-структурная схема ОС подобной боль­шой информационной системы приведена на рис. 21. Ха­рактерной особенностью этой ОС является ее приспособ­ленность к накоплению информации, информационному поиску и завершающей обработке выбранной информации. Супервизор ОС принимает введенные в систему запросы, анализирует их и включает в план приказы об их обработке. При составлении плана работы супервизор учитывает также график донесений, выдаваемых систематически в установ­ленные моменты времени. Для этого в составе супервизора имеется специальная программа службы времени, которая должна вести календарный учет времени. В идеальном случае в составе ЭВМ для этой цели должно быть электрон­ное устройство, работающее даже в то время, когда система выключена. В простейшем случае после каждого перерыва в работе ЭВМ супервизор требует сведения, о календарном времени от оператора и в случае, если оказывается, что упу­щены моменты выдачи некоторых донесений, требует при­каза о том, пропустить ли эти донесения или выдать их с опозданием. Запросы, получаемые супервизором, могут содержать вопрос (требование сведений) или новую инфор­мацию, которая должна быть размещена в информационных массивах системы.

Функциональная классификация программ математического обеспечения ЭВМ - student2.ru

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

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

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

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

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

Нужно отметить одну особенность, отличающую инфор­мационные системы, используемые в составе систем управ­ления, от информационных систем, входящих в состав сис­тем информации. Заключается эта особенность в том, что библиотека обрабатывающих подпрограмм в системах уп­равления, как правило, недостаточно полна. Если всевоз­можные задачи, связанные с выполнением расчетов и груп­пировкой сведений, исследованы довольно основательно, то задачи принятия решений (решения, конечно, должны быть «оптимальными» или хотя бы не очень «плохими») пока изучены мало.

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

Подобная «игра в мячик», в которой, с одной стороны, участвует ЭВМ, а с другой — специалист (или группа специалистов), связана с необходимостью сохранения в ЭВМ корректируемых результатов до тех пор, пока не будет получен окончательный результат. В информационной си­стеме должен быть предусмотрен специальный массив кор­ректируемых результатов и программа корректировки. К числу видов «запроса» прибавляется еще один вид: «исправления получаемого результата».

Читатель, может быть, спросит: «Зачем хранить в ма­шине результат, подлежащий корректировке? Ведь его можно с исправлениями ввести в машину». Это было бы очень невыгодно, так как ввод информации осуществляется довольно медленно. Одно дело ввести целый массив информации, а другое — некоторые лаконичные указания о его корректировке.

Может у читателя возникнуть и еще один вопрос: «Как могут люди решать такие задачи, которые нельзя решать на ЭВМ?». Отвечая коротко на этот вопрос, скажем только, что решение многих задач управления люди осуществляют, привлекая для этого огромные запасы информации, накоп­ленные в их мозге в обобщенном виде. Использование этих данных мы называем интуицией и результатами опыта. В информационной системе таких больших и так обобщен­ных сведений просто нет, да и необходимые для их получе­ния алгоритмы еще не созданы. Автор убежден, что в бли­жайшем будущем многие проблемы, доступные только лю­дям, станут доступными и для решения на машинах.

Алгоритмизация процессов

Как известно, автоматизация — это применение машин в области управления. Но тогда оказывается, что проблема автоматизации связана с проблемой разработки алгорит­мов. Программы для ЭВМ — это только некоторая разно­видность алгоритмов. Чем же отличаются алгоритмы, кото­рые нам нужны при управлении, от алгоритмов, которые были нужны для решения различных задач? Да, собственно говоря, и всем, и ничем. Алгоритм — это инструмент управления. Разница между алгоритмами заключается прежде всего в том, на каких языках они сформулированы и на каких языках задаются их исходные данные и полу­чаются результаты. Остальное зависит от того, каковы исполнители алгоритмов. Составляя алгоритм, нужно учи­тывать свойства его исполнителя. Конечно, разница между алгоритмами заключается и в том, какие задачи можно решать с их помощью.

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

Если даже речь будет идти об управлении отдельным объектом, что гораздо проще управления учреждением или управления страной, задача управления звучит крайне туманно: «определить реакцию управляемого объекта на аварийную ситуацию, в результате которой объект выйдет из аварийной ситуации». Это задача? Конечно, задача. Но о чем идет в ней речь? Какая ситуация является аварийной? В чем заключается реакция системы? Все это точно описать в виде одной лаконичной фразы невозможно.

Математика приобрела современную ясность и лаконич­ность в результате многовековых усилий человечества. Естественно, для формулировки новых задач еще нет до­статочно лаконичного и красивого языка. Но есть ли вообще какой-нибудь язык? Оказывается, есть. И это имеет огром­ное практическое значение.

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

Чтобы ее можно было решить, нужно теперь придать этому алгоритму удобную для этого форму. Точнее говоря, нужно на другом языке, который понятен имеющемуся исполнителю, построить алгоритм, эквивалентный данному. Может быть, окажется, что новый алгоритм нельзя реа­лизовать за приемлемое время? Это возможно. Тогда нуж­но искать другой алгоритм, эквивалентный данному и ориентированный на имеющегося исполнителя. Это уже работа математиков и программистов. Они большие ма­стера своего дела и рано или поздно получат (ли?) эффек­тивный алгоритм, если, конечно, это возможно[27]. Первый шаг, во всяком случае, уже сделан, задача точно описана. С одной стороны, кое-кто, может быть, огорчится и ска­жет: «Что же это за постановка задачи — полнее описание процесса ее решения?» Действительно, это не очень корот­ко, не очень красиво и совсем не поэтично. Но это точно. Многие задачи сегодня иначе и нельзя описать.

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

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

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

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

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

Наши рекомендации