LPSolve帮助文档: http://lpsolve.sourceforge.net/5.5/ LPSolve软件下载地址: http://sourceforge.net/projects/lpsolve/files/ 只需输入目标函数与约束方程即可求解: max: 143 x + 60 y; 120 x + 210 y <= 15000; 110 x + 30 y <= 4000; x + y <= 75; 关于sos类型,一下两文件表示所表示的含义一致 min: y1 - y2; y1 = 67 x11 + 64 x12 + 10 x13 + 28 x14 + 65 x15 + 61 x16 + 26 x17 + 83 x18 + 72 x19 + 4 x10; y2 = 67 x21 + 64 x22 + 10 x23 + 28 x24 + 65 x25 + 61 x26 + 26 x27 + 83 x28 + 72 x29 + 4 x20; x11 + x21 = 1; x12 + x22 = 1; x13 + x23 = 1; x14 + x24 = 1; x15 + x25 = 1; x16 + x26 = 1; x17 + x27 = 1; x18 + x28 = 1; x19 + x29 = 1; x10 + x20 = 1; y1 - y2 >= 0; sos x11,x21 <= 1; x12,x22 <= 1; x13,x23 <= 1; x14,x24 <= 1; x15,x25 <= 1; x16,x26 <= 1; x17,x27 <= 1; x18,x28 <= 1; x19,x29 <= 1; x10,x20 <= 1; 与 min: y1 - y2; y1 = 67 x11 + 64 x12 + 10 x13 + 28 x14 + 65 x15 + 61 x16 + 26 x17 + 83 x18 + 72 x19 + 4 x10; y2 = 67 x21 + 64 x22 + 10 x23 + 28 x24 + 65 x25 + 61 x26 + 26 x27 + 83 x28 + 72 x29 + 4 x20; x11 + x21 = 1; x12 + x22 = 1; x13 + x23 = 1; x14 + x24 = 1; x15 + x25 = 1; x16 + x26 = 1; x17 + x27 = 1; x18 + x28 = 1; x19 + x29 = 1; x10 + x20 = 1; y1 - y2 >= 0; bin x11,x21,x12,x22,x13,x23,x14,x24,x15,x25,x16,x26,x17,x27,x18,x28,x19,x29,x10,x20; 实现这样的功能,将数据 67 64 10 28 65 61 26 83 72 4 分成两组,使得两组的数据和尽量相等
sos x11,x21 <= 1; 表示 x11,x21最多只能一个数为非0;结合约束条件 x11 + x21 = 1,则表示x11,x21只能一个为0另一个为1。 与此类似: sos x1,x2,x3,x4,x5 <= 1; 表示 x1,x2,x3,x4,x5 只能一个为非0 sos x1,x2,x3,x4,x5 <= 2; 表示 x1,x2,x3,x4,x5 最多两个为非0,并这两个为非0的数必须是按照 x1,x2,x3,x4,x5 这种顺序相邻的;例如,可以x1=x4=x5=0,x2,x3为非0,但是不能x1,x3为非0,x2,x4,x5为0,因为x2与x3是相邻的,但是x1与x3是不相邻的。 依次类推: sos x1,x2,x3,x4,x5 <= 3; 表示 x1,x2,x3,x4,x5 最多3个为非0,并这3个为非0的数必须是按照 x1,x2,x3,x4,x5 这种顺序相邻的。 详见:http://lpsolve.sourceforge.net/5.5/SOS.htm
