Прикладной CPLEX в YALMIP, Ошибка 1001: Недостаточно памяти - PullRequest
0 голосов
/ 18 сентября 2018

YALMIP: неизвестная проблема в решателе (включите «отладку» в sdpsettings) (ошибка при использовании cplexmilp (строка 328) CPLEX Error 1001: Out of memory.)
Я применил cplex solver в yalmip, но модель не может быть решена. Я думаю, что настройки памяти по умолчанию приводят к этой ошибке. Код настроек cplex нельзя использовать в yalmip.

cplex.setParam (IloCplex :: WorkDir, "c: / cplex /");
cplex.setParam (IloCplex :: NodeFileInd, 2); Так как я могу правильно установить память. Спасибо.

This is error information
There may be further error information in the clone logs.
Flow cuts applied:  116
Mixed integer rounding cuts applied:  299
Lift and project cuts applied:  75
Gomory fractional cuts applied:  60
Warning: MIP starts not constructed because of out-of-memory status.

Root node processing (before b&c):
  Real time             =    5.02 sec. (945.62 ticks)
Parallel b&c, 4 threads:
  Real time             =  957.66 sec. (874133.10 ticks)
  Sync time (average)   =   36.04 sec.
  Wait time (average)   =    0.05 sec.
                      ------------
Total (root+branch&cut) =  962.67 sec. (875078.72 ticks)

result = 

yalmiptime: NaN
solvertime: NaN
      info: [1x128 char]
   problem: 9

1 Ответ

0 голосов
/ 03 октября 2018

На вашем компьютере недостаточно оперативной памяти для запуска вашей проблемы.

Есть несколько трюков, которые вы можете сделать

  • Установите для параметра MIPEmphasis значение 1. Это сделает CPLEX акцентирующим внимание на поиске возможных решений, что может привести к меньшим размерам дерева B & B.
  • Установите для параметра NodeFileInt значение 3. Это приведет к сохранению вашего дерева B & B на жестком диске в сжатом файле. Однако это значительно замедлит скорость решателя.
  • Используйте параметр WorkMem. Установите его на мягкое ограничение, которое может обрабатываться вашей оперативной памятью. После превышения этого предела CPLEX сам рассмотрит другие стратегии использования памяти.
  • Используйте CPLEX только с одной нитью. Поэтому ни одна переменная или состояние не будут скопированы из одного потока в другой.

Если ни одна из этих стратегий не работает, то мы ничего не можем сделать. Вам нужно перенастроить свою модель или перейти на ПК с большим объемом оперативной памяти.

...