2016-03-07 60 views
0

有沒有將DNF公式轉換爲ILP約束的方法? 例如,假設我已經在按照以下公式:將DNF公式表示爲ILP約束

(x_1 and x_2 and x_3) or (not x_1 and x_2 and not x_3) 

如何寫爲ILP?

我知道它可以轉換成equisatisfiable CNF表達式,然後轉換成ILP,但這可以是子句/變量的指數大小。

+0

可看看[本評論](http://www.minlp.org/pdf/GBDEWOGrossmann.pdf)的廣義析取規劃技術和帶有鏈接的軟件。 –

回答

1

喜歡的東西:

y1<=x1 
y1<=x2 
y1<=x3 
y1>=x1+x2+x3-2 
y2<=1-x1 
y2<=x2 
y2<=1-x3 
y2>=1-x1+x2+1-x3-2 
y>=y1 
y>=y2 
y<=y1+y2 
all variables in {0,1} 

結果將在Ÿ

+0

謝謝,這個修改解決了我的問題。 – user3333971