Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Что означает O(log(log(n))))-конкурентоспособность)?

Автор вопроса: unj2Ответов: 2

Я просматривал некоторые структуры данных и заметил временную сложность: O(log(log(n))))-competitive.

Я читал, что константно-конкурентным было соотношение ожидаемого времени/оптимального времени. Но что значит иметь набор-конкурс?

  • Можете ли вы улучшить вопрос? Peter Stuifzand 30.05.2009
  • Можете ли вы улучшить его хотя бы на O(log(log(N)))? Mitch Wheat 30.05.2009

algorithmtime-complexity

Ответы

Ответ 1 · рейтинг 13 · kanak

Онлайн-алгоритм - это алгоритм, который не знает заранее свои входные данные и должен "реагировать" (в некотором смысле) на непредсказуемые входные данные. Напротив, автономные алгоритмы - это те, которые заранее знают все свои входные данные.

Конкурентный анализ сравнивает производительность оптимального онлайн-алгоритма с оптимальным офлайн-алгоритмом. Таким образом, k-конкурентный означает, что существует автономный алгоритм, который работает не более чем в k раз хуже, чем онлайн-алгоритм. Таким образом, O(lglgn) конкурентоспособность означает, что оптимальный автономный алгоритм работает не более чем в lglgn (умноженное на константу) раз хуже, чем оптимальный онлайн-алгоритм.


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

Ответ 2 · рейтинг 1 · Nick Dandoulakis

Это может пролить свет на ваш вопрос.
Из приведенной выше ссылки:

Пусть A - любой алгоритм BST, определим A(S) как стоимость выполнения последовательности S и OPT(S, To) как минимальную стоимость выполнения последовательности S. Алгоритм A является T-конкурентоспособным, если для всех возможных последовательностей S A(S) ‹= T * OPT(S, To) + O(m, n).

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы