Нет, вы не можете превзойти запросы . Я объясню, как формализовать набросок доказательства exfret этого, таким образом, который работает для адаптивных алгоритмов. Это все ожидается в ответе exfret; Я просто заполняю некоторые детали.Θ(n−−√)
Рассмотрим любой (возможно, адаптивный) алгоритм, который выдает последовательность запросов, где каждый запрос либо «выбирает й край списка смежности вершины », либо «проверяет связаны ли вершины ребром». Можно предположить, что ни один запрос не повторяется, так как любой алгоритм, который повторяет запрос, может быть преобразован в алгоритм, который никогда не повторяет какой-либо запрос. Точно так же мы можем предположить, что алгоритм никогда не выполняет запрос на соединение по любой паре вершин, которые, как известно, уже связаны ребром (а именно, проверяют когда был ранее возвращен запросом выборки на , или был ранее возвращенный запросом наivv,wv,wwvvw, или мы ранее проверили связность ).w,v
Пусть обозначает событие, когда во время первых запросов ни одна вершина не возвращается более чем одним запросом на выборку, и ни один запрос на выборку не возвращает вершину, которая была запрошена ранее, и что ни один запрос на соединение не возвращает "подключенный ». Мы докажем, что если . Отсюда следует, что ни один алгоритм, который делает запросов, не может иметь постоянную вероятность нахождения 4-цикла.EkkwPr[Eq]=1−o(1)q=o(n−−√)o(n−−√)
Как мы докажем это? Давайте вычислим . Существует два случая: либо й запрос является запросом выборки, либо запросом на проверку соединения:Pr[Ek|Ek−1]k
Если й запрос является запросом выборки для вершины , среди первых запросов упоминается вершины , и если й запрос возвращает один из них, то у нас будет , в противном случае у нас будет . Теперь ответ на й запрос равномерно распределен по набору вершин, где содержит все вершины, которые не были возвращены предыдущими запросами выборки на , поэтому ответ на й запрос равномерно распределен по набору размером не менееkv2(k−1)k−1k¬EkEkkSSvkn−k+1, Вероятность поражения хотя бы одного из них равна , поэтому в этом случае .≤2(k−1)/(n−k+1)Pr[Ek|Ek−1]≥1−2(k−1)/(n−k+1)
Если й запрос является запросом для проверки соединения, то .kPr[Ek|Ek−1]≥1−1/n−−√
В любом случае, если мы имеемq=o(n−−√)
Pr[Ek|Ek−1]≥1−2(k−1)(n−k+1).
Сейчас же,
Pr[Eq]=∏k=1qPr[Ek|Eq−1].
Если , тоk≤q≤n−−√
Pr[Ek|Ek−1]≥1−2qn−q,
так
Pr[Eq]≥(1−2qn−q)q.
Правая часть примерно равна . Когда , это .exp{−2q2/(n−q)}q=o(n−−√)1−o(1)
В заключение: когда . Отсюда следует, что вам нужно чтобы иметь постоянную вероятность нахождения любого цикла (не говоря уже о 4-цикле).Pr[Eq]=1−o(1)q=o(n−−√)Ω(n−−√)