3

У меня есть код linprog, который имеет x1, x2, x3 и x4 в целевой функции.Может ли linprog дать целочисленное значение x?

Результаты я получаю дать мне значения в форме:

x = 
6.6667 
0.0420 
0 
0 

Что в случае, если я пытаюсь модель не имеет физического смысла, потому что иксы представляют собой количество единиц конкретной технологии, и поэтому, например, 0.0420 фактически не существует. Есть ли способ заставить «linprog» найти оптимальное целочисленное значение x?

Спасибо

ответ

3

Это называется integer programming и вообще NP-трудной. Это не распространяется на linprog, так как это совершенно другая и сложная проблема.

Here's a related question (but not a duplicate) from Stack Overflow about Integer Programming.

+0

, который будет использовать решатель bintprog? На высоком уровне, как бинарный формат перемещается в более высокие целые числа в Matlab? например, например, например, например, от 1 0 0 1 до 5 0 0 2? – user643469

+0

'bintprog' предназначен только для случаев, когда неизвестная переменная может быть только 0 или 1. Возможно, вы сможете переформулировать свою проблему в двоичном целочисленном программировании, но это только догадка. –

+0

@ user643469 Возможно, вам повезло (http://math.stackexchange.com/). –

1

Вы должны рассмотреть возможность использования смешанного целочисленного программирования (вы получите его при добавлении «целочисленных ограничений», таких как «x integer» к линейной программе в linprog).

В прямом направлении я бы рекомендовал использовать Scip, так как он является «бесплатным» или Gams который является коммерческим продуктом, но предлагает бесплатную пробную версию для небольших экземпляров.

Более детальное сообщение на смешанном целочисленном программировании и correspondign решателей могут быть найдены в [SciComp] [3]

[3]: https://scicomp.stackexchange.com/questions/2679/objects-in-buckets-assignment-optimization-problem "SciComp".

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

  • Нет связанных вопросов^_^