We present a Julia package, DisjunctiveProgramming.jl, that extends the functionality in JuMP.jl to allow modeling problems via logical propositions and disjunctive constraints. Such models can then be reformulated into Mixed-Integer Programs (MIPs) that can be solved with the various MIP solvers supported by JuMP. To do so, logical propositions are converted to Conjunctive Normal Form (CNF) and reformulated into equivalent algebraic constraints. Disjunctions are reformulated into mixed-integer constraints via the reformulation technique specified by the user (Big-M or Hull reformulations). The package supports reformulations for disjunctions containing linear, quadratic, and nonlinear constraints.
翻译:我们介绍了一种Julia软件包DisjunctiveProgramming.jl,它扩展了JuMP.jl的功能,允许通过逻辑命题和不等式约束建模问题。这些模型可以通过将逻辑命题转换为合取范式(CNF)并将其转化为等价的代数约束来重塑为混合整数规划(MIP),然后使用JuMP支持的各种MIP求解器进行求解。通过用户指定的改造技术(大M或Hull的改造),将分离式重塑为混合整数约束。该软件包支持包含线性、二次和非线性约束的分离式变形。