Complessità temporale del conteggio dei triangoli nei grafici planari


16

Il conteggio dei triangoli nei grafici generali può essere fatto in modo banale in tempo e penso che fare molto più velocemente sia difficile (riferimenti ben accetti). Che dire dei grafici planari? La seguente procedura semplice mostra che può essere fatto in tempo. La mia domanda è duplice:O(n3)O(nlogn)

  • Qual è un riferimento per questa procedura?
  • Il tempo può essere reso lineare?

Dalla dimostrazione algoritmica del teorema del separatore planare di Lipton-Tarjan possiamo, nel tempo lineare nella dimensione del grafico, trovare una divisione dei vertici del grafico in tre insiemi tale che non ci siano bordi con un endpoint in e l'altro in B , S ha dimensioni delimitate da O ( A,B,SABSed entrambiA,Bhanno dimensioni superiori delimitate da 2O(n)A,B del numero di vertici. Si noti che qualsiasi triangolo nel grafico sia situata interamente all'internoAo interamente all'interno diBo di utilizzi almeno un vertice diScon gli altri due vertici daASo entrambi daBS. Quindi è sufficiente contare il numero di triangoli nel grafico suSe i vicini diSinA(e similmente perB). Si noti cheSe i suoiA-neighbours inducono ungrafico planarek-outer (detto grafico è un sottografo di un grafico planare di diametro423ABSASBSSSABSAk4). Quindi contare il numero di triangoli in un tale grafico può essere fatto direttamente mediante la programmazione dinamica o un'applicazione del teorema di Courcelle (so con certezza che una tale versione di conteggio esiste nel mondo Logspace di Elberfeld et al. E suppongo che esista anche nel mondo del tempo lineare) poiché la formazione di un triangolo non orientato è una proprietà e poiché una decomposizione dell'albero a larghezza limitata è facile da ottenere da un grafico planare k -outer incorporato .MSO1K

Così abbiamo ridotto il problema a una coppia di problemi che sono ciascuno una frazione costante più piccola a scapito di una procedura temporale lineare.

Si noti che la procedura può essere estesa per trovare il conteggio del numero di istanze di qualsiasi grafico collegato fisso all'interno di un grafico di input nel tempo .O(nlogn)


6
Puoi contare i triangoli nei grafici generali prendendo la matrice di adiacenza e calcolando t r ( A 3 ) / 6 . Questo richiede n ω tempo, dove ω < 2.373 è l'esponente della moltiplicazione della matrice. UNtr(UN3)/6nωω<2.373
Ryan Williams,

@RyanWilliams Hai ragione, ovviamente! Aggiornerò la domanda.
SamiD

Risposte:



19

Sebbene la risposta di Bart Jansen risolva il caso generale del conteggio dei sottografi, il problema di contare (o elencare) tutti i triangoli in un grafico planare (o più in generale qualsiasi grafico di arboricità limitata) è noto per essere tempo lineare per molto più tempo. Vedere

C. Papadimitriou e M. Yannakakis, Il problema della cricca per i grafici planari, Inform. Proc. Lettere 13 (1981), pagg. 131-133.

e

N. Chiba e T.Nishizeki, algoritmi di elencazione dell'arboricità e dei sottografi, SIAM J. Comput. 14 (1985), pagg. 210–223.

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.