Apakah Pemrograman Dinamis tidak pernah lebih lemah daripada Serakah?


15

Dalam kompleksitas sirkuit, kami memiliki pemisahan antara kekuatan berbagai model rangkaian.

Dalam kompleksitas bukti, kami memiliki pemisahan antara kekuatan berbagai sistem bukti.

Namun dalam algoritmik, kami hanya memiliki sedikit pemisahan antara kekuatan paradigma algoritmik .

Pertanyaan saya di bawah ini bertujuan untuk menyentuh masalah terakhir ini untuk dua paradigma: Pemrograman yang Serakah dan Dinamis.

Kami memiliki serangkaian elemen, dan beberapa keluarga himpunan bagiannya dinyatakan sebagai solusi yang layak. Kami berasumsi bahwa keluarga ini ditutup ke bawah: himpunan bagian dari solusi yang layak layak. Mengingat penugasan bobot non-negatif ke elemen dasar, masalahnya adalah menghitung bobot total maksimum dari solusi yang layak.

Algoritma serakah dimulai dengan solusi parsial kosong, dan pada setiap langkah, ia menambahkan elemen yang belum ditangani dari bobot terbesar jika hal ini mungkin, yaitu jika solusi yang diperluas masih layak. Teorema Rado-Edmonds yang terkenal menyatakan bahwa algoritma ini akan menemukan solusi optimal untuk semua bobot input jika keluarga solusi yang layak adalah matroid.

Secara kasar, algoritma DP sederhana , jika hanya menggunakan operasi Max dan Sum (atau Min dan Sum). Untuk lebih spesifik (seperti yang disarankan oleh Joshua), dengan algoritma DP sederhana saya akan maksudkan sirkuit (maks, +) dengan fanin-2 Max dan Sum gates. Input adalah variabel, yang ke- sesuai dengan bobot yang diberikan ke elemen ke- . Sirkuit tersebut dapat memecahkan setiap masalah tersebut dengan hanya menghitung berat total maksimum solusi yang layak. Tapi ini bisa menjadi sangat berlebihan, jika kita memiliki banyak solusi seperti itu (seperti yang selalu terjadi).ii

Pertanyaan 1: Apakah ada matroid, di mana setiap algoritma DP sederhana akan membutuhkan sejumlah operasi super polinomial untuk menyelesaikan masalah maksimisasi yang sesuai?

Komentar (ditambahkan 2015/12/24): Pertanyaan ini sudah dijawab (lihat di bawah): ada yang matroids seperti itu, bahkan di melanda mayoritas.

Pertanyaan selanjutnya meminta untuk memisahkan DP serakah dan sederhana untuk masalah perkiraan . Dalam Matching Max-Berat masalah, keluarga solusi layak terdiri dari semua matchings di bipartit lengkap n×n grafik. Untuk penugasan bobot tertentu pada tepinya, tujuannya adalah untuk menghitung berat maksimum pencocokan (ini akan selalu menjadi pencocokan sempurna, karena berat badan tidak negatif).

Algoritma serakah sederhana dapat memperkirakan masalah ini dalam faktor 2: hanya selalu mengambil tepi terpisah yang belum terlihat dari bobot maksimal. Berat yang diperoleh akan setidaknya setengah dari berat optimal.

Pertanyaan 2: Dapatkah algoritma DP sederhana memperkirakan masalah Pencocokan Maks-Berat dalam faktor 2 dengan hanya menggunakan banyak operasi Max dan Sum secara polinomi?

Tentu saja, algoritma DP sepele, yang menghasilkan kali berat maksimum suatu tepi, mendekati masalah ini dalam faktor n . Tapi kami ingin faktor yang jauh lebih kecil. Saya kira bahkan faktor n / log n tidak dapat dicapai tetapi, sekali lagi: bagaimana membuktikan ini? nnn/logn

TERKAIT: Sepupu Max-Weight Matching adalah masalah Penugasan : temukan bobot minimum pencocokan sempurna. Masalah ini dapat diselesaikan (bahkan tepat) dengan pemrograman linier (disebut algoritma Hungaria) dengan hanya menggunakan operasi . Tetapi batas bawah Razborov pada ukuran sirkuit monoton boolean yang menghitung fungsi permanen menyiratkan (tidak secara langsung) bahwa setiap sirkuit (min, +) yang mendekati masalah ini dalam setiap faktor terbatas (!) Harus menggunakan operasi n Ω ( log n ) . Jadi, untuk minimisasiO(n3)nΩ(logn)masalah, algoritma DP sederhana mungkin jauh lebih lemah dari Linear Programming. Pertanyaan saya di atas bertujuan untuk menunjukkan bahwa algoritma DP seperti itu mungkin bahkan lebih lemah daripada Serakah.

Pernahkah seseorang melihat pertanyaan serupa dipertimbangkan oleh seseorang?


TAMBAH (pada 24.12.2015): Pertanyaan 2 bertujuan untuk menunjukkan bahwa satu masalah maksimisasi tertentu (masalah Pencocokan Berat Maksimal), yang dapat diperkirakan dengan algoritme serakah dengan faktor , tidak dapat didekati dengan ukuran sederhana poli DP dengan faktor yang sama r . Sementara itu, saya mendapatkan pemisahan yang lebih lemah antara Greedy dan DP sederhana: untuk setiap r = o ( n / log n ) , ada masalah maksimalisasi eksplisit yang dapat didekati oleh algoritma serakah dengan faktor r , tetapi tidak ada DP sederhana ukuran-poli Algoritma dapat memperkirakan masalah ini dengan yang lebih kecilr=2rr=o(n/logn)rfaktor (lihat di sini untuk sketsa). Namun, Pertanyaan 2 itu sendiri (tidak harus untuk masalah Max-Weight khusus ini) tetap aktual: akan menarik untuk menargetkan faktor yang sama dengan kedua algoritma.<r/3


2
Apakah Anda bermaksud mendefinisikan "algoritma DP sederhana" sebagai "sirkuit (maks, +) apa pun dengan gerbang fan-in 2"?
Joshua Grochow

@ Yosua: ya. Katakanlah, Bellman-Ford untuk jalur tersingkat memiliki variabel input untuk setiap tepi K n . Gerbang pada lapisan 1 adalah D ( j , 1 ) = x s , j . Pada layer ke-l, kita memiliki D ( j , l ) = min { D ( j , l - 1 ) , m i n i { D ( i , l -xsaya,jKnD(j,1)=xs,j . Gerbang output adalah D ( t , n - 1 ) . Adatotal O ( n 3 ) gerbang. Sebenarnya, restitction pada faninis tidak begitu penting dalam pertanyaan saya. D(j,l)=min{D(j,l-1),msayansaya{D(saya,l-1)+xsaya,j}}D(t,n-1)HAI(n3)
Stasys

Jawaban:


6

Saya pikir jawaban saya Pertanyaan 1 adalah afirmatif : ada yang matroids yang sederhana DP gagal buruk! Artinya, DP sederhana mungkin jauh lebih buruk daripada Serakah ketika mencoba menyelesaikan masalah optimisasi dengan tepat .

KnKnff(maks,+)

22n/n3/2n

2kkmatroid. Di sisi lain, sejauh yang saya tahu, algoritma perkiraan berbasis DP biasanya menggunakan semacam "penskalaan" bobot input, dan hanya berlaku untuk masalah "ransel" atau beberapa masalah penjadwalan. Jawaban negatif untuk Pertanyaan 2 akan mengkonfirmasi "kelemahan perkiraan" dari DP ini.


1
Komentar yang agak tangensial: DP juga digunakan dalam algoritma gaya Arora untuk berbagai masalah Euclidean dimensi tetap, misalnya Euclidean TSP. Tapi ini masih dalam semangat membulatkan masukan.
Sasho Nikolov

@Sasho: Ya, ini memang algoritma berbasis DP yang imut. Woeginger bahkan membuat upaya untuk menangkap masalah yang DP dapat bantu untuk memperkirakannya. Tapi saya belum pernah melihat aproksimasi DP bagus yang murni (hanya Max dan Sum atau Min dan Sum, tidak ada pembulatan / penskalaan, tidak ada ArgMax dll.) Tentu saja, ini bisa saja salah saya: algoritma aproksimasi adalah sesuatu yang baru bagi saya .
Stasys

Saya tidak mengetahui contoh apa pun tentang perkiraan DP "murni" yang bagus, dalam pengertian murni Anda: semua contoh saya sadar menggunakan beberapa bentuk pembulatan.
Sasho Nikolov
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.