Разница между средним случаем и амортизированным анализом

Я читаю статью об амортизированном анализе алгоритмов. Ниже приведен фрагмент текста.

Амортизированный анализ аналогичен среднему анализу, поскольку он касающийся стоимости, усредненной по последовательности операций. Однако средний анализ случаев основан на вероятностных предположениях о структурах данных и операциях, чтобы вычислить ожидаемое время работы алгоритма. Поэтому его применимость зависящих от определенных предположений о распределении вероятностей входы алгоритма.

Средняя оценка случая не исключает возможности того, что получить "неудачный" и встретить вход, который требует больше, чем ожидалось времени, даже если предположения о распределении вероятностей входов действительный.

Мои вопросы о фрагменте текста выше:

  • В первом абзаце, как анализ среднего размера "полагается на вероятностные предположения о структурах данных и операциях"? Я знаю, что анализ в среднем случае зависит от вероятности ввода, но что означает выражение выше?

  • Что означает во втором абзаце автор, что средний случай недействителен, даже если входное распределение действительно?

Спасибо!

Ответ 1

  • Чтобы получить среднюю временную сложность, вам нужно сделать предположения о том, что такое "средний случай". Если входы являются строками, что означает "средняя строка"? Имеет ли только длина? Если да, то какая средняя длина строк я получу? Если нет, каков средний символ (символы) в этих строках? Трудно ответить на эти вопросы окончательно, если строки - это, например, фамилии. Какова средняя фамилия?

  • В наиболее интересных статистических выборках максимальное значение больше среднего. Это означает, что ваш средний анализ случаев иногда будет недооценивать время/ресурсы, необходимые для определенных ресурсов (что является проблематичным). Если вы думаете об этом, для симметричного PDF, анализ среднего случая должен недооценивать столько, сколько он завышает. Анализ худшего случая, OTOH, рассматривает только наиболее проблемный случай (ы), и поэтому гарантированно завышается.

Ответ 2

Средний анализ случаев делает предположения о вводе, который может не выполняться в некоторых случаях. Поэтому, если ваш вход не является случайным, в худшем случае фактическое выполнение алгоритма может быть намного медленнее, чем средний случай.

Амортизированный анализ не делает таких предположений, но рассматривает общую производительность последовательности операций, а не только одну операцию.

Вставка динамического массива представляет собой простой пример амортизированного анализа. Один алгоритм состоит в том, чтобы выделить массив фиксированного размера, а при вставке новых элементов выделять массив фиксированного размера двойной старой длины, когда это необходимо. В худшем случае для вставки может потребоваться время, пропорциональное длине всего списка, поэтому в худшем случае вставка является операцией O (n). Тем не менее, вы можете гарантировать, что такой худший случай является нечастым, поэтому вставка представляет собой операцию O (1) с использованием амортизированного анализа. Амортизированный анализ выполняется независимо от ввода.

Ответ 3

  • Рассмотрим вычисление минимума в несортированном массиве. Возможно, вы знаете, что он имеет время работы O(n), но если мы хотим быть более точным, оно сравнивает n/2 в среднем случае. Почему это? потому что мы делаем предположение о данных; мы предполагаем, что минимум может быть в каждой позиции с той же вероятностью.  если мы изменим это предположение, и, скажем, например, вероятность того, что в i-й позиции, например, увеличивается с i, мы могли бы доказать другое сравнительное число, даже другую асимптотическую оценку.

  • Во втором абзаце автор говорит, что при среднем анализе случаев мы можем быть очень неудачниками и иметь средний средний размер, превышающий триотический случай; ссылаясь на предыдущий пример, если нам не повезло в m разных массивах размера n, а минимум - каждый раз в последней позиции, чем мы будем оценивать средний случай n, а не n/2. Это не может произойти, когда доказана амортизированная граница.