Ограничения на минимизацию и их границы

У меня есть небольшая путаница в модели оптимизации, которую я пытаюсь решить. Это небольшая модель, позволяющая минимизировать стоимость двух устройств. Я только начал оптимизацию и не уверен, хорошо ли интерпретирую проблему в AMPL. Особенно в отношении ограничений минимизации и их границ.

У меня есть две переменные решения в качестве единиц в моих моделях. Стоимость u1 равна 10, а u2 - 13. Ограничение на u1 состоит в том, что вы не можете сделать более 100 единиц, а для u2 - 50 единиц. Я получил разные результаты, изменив границы этой задачи минимизации. Может ли кто-нибудь помочь мне интерпретировать происходящее?


var u1> = 0; var u2> = 0;

минимизировать стоимость единиц: 10 * u1 + 13 * u2;

с учетом unit1: 0 ‹= u1‹ = 100; с учетом unit2: 0 ‹= u2‹ = 50;


С указанными выше ограничениями я вывел как:

CPLEX 12.8.0.0: оптимальное решение; цель 0 0 двойных симплексных итераций (0 в фазе I) Цель: 0.000000: _varname _var: = 1 u1 0 2 u2 0;

: _objname _obj: = 1 costofunits 0;

: _conname _con: = 1 unit1 0 2 unit2 0

;

Снятие ограничений:

с учетом unit1: 100 ‹= u1‹ = 0; с учетом unit2: 50 ‹= u2‹ = 0;

ВЫХОД КАК:

несовместимые границы для ограничения unit1: нижняя граница = 100> верхняя граница = 0

несовместимые границы для ограничения unit2: нижняя граница = 50> верхняя граница = 0 Невозможные ограничения, определенные предварительным решением. Цель: 825.000000: _varname _var: = 1 u1 50 2 u2 25;

: _objname _obj: = 1 costofunits 825;

: _conname _con: = 1 unit1 10 2 unit2 13;


person Abi    schedule 24.01.2018    source источник
comment
Что вы ожидали увидеть, когда скажете 100 ≤ x ≤ 0?   -  person Erwin Kalvelagen    schedule 25.01.2018
comment
Это точно неправильно. Эрвин, я просто хочу минимизировать стоимость, но не хочу, чтобы она была нулевой. Проблема в том, что все, что я установил в качестве нижней границы в своих ограничениях, является оптимальным значением для соответствующих переменных. Как я могу избавиться от этой ситуации?   -  person Abi    schedule 26.01.2018


Ответы (1)


Для вашей первой проблемы: как вы определили проблему, цель состоит в том, чтобы минимизировать затраты, и самое простое решение - просто обнулить все с нулевыми затратами.

Для вашей второй проблемы сообщение об ошибке объясняет проблему. Вы установили нижнюю границу 100 для u1 (100 ‹= u1), а также верхнюю границу 0 (u1‹ = 0). Очевидно, что не существует числа, которое удовлетворяло бы обоим этим требованиям одновременно. Вместо «‹ = »в ваших ограничениях вы должны использовать здесь«> = », предполагая, что вы хотите связать u1 между 100 и 0.

Та же проблема для ограничения unit2.

person Geoffrey Brent    schedule 25.01.2018
comment
Доброе утро, Джеффери, Спасибо за ответ. Хочу минимизировать стоимость. Как вы думаете, что мои ограничения должны минимизировать это? Я новичок в этой проблеме и только начал учиться. Буду признателен за ваш ответ. - person Abi; 26.01.2018
comment
Проблема в том, что все, что я установил в качестве нижней границы в своих ограничениях, является оптимальным значением для соответствующих переменных. Как я могу избавиться от этой ситуации? - person Abi; 26.01.2018
comment
Если все ваше производство стоит денег, и вы пытаетесь минимизировать свои затраты, то самым дешевым решением будет построить как можно меньше - то есть нижнюю границу. Это правильное решение указанной вами проблемы; вы можете подумать о том, есть ли у сценария, который вы пытаетесь оптимизировать, какие-либо другие ограничения или цели, которые пока не охватываются моделью. - person Geoffrey Brent; 26.01.2018
comment
спасибо Geoffery за ваши комментарии. Я уловил идею с ваших слов. - person Abi; 05.02.2018