Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Алгоритмы вокруг нас.doc
Скачиваний:
3
Добавлен:
01.05.2025
Размер:
13 Мб
Скачать
☆

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

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

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

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

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

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

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

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

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

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

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

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