Set Independen Maksimum dari Grafik Bipartit

19

Saya mencoba untuk menemukan Set Independen Maksimum dari Grafik Biparite.

Saya menemukan yang berikut dalam beberapa catatan "13 Mei 1998 - University of Washington - CSE 521 - Aplikasi aliran jaringan" :

Masalah:

Mengingat bipartit grafik , menemukan set independen yang sebagai besar mungkin, di mana dan . Suatu himpunan bebas jika tidak ada tepi antara elemen himpunan.G=(U,V,E)UVUUVVE

Larutan:

Buat grafik aliran pada simpul . Untuk setiap tepi ada tepi kapasitas tak terbatas dari ke . Untuk setiap , ada tepi kapasitas unit dari ke , dan untuk setiap , ada tepi kapasitas unit dari ke .UV{s,t}(u,v)EuvuUsuvVvt

Cari memotong kapasitas terbatas , dengan dan . Mari dan . Himpunan independen karena tidak ada tepi kapasitas tak terbatas yang melintasi potongan. Ukuran potongannya adalah. Ini, untuk membuat set independen sebesar mungkin, kami membuat potongan sekecil mungkin.(S,T)sStTU=USV=VTUV|UU|+|VV|=|U|+|V||UV|

Jadi mari kita ambil ini sebagai grafik:

A - B - C
    |
D - E - F

Kita dapat membagi ini menjadi grafik bipartit sebagai berikut (U,V)=({A,C,E},{B,D,F})

Kita bisa melihat dengan pencarian brute force bahwa satu-satunya maksimum Independen Set . Mari kita coba dan bekerja melalui solusi di atas:A,C,D,F

Jadi matriks adjacency network flow yang dibangun adalah:

stABCDEFs00101010t00010101A1000000B01000C1000000D0100000E10000F0100000

Di sinilah saya terjebak, pemangkasan kapasitas hingga terkecil yang saya lihat adalah yang sepele: dengan kapasitas 3.(S,T)=({s},{t,A,B,C,D,E,F})

Menggunakan potongan ini mengarah ke solusi yang salah:

U=US={}
V=VT={B,D,F}
UV={B,D,F}

Padahal kita mengharapkan ? Adakah yang bisa menemukan kesalahan saya di tempat saya bekerja?UV={A,C,D,F}

Andrew Tomazos
sumber
(S, T) = ({s, A, B, C}, {t, D, E, F}) memiliki kapasitas 2
1
@Brian ada batas kapasitas tak terbatas dari B ke E melintasi potongan Anda, jadi itu adalah kapasitas tak terbatas.
Andrew Tomazos
jika saya memahami ini dengan benar, berdasarkan pada solusi brute force, Anda memerlukan potongan di mana S berisi A dan C dan T berisi D dan F, yang membuat potongan Anda menjadi {s, A, C}, {t, D, F} . Sekarang, bagaimana Anda membuat potongan?
njzk2
juga, ini terlihat seperti Ford-Fulkerson, di mana ujung-ujungnya memiliki kapasitas satu.
njzk2
Cari algoritma Hungaria.
Patrik Vörös

Jawaban:

14

Komplemen dari set independen maksimum adalah penutup simpul minimum.

Untuk menemukan penutup simpul minimum dalam grafik bipartit, lihat teorema König .

Jukka Suomela
sumber
2
Ini (mungkin) menyelesaikan masalah tetapi tidak menjawab pertanyaan.
Raphael
2
@ Raphael: Saya setuju jika Anda menghapus kata "mungkin". :)
Jukka Suomela
1
Oh, saya yakin itu memecahkan yang masalah, tapi saya tidak yakin apakah itu membantu Andrew memecahkan masalahnya.
Raphael
3
Saya menyelesaikannya seperti yang Anda sarankan: HopcroftKarp -> pencocokan maksimal -> Konigs Thereom -> Minimum Vertex Cover -> Complement -> Max Independent Independent Set. Saya masih ingin tahu mengapa metode aliran yang dijelaskan dalam pertanyaan saya sepertinya tidak berhasil.
Andrew Tomazos
5

Solusi yang diberikan jelas salah, karena Anda menunjukkan dengan contoh-balik. Perhatikan bahwa grafik U + V adalah komponen yang terhubung oleh tepi berkapasitas tak terbatas. Oleh karena itu setiap potongan yang valid harus mengandung semua A, B, C, D, E, F di sisi yang sama.

Mencoba melacak kembali dari mana solusinya datang: http://www.cs.washington.edu/education/courses/cse521/01sp/flownotes.pdf mengutip Aliran Jaringan, oleh Ahuja, Magnanti, dan Orlin untuk beberapa masalah. Buku ini tidak memiliki hak cipta dan dapat diunduh dari http://archive.org/details/networkflows00ahuj tetapi tampaknya tidak mengandung masalah dan solusi ini (mencari setiap kemunculan "bipartite").

Perhatikan bahwa paragraf penjelasan dari solusi tidak menunjukkan bahwa potongan terkecil dari grafik yang dibuatnya sesuai dengan set independen maksimum . Itu hanya menunjukkan cara untuk mendapatkan perangkat independen.

Namun, Anda dapat melihat apa yang coba dilakukan algoritma. Berikut adalah apa yang terkait dengan set independen maksimum aktual dalam hal potongannya:

Grafik

Tepi kapasitas tak terbatas yang mematahkan algoritma ditekankan.

Saya tidak yakin bagaimana cara memperbaiki algoritma untuk apa yang dimaksudkan. Mungkin biaya dari tepi tanpa batas harus nol jika mundur (yaitu kemana arah dari S ke T, tetapi melintasi dari sisi-t ke sisi-s)? Tetapi apakah masih mudah untuk menemukan min-cut / max-flow dengan nonlinier ini? Juga, memikirkan cara untuk menjembatani dari solusi @Jukka Suomela ke algoritma dari pertanyaan, ada kesulitan di mana kita beralih dari pencocokan maksimum ke penutup simpul minimum: sementara menemukan pencocokan maksimum dapat dilakukan oleh aliran-max Algoritma-like, bagaimana Anda memulihkan penutup simpul minimum dari itu menggunakan algoritma seperti aliran? Seperti dijelaskan di sini, setelah pencocokan maksimum ditemukan, tepi antara U dan V menjadi diarahkan untuk menemukan penutup simpul minimum. Jadi, sekali lagi, ini tidak menunjukkan bahwa aplikasi sederhana dari min-cut / max-flow adalah semua yang diperlukan untuk menyelesaikan masalah ini.

Evgeni Sergeev
sumber
2

STS

yu25x
sumber
1
Saya setuju dengan Anda, tetapi bisakah Anda menambahkan lebih detail, misalnya, bukti kebenaran lengkap dari algoritma aliran, dan bagaimana algoritma berlaku pada contoh OP?
xskxzr
Catatan dalam hal ini memang memiliki bukti kebenaran yang pendek. cs.washington.edu/education/courses/cse521/01sp/flownotes.pdf Sebagai contoh, jika Anda melihat gambar oleh Evgeni Sergeev di atas, ujung-ujungnya semua harus mengarah ke bawah. Maka hanya dua sisi yang keluar dari S adalah (s, e) dan (b, t), tepi merah yang tebal masuk ke S dan tidak boleh dihitung dalam nilai potong.
yu25x
0

Pemotongan harus pada aliran aktual, bukan pada kapasitas. Karena aliran dari s adalah terbatas, setiap potongan {S, T} akan terbatas. Selebihnya dijelaskan di atas.

Talmon
sumber
1
Apakah kamu yakin Pemotongan biasanya pada kapasitas dan, dalam hal apa pun, kita sudah tahu bahwa pemotongan minimum terbatas sehingga pemotongan menjadi tak terbatas tampaknya bukan masalah.
David Richerby
0

UV

G{A,C,D,F}

Ajit Kumar
sumber