Combien de temps faut-il pour trouver un cycle court dans un graphique aléatoire?

9

Soit GG(n,n1/2) un graphe aléatoire sur n3/2 bords. Avec une probabilité très élevée, G a de nombreux cycles à 4 cycles. Notre objectif est de produire l'un de ces 4 cycles le plus rapidement possible.

Supposons que nous ayons accès à G sous forme de liste d'adjacence, nous pouvons réussir avec une probabilité constante dans O(n)heure comme suit: choisissez n'importe quel nœudvet commencez à générer2cheminsaléatoires àpartir dev; une fois que nous avons trouvé deuxchemins2distinctsqui partagent un point final, nous avons terminé. Il y anpoints de terminaison possibles, et par le paradoxe d'anniversaire, nous réussirons avec une probabilité constante après avoir découvertn d'entre eux.

Pouvons-nous faire mieux? En particulier, un algorithme à temps constant qui réussit avec une probabilité constante est-il possible?

GMB
la source
Il me semble que ce graphique a trop peu d'arêtes pour avoir la propriété que vous voulez, si vous utilisez la terminologie standard, c'est comme un échantillon G(n,p) avec p=(n/C(n,2))=O(n3/2)
kodlu
Merci, vous avez raison que je voulais dire (modifié). Ces graphiques auront C 4 à chaque fois que deux nœuds partagent 2 voisins, ce qui se produit avec une probabilité constante par paire de nœuds. p=n1/2C42
GMB
J'utilise la terminologie ici ( en.wikipedia.org/wiki/Erd%C5%91s%E2%80%93R%C3%A9nyi_model ), où chaque bord est inclus indépendamment avec la probabilité - donc, arêtes en attente. pp(n2)
GMB

Réponses:

6

Non, vous ne pouvez pas battre les requêtes . Je vais expliquer comment formaliser l' esquisse de preuve exfret de ceci, d'une manière qui fonctionne pour les algorithmes adaptatifs. Tout cela est anticipé dans la réponse d'exfret; Je ne fais que compléter certains détails.Θ(n)

Considérez tout algorithme (éventuellement adaptatif) qui émet une séquence de requêtes, où chaque requête est soit "extraire le ème bord de la liste d'adjacence du sommet " ou "tester si les sommets sont connectés par un bord". Nous pouvons supposer qu'aucune requête n'est répétée, car tout algorithme qui répète une requête peut être transformé en un algorithme qui ne répète jamais aucune requête. De même, nous pouvons supposer que l'algorithme ne fait jamais de requête de connectivité sur une paire de sommets qui sont déjà connus pour être connectés par un bord (à savoir, tester lorsque été précédemment renvoyé par une requête d'extraction sur , ou était précédemment retourné par une requête d'extraction surivv,wv,wwvvw, ou nous avons déjà testé la connectivité de ).w,v

Supposons que désigne l'événement selon lequel, lors des premières requêtes, aucun sommet n'est renvoyé par plus d'une requête d'extraction, et aucune requête d'extraction ne renvoie un sommet qui a été précédemment interrogé, et aucune requête de test de connectivité ne renvoie "connecté ". Nous prouverons que si . Il s'ensuit qu'aucun algorithme qui effectue des requêtes ne peut avoir une probabilité constante de trouver un cycle 4.EkkwPr[Eq]=1o(1)q=o(n)o(n)

Comment le prouvons-nous? Calculons . Il existe deux cas: soit la ème requête est une requête d'extraction, soit une requête de test de connectivité:Pr[Ek|Ek1]k

  1. Si la ème requête est une requête d'extraction sur le sommet , il y a sommets mentionnés parmi les requêtes, et si la ème requête renvoie l'une de celles-ci, nous aurons , sinon nous aurons . Maintenant, la réponse à la ème requête est uniformément distribuée sur un ensemble de sommets, où contient tous les sommets qui n'ont pas été retournés par les requêtes de récupération précédentes sur , donc la réponse à la ème requête est uniformément distribuée sur un ensemble de taille au moinskv2(k1)k1k¬EkEkkSSvknk+1. La probabilité de toucher au moins l'un d'entre eux est , donc dans ce cas, .2(k1)/(nk+1)Pr[Ek|Ek1]12(k1)/(nk+1)

  2. Si la ème requête est une requête de test de connectivité, alors .kPr[Ek|Ek1]11/n

Dans les deux cas, si nous avonsq=o(n)

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

Maintenant,

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

Si , alorskqn

Pr[Ek|Ek1]12qnq,

donc

Pr[Eq](12qnq)q.

Le côté droit est environ . Lorsque , c'est .exp{2q2/(nq)}q=o(n)1o(1)

En conclusion: lorsque . Il s'ensuit que vous avez besoin de pour avoir une probabilité constante de trouver n'importe quel cycle (encore moins un cycle 4).Pr[Eq]=1o(1)q=o(n)Ω(n)

DW
la source
"Si la kième requête est une requête de test de connectivité, alors ." Je pense à ? (Même si c'est le cas, la conclusion passe toujours bien sûr.)Pr[Ek|Ek1]11/n11/n
usul
@usul, oups, oui, merci! Fixé.
DW
5

Supposons que nous ne pouvons interroger que le ème bord de la liste d'adjacence d'un sommet donné (qui, je suppose, n'est pas trié) ou si deux sommets donnés sont adjacents. Dans ce cas, il faut des requêtes pour même trouver un cycle. En effet, il y a chance que toutes nos requêtes du premier type renvoient des sommets différents et que toutes nos requêtes du deuxième type renvoient que les deux sommets ne sont pas connectés.in1o(1)

Veuillez me corriger si je me trompe quelque part ou si je comprends mal le problème.

exfret
la source
1
Ce croquis de preuve me semble comme ne fonctionnant que pour des algorithmes non adaptatifs (c'est-à-dire des requêtes fixées à l'avance).
usul
@usul Pourquoi en serait-il ainsi? Nous n'utilisons de toute façon qu'une seule branche de l'arbre de décision.
exfret
Je devrais peut-être clarifier. Il devrait être clair que si nous recevons des réponses à nos requêtes comme prescrit, nous ne pouvons pas produire un cycle à 4 avec une probabilité constante. Cependant, pour tout arbre de décision de profondeur il y a chance que nous soyons envoyés dans une telle branche. o(n)1o(1)
exfret
Merci! J'ai (un peu arbitrairement) accepté l'autre version étoffée mais il semble que vous l'ayez obtenue. Appréciez la réponse.
GMB
1
@GMB Je pense que vous avez pris la bonne décision; l'autre est une réponse de bien meilleure qualité et mérite d'être vue en premier par les autres.
exfret