Dati per testare algoritmi grafici


36

Sto cercando una fonte di enormi set di dati per testare l'implementazione di un algoritmo grafico. Fornire anche alcune informazioni sul tipo / distribuzione (ad esempio diretto / non diretto, semplice / non semplice, ponderato / non ponderato) dei grafici nella fonte, se noti.



Com'è teorico? :-)
Nils,

Risposte:



17

Proverò a dare una risposta di più alto livello rispetto alle altre.

Le seguenti classi di input sono spesso utili per testare le prestazioni di un algoritmo proposto o la validità di una congettura nella teoria dei grafi:

  1. Grafici casuali : per molte proprietà dei grafici, i grafici casuali hanno aspettative estreme. Ad esempio, il numero di volte in cui un dato grafico bipartito completo si verifica quando un sottografo viene ridotto a icona in un grafico casuale. (È una bellissima congettura di Erdős-Simonovits e Sidorenko che se è un grafico bipartito, allora il grafico casuale con densità del bordo p ha in aspettativa asintoticamente il numero minimo di copie di H su tutti i grafici dello stesso ordine e densità del bordo.) Le distribuzioni specificate tramite grafici casuali sono la fonte di molti limiti inferiori per gli algoritmi di grafi randomizzati, attraverso il principio minimax di Yao . HpH

  2. Grafici strutturati : questa è una definizione approssimativa per una classe di grafici che sono in qualche modo appositamente strutturati per il problema in questione. Ad esempio, il teorema di Turán afferma che il grafico più denso su vertici che è privo di triangoli è il grafico bipartito completo K n / 2 , n / 2 ; questo grafico è chiaramente appositamente progettato per evitare triangoli.nKn/2,n/2

  3. Grafici "non casuali" : questi sono intermedi tra l'essere completamente generici, come nei grafici casuali, e completamente specifici per il problema, come nei grafici strutturati. Ad esempio, una tale famiglia potrebbe essere un sottografo casuale di grafici strutturati. Esempi simili vengono spesso a creare varianti più forti del lemma sulla regolarità di Szemerédi . Un modo per produrre questi esempi è quello di elaborare una definizione di "pseudorandomness" che modella input casuali, in modo che per input pseudorandom sia possibile dimostrare che il proprio algoritmo o la propria congettura funzionano. Quindi, si identificano gli ostacoli alla pseudorandomness e i grafici che hanno questi ostacoli possono quindi produrre una vasta raccolta di grafici non casuali che sono controesempi. Una discussione più implicata su questo principio è disponibile all'indirizzoDiscorso ICM di Terry Tao nel 2006 . Questi grafici non casuali corrispondono all'incirca alle "mancanze" in alcuni dei suoi lavori con Ben Green e altri.


14

Per generare grafici, di solito uso il gengprogramma fornito con nauty:

http://cs.anu.edu.au/~bdm/nauty/

Questo produce grafici non indirizzati (noti anche come "grafici"). Per produrre grafici diretti è possibile reindirizzare l'output attraverso il directgquale viene fornito anche con nauty.

L'uso di geng è adatto per scenari in cui si desidera testare tutti i grafici su (diciamo) fino ai nvertici o tutti i grafici collegati con mbordi o qualcosa del genere. Se hai requisiti più specifici, ti preghiamo di indicarli nella tua domanda.


11

Stanford GraphBase può essere di aiuto per te: http://www-cs-staff.stanford.edu/~knuth/sgb.html

Con ogni probabilità, tuttavia, probabilmente vorrai generare tu stesso i grafici e probabilmente vorrai che i grafici generati abbiano (o non abbiano) determinate proprietà. I grafici casuali sono spesso una scarsa approssimazione dei grafici su cui un algoritmo viene effettivamente utilizzato.


9

Non enormi, ma forse ancora utili, 3054 "grafici con nome standard" dalla collezione GraphData di Mathematica

Il formato è un grafico per riga, con nome ed elenco di nodi adiacenti come questo

{<nome grafico>, {{1, 4}, {1, 5}, {1, 6}, {2, 5}, {2, 6}, {3, 6}}

<nome grafico> lattina del formato "AGraph" o {"Andrasfai", 6}


Questi sono grafici o grafici diretti?
Emil,



3

La nona sfida di implementazione DIMACS - Percorsi più brevi svolta nel 2005-2006 con l'obiettivo di produrre "un set standard di istanze e generatori di benchmark, nonché implementazioni di benchmark di noti algoritmi di percorsi più brevi".

La pagina di download contiene grafici della rete stradale USA zippati che vanno da 2 MB a 335 MB con pesi sia di distanza che di tempo.

http://www.dis.uniroma1.it/challenge9/download.shtml

L'ho trovato utile per confrontare le mie implementazioni giocattolo di funzioni grafiche.


0

Puoi usare Musketeer, vedi

https://people.cs.clemson.edu/~isafro/musketeer/index.html

Questo è un generatore di grafici multiscala che accetta alcuni grafici di input e genera un altro grafico che può essere arbitrariamente simile all'originale. I parametri sono abbastanza flessibili da generare una nuova struttura a diverse risoluzioni a grana grossa. Vedi esempi nella galleria. Questo pacchetto è perfetto per la creazione di istanze sperimentali per algoritmi di verifica e benchmarking.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.