优化任务

时间:2015-04-01 15:21:35

标签: php algorithm optimization mathematical-optimization

我在优化功能方面遇到问题,无法生成TAX FREE文件。

我添加订单位置:名称,价格,重量和数量(计数)。

像:

product = array();
product[0] = array('name'=>'product_a','price'=>32.00,'weight'=>5.23,'numbers'=>100);
product[1] = array('name'=>'product_b','price'=>22.00,'weight'=>2.23,'numbers'=>140);
product[2] = array('name'=>'product_c','price'=>12.10,'weight'=>3.03,'numbers'=>150);
product[3] = array('name'=>'product_d','price'=>5.12,'weight'=>4.03,'numbers'=>10);
product[4] = array('name'=>'product_e','price'=>52.22,'weight'=>5.13,'numbers'=>22);

不是从这个职位我必须生成最小的TAX FREE文件。在一个文件中,我可以得到总和最大50和总和价格2000(价格是一个元素。如果我有数字100结果是100 *价格)。

所以我需要破坏位置并生成具有最小计数的新文档。 当我只使用10个元素(都是100个)时,我必须在下一个文档中添加90个元素。

有人可以帮我吗?我应该使用什么样的算法?有人能告诉我一步一步怎么做?

1 个答案:

答案 0 :(得分:0)

首先按各自的权重划分价格。

然后按降序排序。

选择最大值并将价格和重量的相应值存储在不同的变量中。

选择第二大值并将相应的价格和权重添加到上述点中声明的变量。

重复步骤4,直到价格> = 2000或重量> = 50。