Slackness komplementer (CS) umumnya diajarkan ketika berbicara tentang dualitas. Ini membangun hubungan yang bagus antara primal dan kendala ganda / variabel dari sudut pandang matematika.
Dua alasan utama untuk menerapkan CS (seperti yang diajarkan di kursus pascasarjana dan buku teks):
- Untuk memeriksa optimalitas LP
- Untuk membantu memecahkan masalah dual
Mengingat kekuatan komputasi saat ini dan algoritma polinomial untuk menyelesaikan piranti lunak apakah CS masih relevan dari sudut pandang pragmatis? Kami selalu bisa menyelesaikan masalah dual dan mengatasi kedua poin di atas. Saya setuju bahwa "lebih efisien" untuk menyelesaikan dual dengan bantuan CS tetapi apakah itu? Atau ada lebih banyak CS daripada memenuhi mata? Di mana tepatnya CS bermanfaat di luar dua poin di atas ? Saya biasanya melihat teks yang menyinggung konsep CS ketika berbicara tentang algoritma aproksimasi tapi saya gagal memahami perannya di sana.
Jawaban:
Slackness komplementer adalah kunci dalam mendesain algoritma primal-dual. Ide dasarnya adalah:
Algoritma primal-dual bagus untuk banyak alasan. Secara filosofis, mereka memberikan lebih banyak wawasan daripada algoritma generik. Mereka biasanya memberikan algoritma waktu polinomial yang kuat, sedangkan kita masih belum memiliki pemecah LP polinomial yang kuat. Mereka seringkali lebih praktis daripada algoritma generik. Ini terutama benar jika kita tidak dapat menuliskan LP secara eksplisit dan satu-satunya pilihan kita yang lain adalah algoritma ellipsoid, yang merupakan kasus dengan pencocokan non-bipartit dan algoritma primal-dual Edmonds.
sumber