Wie lange dauert es, einen kurzen Zyklus in einem zufälligen Diagramm zu finden?

9

Sei ein zufälliger Graph an Kanten. Mit sehr hoher Wahrscheinlichkeit hat viele Zyklen. Unser Ziel ist es, einen dieser Zyklen so schnell wie möglich auszugeben .GG(n,n1/2)n3/2G44

Angenommen, wir haben Zugriff auf in Form einer Adjazenzliste, können wir mit konstanter Wahrscheinlichkeit in Zeit wie folgt erfolgreich sein: Wählen Sie einen beliebigen Knoten und beginnen Sie mit der Erzeugung zufälliger Pfade ab ; Sobald wir zwei unterschiedliche Pfade gefunden haben, die sich einen Endpunkt teilen, sind wir fertig. Es gibt mögliche Endpunkte, und nach dem Geburtstagsparadoxon werden wir mit konstanter Wahrscheinlichkeit Erfolg haben, nachdem wir ungefähr von ihnen entdeckt haben.GO(n)v2v2nn

Können wir es besser machen? Ist insbesondere ein Algorithmus mit konstanter Zeit möglich, der mit konstanter Wahrscheinlichkeit erfolgreich ist?

GMB
quelle
Mir scheint, dieses Diagramm hat zu wenige Kanten, um die gewünschte Eigenschaft zu haben. Wenn Sie die Standardterminologie verwenden, ähnelt es einem -Beispiel mitG(n,p)p=(n/C(n,2))=O(n3/2)
Kodlu
Danke, du hast Recht, dass ich (bearbeitet) gemeint habe . Diese Graphen haben jedes Mal wenn zwei Knoten sich Nachbarn teilen , was mit konstanter Wahrscheinlichkeit pro Knotenpaar geschieht. C 42p=n1/2C42
GMB
Ich verwende hier die Terminologie ( en.wikipedia.org/wiki/Erd%C5%91s%E2%80%93R%C3%A9nyi_model ), wobei jede Kante unabhängig mit der Wahrscheinlichkeit - also Kanten in Erwartung. pp(n2)
GMB

Antworten:

6

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]=1o(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|Ek1]k

  1. 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(k1)k1k¬EkEkkSSvknk+1. Die Wahrscheinlichkeit, mindestens eine davon zu treffen, ist , also in diesem Fall .2(k1)/(nk+1)Pr[Ek|Ek1]12(k1)/(nk+1)

  2. Wenn die te Abfrage eine Konnektivitätstestabfrage ist, dann .kPr[Ek|Ek1]11/n

In beiden Fällen haben wir , wennq=o(n)

Pr[Ek|Ek1]12(k1)(nk+1).

Jetzt,

Pr[Eq]=k=1qPr[Ek|Eq1].

Wenn , dannkqn

Pr[Ek|Ek1]12qnq,

so

Pr[Eq](12qnq)q.

Die rechte Seite ist ungefähr . Wenn , ist dies .exp{2q2/(nq)}q=o(n)1o(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]=1o(1)q=o(n)Ω(n)

DW
quelle
"Wenn die k-te Abfrage eine Konnektivitätstestabfrage ist, ist ." Ich denke ? (Auch wenn ja, die Schlussfolgerung geht natürlich immer noch durch.)Pr[Ek|Ek1]11/n11/n
usul
@usul, oops, ja, danke! Fest.
DW
5

Nehmen wir an, wir können nur die te Kante der Adjazenzliste eines bestimmten Scheitelpunkts abfragen (von der ich annehme, dass sie nicht sortiert ist) oder ob zwei gegebene Scheitelpunkte benachbart sind. In diesem Fall sollten Abfragen erforderlich sein, um überhaupt einen Zyklus zu finden. Dies liegt daran, dass die Wahrscheinlichkeit dass alle unsere Abfragen des ersten Typs unterschiedliche Scheitelpunkte zurückgeben und dass alle unsere Abfragen des zweiten Typs zurückgeben, dass die beiden Scheitelpunkte nicht verbunden sind.in1o(1)

Bitte korrigieren Sie mich, wenn ich irgendwo falsch liege oder das Problem falsch verstehe.

exfret
quelle
1
Diese Proofskizze klingt für mich so, als ob sie nur für nicht adaptive Algorithmen funktioniert (dh Abfragen, die im Voraus behoben wurden).
Usul
@usul Warum sollte das so sein? Whp wir verwenden sowieso nur einen Zweig des Entscheidungsbaums.
Exfret
Vielleicht sollte ich das klarstellen. Es sollte klar sein, dass wir keinen 4-Zyklus mit konstanter Wahrscheinlichkeit ausgeben können, wenn wir wie vorgeschrieben Antworten auf unsere Fragen erhalten. Für jeden Entscheidungsbaum der Tiefe besteht jedoch eine Chance, dass wir über einen solchen Zweig gesendet werden. o(n)1o(1)
Exfret
Vielen Dank! Ich habe (etwas willkürlich) die andere ausgearbeitete Version akzeptiert, aber es scheint, als hättest du sie verstanden. Schätzen Sie die Antwort.
GMB
1
@ GMB Ich denke, Sie haben die richtige Entscheidung getroffen. Die andere ist eine Antwort von viel höherer Qualität und verdient es, zuerst von anderen gesehen zu werden.
Exfret