Ini bukan jawaban. Ini pengamatan sederhana namun panjang. Semoga bermanfaat.
Versi keputusan masalah Anda adalah: Apakah berisi subset dari ?AXA
Masalah ini terkait dengan masalah mengevaluasi fungsi monoton boolean dari variabel. Subset dari setara dengan bitstring, sehingga keluarga setara dengan fungsi boolean dari variabel. Diberikan fungsi f , kita dapat mendefinisikan fungsi monoton paling kecil yang tidak lebih besar dari f , yaitu g ( y ) = ( ∃ x ⊆ y ,{ 1 , ... , n } n X f nn{1,…,n}nXfnff . Masalah aslinya kemudian dikurangi menjadi evaluasi g ( A ) . Sebaliknya, masalah mengevaluasi fungsi monoton boolean dapat dikurangi menjadi masalah asli, baik secara naif dengan mengambil f = g atau dengan memilih f yang membuat X lebih kecil.g(y)=(∃x⊆y,f(x))g(A)f=gfX
Dalam praktiknya, BDD cenderung bekerja dengan baik. Jadi salah satu pendekatan yang mungkin adalah membangun BDD untuk , berasal dari itu BDD untuk g , dan kemudian mengevaluasi g . Ukuran rata-rata BDD untuk g harus , karena ada banyak fungsi boolean monoton . Oleh karena itu, secara teori ini adalah solusi buruk.fgggΩ((nn/2))
Tetapi (1) analisis yang lebih baik mungkin dilakukan dan (2) mungkin ada perubahan pada pendekatan ini yang membuatnya lebih baik. Sebagai contoh, saya sama sekali tidak menggunakan korelasi antara ukuran dan ukuran BDD . (Pasti ada korelasi, tetapi saya tidak tahu apakah itu sederhana atau dapat digunakan di sini.)gXg
Untuk kelengkapan, algoritma sederhana untuk menghitung BDD untuk dari BDD untuk adalah sebagai berikut.
Di sini adalah standar atau operasi pada BDD.f m ( x ? f 1 : f 0 ) = x ? ( m ( f 0 ) ∨ m ( f 1 ) ) : m ( f 0 ) ∨gf
m(x?f1:f0)=x?(m(f0)∨m(f1)):m(f0)
∨