Bagaimana cara menemukan representasi terpendek untuk himpunan bagian dari rangkaian kekuasaan?

13

Saya mencari algoritma yang efisien untuk masalah berikut atau bukti NP-hardness.

Biarkan menjadi himpunan dan seperangkat himpunan bagian dari . Temukan urutan panjang paling sedikit sehingga untuk setiap , ada sedemikian rupa sehingga .ΣAP(Σ)ΣwΣLAkN{wk+i0i<|L|}=L

Misalnya, untuk A={{a,b},{a,c}} , kata w=bac adalah solusi untuk masalah tersebut, karena untuk {a,b} ada k=0 , untuk {a,c} ada k=1 .

Adapun motivasi saya, saya mencoba untuk mewakili himpunan tepi otomat terbatas, di mana setiap tepi dapat dilabeli oleh himpunan huruf dari alfabet masukan. Saya ingin menyimpan satu string dan kemudian menyimpan sepasang pointer ke string di setiap tepi. Tujuan saya adalah meminimalkan panjang string itu.

avakar
sumber
1
Dengan kata lain, masalahnya adalah untuk memesan set ke urutan L1,,Ln memaksimalkan |LiLi+1|?
Karolis Juodelė
@ KarolisJuodelė, saya pikir itu tidak cukup, karena untuk Anda mungkin harus memasukkan elemen dalam ke dalam dua kali bahkan jika mereka dalam . Misalnya , Anda dapat berbagi antara dua yang pertama atau dua terakhir, tetapi tidak di antara semuanya, yang terpendek akan . L iL i + 2 w L i + 1 { { a , b } , { a , c } , { a , d } } a w b a c a dLi,Li+1,Li+2LiLi+2wLi+1{{a,b},{a,c},{a,d}}awbacad
avakar
@ KarolisJuodelė, lebih jauh lagi, ada beberapa kasus di mana untuk beberapa , , yang membuatnya lebih rumit karena dalam kasus seperti itu "pemesanan lingkungan" mungkin tidak total. L iL jijLiLj
avakar
Hanya untuk menghibur, jika saya menjawab pertanyaan dengan benar, jika set adalah , lalu kata memenuhi persyaratan yang diberikan, tetapi (mungkin) minimum kata dan solusi itu adalah ? :)c o w o w l w o l f c o w l fA={{c,o,w},{o,w,l},{w,o,l,f}}cowowlwolfcowlf
MindaugasK
@MindaugasK, itu benar, contoh yang sangat bagus :)
avakar

Jawaban:

4

Saya percaya saya menemukan pengurangan dari jalur Hamilton , sehingga membuktikan masalah NP-hard.

Panggil kata saksi untuk , jika memenuhi persyaratan dari pertanyaan (untuk setiap , ada sedemikian rupa sehingga ). A L A m 1 { w m + i0 i < | L | } = LwΣALAm1{wm+i0i<|L|}=L

Pertimbangkan versi keputusan dari masalah awal, yaitu putuskan apakah untuk beberapa dan , ada saksi untuk panjangnya paling banyak . Masalah ini dapat diselesaikan dengan menggunakan masalah asli sebagai oracle dalam waktu polinomial (temukan saksi terpendek, kemudian bandingkan panjangnya dengan ).k 0 A kAk0Akk

Sekarang untuk inti dari reduksi. Biarkan menjadi grafik yang terhubung sederhana, tidak terarah,. Untuk setiap , misalkan menjadi himpunan yang berisi vertex dan semua tepi yang berdekatan. Set dan . Maka memiliki jalur Hamilton jika dan hanya jika ada saksi untuk dengan panjang maksimal .v V L v = { v } { e E v e } v Σ = E A = { L vv V } G A 2 | E | + 1G=(V,E)vVLv={v}{eEve}vΣ=EA={LvvV}GA2|E|+1

Bukti. Biarkan menjadi lintasan Hamilton di dan set semua tepi pada lintasan. Untuk setiap vertex , mendefinisikan set . Pilih pemesanan sembarang untuk setiap . Kata adalah saksi untuk , karena diwakili oleh substring , oleh , dan untuk setiap , , G H = { e 1 , e 2 , ... , e n - 1 } v U v = L vH α v U v w = α v 1 e 1 α v 2 e 2e n - 1 n Av1e1v2en1vnGH={e1,e2,,en1}vUv=LvHαvUvw=αv1e1αv2e2en1αvnA α 1 e 1 L v n e n - 1 α n v i i { 1 , n } L v iLv1α1e1Lvnen1αnvii{1,n}Lvi diwakili oleh . Selanjutnya, setiap tepi dalam terjadi dua kali dalam dengan pengecualian tepi dalam , yang terjadi sekali, dan setiap simpul dalam terjadi sekali, memberikan . E w | V | - 1 H V | w | = 2 | E | + 1ei1uvieiEw|V|1HV|w|=2|E|+1

Untuk arah lain, biarkan menjadi saksi sewenang-wenang untuk panjang paling . Jelas, setiap dan terjadi di setidaknya sekali. Tanpa kehilangan generalitas, asumsikan bahwa setiap terjadi di paling banyak dua kali dan setiap terjadi tepat sekali; jika tidak, saksi yang lebih pendek dapat ditemukan dengan menghapus elemen dari . Biarkan menjadi himpunan semua tepi yang terjadi di tepat sekali. Dengan asumsi di atas, dinyatakan bahwa.wA2|E|+1eEvVweEwvVwHEw|w|=2|E||H|+|V|

Pertimbangkan substring bersebelahan dalam bentuk , di mana , . Kami mengatakan bahwa berdekatan. Perhatikan bahwa jika , maka , karena terjadi hanya sekali, namun itu berdekatan dengan dua simpul di . Oleh karena itu, paling banyak satu dari dapat di . Demikian pula, tidak ada tepi di dapat terjadi di sebelum simpul pertama atau setelah simpul terakhir.wue1e2ekvu,vVeiEu,veiHei={u,v}eiGeiHHw

Sekarang, adasimpul, oleh karena itu . Dari sana, berarti . Karena kita menganggap , kita mendapatkan kesetaraan. Dari sana kita dapatkan . Dengan prinsip pigeonhole, ada tepi dari antara setiap pasangan simpul yang berdekatan di . Mendenotasikan semua elemen dari dalam urutan mereka muncul dalam . Oleh karena itu adalah jalur Hamiltonian dalam . |V||H||V|1|w|2|E|+1|w|2|E|+1|H|=|V|1Hwh1h2hn1Hwv1h1v2h2hn1vnG

Karena masalah penentuan keberadaan jalur Hamiltonian adalah NP-hard dan pengurangan di atas adalah polinomial, masalah aslinya adalah NP-hard juga.

avakar
sumber