Способы записи алгоритмов. Определение алгоритма на основе абстрактных автоматов (машины Тьюринга)

Определение алгоритма на основе абстрактных автоматов (машины Тьюринга)

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

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

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

Функция, для которой существует эффективная процедура ее вычисления на основе рекурсии, называется рекурсивной.

Класс рекурсивных функций тождественен с классом всюду определенных вычислимых функций – тезис Черча.

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

Все частичные функции, вычислимые посредством алгоритмов, являются частично рекурсивными – тезис Клини.

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

Алгоритмические процессы – это процессы, которые может совершать подходяще устроенная «машина».

Под «машиной» в данном случае подразумевается некоторый абстрактный, существующий лишь в воображении автомат.

В общем случае такая машина состоит из следующих частей:

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

- из головки чтения/записи, вдоль которой может перемещаться лента;

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

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

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

Интуитивное понимание машины Тьюринга таково: имеется бесконечная лента, разделённая на клетки. По клеткам ездит каретка. Прочитав букву, записанную в клетке, каретка движется вправо, влево или остаётся на месте, при этом буква заменяется новой. Некоторые буквы останавливают каретку и завершают работу.

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

Графический способ записи предполагает использование определенных графических символов – блоков, каждый из которых обозначает определенный тип действия.

Каждый блок предписывает выполнение определенных действий. Совокупность блоков образует схему алгоритма или блок-схему.

Обозначение некоторых блоков в соответствии с ГОСТ 19.701-90 СХЕМЫ АЛГОРИТМОВ, ПРОГРАММ ДАННЫХ И СИСТЕМ

Наименование символа Обозначение символа Пояснение
Процесс Арифметический блок, определяющий действия, которые необходимо выполнить
Предопределенный процесс Обращение к подпрограмме
Принятие решения Логический блок, проверяющий истинность или ложность некоторого условия
Передача данных Ввод или вывод информации
Прерывание Начало, конец, пуск, останов, вход в подпрограмму
Модификация Организация циклического процесса при известном количестве повторений
Граница цикла Начало и конец цикла. Условие помещают внутри символа в начале или конце в зависимости от расположения операции проверки условия

Блоки соединяются линиями потока информации. Внутри блоков записываются выполняемые действия. Линии со стрелками определяют направление вычислений.

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: