Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТА-лекции-2009-10.doc
Скачиваний:
9
Добавлен:
25.12.2018
Размер:
551.94 Кб
Скачать

Теория алгоритмов Алгоритм и его свойства

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

Само слово «алгоритм» происходит от algorithmi – латинской формы написания имени узбекского математика Аль-Хорезми, который еще в IX веке сформулировал правила выполнения арифметических действий. Первоначально под алгоритмами и понима­ли только правила выполнения четырех арифметических действий над многознач­ными числами.

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

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

Алго­ритм можно определить как понятное и точное предписание исполнителю совершить последователь­ность действий, направленных на достижение поставленной цели. Наиболее распространенными являются алгоритмы работы с величинами – числовыми, символь­ными, логическими и т.д.

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

Алгоритм удовлетворяет следующим основным свойствам алгоритмов:

  1. Конечность (дискретность) команд и выполняемых по ним действий алгоритма.

  2. Выполнимость в определенной операционной среде (в определенном классе исполнителей).

  3. Результативность отдельных команд и всего алгоритма.

  4. Применимость алгоритма ко всем возможным входным данным конкретного класса задач.

  5. Определенность (детерминированность) команд и всего алгоритма для всех входных данных.

  6. Формализованное, конструктивное описание (представление) команд алгоритма.

  7. Минимальная полнота системы команд алгоритма.

  8. Непротиворечивость любых команд алгоритма на любом наборе входных данных.

Понятие алгоритма относится к понятиям фундаментальным и неопределяемым. Алгоритмы являются объектом систематического исследования пограничной между математикой и информатикой научной дисциплины, примыкающей к математической логике – теории алгоритмов. Классическая теория алгоритмов не занимается «правилами построения алгоритмов», она занимается проблемой алгоритмической разрешимости. То есть занимается определением того, возможно ли вообще построить алгоритм для решения задач данного типа.

Начиная с 30-х годов 20 века понятие алгоритма подверглось глубокому изучению и уточнению, главным образом, в связи с понятием алгоритмической неразрешимости: для некоторых известных проблем не удавалось найти разрешающего алгоритма. Например, для проблемы четырех красок в теории графов или проблемы установления общезначимости формул логики предикатов. Проблема состоит в том, чтобы выяснить, является ли данная формула логики предикатов выполнимой или общезначимой (тавтологией). Алгоритмического решения данная проблема не имеет, т.е. не существует единого алгоритма применимого ко всем формулам, в соответствии с теоремой Черча:

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

Если доказательством существования алгоритма является само описание решения задачи, то для доказательства его отсутствия нужно уточнить понятие «алгоритм», т.е. «формализовать» его.