跳轉到內容

GLPK/建模邏輯約束

來自華夏公益教科書,面向開放世界的開放書籍

涉及二進位制數的邏輯約束可以按如下方式建模

var x, binary;
var y, binary;
var z, binary;

# z = x or y
s.t. c1: x     <= z;
s.t. c2: y     <= z;
s.t. c3: x + y >= z;

# z = x and y
s.t. c1: x     >= z;
s.t. c2: y     >= z;
s.t. c3: x + y <= z + 1;

# s = x xor y
# c = x and y
s.t. c1: x + y = 2 * c + s;

# z = not x
s.t. c1: x = 1 - z;
華夏公益教科書