Setiap hari bertemu dengan masalah NP-lengkap

Jawaban:

24

Contoh favorit saya untuk digunakan dengan teman non-CS adalah yang ini:

Abraham, A. Blum, Sandholm. Algoritma kliring untuk pasar pertukaran barter: memungkinkan pertukaran ginjal secara nasional. EC07.

Pasar pertukaran ginjal pada dasarnya adalah bentuk penutupan siklus yang terbatas. Saya suka contoh ini karena a) mudah untuk menjelaskan intinya (jika Anda meninggalkan beberapa detail yang lebih teknis) dan b) itu salah satu dari sedikit contoh yang saya tahu di mana algoritma yang lebih baik benar-benar dapat menyelamatkan nyawa!

Contoh favorit saya yang kedua adalah masalah rumah sakit dan penduduk (alias masalah penerimaan di perguruan tinggi). Setiap rumah sakit memberi peringkat semua penghuni (lulusan mahasiswa kedokteran) dan penghuni memberi peringkat rumah sakit. Setiap rumah sakit memiliki sejumlah slot. Dari sana itu masalah pencocokan yang stabil dan dapat diselesaikan dalam waktu polinomial.

Namun pada kenyataannya, pasangan dapat memasuki sistem (ya, memang ada sistem ) bersama-sama, sehingga sistem tidak akan, misalnya, berpisah pasangan menikah yang sama-sama mengajukan permohonan tempat tinggal. Penambahan pasangan membuat masalah NP-lengkap. Selain mudah dijelaskan, ini juga menunjukkan bagaimana pengenalan koneksi jarak jauh dapat menginduksi kelengkapan NP.

Joshua Grochow
sumber
1
Contoh yang bagus! David Manlove telah bekerja secara luas pada masalah-masalah semacam ini (baik pertukaran maupun pencocokan); sistem sedang digunakan di Inggris dan Hongaria. dcs.gla.ac.uk/ ~davidm/publications.html Sejauh yang saya tahu, pendekatan ini mengalahkan algoritma NRMP, dan algoritma pendekatan 3/2-pendekatan Eric McDermid adalah yang paling dikenal. dx.doi.org/10.1007/978-3-642-02927-1_57
András Salamon
13

Beberapa masalah "setiap hari" yang NP-hard, dirumuskan dengan tepat:

  • Menetapkan kelas universitas ke timeslots untuk meminimalkan konflik penjadwalan.

  • Menetapkan tamu pernikahan ke kursi sehingga teman duduk di meja yang sama, tetapi musuh tidak.

  • Merencanakan perjalanan untuk mengunjungi semua tempat wisata dalam daftar, sehingga meminimalkan mengemudi.

Aaron Roth
sumber
12

Masalah salesman keliling tampaknya dapat diakses ... setidaknya di mana saya berada, ini tampaknya menjadi masalah CS yang paling populer di kalangan orang-orang non-CS sejauh ini. Saya juga menemukan ilustrasi Vertex Cover yang cukup menarik, seperti yang diperkenalkan oleh instruktur algoritma saya:

Anda memiliki jaringan jalan dan ingin memastikan bahwa jika mobil macet bahan bakar, ada pompa bensin di setidaknya satu ujung jalan.

Sebagai perencana kota, Anda ingin meminimalkan biaya dengan membangun jumlah pompa bensin sesedikit mungkin. Ini pada dasarnya adalah masalah penutup verteks, dan saya telah menemukan beberapa keberhasilan dalam menunjukkan bahwa meskipun Anda tidak berharap untuk menemukan penutup simpul optimal dalam waktu polinomial, Anda dapat menemukan sesuatu yang hanya merupakan faktor dua faktor dalam waktu polinomial, dengan hanya mengambil kedua titik akhir dari pencocokan maksimum (well, detail terakhir mungkin dihilangkan tergantung pada seberapa tajam audiens Anda - terutama karena algoritma MM tidak persis dua-liner).

Adapun contoh 'lompatan dalam kompleksitas' dengan perubahan kecil dalam sifat masalah, saya pikir perbedaan antara memeriksa 2-colorability dan 3-colorability adalah contoh yang baik. Dengan semua publisitas seputar teorema empat warna, orang mungkin juga menunjukkan bahwa memeriksa apakah peta dapat diwarnai dengan baik hanya dengan tiga warna, bukan empat adalah sulit, meskipun kita tahu bahwa itu selalu dapat diwarnai dengan empat warna. Banyak orang merasa ini cukup mengejutkan.

Situasi lain yang cukup alami adalah masalah pemulihan kebuntuan dalam sistem operasi. Ini dimodelkan oleh masalah NP-set lengkap dari set vertex umpan balik - jumlah terkecil dari simpul yang penghapusannya membuat grafik asiklik - dan saya menemukan ini menjadi contoh yang luar biasa juga (dan dijelaskan lebih lanjut dalam artikel wikipedia).

Neeldhara
sumber
3
Sebuah maksimal pencocokan cukup untuk dua pendekatan, yang jauh lebih mudah untuk menghitung dan menjelaskan.
Warren Schudy
1
@ Warren: Terima kasih telah menunjukkan itu, tentu saja Anda benar!
Neeldhara
8

Saya pikir parkir paralel NP-keras.

Faktanya, masalah yang lebih umum dalam menemukan jalur terpendek dengan kelengkungan terikat yang mengambil objek poligon dari posisi awalnya ke posisi akhir di lingkungan poligon adalah NP-hard. Buktinya dapat ditemukan di sini - http://portal.acm.org/citation.cfm?id=298976

Vinayak Pathak
sumber
7

Knapsack cukup mudah untuk dipahami, terutama bagi siapa saja yang harus berurusan dengan koper kecil .. contoh yang bagus jika mereka tahu pemrograman dinamis.

Kegembiraan lain (praktis identik) adalah Subset-sum, karena ia juga memiliki interpretasi fisik yang bagus: bayangkan angka menjadi jarak massa titik yang sama pada penggaris ideal (tanpa massa), dengan titik tumpu pada titik asal. Subset-sum mengatakan: apakah ada subset yang tidak kosong sehingga penggaris akan tetap seimbang? (yaitu, sedemikian rupa sehingga pusat gravitasi adalah titik pendukung bagi penguasa?)

Dalam kedua kasus, tampaknya intuitif bahwa strategi naif mungkin memaksa untuk memeriksa semua himpunan bagian.

Jika mereka memiliki lebih banyak latar belakang, itu bagus untuk menumbuhkan masalah dengan menjatuhkan batasan. Misalnya, mulai dengan masalah aliran maks, mengubahnya menjadi program linier, dan menjadikannya program integer. (Yang paling bagus tentu saja adalah MAX-CUT, karena bagi orang-orang dengan latar belakang lebih banyak Anda juga dapat membuka UGC; Saya menyentuh beberapa di antaranya dalam jawaban MO https://mathoverflow.net/questions/33036/is-quadratic-programming -still-np-hard-if-you-have-bounds-and-a-feasiable-point / 33048 # 33048. ) Juga ada hal-hal yang rapi seperti masalah yang tampaknya serupa yang memiliki kompleksitas yang sangat berbeda (jalur Euler (tepi) linier) waktu, jalur Hamiltonian (simpul) adalah NP-complete).

matus
sumber
7
Saya suka versi Subset Sum berikut: Anda diberi £ 10 untuk membeli makanan ringan dari toko. Dapatkah Anda menemukan kombinasi pembelian yang tepat sehingga tidak ada uang yang tersisa?
András Salamon
6

Konstruksi teka-teki silang adalah NP-Lengkap: Diberikan seperangkat jawaban, cobalah untuk memasukkannya ke dalam kisi.

Aryabhata
sumber
5

Saya membuat situs web Tagxedo, http://www.tagxedo.com , generator cloud kata yang sesuai dengan kata-kata (diukur berdasarkan frekuensinya). Hasilnya sangat cantik, tetapi masalahnya mudah terbukti NP-keras (masalah pengepakan).

Menariknya, banyak masalah NP-hard memiliki perkiraan "mudah". Tagxedo tampaknya melakukan pekerjaan yang hampir sempurna dalam banyak kasus. Ini mengarah pada diskusi yang menarik tentang implikasi praktis P vs NP, dan topik pendekatan.

Hardy Leung
sumber
4

Salah satu teman saya menghabiskan tahun cuti menonton pertandingan baseball di setiap stadion liga utama di Amerika Utara. Tanpa terbang. (Dia tidak cukup berhasil; tiga stadion sedang dibangun tahun itu.)

Jeffε
sumber
ya, tetapi apakah ia berusaha meminimalkan penggunaan gasnya? :)
Suresh Venkat
Bahkan menemukan jadwal yang layak adalah NP-hard, karena stadion tidak buka setiap hari (siklus Hamiltonian dengan jendela waktu).
Jeffε
4

Karena keberhasilan perusahaan seperti Uber dan Lyft, banyak orang memiliki pengalaman langsung yang sangat mudah diakses dengan masalah NP-lengkap.

Diberikan koleksi pengemudi dan daftar orang yang ingin dijemput di berbagai waktu, apa alokasi penumpang yang paling efisien untuk pengemudi?

Masalah ini (ketika diulang dengan tepat) adalah NPC dan saya membayangkan bahwa orang-orang pada suatu titik bertanya-tanya bagaimana Uber memutuskan untuk memasangkan pengemudi dan penumpang.

Stella Biderman
sumber
3

Saya biasanya menggunakan SAT sebagai contoh. Saya mengatakan sesuatu seperti "segala macam masalah yang muncul sepanjang waktu dapat ditulis ulang sebagai mencari penugasan yang benar untuk rumus logika besar. Pertanyaan P vs NP adalah apakah ada cara yang secara mendasar lebih mudah untuk menyelesaikan rumus logika ini daripada hanya mencoba semua kemungkinan. Sejauh ini belum ada yang bisa menemukan jalan atau membuktikan bahwa tidak ada jalan keluar yang mudah ".

Alexandre Passos
sumber
2
Saya tidak yakin berapa banyak orang yang mengalami hal ini setiap hari.
Dave Clarke
3

Masalah Np-selesai seperti Sudoku (pada nxn sqaure) seperti alat Universal yang memungkinkan kita untuk secara efisien menyelesaikan semua masalah yang memiliki solusi yang dapat diverifikasi secara efisien. Satu-satunya persyaratan adalah memiliki metode yang efisien untuk menyelesaikan Sudoku.

Mohammad Al-Turkistany
sumber
2

NP

nhaljmNPhaljkNP-lengkap dalam situasi ini. Perhatikan bahwa ini tidak perlu menjadi blok asalkan kita menganggap mereka tidak bisa roboh. Bisa berupa tumpukan kertas, krat, atau piring.

Semoga ini membantu!

Wisaya Page
sumber
2

Contoh yang dapat diakses secara aneh adalah presentasi singkat oleh Mark Dominus (lihat posting blog terkait ) yang disebut "My Favorite NP-Complete Problem" di mana gambar di bawah ini adalah bagian utama dari ikhtisar dari sampul persis oleh 3-set .

Judul-judul dalam seri video termasuk

  • Dansa, Musik, & Buku
  • Tangan, Telinga, & Kaki
  • Bangun dengan Elmo (tentang tidur, berpakaian, dan menyikat gigi)
  • Orang-orang di Lingkungan Anda (tentang petugas pemadam kebakaran, penjaga pantai, dan perawat)

Maksud yang jelas adalah agar setiap video memuat tiga episode dengan tema yang sama yang diambil dari kumpulan topik yang menarik bagi anak-anak.

Bebek aneh dalam seri ini adalah video tentang "bunga, pisang, dan ... rambut."

Bunga, pisang, dan ... rambut.

Greg Bacon
sumber
0

Terutama ketika melihat masalah Knapsack nanti, masalah NP-complete ini mungkin cocok:

Menebak angka, di mana Anda hanya bisa menebak angka tunggal sampai Anda sudah benar.

Sudix
sumber