Uber优步

知乎上有网友分析过Uber的三大算法(溢价算法,就近派单算法,多人乘坐算法)

Uber希望新系统能够处理每秒1百万写操作和更高的读操作,因此需要shard分片数据。

  1. Geospatial indexing 地理空间索引

1 如何跟踪车辆位置

(track vehicles)

Smart phones have a GPS in them, the system depends on both the driver and the customer having such a phone. Unfortunately there are times when the GPS is not accurate, such as in certain places where the satelite is blocked and the resultant data is inaccurate.

When the customer requests a car the request is matched to the nearest driver that is available on the system and they are offered the fare. If they accept it they then come to get the customer, if they do not, the fare is offered to the next nearest driver.

2 匹配算法(就近派单算法)

Uber在派单之前用来匹配“乘客需求-司机供给”的模型,每个订单通过算法(包括,最短到达时间,是否可用、以往评价等因素),决定了司机和车辆的推荐顺位。

  1. 通过算法找到能够最短到达的司机
  2. 司机看不到目的地,因此也无法拒载。(潜在问题是,司机如果对目的地那片区域如果不熟悉怎么办?除非算法里自动匹配司机过往的行车记录,有类似行车记录的司机才进行推荐,否则将造成司机找不到路,行车体验很差的结果。Uber目前推出的最短路程游戏就是解决这个问题的。)

References

  1. Uber动态定价中蕴含的算法
  2. 如何看待Uber的动态定价?
  3. How Uber Scales Their Real-Time Market Platform
  4. TChannel: Java Impl based on Netty
  5. The Uber software architecture

results matching ""

    No results matching ""