Générer des entrées pour les algorithmes de graphes de test aléatoire

19

Lors du test d'algorithmes, une approche courante est le test aléatoire: générer un nombre significatif d'entrées selon une distribution (généralement uniforme), exécuter l'algorithme sur ces derniers et vérifier l'exactitude. Les cadres de test modernes peuvent générer des entrées automatiquement compte tenu de la signature des algorithmes, avec certaines restrictions.

Si les entrées sont des nombres, des listes ou des chaînes, générer de telles entrées de manière simple. Les arbres sont plus difficiles, mais toujours faciles (en utilisant des grammaires stochastiques sans contexte ou des approches similaires).

Comment pouvez-vous générer des graphiques aléatoires (efficacement)? Habituellement, choisir des graphiques de manière uniforme et aléatoire n'est pas ce que vous voulez: ils doivent être connectés, planaires ou sans cycle, ou remplir toute autre propriété. L'échantillonnage de rejet semble sous-optimal, en raison de l'ensemble potentiellement énorme de graphiques indésirables.

Quelles sont les distributions utiles à regarder? Utile ici signifie que

  • les graphiques sont susceptibles de bien tester l'algorithme à portée de main et
  • ils peuvent être générés de manière efficace et efficiente.

Je sais qu'il existe de nombreux modèles de graphiques aléatoires, donc j'apprécierais un aperçu des meilleurs pour la génération de graphiques à cet égard.

Si "un algorithme" est trop général, veuillez utiliser des algorithmes de recherche de chemin le plus court comme classe concrète d'algorithmes testés. Les graphiques pour les tests doivent être connectés et plutôt denses (avec une probabilité élevée, ou du moins dans l'attente). Pour les tests, la solution optimale serait de créer des graphiques aléatoires autour d'un chemin le plus court afin que nous connaissions le résultat souhaité (sans avoir à utiliser un autre algorithme).

Raphael
la source
Cette question a été déclenchée par celle-là .
Raphael

Réponses:

15

Graphes aléatoires avec petite topologie mondiale

Dans les graphiques à petite topologie mondiale , les nœuds sont fortement regroupés mais la longueur de chemin entre eux est petite. Une topologie comme celle-ci peut rendre les problèmes de recherche très difficiles, car les décisions locales se propagent rapidement à l'échelle mondiale. En d'autres termes, les raccourcis peuvent induire en erreur l'heuristique. De plus, il a été démontré que de nombreux problèmes de recherche différents ont une topologie mondiale restreinte.

pp=0p=10<p<1p=0p=1

nknkln(n)1kln(n)

Le modèle de Watts et Strogatz est quelque peu populaire, mais présente certains inconvénients. Walsh [2] étudie les effets des stratégies de randomisation et de redémarrage dans les graphiques générés à l'aide du modèle. Il existe également un article de Virtanen [3], qui couvre d'autres modèles motivés par le besoin d'une modélisation réaliste de systèmes complexes.

Graphiques planaires aléatoires simples

nngngn1n91,2,8,64,1023,32071,1823707,16394784820402420291gn

gngn7/2γnn!,
gγg0.42609γ27.22687

nxnx

Pour une introduction légère, voir une présentation de Fusy .


[1] DJ Watts et SH Strogatz. Dynamique collective des réseaux du «petit monde». Nature, 393: 440-442, 1998 .

[2] Toby Walsh. Recherche dans un petit monde. Actes de la 16e Conférence conjointe internationale sur l'intelligence artificielle (IJCAI-99-Vol2), pages 1172-1177, 1999 .

[3] Satu Virtanen. Propriétés des modèles de graphes aléatoires non uniformes. Rapport de recherche A77, Université de technologie d'Helsinki, Laboratoire d'informatique théorique, 2003 .

[4] O. Giménez et M. Noy. Énumération asymptotique et lois limites des graphes planaires, arXiv math.CO/0501269. Un résumé étendu a été publié dans Discrete Mathematics and Theoretic Computer Science AD ​​(2005), 147-156 .

[5] E. Fusy. Génération temporelle quadratique et linéaire de graphes planaires, Mathématiques discrètes et informatique théorique AD (2005), 125-138 .

[6] P. Duchon, P. Flajolet, G. Louchard et G. Schaeffer. Échantillonneur Boltzmann pour la génération aléatoire de structures combinatoires. Combinatorics, Probability and Computing, 13 (4-5): 577-625, 2004 .

Juho
la source
3
+1 (00) pour mentionner l'échantillonnage de Boltzmann, à mon humble avis le calcul automatique de génération aléatoire le plus puissant !!
Jérémie