2

Я решаю проблему MIP с помощью CPLEX. После его решения я хочу снизить расходы. Я отдаю себе отчет в том, что снижение затрат не существует для MIP, так что я сделал следующее:CPLEX обеспечивает снижение затрат на MIP?

 int type = CPXgetprobtype(env, lp); 
    if(CPXchgprobtype(env, lp, CPXPROB_FIXEDMILP)) abort(); 
    if(CPXlpopt(env,lp)) abort(); 
    int blabla; double blublu; 
    if(CPXsolution (env, lp, &blabla , &blublu , x, pi, slack, dj)) abort(); 
    for (int i = 0; i < CPXgetnumcols(env,lp); i++) { 
     printf("v%d = %f, ", i,dj[i]); 
     if ((i+1) % 10 == 0) printf("\n"); 
    } 
    if(CPXchgprobtype(env, lp, type)) abort(); 

При печати диджей массива, это все 0. Я также попытался использовать CPXgetdj вместо CPXsolution, с тем же результатом.

После прочтения this Я верю, что я делаю правильно. Но, похоже, это не работает. У моих проблем есть 20000 переменных, и я пробовал с их связью, и он всегда говорит 0 ...

У меня есть небольшой временной интервал, поэтому он не доказывает оптимальность (но он находит целочисленное решение), Я не уверен в этом.

Благодаря

+0

Вы получаете такое же поведение, если вы попытаетесь с интерактивными, как описано [здесь] (http://www-01.ibm.com/support/docview.wss? UID = swg21400009)? – rkersh

+0

Спасибо за подсказку. Я просто попробовал. Когда «написать решение» MIP, нет двойной информации об ограничениях или сокращения значений затрат для переменных. Затем я набираю «исправление проблемы с изменением», снова решусь, снова сохраняю решение, и на этот раз все ограничения имеют двойное значение (не 0), но все переменные имеют уменьшенную стоимость 0. Так что я думаю, что мой код C не был неправильным? Каким образом сокращенные расходы равны 0? Кажется очень странным. Кроме того, какая информация дает мне двойственность ограничения? (Я новичок в оптимизации ...) Спасибо! – ddeunagomez

+0

Может ли это иметь значение, что все мои уравнения - это уравнения, а не неравенства? – ddeunagomez

ответ

1

Рассмотрим общую линейную задачу P, где все переменные фиксируются в значении целого оптимального решения данной целочисленной задачи я. Пусть Р быть

enter image description here

, где Ь является линиями, проведенными сверху значение XJ в оптимальном целочисленном растворе. Двойная проблема D из P является

enter image description here

оптимальное решение D от стоимости г (D) = Z (P) = Z (я) мог можно найти установки

enter image description here

таким образом уменьшенные затраты

enter image description here

Смежные вопросы