Інші види аналізу часу, окрім найгіршого, середнього та іншого?


22

Ось кілька способів аналізу часу роботи алгоритму:

1) Найгірший аналіз: тривалість найгіршого випадку.

2) Аналіз середнього випадку: очікуваний час роботи у випадковому екземплярі.

3) Амортизований аналіз: середній час роботи за найгіршою послідовністю випадків.

4) Згладжений аналіз: Очікуваний час роботи на найгіршому випадковому збуреному екземплярі.

5) Загальний аналіз справ: тривалість часу на найгірші з усіх, крім невеликої підмножини примірників.

Моє запитання: Це повний перелік?


2
Я здогадуюсь, що такий перелік ніколи не може бути вичерпним.
Цуйосі Іто

Відповіді:


8

Оптимальність екземпляра - дуже цікава властивість алгоритмів. Можна узагальнити поняття оптимальності примірників і придумати напрочуд цікаві поняття, що включають аналіз найгіршого та середнього випадку.

Хоча це не підпадає під сферу компетенції традиційного алгоритму, він цікавий сам по собі. Ідея у статті Афшані-Барбая-Чана (FOCS '09), який обговорює геометричний алгоритм, вважає продуктивність алгоритму не зважаючи на вхідний порядок (що відповідає їх конкретній проблемі).

Це може бути узагальнено наступним чином: Для кожного алгоритму розділення вводяться в класи еквівалентності і вважають ефективність алгоритму якоюсь колективною статистикою над середньою продуктивністю для кожного з цих класів еквівалентності.

Аналіз найгіршого випадку просто розглядає вхід як окремі класи еквівалентності та обчислює максимальний час роботи. Середній аналіз випадків розглядає тривіальний клас еквівалентності, який є єдиним, що містить усі вхідні дані. У роботі Afshani-Barbay-Chan їх алгоритм є оптимальним, якщо вхід розподілений на класи перестановок (тобто, порядок забуття виконання).

Незрозуміло, чи це призводить до будь-яких нових парадигм аналізу алгоритму. Курс Тіма Рагґардена має чудові мотиваційні приклади та охоплює різні методи аналізу алгоритмів.


Анант, велике спасибі за посилання на курс Тима. Це саме та річ, яку я шукав.
umar

14

У мене є ще два для списку, які дещо схожі.

  1. O(cnnO(1))1<c<2kO(2knO(1))kn

  2. O(nlogn+k)k


8

O(nlogn)

Це схоже на параметризований аналіз для поліноміально-часових алгоритмів, і, схоже, аналіз, залежний від результатів, підпадає до цієї категорії.


Серже, дякую за посилання на допис у блозі Glencora, там багато цікавих коментарів.
umar

7

Існує також аналіз " високої ймовірності " (для рандомізованих алгоритмів), де для будь-якого конкретного екземпляра ви переживаєте про те, наскільки добре ваш алгоритм буде працювати більшу частину часу, але можете повністю відмовитися від невеликої частки часу. Це поширене в теорії навчання.


4

Ви можете додати випадковість до свого алгоритму та поєднати його з усім вищезазначеним. Тоді ви отримаєте, наприклад, очікуваний час найгіршого випадку (найгірший екземпляр, але в середньому за всіма можливими послідовностями випадкових монет перевертається в алгоритмі) і найгірший час роботи з високою ймовірністю (знову ж таки, найгірший випадок, але ймовірність над випадковою монетою перевертається в алгоритмі).


3

Біективний аналіз - це спосіб порівняння двох алгоритмів (Spyros Angelopoulos, Pascal Schweitzer: і оновлення списку під бієктивним аналізом. J. ACM 60, 2013): Приблизно, алгоритм A краще, ніж алгоритм B на входах довжини n, якщо є біекція f входів довжиною n така, що A виконує на вході x щонайменше так само добре, як B на f (x).


1

Конкурентний аналіз

Використовується для порівняння алгоритмів в Інтернеті з алгоритмами роботи офлайн. Дивіться сторінку вікіпедії . Проблема оновлення списку - класичний приклад.


1
Але він не використовується для аналізу "часу виконання алгоритму" .
Jukka Suomela

0

Конкурентоспроможний аналіз В алгоритмі заміни сторінки один метод переважає над іншим за меншою мірою відсутності сторінки. Менше відсутня сторінка ілюструє "менший час роботи". Крім того, конкурентний аналіз - це метод порівняльного порівняння двох методів. Хороший довідник - "ОНЛАЙН КОМП'ЮТЕРНО-КОНКУРЕНТНИЙ АНАЛІЗ" від Аллана Бородіна.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.