Максимизация целевой функции в CPLEX с помощью ILOG

Я работал над проектом, и мне было интересно узнать о функциях CPLEX для ILOG. Например, я продаю продукты каждому покупателю, у меня разные вероятности для каждого из 6 продуктов, это означает, что вероятность того, что человек купит продукт, разная. Предположим, у меня есть 2 клиента и 6 продуктов. Для первого клиента вероятность составляет 0,5 для первого продукта, 0,3 для второго продукта и т. Д. Итак, я хочу максимизировать свою прибыль и знаю доход для каждого продукта. Моя проблема в том, как я могу выбрать наиболее прибыльный продукт в соответствии с этими вероятностями. Очевидно, должен быть способ использовать эти вероятности. В проекте они просто дают вероятности, но не объясняют, как их использовать. На данный момент моя функция такая:

maximize
 sum (c in Customers, p in Products, ch in Channels)  (Revenue[p] * quantity[c][ch] - quantity[c][ch] * Cost[ch]); 

Количество используется для определения того, сколько раз канал используется для продажи продукта. Есть стоимость для 4 разных каналов.


person Ahmet Tanakol    schedule 24.04.2013    source источник


Ответы (1)


Мне не совсем понятно, для каких переменных решения вы пытаетесь получить значения. Я предполагаю, что вы пытаетесь найти количество для каждого покупателя на каждом канале (количество [c] [ch] - это переменные в модели, а доходы и затраты известны?).

Я также немного сбит с толку, почему нет явного индекса количественных переменных для продуктов - это было бы более нормально, если бы вы работали над моделью такого типа, например:

maximize
 sum (c in Customers, p in Products, ch in Channels)  (Revenue[p] * quantity[c][ch][p] - quantity[c][ch][p] * Cost[ch]); 

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

Чтобы включить вероятности, простой способ добиться этого - подумать об ожидаемом значении, которое можно представить как просто значение, умноженное на его вероятность, поэтому на этой основе продажа 100 долларов с вероятностью 0,3 имеет только ожидаемое значение 30 долларов. , в то время как другая продажа на 80 долларов с вероятностью 0,5 имеет ожидание 40 долларов и поэтому является более ценной. Это то, что вы искали?

Если это нормально в качестве начального подхода, вы можете попробовать что-нибудь вроде:

maximize
 sum (c in Customers, p in Products, ch in Channels)  Probability[p] * (Revenue[p] * quantity[c][ch][p] - quantity[c][ch][p] * Cost[ch]); 
person TimChippingtonDerrick    schedule 25.04.2013
comment
Спасибо, Тим, количество [клиенты] [каналы] используется для выбора лучших каналов для связи с клиентом. Есть некоторые ограничения относительно пропускной способности и доступности каналов. Вот почему я не использовал никаких сведений о продуктах для этой переменной решения. Выручка и стоимость известны. Расчет ожидаемых значений мне сейчас кажется вполне логичным, не знаю, почему я не подумал об этом. Я думал, как использовать продукты внутри количества, но не мог найти никакого решения. Эта вероятность рассчитывается как «склонность к покупке x подъем канала». Получение их с 2-х разных листов в Excel. - person Ahmet Tanakol; 25.04.2013
comment
Я сделал то, что вы мне сказали, и заметил различное использование каналов, я постараюсь найти правильные результаты и могу сказать, правильный метод или нет. - person Ahmet Tanakol; 25.04.2013