Итак, вот контекст того, что я пытаюсь решить:
Я хочу разделить единицы затрат на две или более компании. Теперь я решил его для двух компаний со следующей целевой функцией:
20*x1 + 30*x2 + 100*x3 + 20*x4 + 30*x5
с переменными двоичного типа.
Предположим, я получил оптимизированное решение как:
x1 = 1
x2 = 0
x3 = 0
x4 = 1
x5 = 0
это означает, что компания A будет нести ответственность за удельные затраты x1 и x4, а компания B - за остальные затраты.
Это работает нормально, и я правильно закодировал целлюлозу. Я также могу использовать ограничения, чтобы ограничить максимальную стоимость для конкретной компании, с которой начинается все это. Сумма коэффициентов представляет собой общую стоимость данного проекта. Поэтому я использую эту сумму в качестве ограничения целевой функции, чтобы ограничить стоимость компании А.
Теперь то же самое я хочу сделать с 3 или более компаниями. Я понятия не имею, как сформулировать целевую функцию или функции, поскольку я думаю, что это может привести к проблеме с несколькими целевыми функциями, но на самом деле я не уверен.
Я не очень разбираюсь в линейном программировании, поэтому мне очень жаль, если я неправильно задал вопрос. Я не нашел ничего, что могло бы помочь мне в этом.
Я бы поместил код, но у меня есть намного больше переменных и некоторая базовая подготовка данных перед созданием функции, поэтому я создал гипотетический пример, чтобы облегчить понимание.
Большое спасибо за любую помощь.
company * X
матрицу, описывающую, какая компания обслуживает какие единицы затрат (для вышеприведенного: матрица двоичных переменных 2 x 5). (и нет: это не многокритериальная оптимизация) - person sascha   schedule 26.03.2018