有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Cplex java,未找到解决方案;如何使用exportModel()改进程序

我在java中使用cplex。我刚刚实现了一个程序,它与cplex optimization studio中的程序具有相同的目标函数和几乎相同的约束设置

该程序(旅行推销员问题)针对一个非常小的问题实例(3个客户)运行。一旦实例变得更大,java(eclipse)就会给出如下输出,但没有解决方案

Tried aggregator 2 times.
MIP Presolve eliminated 617 rows and 607 columns.
MIP Presolve modified 13624 coefficients.
Aggregator did 6 substitutions.
Reduced MIP has 697 rows, 763 columns, and 18408 nonzeros.
Reduced MIP has 381 binaries, 238 generals, 0 SOSs, and 0 indicators.
Presolve time = 0.16 sec. (79.02 ticks)
Probing fixed 252 vars, tightened 287 bounds.
Probing changed sense of 4 constraints.
Probing time = 0.08 sec. (23.50 ticks)
Cover probing fixed 29 vars, tightened 83 bounds.
Tried aggregator 2 times.
MIP Presolve eliminated 400 rows and 528 columns.
MIP Presolve modified 1532 coefficients.
Aggregator did 11 substitutions.
Reduced MIP has 286 rows, 224 columns, and 5117 nonzeros.
Reduced MIP has 96 binaries, 80 generals, 0 SOSs, and 0 indicators.
Presolve time = 0.03 sec. (9.14 ticks)

    Nodes                                         Cuts/
Node  Left     Objective  IInf  Best Integer    Best Bound    ItCnt     Gap

  0     0 -1.00000e+037     0                    -86.8576        0         

Root node processing (before b&c):
Real time             =    0.02 sec. (2.20 ticks)
Parallel b&c, 2 threads:
Real time             =    0.00 sec. (0.00 ticks)
Sync time (average)   =    0.00 sec.
Wait time (average)   =    0.00 sec.
                      ------------
Total (root+branch&cut) =    0.02 sec. (2.20 ticks)

同时,“唯一的”cplex程序仍然能够计算这个实例的解决方案

由于我对cplex和java相对陌生,我不确定如何解释这个输出

我想了想:

-由于我的程序与前面提到的“just”cplex实现非常相似,约束的数量不能太多,并且会导致太大的计算工作量

-当它解决一个小实例时,它还应该运行其他实例,这些实例在“just”cplex实现上工作

当cplex还在的时候,java不能解决一些问题吗

编辑:

使用exportModel(filename.lp)后,我得到一个如下文件:

\ENCODING=ISO-8859-1
\Problem name: ilog.cplex

Minimize
 obj: x1 - x2
Subject To
 c1:    x5 + x6 + x7 + x8 + x9 + x10 + x11 + x12 + x13 + x14 + x15 + x16 + x17
        + x18 + x19 + x20 + x21 + x22 + x23 + x24 + x25 + x26 + x27 + x28 + x29
        + x30 + x31 + x32 + x33 + x34 + x35 + x36 + x37 + x38 + x39 + x40  = 1
 c3:    x77 + x78 + x79 + x80 + x81 + x82 + x83 + x84 + x85 + x86 + x87 + x88
        + x89 + x90 + x91 + x92 + x93 + x94 + x95 + x96 + x97 + x98 + x99
        + x100 + x101 + x102 + x103 + x104 + x105 + x106 + x107 + x108 + x109
        + x110 + x111 + x112  = 1
 c5:    x113 + x114 + x115 + x116 + x117 + x118 + x119 + x120 + x121 + x122
        + x123 + x124 + x125 + x126 + x127 + x128 + x129 + x130 + x131 + x132
        + x133 + x134 + x135 + x136 + x137 + x138 + x139 + x140 + x141 + x142
        + x143 + x144 + x145 + x146 + x147 + x148  = 1
 c7:    x185 + x186 + x187 + x188 + x189 + x190 + x191 + x192 + x193 + x194
        + x195 + x196 + x197 + x198 + x199 + x200 + x201 + x202 + x203 + x204
        + x205 + x206 + x207 + x208 + x209 + x210 + x211 + x212 + x213 + x214
        + x215 + x216 + x217 + x218 + x219 + x220  = 1
[...]

这只是8771行的简短摘录。我看不出有什么明显的错误。我读到有可能导入这个。lp文件或。sav文件输入cplex交互式优化器以改进程序,但找不到任何进一步的信息

调试和改进程序的典型方法是什么

编辑:

在更改了一些小东西并为objectice值添加了一个上限之后,我得到了如下输出(程序运行3个实例):

Instanz: 1

Row 'c2023' infeasible, all entries at implied bounds.
Presolve time = 0.02 sec. (2.66 ticks)

Instanz: 2

Row 'c2023' infeasible, all entries at implied bounds.
Presolve time = 0.02 sec. (2.70 ticks)

Instanz: 3

Infeasibility row 'c1':  0  = 1.
Presolve time = 0.00 sec. (0.45 ticks)

我不太清楚,怎么读这个。我的程序类和导出模型分析都没有这么多行

我在哪能找到c2023排或c1排


共 (0) 个答案