首先,我们需要计算每个客户每种集装箱重量出现的概率。假设每个集装箱有5种可能的重量,客户提供的重量为'w_i',则每种重量的概率为'p_{i,j}=\frac{1}{5}',其中 'j\in{1,2,3,4,5}'。

接下来,我们可以采用贪心算法来选择承运客户。具体地,我们按照报价从高到低排序,然后依次选择客户,直到不能再添加新的集装箱为止。

在选择客户时,我们需要考虑两个限制条件:最大载柜量和最大载重吨位。为了避免超过最大载重吨位,我们可以按照集装箱重量从小到大依次添加,直到超过最大载重吨位为止。为了避免超过最大载柜量,我们可以在每次添加集装箱时检查当前已经选择的集装箱数量是否超过了最大载柜量,如果超过了则不能再添加。

具体实现时,我们可以使用一个优先队列来存储客户,队列中的元素按照报价从高到低排序。每次选择客户时,从队列中取出最高报价的客户,计算其每种集装箱重量的概率加权平均值,然后按照集装箱重量从小到大依次尝试添加集装箱,直到不能再添加为止。如果成功添加了集装箱,则将客户重新插入队列中,按照新的优先级顺序排列。如果不能添加集装箱,则舍弃该客户,并继续选择队列中的下一个客户。

在本例中,我们可以按照如下步骤选择承运客户:

  1. 将客户按照报价从高到低排序,得到优先队列如下:

客户编号 集装箱重量(吨) 报价 17 100 160.9 4 50 61.65 18 66 119.9 12 39 74.15 27 35.5 60.3 3 26 42.15 25 23.5 46.35 26 30.5 42.95 23 23 38.15 24 20.1 37.75 1 20 32.7 7 19 34.75 2 18 27 29 15 28.8 30 16 30.95 21 21 26.95 13 36 52.75 28 11 19.15 5 12 22.85 6 13 20.45 19 6 8.9 20 7 12.7 8 33 44.35 9 25 25.35 16 5 9.35 10 2 3.7 14 1 1.65

  1. 依次选择客户,直到不能再添加集装箱为止:
  • 第一次选择客户17,计算其每种集装箱重量的概率加权平均值为'w_{17}=100',尝试添加集装箱时发现不能再添加,舍弃该客户。
  • 第二次选择客户4,计算其每种集装箱重量的概率加权平均值为'w_4=50',依次尝试添加集装箱,添加了2个重量为50的集装箱后,超过了最大载重吨位,不能再添加,将客户重新插入队列中,得到新的优先队列:

客户编号 集装箱重量(吨) 报价 18 66 119.9 12 39 74.15 27 35.5 60.3 3 26 42.15 25 23.5 46.35 26 30.5 42.95 23 23 38.15 24 20.1 37.75 1 20 32.7 7 19 34.75 2 18 27 29 15 28.8 30 16 30.95 21 21 26.95 13 36 52.75 28 11 19.15 5 12 22.85 6 13 20.45 19 6 8.9 20 7 12.7 8 33 44.35 9 25 25.35 16 5 9.35 10 2 3.7 14 1 1.65

  • 第三次选择客户18,计算其每种集装箱重量的概率加权平均值为'w_{18}=66',尝试添加集装箱时发现不能再添加,舍弃该客户。
  • 第四次选择客户12,计算其每种集装箱重量的概率加权平均值为'w_{12}=39',依次尝试添加集装箱,添加了1个重量为39的集装箱后,超过了最大载重吨位,不能再添加,将客户重新插入队列中,得到新的优先队列:

客户编号 集装箱重量(吨) 报价 27 35.5 60.3 3 26 42.15 25 23.5 46.35 26 30.5 42.95 23 23 38.15 24 20.1 37.75 1 20 32.7 7 19 34.75 2 18 27 29 15 28.8 30 16 30.95 21 21 26.95 13 36 52.75 28 11 19.15 5 12 22.85 6 13 20.45 19 6 8.9 20 7 12.7 8 33 44.35 9 25 25.35 16 5 9.35 10 2 3.7 14 1 1.65

  • 第五次选择客户27,计算其每种集装箱重量的概率加权平均值为'w_{27}=35.5',依次尝试添加集装箱,添加了9个重量为35.5的集装箱后,超过了最大载柜量,不能再添加,将客户重新插入队列中,得到新的优先队列:

客户编号 集装箱重量(吨) 报价 3 26 42.15 25 23.5 46.35 26 30.5 42.95 23 23 38.15 24 20.1 37.75 1 20 32.7 7 19 34.75 2 18 27 29 15 28.8 30 16 30.95 21 21 26.95 13 36 52.75 28 11 19.15 5 12 22.85 6 13 20.45 19 6 8.9 20 7 12.7 8 33 44.35 9 25 25.35 16 5 9.35 10 2 3.7 14 1 1.65

  • 第六次选择客户3,计算其每种集装箱重量的概率加权平均值为'w_3=26',依次尝试添加集装箱,添加了10个重量为26的集装箱后,超过了最大载柜量,不能再添加,将客户重新插入队列中,得到新的优先队列:

客户编号 集装箱重量(吨) 报价 25 23.5 46.35 26 30.5 42.95 23 23 38.15 24 20.1 37.75 1 20 32.7 7 19 34.75 2 18 27 29 15 28.8 30 16 30.95 21 21 26.95 13 36 52.75 28 11 19.15 5 12 22.85 6 13 20.45 19 6 8.9 20 7 12.7 8 33 44.35 9 25 25.35 16 5 9.35 10 2 3.7 14 1 1.65

  • 第七次选择客户25,计算其每种集装箱重量的概率加权平均值为'w_{25}=23.5',依次尝试添加集装箱时发现不能再添加,舍弃该客户。
  • 第八次选择客户26,计算其每种集装箱重量的概率加权平均值为'w_{26}=30.5',依次尝试添加集装箱,添加了9个重量为30.5的集装箱后,超过了最大载柜量,不能再添加,将客户重新插入队列中,得到新的优先队列:

客户编号 集装箱重量(吨) 报价 23 23 38.15 24 20.1 37.75 1 20 32.7 7 19 34.75 2 18 27 29 15 28.8 30 16 30.95 21 21 26.95 13 36 52.75 28 11 19.15 5 12 22.85 6 13 20.45 19 6 8.9 20 7 12.7 8 33 44.35 9 25 25.35 16 5 9.35 10 2 3.7 14 1 1.65

  • 第九次选择客户23,计算其每种集装箱重量的概率加权平均值为'w_{23}=23',依次尝试添加集装箱,添加了10个重量为23的集装箱后,超过了最大载柜量,不能再添加,将客户重新插入队列中,得到新的优先队列:

客户编号 集装箱重量(吨) 报价 24 20.1 37.75 1 20 32.7 7 19 34.75 2 18 27 29 15 28.8 30 16 30.95 21 21 26.95 13 36 52.75 28 11 19.15 5 12 22.85 6 13 20.45 19 6 8.9 20 7 12.7 8 33 44.35 9 25 25.35 16 5 9.35 10 2 3.7 14 1 1.65

  • 第十次选择客户24,计算其每种集装箱重量的概率加权平均值为'w_{24}=20.1',依次尝试添加集装箱时发现不能再添加,舍弃该客户。
  • 第十一次选择客户1,计算其每种集装箱重量的概率加权平均值为'w_1=20',依次尝试添加集装箱,添加了1个重量为20的集装箱后,超过了最大载重吨位,不能再添加,将客户重新插入队列中,得到新的优先队列:

客户编号 集装箱重量(吨) 报价 7 19 34.75 2 18 27 29 15 28.8 30 16 30.95 21 21 26.95 13 36 52.75 28 11 19.15 5 12 22.85 6 13 20.45 19 6 8.9 20 7 12.7 8 33 44.35 9 25 25.35 16 5 9.35 10 2 3.7 14 1 1.65

  • 第十二次选择客户7,计算其每种集装箱重量的概率加权平均值为'w_7=19',依次尝试添加集装箱,添加了1个重量为19的集装箱后,超过了最大载重吨位,不能再添加,将客户重新插入队列中,得到新的优先队列:

客户编号 集装箱重量(吨) 报价 2 18 27 29 15 28.8 30 16 30.95 21 21 26.95 13 36 52.75 28 11 19.15 5 12 22.85 6 13 20.45 19 6 8.9 20 7 12.7 8 33 44.35 9 25 25.35 16 5 9.35 10 2 3.7 14 1 1.65

  • 第十三次选择客户2,计算其每种集装箱重量的概率加权平均值为'w_2=18',依次尝试添加集装箱,添加了1个重量为18的集装箱后,超过了最大载重吨位,不能再添加,将
货轮公司集装箱预订系统设计与优化

原文地址: https://www.cveoy.top/t/topic/oYaM 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录