Buka atau Kepuasan Kendala Interaktif

17

Di masa lalu, saya menerapkan model koordinasi menggunakan SAT dan kepuasan kendala reguler sebagai pekerja keras inti di mesin mereka. Melanjutkan pekerjaan ini, saya ingin membuat model lebih interaktif, dan cara terbaik yang saya lihat untuk melakukannya adalah dengan membuka pemecah kendala sehingga tidak lagi menjadi kotak hitam.

Jadi, saya tertarik untuk mempelajari lebih lanjut tentang kepuasan kendala di mana kendala memiliki apa yang saya sebut variabel eksternal , predikat dan fungsi , yaitu bahasa kendala mungkin memiliki predikat seperti yang hanya dapat puas dengan berkonsultasi dengan beberapa agen eksternal ke pemecah, dan kemudian hanya ketika adalah tanah. Skenario di mana ini berguna adalah setiap kali sesuai dengan beberapa proses keputusan eksternal yang tidak dapat dimasukkan ke dalam pemecah kendala. Pemecah kendala seperti itu bisa disebut terbuka (karena kendala tidak sepenuhnya diketahui) atau interaktifP(x)xP (karena interaksi diperlukan untuk melanjutkan dengan kepuasan kendala).

Saya ingin tahu keduanya:

  • penelitian teoritis dilakukan ke arah ini
  • alat atau perpustakaan yang menerapkan pemecah kendala yang memungkinkan interaksi dengan dunia eksternal selama proses penyelesaian kendala.
Dave Clarke
sumber

Jawaban:

9

Saya tidak sepenuhnya yakin dengan karya sebelumnya tentang batasan terbuka dan interaktif.

Upaya untuk mempelajari pertanyaan keterlacakan adalah:

walaupun tulisan ini tidak meninggalkan beberapa pertanyaan besar yang belum terjawab. Pendekatan melalui penyebar dalam makalah ini terkait erat dengan implementasi pemecah kendala yang ada.

Saya pikir bekerja pada SMT (teori modulo satisfiability) juga terkait erat dengan pertanyaan Anda. Teori SMT sering dimotivasi oleh masalah dari verifikasi perangkat lunak dan perangkat keras, tetapi ada teori dengan rasa AI. Saya menantikan lebih banyak aplikasi yang dibangun dengan SMT sebagai teknologi inti, dan untuk lebih banyak bekerja dalam kendala menerapkan ide dari SMT.

András Salamon
sumber
1
Makalah itu tentu terlihat menarik. Saya tidak pernah berpikir bahwa pemecah SMT melakukan apa yang saya butuhkan. Ini tentu jalan untuk dijelajahi.
Dave Clarke
Saya bingung dengan komentar terakhir. Pemecah SMT adalah untuk logika dan teori, bukan predikat khusus. Orang-orang dipersilakan untuk berkontribusi teori dan tolok ukur baru. Saya tahu bahwa pengembang MathSAT telah mempelajari masalah AI dan perencanaan.
Vijay D
@ Vijay D: Anda benar, kalimat ini terlalu bias dan saya akan merevisinya. Implementasi yang efisien dari INJECTIVE sebagai teori SMT diterbitkan pada tahun 2010 oleh Banković dan Marić ( argo.matf.bg.ac.rs/publications/2010/alldiff-smt2010.pdf ).
András Salamon
7

Membaca pertanyaan Anda, saya juga setuju untuk mengatakan bahwa Teori Kepuasan Modulo terkait erat dengan kebutuhan Anda. Saya akan menyarankan untuk membaca buku Prosedur Keputusan - Sudut Pandang Algoritma .

Giorgio Camerani
sumber
Seberapa terkait / bermanfaat buku The Calculus of Computation: Prosedur Keputusan dengan Aplikasi untuk Verifikasi oleh Aaron R. Bradley dan Zohar Manna? Saya tahu di mana salinan itu berada dalam jarak berjalan kaki.
Dave Clarke
@Dave: Penafian: Pengalaman pribadi saya di SMT baru di awal ;-) Saya baru saja melihat Daftar Isi buku itu; tampaknya ada persimpangan besar antara itu dan yang saya tunjukkan. Dalam yang terakhir, apa yang Anda sebut di sini fungsi eksternal disebut di sana fungsi yang tidak diinterpretasikan dan dibahas secara luas. Saya tidak dapat menemukan fungsi yang tidak diinterpretasikan dalam TOC Prosedur Keputusan dengan Aplikasi untuk Verifikasi ; Namun, buku itu tampaknya sangat bagus dan mungkin bisa bermanfaat.
Giorgio Camerani
@Dave: Saat ini saya sedang membaca Prosedur Keputusan - Sudut Pandang Algoritma . Saya belum mencapai bab tentang fungsi-fungsi yang tidak diinterpretasikan , tetapi jika saya tidak salah, rumus-rumus dengan fungsi - fungsi yang tidak diinterpretasikan akan dikonversi menjadi formula dalam Theory of Equality. Teori Kasus Kesetaraan dicakup dalam Prosedur Pengambilan Keputusan dengan Aplikasi untuk Verifikasi (Bab 9).
Giorgio Camerani
1
Saya pikir Amazon menelepon.
Dave Clarke
@ Dave: Oke, bagus sekali! ;-)
Giorgio Camerani
7

P(x)

Evgenij Thorstensen
sumber
4

Saya agak bingung dengan istilah interaktif. Saya akan berpadu dengan yang lain dan menambahkan bahwa pemecah SMT mungkin membantu. Untuk menambah komentar Walter Bishop, slide untuk buku Prosedur Keputusan (Kroening dan Strichman) tersedia. Perawatan menyeluruh John Harrison dalam Buku Pegangan Logika Praktis dan Penalaran Otomatis juga mungkin menarik bagi Anda. Kode contoh tersedia online.

Putri Philipp Ruemmer mendukung aritmatika dengan predikat yang tidak diinterpretasikan, yang mungkin sesuai dengan yang Anda maksud dengan terbuka. Ini ditulis dalam Scala, menggunakan E-matching dalam menangani kuantifikasi dan menyediakan interpolant.

Vijay D
sumber
0

Bagaimana dengan alat, jika Anda memutuskan untuk Anda Prolog sebagai bahasa pilihan, saya dapat menyarankan beberapa pendekatan implementasi:

  • GNU Prolog with adalah pustaka pemrograman C. Anda dapat memanggil fungsi C dari Prolog, dan Prolog dari C. Ini memberi Anda banyak kemungkinan untuk memperluas fungsionalitas. Pro: Gnu Prolog adalah salah satu penyusun Prolog tercepat yang tersedia secara bebas. Catatan: Beberapa orang mengeluh karena kurangnya beberapa predikat bawaan ... sebenarnya kebanyakan dari mereka dapat diimplementasikan, lihat lapisan kompatibilitas Prolog @ JADI
  • SWI-Prolog memiliki pustaka pemrograman yang menarik, termasuk komunikasi jaringan, Dukungan Protokol Buffer, dll. Dan cukup populer.
  • Prolog XSB beberapa orang mengklaim itu proyek yang paling menarik dalam hal interoperabilitas - termasuk: antarmuka basis data dll.

Prolog adalah bahasa pemrograman, yang cocok untuk melakukan banyak jenis solver (dan kebanyakan dari mereka memiliki solver domain yang terbatas).

Grzegorz Wierzowiecki
sumber