Memeriksa rumus dengan dua quantifiers (

15

Pemecah SAT memberikan cara yang ampuh untuk memeriksa validitas rumus boolean dengan satu quantifier.

Misalnya, untuk memeriksa validitas x.φ(x) , kita dapat menggunakan pemecah SAT untuk menentukan apakah φ(x) memuaskan. Untuk memeriksa validitas x.φ(x) , kita bisa menggunakan SAT solver untuk menentukan apakah ¬φ(x) memuaskan. (Di sini x=(x1,,xn) adalah n vektor variabel boolean, dan φ adalah rumus boolean.)

Pemecah QBF dirancang untuk memeriksa validitas formula boolean dengan jumlah penjumlah yang berubah-ubah.

Bagaimana jika kita memiliki rumus dengan dua bilangan? Apakah mereka merupakan algoritma yang efisien untuk memeriksa validitas: yang lebih baik daripada hanya menggunakan algoritma generik untuk QBF? Untuk lebih spesifik saya memiliki rumus bentuk x.y.ψ(x,y) (atau x.y.ψ(x,y) ), dan ingin memeriksa validitasnya. Apakah ada algoritma yang bagus untuk ini? Sunting 4/8: Saya mengetahui bahwa kelas formula ini kadang-kadang dikenal sebagai 2QBF, jadi saya mencari algoritma yang bagus untuk 2QBF.

Mengkhususkan lebih lanjut: Dalam kasus khusus saya, saya memiliki rumus bentuk yang validitasnya ingin saya periksa, di mana f , g adalah fungsi yang menghasilkan output k -bit. Apakah ada algoritma untuk memeriksa validitas formula khusus ini, lebih efisien daripada algoritma generik untuk QBF?x.y.f(x)=g(y)f,gk

PS Saya tidak bertanya tentang kekerasan kasus terburuk, dalam teori kompleksitas. Saya bertanya tentang algoritma yang praktis berguna (seperti pemecah SAT modern praktis berguna pada banyak masalah meskipun SAT adalah NP-lengkap).

DW
sumber
4
pada dasarnya tidak setara denganx y ψ ( x , y ) . xy ψ(x,y)xy ψ(x,y)
Huck Bennett
2
Saya pikir OP berarti ini secara informal, karena keduanya sulit untuk pemecah SAT dan solusi untuk keduanya akan menarik
Suresh Venkat
1
@HuckBennett, saya pikir keduanya memiliki kekerasan yang setara. (Bukti: adalah IFF berlaku ¬ x . y . ¬ ψ ( x , y ) adalah Oleh karena itu, jika kita memiliki cara untuk uji validitas formula formulir. x . y . ψ ( x , y ) , kami juga dapat menguji validitas rumus x . yx.y.ψ(x,y)¬x.y.¬ψ(x,y)x.y.ψ(x,y) dengan membiarkan ψ ( x , y ) = ¬ ψ ( x , y ) dan menguji validitasx . y . ψ ( x , y ) .) Tapi bagaimanapun, saya akan tertarik pada algoritma untuk kedua kasus. x.y.ψ(x,y)ψ(x,y)=¬ψ(x,y)x.y.ψ(x,y)
DW
6
@DW, belum tentu, misalnya SAT dan TAUT tidak diyakini memiliki kompleksitas yang sama.
Kaveh
4
@ chisop: Saya pikir OP meminta -SAT algoritma / solver, bukan solver QBF umum. Namun banyak pemecah QBF memang ada. Lihat tab " solver " di qbflib.orgΠ2/Σ2
Huck Bennett

Jawaban:

22

Jika saya dapat, secara terang-terangan, mengiklankan diri saya, kami menulis sebuah artikel tentang Algoritma Berbasis Abstraksi tahun lalu ini untuk 2QBF . Saya punya implementasi untuk qdimacs, yang bisa saya berikan jika Anda mau tetapi dari pengalaman saya, orang bisa mendapat manfaat besar dari spesialisasi algoritma untuk masalah tertentu. Ada juga makalah yang lebih tua, A Comparative Study of 2QBF Algorithms , yang juga menyajikan algoritma yang cukup mudah ditembus.

Mikolas
sumber
Luar biasa! Terima kasih, Mikolas, ini hanya hal yang saya harapkan.
DW
2
Hai @ DW senang saya bisa membantu. Semoga Anda akan menemukan beberapa ini berguna. QBF adalah binatang yang sangat berbeda dari SAT sehingga kita harus sedikit berhati-hati karena hal-hal dapat meledak dengan sangat mudah :-). Jangan ragu untuk menulis email kepada saya jika Anda memiliki pertanyaan lebih rinci tentang pekerjaan kami.
Mikolas
7

Saya telah membaca dua makalah terkait dengan ini, satu khusus terkait dengan 2QBF. Makalah-makalahnya adalah sebagai berikut:

Penentuan Bertambah, Markus N. Rabe dan Sanjit Seshia, Teori dan Aplikasi Pengujian Kepuasan (SAT 2016).

Mereka telah mengimplementasikan algoritme mereka dalam alat bernama CADET . Gagasan dasarnya adalah menambahkan batasan baru secara bertahap ke rumus hingga batasan menggambarkan fungsi Skolem yang unik atau sampai tidak ada yang dikonfirmasi.

Yang kedua adalah Incremental QBF Solving , Florian Lonsing dan Uwe Egly.

Diimplementasikan dalam alat bernama DepQBF . Itu tidak menempatkan kendala atas jumlah pergantian kuantifier. Ini dimulai dengan asumsi bahwa kita memiliki formula qbf yang terkait erat. Ini didasarkan pada pemecahan bertahap dan tidak membuang klausa yang dipelajari selama penyelesaian terakhir. Itu menambahkan klausa dan kubus ke rumus saat ini dan berhenti baik jika klausa atau kubus kosong, mewakili unsat atau sat.

Edit : Hanya untuk perspektif seberapa baik pendekatan ini bekerja untuk tolok ukur 2QBF. Silakan lihat Hasil QBFEVal-2018 untuk hasil kompetisi QBF tahunan QBFEVAL . Pada 2019 tidak ada trek 2QBF.

Dalam 2QBF Track QBFEVAL-2018 DepQBF adalah pemenangnya , CADET adalah yang kedua dalam lomba.

Jadi kedua pendekatan ini benar-benar bekerja sangat baik dalam praktiknya (setidaknya pada tolok ukur QBFEVAL).

Pushpa
sumber
4

xyϕDaD¬ϕ[a/x]bBaϕ[b/y]ϕ

Samuel Schlesinger
sumber
2
ϕϕ
Cukup bagus, ada analogi dengan pembelajaran mesin permusuhan jika Anda memicingkan mata dan memang itu bekerja untuk setiap kisi yang dilengkapi di mana Anda memiliki jenis solver
Samuel Schlesinger