Для решения ряда однотипных задач можно использовать чисто механические вычислительные процессы. С их помощью искомые величины вычисляются последовательно из данных величин по определенным правилам. Описание таких процессов принято называть алгоритмами.
Алгоритм – это строгое предписание, определяющее вычислительный процесс как последовательность шагов, которая приводит от изменяемых начальных данных к конечному результату. Это фундаментальное и неопределяемое понятие.
Свойства алгоритмов
2. Массовость: алгоритм должен решать не одну конкретную задачу, а целый класс подобных задач.
3. Элементарность шагов: алгоритм разбивается на этапы, каждый из которых должен быть простым и локальным.
4. Детерминированность: после выполнения очередного этапа однозначно определено, что делать дальше.
5. Результативность: алгоритм должен приводить к решению задачи за конечное число шагов.
Примеры алгоритмов:
1. Нахождение наибольшего общего делителя.
2. Вычисление ранга целочисленной матрицы.
3. Построение ДНФ и КНФ в логике высказываний.
Интуитивное понятие алгоритма позволяет определить является ли данный процесс алгоритмом. Но существуют и алгоритмически неразрешимые задачи, т .е. задачи для которых построить алгоритм в принципе невозможно.
Теория алгоритмов занимается проблемой алгоритмической разрешимости, т. е. определением того, возможно ли вообще построить алгоритм для задач данного типа.
Но для того, чтобы доказать, что алгоритм не существует, надо точно знать, что такое алгоритм.
Начиная с 30-х годов XX века, было предложено несколько уточнений понятия алгоритма. К ним относятся:
- Рекурсивные функции.
- Машина Тьюринга.
- Нормальные алгорифмы Маркова.