Je cherche une source de jeux de données énormes pour tester l'implémentation d'un algorithme graphique. Veuillez également fournir des informations sur le type / la distribution (par exemple, dirigé / non dirigé, simple / non simple, pondéré / non pondéré) des graphiques de la source s'ils sont connus.
36
Réponses:
Vérifiez les liens suivants pour les instances de graphique
Graphes DIMACS: Instances de référence et meilleures limites supérieures foo
Instances de coloration de graphiques
Instances de référence CLIQUE
la source
Je vais essayer de donner une réponse de plus haut niveau que les autres.
Les classes d'entrées suivantes sont souvent utiles pour tester les performances d'un algorithme proposé ou la validité d'une conjecture en théorie des graphes:
Graphes aléatoires : Pour de nombreuses propriétés de graphes, les graphes aléatoires sont extrêmement attendus. Par exemple, le nombre de fois qu'un graphe bipartite complet complet se produit sous la forme d'un sous-graphe est minimisé dans un graphe aléatoire. (C'est une belle conjecture d' Erds-Simonovits et Sidorenko que si est un graphe bipartite, alors le graphe aléatoire avec une densité de contour a dans l'attente le nombre minimum de copies de sur tous les graphes du même ordre et de la densité de contour.) Les distributions spécifiées par des graphes aléatoires sont la source de nombreuses limites inférieures pour les algorithmes de graphes randomisés, selon le principe de minimax de Yao . p HH p H
Graphes structurés : Il s'agit d'une désignation approximative pour une classe de graphes spécialement structurés pour le problème à résoudre. Par exemple, le théorème de Turán dit que le graphe le plus dense sur sommets sans triangle est le graphe complet bipartite ; ce graphique est clairement conçu spécialement pour éviter les triangles.K n / 2 , n / 2n Kn/2,n/2
Les graphes "non aléatoires" : ils sont intermédiaires entre être complètement génériques, comme dans les graphes aléatoires, et complètement spécifiques au problème, comme dans les graphes structurés. Par exemple, une telle famille pourrait être des sous-graphes aléatoires de graphes structurés. De tels exemples apparaissent souvent dans la création de variantes plus fortes du lemme de régularité de Szemerédi . Une façon de produire ces exemples consiste à définir le "pseudo-aléatoire" en modélisant les entrées aléatoires, de sorte que pour les entrées pseudo-aléatoires, vous puissiez montrer que votre algorithme ou votre conjecture fonctionne. Ensuite, vous identifiez les obstructions à la pseudo-aléatoire, et les graphes contenant ces obstructions peuvent alors produire une vaste collection de graphes non aléatoires qui sont des contre-exemples. Une discussion plus compliquée de ce principe peut être trouvée àConférence ICM de Terry Tao en 2006 . Ces graphes non aléatoires correspondent approximativement aux "séquences nil" dans certaines de ses œuvres avec Ben Green et d'autres.
la source
Pour générer des graphiques, j'utilise généralement le
geng
programme fourni avecnauty
:http://cs.anu.edu.au/~bdm/nauty/
Ceci produit des graphes non dirigés (également appelés "graphes"). Pour produire des graphiques dirigés, vous pouvez diriger la sortie par
directg
laquelle vient également nauty.L'utilisation de geng convient aux scénarios dans lesquels vous souhaitez tester tous les graphiques (par exemple) jusqu'à des
n
sommets, ou tous les graphiques connectés avec desm
arêtes ou quelque chose du genre. Si vous avez des exigences plus spécifiques, veuillez les indiquer dans votre question.la source
La Stanford GraphBase peut vous aider: http://www-cs-staff.stanford.edu/~knuth/sgb.html
Toutefois, il est fort probable que vous souhaitiez générer les graphiques vous-même et que vous souhaitiez probablement que tous les graphiques générés possèdent (ou non) certaines propriétés. Les graphiques aléatoires sont souvent une mauvaise approximation des graphiques sur lesquels un algorithme est réellement utilisé.
la source
Pas énorme, mais peut-être encore utile, 3054 "graphes nommés standard" de la collection GraphData de Mathematica
Le format est un graphe par ligne, avec le nom et la liste des nœuds adjacents comme ceci
{<nom du graphe>, {{1, 4}, {1, 5}, {1, 6}, {2, 5}, {2, 6}, {3, 6}}
<nom du graphe> peut avoir la forme "AGraph" ou {"Andrasfai", 6}
la source
Le paquet Igraph a différents types de générateur de graphes, à la fois des graphes aléatoires et des graphes structurés.
http://igraph.sourceforge.net/doc/html/igraph-Generators.html
la source
Il existe un nouveau projet communautaire intéressant pour une base de données de graphes:
Présentation du papier
Open Graph Archive: Un effort communautaire
ou le lien direct
Graph-Archive.org
Le temps montrera si c'est un bon endroit pour les instances de test.
la source
Le neuvième défi de la mise en œuvre de DIMACS - Shortest Paths a eu lieu en 2005-2006 dans le but de produire "un ensemble standard d'instances et de générateurs de référence, ainsi que des implémentations de référence d'algorithmes bien connus de type chemin le plus court".
La page de téléchargement contient des graphiques de réseau routier américain compressés allant de 2 Mo à 335 Mo, avec la distance et le poids temporel.
http://www.dis.uniroma1.it/challenge9/download.shtml
J'ai trouvé cela utile pour comparer mes propres implémentations de fonctions graphiques de jouets.
la source
Vous pouvez utiliser Mousquetaire, voir
https://people.cs.clemson.edu/~isafro/musketeer/index.html
Il s’agit d’un générateur de graphes multi-échelles qui accepte un graphe d’entrée et génère un autre graphe qui peut être arbitrairement similaire à l’original. Les paramètres sont suffisamment souples pour générer une nouvelle structure à différentes résolutions à grains grossiers. Voir des exemples dans la galerie. Ce paquet est idéal pour créer des instances expérimentales pour des algorithmes de vérification et d'analyse comparative.
la source