ВПЕРЁД ⇒
⇐ НАЗАД
Асимптотические обозначение тета-большое
Для алгоритма поиска минимального элемента в массиве размерностью мы получили следующую зависимость для наихудшего и наилучшего случаев входных данных:
, где - линейный порядок роста сложности вычислений алгоритма. То есть функция ведёт себя линейным образом.
Также, на примере этого же алгоритма, были объяснены понятия асимптотических обозначений о-большое и омега-большое.
Таким образом, получаем:
С одной стороны, сложность алгоритма поиска минимального элемента в массиве растёт не быстрей, чем линейная зависимость . С другой стороны, сложность этого алгоритма растёт не медленней, чем аналогичная линейная зависимость . Если рост сложности указанного алгоритма ограничен сверху и снизу линейными зависимостями, то мы точно можем сказать, что и сама оцениваемая функция представляет собой линейную зависимость. Исходя из этого, можем сделать следующее заключение:
Если для функции существует такая функция , что одновременно выполняются два условия , то это эквивалентно записи .
Обозначение , применяющееся в математическом анализе для оценки любой произвольной функции, носит название -нотации/обозначения (нотации тета-большое; big-theta notation). В случае анализа алгоритмов, данная нотация говорит нам о том, что, с ростом размера входных данных, время работы алгоритма увеличивается не быстрей и не медленней, чем порядок роста (то есть в точности как порядок роста), указанный во входном параметре оценки (в данном примере, в точности, как порядок роста ). Иными словами, рассматриваемый алгоритм работает (в контексте скорости исполнения) не хуже и не лучше указанного порядка роста ().
Поскольку для всех функция равна функции с точностью до постоянного множителя (то есть для функции можно подобрать такие множители, благодаря которым эта функция будет ограничивать сверху и снизу функцию ), то говорят, что функция является асимптотически точной оценкой функции .
Аналогично асимптотическим оценкам о-большое и омега-большое, запись говорит о существовании некоторого множества , в котором находится функция .
Для заданной функции запись (которая произносится как “тета-большое от от ”) обозначает множество функций такое, что для всех функций из этого множества можно найти некоторые положительные константы , и такие, что для всех и всех из .
Ниже представлено определение для -нотации в математической символьной форме (расшифровка математической записи идёт сразу следом за самой математической записью):
Определение -нотации
.
Расшифровка математической записи:
Утверджение эквивалентно (равносильно) утверждению, что существуют положительные константы , и такие, что для любых значений , больших или равных , выполняется условие , то есть из выполнения условия следует выполнение условия ,.

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

Однако, вместо использования математически правильной записи "", для удобства обычно используют менее точную (с математической точки зрения) запись "". Эта запись и соответствующий ей выше рисунок интуитивно воспринимаются читателем как: “Для всех значений , лежащих справа от , значения функции больше или равны значениям функции , а также меньше или равны значениям функции “.
Возвращаясь к алгоритму поиска минимального элемента в массиве размерностью и его времени работы , можем сделать очевидный вывод о существовании констант , и таких, что будет выполняться условие для . Например, для , и получаем, что для . Это и означает, что .
В отличие от нотаций "" и "", нотация "" даёт точную оценку (с точностью до множителя) исходной функции , то есть в оценке можно указать только один единственный порядок роста , в точности совпадающий с порядком роста исходной функции. Если в указать порядок роста больший, чем есть на самом деле, то рано или поздно функция пересечётся с нижней границей . И наоборот, если в указать порядок роста меньший, чем есть на самом деле, то рано или поздно функция пересечётся с верхней границей .
Замечание об асимптотической сложности постоянной (константной) функции
Если представляет собой асимптотически точную оценку некоторой функции , то есть для функции существует только один единственный порядок роста , то возникает логичный вопрос:
Каким образом оценивать (выбирать порядок роста) для постоянных (константных) функций вида ?
Выведем ответ на данный вопрос:
.
Таким образом, условимся употреблять для обозначения либо константы, либо постоянной функции по отношению к некоторой переменной. Допустимо также вместо использовать .
ВПЕРЁД ⇒
⇐ НАЗАД
Источники
- Павел Маврин “АиСД, Семестр 1, Лекция 1. Оценка времени. Сортировка слиянием”
- Big O нотация (Wiki)
- Томас Кормен “Алгоритмы. Построение и анализ”. Глава 3 “Рост функций”, параграф 3.1 “Асимптотические обозначения” (стр. 68-78).
Категория
Теги