Nein, Sie können Abfragen nicht beantworten. Ich werde erklären, wie man die Beweisskizze von exfret auf eine Weise formalisiert , die für adaptive Algorithmen funktioniert. Dies alles wird in der Antwort von Exfret erwartet; Ich fülle nur einige Details aus.Θ(n−−√)
Betrachten Sie einen (möglicherweise adaptiven) Algorithmus, der eine Folge von Abfragen ausgibt, wobei jede Abfrage entweder "die te Kante der Adjazenzliste des Scheitelpunkts abrufen" oder "testen, ob die Scheitelpunkte durch eine Kante verbunden sind". Wir können davon ausgehen, dass keine Abfrage wiederholt wird, da jeder Algorithmus, der eine Abfrage wiederholt, in einen Algorithmus umgewandelt werden kann, der keine Abfrage wiederholt. In ähnlicher Weise können wir annehmen, dass der Algorithmus niemals eine Konnektivitätsabfrage für ein Paar von Scheitelpunkten durchführt, von denen bereits bekannt ist, dass sie durch eine Kante verbunden sind (nämlich das Testen von wenn zuvor von einer Abrufabfrage für , oder war zuvor von einer Abrufabfrage aufivv,wv,wwvvw, oder wir haben zuvor die Konnektivität von ) getestet .w,v
Lassen das Ereignis bezeichnen , daß während der ersten - Abfragen, keine Vertex von mehr zurückgeführt wird als eine Fetch-Abfrage, und keine fetch-Abfrage gibt eine Vertex , die zuvor abgefragt wurden, und dass kein Konnektivitätstest-query returns „verbunden ". Wir werden beweisen, dass wenn . Daraus folgt, dass kein Algorithmus, der Abfragen durchführt, eine konstante Wahrscheinlichkeit haben kann, einen 4-Zyklus zu finden.EkkwPr[Eq]=1−o(1)q=o(n−−√)o(n−−√)
Wie beweisen wir das? Berechnen wir . Es gibt zwei Fälle: Entweder ist die te Abfrage eine Abrufabfrage oder eine Konnektivitätstestabfrage:Pr[Ek|Ek−1]k
Wenn die te Abfrage eine Abrufabfrage für den Scheitelpunkt , werden Scheitelpunkte unter den ersten Abfragen erwähnt, und wenn die te Abfrage eine davon , haben wir andernfalls wir werden . Jetzt ist die Antwort auf die te Abfrage gleichmäßig auf eine Menge von Scheitelpunkten verteilt, wobei alle Scheitelpunkte enthält, die nicht durch vorherige Abrufabfragen auf , sodass die Antwort auf die te Abfrage gleichmäßig auf eine Menge verteilt ist mit einer Größe von mindestenskv2(k−1)k−1k¬EkEkkSSvkn−k+1. Die Wahrscheinlichkeit, mindestens eine davon zu treffen, ist , also in diesem Fall .≤2(k−1)/(n−k+1)Pr[Ek|Ek−1]≥1−2(k−1)/(n−k+1)
Wenn die te Abfrage eine Konnektivitätstestabfrage ist, dann .kPr[Ek|Ek−1]≥1−1/n−−√
In beiden Fällen haben wir , wennq=o(n−−√)
Pr[Ek|Ek−1]≥1−2(k−1)(n−k+1).
Jetzt,
Pr[Eq]=∏k=1qPr[Ek|Eq−1].
Wenn , dannk≤q≤n−−√
Pr[Ek|Ek−1]≥1−2qn−q,
so
Pr[Eq]≥(1−2qn−q)q.
Die rechte Seite ist ungefähr . Wenn , ist dies .exp{−2q2/(n−q)}q=o(n−−√)1−o(1)
Zusammenfassend: wenn . Daraus folgt, dass Sie benötigen, um eine konstante Wahrscheinlichkeit zu haben, einen Zyklus zu finden (geschweige denn einen 4-Zyklus).Pr[Eq]=1−o(1)q=o(n−−√)Ω(n−−√)