Як обдурити евристичну перевірку сюжету?


23

Над тут , Дейв Кларк запропонував , що для того , щоб порівняти асимптотический зростання ви повинні побудувати функції під руку. Як теоретично схильний інформатик, я називаю (редагую) це водообіг як сюжет ніколи не є доказом. По-друге, я повинен погодитися, що це дуже корисний підхід, який навіть іноді недостатньо використовується; сюжет - це ефективний спосіб отримати перші ідеї, а іноді і все, що вам потрібно.

Викладаючи TCS, завжди є студент, який запитує: "Для чого мені потрібно формальне підтвердження, якщо я можу просто зробити X, який завжди працює?" Викладач (-и) повинні вказати та проілюструвати помилковість. Існує блискучий набір прикладів очевидних закономірностей, які в кінцевому підсумку провалюються на math.SE, але це досить математичні сценарії.

Отже, як ви обманюєте евристичну перевірку сюжету? Є деякі випадки, коли відмінності важко визначити, наприклад, наприклад

приклад приклад приклад
[ джерело ]

Зробіть здогадку, а потім перевірте джерело на справжні функції. Але вони не такі вражаючі, як я б сподівався, зокрема, тому що реальні відносини легко помітити лише з функцій, навіть для новачків.

Чи є приклади (відносного) асимптотичного зростання, коли істина не є очевидною з функції definiton, а перевірка сюжету на досить великі n дає вам абсолютно неправильне уявлення? Математичні функції та реальні набори даних (наприклад, час виконання певного алгоритму) вітаються; будь-ласка, утримуйтесь від детально визначених функцій.


2
Власне, я запропонував це як підказку для розуміння проблеми.
Дейв Кларк

@DaveClarke: Я знаю; Я використовував вашу первинну рецептуру лише як провокаційний відкривач. Жодного правопорушення не передбачалося.
Рафаель

Відповіді:


23

Якщо говорити з досвіду, намагаючись визначити швидкість зростання деякої спостережуваної функції (скажімо, час перемішування ланцюга Маркова або час роботи алгоритму), дуже складно сказати фактори з n b . Наприклад, O ( (logn)anbдуже схожий наO(n 0.6 ):O(nlogn)O(n0.6)

сюжет
[ джерело ]

Наприклад, у "Деякі результати несподіваної очікуваної поведінки для упаковки у сміттєві контейнери" Bentley et al., Швидкість зростання порожнього простору для алгоритмів упаковки біт-файлів Best Fit і First Fit під час упаковки рівномірних елементів оцінювали емпірично як n 0,6 і n 0,7 відповідно. Правильні вирази п 1 / 2 Журнал 3 / 4 л і п 2 / 3 .[0,1]n0.6n0.7n1/2log3/4nn2/3


15

Ось ще один (правда, досить побудований) приклад, але все-таки я знаходжу чудовий. Покликано показати, що сюжети можуть бути дуже оманливими для судження про асимптотичний ріст.

fг - розкриті нижче;) - в різних діапазонах. Примітно, що обидві функції монотонно (суворо) збільшуються, (нескінченно часто) безперервно диференціюються і опуклими, тому вони багато в чому «приємні».

Чи можете ви здогадатися, яка з функцій зростає (асимптотично) швидше?

ділянка f і g до 2000 року ділянка f і g до 10000 ділянка f і g до 200 000

Відповідь: , тобто функції асимптотично еквівалентні . Функції f ( x ) =fg

f(x)=x2
g(x)=sin(log(x))+1dxdx=x2(135cos(log(x))+15sin(log(x))).

Так gx2f204

У цьому прикладі ми можемо приховати коливання, розглянувши журнал-журнал-графік:

лог-журнал-графік від f і g до 200 000

Звичайно, це взагалі не допомагає; наприклад, у нас може бути подвійний експоненційний період ...


12

N=(Q,SQ,ЖQ,RQ×Σ×Q)

Мiнiмizе:NЖАDЖА=DетеrмiнizеRеvеrсеDетеrмiнizеRеvеrсе

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

О(н2)О(нжурнал(н))

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

Різниця Квіксорта - це "лише" квадратична проти логарифмічна, що менш ефектно, ніж поліноміальна / експоненціальна різниця. Алгоритм симплекс має аналогічну вражаючу різницю, але його аналіз значно складніший, ніж алгоритм Бжозовського.

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


Вибачте, але я не дуже бачу зв'язку з інтерпретацією графіків функцій.
Рафаель

3
Я припускаю, що ви зробили б щось на зразок продуктивності сюжету порівняно з розміром екземпляра для вибірки екземплярів - і алгоритм Бжозовського буде "виглядати" поліном, якщо ви не вибрали екземпляри, щоб зробити його експоненціальним часом.
Ніл Крішнасвамі

1
Розумію. Це, безумовно, проблема, коли алгоритми бенчмаркінгу та графіки середнього часу виконання, тобто питання побудови правильних даних . Коли я ставив питання, я думав лише про те, щоб правильно інтерпретувати сюжет , який цілком інший звір. Чи можете ви додати цю відповідь до відповіді?
Рафаель

У вас буде однакова проблема для всіх алгоритмів, які мають різну середню та найгіршу поведінку; Приходять в голову Quicksort і Simplex.
Рафаель

8

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

введіть тут опис зображення

Я міг би використовувати поліноми вищого порядку, і обдурити евристичну перевірку сюжету навіть краще, ніж це графік.


2
Це правда. Однак він має і штучний смак. Звичайно, я можу створити зустрічні приклади для студентів таким чином, але не бачу більш скептичного переконання в цьому. Чи існують "природні" явища цього явища (тобто поліноміальні функції вищого ступеня, які можна прийняти за інші функції), де неправильне тлумачення є "фатальним"?
Рафаель

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