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

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

Однако, вместо использования математически правильной записи "", для удобства обычно используют менее точную (с математической точки зрения) запись "". Эта запись и соответствующий ей выше рисунок интуитивно воспринимаются читателем как: “Для всех значений , лежащих справа от , значения функции больше или равны значениям функции “.
Возвращаясь к алгоритму поиска минимального элемента в массиве размерностью и его времени работы , можем сделать очевидный вывод о существовании констант и таких, что будет выполняться условие для . Например, для и получаем, что для . Это и означает, что .
Итак, когда мы встречаем в тексте запись "", то это означает, что нами рассматривается условие . Если - максимальное из возможных значений константы , при котором всё ещё соблюдается указанное условие, то из этого очевидным образом следует, что данное условие будет соблюдаться для любого значения такого, что . То есть мы можем вплоть до нуля уменьшать значение (начиная со значения ), и получаемая по мере уменьшения этого параметра функция будет всё сильней и сильней отдаляться от оцениваемой функции , что в свою очередь будет означать, что мы просто расширяем область, охватываемую множеством , а сама функция всё также будет оставаться в этом множестве. Из этого можно сделать ещё один вывод: множество может быть каким угодно большим, главное, чтобы в это множество попадала исходная функция .

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

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