- Delapan ratu puzzle
- Masalah peta mewarnai
- Teka-teki silang , Sudoku , Futoshiki , Kakuro (Sum Cross), Numbrix , Hidato dan banyak lainnya teka-teki logika
"Kehidupan nyata" contoh termasuk perencanaan otomatis dan alokasi sumber daya .
Secara formal, masalah kepuasan kendala didefinisikan sebagai triple
-
adalah seperangkat variabel,
-
adalah seperangkat domain masing-masing nilai-nilai, dan
-
adalah seperangkat kendala.
Evaluasi konsisten jika tidak melanggar salah satu kendala. Evaluasi selesai jika mencakup semua variabel. Evaluasi adalah solusi jika itu konsisten dan lengkap; Evaluasi tersebut dikatakan untuk memecahkan masalah kepuasan kendala.
Masalah kepuasan kendala pada domain yang terbatas biasanya diselesaikan dengan menggunakan bentuk pencarian . Teknik yang paling banyak digunakan adalah varian dari kemunduran , propagasi kendala , dan pencarian lokal .
Backtracking adalah algoritma rekursif. Ia memelihara tugas parsial variabel. Awalnya, semua variabel yang belum ditetapkan. Pada setiap langkah, variabel yang dipilih, dan semua nilai yang mungkin ditugaskan untuk itu pada gilirannya. Untuk setiap nilai, konsistensi tugas parsial dengan kendala diperiksa; dalam hal konsistensi, sebuah rekursif panggilan dilakukan. Ketika semua nilai sudah dicoba, algoritma backtracks. Dalam algoritma backtracking dasar ini, konsistensi didefinisikan sebagai kepuasan semua kendala yang variabel semua ditugaskan. Beberapa varian dari backtracking eksis. Back marking meningkatkan efisiensi memeriksa konsistensi. Back jumping memungkinkan menyimpan bagian dari pencarian dengan backtracking "lebih dari satu variabel" dalam beberapa kasus. Belajar Kendala menyimpulkan dan menyimpan kendala baru yang dapat kemudian digunakan untuk menghindari bagian dari pencarian. Lihatlah-depan juga sering digunakan dalam mundur untuk mencoba untuk meramalkan efek memilih variabel atau nilai, sehingga kadang-kadang menentukan di muka ketika subproblem adalah satisfiable atau unsatisfiable.
Propagasi kendala teknik metode yang digunakan untuk memodifikasi masalah kepuasan kendala.
Lebih tepatnya, mereka adalah metode yang menegakkan bentuk konsistensi lokal , yang kondisi yang berkaitan dengan konsistensi sekelompok variabel dan / atau kendala. propagasi kendala memiliki berbagai macam kegunaan. Pertama, ternyata masalah menjadi satu yang setara tetapi biasanya lebih sederhana untuk memecahkan. Kedua, mungkin terbukti satisfiability atau unsatisfiability masalah. Ini tidak dijamin terjadi pada umumnya; Namun, hal itu selalu terjadi untuk beberapa bentuk propagasi kendala dan / atau untuk jenis masalah tertentu. Bentuk yang paling dikenal dan digunakan konsistensi lokal konsistensi arc , konsistensi hiper-arc , dan konsistensi jalan . Paling populer metode propagasi kendala adalah algoritma AC-3 , yang memberlakukan konsistensi arc.
Pencarian lokal metode algoritma satisfiability lengkap. Mereka mungkin menemukan solusi dari masalah, tetapi mereka mungkin gagal bahkan jika masalahnya adalah satisfiable. Mereka bekerja dengan iterasi meningkatkan tugas penuh atas variabel. Pada setiap langkah, sejumlah kecil variabel berubah nilai, dengan tujuan keseluruhan meningkatkan jumlah kendala puas dengan tugas ini. The algoritma min-konflik adalah algoritma pencarian lokal khusus untuk CSP dan berdasarkan prinsip itu. Dalam prakteknya, pencarian lokal muncul untuk bekerja dengan baik ketika perubahan ini juga dipengaruhi oleh pilihan acak. Integrasi pencarian dengan pencarian lokal telah dikembangkan, yang mengarah ke algoritma hybrid .
Masalah keputusan
CSP juga dipelajari di teori kompleksitas komputasi dan model teori terbatas . Pertanyaan penting adalah apakah untuk setiap himpunan relasi, himpunan semua CSP yang dapat diwakili hanya menggunakan hubungan dipilih dari set yang baik di P atau NP-lengkap . Jika seperti dikotomi teorema benar, maka CSP menyediakan salah satu subset terbesar yang diketahui dari NP yang menghindari NP-menengah masalah, yang keberadaannya ditunjukkan oleh teorema Ladner ini dengan asumsi bahwa P ≠ NP . Schaefer dikotomi teorema menangani kasus ketika semua hubungan tersedia adalah operator Boolean , yaitu, untuk ukuran domain 2. Schaefer dikotomi teorema baru-baru ini digeneralisasi ke kelas yang lebih besar dari hubungan.Kebanyakan kelas CSP yang dikenal penurut adalah mereka di mana hipergraf kendala telah dibatasi treewidth (dan tidak ada pembatasan pada set hubungan kendala), atau di mana kendala memiliki bentuk sewenang-wenang tetapi terdapat polimorfisme dasarnya non-unary dari himpunan hubungan kendala.
Setiap CSP juga dapat dianggap sebagai permintaan penghubung masalah penahanan.
Fungsi masalah
Situasi serupa terjadi antara kelas fungsional FP dan #P . Oleh generalisasi dari teorema Ladner ini , ada juga masalah di baik FP atau # P-lengkap selama FP ≠ #P. Seperti dalam kasus keputusan, masalah di #CSP didefinisikan oleh himpunan relasi. Setiap masalah mengambil sebagai masukan Boolean rumus sebagai masukan dan tugas ini adalah untuk menghitung jumlah tugas memuaskan. Ini dapat lebih digeneralisasi dengan menggunakan ukuran domain yang lebih besar dan melampirkan berat untuk setiap tugas memuaskan dan menghitung jumlah bobot tersebut. Hal ini diketahui bahwa masalah #CSP tertimbang kompleks baik di FP atau # P-keras.sumber : https://en.wikipedia.org/wiki/Constraint_satisfaction_problem
Tidak ada komentar:
Posting Komentar