非线性优化方法

时间:2014-10-02 21:22:56

标签: python python-2.7 mathematical-optimization

我试图找到产品A,B和C的最优价格点,以获得收入/数量的总约束。

e.g。最大收入(a,b,c)用于约束[REVENUE(a,b,c)/ QUANTITY(a,b,c)> X]

我的输入数据如下所示:

pA  qA revA revA/qA     pB  qB revB revB/qB     pC  qC revC revC/qC
1   140 229 1.64        1   820 420 0.51        1   827 738 0.89
2   135 242 1.79        2   787 421 0.53        2   794 723 0.91
3   131 234 1.79        3   761 422 0.55        3   772 722 0.94
4   114 232 2.04        4   736 421 0.57        4   757 723 0.96
5   111 235 2.12        5   714 422 0.59        5   623 622 1.00

在这种情况下,收入不仅仅是价格和数量的函数,这就是为什么它是一个实际数据点而不是计算字段,例如revA / revQ。

  

所以如果我想在这里最大化收入,我会选择pA = 2,pB = 5,   pC = 1.这给我总收入1402,总R /总Q.   (1402/1676)为0.84。

这就是约束的来源。

我们说我需要一个至少0.85的R / Q.这里的全局最大值不再可行。

  

pA = 5,pB = 5,pC = 5,但是可行;收入减少(1279),但它符合我的要求   R / Q约为0.85,为0.88   (一千四百〇二分之一千二百七十九)。

所以看看我的输入,而不是必须从125种可能的组合中找出解决方案(3种不同产品的5个价格点),我正在处理的规模是3个产品的1K +价格点数。

我目前有一个循环功能,可以迭代100个价格点的所有可能性,但显然,如果我们达到1000个价格点或1,000,000,000个组合,这不是最佳方式。在某些情况下,这个问题可能会成倍增加,因此我需要更加明智。

我是Python的新手,所以欢迎任何帮助或想法。我已经阅读了一些关于scipy优化的文档,但是我在掌握可以使用的数学模型时遇到了麻烦,更重要的是要用什么类型的模型来解决这个问题。

我过去曾使用Excel Solver进化引擎为这个问题找到了很好的解决方案,但我认为通过使用Python可以获得更多的性能。

这不是一个简单的问题,非常感谢任何有贡献的人,非常感谢。

干杯!

0 个答案:

没有答案