Generazione di input per algoritmi grafici con test casuali?


19

Quando si testano gli algoritmi, un approccio comune è il test casuale: generare un numero significativo di input secondo una certa distribuzione (di solito uniforme), eseguire l'algoritmo su di essi e verificare la correttezza. I moderni framework di test possono generare input automaticamente data la firma degli algoritmi, con alcune restrizioni.

Se gli input sono numeri, elenchi o stringhe, generano tali input in modo diretto. Gli alberi sono più difficili, ma comunque facili (usando grammatiche stocastiche senza contesto o approcci simili).

Come è possibile generare grafici casuali (in modo efficiente)? Di solito, scegliere i grafici in modo uniforme a caso non è quello che vuoi: dovrebbero essere collegati, o planari o liberi da cicli, o soddisfare qualsiasi altra proprietà. Il campionamento del rifiuto sembra non ottimale, a causa della serie potenzialmente enorme di grafici indesiderati.

Quali sono le distribuzioni utili da guardare? Utile qui significa che

  • è probabile che i grafici testino bene l'algoritmo e
  • possono essere generati in modo efficace ed efficiente.

So che ci sono molti modelli per grafici casuali, quindi apprezzerei alcune intuizioni su quali siano le migliori per la generazione di grafici in questo senso.

Se "alcuni algoritmi" sono troppo generici, utilizzare gli algoritmi di ricerca del percorso più breve come una classe concreta di algoritmi sotto test. I grafici per i test dovrebbero essere collegati e piuttosto densi (con alta probabilità, o almeno in aspettativa). Per i test, la soluzione ottimale sarebbe quella di creare grafici casuali attorno a un percorso più breve in modo da conoscere il risultato desiderato (senza dover utilizzare un altro algoritmo).


Questa domanda è stata suscitata da quella .
Raffaello

Risposte:


15

Grafici casuali con topologia mondiale di piccole dimensioni

Nei grafici con topologia mondiale piccola , i nodi sono altamente raggruppati, ma la lunghezza del percorso tra loro è piccola. Una topologia come questa può rendere molto difficili i problemi di ricerca, poiché le decisioni locali si propagano rapidamente a livello globale. In altre parole, le scorciatoie possono fuorviare l'euristica. Inoltre è stato dimostrato che molti diversi problemi di ricerca hanno una piccola topologia mondiale.

Watts e Strogatz [1] propongono un modello per piccoli grafici mondiali . Innanzitutto, iniziamo con un grafico normale. Il disordine viene introdotto nel grafico ricablando casualmente ogni fronte con probabilità . Se , il grafico è completamente regolare e ordinato. Se , il grafico è completamente casuale e disordinato. I valori di producono grafici che non sono né completamente regolari né completamente disordinati. I grafici non hanno una topologia mondiale piccola per e .p = 0 p = 1 0 < p < 1 p = 0 p = 1pp=0p=10<p<1p=0p=1

Watts e Strogatz partono da un reticolo ad anello con nodi e vicini più vicini. Un nodo viene scelto dal reticolo uniformemente a caso e un bordo ricollegato viene ricollegato ad esso. Se il ricablaggio crea un bordo duplicato, non viene toccato. Per i grafici grandi e sparsi richiedono , dove garantisce che il grafico rimanga connesso.k n k ln ( n ) 1 k ln ( n )nKn»K»ln(n)»1K»ln(n)

Il modello di Watts e Strogatz è piuttosto popolare, ma presenta alcuni inconvenienti. Walsh [2] indaga gli effetti della randomizzazione e delle strategie di riavvio nei grafici generati usando il modello. C'è anche un articolo di Virtanen [3], che copre altri modelli motivati ​​dalla necessità di una modellazione realistica di sistemi complessi.

Grafici planari semplici casuali

La generazione di grafici planari semplici casuali su vertici uniformemente a caso può essere eseguita in modo efficiente. Il numero di grafici planari con vertici, , può essere determinato usando le funzioni di generazione. Il valore di per è rispettivamente e . Poiché i numeri sono troppo complicati, non ci si aspetta che trovino una formula chiusa per loro. Giménez e Noy [4] forniscono una stima asintotica precisa per la crescita di : dove enngngn1n91,2,8,64,1023,32071,1823707,16394784820402420291gn

gn~gn-7/2γnn!,
gγsono costanti determinate analiticamente con valori approssimativi e .g0,42,609 milaγ27,22,687 mila

La prova del risultato porta a un algoritmo molto efficiente di Fusy [5]. Fusy fornisce un generatore casuale di dimensioni approssimative e anche un generatore casuale di dimensioni esatte di grafici planari. L'algoritmo di dimensione approssimativa viene eseguito in tempo lineare mentre l'algoritmo di dimensione esatta viene eseguito in tempo quadratico. Gli algoritmi si basano sulla decomposizione in base ai livelli successivi di connettività: grafico planare connesso 2-connesso 3-connesso albero binario.

Gli algoritmi funzionano quindi traducendo una decomposizione di un grafico planare in un generatore casuale usando il framework dei campionatori Boltzmann di Duchon, Flajolet, Louchard e Schaeffer [6]. Data una classe combinatoria, un campionatore di Boltzmann disegna un oggetto di dimensione con probabilità su , dove è un parametro reale sintonizzato dall'utente. Inoltre, la distribuzione della probabilità è distribuita su tutti gli oggetti della classe, con la proprietà che gli oggetti della stessa dimensione hanno la stessa probabilità di verificarsi. Inoltre, la distribuzione della probabilità è uniforme quando limitata a una dimensione fissa.nXnX

Per un'introduzione leggera, vedere una presentazione di Fusy .


[1] DJ Watts e SH Strogatz. Dinamica collettiva di reti "di piccoli mondi". Natura, 393: 440-442, 1998 .

[2] Toby Walsh. Cerca in un piccolo mondo. Atti della 16a Conferenza congiunta internazionale sull'intelligenza artificiale (IJCAI-99-Vol2), pagine 1172-1177, 1999 .

[3] Satu Virtanen. Proprietà dei modelli di grafici casuali non uniformi. Rapporto di ricerca A77, Università di Tecnologia di Helsinki, Laboratorio di informatica teorica, 2003 .

[4] O. Giménez e M. Noy. Enumerazione asintotica e leggi limite dei grafici planari, arXiv math.CO/0501269. Un estratto esteso è apparso in Discrete Mathematics and Theh teorical Computer Science AD ​​(2005), 147-156 .

[5] E. Fusy. Generazione temporale quadratica e lineare di grafici planari, matematica discreta e informatica teorica AD (2005), 125-138 .

[6] P. Duchon, P. Flajolet, G. Louchard e G. Schaeffer. Campionatore di Boltzmann per la generazione casuale di strutture combinatorie. Combinatoria, Probabilità e Informatica, 13 (4-5): 577-625, 2004 .


3
+1 (00) per menzionare il campionamento di Boltzmann, IMHO il più potente calcolo automatico di generazione casuale !!
Jérémie il
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.