Над здесь , Дэйв Кларк предложил , что для того , чтобы сравнить асимптотический рост вы должны построить функции под руку. Как теоретик, склонный к компьютерным наукам, я называю (ed) это vodoo, поскольку заговор никогда не является доказательством. Во-вторых, я должен согласиться с тем, что это очень полезный подход, который даже иногда используется недостаточно; сюжет - эффективный способ получить первые идеи, а иногда это все, что вам нужно.
При обучении TCS всегда есть студент, который спрашивает: «Зачем мне нужны официальные доказательства, если я могу просто сделать X, который всегда работает?» Его учитель (и) должны указать и проиллюстрировать ошибку. Существует блестящий набор примеров очевидных паттернов, которые в конечном итоге переходят на другой уровень по математике. Но это довольно математические сценарии.
Итак, как вы дурачите сюжетную проверку эвристики? В некоторых случаях трудно различить различия, например
[ источник ]
Сделайте предположение, а затем проверьте источник на предмет реальных функций. Но это не так впечатляюще, как хотелось бы надеяться, в частности потому, что реальные отношения легко заметить по одной функции, даже для начинающего.
Существуют ли примеры (относительного) асимптотического роста, когда истина не очевидна из определения функции, а проверка графика для достаточно большого дает вам совершенно неверное представление? Математические функции и реальные наборы данных (например, время выполнения конкретного алгоритма) приветствуются; пожалуйста, воздержитесь от кусочно-определенных функций.
источник
Ответы:
Исходя из опыта, при попытке выяснить скорость роста некоторой наблюдаемой функции (скажем, времени смешивания цепей Маркова или времени работы алгоритма) очень трудно отличить факторы от . Например, очень похоже на :n b O ( √( журналн )a Nб O(n 0.6 )O ( n--√журналN) O ( n0.6)
[ источник ]
Например, в «Некоторых неожиданных ожидаемых результатах поведения для упаковки бинов» Бентли и др. Скорость роста пустого пространства для алгоритмов упаковки бинов Best Fit и First Fit при упаковке предметов, однородных по была оценена эмпирически как и , соответственно. Правильные выражения: и .п 0,6 л 0,7 л 1 / 2 Журнал 3 / 4 п п 2 / 3[ 0 , 1 ] N0.6 N0.7 N1 / 2журнал3 / 4N N2 / 3
источник
Вот еще один (по общему признанию, довольно сложный) пример, но я все же нахожу замечательным. Он предназначен для того, чтобы показать, что графики могут вводить в заблуждение при оценке асимптотического роста.
Можете ли вы угадать, какая из функций растет (асимптотически) быстрее?
Таким образом, по существу , то есть то же самое, что и , но его вторая производная не является равномерно , но колеблется между и с экспоненциально растущим периодом. Это колебание не видно на обычных графиках.г Икс2 е 2 0 4
В этом примере мы можем демаскировать колебания, рассматривая log-log-plot:
Конечно, это не помогает, в целом; например, у нас может быть вдвое экспоненциальный период ...
источник
Хорошим примером является глубоко волшебный алгоритм минимального DFA Бжозовского. Для конечного автомата можно вычислить минимальный детерминированный конечный автомат:N= ( Q , S⊆ Q , F⊆ Q , R ⊆ Q × Σ × Q )
Это, очевидно, алгоритм экспоненциального времени в худшем случае, поскольку он может взять недетерминированный автомат и дать вам детерминированный (или, что еще более очевидно, он вызывает конструкцию подмножества дважды).
Это касается части «сюжета» «эвристики проверки графика» - мы должны выбрать, какие точки отбирать при рисовании графика, и вы можете обмануть наивный график, если не будете тщательно выбирать точки. Это также верно для других примеров, таких как быстрая сортировка и алгоритм Simplex, но для педагогики я предпочитаю этот алгоритм этим двум.
Разница в быстрой сортировке является «только» квадратичной по сравнению с логарифмической, что является менее впечатляющим, чем разность полиномиальная / экспоненциальная. Симплексный алгоритм имеет столь же впечатляющую разницу, но его анализ значительно сложнее, чем алгоритм Бжозовского.
(Кроме того, я чувствую, что алгоритм минимизации DFA Бжозовского гораздо менее известен, чем заслуживает, но, конечно, это дело вкуса.)
источник
Математическая техника подбора кривой может быть использована для предоставления бесконечного количества ответов на ваш вопрос. Учитывая кривую и диапазон, можно легко найти многочлен, который соответствует кривой с любой степенью точности. Этот пример из википедии показывает, как синусоидальная волна может быть достаточно точно согласована с полиномом четвертого порядка (синяя кривая).
Я мог бы использовать полиномы более высокого порядка и обмануть эвристику проверки графика даже лучше, чем этот график.
источник