ブール式の膨大なセット(20000)があります。それらは、、AND
およびOR
演算NOT
子と多数のブール変数、、A1
... (約1000)A2
で構成されます。A3
ほとんどの式には、これらの変数のうち5つ、おそらく20つしか含まれていません。
変数(A1 = true, A2 = false, A3 = false ...
)の割り当てが与えられた場合、に評価される式を見つける必要がありますfalse
。
同じ式のセットが、複数(10〜100)の割り当てに対して評価されます
この目的のために:
式をディスクに保存して高速にロードおよび解析できるようにするにはどうすればよいですか(現在、式は特殊なDSLとして、または多かれ少なかれ正規化された(そして非常に遅い)リレーショナルデータ構造として持っていますが、変更できます)
私が使用できるそのような式を評価するための高速なアルゴリズム/データ構造はありますか?
JVM上の実装は存在しますか?