• Что такое "асимптотически точная оценка времени работы алгоритма"?

    @throughtheether
    human after all
    Мое авторитетное мнение дилетанта таково.
    Во-первых, имеет смысл ознакомиться с первоисточником по данной теме, а именно со статьей Дональда Кнута. В ней на стр.19 дается удобное, на взгляд автора, определение отношений Θ,O,Ω. Эти отношения первоначально задаются как отношения значений неких двух функций. Оценка временной и пространственной сложности - это приложения. Целью введения такой нотации было упростить вычисление количества операций, требуемых для выполнения алгоритма, без потери качественных характеристик, а также отвязаться от возможных зависимостей от архитектуры, компилятора и т.д. Грубо говоря, если алгоритм обсчитывает 1000 единиц входных данных час, то эта нотация помогает быстро оценить, как долго будут обсчитываться, например, 2000 единиц. Естественно, что эта нотация "огрубляет" информацию о значениях функции, в этом ее предназначение.

    Что такое «асимптотически точная оценка времени работы алгоритма»?
    Если речь идет о Θ-нотации, то это функция (или множество функций), растущая так же быстро, как и время работы алгоритма с увеличением длины входных данных.

    Оценка Θ() существует только тогда, когда O() и Ω() совпадают и равна им.
    Это положение мне представляется частично верным. Если f(n)=O(g(n)) и f(n)=Ω(g(n)), то f(n)=Θ(g(n)), где g(n) - некая функция, например, вида nlogn. Другое дело, что если f(n)=O(n), то также верно, что f(n)=O(n^2), то есть, несмотря на то, что у функции есть Θ-оценка, ее O- и Ω-оценки могут не совпадать.

    Итак, O() - асимптотическая оценка алгоритма на худших входных данных, Ω() - на лучших входных данных
    Если определить "лучшие"/"худшие" данные как требующие минимального/максимального времени среди наборов входных данных такой же длины, то это утверждения мне также представляется частично корректным. Количество операций, которое выполняет алгоритм в худшем, среднем и лучшем случаях - это функции от длины входных данных. Каждую из этих функций можно оценить при помощи каждой из трех (Ω,Θ,O) нотаций.

    Мне представляется разумным такое восприятие оценок:
    f(n)=O(g(n)) - функция f(n) растет не быстрее функции g(n)
    f(n)=Ω(g(n)) - функция f(n) растет не медленнее функции g(n)
    f(n)=Θ(g(n)) - функция f(n) растет так же быстро, как и функция g(n)
    Попробуйте нарисовать график некоей возрастающей функции в логарифмическом масштабе по оси ординат, и представить, где расположены значения функций, корректно оценивающих исходную при помощи Ω,O,Θ нотаций, пользуясь определениями из статьи Кнута и отметив на графике константы C и n0.


    Известно, что например для сортировки qsort средняя оценка для случайного распределения входных данных (она же лучшая, для полностью сбаллансированного варианта) равна Θ(nlogn),
    С моей точки зрения, корректно также будет сказать, что средняя оценка также равна O(nlogn) или Ω(n).

    тогда как верхняя оценка (для специально подобранных неоптимальных данных) равна O(n^2).
    а также равна Θ(n^2).

    Правильно ли будет сказать, что реально асимптотически точная оценка алгоритма дается в первую очередь на основании особенностей работы конкретного алгоритма для усредненных входных данных (понимая под усредненными данными случайно распределенный массив данных), а в сложных случаях - отталкиваясь от оценок сверху O() и снизу Ω()?
    С моей точки зрения, если есть совпадающие оценки O и Ω, элементарно получается Θ-оценка. Другое дело, что "худшая", "лучшая", "средняя" вычислительные сложности - это функции от длины входных данных. Для каждой из этих функций может быть дана оценка асимптотической скорости возрастания, будь то Ω, Θ или O. Рассуждая о "случайно распределенном массиве данных", можно углубиться в матстатистику, что, на мой взгляд, не упростит задачу.

    Пользуясь случаем, рекомендую курс на coursera от Tim Roughgarden. Релевантные видео есть на youtube.
    Ответ написан
    9 комментариев
  • Теорема (связь интеграла и max значения производной)

    slaykovsky
    @slaykovsky
    Это на dxdy с такими вопросами. На тостере никто картинки тебе не будет постить хз откуда. А dxdy умеет их сам рисовать, ибо латех прикручен к форуму.
    З.Ы. Домашку, тем паче по анализу, самому не грех делать. Зорича под пиво и норм. Или Фихтенгольца.
    Ответ написан
    Комментировать
  • Теорема (связь интеграла и max значения производной)

    iiil
    @iiil
    Инженер и вэб-дизайнер, рисую.
    Ну так дерзайте, молодой и светлый ум!
    Ответ написан
    Комментировать