我是 LPSolve 和工具包的新手。我正在尝试使用 LPSolve IDE 拼接 4 个图像 1024x1024 瓷砖。为了简化任务,我只使用瓷砖的 x 坐标。
-------------------------------
| Tile1 |Tile2 |
| | |
| | |
| | |
--------------------------------
| Tile3 | Tile4 |
| | |
| | |
| | |
--------------------------------
如果我按以下方式定义关系
min: +d1 +d3 +d4 +d6;
-x1 +x2 -1024 +d1 <=0.1;
-x1 +x2 -1024 +d1 >=-0.1;
-x1 +x3 +1 +d2 <=0.1;
-x1 +x3 +1 +d2 >=-0.1;
-x2 +x4 +d3 <=0.1;
-x2 +x4 +d3 >=-0.1;
-x3 +x4 -1024 +d4 <=0.1;
-x3 +x4 -1024 +d4 >=-0.1;
x1=1024;
x2=2048;
x3=1023;
x4=2047;
LPsolve 产生正确的结果
d1=0
d2=0
d3=0.900000000000091
d4=0
x1=1024
x2=2048
x3=1023
x4=2047
如果我将模型更改为以下,即将 Tile4 移动一个像素
min: +d1 +d2 +d3 +d4;
-x1 +x2 -1024 +d1 <=0.1;
-x1 +x2 -1024 +d1 >=-0.1;
-x1 +x3 +1 +d2 <=0.1;
-x1 +x3 +1 +d2 >=-0.1;
-x2 +x4 +d3 <=0.1;
-x2 +x4 +d3 >=-0.1;
-x3 +x4 -1024 +1 +d4 <=0.1;
-x3 +x4 -1024 +1 +d4 >=-0.1;
x1=1024;
x2=2048;
x3=1023;
x4=2047;
LPSolve 以“模型不可行”响应,而我认为响应应该是
d1=1
d2=0
d3=0.900000000000091
d4=1
我究竟做错了什么?