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