Может ли cplex решить проблемы с объективными функциями логарифми c? - PullRequest
0 голосов
/ 16 января 2020

Может ли CPLEX, например, в python API, решить такую ​​проблему, как max (Sum (log (x)))? В основном у меня проблема с логарифмическими c (простыми как log (x)) объективными и линейными ограничениями.

best, Pavlos

1 Ответ

0 голосов
/ 16 января 2020

тогда вы можете использовать CPOptimizer:

В OPL следующий код работает нормально

using CP;

dvar int x in 0..100000;
dvar int y in 0..100000;

dexpr float ax=1+x/1000;
dexpr float ay=1+y/1000;

minimize log(ax-ay);
subject to
{
  abs(ax-ay)>=1;
}

и с python docplex вы можете написать

from docplex.cp.model import CpoModel

mdl = CpoModel(name='buses')
x = mdl.integer_var(0,100000,name='x')
y = mdl.integer_var(0,100000,name='y')
mdl.add(mdl.abs(x/1000-y/1000)>=1);
mdl.minimize(mdl.log(mdl.abs(x/1000-y/1000)))

msol=mdl.solve()

print("x=",msol[x])
print("y=",msol[y])
...