Нотація Ландау

Матеріал з testwiki
Версія від 22:45, 21 лютого 2025, створена imported>Lxlalexlxl (Деякі важливі класи відношень)
(різн.) ← Попередня версія | Поточна версія (різн.) | Новіша версія → (різн.)
Перейти до навігації Перейти до пошуку
Приклад використання нотації О-велике: f(x)O(g(x)), бо існують L>0 (наприклад, L=1) та x0 (наприклад, x0=5), такі, що f(x)Lg(x) для кожного xx0.

Нотація Ландау — поширена математична нотація для формального запису асимптотичної поведінки функцій. Широко вживається в теорії складності обчислень, інформатиці та математиці.

Названа нотацією Ландау на честь німецького математика Едмунда Ландау, який популяризував цю нотацію.

Відношення «Шаблон:Mvar»

Означення для функцій дійсного (комплексного) аргументу

Через 𝕂 позначимо або . Нехай A𝕂, f,g:A𝕂 і x0 — гранична точка множини A. Через B(x0,δ) позначимо δ-окіл точки x0.

Функція f називається підпорядкованою функції g при xx0, якщо існують дійсні додатні числа L та δ такі, що для довільного xAB(x0,δ){x0} виконується нерівність |f(x)|L|g(x)|.

Для 𝕂= функція f називається підпорядкованою функції g при x+, якщо існують дійсне додатнє число L і дійсне C такі, що для довільного xA(C,+) виконується нерівність |f(x)|L|g(x)|.

Для 𝕂= функція f називається підпорядкованою функції g при x, якщо існують дійсне додатнє число L і дійсне C такі, що для довільного xA{z|z|>C} виконується нерівність |f(x)|L|g(x)|.

Позначення: f(x)=O(g(x)), xx0 або f=O(g), xx0.

Означення для функцій цілого невід'ємного аргументу

Нехай f,g:{0}+. Функція f називається підпорядкованою функції g якщо існують додатнє дійсне число C і натуральне n0 такі, що для довільного nn0 виконується нерівність f(n)Cg(n).

Позначення: f(n)=O(g(n)) або f=O(g).

Також кажуть, що «f зростає не швидше ніж g» або «g є асимптотичною верхньою оцінкою f».

Властивості

  1. Cf=O(f),xx0 для довільного C𝕂.
  2. C=O(1) для довільного C𝕂.
  3. Якщо lim\limits xx0|f(x)g(x)|, то f=O(g),xx0.
  4. Якщо f=O(h),xx0 і g=O(h),xx0, то f+g=O(h),xx0.
  5. Якщо f=O(g),xx0, то f+g=O(g),xx0.
  6. Якщо f1=O(g1),xx0 і f2=O(g2),xx0, то f1f2=O(g1g2),xx0.
  7. Якщо f1=O(g1),xx0 і f2=O(g2),xx0, то f1+f2=O(max(g1,g2)),xx0.
  8. Якщо f=O(g),xx0 і g=O(h),xx0, то f=O(h),xx0. (транзитивність)

Відношення «Шаблон:Mvar»

Означення для функцій дійсного (комплексного) аргументу

Через 𝕂 позначимо або . Нехай A𝕂, f,g:A𝕂 і x0 — гранична точка множини A. Через B(x0,δ) позначимо δ-окіл точки x0.

Кажуть, що функція f підпорядковує функцію g при xx0, якщо існують дійсні додатні числа L та δ такі, що для довільного xAB(x0,δ){x0} виконується нерівність |f(x)|L|g(x)|.

Для 𝕂= кажуть, що функція f підпорядковує функцію g при x+, якщо існують дійсне додатнє число L і дійсне C такі, що для довільного xA(C,+) виконується нерівність |f(x)|L|g(x)|.

Для 𝕂= кажуть, що функція f підпорядковує функцію g при x, якщо існують дійсне додатнє число L і дійсне C такі, що для довільного xA{z|z|>C} виконується нерівність |f(x)|L|g(x)|.

Позначення: f(x)=Ω(g(x)), xx0 або f=Ω(g), xx0.

Означення для функцій цілого невід'ємного аргументу

Нехай f,g:{0}+. Кажуть, що функція f підпорядковує функцію g якщо існують додатнє дійсне число C і натуральне n0 такі, що для довільного nn0 виконується нерівність f(n)Cg(n).

Позначення: f(n)=Ω(g(n)) або f=Ω(g).

Також кажуть, що «f зростає не повільніше ніж g» або «g є асимптотичною нижньою оцінкою f».

Властивості

  1. g=O(f),xx0 тоді й лише тоді, коли f=Ω(g),xx0.
  2. Cf=Ω(f),xx0 для довільного C𝕂{0}.
  3. C=Ω(1) для довільного C𝕂{0}.
  4. Якщо lim\limits xx0|g(x)f(x)|, то f=Ω(g),xx0.
  5. Якщо f=Ω(h),xx0 і g=Ω(h),xx0, то f+g=Ω(h),xx0.
  6. Якщо f=Ω(g),xx0, то f+g=Ω(g),xx0.
  7. Якщо f1=Ω(g1),xx0 і f2=Ω(g2),xx0, то f1f2=Ω(g1g2),xx0.
  8. Якщо f1=Ω(g1),xx0 і f2=Ω(g2),xx0, то |f1|+|f2|=Ω(min(g1,g2)),xx0.
  9. Якщо f=Ω(g),xx0 і g=Ω(h),xx0, то f=Ω(h),xx0. (транзитивність)

Відношення «Шаблон:Mvar»

Означення для функцій дійсного (комплексного) аргументу

Через 𝕂 позначимо або . Нехай A𝕂, f,g:A𝕂 і x0 — гранична точка множини A. Через B(x0,δ) позначимо δ-окіл точки x0.

Функція g називається асимптотичною точною оцінкою функції f при xx0, якщо існують дійсні додатні числа L1, L2 та δ такі, що для довільного xAB(x0,δ){x0} виконується нерівність L1|g(x)||f(x)|L2|g(x)|.

Для 𝕂= функція g називається асимптотичною точною оцінкою функції f при x+, якщо існують дійсні додатні числа L1, L2 і дійсне C такі, що для довільного xA(C,+) виконується нерівність L1|g(x)||f(x)|L2|g(x)|.

Для 𝕂= функція g називається асимптотичною точною оцінкою функції f при x, якщо існують дійсні додатні числа L1, L2 і дійсне C такі, що для довільного xA{z|z|>C} виконується нерівність L1|g(x)||f(x)|L2|g(x)|.

Позначення: f(x)=Θ(g(x)), xx0 або f=Θ(g), xx0.

Означення для функцій цілого невід'ємного аргументу

Нехай f,g:{0}+. Функція g називається асимптотичною точною оцінкою функції f якщо існують дійсні додатні числа C1, C2 і натуральне n0 такі, що для довільного nn0 виконується нерівність C1g(n)f(n)C2g(n).

Позначення: f(n)=Θ(g(n)) або f=Θ(g).

Властивості

  1. f=Θ(g),xx0 тоді й лише тоді, коли f=O(g),xx0 і g=Ω(f),xx0.
  2. f=Θ(g),xx0 тоді й лише тоді, коли g=Θ(f),xx0.

Відношення «Шаблон:Mvar»

Означення для функцій дійсного (комплексного) аргументу

Через 𝕂 позначимо або . Нехай A𝕂, f,g:A𝕂 і x0 — гранична точка множини A. Через B(x0,δ) позначимо δ-окіл точки x0.

Функція f називається знехтуваною у порівнянні з функцією g при xx0, якщо для довільного додатнього ε існує додатнє δ таке, що для довільного xAB(x0,δ){x0} виконується нерівність |f(x)|ε|g(x)|.

Для 𝕂= функція f називається знехтуваною у порівнянні з функцією g при x+, якщо для довільного додатнього ε існує додатнє C таке, що для довільного xA(C,+) виконується нерівність |f(x)|ε|g(x)|.

Для 𝕂= функція f називається знехтуваною у порівнянні з функцією g при x, якщо для довільного додатнього ε існує додатнє C таке, що для довільного xA{z|z|>C} виконується нерівність |f(x)|ε|g(x)|.

Позначення: f(x)=o(g(x)) або f=o(g).

Означення для функцій цілого невід'ємного аргументу

Нехай f,g:{0}+. Функція f називається знехтуваною у порівнянні з функцією g, якщо для довільного додатнього C існує натуральне n0 таке, що для довільного nn0 виконується нерівність f(n)Cg(n).

Властивості

  1. f=o(g),xx0 тоді й лише тоді, коли lim\limits xx0f(x)g(x)=0.
  2. Якщо f=o(g),xx0, то f=O(g),xx0.
  3. Якщо f=o(g),xx0 і g=O(h),xx0, то f=o(h),xx0. Таким чином, o(O(h))=o(h),xx0. Аналогічно O(o(h))=o(h),xx0.
  4. Якщо f1=o(g),xx0 і f2=o(g),xx0, то f1+f2=o(g),xx0.
  5. Якщо f1=o(g1),xx0 і f2=O(g2),xx0, то f1f2=o(g1g2),xx0.
  6. Якщо f=o(g),xx0 і g=o(h),xx0, то f=o(h),xx0. (транзитивність)

Відношення «ω»

Означення для функцій дійсного (комплексного) аргументу

Через 𝕂 позначимо або . Нехай A𝕂, f,g:A𝕂 і x0 — гранична точка множини A. Через B(x0,δ) позначимо δ-окіл точки x0.

Функція f називається домінуючою у порівнянні з функцією g при xx0, якщо для довільного додатнього ε існує додатнє δ таке, що для довільного xAB(x0,δ){x0} виконується нерівність |f(x)|ε|g(x)|.

Для 𝕂= функція f називається домінуючою у порівнянні з функцією g при x+, якщо для довільного додатнього ε існує додатнє C таке, що для довільного xA(C,+) виконується нерівність |f(x)|ε|g(x)|.

Для 𝕂= функція f називається домінуючою у порівнянні з функцією g при x, якщо для довільного додатнього ε існує додатнє C таке, що для довільного xA{z|z|>C} виконується нерівність |f(x)|ε|g(x)|.

Позначення: f(x)=ω(g(x)) або f=ω(g).

Означення для функцій цілого невід'ємного аргументу

Нехай f,g:{0}+. Функція f називається домінуючою у порівнянні з функцією g, якщо для довільного додатнього C існує натуральне n0 таке, що для довільного nn0 виконується нерівність f(n)Cg(n).

Властивості

  1. g=o(f),xx0 тоді й лише тоді, коли f=ω(g),xx0.
  2. f=ω(g),xx0 тоді й лише тоді, коли lim\limits xx0|f(x)g(x)|=+.
  3. Якщо f=ω(g),xx0, то f=Ω(g),xx0.
  4. Якщо f=ω(g),xx0 і g=Ω(h),xx0, то f=ω(h),xx0. Таким чином, ω(Ω(h))=ω(h),xx0. Аналогічно Ω(ω(h))=ω(h),xx0.
  5. Якщо f1=ω(g),xx0 і f2=ω(g),xx0, то f1+f2=ω(g),xx0.
  6. Якщо f1=ω(g1),xx0 і f2=Ω(g2),xx0, то f1f2=ω(g1g2),xx0.
  7. Якщо f=ω(g),xx0 і g=ω(h),xx0, то f=ω(h),xx0. (транзитивність)

Відношення еквівалентності функцій

Через 𝕂 позначимо або . Нехай A𝕂, f,g:A𝕂 і x0 — гранична точка множини A.

Функції f і g називаються еквівалентними при xx0, якщо fg=o(f),xx0.

Означення для функцій цілого невід'ємного аргументу аналогічне.

Позначення: f(x)g(x),xx0 або fg,xx0.

Властивості

  1. Відношення є відношенням еквівалентності на множині функцій.
  2. Нехай для всіх xA{x0} g(x)0. Тоді fg,xx0 тоді й лише тоді, коли lim\limits xx0f(x)g(x)=1.
  3. Якщо f1g1,xx0 і f2g2,xx0, то f1f2g1g2,xx0.
  4. Нехай для всіх xA{x0} f(x)0, g(x)0 і fg,xx0. Тоді для будь-якої функції h:A𝕂 з існування однієї з границь

Шаблон:Center

випливає існування другої границі і їх рівність.
Аналогічно з існування однієї з границь

Шаблон:Center

випливає існування другої і їх рівність.

Приклади

Приклад 1: Нехай f(x)=2x56x215, x і x0=+. Маємо:

|2x56x215|2|x5|+6x2+1515|x5|+15|x5|+15|x5|=45|x5|,

тобто L=45 і ця нерівність виконується для всіх x(1,+).

Звідси f(x)=O(x5),x+.

|2x56x215|2|x5|, тут L=2 і x(2.2,+). Звідси f(x)=Ω(x5),x+.

Отже, f(x)=Θ(x5),x+.

Приклад 2: Нехай n і m цілі числа, z. Якщо nm, то zm=O(zn) при z. Для доведення цього запишемо Шаблон:Center Покладемо δ=10. Тоді |z|>δ означає що |z|mn10mn, оскільки nm. Отже, якщо |z|>10, нерівність |z|mL|zmn| виконується при виборі L=10mn. Також, з аналогічним обмеженням на n та m, ми маємо, що zn=O(zm) при z0 з . Для доведення цього запишемо Шаблон:Center Виберемо, наприклад, δ=3. Тоді, 0<|z|<3 означає, що |z|nm<3nm оскільки nm.

Використання

Нотація Ландау має дві основні сфери використання:

В обох випадках функція g(x) в позначеннях, як правило, вибирається максимально простою без константних множників.

Деякі важливі класи відношень

Шаблон:Main

Графіки деяких поширених функцій.

Нижче наведений список класів функцій, які часто зустрічаються в аналізі алгоритмів. Тут с — додатна константа, n необмежено зростає. Функції, які зростають повільніше, наведені першими.

Нотація Назва Приклад
Θ(1) сталий час Визначенно парності числа (у двійковому запису); Пошук у хеш-таблиці
Θ(loglogn) двічі логарифмічний Час амортизації на одну операцію при використанні обмеженої черги з пріоритетом[1]
Θ(logn) логарифмічний час Двійковий пошук; Швидке піднесення до степеня
Θ((logn)c)
c>1
полілогарифмічний час
Θ(n) лінійний час Пошук найбільшого або найменшого елементу невпорядкованого масиву
Θ(nlogn)=Θ(logn!) лінеаритмічний час Швидке сортування; Сортування злиттям
Θ(n2) квадратичний час Сортування бульбашкою; Сортування включенням
Θ(nc) поліноміальний час Алгоритм Кармаркара для лінійного програмування; Тест простоти AKS
Θ(cn)
c>1
експоненціальний час Вирішення задачі комівояжера за допомогою динамічного програмування
Θ(n!) факторіальний час Вирішення задачі комівояжера повним перебором

Розширення нотації Ландау

У інформатиці іноді використовується позначення Õ (читається як м’яке О): f(n) = Õ(g(n)) це скороченням до Шаблон:Nowrap для деякого k.[2] Іноді для цього використовують O*.[3] По суті, це нотація великого O, яка ігнорує логарифмічні множники, оскільки на швидкість зростання деякі більші функції від великих вхідних параметрів впливають значно більше, що важливіше для прогнозування поганої продуктивності під час виконання. Це позначення часто використовується, щоб уникнути «придирок» до темпів зростання, які вважаються жорстко обмеженими (logk n завжди є o(nε) для будь-якої константи k і будь-якого Шаблон:Nowrap).

Для позначення функцій, які мають час зростання, що залежить від lnn, між поліноміальним та експоненціальним, використовують L-нотацію:

Ln[α,c]=e(c+o(1))(lnn)α(lnlnn)1α,

де c — додатня стала, α[0,1].

Узагальнення для функцій багатьох змінних

Існує декілька узагальнень нотації Ландау для функцій багатьох функцій.[4][5] Одне з них:

Для функції h:0m+, де 0={0}, позначимо Шаблон:Center

Нехай f,g:0m+. Функція f називається підпорядкованою функції g якщо існують додатнє дійсне число C і натуральне n0 такі, що для всіх n1n0,,nmn0 виконуються нерівності Шаблон:Center та Шаблон:Center

Позначення: f(n1,,nm)=O^(g(n1,,nm)) або f=O^(g).

Аналогічно, f(n1,,nm)=Ω^(g(n1,,nm)), якщо існують додатнє дійсне число C і натуральне n0 такі, що для всіх n1n0,,nmn0 виконуються нерівності Шаблон:Center та Шаблон:Center

f(n1,,nm)=Θ^(g(n1,,nm)), якщо існують додатні дійсні числа C1, C2 і натуральне число n0 такі, що для всіх n1n0,,nmn0 виконуються нерівності Шаблон:Center та Шаблон:Center

Для функцій одного аргументу матимемо, що для f(n)0 при деякому n буде O(f(n))=O^(f(n)), Ω(f(n))=Ω^(f(n)) і Θ(f(n))=Θ^(f(n)). Однак, для f(n)=0 при всіх n це не буде вірним.


f(n1,,nm)=o^(g(n1,,nm)), якщо для кожного додатного дійсного числа C існує натуральне число n0 таке, що для всіх n1n0,,nmn0 виконуються нерівності Шаблон:Center та Шаблон:Center

f(n1,,nm)=ω^(g(n1,,nm)), якщо для кожного додатного дійсного числа C існує натуральне число n0 таке, що для всіх n1n0,,nmn0 виконуються нерівності Шаблон:Center та Шаблон:Center

Для функцій однієї змінної відношення o^, ω^ збігаються з відношеннями o, ω відповідно.

Додаткова умова до f^ і g^ дозволяє зберегти деякі корисні властивості.

Властивості

  1. Для довільного C>0 буде Cf(n1,,nm)=O^(f(n1,,nm)).
  2. Якщо f1=O^(g1) і f2=O^(g2), то f1+f2=O^(max(g1,g2)).
  3. Якщо g1 не спадає по всім аргументам і g1(n1,,nm)g2(n1,,nm) при n1n0,,nmn0 для деякого n0, то з того, що f=O^(g1) випливає, що f=O^(g2).
  4. Якщо g1 та g2 не спадають по всім аргументам, то з того, що f1=O^(g1) та f2=O^(g2) випливає, що f1f2=O^(g1g2).

Див. також

Шаблон:Портал

Література

Примітки

Шаблон:Reflist