Bu bir cevap değil. Basit ama uzun bir gözlemdir. Umarım faydalı olur.
Sorununuzun karar sürümü: X bir altkümesi içermeli A?
Bu sorun, monoton boole fonksiyonlarının değerlendirilmesi sorunuyla ilgilidir. ndeğişkenler. Altkümesi{1,…,n} eşittir bir n-bitstring, yani aile X boole işlevine eşdeğerdir f nın-nin ndeğişkenler. Bir işlev verildif, daha büyük olmayan en küçük monoton işlev tanımlanabilir f, yani g(y)=(∃x⊆y,f(x)). Orijinal problem daha sonra değerlendirmeye indirgenir.g(A). Tersine, monoton bir boolean fonksiyonunun değerlendirilmesi sorunu, orijinal olarak,f=g veya bir f bu yapar X Daha küçük.
Pratikte BDD'ler iyi çalışma eğilimindedir. Bu yüzden olası bir yaklaşım BDD'yif, BDD için türetmek gve ardından değerlendir g. İçin ortalama BDD boyutug olmalıdır Ω((nn/2)), çünkü birçok monoton boolean işlevi vardır . Bu nedenle, teoride bu kötü bir çözümdür.
Ancak (1) daha iyi bir analiz mümkün olabilir ve (2) bu yaklaşımı daha iyi hale getiren ince ayarlar olabilir. Örneğin, boyutu ile BDD'si arasındaki ilişkiyi hiçbir şekilde kullanmadım . (Bir korelasyon olmalı, ama burada basit mi yoksa kullanışlı mı bilmiyorum.)Xg
Tamlık için için BDD'den için BDD'yi hesaplamak için basit bir algoritma şöyledir.
Burada standart veya işlemdir.gf
m(x?f1:f0)=x?(m(f0)∨m(f1)):m(f0)
∨