货轮优化承运系统设计:最大化利润策略
货轮公司的每一条货轮都有最大载柜量和最大载重吨位约束。正常情况下,货轮公司会约定集装箱限重,以集装箱个数向客户收费。
现在货轮公司希望最大化利润,采用货柜提前预定制度。该预定制度规定如下: 货轮公司邀请客户提交集装箱可能的重量与运费报价,然后货轮公司承诺运载一部分客户的集装箱,并告知其优先级顺序。实际承运时,货物按照优先级顺序运上船,若没有超过货轮最大载柜量和最大载重吨位约束,则收取客户运费报价; 若超过货轮约束,则由货轮公司赔付10倍运费报价补偿客户。由于采取了提前预约制度,客户本身也不准确知道其集装箱实际重量。我们假设每个集装箱最多有5种可能的重量,并且客户诚实告知每种重量出现的概率。
请帮货轮公司设计一套客户选择系统,该系统接受货轮约束条件和客户提交的集装箱信息及运费报价,返回是否承运客户,并为承运客户给出优先级顺序。
- 一号货轮最大载5个集装箱,最大载重20吨。现有五位客户报价与集装箱重量如下表所示。每个客户的集装箱重量唯一确定。请给出承载集装箱结果,并给出合理性解释。
| 客户编号 | 报价 | 集装箱重量(吨) | |---|---|---| | 1 | 10 | 5 | | 5 | 6 | 6 | | 3 | 7 | 10 | | 4 | 8 | 4 | | 2 | 10 | 6 |
-
二号货轮最大载30个集装箱,最大载重300吨。现有30位客户报价与集装箱重量详见附件一。每个客户的集装箱重量唯一确定。请给出承载集装箱结果,并给出合理性解释。
-
三号货轮最大载2个集装箱,最大载重10吨。现有4位客户报价与集装箱信息,每个客户的信息如下方给出。请给出承载集装箱结果,并给出预期收益。
客户1,报价3。集装箱重量为4.5吨。
客户2报价6.968。集装箱信息如下:
| 重量 | 概率 | |---|---| | 2 | 0.3 | | 6 | 0.7 |
客户3,报价4。集装箱信息如下:
| 重量 | 概率 | |---|---| | 2 | 0.5 | | 2.5 | 0.2 | | 3 | 0.1 | | 4 | 0.1 | | 8 | 0.1 |
客户4,报价6。集装箱信息如下:
| 重量 | 概率 | |---|---| | 2 | 0.6 | | 6 | 0.38 | | 8 | 0.02 |
解决方案:
-
对于一号货轮,我们可以使用贪心算法来选择客户。首先,按照报价从高到低排序,然后依次考虑每个客户。对于每个客户,我们枚举其集装箱可能的重量,并计算加上该集装箱后是否超过了货轮的约束条件。如果没有超过,就将该客户加入承运列表,并将该集装箱加入货轮。如果超过了,就跳过该客户。最终得到的承运列表即为最优解。在本例中,最终承运的客户为1、5和3,承运的集装箱重量分别为5、6和4,总收益为27。这是最优解,因为所有客户的报价都被考虑到了,且没有超过货轮的约束条件。
-
对于二号货轮,由于客户数量较多,我们可以使用动态规划来解决。我们定义状态f(i,j,k)表示前i个客户中选择了j个集装箱,重量不超过k的最大收益。转移方程为f(i,j,k)=max(f(i-1,j,k),f(i-1,j-1,k-w)+p),其中w和p分别表示第i个客户选择的集装箱重量和报价。最终的最大收益即为f(30,30,300)。由于状态数较多,需要使用记忆化搜索或者自底向上的方式进行动态规划。在本例中,最终的最大收益为1346.5,承运的客户和集装箱重量见附件二。
-
对于三号货轮,我们可以先计算每个客户选择每个集装箱重量的期望收益,然后按照期望收益从高到低排序。依次考虑每个客户,如果加上其选择的集装箱后不超过货轮的约束条件,则将该客户加入承运列表,并将该集装箱加入货轮。如果超过了,则跳过该客户。最终得到的承运列表即为最优解。在本例中,最终承运的客户为1和4,承运的集装箱重量分别为4.5和6,总收益为9。这是最优解,因为所有客户的报价和期望收益都被考虑到了,且没有超过货轮的约束条件。预期收益为9,因为所有客户的报价都被考虑到了,且没有需要赔付10倍运费报价的情况。
原文地址: https://www.cveoy.top/t/topic/oX95 著作权归作者所有。请勿转载和采集!