2016-02-04 3 views
0

Я пытаюсь написать смешанную целочисленную модель в IBM CPLEX, и у меня есть проблема. Вот проблема:Как выбрать параметры в соответствии с условием при моделировании LP?

Существует несколько различных курсов, которые может принять учащийся, а полезность, которую студент получает от курса, зависит как от учащегося, так и от курса. Увлекательная часть; полезность некоторых курсов иногда отличается от суммы их индивидуальных утилит, если они взяты вместе одним и тем же учеником. Если эта совместная утилита равна нулю, то следует учитывать отдельные утилиты. На этом этапе я планирую написать условие, которое заставляет модель принимать совместное значение полезности вместо отдельных значений этих двух курсов, если они будут взяты студентом, но я не мог этого сделать без нелинейности.

Благодарим за помощь.

ответ

1

Прежде всего, ваш вопрос не содержит очень важной информации: цель.

Я предполагаю, что цель состоит в том, чтобы назначить студентов курсам таким образом, чтобы общая полезность, получаемая учащимися путем прохождения курсов, была максимизирована. В этом случае все утилиты, которые могут быть получены любым студентом, пройдя любой курс, известны. Из вашего вопроса я также понимаю, что совместные утилиты также известны. Таким образом, мы можем определить новый «параметр» с именем потерей таким образом, что потери (к, л) означает количество «потерянная полезность», когда курсы к и л принимается одновременно студент , Эти значения легко вычисляются с использованием данных. Тогда мы могли бы решить эту проблему следующим образом:

  • Пусть ш (я, к) быть параметр определения количества полезности студента I выгоды, взяв курс K.

  • Пусть х (I, K) быть целым числом двоичной переменной определения я принимает ли студент конечно к или нет.

  • Пусть и (я, к) быть переменной определения фактического количества полезности, что студент получает от прохождения курса.

Целевая функция:

  • максимально sumof (и (х, к)) для всех студентов и курсов.

Условия:

  • х (я, к) * ш (г, к)> = и (я, к) (для всех студентов и курсов)

    Это гарантирует, что максимальная полезность ученика i из курса k не может превышать предполагаемую (заданную, максимально возможную) утилиту. Это также гарантирует, что u (i, k) устанавливается в ноль, когда x (i, k) равно нулю.

  • х (I, K)W (I, K) + х (I, L) W (I, L))> = U (I, K) + U (I, l) - потеря (k, l) для всех «пар курсов» и всех учащихся

    Это гарантирует, что сумма утилит, которую студент получает от двух курсов одновременно, не может превышать общую полезность.

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