Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Algorytm.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
865.28 Кб
Скачать

5.4. Схема построения алгоритмической системы

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

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

Если объект - число, то его можно записать в десятичной или двоичной форме, т.е. цепочкой символов алфавита {0,1}. Если объект - программа, то она является цепочкой символов в алфавите, содержащем буквы, цифры и специальные символы. Если объект - изображение, то он представляется массивом пикселей, а каждый пиксель - тремя числами (интенсивностями красного, зеленого и синего цветов), т.е. изображение также может быть закодировано строкой символов. Современные высококачественные системы цифровой записи звука показывают, что и этот объект может быть адекватно описан строкой символов. Хотя представление данных - самостоятельная проблема в компьютерных науках, а эффективное представление - это в значительной степени искусство программиста, тем не менее, можно утверждать, что существует универсальный способ представления данных - словами в некотором алфавите.

    Таким образом, можно считать, что алгоритм - это преобразование слов из заданного алфавита: исходное слово перерабатывается (переписывается) алгоритмом в результирующее слово. Каким бы ни был конечный алфавит, любой его символ может быть закодирован с помощью двоичного алфавита. Иначе говоря, входные данные алгоритма могут быть представлены конечной цепочкой битов. То же самое можно сказать и о выходных данных. Конечная цепочка битов может интерпретироваться как целое неотрицательное число.

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

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

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

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

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

С помощью операций действия происходит переход от одного состояния информации о задаче к другому (новому).

Операции распознавания служат для установления тех или других свойств состояния информации для определения порядка выполнения операций действия.

3. Определяется суть алгоритма и алгоритмического процесса. Алгоритм представляет собой конечную совокупность допустимых операций с указанием порядка их применения. Порядок применения допустимых операций определяется однозначно. Алгоритмический процесс - это процесс применения алгоритма к заданному начальному состоянию (входных данных), что разбивается на отдельные этапы и на каждом этапе применяется определенная допустимая операция к состоянию (данных), которое было получено на предыдущем этапе процесса. Устанавливается также правило окончания алгоритмического процесса. Результатом применения алгоритма к начальному состоянию есть заключительное состояние (данные), получающееся после окончания алгоритмического процесса.

Если при применении алгоритма к входным данным правило окончания никогда не применяется, то говорят, что алгоритмический процесс продолжается бесконечно долго и алгоритм не применен к таким входным данным.

Алгоритм считается применимым лишь к тем входным данным, процесс преобразования которых завершается выполнением правила окончания.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]