Aplikasi Teoritis untuk Algoritma Perkiraan

21

Akhir-akhir ini saya mulai mencari algoritma perkiraan untuk masalah NP-hard dan saya bertanya-tanya tentang alasan teoritis untuk mempelajarinya. (Pertanyaannya tidak dimaksudkan sebagai peradangan - saya hanya ingin tahu).

Beberapa teori yang benar-benar indah telah keluar dari studi tentang algoritma aproksimasi - hubungan antara teorema PCP dan kekerasan aproksimasi, dugaan UGC, algoritma aproksimasi Goeman-Williamson, dll.

Saya bertanya-tanya tentang titik mempelajari algoritma aproksimasi untuk masalah seperti Travelling Salesman, Asymmetric Travelling Salesman dan varian lainnya, berbagai masalah dalam desain mekanisme (misalnya dalam lelang kombinatorial), dll. Apakah algoritma aproksimasi semacam itu berguna di bagian lain dari teori di masa lalu atau mereka belajar murni untuk kepentingan mereka sendiri?

Catatan: Saya tidak bertanya tentang aplikasi praktis karena sejauh yang saya tahu, di dunia nyata, kebanyakan heuristik yang diterapkan daripada algoritma aproksimasi dan heuristik jarang diinformasikan oleh wawasan yang diperoleh dengan mempelajari algoritma aproksimasi untuk masalah.

An121234
sumber
4
Saya tidak yakin saya mengerti pertanyaannya. Apa "alasan teoretis" untuk mempelajari subjek teoretis apa pun?
Jeffε
1
Saya pikir maksudnya "mengisi yang lain-lain" dalam paragraf 2
Huck Bennett
2
Apakah salah jika itu yang saya lakukan dan saya tidak pernah bertanya pada diri sendiri? Saya hanya berpikir Algoritma Perkiraan tampak keren!
Gopi
1
Saya pikir motivasi itu sama dengan motivasi untuk mempelajari kekerasan perkiraan: untuk memahami kompleksitas yang tepat dari berbagai masalah. Algoritma Goemans-Williamson berjalan seiring dengan kekerasan permainan yang unik untuk melakukan yang lebih baik daripada faktor perkiraan GW.
Aaron Roth
1
Saya tidak yakin apakah paragraf terakhir Anda adil. Algoritma pendekatan yang menarik karena mereka adalah sebuah cara yang disarankan untuk menangani intractability masalah seperti TSP. Mungkin banyak dari mereka yang tidak secara langsung digunakan dalam praktek dalam bentuk aslinya, tetapi mereka sangat membantu untuk mengetahui apa yang harus dicoba. Anda dapat mengatakan hal yang sama tentang algoritma yang tepat, banyak dari mereka tidak pernah digunakan secara langsung dalam praktik, ada banyak masalah teknik yang perlu dipertimbangkan ketika menggunakan algoritma apa pun dalam praktik. Banyak masalah dalam praktiknya tidak membutuhkan algoritma yang tepat dan pengguna akan benar-benar bahagia
Kaveh

Jawaban:

21

Saya sangat tidak setuju dengan paragraf terakhir. Pernyataan selimut seperti itu tidak berguna. Jika Anda melihat makalah di banyak area sistem seperti jaringan, basis data, AI dan sebagainya, Anda akan melihat bahwa banyak algoritma perkiraan digunakan dalam praktiknya. Ada beberapa masalah di mana seseorang menginginkan jawaban yang sangat akurat; misalnya mengatakan sebuah maskapai penerbangan yang menarik dalam mengoptimalkan penjadwalan armadanya. Dalam kasus seperti itu orang menggunakan berbagai heuristik yang membutuhkan waktu komputasi yang substansial tetapi mendapatkan hasil yang lebih baik daripada yang dapat diberikan oleh algoritma perkiraan umum.

Sekarang untuk beberapa alasan teoritis untuk mempelajari algoritma aproksimasi. Pertama, apa yang menjelaskan fakta bahwa ransel sangat mudah dalam prakteknya sementara pewarnaan grafik cukup sulit? Keduanya NP-Hard dan waktu-dapat direduksi satu sama lain. Kedua, dengan mempelajari algoritma aproksimasi untuk kasus-kasus khusus dari suatu masalah, seseorang dapat menunjukkan dengan tepat kelas instance mana yang mungkin mudah atau sulit. Sebagai contoh kita tahu bahwa banyak masalah mengakui PTAS dalam grafik planar dan minor-gratis sementara mereka jauh lebih sulit dalam grafik umum yang sewenang-wenang. Ide aproksimasi meliputi desain algoritma modern. Sebagai contoh, orang menggunakan algoritma streaming data dan tanpa lensa aproksimasi sulit untuk memahami / merancang algoritma karena bahkan masalah sederhana tidak dapat diselesaikan dengan tepat.

Chandra Chekuri
sumber
12

S2halZPPNP

Markus Bläser
sumber
9

Saya juga tidak setuju dengan "catatan", setidaknya dinyatakan dalam generalitas ini. Terkait dengan hal ini, apakah ada yang tahu jika ceramah penghargaan Kanellakis David Johnson tersedia di suatu tempat?

Juga, setelah kami menyadari bahwa semua masalah NP-hard setara dengan kompleksitas terburuk dari solusi yang tepat, itu sangat wajar untuk menanyakan tentang kompleksitas menemukan solusi perkiraan. Dan Chandra membuat poin bagus tentang perubahan perspektif yang membawa algoritma perkiraan untuk desain algoritma.

HAI(logn)

Sasho Nikolov
sumber
8

Heuristik terbaik benar-benar algoritma perkiraan. Algoritma pendekatan yang paling indah hanyalah heuristik "bodoh" yang berfungsi. Misalnya, pencarian lokal untuk clustering, greedy clustering (Gonzalez), satu untuk harga dua, berbagai algoritma serakah, dll, dll, dll.

Jadi mempelajari algoritma aproksimasi sebenarnya tentang memahami heuristik yang dijamin sebagai algoritma aproksimasi. Harapannya adalah bahwa penelitian tentang algoritma aproksimasi menciptakan dua jenis pemupukan silang:

  • Pindahkan ide yang berfungsi dari heuristik ke dalam alat desain algoritma. Demikian pula, pindahkan ide dari desain algoritma ke heuristik / algoritma yang bekerja dengan baik dalam praktik.
  • fertilisasi silang antara seseorang yang baru saja lulus dan suatu posisi.

Singkatnya, dunia tidak tepat, input tidak tepat, fungsi target dioptimalkan oleh berbagai masalah algoritma tidak tepat dan paling tidak mewakili perkiraan fuzzy untuk apa yang diinginkan, dan perhitungan tidak tepat. Mengapa ada orang yang mempelajari algoritma yang tepat? (Jawab: Karena algoritma yang tepat adalah algoritma perkiraan yang sangat bagus.)

Di dunia nyata, ada sangat sedikit algoritme yang tepat - Anda harus menggunakan aproksimasi agar relevan dari jarak jauh ...

Sariel Har-Peled
sumber
4

Berurusan dengan masalah dengan variabel kontinu sangat mengganggu dengan algoritma yang tepat. Misalnya, apa artinya menentukan bobot tepi dari instance TSP dengan bilangan real yang tepat?

Saat kami mengizinkan algoritma FPTAS untuk masalah ini, kami dapat mengukur parameter ini menjadi bilangan bulat. Ini membuat masalah jauh lebih baik (dapat menggunakan mesin Turing standar), tetapi menimbulkan kesalahan kecil.

David Harris
sumber