使用ILOG最大化CPLEX中的目标函数

时间:2013-04-24 19:41:25

标签: cplex ilog

我正在开展一个项目,我想知道CPLEX for 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个不同的频道需要付费。

1 个答案:

答案 0 :(得分:0)

我不清楚你正在尝试获取值的决策变量是什么。我猜你是在试图找到每个渠道上每个客户的数量(数量[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]); 

当然,我可能完全错了......而且,我可能会在这里用术语快速松散地玩,但我想要了解至少一个简单的启动方法。一旦你得到了你需要的东西,那么你可以扩展模型或研究更复杂的不确定性处理,可能使用更复杂的条件概率处理,使用多种场景等。

要包含概率,实现这一目标的一种简单方法是考虑期望值,可以将其视为简单的值乘以概率,因此在此基础上以0.3的概率出售100美元只有期望值价值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]);