CN110633881A - 一种竞赛中的对手匹配方法以及装置 - Google Patents
一种竞赛中的对手匹配方法以及装置 Download PDFInfo
- Publication number
- CN110633881A CN110633881A CN201810662902.XA CN201810662902A CN110633881A CN 110633881 A CN110633881 A CN 110633881A CN 201810662902 A CN201810662902 A CN 201810662902A CN 110633881 A CN110633881 A CN 110633881A
- Authority
- CN
- China
- Prior art keywords
- historical
- driver
- historical departure
- departure
- cluster
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 107
- 230000015654 memory Effects 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 10
- 230000006399 behavior Effects 0.000 claims description 9
- 238000001514 detection method Methods 0.000 claims description 3
- 230000000875 corresponding effect Effects 0.000 description 124
- 238000004364 calculation method Methods 0.000 description 5
- 230000009191 jumping Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 238000012804 iterative process Methods 0.000 description 2
- 238000004883 computer application Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000002045 lasting effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012797 qualification Methods 0.000 description 1
- 238000009751 slip forming Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000003245 working effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/02—Reservations, e.g. for tickets, services or events
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0631—Resource planning, allocation, distributing or scheduling for enterprises or organisations
- G06Q10/06311—Scheduling, planning or task assignment for a person or group
- G06Q10/063112—Skill-based matching of a person or a group to a task
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
- G06Q30/0645—Rental transactions; Leasing transactions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/40—Business processes related to the transportation industry
Landscapes
- Business, Economics & Management (AREA)
- Human Resources & Organizations (AREA)
- Engineering & Computer Science (AREA)
- Economics (AREA)
- Strategic Management (AREA)
- Tourism & Hospitality (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- Marketing (AREA)
- Physics & Mathematics (AREA)
- Entrepreneurship & Innovation (AREA)
- Development Economics (AREA)
- Accounting & Taxation (AREA)
- Quality & Reliability (AREA)
- Operations Research (AREA)
- Educational Administration (AREA)
- Finance (AREA)
- Game Theory and Decision Science (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Primary Health Care (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Traffic Control Systems (AREA)
Abstract
本申请提供了一种竞赛中的对手匹配方法以及装置,可以基于参与竞赛的司机的历史出车地点,以及与历史出车地点对应的历史接单数据,对参与竞赛到的司机进行对手匹配,使得匹配到同一竞赛组的司机具有较为公平的接单机会,提升匹配竞赛的公平性。该方法包括:获取参与竞赛的每个司机的多个历史出车地点;针对每个历史出车地点,获取与该历史出车地点对应的历史接单数据;根据与每个司机的多个历史出车地点对应的历史接单数据,对参与竞赛的各个司机进行对手匹配。
Description
技术领域
本申请涉及计算机应用技术领域,具体而言,涉及一种竞赛中的对手匹配方法以及装置。
背景技术
网约车作为一种新型的出行方式,已经被越来越多的人所选择,也有越来越多的人将网约车司机作为自己的第一职业或者第二职业。由于网约车的特殊性,有很多网约车司机与网约车平台之间的关系并非雇佣关系,而仅仅是普通的合同关系,因此大多数网约车司机都缺乏对身份的认同感和集体的归属感;且网约车司机的工作性质导致了当司机容易出现疲惫感和无成就感。
为了解决上述问题,当前网约车平台提出了一种通过网约车司机之间进行竞赛的方式来激励司机。竞赛有多种方式;对于专职司机来说,比较适合持续时间长,且参赛司机有多人的多人竞赛;对于兼职做网约车司机的人来说,他们并没有大量的时间和精力来参与持续时间长的竞赛,因此更适合持续时间短,且参赛司机人数较少的分组竞赛,例如持续2小时的两人赛、三人赛等。对于短时匹配竞赛而言,网约车平台需要对参加竞赛的司机进行匹配。
当前网约车平台一般采用随机匹配的方式来匹配参加竞赛的司机;但是由于司机的所处地理位置不同,不同的地理位置会导致司机接收到订单的概率也是不同的;例如在竞赛时,司机所在地区的订单的数量较少,其接收到订单的概率,会明显小于所在地区的订单数量较多的司机;因此,这对于部分司机而言明显是公平的,导致匹配竞赛也失去了公平性。
发明内容
有鉴于此,本申请实施例的目的在于提供一种竞赛中的对手匹配方法以及装置,可以基于参与竞赛的司机的历史出车地点,以及与历史出车地点对应的历史接单数据,对参与竞赛的司机进行对手匹配,使得匹配到同一竞赛组的司机具有较为公平的接单机会,提升匹配竞赛的公平性。
第一方面,本申请实施例提供了一种竞赛中的对手匹配方法,该方法包括:
获取参与竞赛的每个司机的多个历史出车地点;
针对每个所述历史出车地点,获取与该历史出车地点对应的历史接单数据;
根据与每个司机的多个历史出车地点对应的历史接单数据,对参与竞赛的各个司机进行对手匹配。
结合第一方面,本申请实施例提供了第一方面的第一种可能的实施方式,其中:获取参与竞赛的每个司机的多个历史出车地点,包括:
获取每个司机的历史订单数据;所述历史订单数据包括接单时间以及接单地点;
基于所述接单时间对所述司机的历史订单进行分组;其中,每个分组中,任意两个相邻的历史订单之间的接单时间差小于预设时间差阈值;
将每个分组中接单时间最早的历史订单对应的接单地点,作为该分组对应的历史出车地点。
结合第一方面,本申请实施例提供了第一方面的第二种可能的实施方式,其中:所述获取参与竞赛的每个司机的多个历史出车地点,包括:
在接收到每个司机的开始接单指令时,记录该司机所在的地理位置,将记录的所述地理位置作为该司机的历史出车地点。
结合第一方面,本申请实施例提供了第一方面的第三种可能的实施方式,其中:根据与每个司机的多个历史出车地点对应的历史接单数据,对参与竞赛的各个司机进行对手匹配,包括:
基于每个司机的多个历史出车地点,确定该司机的至少一个历史出车地区;
基于所述至少一个历史出车地区中的历史接单数量,确定所述至少一个历史出车地区分别对应的订单密度;
针对每个司机,根据该司机在不同历史出车地区的历史出车情况,以及每个历史出车地区对应的所述订单密度,确定该司机的出车点评分;
根据每个司机的出车点评分,对参与竞赛的各个司机进行对手匹配。
结合第一方面的第三种可能的实施方式,本申请实施例提供了第一方面的第四种可能的实施方式,其中:基于所述至少一个历史出车地区中的历史接单数量,确定所述至少一个历史出车地区分别对应的订单密度,包括:
针对每个所述历史出车地区,确定出发地点落入该历史出车地区的历史订单的数量;根据确定的历史订单的数量以及该历史出车地区的面积,计算该历史出车地区的订单密度。
结合第一方面的第三种可能的实施方式,本申请实施例提供了第一方面的第五种可能的实施方式,其中:针对每个司机,根据该司机在不同历史出车地区的历史出车情况,以及每个历史出车地区对应的所述订单密度,确定该司机的出车点评分,包括:
针对每个司机,根据该司机在每个历史出车地区的历史出车情况,确定每个历史出车地区对于该司机的权重;
根据每个历史出车地区对于该司机的权重及该历史出车地区对应的订单密度,确定该司机的出车点评分。
结合第一方面的第五种可能的实施方式,本申请实施例提供了第一方面的第六种可能的实施方式,其中:所述历史出车情况包括历史出车地点数量和/或历史出车次数。
结合第一方面的第六种可能的实施方式,本申请实施例提供了第一方面的第七种可能的实施方式,其中:若所述历史出车情况包括历史出车地点数量,所述根据该司机在每个历史出车地区的历史出车情况,确定每个历史出车地区对于该司机的权重,包括:
针对该司机的任一历史出车地区,将该司机在该任一历史出车地区的历史出车地点数量,与该司机在各个历史出车地区的历史出车地点数量的总和之间的比值,确定为该任一历史出车地区对于该司机的权重。
结合第一方面的第六种可能的实施方式,本申请实施例提供了第一方面的第八种可能的实施方式,其中:若所述历史出车情况包括历史出车次数,所述根据该司机在每个历史出车地区的历史出车情况,确定每个历史出车地区对于该司机的权重,包括:
针对该司机的任一历史出车地区,将该司机在该任一历史出车地区的历史出车次数,与该司机在各个历史出车地区的历史出车次数的总和之间的比值,确定为该任一历史出车地区对于该司机的权重。
结合第一方面的第三种可能的实施方式,本申请实施例提供了第一方面的第九种可能的实施方式,其中:所述基于每个司机的多个历史出车地点,确定该司机的至少一个历史出车地区,包括:
对每个司机的多个历史出车地点进行聚类,得到至少一个类;
基于每个类包含的至少一个历史出车地点,确定与该类对应的一个历史出车地区。
结合第一方面的第九种可能的实施方式,本申请实施例提供了第一方面的第十种可能的实施方式,其中:所述对每个司机的多个历史出车地点进行聚类,包括:
以该司机的所有未完成聚类的历史出车地点作为第一簇,计算第一簇的簇心坐标,所述簇心坐标为第一簇中历史出车地点的平均经纬度;
以与所述第一簇的簇心距离最近的历史出车地点为中心,确定与该中心在预设距离范围内的历史出车地点,组成第二簇;
将所述第二簇作为新的第一簇,并返回所述计算第一簇的簇心坐标的步骤,直到满足迭代停止条件,将最后得到的第二簇作为聚类后的一个类,并将第二簇中的各历史出车地点作为完成聚类的历史出车地点;
返回所述以该司机的多个未完成聚类的历史出车地点作为第一簇,计算第一簇的簇心坐标的步骤,直到该司机的所有历史出车地点完成聚类,得到聚类后的一个或多个类。
结合第一方面的第九种可能的实施方式,本申请实施例提供了第一方面的第十一种可能的实施方式,其中:所述对每个司机的多个历史出车地点进行聚类,包括:
根据预设的历史出车地区的个数K,从该司机的各个历史出车地点中随机选择K个历史出车地点作为初始的聚类中心;
针对每个初始的聚类中心,执行以下步骤:
将与该聚类中心之间的距离小于第一预设距离的历史出车地点和该聚类中心作为第一簇,计算第一簇的簇心坐标,所述簇心坐标为第一簇中历史出车地点的平均经纬度;
以与所述第一簇的簇心距离最近的历史出车地点为中心,确定与该中心在预设距离范围内的历史出车地点,组成第二簇;
将所述第二簇作为新的第一簇,并返回所述计算第一簇的簇心坐标的步骤,直到满足迭代停止条件,将最后得到的第二簇作为聚类后的一个类。
结合第一方面的第九种可能的实施方式,本申请实施例提供了第一方面的第十二种可能的实施方式,其中:所述对每个司机的多个历史出车地点进行聚类,包括:
将当前未完成聚类的历史出车地点中任意一个历史出车地点作为聚类中心,并依次计算其它当前未完成聚类的每一个历史出车地点与该聚类中心之间的距离;
将与所述聚类中心之间的距离小于第二预设距离的历史出车地点划分到与所述聚类中心同一类中,并将该类中的所有历史出车地点作为完成聚类的历史出车地点;
返回所述将当前未完成聚类的历史出车地点中任意一个历史出车地点作为聚类中心,并依次计算其它当前未完成聚类的每一个历史出车地点与该聚类中心之间的距离的步骤,直至所有的历史出车地点完成聚类。
结合第一方面的第九种可能的实施方式,本申请实施例提供了第一方面的第十三种可能的实施方式,其中:所述基于每个类包含的至少一个历史出车地点,确定与该类对应的一个历史出车地区,包括:
针对每一个类,确定该类中与该类的中心距离最远的历史出车地点;以该类的中心为圆心,以确定的所述与该类的中心距离最远的历史出车地点与该中心之间的距离为半径,确定该类对应的历史出车地区。
结合第一方面的第三种可能的实施方式,本申请实施例提供了第一方面的第十四种可能的实施方式,其中:根据每个司机的出车点评分,对参与竞赛的各个司机进行对手匹配,包括:
将出车点评分落入同一得分范围的司机匹配为竞赛对手。
结合第一方面的第三种可能的实施方式,本申请实施例提供了第一方面的第十五种可能的实施方式,其中:所述方法还包括:
获取司机在参与竞赛期间的出车地点;
通过将所述司机在参与竞赛期间的出车地点,与获取的该司机的历史出车地点进行匹配,判断该司机是否存在作弊行为。
第二方面,本申请实施例还提供一种竞赛中的对手匹配装置,该装置包括:
第一获取模块,用于获取参与竞赛的每个司机的多个历史出车地点;
第二获取模块,针对每个所述历史出车地点,获取与该历史出车地点对应的历史接单数据;
匹配模块,用于根据与每个司机的多个历史出车地点对应的历史接单数据,对参与竞赛的各个司机进行对手匹配。
结合第二方面,本申请实施例提供了第二方面的第一种可能的实施方式,其中:所述第一获取模块具体用于通过下述步骤获取参与竞赛的每个司机的多个历史出车地点:
获取每个司机的历史订单数据;所述历史订单数据包括接单时间以及接单地点;
基于所述接单时间对所述司机的历史订单进行分组;其中,每个分组中,任意两个相邻的历史订单之间的接单时间差小于预设时间差阈值;
将每个分组中接单时间最早的历史订单对应的接单地点,作为该分组对应的历史出车地点。
结合第二方面,本申请实施例提供了第二方面的第二种可能的实施方式,其中:所述第一获取模块具体用于通过下述步骤所述获取参与竞赛的每个司机的多个历史出车地点:
在接收到每个司机的开始接单指令时,记录该司机所在的地理位置,将记录的所述地理位置作为该司机的历史出车地点。
结合第二方面,本申请实施例提供了第二方面的第三种可能的实施方式,其中:所述匹配模块,具体用于通过下述步骤根据与每个司机的多个历史出车地点对应的历史接单数据,对参与竞赛的各个司机进行对手匹配:
基于每个司机的多个历史出车地点,确定该司机的至少一个历史出车地区;
基于所述至少一个历史出车地区中的历史接单数量,确定所述至少一个历史出车地区分别对应的订单密度;
针对每个司机,根据该司机在不同历史出车地区的历史出车情况,以及每个历史出车地区对应的所述订单密度,确定该司机的出车点评分;
根据每个司机的出车点评分,对参与竞赛的各个司机进行对手匹配。
结合第二方面的第三种可能的实施方式,本申请实施例提供了第二方面的第四种可能的实施方式,其中:所述匹配模块,具体用于通过下述步骤基于所述至少一个历史出车地区中的历史接单数量,确定所述至少一个历史出车地区分别对应的订单密度:
针对每个所述历史出车地区,确定出发地点落入该历史出车地区的历史订单的数量;根据确定的历史订单的数量以及该历史出车地区的面积,计算该历史出车地区的订单密度。
结合第二方面的第三种可能的实施方式,本申请实施例提供了第二方面的第五种可能的实施方式,其中:所述匹配模块,具体用于通过下述步骤针对每个司机,根据该司机在不同历史出车地区的历史出车情况,以及每个历史出车地区对应的所述订单密度,确定该司机的出车点评分:
针对每个司机,根据该司机在每个历史出车地区的历史出车情况,确定每个历史出车地区对于该司机的权重;
根据每个历史出车地区对于该司机的权重及该历史出车地区对应的订单密度,确定该司机的出车点评分。
结合第二方面的第五种可能的实施方式,本申请实施例提供了第二方面的第六种可能的实施方式,其中:所述历史出车情况包括历史出车地点数量和/或历史出车次数。
结合第二方面的第六种可能的实施方式,本申请实施例提供了第二方面的第七种可能的实施方式,其中:若所述历史出车情况包括历史出车地点数量,所述匹配模块,具体用于通过下述步骤根据该司机在每个历史出车地区的历史出车情况,确定每个历史出车地区对于该司机的权重:
针对该司机的任一历史出车地区,将该司机在该任一历史出车地区的历史出车地点数量,与该司机在各个历史出车地区的历史出车地点数量的总和之间的比值,确定为该任一历史出车地区对于该司机的权重。
结合第二方面的第六种可能的实施方式,本申请实施例提供了第二方面的第八种可能的实施方式,其中:若所述历史出车情况包括历史出车次数,所述匹配模块,具体用于通过下述步骤根据该司机在每个历史出车地区的历史出车情况,确定每个历史出车地区对于该司机的权重:
针对该司机的任一历史出车地区,将该司机在该任一历史出车地区的历史出车次数,与该司机在各个历史出车地区的历史出车次数的总和之间的比值,确定为该任一历史出车地区对于该司机的权重。
结合第二方面的第三种可能的实施方式,本申请实施例提供了第二方面的第九种可能的实施方式,其中:所述匹配模块,具体用于通过下述步骤基于每个司机的多个历史出车地点,确定该司机的至少一个历史出车地区:
对每个司机的多个历史出车地点进行聚类,得到至少一个类;
基于每个类包含的至少一个历史出车地点,确定与该类对应的一个历史出车地区。
结合第二方面的第九种可能的实施方式,本申请实施例提供了第二方面的第十种可能的实施方式,其中:所述匹配模块,具体用于通过下述步骤对每个司机的多个历史出车地点进行聚类:
以该司机的所有未完成聚类的历史出车地点作为第一簇,计算第一簇的簇心坐标,所述簇心坐标为第一簇中各历史出车地点的平均经纬度;
以与所述第一簇的簇心距离最近的历史出车地点为中心,确定与该中心在预设距离范围内的历史出车地点,组成第二簇;
将所述第二簇作为新的第一簇,并返回所述计算第一簇的簇心坐标的步骤,直到满足迭代停止条件,将最后得到的第二簇作为聚类后的一个类,并将第二簇中的历史出车地点作为完成聚类的历史出车地点;
返回所述以该司机的多个未完成聚类的历史出车地点作为第一簇,计算第一簇的簇心坐标的步骤,直到该司机的所有历史出车地点完成聚类,得到聚类后的一个或多个类。
结合第二方面的第九种可能的实施方式,本申请实施例提供了第二方面的第十一种可能的实施方式,其中:所述匹配模块,具体用于通过下述步骤对每个司机的多个历史出车地点进行聚类:
根据预设的历史出车地区的个数K,从该司机的各个历史出车地点中随机选择K个历史出车地点作为初始的聚类中心;
针对每个初始的聚类中心,执行以下步骤:
将与该聚类中心之间的距离小于第一预设距离的历史出车地点和该聚类中心作为第一簇,计算第一簇的簇心坐标,所述簇心坐标为第一簇中历史出车地点的平均经纬度;
以与所述第一簇的簇心距离最近的历史出车地点为中心,确定与该中心在预设距离范围内的历史出车地点,组成第二簇;
将所述第二簇作为新的第一簇,并返回所述计算第一簇的簇心坐标的步骤,直到满足迭代停止条件,将最后得到的第二簇作为聚类后的一个类。
结合第二方面的第九种可能的实施方式,本申请实施例提供了第二方面的第十二种可能的实施方式,其中:所述匹配模块,具体用于通过下述步骤对每个司机的多个历史出车地点进行聚类:
将当前未完成聚类的历史出车地点中任意一个历史出车地点作为聚类中心,并依次计算其它当前未完成聚类的每一个历史出车地点与该聚类中心之间的距离;
将与所述聚类中心之间的距离小于第二预设距离的历史出车地点划分到与所述聚类中心同一类中,并将该类中的所有历史出车地点作为完成聚类的历史出车地点;
返回所述将当前未完成聚类的历史出车地点中任意一个历史出车地点作为聚类中心,并依次计算其它当前未完成聚类的每一个历史出车地点与该聚类中心之间的距离的步骤,直至所有的历史出车地点完成聚类。
结合第二方面的第九种可能的实施方式,本申请实施例提供了第二方面的第十三种可能的实施方式,其中:所述匹配模块,具体用于通过下述步骤基于每个类包含的至少一个历史出车地点,确定与该类对应的一个历史出车地区:
针对每一个类,确定该类中与该类的中心距离最远的历史出车地点;以该类的中心为圆心,以确定的所述与该类的中心距离最远的历史出车地点与该中心之间的距离为半径,确定该类对应的历史出车地区。
结合第二方面的第三种可能的实施方式,本申请实施例提供了第二方面的第十四种可能的实施方式,其中:所述匹配模块,具体用于通过下述步骤根据每个司机的出车点评分,对参与竞赛的各个司机进行对手匹配:
将出车点评分落入同一得分范围的司机匹配为竞赛对手。
结合第二方面的第三种可能的实施方式,本申请实施例提供了第二方面的第十五种可能的实施方式,其中:所述装置还包括:
作弊检测模块,用于获取司机在参与竞赛期间的出车地点;
通过将所述司机在参与竞赛期间的出车地点,与获取的该司机的历史出车地点进行匹配,判断该司机是否存在作弊行为。
第三方面,本申请实施例还提供一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行上述竞赛中的对手匹配方法。
第四方面,本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行上述竞赛中的对手匹配方法。
本申请实施例中,在对竞赛中的对手进行匹配的时候,会首先获取参与竞赛的每个司机的多个历史出车地点,然后针对每个历史出车地点,获取与该历史出车地点对应的历史接单数据,并根据与每个司机的多个历史出车地点对应的历史接单数据,对参与竞赛的各个司机进行对手匹配,在根据与历史出车地点对应的历史接单数据进行对手匹配的时候,能够将历史接单情况较为接近的司机作为对手匹配到一起,从而提升分组竞赛的公平性。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本申请实施例一所提供的一种竞赛中的对手匹配方法的流程图;
图2示出了本申请实施例一所提供的竞赛中的对手匹配方法中,获取参与竞赛的每个司机的多个历史出车地点的具体方法的流程图;
图3示出了本申请实施例一所提供的竞赛中的对手匹配方法中,另一种获取参与竞赛的每个司机的多个历史出车地点的具体方法的流程图;
图4示出了本申请实施例二所提供的竞赛中的对手匹配方法中,对参与竞赛的各个司机进行对手匹配的具体方法的流程图;
图5示出了本申请实施例二所提供的竞赛中的对手匹配方法中,确定该司机的至少一个历史出车地区的具体方法的流程图;
图6示出了本申请实施例二所提供的竞赛中的对手匹配方法中,对历史出车地点进行聚类的具体方法的流程图;
图7示出了本申请实施例二所提供的竞赛中的对手匹配方法中,第二种对历史出车地点进行聚类的具体方法的流程图;
图8示出了本申请实施例二所提供的竞赛中的对手匹配方法中,第三种对历史出车地点进行聚类的具体方法的流程图;
图9示出了本申请实施例二所提供的竞赛中的对手匹配方法中,确定该司机的出车点评分的具体方法的流程图;
图10示出了本申请实施例三所提供的一种竞赛中的对手匹配的补充措施流程图;
图11示出了本申请实施例四所提供的一种竞赛中的对手匹配装置的结构示意图;
图12示出了本申请实施例五所提供的一种计算机设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
目前在网约车司机的匹配竞赛中,一般采用随机匹配的方式匹配参与竞赛的网约车司机。但是由于网约车司机在参与匹配竞赛时,所处的地理位置不同;而对于不同的地理位置,产生的订单数量是不均衡的;若司机在参与竞赛时正好位于产生订单数量较多的地区,其接取订单的机会就比较多;若司机在参与竞赛时正好位于产生订单数量较少的地区,其接取订单的机会就会比较少;若将位于订单数量较多地区的司机,和位于订单数量较少地区的司机匹配到一起,这对于位于订单数量较少地区的司机明显是不公平的,导致匹配竞赛也失去了公平性,基于此,本申请提供的一种竞赛中的对手匹配方法以及装置,可以基于参与竞赛的司机的历史出车地点,以及与历史出车地点对应的历史接单数据,对参与竞赛到的司机进行对手匹配,使得匹配到同一竞赛组的司机具有较为公平的接单机会,提升竞赛的公平性。
为便于对本实施例进行理解,首先对本申请实施例所公开的一种竞赛中的对手匹配方法进行详细介绍,该竞赛中的对手匹配方法,除了能够对网约车司机之间的竞赛进行对手匹配外,还可以用于对出租车司机之间的竞赛进行熟手匹配。该方法的执行主体可以是网约车平台,或者专门用于进行对手匹配的计算机设备;下面以执行主体为网约车平台对本申请实施例提供的技术方案加以说明。
参见图1所示,本申请实施例一提供的竞赛中的对手匹配方法包括:
S101:获取参与竞赛的每个司机的多个历史出车地点。
在具体实现的时候,参与竞赛的司机有如下两种确定方式:
其一,网约车平台在推出某种形式的匹配竞赛时,可以将匹配竞赛的竞赛信息推送至每一个网约车司机所使用的客户端中。网约车司机在接收到网约车平台推送的竞赛信息后,可以基于自己的实际情况,选择是否要参与到匹配竞赛中。
若网约车司机选择要参与到匹配竞赛中,则通过其使用的客户端向网约车平台发送参加竞赛的请求。
网约车平台在接收到客户端发送的竞赛请求时,将与该客户端对应的网约车司机标记为参与竞赛的司机。
此处,匹配竞赛的形式按照进行的时间,可以划分为两种:
1,匹配竞赛的形式为;在第一时间段内,任何时间点都可以参加的匹配竞赛,每次匹配竞赛的持续时间为第一时长。当网约车平台接收到客户端发送的参加竞赛的请求后,会将该网约车司机作为参与竞赛的司机,与当前其它作为参与竞赛的司机一起,进行对手的匹配。
例如,匹配竞赛为双人赛;将第一时间段设置为3月1号至3月15号,第一时长设置为2小时;则网约车司机在3月1号至3月15号之间的任何时间点,都可以通过客户端向网约车平台发送参加竞赛的请求。网约车司机甲某在3月13号的14:23向网约车平台发送参加竞赛的请求;网约车平台在接收到甲某发送的参加竞赛的请求后,会将甲某与当前其它参与竞赛的网约车司机进行匹配;若在14:33将甲某与另一参与竞赛的网约车司机的乙某匹配成功,则竞赛开始,并持续2个小时后,也即16:33时,竞赛结束。
此处需要注意的是,当参与竞赛的网约车司机甲某与乙某匹配成功后,直到此次竞赛结束之前,也即在3月13号16:33以前,控制甲某和乙某退出匹配过程。当甲某和乙某之间的竞赛结束后,甲某和以某才可以重新向网约车平台发起参加竞赛的请求,参加下一次匹配竞赛。
2,匹配竞赛的形式为;在持续的第二时间段内,固定时间点可以参加的匹配竞赛,每次匹配竞赛的持续时间为第二时长;此处,固定时间点至少有一个。网约车平台固定时间点之前,例如在距离固定时间点预设时间长度的时间点,向网约车司机的客户端推送竞赛信息;若接收到某个网约车司机通过客户端向网约车平台发送的参加竞赛的请求,则将该网约车司机标记为参与竞赛的司机。网约车平台在将网约车司机标记为参与竞赛的司机后,会为该参与竞赛的司机匹配对手;当匹配成功,且固定时间点到达时,比赛正式开始;或者会等到固定时间点到达时,为该参与竞赛的司机匹配对手,并在对手匹配成功后竞赛开始。
此处需要注意的是,为了保证比赛的公平性,假若在固定时间点到达时,某网约车司机还未成功匹配到对手,可以控制该网约车司机退出此次固定时间点的匹配竞赛。
例如,匹配竞赛为三人赛;将第二时间段设置为5月1号至6月1号,固定时间点设置为每天的8:00、13:00、17:00以及19:00,第二时长设置为3小时;距离固定时间点的预设时间段为5分钟。网约车平台在5月22号7:55向网约车司机的客户端推送竞赛信息,通知各网约车司机即将在8:00开始竞赛;假若网约车司机甲某要参加在8:00的竞赛,则通过客户端向网约车平台发送参加竞赛请求。网约车平台在接收到甲某通过客户端发送的参加竞赛请求后,将甲某标记为参与竞赛的司机,并将当前被标记为参与竞赛的司机与甲某一起进行匹配;假若在8:00之前,为甲某成功匹配到网约车司机乙某和丙某,则在8:00到达时,甲某、乙某和丙某之间的竞赛开始,并持续3个小时的时间,直到11:00竞赛结束。假若在8:00之前,甲某并未成功匹配到对手,则在8:00到达时,控制甲某退出8:00举办的匹配竞赛。
其二,网约车平台在推出某种形式的匹配竞赛时,会将全部网约车司机作为参与竞赛的司机,并向全部网约车司机的客户端推送竞赛信息,告知网约车司机竞赛举办的时间、形式、奖励等。
当竞赛举办的时间到达之前,网约车平台会基于全部网约车司机进行对手匹配,在竞赛举办的时间到达时,直接开启竞赛,并记录竞赛期间司机的接单情况,作为竞赛依据。
例如匹配竞赛为五人赛,比赛时间为6月12号00:00到6月12号23:59,网约车平台会在6月12号00:00之前,为每一个网约车司机匹配对手;并在6月12号00:00到达后,直接开启竞赛。
在确定了参与竞赛的司机后,要获取参与竞赛的每个司机的多个历史出车地点。司机的历史出车地点,是指司机出车时所在的出发地点,这里的出车是指司机开始进入网约车服务工作状态。对于大多数司机来说,历史出车地点落入的区域范围通常是比较固定的,但是其具体的出车地点是不固定的,且对于某些司机来说,其出车地点可能会落入多个区域范围内。例如司机甲某为全职网约车司机,其通常在早上9:00出车,晚上10:00收车,且出车地点是家附近;某司机乙某为兼职网约车司机,其出车地点通常在下班后,例如在18:00出车,且出车地点是其工作单位附近。
具体地,针对S101,参见图2所示,本申请实施例还提供一种获取参与竞赛的每个司机的多个历史出车地点的具体方法,包括:
S201:获取每个司机的历史订单数据;历史订单数据包括接单时间以及接单地点。
此处,历史订单数据,可以是司机的全部历史订单数据,也可以是司机的部分历史订单数据,如所获得的历史订单数据为当前时间之前预设时间段的历史订单数据,如当前时间前3个月的历史订单数据。
网约车平台在接收到乘客从乘客客户端发送的订单后,会根据订单中携带的出发地点,按照一定的匹配规则,获取指定网约车司机,然后将订单推送给这些指定网约车司机的客户端。网约车司机通过客户端接收到网约车平台推送的订单后,根据自己的意愿选择是否要接取该订单;如果接取,则通过客户端向网约车平台发送订单接取请求。网约车平台在接收到订单接取请求后,将该订单分配给该网约车司机,并会记录该订单的相关信息,例如出发地点、目的地点、接单时间、订单完成时间、司机接单时所在地点等信息,并将这些信息作为该订单的历史订单数据与该网约车司机进行关联存储。
当需要获得每个司机的历史订单数据时,只需要根据历史订单数据与司机之间的关联存储关系,就能够获得该司机的全部历史订单数据,或者获得指定日期所对应的历史订单数据。
在历史订单数据中,通常包括接单时间和接单地点。其中,接单时间是指司机接取订单的时间;接单地点一般是指是司机在接取订单时间所在的地点;可选地,司机在接取订单时间所在的地点通常需要另外保存,因此本申请为了减少数据保存的量,且司机在接取订单时间所在的地点和订单中携带的乘客的出发地点地理位置通常会比较接近,因此可以将订单中所携带的乘客的出发地点作为接单地点。
S202:基于接单时间对司机的历史订单进行分组;其中,每个分组中,任意两个相邻的历史订单之间的接单时间差小于预设时间差阈值。
S203:将每个分组中接单时间最早的历史订单对应的接单地点,作为该分组对应的历史出车地点。
在具体实现的时候,当司机要进行网约车服务时,会通过客户端向网约车平台发送开始接单指令;网约车平台在接收到客户端发送的开始接单指令后,从客户端获取司机当前所处位置,并基于司机当前所处位置进行订单匹配,并将匹配到的订单向网约车司机的客户端推送,以供司机选择是否要接取订单。
对于不同的网约车司机而言,其出车时间可能会有所区别,但是其出车后接取的第一笔订单,通常情况下是在其出车地点附近;然后随着其网约车服务的进行,接单地点会不断的发生变化,在某次出车后,司机接取的任意相邻的两个订单之间的时间间隔通常不会相隔太久。因此,可以将每次出车后接取的第一笔订单所对应的接车地点,作为网约车司机的一个历史出车地点。
在实际中,所获取的每一个司机的历史订单数据,不仅仅包括了司机在出车后接取的第一笔订单的数据,也包括了其在出车后所接取的其它订单的数据,因此为了能够将第一笔订单的数据从所有历史订单数据中筛选出来,可以按照历史订单数据中携带的接单时间,对司机的历史订单进行分组,每个分组中,任意两个相邻的历史订单之间的接单时间差小于预设时间差阈值。
预设时间差阈值可以基于实际情况进行具体设定。一般地,可以基于订单的平均完成时间来设置所述预设时间差阈值。此处,订单的完成时间,是指司机从接取订单开始,直到将乘客送达乘客的目的地所需要的时间长度。例如,假若订单的平均完成时间为25分钟,司机在接取相邻的两笔订单之间需要等待的平均时间为10分钟,考虑到特殊情况的存在,例如堵车等,可以将预设时间差阈值设置为1小时。
在按照接单时间对司机的历史订单进行分组后,将每个分组中接单时间最早的历史订单对应的接单地点,作为该分组对应的历史出车地点。
此处,需要注意的是,根据司机的出车次数不同,每次出车对应的历史出车地点可以相同,也可以不同。
参见图3所示,本申请实施例还提供另外一种获取参与竞赛的每个司机的多个历史出车点的具体方法,该方法包括:
S301:接收司机的开始接单指令;
S302:启动为该司机提供配单服务,并记录该司机所在的地理位置,将记录的地理位置作为该司机的历史出车地点。
在具体实现的时候,在采用上述附图2相关的方法来确定每个司机的多个历史出车点的时候,由于是采用订单的接单地点来确认的,接单的地点和真正的出车地点之间还是可能存在一定的差异。例如甲某在家附近出车,其在出车后接取的第一笔订单距离甲某家1.2公里,会为后续的工作带来一定的误差。
因此在本实施例中,误了避免该误差,当网约车平台在接收到客户端发送的开始接单指令后,能够从客户端获取司机当前所处地理位置。该地理位置通常就是司机的出车地点。网约车平台会在接收到客户端发送的开始接单指令时,记录司机当前所在的地理位置,并将该地理位置作为司机的历史出车地点和司机进行关联存储。
当要获得某个司机的历史出车地点时,只需要根据历史出车地点和司机的关联存储关系,直接获得该历史出车地点即可。
在本申请实施例中,为了方便处理,历史出车地点可以被记录为地理坐标系下的经纬度坐标值。
下面,承接上述S101,在获取参与竞赛的每个司机的多个历史出车地点后,执行下述S102。
S102:针对S101获取的每个历史出车地点,获取与该历史出车地点对应的历史接单数据。
在具体实现的时候,上述历史接单数据可以包括网约车平台记录的所有被司机接取的订单中,出发地点和历史出车地点对应的订单数据,或者,也可以包括网约车平台在最近预设时间长度内(比如最近一个月内)记录的所有被司机接取的订单中,出发地点和历史出车地点对应的订单数据。
其中,出发地点和历史出车地点对应,是指乘客的出发地点和历史出车地点之间的距离在预设距离阈值以内。例如,将该预设距离阈值设置为0.1公里;只要某个订单的出发地点和历史出车地点之间的距离在0.1公里以内,则将该订单的订单数据作为该历史出车地点对应的历史接单数据。
具体地,在获取与每个历史出车地点对应的历史接单数据时,可以针对所有的被接取的历史订单,将历史订单中携带的出发地点和历史出车地点进行距离计算,并将距离小于预设距离阈值的历史订单的相关数据作为与历史出车地点对应的历史接单数据。
S103:根据与每个司机的多个历史出车地点对应的历史接单数据,对参与竞赛的各个司机进行对手匹配。
此处,根据与每个司机的多个历史出车地点对应的历史接单数据对司机进行对手匹配的目的,是要将接单机会相近的司机匹配在一起,提高对手匹配过程中的公平性。
在具体实施中,针对每个历史出车地点,可以获取各司机在该历史出车地点的总的历史接单数量。针对每个司机,可以确定该司机的多个历史接单地点分别对应的历史订单数量,最后可以将所使用的多个历史接单地点对应的平均历史订单数量在同一数值范围内的司机分配在同一竞赛组中。比如,有三个司机,司机A使用过40个历史出车地点,这40个历史出车地点在一个月内对应的各司机的历史接单数量的总和为40000,平均订单数量为10000;相应地,司机B使用过30个历史出车地点,这30个历史出车地点在一个月内对应的各司机的历史接单数量的总和为36000,平均订单数量为12000;司机D使用过50个历史出车地点,这50个历史出车地点在一个月内对应的各司机的历史接单数量的总和为80000,平均订单数量为16000;各竞赛组对应的平均历史接单数量范围为5000(含)~10000(不含),10000(含)~15000(不含)……,则司机A和司机B被分配在同一竞赛组中。
进一步地,还可以结合司机所使用过的历史出车地点及各历史出车地点对于该司机的权重(可以根据司机在每个历史出车地点的出车次数确定),来确定上述平均历史接单数量。此时,针对每个司机,可以将该司机所使用过的每个历史出车地点对应的各司机的总的历史接单数量与该历史出车地点对于该司机的权重相乘后,再将该司机对应的各个历史出车地点对应的乘积相加,作为该司机对应的上述平均历史接单数量。
需要说明的是,上述对参与竞赛的各个司机进行对手匹配的实施方式只是示例,在实际实施中,还可以将司机的历史出车地点归整到一个或多个历史出车地区中,通过对不同历史出车地区对应的历史接单情况的统计来对司机进行对手匹配。实施例二中将会进行具体说明,这里不再赘述。
本申请实施例中,在对竞赛中的对手进行匹配的时候,会首先获取参与竞赛的每个司机的多个历史出车地点,然后针对每个历史出车地点,获取与该历史出车地点对应的历史接单数据,并根据与每个司机的多个历史出车地点对应的历史接单数据,对参与竞赛的各个司机进行对手匹配,在根据与历史出车地点对应的历史接单数据进行对手匹配的时候,能够将历史接单数据较为接近的司机作为对手匹配到一起,此时匹配到一起的司机的接单机会,从而提升匹配竞赛的公平性。
实施例二
在上述步骤S103中为了实现根据与每个司机的多个历史出车地点对应的历史接单数据,对参与竞赛的各个司机进行对手匹配,使得作为对手的司机具有较为均衡的接单可能,本申请采用出车点评分来表征接单概率,并基于出车点评分来对参与竞赛的司机进行对手匹配。
在具体实施中,出车点评分可以每个司机对应的历史出车地区和历史出车地区对应的订单密度来确定的。其中,历史出车地区是指司机的历史出车地点落入的区域范围;历史出车地区的订单密度,一般是所有被司机接取的订单中,出发地点落入历史出车地区的订单的分布密度,其应当为出发地点落入历史出车地区的订单的历史接单数量与历史出车地区面积的比值。
基于此,参见图4所示,本申请实施例还提供一种根据与每个司机的多个历史出车地点对应的历史接单数据,对参与竞赛的各个司机进行对手匹配的具体方法,该方法包括:
S401:基于每个司机的多个历史出车地点,确定该司机的至少一个历史出车地区。
在具体实现的时候,为了确定参与竞赛的每个司机的出车点评分,每个司机的历史出车地点会有多个,且每个司机的历史出车地点并非是完全一致的,相互之间具有地理位置的差异。例如在将司机在出车后,所接取的第一笔订单的出发地点作为历史出车地点时,由于每次出车后接取的第一笔订单的出发地点的不同,造成司机的历史出车地点并不是完全重合,而是会落在某一个区域范围内。例如,司机甲某为专职网约车司机,且其工作时间为180天,在180天中,甲某每天的出车地点都有所差别。则其对应的历史出车地点就有180个,要针对这180个历史出车地点中的每一个历史出车地点分别确定出车点评分计算量是非常大的,并且司机后续参与竞赛时的出车地点也不一定会与历史出车地点完全吻合,因此,针对这180个出车地点确定一个或多个历史出车地区,针对这一个或多个历史出车地区确定出车点评分是一种减少计算量及误差的方式,因此,在本申请实施例中,会基于每个司机的多个历史出车地点,确定司机的至少一个历史出车地区,然后针对每个历史出车地区,确定该历史出车地区对应的出车点评分。
本申请采用将每个司机的多个历史出车地区进行聚类的方式确定每个司机的历史出车地区。具体地:
参见图5所示,本申请实施例提供一种基于每个司机的多个历史出车地点,确定该司机的至少一个历史出车地区的具体方法,该方法包括:
S501:对每个司机的多个历史出车地点进行聚类,得到至少一个类;
S502:基于每个类包含的至少一个历史出车地点,确定与该类对应的一个历史出车地区。
在具体实现的时候,对每个司机的多个历史出车地点进行聚类,就是要将地理位置比较接近的历史出车地点划分到一个类中,然后基于划分到同一个类中的历史出车地点,确定与该类对应的历史出车地区;这样,将每个司机对应的历史出车地点划分到至少一个历史出车地区中。这里,每个司机的历史出车地区可以有一个,也可以有多个。
在具体实现的时候,可以采用下述聚类方式中任意一种对每个司机的历史出车地点进行聚类。
其一:本申请实施例提供的第一种对历史出车地点进行聚类的方法,参见图6所示,包括:针对每个司机,执行下述聚类过程:
S601:以司机的所有未完成聚类的历史出车地点作为第一簇,计算第一簇的簇心坐标,簇心坐标为第一簇中历史出车地点的平均经纬度。
S602:以与第一簇的簇心距离最近的历史出车地点为中心,确定与该中心在预设距离范围内的历史出车地点,组成第二簇。
S603:检测是否满足迭代停止条件;如果是,则跳转至S604;如果否,则跳转至S601;
S604:将最后得到的第二簇作为聚类后的一个类,并将第二簇中的历史出车地点作为完成聚类的历史出车地点。跳转至S605。
S605:检测当前是否还存在未完成聚类的历史出车地点。若是,则执行S601;若否,则结束。
最终,得到聚类后的一个或者多个类。
在上述事实方式中,根据聚类后的形成的每一个类中所包括的历史出车地点来确定与该类对应的历史出车地区。
在具体实现的时候,在首次进行聚类时,由于该司机的所有历史出车地点均未完成聚类,因此在第一次聚类时,会将所有历史出车地点作为第一簇,并计算第一簇的簇心坐标。在非首次聚类时,去除之前聚类过程中已经完成聚类的历史出车地点,将剩余的所有未完成聚类的历史出车地点作为第一簇,计算第一簇的簇心坐标。
在每一个迭代周期内,在计算得到第一簇的簇心坐标后,为了得到与第一簇的簇心距离最近的历史出车地点,可以依次计算每一个第一簇中的历史出车地点与簇心之间的距离,然后将与簇心距离最近的历史出车地点作为中心,组织第二簇的历史出车地点,并将第二簇作为新的第一簇,再次执行计算第一簇的簇心坐标的步骤,直到满足迭代停止条件。
这里,在选择中心时,并不是直接选择上一簇的簇心作为下一次迭代聚类的中心,而是选择与上一簇的平均经纬度距离最近的经纬度坐标为中心。这是由于司机的历史出车地点具有一定的实用属性,簇心的位置不一定是用户常用的历史出车地点,选择一个司机户实际使用的历史出车地点作为聚类的中心,有利于避免将不适于定位的位置排除在外,比如地下车库、马路中心等等。
当满足迭代停止条件时,将最后一次迭代得到的第二簇作为聚类后的一个类,并将该最后一次迭代得到的第二簇中的历史出车地点作为完成聚类的历史出车地点。然后再次对未完成聚类的历史出车地点进行上述迭代过程,直至所有历史出车地点都完成聚类。
这里,通过重复上述S602~S603的迭代聚类过程,不断更新簇心的位置,并不断形成新的第二簇,使得新的第二簇内具有的历史出车地点密度越来越大,第二簇的簇心的位置越来越接近司机大部分使用的历史出车地点,最终在满足迭代条件时,将第二簇中所包括的历史停车地点划分到同一个类中。
这里的迭代停止条件包括以下条件中的至少一种:
1)第二簇中的历史停车地点不再发生变化;2)迭代次数达到设定次数阈值;3)簇心移动距离小于设定距离阈值。
在条件1)中,第二簇中的历史停车地点不再发生变化,表明已经形成了最佳的簇,可以停止迭代。在条件2)中,为了节省运算量,可以设置迭代次数的最大值,如果迭代次数达到设定次数阈值,可以停止本迭代周期的迭代,将最后得到的第二簇中所包括的历史出车地点作为一类。在条件3)中,如果簇心移动距离小于设定距离阈值,说明当前的簇已经基本可以涵盖机大部分使用的历史出车地点,此时可以停止迭代。
例如:历史出车地点通过地理坐标系下的经纬度坐标来表示。其形式可以表示为:M(a,b);其中M代表历史出车点,a表示该历史出车点M的经度坐标,b表示该历史出车点M的纬度坐标。簇心坐标可以表示为:N(x,y);其中N代表簇心,x表示簇心N的经度坐标,y表示簇心N的纬度坐标。
簇心坐标为第一簇中历史出车地点的平均经纬度坐标。
在当前迭代周期内,某司机对应的未完成聚类的历史出车地点分别为:M1(a1,b1)、M2(a2,b2)、M3(a3,b3)、M4(a4,b4)、M5(a5,b5),则由M1至M5构成的第一簇中,簇心坐标N(x,y)满足:
然后分别计算M1至M5的分别与簇心N之间的距离。
例如计算M1(a1,b1)和簇心N之间的距离d,则d满足:
在得到第一簇中所有历史出车地点M1至M5与簇心的距离后,将距离最小的历史出车点作为中心,并依次计算第一簇中除中心外的其它历史出车地点与中心之间的距离。计算的方式与计算历史出车地点和簇心之间的距离的方法类似,在此不再赘述。
假设此时M1为距离簇心距离最近的历史出车点,则将M1作为中心,依次计算M2至M5与中心M1之间的距离。
假若M2和M4与中心M1之间的距离均小于预设距离,则将M1、M2和M4形成第二簇。
然后检测当前第二簇是否满足迭代停止条件。如本实例中将迭代停止条件设置为:迭代次数达3次。
假若在该次迭代周期内,已经进行了2次迭代,在执行完本周期的迭代后,迭代次数达到3次,那么将当前第二簇作为聚类后的一个类,该类中的历史出车地点包括:M1、M2和M4。
假若在该次迭代周期内,已经进行了1次迭代,在执行完本周期的迭代后,迭代次数达到2次,则将当前第二簇作为新的第一簇,此时新的第一簇中的历史出车地点包括:M1、M2和M4,再次返回计算该新的第一簇的簇心坐标的步骤,直至满足迭代停止条件。
在将历史出车地点M1、M2和M4划分到一个类后,还会将历史出车地点M1、M2和M4作为完成聚类的历史出车地点;
由于此时还存在未完成聚类的历史出车地点M3和M5,因此,会返回以历史出车地点M3和M5构成的新的第一簇,并计算该新的第一簇的簇心坐标的步骤。
直至M1至M5都完成聚类为止。
采用该聚类方法,不需要预先设定类的个数,该聚类方法具有较高的聚类精度。
其二:本申请实施例提供的第二种对历史出车地点进行聚类的方法,参见图7所示,包括:针对每个司机,执行下述过程:
S701:根据预设的历史出车地区的个数K,随机选择K个历史出车地点作为初始的聚类中心;这里,K一般为大于或等于2的正整数。
S702:针对每个初始的聚类中心,将与该聚类中心之间的距离小于第一预设距离的历史出车地点和该聚类中心作为第一簇。
S703:计算第一簇的簇心坐标,簇心坐标为第一簇中历史出车地点的平均经纬度。
S704:以与第一簇的簇心距离最近的历史出车地点为中心,确定与该中心在预设距离范围内的历史出车地点,组成第二簇。
S705:检测当前第二簇是否满足迭代停止条件;如果否,则执行S706;如果是,则执行S707。
S706:将第二簇作为新的第一簇,并返回S703。
S707:将最后得到的第二簇作为聚类后的一个类。
最终,能够得到最多K个类。
在具体实现的时候,初始聚类中心的个数可以根据实际的需要进行具体的设定;也可以根据司机对应的历史出车地点的数量进行设定,且历史出车地点的数量越多,K的值也越大。
在确定K后,会从与司机对应的历史出车地点中,选取K个作为初始聚类中心。然后针对每个初始聚类中心,依次计算除该初始聚类中心每个历史出车地点和该初始聚类中心之间的距离。
与上述图6对应的实施例类似,历史出车地点通过地理坐标系下的经纬度坐标来表示,因此可以通过经纬度坐标来计算每个历史出车地点和每个初始聚类中心之间的距离,在此不再赘述计算过程。
例如,假若与某司机对应的历史出车地点有100个,并将K的值确定为5,从100个历史出车地点中确定的100个初始聚类中心分别为:M1至M5。
针对M1,要依次计算100个历史出车地点中除M1以外的99个历史出车地点与M1之间的距离。若其中某个历史出车地点与M1之间的距离小于第一预设距离,则将该历史出车地点与M1划分到同一个簇,也即第一簇中。然后根据第一簇中所有历史出车地点的平均经纬度,并将该平均经纬度对应的地点作为簇心,将该平均经纬度作为簇心坐标。
然后以距离该簇心最近的历史出车地点为中心,确定与该中心在预设距离范围内的历史出车地点,组成第二簇,并将第二簇作为新的第一簇,并返回计算第一簇的簇心坐标的步骤,直到满足迭代停止条件,将最后得到的第二簇作为聚类后的一个类。
特殊地,假若某个被选择成为初始聚类中心的历史出车地点在迭代过程中,被划分到某个类中,则不再基于该初始聚类中心进行上述迭代过程。
其三:本申请实施例提供的第三种对历史出车地点进行聚类的方法,参见图8所示,包括:针对每个司机,执行下述过程:
S801:将当前未完成聚类的历史出车地点中任意一个历史出车地点作为聚类中心,并依次计算其它当前未完成聚类的每一个历史出车地点与该聚类中心之间的距离;
S802:将与聚类中心之间的距离小于第二预设距离的历史出车地点划分到与聚类中心同一类中,并将该类中的所有历史出车地点作为完成聚类的历史出车地点;
S803:检测当前是否存在未完成聚类的历史出车地点;如果是,则跳转至S801,如果否,则结束。
在具体实现的时候,在该第三种聚类方法中,假设此时有M1至M10共十个为完成聚类的历史出车地点,网约车平台会在M1至M10中随机指定一个作为聚类中心。
假设此时网约车平台指定M5为聚类中心,则依次计算M1至M4,M6至M10共九个历史出车地点和作为聚类中心的M5之间的距离,并将距离小于第二预设距离的历史出车点划分待与聚类中心M5同一类中。
例如,假若M1、M4、M7与M5之间的距离均小于第二预设距离,则将M1、M4、M7和M5划分到同一类A中,并将M1、M4、M7与M5作为当前完成聚类的历史出车的地点。
此时,还存在M2、M3、M6、M8至M10共6个未完成聚类的历史出车地点,因此再从M2、M3、M6、M8至M10中指定任意一个历史出车地点作为新的聚类中心,并再次计算其它未完成聚类的历史出车地点与新的聚类中心之间的距离。
假若此时M6为新的聚类中心,且M2、M8、M10与M6之间的距离均小于第二预设距离,则将M2、M8、M10与M6划分到同一类B中,并将M2、M8、M10与M6作为完成聚类的历史出车地点。
此时还存在M3和M9为未完成聚类的历史出车地点,因此再从M3和M9中执行任意一个历史出车地点作为新的聚类中,并再次计算其它未完成聚类的历史出车地点与新的聚类中心之间的距离。
假若此时M3为新的聚类中心,且M9与M3之间的距离小于第二预设距离,则将M9和M3划分到同一类C中。
最终,M1至M10都完成聚类,并且形成了三个类,分别为:A(M1,M4,M5,M7);B(M2,M6,M8,M10);C(M3,M9)。
该第三种聚类方法较之上述第一种和第二种聚类方法更加简单,计算效率高,但较之上述两种聚类方法的精度会有所下降。
在对每个司机饿多个历史出车地点进行聚类,得到至少一个类后,网约车平台还会基于每个类包含的至少一个历史出车地点,确定与该类对应的一个历史出车地区。
具体地,可以采用下述方法基于每个类包含的至少一个历史出车地点,确定与该类对应的一个历史出车地区:
针对每一个类,确定该类中与该类的中心距离最远的历史出车地点;以该类的中心为圆心,以确定的历史出车地点与该中心之间的距离为半径,确定该类对应的历史出车地区。
在具体实现的时候,历史出车地区应当包括与历史出车地区对应的类中的所有历史出车地点,因此可以针对每一个类,确定该类中,与该类的中心距离最远的历史出车地点,并以该类的中心为圆心,以确定的距离类的中心最远的历史出车地点作为半径,将所形成的圆形区域确定为该对应的历史出车地区。
另外,还可以针对每个类,将类中所包括的所有历史出车地点进行两两连线,将位于最外围的连线所围成的区域作为历史出车地区。
另外,还可以形成矩形的历史出车地区。例如,使用尺寸不同的矩形筐与类中的历史出车地点进行匹配,当某个矩形框能够框住所有的历史出车地点,且该矩形框在所有的矩形框中面积最小,则将当前的矩形框所框住的区域作为历史出车区域。
下面,承接上述S401,在基于每个司机的多个历史出车地点,确定该司机的至少一个历史出车地区后,执行下述S402。
S402:基于至少一个历史出车地区中的历史接单数量,确定至少一个历史出车地区分别对应的订单密度。
这里的订单密度可以指历史出车地区单位面积对应的订单数量。
在具体实施中,针对每个历史出车地区,可以确定出发地点落入该历史出车地区的历史订单的数量;根据确定的历史订单的数量以及该历史出车地区的面积,计算该历史出车地区的订单密度。
在具体实现的时候,由于获得与每一个历史出车地点对应的历史接单数据,因此,可以根据历史出车地区中所包括的所有历史出车地点对应的历史接单数据,确定每个历史出车地区对应的历史接单数量。出发地点落入该历史出车地区的历史订单的数量,即为历史出车地区中所包括的所有历史出车地点对应的历史订单的数量的总和。
在确定了每个历史出车地区对应的历史接单数量后,将历史接单数量与历史出车地区的比值,作为该历史出车地区对应的订单密度。
S403:针对每个司机,根据该司机在不同历史出车地区的历史出车情况,以及每个历史出车地区对应的订单密度,确定该司机的出车点评分。
在具体实现的时候,司机在某历史出车地区的历史出车情况,可以包括该司机在该历史出车地区的历史出车地点数量,和/或,司机在该历史出车地区的历史出车次数。
参见图9所示,本申请实施例在确定了司机在与其对应的不同历史出车地区的历史出车情况后,可以采用下述步骤确定该司机的出车点评分:
S901:针对每个司机,根据该司机在每个历史出车地区的历史出车情况,确定每个历史出车地区对于该司机的权重。
在具体实现的时候,每个历史出车地区对于该司机的权重,用于表征司机将每个历史出车地区作为实际出车地区的概率,或者说,用于表征司机实际出车该历史出车地区的次数占比。。
这里,司机在某个历史出车地区所包括的历史出车地点数量越多、出车次数越多,就说明该司机越偏好选择该历史出车地区出车,每个历史出车地区对于该司机的权重,应当与该历史出车地区对应的历史出车地点数量成正相关性。
在一种情况中,若历史出车情况包括历史出车地点数量,根据该司机在每个历史出车地区的历史出车情况,确定每个历史出车地区对于该司机的权重,包括:
针对该司机的任一历史出车地区,将该司机在该任一历史出车地区的历史出车地点数量,与该司机在各个历史出车地区的历史出车地点数量的总和之间的比值,确定为该任一历史出车地区对于该司机的权重。
在另一种情况中,若历史出车情况包括历史出车次数,根据该司机在每个历史出车地区的历史出车情况,确定每个历史出车地区对于该司机的权重,包括:
针对该司机的任一历史出车地区,将该司机在该任一历史出车地区的历史出车次数,与该司机在各个历史出车地区的历史出车次数的总和之间的比值,确定为该任一历史出车地区对于该司机的权重。
例如:将历史出车地点数量作为历史出车情况,司机甲某有3个历史出车地区,分别为A、B和C;其中历史出车地区A中包括的历史出车地点数量为:143,历史出车地区B中包括的历史出车地点数量为53,历史出车地区C中包括的历史出车地点数量为54。
则历史出车地区A、B和C分别对应的权重ψ依次为:
在实际实施中,可以将上述两种情况结合实施,比如采用两种情况分别计算权重,最后将两种情况得到的权重值取平均值。
S902:根据每个历史出车地区对于该司机的权重及该历史出车地区对应的订单密度,确定该司机的出车点评分。
在具体实现的时候,在确定了某司机的所有历史出车地区对于该司机的权重后,根据所有历史出车地区对于该司机的权重,以及历史出车地区对应的订单密度,确定司机的出车点评分,该评分能够综合性的表征司机出车后接取订单的概率。将出车点评分接近的司机匹配到一起,使得匹配到一起的司机具有接近的接单概率,从而保证匹配竞赛的公平性。
具体地,可以对每个司机所有历史出车地区对应的订单密度进行加权求和,订单密度的对应的权重,即为订单密度对应的历史出车地区对于该司机的权重。这里,实际就是将该司机对应的各个历史出车地区的出车点评分相加,每个历史出车地区对应的出车点评分即为该历史出车地区的订单密度与该历史出车地区对于该司机的权重的乘积。
例如,在步骤S901中的示例中,司机甲某的3个历史出车地区A、B和C,对于司机甲某的权重分别为:0.572、0.212、0.216,对应的订单密度分别为:24单/平方公里、17单/平方公里、55单/平方公里;则该司机的出车点评分θ满足:
θ=0.572×24+0.212×17+0.216×55。
另外,在另一种实施方式中,在得到每个司机所有历史出车地区对应的订单密度后,还可以根据订单密度获得每个历史出车地区的订单密度评分。
例如该订单密度评分可以为:将每个历史出车地区对应的订单密度评分进行归一化,将归一化后的订单密度作为该历史出车地区的订单密度评分。然后对每个司机所有历史出车地区对应的订单密度评分进行加权求和,订单密度评分的对应的权重,即为订单密度对应的历史出车地区对应司机的权重。
S404:根据每个司机的出车点评分,对参与竞赛的各个司机进行对手匹配。
在具体实现的时候,根据每个司机的出车点评分,对参与竞赛的各个司机进行对手匹配,是要将出车点评分接近的司机匹配到一起。
具体地,为了实现将出车点评分接近的司机匹配到一起,可以有下述几种方式:
其一:将出车点评分落入同一得分范围的司机匹配为竞赛对手。
此处,网约车平台会设置多个得分范围;当确定了某个司机的出车点评分后,根据该司机的出车点评分落入的范围,将司机划分到该得分范围对应的分组中。
当对司机进行对手匹配时,可以将划分到同一得分范围内的司机匹配为竞赛对手,也可以根据对手匹配的司机数量,将划分到同一得分范围对应的分组中的司机进行随机匹配。
其二:将出车点评分的差值小于预设的评分差值阈值的司机匹配到一起。
此处,网约车平台在获取了每一个参与竞赛的司机的出车点评分后,在对目标司机进行对手匹配的时候,会随机从当前参与竞赛的,且为匹配成功的其它司机中选择一个作为待选司机,计算目标司机和待选司机之间出车点评分的差值;若该差值小于预设的评分差值阈值,则将该待选司机作为该目标司机的对手。
实施例三
参见图10所示,本申请实施例三还提供另外一种竞赛中的对手匹配的补充措施,包括:
S1001:获取司机在参与竞赛期间的出车地点;
S1002:通过将司机在参与竞赛期间的出车地点,与获取的该司机的历史出车地点进行匹配,判断该司机是否存在作弊行为。
在具体实现的时候,为了避免某些司机存在作弊行为,例如其历史出车地点所在的历史出车区域中接收订单的效率是比较低的,但是其在参加竞赛之前,为了提高其竞争力,到达一个订单密度比较大的区域参与竞赛;显然,这对于通过本申请实施例所提供的对手匹配方法匹配到的对手而言,是不公平的。因此在本申请实施例中,还提出了一种检测司机是否存在作弊行为的方法,也即,在司机参与竞赛区间,获取该司机的出车地点,并将该司机在竞赛期间的出车地点和历史出车地点进行匹配;若两者地理位置差异较大,则认为该司机存在作弊行为,此时可以取消该司机参与竞赛的资格。
基于同一发明构思,本申请实施例中还提供了与竞赛中的对手匹配方法对应的竞赛中的对手匹配装置,由于本申请实施例中的装置解决问题的原理与本申请实施例上述竞赛中的对手匹配方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
实施例四
参见图11所示,本申请实施例四提供的竞赛中的对手匹配装置包括:
第一获取模块10,用于获取参与竞赛的每个司机的多个历史出车地点;
第二获取模块20,针对每个历史出车地点,获取与该历史出车地点对应的历史接单数据;
匹配模块30,用于根据与每个司机的多个历史出车地点对应的历史接单数据,对参与竞赛的各个司机进行对手匹配。
本申请实施例中,在对竞赛中的对手进行匹配的时候,会首先获取参与竞赛的每个司机的多个历史出车地点,然后针对每个历史出车地点,获取与该历史出车地点对应的历史接单数据,并根据与每个司机的多个历史出车地点对应的历史接单数据,对参与竞赛的各个司机进行对手匹配,在根据与历史出车地点对应的历史接单数据进行对手匹配的时候,能够将历史接单数据较为接近的司机作为对手匹配到一起,此时匹配到一起的司机的接单机会,从而提升匹配竞赛的公平性。
可选地,第一获取模块10具体用于通过下述步骤获取参与竞赛的每个司机的多个历史出车地点:
获取每个司机的历史订单数据;历史订单数据包括接单时间以及接单地点;
基于接单时间对司机的历史订单进行分组;其中,每个分组中,任意两个相邻的历史订单之间的接单时间差小于预设时间差阈值;
将每个分组中接单时间最早的历史订单对应的接单地点,作为该分组对应的历史出车地点。
可选地,第一获取模块10具体用于通过下述步骤获取参与竞赛的每个司机的多个历史出车地点:
在接收到每个司机的开始接单指令时,记录该司机所在的地理位置,将记录的地理位置作为该司机的历史出车地点。
可选地,匹配模块30,具体用于通过下述步骤根据与每个司机的多个历史出车地点对应的历史接单数据,对参与竞赛的各个司机进行对手匹配:
基于每个司机的多个历史出车地点,确定该司机的至少一个历史出车地区;
基于至少一个历史出车地区中的历史接单数量,确定至少一个历史出车地区分别对应的订单密度;
针对每个司机,根据该司机在不同历史出车地区的历史出车情况,以及每个历史出车地区对应的订单密度,确定该司机的出车点评分;
根据每个司机的出车点评分,对参与竞赛的各个司机进行对手匹配。
可选地,匹配模块30,具体用于通过下述步骤基于至少一个历史出车地区中的历史接单数量,确定至少一个历史出车地区分别对应的订单密度:
针对每个历史出车地区,确定出发地点落入该历史出车地区的历史订单的数量;根据确定的历史订单的数量以及该历史出车地区的面积,计算该历史出车地区的订单密度。
可选地,匹配模块30,具体用于通过下述步骤针对每个司机,根据该司机在不同历史出车地区的历史出车情况,以及每个历史出车地区对应的订单密度,确定该司机的出车点评分:
针对每个司机,根据该司机在每个历史出车地区的历史出车情况,确定每个历史出车地区对于该司机的权重;
根据每个历史出车地区对于该司机的权重及该历史出车地区对应的订单密度,确定该司机的出车点评分。
可选地,历史出车情况包括历史出车地点数量和/或历史出车次数。
可选地,若历史出车情况包括历史出车地点数量,匹配模块30,具体用于通过下述步骤根据该司机在每个历史出车地区的历史出车情况,确定每个历史出车地区对于该司机的权重:
针对该司机的任一历史出车地区,将该司机在该任一历史出车地区的历史出车地点数量,与该司机在各个历史出车地区的历史出车地点数量的总和之间的比值,确定为该任一历史出车地区对于该司机的权重。
可选地,历史出车情况包括历史出车次数,匹配模块30,具体用于通过下述步骤根据该司机在每个历史出车地区的历史出车情况,确定每个历史出车地区对于该司机的权重:
针对该司机的任一历史出车地区,将该司机在该任一历史出车地区的历史出车次数,与该司机在各个历史出车地区的历史出车次数的总和之间的比值,确定为该任一历史出车地区对于该司机的权重。
可选地,历史出车情况包括历史出车次数,匹配模块30,具体用于通过下述步骤根据该司机在每个历史出车地区的历史出车情况,确定每个历史出车地区对于该司机的权重:
针对该司机的任一历史出车地区,将该司机在该任一历史出车地区的历史出车次数,与该司机在各个历史出车地区的历史出车次数的总和之间的比值,确定为该任一历史出车地区对于该司机的权重。
可选地,匹配模块30,具体用于通过下述步骤对每个司机的多个历史出车地点进行聚类:
以该司机的所有未完成聚类的历史出车地点作为第一簇,计算第一簇的簇心坐标,簇心坐标为第一簇中各历史出车地点的平均经纬度;
以与第一簇的簇心距离最近的历史出车地点为中心,确定与该中心在预设距离范围内的历史出车地点,组成第二簇;
将第二簇作为新的第一簇,并返回计算第一簇的簇心坐标的步骤,直到满足迭代停止条件,将最后得到的第二簇作为聚类后的一个类,并将第二簇中的历史出车地点作为完成聚类的历史出车地点;
返回以该司机的多个未完成聚类的历史出车地点作为第一簇,计算第一簇的簇心坐标的步骤,直到该司机的所有历史出车地点完成聚类,得到聚类后的一个或多个类。
可选地,匹配模块30,具体用于通过下述步骤对每个司机的多个历史出车地点进行聚类:
根据预设的历史出车地区的个数K,随机选择K个历史出车地点作为初始的聚类中心;
针对每个初始的聚类中心,执行以下步骤:
将与该聚类中心之间的距离小于第一预设距离的历史出车地点和该聚类中心作为第一簇,计算第一簇的簇心坐标,簇心坐标为第一簇中历史出车地点的平均经纬度;
以与第一簇的簇心距离最近的历史出车地点为中心,确定与该中心在预设距离范围内的历史出车地点,组成第二簇;
将第二簇作为新的第一簇,并返回计算第一簇的簇心坐标的步骤,直到满足迭代停止条件,将最后得到的第二簇作为聚类后的一个类。
可选地,匹配模块30,具体用于通过下述步骤对每个司机的多个历史出车地点进行聚类:
将当前未完成聚类的历史出车地点中任意一个历史出车地点作为聚类中心,并依次计算其它当前未完成聚类的每一个历史出车地点与该聚类中心之间的距离;
将与聚类中心之间的距离小于第二预设距离的历史出车地点划分到与聚类中心同一类中,并将该类中的所有历史出车地点作为完成聚类的历史出车地点;
返回将当前未完成聚类的历史出车地点中任意一个历史出车地点作为聚类中心,并依次计算其它当前未完成聚类的每一个历史出车地点与该聚类中心之间的距离的步骤,直至所有的历史出车地点完成聚类。
可选地,匹配模块30,具体用于通过下述步骤基于每个类包含的至少一个历史出车地点,确定与该类对应的一个历史出车地区:
针对每一个类,确定该类中与该类的中心距离最远的历史出车地点;以该类的中心为圆心,以确定的历史出车地点与该中心之间的距离为半径,确定该类对应的历史出车地区。
匹配模块30,具体用于通过下述步骤根据每个司机的出车点评分,对参与竞赛的各个司机进行对手匹配:
将出车点评分落入同一得分范围的司机匹配为竞赛对手。
可选地,参见图11所示,竞赛中的对手匹配装置还包括:
作弊检测模块40,用于获取司机在参与竞赛期间的出车地点;
通过将司机在参与竞赛期间的出车地点,与获取的该司机的历史出车地点进行匹配,判断该司机是否存在作弊行为。
实施例五
对应于图1中的竞赛中的对手匹配方法,本申请实施例五还提供了一种计算机设备,如图12所示,该设备包括存储器1000、处理器2000及存储在该存储器1000上并可在该处理器2000上运行的计算机程序,其中,上述处理器2000执行上述计算机程序时实现上述竞赛中的对手匹配方法。
具体地,上述存储器1000和处理器2000能够为通用的存储器和处理器,这里不做具体限定,当处理器2000运行存储器1000存储的计算机程序时,能够执行上述竞赛中的对手匹配方法,从而解决对参与竞赛的司机进行随机匹配导致的不公平的问题,进而达到可以基于参与竞赛的司机的历史出车地点,以及与历史出车地点对应的历史接单数据,对参与竞赛到的司机进行对手匹配,使得匹配到同一竞赛组的司机具有较为公平的接单机会,提升匹配竞赛的公平性的效果。
实施例六
对应于图1中的竞赛中的对手匹配方法,本申请实施例六还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述竞赛中的对手匹配方法的步骤。
具体地,该存储介质能够为通用的存储介质,如移动磁盘、硬盘等,该存储介质上的计算机程序被运行时,能够执行上述竞赛中的对手匹配,从而解决对参与竞赛的司机进行随机匹配导致的不公平的问题,进而达到可以基于参与竞赛的司机的历史出车地点,以及与历史出车地点对应的历史接单数据,对参与竞赛到的司机进行对手匹配,使得匹配到同一竞赛组的司机具有较为公平的接单机会,提升匹配竞赛的公平性的效果。
本申请实施例所提供的竞赛中的对手匹配方法以及装置的计算机程序产品,包括存储了程序代码的计算机可读存储介质,程序代码包括的指令可用于执行前面方法实施例中的方法,具体实现可参见方法实施例,在此不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
Claims (34)
1.一种竞赛中的对手匹配方法,其特征在于,该方法包括:
获取参与竞赛的每个司机的多个历史出车地点;
针对每个所述历史出车地点,获取与该历史出车地点对应的历史接单数据;
根据与每个司机的多个历史出车地点对应的历史接单数据,对参与竞赛的各个司机进行对手匹配。
2.根据权利要求1所述的方法,其特征在于,获取参与竞赛的每个司机的多个历史出车地点,包括:
获取每个司机的历史订单数据;所述历史订单数据包括接单时间以及接单地点;
基于所述接单时间对所述司机的历史订单进行分组;其中,每个分组中,任意两个相邻的历史订单之间的接单时间差小于预设时间差阈值;
将每个分组中接单时间最早的历史订单对应的接单地点,作为该分组对应的历史出车地点。
3.根据权利要求1所述的方法,其特征在于,所述获取参与竞赛的每个司机的多个历史出车地点,包括:
在接收到每个司机的开始接单指令时,记录该司机所在的地理位置,将记录的所述地理位置作为该司机的历史出车地点。
4.根据权利要求1所述的方法,其特征在于,根据与每个司机的多个历史出车地点对应的历史接单数据,对参与竞赛的各个司机进行对手匹配,包括:
基于每个司机的多个历史出车地点,确定该司机的至少一个历史出车地区;
基于所述至少一个历史出车地区中的历史接单数量,确定所述至少一个历史出车地区分别对应的订单密度;
针对每个司机,根据该司机在不同历史出车地区的历史出车情况,以及每个历史出车地区对应的所述订单密度,确定该司机的出车点评分;
根据每个司机的出车点评分,对参与竞赛的各个司机进行对手匹配。
5.根据权利要求4所述的方法,其特征在于,基于所述至少一个历史出车地区中的历史接单数量,确定所述至少一个历史出车地区分别对应的订单密度,包括:
针对每个所述历史出车地区,确定出发地点落入该历史出车地区的历史订单的数量;根据确定的历史订单的数量以及该历史出车地区的面积,计算该历史出车地区的订单密度。
6.根据权利要求4所述的方法,其特征在于,针对每个司机,根据该司机在不同历史出车地区的历史出车情况,以及每个历史出车地区对应的所述订单密度,确定该司机的出车点评分,包括:
针对每个司机,根据该司机在每个历史出车地区的历史出车情况,确定每个历史出车地区对于该司机的权重;
根据每个历史出车地区对于该司机的权重及该历史出车地区对应的订单密度,确定该司机的出车点评分。
7.根据权利要求6所述的方法,其特征在于,所述历史出车情况包括历史出车地点数量和/或历史出车次数。
8.根据权利要求7所述的方法,其特征在于,若所述历史出车情况包括历史出车地点数量,所述根据该司机在每个历史出车地区的历史出车情况,确定每个历史出车地区对于该司机的权重,包括:
针对该司机的任一历史出车地区,将该司机在该任一历史出车地区的历史出车地点数量,与该司机在各个历史出车地区的历史出车地点数量的总和之间的比值,确定为该任一历史出车地区对于该司机的权重。
9.根据权利要求7所述的方法,其特征在于,若所述历史出车情况包括历史出车次数,所述根据该司机在每个历史出车地区的历史出车情况,确定每个历史出车地区对于该司机的权重,包括:
针对该司机的任一历史出车地区,将该司机在该任一历史出车地区的历史出车次数,与该司机在各个历史出车地区的历史出车次数的总和之间的比值,确定为该任一历史出车地区对于该司机的权重。
10.根据权利要求4所述的方法,其特征在于,所述基于每个司机的多个历史出车地点,确定该司机的至少一个历史出车地区,包括:
对每个司机的多个历史出车地点进行聚类,得到至少一个类;
基于每个类包含的至少一个历史出车地点,确定与该类对应的一个历史出车地区。
11.根据权利要求10所述的方法,其特征在于,所述对每个司机的多个历史出车地点进行聚类,包括:
以该司机的所有未完成聚类的历史出车地点作为第一簇,计算第一簇的簇心坐标,所述簇心坐标为第一簇中各历史出车地点的平均经纬度;
以与所述第一簇的簇心距离最近的历史出车地点为中心,确定与该中心在预设距离范围内的历史出车地点,组成第二簇;
将所述第二簇作为新的第一簇,并返回所述计算第一簇的簇心坐标的步骤,直到满足迭代停止条件,将最后得到的第二簇作为聚类后的一个类,并将第二簇中的历史出车地点作为完成聚类的历史出车地点;
返回所述以该司机的多个未完成聚类的历史出车地点作为第一簇,计算第一簇的簇心坐标的步骤,直到该司机的所有历史出车地点完成聚类,得到聚类后的一个或多个类。
12.根据权利要求10所述的方法,其特征在于,所述对每个司机的多个历史出车地点进行聚类,包括:
根据预设的历史出车地区的个数K,从该司机的各个历史出车地点中随机选择K个历史出车地点作为初始的聚类中心;
针对每个初始的聚类中心,执行以下步骤:
将与该聚类中心之间的距离小于第一预设距离的历史出车地点和该聚类中心作为第一簇,计算第一簇的簇心坐标,所述簇心坐标为第一簇中历史出车地点的平均经纬度;
以与所述第一簇的簇心距离最近的历史出车地点为中心,确定与该中心在预设距离范围内的历史出车地点,组成第二簇;
将所述第二簇作为新的第一簇,并返回所述计算第一簇的簇心坐标的步骤,直到满足迭代停止条件,将最后得到的第二簇作为聚类后的一个类。
13.根据权利要求10所述的方法,其特征在于,所述对每个司机的多个历史出车地点进行聚类,包括:
将当前未完成聚类的历史出车地点中任意一个历史出车地点作为聚类中心,并依次计算其它当前未完成聚类的每一个历史出车地点与该聚类中心之间的距离;
将与所述聚类中心之间的距离小于第二预设距离的历史出车地点划分到与所述聚类中心同一类中,并将该类中的所有历史出车地点作为完成聚类的历史出车地点;
返回所述将当前未完成聚类的历史出车地点中任意一个历史出车地点作为聚类中心,并依次计算其它当前未完成聚类的每一个历史出车地点与该聚类中心之间的距离的步骤,直至所有的历史出车地点完成聚类。
14.根据权利要求10所述的方法,其特征在于,所述基于每个类包含的至少一个历史出车地点,确定与该类对应的一个历史出车地区,包括:
针对每一个类,确定该类中与该类的中心距离最远的历史出车地点;以该类的中心为圆心,以确定的所述与该类的中心距离最远的历史出车地点与该中心之间的距离为半径,确定该类对应的历史出车地区。
15.根据权利要求4所述的方法,其特征在于,根据每个司机的出车点评分,对参与竞赛的各个司机进行对手匹配,包括:
将出车点评分落入同一得分范围的司机匹配为竞赛对手。
16.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取司机在参与竞赛期间的出车地点;
通过将所述司机在参与竞赛期间的出车地点,与获取的该司机的历史出车地点进行匹配,判断该司机是否存在作弊行为。
17.一种竞赛中的对手匹配装置,其特征在于,该装置包括:
第一获取模块,用于获取参与竞赛的每个司机的多个历史出车地点;
第二获取模块,针对每个所述历史出车地点,获取与该历史出车地点对应的历史接单数据;
匹配模块,用于根据与每个司机的多个历史出车地点对应的历史接单数据,对参与竞赛的各个司机进行对手匹配。
18.根据权利要求17所述的装置,其特征在于,所述第一获取模块具体用于通过下述步骤获取参与竞赛的每个司机的多个历史出车地点:
获取每个司机的历史订单数据;所述历史订单数据包括接单时间以及接单地点;
基于所述接单时间对所述司机的历史订单进行分组;其中,每个分组中,任意两个相邻的历史订单之间的接单时间差小于预设时间差阈值;
将每个分组中接单时间最早的历史订单对应的接单地点,作为该分组对应的历史出车地点。
19.根据权利要求17所述的装置,其特征在于,所述第一获取模块具体用于通过下述步骤所述获取参与竞赛的每个司机的多个历史出车地点:
在接收到每个司机的开始接单指令时,记录该司机所在的地理位置,将记录的所述地理位置作为该司机的历史出车地点。
20.根据权利要求17所述的装置,其特征在于,所述匹配模块,具体用于通过下述步骤根据与每个司机的多个历史出车地点对应的历史接单数据,对参与竞赛的各个司机进行对手匹配:
基于每个司机的多个历史出车地点,确定该司机的至少一个历史出车地区;
基于所述至少一个历史出车地区中的历史接单数量,确定所述至少一个历史出车地区分别对应的订单密度;
针对每个司机,根据该司机在不同历史出车地区的历史出车情况,以及每个历史出车地区对应的所述订单密度,确定该司机的出车点评分;
根据每个司机的出车点评分,对参与竞赛的各个司机进行对手匹配。
21.根据权利要求20所述的装置,其特征在于,所述匹配模块,具体用于通过下述步骤基于所述至少一个历史出车地区中的历史接单数量,确定所述至少一个历史出车地区分别对应的订单密度:
针对每个所述历史出车地区,确定出发地点落入该历史出车地区的历史订单的数量;根据确定的历史订单的数量以及该历史出车地区的面积,计算该历史出车地区的订单密度。
22.根据权利要求20所述的装置,其特征在于,所述匹配模块,具体用于通过下述步骤针对每个司机,根据该司机在不同历史出车地区的历史出车情况,以及每个历史出车地区对应的所述订单密度,确定该司机的出车点评分:
针对每个司机,根据该司机在每个历史出车地区的历史出车情况,确定每个历史出车地区对于该司机的权重;
根据每个历史出车地区对于该司机的权重及该历史出车地区对应的订单密度,确定该司机的出车点评分。
23.根据权利要求22所述的装置,其特征在于,所述历史出车情况包括历史出车地点数量和/或历史出车次数。
24.根据权利要求23所述的装置,其特征在于,若所述历史出车情况包括历史出车地点数量,所述匹配模块,具体用于通过下述步骤根据该司机在每个历史出车地区的历史出车情况,确定每个历史出车地区对于该司机的权重:
针对该司机的任一历史出车地区,将该司机在该任一历史出车地区的历史出车地点数量,与该司机在各个历史出车地区的历史出车地点数量的总和之间的比值,确定为该任一历史出车地区对于该司机的权重。
25.根据权利要求23所述的装置,其特征在于,若所述历史出车情况包括历史出车次数,所述匹配模块,具体用于通过下述步骤根据该司机在每个历史出车地区的历史出车情况,确定每个历史出车地区对于该司机的权重:
针对该司机的任一历史出车地区,将该司机在该任一历史出车地区的历史出车次数,与该司机在各个历史出车地区的历史出车次数的总和之间的比值,确定为该任一历史出车地区对于该司机的权重。
26.根据权利要求20所述的装置,其特征在于,所述匹配模块,具体用于通过下述步骤基于每个司机的多个历史出车地点,确定该司机的至少一个历史出车地区:
对每个司机的多个历史出车地点进行聚类,得到至少一个类;
基于每个类包含的至少一个历史出车地点,确定与该类对应的一个历史出车地区。
27.根据权利要求26所述的装置,其特征在于,所述匹配模块,具体用于通过下述步骤对每个司机的多个历史出车地点进行聚类:
以该司机的所有未完成聚类的历史出车地点作为第一簇,计算第一簇的簇心坐标,所述簇心坐标为第一簇中各历史出车地点的平均经纬度;
以与所述第一簇的簇心距离最近的历史出车地点为中心,确定与该中心在预设距离范围内的历史出车地点,组成第二簇;
将所述第二簇作为新的第一簇,并返回所述计算第一簇的簇心坐标的步骤,直到满足迭代停止条件,将最后得到的第二簇作为聚类后的一个类,并将第二簇中的历史出车地点作为完成聚类的历史出车地点;
返回所述以该司机的多个未完成聚类的历史出车地点作为第一簇,计算第一簇的簇心坐标的步骤,直到该司机的所有历史出车地点完成聚类,得到聚类后的一个或多个类。
28.根据权利要求26所述的装置,其特征在于,所述匹配模块,具体用于通过下述步骤对每个司机的多个历史出车地点进行聚类:
根据预设的历史出车地区的个数K,从该司机的各个历史出车地点中随机选择K个历史出车地点作为初始的聚类中心;
针对每个初始的聚类中心,执行以下步骤:
将与该聚类中心之间的距离小于第一预设距离的历史出车地点和该聚类中心作为第一簇,计算第一簇的簇心坐标,所述簇心坐标为第一簇中历史出车地点的平均经纬度;
以与所述第一簇的簇心距离最近的历史出车地点为中心,确定与该中心在预设距离范围内的历史出车地点,组成第二簇;
将所述第二簇作为新的第一簇,并返回所述计算第一簇的簇心坐标的步骤,直到满足迭代停止条件,将最后得到的第二簇作为聚类后的一个类。
29.根据权利要求26所述的装置,其特征在于,所述匹配模块,具体用于通过下述步骤对每个司机的多个历史出车地点进行聚类:
将当前未完成聚类的历史出车地点中任意一个历史出车地点作为聚类中心,并依次计算其它当前未完成聚类的每一个历史出车地点与该聚类中心之间的距离;
将与所述聚类中心之间的距离小于第二预设距离的历史出车地点划分到与所述聚类中心同一类中,并将该类中的所有历史出车地点作为完成聚类的历史出车地点;
返回所述将当前未完成聚类的历史出车地点中任意一个历史出车地点作为聚类中心,并依次计算其它当前未完成聚类的每一个历史出车地点与该聚类中心之间的距离的步骤,直至所有的历史出车地点完成聚类。
30.根据权利要求26所述的装置,其特征在于,所述匹配模块,具体用于通过下述步骤基于每个类包含的至少一个历史出车地点,确定与该类对应的一个历史出车地区:
针对每一个类,确定该类中与该类的中心距离最远的历史出车地点;以该类的中心为圆心,以确定的所述与该类的中心距离最远的历史出车地点与该中心之间的距离为半径,确定该类对应的历史出车地区。
31.根据权利要求20所述的装置,其特征在于,所述匹配模块,具体用于通过下述步骤根据每个司机的出车点评分,对参与竞赛的各个司机进行对手匹配:
将出车点评分落入同一得分范围的司机匹配为竞赛对手。
32.根据权利要求17所述的装置,其特征在于,所述装置还包括:
作弊检测模块,用于获取司机在参与竞赛期间的出车地点;通过将所述司机在参与竞赛期间的出车地点,与获取的该司机的历史出车地点进行匹配,判断该司机是否存在作弊行为。
33.一种电子设备,其特征在于,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如权利要求1~16任一所述的竞赛中的对手匹配方法。
34.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如权利要求1~16任一所述的竞赛中的对手匹配方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810662902.XA CN110633881A (zh) | 2018-06-25 | 2018-06-25 | 一种竞赛中的对手匹配方法以及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810662902.XA CN110633881A (zh) | 2018-06-25 | 2018-06-25 | 一种竞赛中的对手匹配方法以及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110633881A true CN110633881A (zh) | 2019-12-31 |
Family
ID=68968709
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810662902.XA Pending CN110633881A (zh) | 2018-06-25 | 2018-06-25 | 一种竞赛中的对手匹配方法以及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110633881A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111507731A (zh) * | 2020-06-17 | 2020-08-07 | 银联数据服务有限公司 | 一种异常数据侦测的特征生成方法及装置 |
CN111815101A (zh) * | 2020-01-15 | 2020-10-23 | 北京嘀嘀无限科技发展有限公司 | 一种信息处理方法、装置、存储介质及电子设备 |
-
2018
- 2018-06-25 CN CN201810662902.XA patent/CN110633881A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111815101A (zh) * | 2020-01-15 | 2020-10-23 | 北京嘀嘀无限科技发展有限公司 | 一种信息处理方法、装置、存储介质及电子设备 |
CN111815101B (zh) * | 2020-01-15 | 2024-05-03 | 北京嘀嘀无限科技发展有限公司 | 一种信息处理方法、装置、存储介质及电子设备 |
CN111507731A (zh) * | 2020-06-17 | 2020-08-07 | 银联数据服务有限公司 | 一种异常数据侦测的特征生成方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107977739B (zh) | 物流配送路径的优化方法、装置及设备 | |
CN113095531A (zh) | 一种派单方法和装置 | |
CN109325185B (zh) | 一种确定上车点的方法、装置、设备及存储介质 | |
US10042893B2 (en) | System and method for personal and peer performance ranking of outdoor activities | |
WO2016206526A1 (zh) | 用于乘用工具资源共享的方法、装置及系统 | |
CN111353092B (zh) | 服务推送方法、装置、服务器及可读存储介质 | |
CN112950251A (zh) | 一种基于信誉的车辆群智感知节点反向组合拍卖激励优化方法 | |
CN108066989A (zh) | 一种随机匹配组队方法、装置及应用服务器 | |
CN108681921A (zh) | 一种基于随机博弈获取群智感知激励策略的方法及装置 | |
CN110633881A (zh) | 一种竞赛中的对手匹配方法以及装置 | |
CN110956296A (zh) | 一种用户流失概率预测方法及装置 | |
US20220391564A1 (en) | Simulation framework for real time vehicle dispatching algorithms evaluation | |
CN109242533A (zh) | 基于拍卖理论的车联网群智感知用户的在线激励方法 | |
CN116663811A (zh) | 一种城际客运的往返动态拼车的调度匹配方法和装置 | |
WO2021031636A1 (zh) | 一种基于实时单行程车辆的实时单派单方法和装置 | |
CN110610282A (zh) | 团队成员的考核结果发送方法及装置 | |
CN109325657A (zh) | 一种信贷业务的审批方法、存储介质和服务器 | |
CN113505149A (zh) | 一种推荐充电站的方法、服务器、介质及计算机设备 | |
CN110798800B (zh) | 信息推送方法、装置、设备及计算机可读存储介质 | |
CN110580563A (zh) | 基于出车行为的司机组队方法、装置及设备 | |
CN113054676B (zh) | 一种基于多iev竞价的移动充电桩调度方法 | |
CN113739812B (zh) | 配送计划生成方法、装置、系统及计算机可读存储介质 | |
CN111753386B (zh) | 一种数据处理方法及装置 | |
US20160092899A1 (en) | System and method for using gamification to improve eco-driving behavior and measure fuel reductions | |
CN113837211A (zh) | 一种驾驶决策方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20191231 |
|
RJ01 | Rejection of invention patent application after publication |