Menemukan set independen maksimal secara paralel


8

Pada grafik , kami melakukan proses berikut:G(V,E)

  • Awalnya, semua node di berwarna.V
  • Sementara ada node yang tidak berwarna dalam , setiap node yang tidak berwarna melakukan hal berikut: V
    • Memilih bilangan real acak dan mengirimkannya ke semua tetangganya;
    • Membandingkan jumlahnya dengan jumlah tetangganya; jika nomornya sendiri benar-benar terkecil, maka tetangganya dicat merah dan memberitahukan semua tetangganya.
    • Jika tetangga menjadi merah, maka simpul ini melukis dirinya sendiri hitam.

Sebagai contoh:

  • Misalkan grafik adalah jalur: abcde.
  • Misalkan angka pada langkah pertama adalah: 1-2-0-3-4.
  • Node a dan c dicat merah; node b dan d dicat hitam.
  • Pada langkah kedua, hanya simpul e yang tetap tidak berwarna; itu minimal sepele sehingga cat itu sendiri merah.

PERTANYAAN SAYA ADALAH: berapa jumlah rata-rata langkah yang dilakukan proses ini sebelum semua node diwarnai?

Perhitungan saya saat ini membawa saya ke perkiraan , yang tampaknya terlalu bagus untuk menjadi kenyataan. Berikut perhitungannya:O(1)

Pertimbangkan simpul dengan tetangga. Probabilitas bahwa akan menjadi yang terkecil di antara tetangganya adalah . Jika ini terjadi, maka dan semua tetangganya akan diwarnai. Jadi jumlah yang diharapkan dari simpul yang diwarnai setiap langkah adalah per node . Oleh karena itu jumlah total simpul yang diharapkan yang diwarnai setiap langkah adalah , jadi dalam waktu semua simpul akan diwarnai.vdv1/(d+1)v(d+1)/(d+1)=1 O(n)O(1)

Jika analisis ini salah (yang mungkin merupakan penyebabnya), lalu berapakah jumlah langkah aktual?

EDIT: Seperti dicatat oleh @JukkaSuomela, algoritma yang dijelaskan di atas adalah karena Metivier et al, 2011 dan dijelaskan dan dianalisis dalam catatan kuliah ini . Mereka membuktikan bahwa waktu menjalankan adalah .O(logn)

Tapi, saya masih belum yakin bahwa analisis ini ketat. Dalam semua grafik yang saya periksa, tampaknya algoritma tersebut selesai dalam waktu yang diharapkan.O(1)

Pertanyaan saya sekarang: apakah grafik kasus terburuk di mana algoritma ini memang membutuhkan langkah-langkah ?O(logn)


1
Saya kira Anda sadar bahwa ini adalah algoritma yang disajikan dan dianalisis di Bagian 2 dari Métivier et. al (2011) ?
Jukka Suomela

Jawaban:


3

Ada kesalahan kecil, probabilitas menjadi minimal adalah . Itu tidak mengubah apa pun, tetapi masih layak untuk ditunjukkan.v1/(d+1)

Masalahnya adalah bahwa peristiwa yang Anda simpulkan tidak terpisah. Pertimbangkan dua simpul yang tidak berdekatan tetapi memiliki tetangga yang sama. Jika kedua simpul berakhir minimal di antara tetangganya, maka tetangganya akan dihitung berwarna dua kali.

Kita perlu memeriksa lebih dekat apa yang terjadi dalam suatu simpul. Mari kita hitung probabilitas (dan dengan demikian harapan variabel indikator) dari satu titik yang diwarnai.

Asumsikan demi analisis bahwa grafik adalah reguler dan tidak mengandung segitiga atau bujur sangkar. Kami akan menghitung kesempatan yang diberikan vertex tidak tidak mendapatkan berwarna. Ada kemungkinan: mungkin yang terkecil di antara tetangganya, mungkin menjadi yang terkecil kedua, ketiga terkecil, dan seterusnya ... Kami tidak tertarik pada kasus bahwa itu adalah yang terkecil, sejak itu ia mendapat berwarna.dvd+1vv

Jika adalah yang terkecil kedua, ada satu simpul yang lebih kecil. Probabilitas simpul ini menjadi terkecil di antara tetangganya adalah (dan dengan demikian semakin berwarna). Probabilitas tetangga yang tersisa terkecil di antara tetangga mereka adalah 0 (karena lebih kecil). Probabilitas total (dari tidak diwarnai) dari ini adalah .v1dvvv 1d+1d1d

Jika adalah yang terkecil ketiga, ada dua simpul yang lebih kecil. Probabilitas dari kasus ini adalah .v1d+1(d1d)2

Melanjutkan seperti ini, kami menemukan bahwa probabilitas bahwa tidak tidak mendapatkan berwarna adalah . Probabilitas dari titik tertentu yang diberi warna adalah . Saat , probabilitas menjadi .v1d+1Σi=1d(d1d)i11d+1Σi=1d(d1d)id1e0.368

Oleh karena itu probabilitas bahwa simpul yang diberikan berwarna adalah konstan, sehingga jumlah simpul yang diharapkan berwarna pada langkah pertama memang .O(n)

Itu tidak membuat algoritma . Dengan asumsi probabilitas tetap konstan (yang tidak sepenuhnya dibenarkan mengingat node diwarnai dan tidak lagi berpartisipasi dalam algoritma, grafik tidak tetap reguler), pada langkah -th akan ada (dengan harapan) node tidak berwarna. Peluruhan bersifat eksponensial, sehingga algoritmanya mengambil langkah .O(1)dk(1e)knO(logn)

Mungkin orang lain akan dapat menawarkan analisis yang lebih tepat, tetapi dari argumentasi saya sepertinya algoritma tersebut adalah .O(logn)


Masalah dengan argumentasi ini adalah, seperti yang Anda katakan, tingkat setiap node secara ketat menurun pada setiap langkah, karena node lain dihapus. Jadi, probabilitas bahwa suatu simpul dipilih meningkat, peluruhan mungkin lebih cepat daripada eksponensial, dan waktu berjalan mungkin kurang dari . Apakah Anda memiliki contoh grafik di mana jumlah langkahnya adalah ? lognΘ(logn)
Erel Segal-Halevi

@ ErelSegalHalevi Bukan itu masalahnya. Dengan argumentasi saya, ketika derajatnya menurun, probabilitas suatu simpul untuk diwarnai tidak pernah menjadi lebih besar dari 0,75 (yang merupakan nilai untuk grafik 2-reguler, grafik 1-reguler selalu diwarnai secara instan). Asimptotik tidak terlalu peduli jika probabilitas meningkat, selama (untuk cukup besar ) Anda dapat mengikatnya dengan konstanta. Masalahnya adalah saya hanya bisa menghitung angka ini untuk grafik biasa, bebas segitiga dan persegi. n
Tom van der Zanden
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.