微型工作平台 - 与最近的工人匹配订单

时间:2018-02-24 22:07:36

标签: algorithm design-patterns


我目前正计划开发一个微型工作平台,通过地理定位将维护人员(水管工,电工,木匠等)与有需要的用户进行匹配。预订可以提前或最后一分钟(至少1小时前)以同样的价格预订。

现在,我正在努力寻找一种合适的匹配算法,以便有效地为可用的工作人员分配预订。匹配器基本上是一个捕捉“NewBooking”事件的听众,这些事件定期被触发,直到工人被分配到特定预订。工人可以接受或拒绝工作,并可以通过简单的切换按钮选择工作时间(当它关闭时,他们将不会收到任何请求)。 总的来说,订单是在一定的公里范围内分配的。

我想到的第一个系统基于同心区域,每次事件被触发(不是无限期)时,其半径都会增加。该区域内的所有在线工作人员都将收到通知,并且第一个接受该工作的人员将获得该工作。

优点:

  • 有更多机会与最后一分钟预订相匹配;

缺点:

  • 工人可能会收到很多通知;
  • 后端处理多个push&邮件;

1st algorithm

第二个解决方案基于线性距离,将工作分配给最近的可用工作人员,如果(s)他在一定时间范围内不接受它(像30'),算法转到下一个可用的人,依此类推。

优点:

  • 处理能力较低;
  • 具有大量工作人员和请求的可扩展性;

缺点:

  • 匹配最后一分钟订单的机会较少;

2nd algorithm

第三种选择是根据反馈评分,使用第一种方法在多个批次中发送订单;收到通知的第一组是由4星以上,然后3 +平均。投票等等。

我想知道在这种匹配算法方面是否有最佳实践,因为即使出租车应用程序也面临这些问题。 无论如何,您会建议采用哪种方法(如果有的话),或者您对可能的改进有任何建议? 谢谢

0 个答案:

没有答案