我真正想做的是将布尔表达式转换为整数线性规划约束。我试图首先将表达式转换为 CNF(使用pyeda
),然后从 CNF 形成约束(因为这非常简单)。但是,我无法理解.to_ast()
函数输出的抽象语法树。例如,在.to_ast()
表达式上运行时(~C1 | ~P1 | ~O1) & (~C1 | ~P1 | ~O2)
,输出为
('and', ('or', ('lit', -1), ('lit', -2), ('lit', -3)), ('or', ('lit', -1), ('lit', -2), ('lit', -4)))
很明显,-
是否定的,整数代表变量之一。有谁知道是否存在从整数到变量的映射?简短问题的详细描述...