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 .
Misalnya, untuk
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.
Jawaban:
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 + i ∣ 0 ≤ i < | L | } = Lw∈Σ∗ A L∈A m≥1 {wm+i∣0≤i<|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 kA k≥0 A k k
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 v ∣ v ∈ V } G A 2 | E | + 1G=(V,E) v∈V Lv={v}∪{e∈E∣v∈e} v Σ=E A={Lv∣v∈V} G A 2|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 v ∖ H α v U v w = α v 1 e 1 α v 2 e 2 … e n - 1 n Av1e1v2…en−1vn G H={e1,e2,…,en−1} v Uv=Lv∖H αv Uv w=αv1e1αv2e2…en−1αvn A α 1 e 1 L v n e n - 1 α n v i i ∉ { 1 , n } L v iLv1 α1e1 Lvn en−1αn vi i∉{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 | + 1ei−1uviei E w |V|−1 H V |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.w A 2|E|+1 e∈E v∈V w e∈E w v∈V w H⊆E w |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.w ue1e2…ekv u,v∈V ei∈E u,v ei∈H ei={u,v} ei G ei H H w
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|−1 H w h1h2…hn−1 H w v1h1v2h2…hn−1vn G □
Karena masalah penentuan keberadaan jalur Hamiltonian adalah NP-hard dan pengurangan di atas adalah polinomial, masalah aslinya adalah NP-hard juga.
sumber