У меня есть вопрос относительно возможности cvxpy систематически выбирать одно из решений, которые приводят к одинаковому значению целевой функции.
Рассмотрим в качестве примера типичную задачу оптимизации цепочки поставок:
Есть товар, который заказывают клиенты A, B, C.
Спрос на этот товар составляет 100, 200 и 100 шт. Соответственно (общий спрос - 400 шт.).
В наличии 250 шт. (Следовательно, нехватка 150 шт.).
Каждый покупатель платит за товар одинаковую цену (10 долларов за товар).
Цель состоит в том, чтобы распределить этот продукт между покупателями таким образом, чтобы доход был максимальным.
Поскольку цены за единицу идентичны, существует несколько возможных решений / альтернатив распределения, что приводит к оптимальному значению целевой функции в 2500 долларов США (т. Е. Общее распределение, умноженное на цену за единицу).
Есть ли способ передать в качестве параметра решателю (например, CBC или cvxpy), какую из альтернатив распределения следует выбрать? По умолчанию решающая программа выполняет распределение по принципу «первым пришел - первым обслужен», тогда как предполагаемое распределение пропорционально спросу.
Будем очень признательны за вашу помощь и содействие.
objective = default-objective + 0.01 * tie-breaking-objective
). Это делается постоянно и дает решателю достаточно свободы для использования умного ветвления (производительности). Примечание: По умолчанию решающая программа распределяет по принципу «первым пришел - первым обслужен» - это ваша догадка, и это не гарантируется! - person sascha   schedule 03.02.2021