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

4 Билет

Три основных класса алгоритмических моделей. Эквивалентность математических моделей понятия "алгоритм". Эквивалентность формальных определений алгоритма.

Известно несколько подходов к формализации понятия «алгоритм»:

  • теория конечных и бесконечных автоматов;

  • теория вычислимых (рекурсивных) функций;

  • лямбда-исчисление Черча.

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

5 Билет

Формализация понятия алгоритма. Понятие алгоритма и вычислимой функции. Невычислимые функции. Качественная и количественная теория алгоритмов.

Невычислимые функции – функции, невычислимые ни на одной машине Тьюринга.

Формализация (точное) понятия алгоритма. Для решения широкого круга математических задач достаточно ввёденного на интуитивном уровне понятия алгоритма и его свойств. Достаточно такого подхода и при решении практи­ческих задач программирования компьютеров. Однако, в тех случаях, когда задача оказывается сложной и алгоритмическое решение задачи найти не удается, встает вопрос о ее алгоритмической разрешимости. При этом требуется понятие алгоритма формализовать, т.е. четко определить исполнителя алгоритмов, с помощью которого можно провести доказательство алгоритмической неразрешимости задачи. В первой половине XX века почти параллельно было разработаны несколько подходов к формализации алгорит­мов – рекурсивные функции, абстрактные машины Тьюринга и Поста, λ-исчис­ление, нормальные алгорифмы Маркова, впоследствии оказавшиеся эквива­лентными. Некоторые из этих подходов оказали воздействие на становление информатики и нашли отражение в языках программирования – таких как, Lisp (λ-исчисление), Рефал (НАМ), Ассемблер (МТ), Паскаль, С++ (рекурсивные функции).

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

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

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

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