让我们假设多家餐馆的送餐服务(比如说20).有(比如10个)司机可用.此外,假设我们在4小时内获得100份订单,将这些餐厅的食物送到家中.
因此,必须协调驾驶员在一个地方提取食物并在家中交付给顾客.
主要目标是最小化交货时间,即订单到达家中的时间.次要目标是最大化驱动器容量(即,递送所有订单的最少时间).
请记住,订单是在四个小时内完成的,所以让我们说均匀,即一个非常3分钟.此外,让我们假设订单是随机到20家餐馆.
假设我可以计算从任何位置到目的地到第二个目的地的旅行时间.
我实时了解所有司机的位置.我也知道他们的状态,即他们目前正在接收订单(到达已知目的地),他们是否已经接到订单并且正在前往已知目的地.
限制是:
1)必须在给定时间后领取订单(即餐厅的准备时间)
2)必须在45分钟内交付订单(否则提醒)
3)必须以“x”分钟填充时间以适应步行到存储到取件订单等的时间.
4)必须以“y”分钟填充时间,以适应向客户交付订单和收取付款的时间.
5)司机只有一套给定的付款方式(例如Cash,Visa,Amex,MasterCard).我们必须将客户要求(现金,签证等)与驾驶员能力(现金,签证,美国运通等)相匹配.
因此,例如,如果我得到两个目的地靠近并靠近取货地点的订单,即使有另一个“免费”驱动程序(没有做任何事情),使用相同的驱动程序来提取订单和交付也会更有效率两个订单.
您可以假设每个餐厅都会执行交付区域,这意味着,从他们那里订购的大多数人很可能会接近他们.因此,此算法应设法将驱动程序自动分段到城市区域,并且已经支持区域内的驱动程序.
最佳答案 这听起来像是带有Time
Windows的车辆路径问题的在线版本.我建议你谷歌,并阅读出现的论文.