最大化利润的算法:解决方法/方法? (高级NP-完全)
Posted
技术标签:
【中文标题】最大化利润的算法:解决方法/方法? (高级NP-完全)【英文标题】:Algorithm to maximize profit: ways to solve/approach? (Advanced NP-Complete) 【发布时间】:2012-01-15 09:57:18 【问题描述】:这个很难,所以非常感谢所有帮助!
我知道它是 NP-Complete,因此无法在多项式时间内解决,但在分析中寻求帮助,它会减少到什么类型的 NP-Complete 问题,它提醒您类似的问题等等。
故事如下。我拥有一家拥有 n 辆卡车的冰淇淋卡车业务。我在 m 个站点进行送货。每个位置 mi 都有 pi 人在等我。买了冰淇淋后,每个人都离开了。 pi随着时间的推移而增加,因为越来越多的人排队购买冰淇淋。
我如何才能确定接下来将卡车送到哪里以便在任何一天最大化我的利润?
注意事项:
两辆卡车在同一时间停在同一地点只会获得一次利润,即一辆卡车到达后人们离开 卡车从一个地点到另一个地点需要时间 pi随着时间的推移在每个站点增加,但有些站点的增长速度比其他站点快,即某些位置靠近购物中心(位置、位置、位置)我尝试将其简化为多机调度问题、旅行销售人员问题、ILP 等,但主要问题是每个位置的 pi (即TSP中的距离或调度问题中的作业长度)不断增加。
提前致谢!
【问题讨论】:
p_i 是如何变化的?每个都是恒定的增长率(随时间线性)? Jason,您的描述中缺少某些内容,因为正如您所说,看起来人们会永远等待交货,因此您何时将卡车开到交货站并不重要。该模型必须包含一个参数,该参数描述人们在离开之前准备等待冰淇淋多长时间,或类似的东西;还有一个问题是冰淇淋车能装多少。否则有一个简单的解决方案:你只有 1 辆卡车,它在深夜通过车站一次,每个人都等了一整天(旅行推销员)。 这可能在 cstheory.stackexchange.com 上得到更好的服务 @antti.huima - 如果 p_i 以随着 p_i 增加而减少的速度增加,那么您的琐事将不起作用。 (例如,如果人们很快就加入了一个较短的队列,但又不愿意加入已经很长的队列。) 关于 p_i 增长率下降的观点提出了另一种看待问题的方式,尤其是在没有迹象表明人们厌倦并走开的情况下。假设每个排队等候的人迟早都会产生利润,并将其视为资产。冰淇淋车的工作是在排队很长以致新顾客到达率下降的站点提供服务,取消排队以便新顾客以高速度再次到达。目标是最大化客户到达率,而不是立即获利。 【参考方案1】:听起来像是Assignment Problem. 的变体,因此您可能没有考虑过的一种方法是Auction Algorithm(它的优点是可以轻松并行化)或Hungarian algorithm。
我知道您的问题存在复杂性(总是存在!),但拍卖算法非常灵活。您的卡车和客户之间可以有相当复杂的成本函数。您还可以调整算法,让多辆卡车在容量限制的情况下为多个客户提供服务。
【讨论】:
以上是关于最大化利润的算法:解决方法/方法? (高级NP-完全)的主要内容,如果未能解决你的问题,请参考以下文章