Ні, ви не можете перемогти запити. Я поясню, як формалізувати ескіз доказів ексфрету цього способу, який працює для адаптивних алгоритмів. Це все передбачається у відповіді ексфрету; Я лише заповнюю деякі деталі.Θ(n−−√)
Розглянемо будь-який (можливо адаптивний) алгоритм, який видає послідовність запитів, де кожен запит є або "добути го краю вершини списку суміжності вершини ", або "перевірити, чи вершини пов'язані ребром". Можна вважати, що жоден запит не повторюється, оскільки будь-який алгоритм, який повторює запит, може бути перетворений на такий, який ніколи не повторює жодного запиту. Аналогічно, ми можемо припустити, що алгоритм ніколи не здійснює запит на зв’язок для будь-якої пари вершин, які, як відомо, з'єднані ребром (а саме, тестування коли раніше було повернуто запитом на отримання , або було попередньо повертається запитом на отриманняivv,wv,wwvvwабо ми раніше тестували підключення ).w,v
Нехай позначає подію, що під час перших запитів жодна вершина не повертається більш ніж одним запитом fetch, і жоден fetch-запит не повертає вершину, попередньо запитувану, і що жоден запит на підключення-тест не повертається " ". Доведемо, що якщо . Звідси випливає, що жоден алгоритм, який робить запити, не може мати постійну ймовірність знайти 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−−√)