Kompleksitas waktu penghitungan segitiga dalam grafik planar

16

Menghitung segitiga dalam grafik umum dapat dilakukan secara sepele dalam waktu dan saya pikir melakukan lebih cepat itu sulit (referensi diterima). Bagaimana dengan grafik planar? Prosedur langsung berikut ini menunjukkan bahwa hal itu dapat dilakukan dalam waktu . Pertanyaan saya ada dua:O(n3)O(nlogn)

  • Apa referensi untuk prosedur ini?
  • Bisakah waktu dibuat linier?

Dari bukti algoritmik teorema pemisah planar Lipton-Tarjan, kita dapat, dalam waktu linier dalam ukuran grafik, menemukan partisi simpul grafik menjadi tiga set sedemikian sehingga tidak ada tepi dengan satu titik akhir di dan yang lainnya dalam , memiliki ukuran yang dibatasi oleh dan keduanya memiliki ukuran yang dibatasi oleh dari jumlah simpul. Perhatikan bahwa setiap segitiga dalam grafik terletak seluruhnya di dalam atau seluruhnya di dalam atau menggunakan setidaknya satu simpul dengan dua simpul lainnya dari atau keduanya dariA,B,SABSO(n)A,B23ABSASBS . Jadi cukup untuk menghitung jumlah segitiga pada grafik pada dan tetangga dalam (dan juga untuk ). Perhatikan bahwa dan oneighbours-nya menginduksi grafik planar -outer (grafik tersebut adalah subgraf dari grafik planar dengan diameter ). Jadi menghitung jumlah segitiga dalam grafik seperti itu dapat dilakukan secara langsung oleh pemrograman dinamis atau dengan penerapan teorema Courcelle (saya tahu pasti bahwa versi penghitungan seperti itu ada di dunia Logspace oleh Elberfeld et al dan saya menduga itu juga ada dalam dunia waktu linier) karena membentuk segitiga tidak berarah adalah aSSABSAk4MSO1 properti dan karena dekomposisi pohon lebar terikat mudah diperoleh dari grafik planar -outer tertanam .k

Dengan demikian kami telah mengurangi masalah menjadi sepasang masalah yang masing-masing fraksi konstan lebih kecil dengan mengorbankan prosedur waktu linier.

Perhatikan bahwa prosedur dapat diperluas untuk menemukan jumlah jumlah instance dari grafik yang terhubung tetap di dalam grafik input dalam waktu .O(nlogn)

SamiD
sumber
6
Anda dapat menghitung segitiga dalam grafik umum dengan mengambil matriks adjacency dan menghitung . Ini membutuhkan waktu , di mana adalah eksponen perkalian matriks. Atr(A3)/6nωω<2.373
Ryan Williams
@RyanWilliams Anda benar, tentu saja! Saya akan memperbarui pertanyaan.
SamiD

Jawaban:

20

Jumlah kemunculan setiap subgraf tetap H dalam grafik planar G dapat dihitung dalam waktu O (n), bahkan jika H terputus. Ini, dan beberapa hasil terkait, dijelaskan dalam karya tulis Subgraph Isomorphism dalam Planar Graphs and Related Related oleh David Eppstein tahun 1999; lihat Teorema 1. Makalah ini memang menggunakan teknik treewidth.

Bart Jansen
sumber
19

Meskipun jawaban Bart Jansen memecahkan kasus umum penghitungan subgraph, masalah penghitungan (atau daftar) semua segitiga dalam grafik planar (atau lebih umum setiap grafik arboricity terikat) telah dikenal sebagai waktu linier lebih lama. Lihat

C. Papadimitriou dan M. Yannakakis, Masalah klik untuk grafik planar, Inform. Proc Letters 13 (1981), hlm. 131–133.

dan

N. Chiba dan T.Nishizeki, Arboricity dan algoritma subgraph listing, SIAM J. Comput. 14 (1985), hlm. 210–223.

David Eppstein
sumber