Saya memiliki grafik tidak tertimbang yang tidak diarahkan dan saya ingin memilih node dari sedemikian rupa sehingga mereka berpasangan sejauh mungkin dari satu sama lain, dalam hal jarak geodesik . Dengan kata lain mereka harus disebarkan di sekitar grafik sebanyak mungkin.
Mari menjadi panjang jalur terpendek antara dan di . Sekarang, untuk sekumpulan simpul , tentukan
Biarkan masalah SCATTERED SET menjadi masalah yang pada input meminta untuk menemukan satu set simpul memaksimalkan .
Apakah ada algoritma yang efisien yang menyelesaikan SCATTERED SET?
Jawaban:
Saya tidak tahu apakah ada algoritma waktu polinomial (rasanya seperti NP-hard), tetapi berikut adalah beberapa pendekatan algoritmik yang masuk akal yang dapat Anda pertimbangkan, jika Anda perlu menyelesaikannya dalam praktik:
Heuristik
Salah satu algoritma yang dieksplorasi dengan baik adalah Furthest Point First (FPF). Pada setiap iterasi, ia memilih titik yang paling jauh dari set poin yang dipilih sejauh ini. Ulangi kali. Karena ini adalah strategi rakus, tidak ada alasan untuk mengharapkan ini untuk memberikan jawaban yang optimal atau bahkan mendekati optimal, dan itu dirancang untuk mengoptimalkan fungsi tujuan yang sedikit berbeda ... tetapi dalam beberapa konteks itu memberikan perkiraan yang masuk akal, jadi ini patut dicoba.k
FPF keluar dari literatur tentang pengelompokan berbasis grafik dan diperkenalkan dalam makalah penelitian berikut:
Teofilo F. Gonzalez. Pengelompokan untuk meminimalkan jarak intercluster maksimum . Ilmu Komputer Teoritis, vol 38, pp.293-306, 1985.
Anda dapat mencoba menjelajahi literatur tentang pengelompokan berbasis grafik untuk melihat apakah ada orang yang telah mempelajari masalah spesifik Anda.
Algoritma yang tepat
Jika Anda memiliki masalah ini dalam praktiknya dan membutuhkan solusi optimal yang tepat, Anda bisa mencoba menyelesaikannya menggunakan pemecah ILP.
Begini caranya. Perkenalkan variabel 0-atau-1 , di mana menunjukkan apakah simpul ke- dipilih, dan variabel 0-atau-1 , dengan makna yang dimaksudkan bahwa hanya jika dan . Sekarang maksimalkan fungsi objektif , tunduk pada batasan dan dan . Sekarang selesaikan ILP ini dengan pemecah ILP yang tidak tersedia. Karena ILP adalah NP-hard, tidak ada jaminan ini akan efisien, tetapi mungkin bekerja pada beberapa contoh masalah.xi xi i yi,j yi,j=1 xi=1 xj=1 ∑i,jd(i,j)yi,j ∑xi≤k xi≥yi,j xj≥yi,j
Pendekatan lain adalah dengan menggunakan MAX-SAT tertimbang . Secara khusus, perkenalkan variabel boolean , di mana benar jika verteks ke- dipilih, dan variabel . Rumusnya adalah , di mana harus benar (klausa-nya memiliki bobot untuk beberapa sangat besar ) dan setiap klausa diberikan berat . Tentukan rumus menjadi benar jika paling banyak dari benar (lihat di sini untuk detail tentang bagaimana melakukan itu) dan jikaxi xi i yi,j ϕ∧∧i,jyi,j ϕ W W yi,j d(i,j) ϕ k xi yi,j=xi∧xj untuk semua . Sekarang solusi untuk masalah MAX-SAT tertimbang ini adalah solusi untuk masalah asli, jadi Anda bisa mencoba melemparkan pemecah MAX-SAT yang terbobot pada masalahnya. Peringatan yang sama berlaku.i,j
sumber
Tidak, masalahnya NP-complete.
Biarkan menjadi instance dari SET INDEPENDEN. Membangun dengan menambahkan vertex yang universal untuk . Pengamatan penting adalah bahwa jarak antara dua simpul dalam adalah 1 dalam jika dan hanya jika mereka berbatasan dalam , dan 2 sebaliknya.(G,k) G′ u G G G′ G
Sekarang, solusi optimal dari SET SCATTERED pada input adalah jika dan hanya jika memiliki set ukuran independen .(G′,k) 2(k2) G k
sumber