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

10. Сложность алгоритмов и вычислений

Поскольку понятие рекурсивной функции строгое, то с помощью обычной математической техники можно доказать, что решающая некоторую задачу функция не является рекурсивной, что эквивалентно отсутствия для данной задачи разрешающего алгоритма. Аналогично, отсутствие разрешающей машины Тьюринга или нормального алгоритма для некоторой задачи равносильно отсутствию для нее разрешающего алгоритма. Указанные результаты составляют основу так называемой дескриптивной (качественной) теории алгоритмов. Основным содержанием теории алгоритмов является классификация задач по признаку алгоритмической разрешимости, те есть получения высказываний типа “Задача Х алгоритмически разрешима” или “Задача Х алгоритмически не разрешима”.

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

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

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

    1. Анализ скорости выполнения алгоритмов

Теория сложности изучает сложность алгоритмов. Существует несколько способов измерения сложности алгоритма. Программисты обычно сосредотачивают внимание на скорости алгоритма, но не менее важны и другие показатели - требования к объему памяти, свободному месту на диске. Использование быстрого алгоритма не приведет к ожидаемым результатам, если для его работы понадобится больше памяти, чем есть у вашего компьютера.

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