加油站的推荐方法、装置和可读存储介质
文献发布时间:2023-06-19 11:16:08
技术领域
本发明涉及路径规划领域,具体而言,涉及一种加油站的推荐方法、装置和可读存储介质。
背景技术
目前针对船舶的加油站推荐方法多是人工客服打电话询问船长加油意向并做定向营销,以吸引船舶就近加油。这种推荐方法为了促成更多加油交易,需要大量客服人员主动与船舶取得联系,并且由于未考虑船舶加油习惯及行驶信息,因此,存在投入大、效率低的问题。
发明内容
本发明旨在解决现有技术或相关技术中存在的人工推荐加油站投入大、效率低的技术问题。
为此,本发明的第一方面提出了一种加油站的推荐方法。
本发明的第二方面提出了一种加油站的推荐装置。
本发明的第三方面提出了一种可读存储介质。
有鉴于此,根据本发明的第一方面,提出了一种加油站的推荐方法,包括:根据至少一艘船舶的第一历史加油信息和至少一个加油站的位置信息,确定第一加权有向图;根据至少一艘船舶中的目标船舶的第二历史加油信息、目标船舶的行驶信息和加油站的位置信息,更新第一加权有向图,以获得第二加权有向图;根据第二加权有向图,在多个加油站中确定推荐加油站,向目标船舶推送推荐加油站。
本发明提出的加油站的推荐方法,在得到每个加油站的位置的基础上,根据所有船舶的第一历史加油信息,构建第一加权有向图,并在所有船舶中选择一个被推荐船舶,作为目标船舶,然后根据目标船舶的第二历史加油信息和行驶信息以及加油站的位置信息,对构建得到的第一加权有向图进行更新,最后根据更新得到的第二加权有向图,为该目标船舶推送加油站。本发明在构建第一加权有向图时考虑了多艘船舶的历史加油信息,避免只考虑单一船舶导致第一加权有向图的适用性过窄的问题,在对不同的船舶推荐加油站时,都可以在同样的第一加权有向图上进行更新操作,进而得到第二加权有向图,而不需要重新构建第一加权有向图,实现了一次构建,多次使用的效果。在对构建得到的第一加权有向图进行更新时,依据目标船舶的信息,综合考虑了目标船舶的历史习惯和当前行驶状态,使推荐更有针对性。本申请将船舶的信息和加油站的信息结合起来,实现了对船舶的加油站的自动推荐,有效解决了人工客服电话推荐加油站所导致的投入大、效率低等问题。
另外,根据本发明上述技术方案提出的加油站的推荐方法,还可以具有以下技术特征:
在一种可能的设计中,根据至少一艘船舶的第一历史加油信息和至少一个加油站的位置信息,具体包括:根据第一历史加油信息,构建第一有向图;根据位置信息,确定第一权重;根据第一有向图和第一权重,确定第一加权有向图。
在该设计中,根据多艘船舶的第一历史加油信息,构建第一有向图,并根据加油站的位置确定第一权重,再将第一权重添加至第一有向图中,得到第一加权有向图。在构建第一加权有向图时,综合考虑了船舶的历史习惯和加油站的位置信息,以历史习惯为依据,构建的有向图更符合习惯规律,根据位置信息确定第一权重,考虑了在不同位置之间运动需要付出的距离成本等信息,使第一加权有向图在符合历史规律的同时,更符合现实因素。
在一种可能的设计中,第一历史加油信息还包括:船舶在加油站开始加油的历史时刻;根据第一历史加油信息,构建第一有向图,具体包括:以加油站作为结点,构建图;按照结点对应的加油站对应的历史时刻的先后顺序,构建链表,其中,链表的方向为由历史时刻在先的加油站对应的结点指向历史时刻在后的加油站对应的结点;在链表中存在相邻的两个第一加油站结点,满足第一加油站结点对应的加油站不同的情况下,根据第一加油站结点构建有向边,其中,有向边的方向与链表方向一致;在有向边不产生环路的情况下,根据图和有向边生成第一有向图;根据位置信息,确定第一权重,具体包括:根据位置信息确定每一个有向边两端的加油站结点对应的加油站之间的第一边距离,根据第一边距离确定有向边的第一边权重。根据全部有向边的第一边权重的集合,确定第一权重。
在该设计中,每艘船舶的第一历史加油信息包括该船舶曾经加油的加油站,以及该船舶在加油站开始加油的时刻,首先以每艘船舶曾经加油的加油站作为结点,构建图。对于每艘船舶的第一历史加油信息,按照该船舶在加油站开始加油的时刻的先后顺序排序。根据排好序的加油站构建链表,其中链表的方向为由到达时刻在先的加油站对应的结点指向到达时刻在后的加油站对应的结点。在链表中,当相邻的两个加油站不同时,可以连接这两个加油站得到一条有向边,有向边的方向与链表方向一致,换言之,有向边的方向也是由到达时刻在先的加油站对应的结点指向到达时刻在后的加油站对应的结点。如果将这条有向边加入图中,也就是将图中对应的两个结点相连,不产生环路,那么就将这条有向边加入图中,若产生环路则不加入该有向边,对每艘船舶所构建的链表执行以上操作,得到第一有向图。并根据每艘船舶到达过的加油站的位置,计算第一有向图中每条边两端的结点所对应的加油站之间的第一边距离,将计算得到的第一边距离作为参数,引入权重函数中,确定每条有向边的第一边权重,进而根据全部有向边的第一边权重,确定第一权重。
进一步地,权重函数为第一边距离除以一个数值,通过将加油站之间的第一边距离除以一个特定的数值,实现了第一边权重的标准化。此外,该特定的数值可以是预先设定,也可以是根据历史数据通过机器学习训练得到的。
在一种可能的设计中,目标船舶的行驶信息包括:目标船舶的当前位置信息、目标船舶的航向信息、目标船舶的剩余续航里程;根据至少一艘船舶中的目标船舶的第二历史加油信息、目标船舶的行驶信息和加油站的位置信息,更新第一加权有向图,以获得第二加权有向图,具体包括:根据行驶信息和位置信息,在第一有向图中确定源结点;根据源结点,在第一有向图中确定后继结点;根据源结点和后继结点确定第二权重;根据第二权重更新第一加权有向图,得到第二加权有向图。
在该设计中,目标船舶的行驶信息包括:目标船舶的位置信息、航向信息和剩余续航里程,根据目标船舶的行驶信息,对第一加权有向图进行更新,得到第二加权有向图,由于更新时考虑了目标船舶的信息,因此,更新得到的第二加权有向图更有针对性,更符合目标船舶的需求。
具体地,根据目标船舶的行驶信息和加油站的位置确定源结点,并在第一有向图中,根据源结点在第一有向图中确定后继结点,进而根据源结点和后继结点的位置信息计算得到第二权重,根据第二权重更新第一加权有向图,得到第二加权有向图。在得到第二加权有向图的过程中,同时考虑了源结点和后继结点的位置关系,以及目标船舶的行驶信息,使第二加权有向图更符合目标船舶的实际需求。
在一种可能的设计中,根据行驶信息和位置信息,在第一有向图中确定源结点,具体包括:在第一有向图中确定目标结点,其中目标结点对应的目标加油站与目标船舶之间的距离小于或等于预设的距离阈值; 根据航向信息,确定航向与预设方向之间的航向角度;根据航向角度确定航向角度系数;根据每个目标结点对应的目标加油站相对目标船舶的方向,确定方向与预设方向之间的加油站角度;根据加油站角度确定加油站角度系数;计算加油站角度系数与航向角度系数的差值,以差值最小的加油站角度对应的结点为源结点;根据源结点,在第一有向图中确定后继结点,具体包括:在第一有向图中,以源结点为起点,沿有向边前进,以能够到达的结点为后继结点,其中有向边为一条或多条。
在该设计中,根据目标船舶的当前位置信息和加油站的位置信息,计算目标船舶到每个加油站的距离,将距离小于或等于预设距离阈值的结点作为目标结点,也就是选择距离目标船舶在预设距离阈值的范围内的结点作为目标结点。并在所有的目标结点中,选择与目标船舶的行驶方向相匹配的结点,作为源结点。
具体地,首先确定每一个加油站相对于目标船舶的相对方向,分别计算每个相对方向与预设方向之间的角度,通过运算得到每个加油站相对应的加油站角度系数,确定目标船舶的航向相对预设方向之间的角度,通过运算得到航向相对应的航向角度系数,计算每个加油站角度系数与航向角度系数的差值,形成一个差值集合,在差值集合中选取最小差值,该最小差值对应的加油站即为偏离目标船舶的航向最少的加油站,将该加油站相对于目标船舶的相对方向,与航向信息相匹配,将该加油站对应的结点作为源结点。在确定源结点的过程中,同时考虑了目标船舶的航向以及其与加油站之间的距离,便于找到更符合目标船舶实际需求的加油站,作为源加油站。
进一步地,在第一有向图中,以源结点为起点,沿有向边前进,能够到达的结点即为后继结点,也就是源结点和后继结点之间通过一条或多条有向边连通。
在一种可能的设计中,根据源结点和后继结点确定第二权重,具体包括:在第一有向图中,以源结点为起点,以后继结点为终点,沿有向边中的一条或多条有向边前进,一条或多条有向边为目标有向边;根据源结点、结点和当前位置信息,确定目标有向边的第一权重分量;根据第二历史加油信息,确定目标有向边的第二权重分量;根据第一权重分量和第二权重分量,确定目标有向边的第二边权重;根据全部目标有向边的第二边权重的集合确定第二权重。
在该设计中,在确定源结点和后继结点后,在第一有向图中,根据源结点和后继结点确定目标有向边,具体地,在第一有向图中,以源结点为起点,沿有向边前进,到达后继结点,在前进过程中经过的有向边即为目标有向边。也就是源结点和后继结点之间通过一条或多条有向边连通,连通源结点和后继结点的有向边即为目标有向边。然后根据源结点和除源结点外的其他结点以及目标船舶的当前位置信息,计算得到可以反映位置关系的第一权重分量,根据目标船舶的第二历史加油信息,计算得到可以反映目标船舶的历史习惯的第二权重分量,根据第一权重分量和第二权重分量计算得到第二边权重,进而根据全部目标有向边的第二边权重得到第二权重。在计算得到第二权重的过程中,同时考虑了源结点和后继结点的位置关系,以及目标船舶的第二历史习惯,使第二加权有向图更符合目标船舶的实际需求。
在一种可能的设计中,根据源结点、结点和当前位置信息,确定第一权重分量,具体包括:确定源结点对应的待选加油站与目标船舶之间的当前距离;确定目标有向边两端的结点对应的加油站之间的第二边距离;根据当前距离和第二边距离,确定目标有向边的第一权重分量;根据第二历史加油信息,确定目标有向边的第二权重分量,具体包括:根据第二历史加油信息,在第一有向图中确定到达结点和非到达结点,其中目标船舶曾经在到达结点对应的到达加油站加油,目标船舶未曾在非到达结点对应的非到达加油站加油;根据第二历史加油信息,确定最近时刻,其中最近时刻为目标船舶最近一次在到达结点开始加油的时刻;根据最近时刻和当前时刻,确定源结点与到达结点之间的到达有向边的计算权重分量;确定源结点与非到达结点之间的非到达有向边的预设权重分量;根据计算权重分量和预设权重分量,确定第二权重分量。
在该设计中,根据源结点对应的待选加油站的位置信息,目标船舶的当前位置信息和目标有向边两端结点对应的加油站的位置信息,确定待选加油站与目标船舶之间的当前距离,以及目标有向边两端结点对应的加油站之间的第二边距离,进而根据当前距离和第二边距离确定目标有向边的第一权重分量。第二权重分量为目标船舶的习惯指数,第二权重分量的默认值为预设权重分量。在第一有向图中,对于每一个后继结点,如果目标船舶曾经在该后继结点加油,那么该后继结点是到达结点,反之则为非到达结点。获取目标船舶最近一次在到达结点开始加油的时刻,记为最近时刻,根据最近时刻与当前时刻,计算得到源结点与到达结点之间的有向边的计算权重分量,该有向边的第二权重分量为计算得到的计算权重分量。而对于源结点与非到达结点之间的有向边,其第二权重分量为预设权重分量。
进一步地,确定目标有向边的第一权重分量的具体计算步骤如下:计算目标船舶到源结点的距离d1,计算目标船舶的剩余续航里程与d1的差值d,计算源结点到每一个后继结点的距离d2,得到d与d2之间的差值并将此差值除以一个预设数值,最后将计算结果取整得到第一权重分量。
进一步地,预设权重分量可以设为0。
在一种可能的设计中,根据第二加权有向图,在加油站中确定推荐加油站,具体包括:在当前距离大于或等于剩余续航里程的情况下,计算源结点到达其他结点所经过的全部目标有向边的第二边权重的和,以和为路径权重;在当前距离小于剩余续航里程的情况下,确定源结点到第二有向图上余下的每一个其他结点之间的路径权重;以路径权重中最小值对应结点对应的加油站为推荐加油站。
在该设计中,在当前距离大于或等于剩余续航里程的情况下,也就是目标船舶的剩余续航里程过少,不足以支持目标船舶到达源结点或者距离更远的结点时,确定源结点为推荐加油站。此时,源结点可以对目标船舶提供支援,以使其能够到达源结点。在当前距离小于剩余续航里程的情况下,也就是目标船舶的剩余续航里程足够大,此时可以选择其他结点作为目标加油站,具体地,对于每一个其他结点,从源结点出发,到达该其他结点的途中所经过的全部目标有向边为源结点到该其他结点的路径。计算源结点到达该其他结点的途中所经过的全部目标有向边的第二边权重的和,即为该其他结点对应的路径权重,确定源结点到第二有向图上其余每一个结点之间的路径权重,并以路径权重中最小值对应结点对应的加油站为推荐加油站。
进一步地,剩余续航里程可以根据单次加油平均行驶里程和上次加油后行驶里程计算得到,具体地,根据目标船舶的轨迹计算该船舶上次加油后的平均航速和行驶里程,并获取该船舶在该平均航速下的单次加油平均航行里程,计算单次加油平均航行里程与行驶里程之间的差值,得到剩余续航里程。
在一种可能的设计中,根据活跃加油站集合和营业加油站集合,确定加油站集合。
在该设计中,确定在预设选择时刻之后,将船舶到达过的所有加油站组成的集合作为活跃加油站集合;确定符合预设规则的业务加油站集合;在业务加油站集合中,去掉不再营业的加油站,得到营业加油站集合;确定活跃加油站集合和营业加油站集合的交集,作为加油站集合。
在一种可能的设计中,使用Bellman-Ford算法确定路径权重最小的结点。
在该设计中,Bellman-Ford算法通过对有向边执行松弛操作来渐近地降低从源结点到其他结点的最小路径权重的估计值,直到该估计值与实际的最小路径权重相同为止。具体过程是首先初始化路径估计和父节点,记v.d为源结点s到第二有向图中其他结点v的最小路径权重的估计值,将v.d初始化为无穷大。然后定义松弛操作函数,松弛过程为:确定从源结点s到其他结点v之间的最小路径权重以及第二有向图中另一个其他结点u与v之间的边权重,对计算得到的最小路径权重和边权重进行求和计算,并将计算得到的求和结果与当前的源结点s到其他结点v的最小路径权重的估计值进行比较,如果前者更小,则对v.d和v的前驱结点进行更新。最后定义Bellman-Ford函数,过程是首先对第二加权有向图执行初始化操作,然后执行|V|-1次循环处理,其中|V|为第二加权有向图的结点数。每一次循环对第二加权有向图的每条有向边进行一次松弛操作。执行上述循环处理后检查图中是否存在边权重之和为负值的环路并返回与之相对应的布尔值,若该过程未检查到权重为负值的环路,设p(s,v)为源结点s到结点v的最短路径,且v.d最小,则结点v就是路径权重最小的结点。
根据本发明的第二方面,提出了一种加油站的推荐装置,包括:构建单元,用于根据至少一艘船舶的第一历史加油信息,和至少一个加油站的位置信息,确定第一加权有向图; 更新单元,用于根据至少一艘船舶中的目标船舶的第二历史加油信息、目标船舶的行驶信息和加油站的位置信息,更新第一加权有向图,以获得第二加权有向图;推荐单元:根据第二加权有向图,在多个加油站中确定推荐加油站,向目标船舶推送该推荐加油站。
具体地,本发明提出的加油站的推荐装置,包括构建单元、更新单元和推荐单元。构建单元在得到每个加油站的位置的基础上,根据多艘船舶的第一历史加油信息,构建第一加权有向连通图。更新单元在所有船舶中选择一个被推荐船舶,作为目标船舶,然后根据目标船舶的第二历史加油信息和行驶信息以及加油站的位置信息,对构建得到的第一加权有向图进行更新,得到第二加权有向图。推荐单元根据更新后得到的第二加权有向图,为该目标船舶推荐加油站。
根据本发明的第三方面,提供了一种可读存储介质,其上存储有程序或指令,程序或指令被处理器执行时实现如上述第一方面的任一设计的加油站的推荐方法的步骤,因而具备该加油站的推荐方法的全部有益效果,在此不再赘述。
本发明的附加方面和优点将在下面的描述部分中变得明显,或通过本发明的实践了解到。
附图说明
本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1示出了本发明的第一方面的一个实施例的加油站的推荐方法的流程示意图;
图2示出了本发明第一方面的另一个实施例的加油站的推荐方法的流程示意图;
图3示出了本发明第一方面的另一个实施例的加油站的推荐方法的流程示意图;
图4示出了本发明第一方面的另一个实施例的加油站的推荐方法确定第一权重的示意图;
图5示出了本发明第一方面的另一个实施例的加油站的推荐方法的流程示意图;
图6示出了本发明第一方面的另一个实施例的加油站的推荐方法的流程示意图;
图7示出了本发明第一方面的另一个实施例的加油站的推荐方法的流程示意图;
图8示出了本发明第一方面的另一个实施例的加油站的推荐方法的流程示意图;
图9示出了本发明第一方面的另一个实施例的加油站的推荐方法的更新第一加权有向图的示意图;
图10示出了本发明第一方面的另一个实施例的加油站的推荐方法的流程示意图;
图11示出了本发明第一方面的另一个实施例的加油站的推荐方法的流程示意图;
图12示出了本发明第一方面的另一个实施例的加油站的推荐方法的流程示意图;
图13示出了本发明第一方面的另一个实施例的加油站的推荐方法的流程示意图;
图14本发明第一方面的另一个实施例的加油站的推荐方法确定目标加油站的示意图;
图15示出了本发明第二方面的一个实施例的加油站的推荐装置的结构示意图;
图16示出了本发明第二方面的另一个实施例的加油站的推荐装置的示意图。
其中,图15和图16中附图标记与部件名称之间的对应关系为:
100推荐装置,110构建单元,120更新单元,130推荐单元。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本发明的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。
本发明第一方面的实施例,提出一种加油站的推荐方法,图1示出了本发明的一个实施例的加油站的推荐方法的流程示意图。其中,该方法包括:
S101,根据至少一艘船舶的第一历史加油信息和至少一个加油站的位置信息,确定第一加权有向图;
S102,根据至少一艘船舶中的目标船舶的第二历史加油信息、目标船舶的行驶信息和加油站的位置信息,更新第一加权有向图,以获得第二加权有向图;
S103,根据第二加权有向图,在多个加油站中确定推荐加油站,向目标船舶推送推荐加油站。
本发明实施例提出的加油站的推荐方法,在得到每个加油站的位置的基础上,根据所有船舶的第一历史加油信息,构建第一加权有向图,并在所有船舶中选择一个被推荐船舶,作为目标船舶,然后根据目标船舶的第二历史加油信息和行驶信息以及加油站的位置信息,对构建得到的第一加权有向图进行更新,最后根据更新得到的第二加权有向图,为该目标船舶推送加油站。本发明在构建第一加权有向图时考虑了多艘船舶的历史加油信息,避免只考虑单一船舶导致第一加权有向图的适用性过窄的问题,在对不同的船舶推荐加油站时,都可以在同样的第一加权有向图上进行更新操作,进而得到第二加权有向图,而不需要重新构建第一加权有向图,实现了一次构建,多次使用的效果。在对构建得到的第一加权有向图进行更新时,依据目标船舶的信息,综合考虑了目标船舶的历史习惯和当前行驶状态,使推荐更有针对性。本申请将船舶的信息和加油站的信息结合起来,实现了对船舶的加油站的自动推荐,有效解决了人工客服电话推荐加油站所导致的投入大、效率低等问题。
在一些实施例中,根据至少一艘船舶的第一历史加油信息和至少一个加油站的位置信息,具体包括:根据第一历史加油信息,构建第一有向图;根据位置信息,确定第一权重;根据第一有向图和第一权重,确定第一加权有向图。
图2示出了本发明第一方面的另一个实施例的加油站的推荐方法的流程示意图。如图2所示,该方法包括:
S201,根据第一历史加油信息,构建第一有向图;
S202,根据位置信息,确定第一权重;
S203,根据第一有向图和第一权重,确定第一加权有向图。
在该实施例中,根据多艘船舶的第一历史加油信息,构建第一有向图,并根据加油站的位置确定第一权重,再将第一权重添加至第一有向图中,得到第一加权有向图。在构建第一加权有向图时,综合考虑了船舶的历史习惯和加油站的位置信息,以历史习惯为依据,构建的有向图更符合习惯规律,根据位置信息确定第一权重,考虑了在不同位置之间运动需要付出的距离成本等信息,使第一加权有向图在符合历史规律的同时,更符合现实因素。
在一些实施例中,第一历史加油信息还包括:船舶在加油站开始加油的历史时刻;根据第一历史加油信息,构建第一有向图,具体包括:以加油站作为结点,构建图;按照结点对应的加油站对应的历史时刻的先后顺序,构建链表,其中,链表的方向为由历史时刻在先的加油站对应的结点指向历史时刻在后的加油站对应的结点;在链表中存在相邻的两个第一加油站结点,满足第一加油站结点对应的加油站不同的情况下,根据第一加油站结点构建有向边,其中,有向边的方向与链表方向一致;在有向边不产生环路的情况下,根据图和有向边生成第一有向图。
图3示出了本发明第一方面的另一个实施例的加油站的推荐方法的流程示意图。如图3所示,该方法包括:
S301,以加油站作为结点,构建图;
S302,按照结点对应的加油站对应的历史时刻的先后顺序,构建链表,其中,链表的方向为由时刻在先的加油站对应的结点指向时刻在后的加油站对应的结点;
S303,在链表中存在相邻的两个第一加油站结点,满足第一加油站结点对应的加油站不同的情况下,根据第一加油站结点构建有向边,其中,有向边的方向与链表方向一致;
S304,在有向边不产生环路的情况下,根据图和有向边生成第一有向图。
在该实施例中,每艘船舶的第一历史加油信息包括该船舶曾经加油的加油站,以及该船舶在加油站开始加油的时刻,首先以每艘船舶曾经加油的加油站作为结点,构建图。对于每艘船舶的第一历史加油信息,按照该船舶在加油站开始加油的时刻的先后顺序排序。根据排好序的加油站构建链表,其中链表的方向为由到达时刻在先的加油站对应的结点指向到达时刻在后的加油站对应的结点。在链表中,当相邻的两个加油站不同时,可以连接这两个加油站得到一条有向边,有向边的方向与链表方向一致,换言之,有向边的方向也是由到达时刻在先的加油站对应的结点指向到达时刻在后的加油站对应的结点。如果将这条有向边加入图中,也就是将图中对应的两个结点相连,不产生环路,那么就将这条有向边加入图中,若产生环路则不加入该有向边,对每艘船舶所构建的链表执行以上操作,得到第一有向图。
图4示出了本发明第一方面的另一个实施例的加油站的推荐方法确定第一权重的示意图。
如图4所示,基于图论算法思想,通过大量船舶的历史加油信息,以加油站作为结点构建了带权重有向连通图。首先根据船舶的历史加油信息,确定每一个加油站,并以加油站作为结点,构建图,如图4中的加油站1、加油站3、加油站5、加油站9、加油站10、加油站11。根据加油站的位置关系,确定有向边的权重,如图4中每条有向边上标注的数字。
在一些实施例中,根据位置信息,确定第一权重,具体包括:根据位置信息确定每一个有向边两端的加油站结点对应的加油站之间的第一边距离,根据第一边距离确定有向边的第一边权重;根据全部有向边的第一边权重的集合,确定第一权重。
图5示出了本发明第一方面的另一个实施例的加油站的推荐方法的流程示意图。如图5所示,该方法包括:
S501,根据位置信息确定每一个有向边两端的加油站结点对应的加油站之间的第一边距离,根据第一边距离确定有向边的第一边权重;
S502,根据全部有向边的第一边权重的集合,确定第一权重。
在该实施例中,根据每艘船舶到达过的加油站的位置,计算第一有向图中每条边两端的结点所对应的加油站之间的第一边距离,将计算得到的第一边距离作为参数,引入权重函数中,确定每条有向边的第一边权重,进而根据全部有向边的第一边权重,确定第一权重。
进一步地,权重函数为第一边距离除以一个数值,通过将加油站之间的第一边距离除以一个特定的数值,实现了第一边权重的标准化。此外,该特定的数值可以是预先设定,也可以是根据历史数据通过机器学习训练得到的。
在一些实施例中,目标船舶的行驶信息包括:目标船舶的当前位置信息、目标船舶的航向信息、目标船舶的剩余续航里程。
在该实施例中,目标船舶的行驶信息包括:目标船舶的位置信息、航向信息和剩余续航里程,根据目标船舶的行驶信息,对第一加权有向图进行更新,得到第二加权有向图,由于更新时考虑了目标船舶的信息,因此,更新得到的第二加权有向图更有针对性,更符合目标船舶的需求。
在一些实施例中,根据至少一艘船舶中的目标船舶的第二历史加油信息、目标船舶的行驶信息和加油站的位置信息,更新第一加权有向图,以获得第二加权有向图,具体包括:根据行驶信息和位置信息,在第一有向图中确定源结点;根据源结点,在第一有向图中确定后继结点;根据源结点和后继结点确定第二权重;根据第二权重更新第一加权有向图,得到第二加权有向图。
图6示出了本发明第一方面的另一个实施例的加油站的推荐方法的流程示意图。如图6所示,该方法包括:
S601,根据行驶信息和位置信息,在第一有向图中确定源结点;
S602,根据源结点,在第一有向图中确定后继结点;
S603,根据源结点和后继结点确定第二权重;
S604,根据第二权重更新第一加权有向图,得到第二加权有向图。
在该实施例中,根据目标船舶的行驶信息和加油站的位置确定源结点,并在第一有向图中,根据源结点在第一有向图中确定后继结点,进而根据源结点和后继结点的位置信息计算得到第二权重,根据第二权重更新第一加权有向图,得到第二加权有向图。在得到第二加权有向图的过程中,同时考虑了源结点和后继结点的位置关系,以及目标船舶的行驶信息,使第二加权有向图更符合目标船舶的实际需求。
在一些实施例中,根据行驶信息和位置信息,在第一有向图中确定源结点,具体包括:在第一有向图中确定目标结点,其中目标结点对应的目标加油站与目标船舶之间的距离小于或等于预设的距离阈值;在目标结点中确定源结点,其中源结点对应的加油站相对目标船舶的方向与航向信息相匹配。
图7示出了本发明第一方面的另一个实施例的加油站的推荐方法的流程示意图。如图7所示,该方法包括:
S701,在第一有向图中确定目标结点,其中目标结点对应的目标加油站与目标船舶之间的距离小于或等于预设的距离阈值;
S702,在目标结点中确定源结点,其中源结点对应的加油站相对目标船舶的方向与航向信息相匹配。
在该实施例中,根据目标船舶的当前位置信息和加油站的位置信息,计算目标船舶到每个加油站的距离,将距离小于或等于预设距离阈值的结点作为目标结点,也就是选择距离目标船舶在预设距离阈值的范围内的结点作为目标结点。在所有的目标结点中,选择与目标船舶的行驶方向相匹配的结点,作为源结点。在确定源结点的过程中,同时考虑了目标船舶的航向以及其与加油站之间的距离,便于找到更符合目标船舶实际需求的加油站,作为源加油站。
在一些实施例中,在目标结点中确定源结点,其中源结点对应的待选加油站相对目标船舶的方向与航向信息相匹配,具体包括:根据航向信息,确定航向与预设方向之间的航向角度;根据航向角度确定航向角度系数;根据每个目标结点对应的目标加油站相对目标船舶的方向,确定方向与预设方向之间的加油站角度;根据加油站角度确定加油站角度系数;计算加油站角度系数与航向角度系数的差值,以差值最小的加油站角度对应的结点为源结点。
图8示出了本发明第一方面的另一个实施例的加油站的推荐方法的流程示意图。如图8所示,该方法包括:
S801,根据航向信息,确定航向与预设方向之间的航向角度;
S802,根据航向角度确定航向角度系数;
S803,根据每个目标结点对应的目标加油站相对目标船舶的方向,确定方向与预设方向之间的加油站角度;
S804,根据加油站角度确定加油站角度系数;
S805,计算加油站角度系数与航向角度系数的差值,以差值最小的加油站角度对应的结点为源结点。
在该实施例中,首先确定每一个加油站相对于目标船舶的相对方向,分别计算每个相对方向与预设方向之间的角度,通过运算得到每个加油站相对应的加油站角度系数,确定目标船舶的航向相对预设方向之间的角度,通过运算得到航向相对应的航向角度系数,计算每个加油站角度系数与航向角度吸收的差值,形成一个差值集合,在差值集合中选取最小差值,该最小差值对应的加油站即为偏离目标船舶的航向最少的加油站,将该加油站相对于目标船舶的相对方向,与航向信息相匹配,将该加油站对应的结点作为源结点。
在一些实施例中,根据源结点,在第一有向图中确定后继结点,具体包括:在第一有向图中,以源结点为起点,沿有向边前进,以能够到达的结点为后继结点,其中有向边为一条或多条。
在该实施例中,限定了后继结点的确定方法,在第一有向图中,以源结点为起点,沿有向边前进,能够到达的结点即为后继结点,也就是源结点和后继结点之间通过一条或多条有向边连通。
图9示出了本发明第一方面的另一个实施例的加油站的推荐方法的更新第一加权有向图的示意图。
如图9所示,该方法获取加油站的位置信息、目标船舶的行驶信息和目标船舶的第二历史加油信息,通过获取的信息确定源结点,根据源结点对应的加油站的位置信息计算得到剩余续航里程,获取后继结点对应的加油站,根据源结点的位置信息、加油站的位置信息和剩余续航里程确定距离差,并根据距离差和目标船舶的第二历史加油信息确定第二权重,进而更新第一加权有向图。
在一些实施例中,根据源结点和后继结点确定第二权重,具体包括:根据源结点和后继结点,在第一有向图中确定目标有向边;根据源结点、结点和当前位置信息,确定目标有向边的第一权重分量;根据第二历史加油信息,确定目标有向边的第二权重分量;根据第一权重分量和第二权重分量,确定目标有向边的第二边权重;根据全部目标有向边的第二边权重的集合确定第二权重。
图10示出了本发明第一方面的另一个实施例的加油站的推荐方法的流程示意图。如图10所示,该方法包括:
S1001,根据源结点和后继结点,在第一有向图中确定目标有向边;
S1002,根据源结点、结点和当前位置信息,确定目标有向边的第一权重分量;
S1003,根据第二历史加油信息,确定目标有向边的第二权重分量;
S1004,根据第一权重分量和第二权重分量,确定目标有向边的第二边权重;
S1005,根据全部目标有向边的第二边权重的集合确定第二权重。
在该实施例中,在确定源结点和后继结点后,在第一有向图中,根据源结点和后继结点确定目标有向边,进而根据源结点和除源结点外的其他结点以及目标船舶的当前位置信息,计算得到可以反映位置关系的第一权重分量,根据目标船舶的第二历史加油信息,计算得到可以反映目标船舶的历史习惯的第二权重分量,根据第一权重分量和第二权重分量计算得到第二边权重,进而根据全部目标有向边的第二边权重得到第二权重。在计算得到第二权重的过程中,同时考虑了源结点和后继结点的位置关系,以及目标船舶的第二历史习惯,使第二加权有向图更符合目标船舶的实际需求。
在一些实施例中,根据源结点和后继结点,在第一有向图中确定目标有向边,具体包括:在第一有向图中,以源结点为起点,以后继结点为终点,沿有向边中的一条或多条有向边前进,一条或多条有向边为目标有向边。
在该实施例中,限定了目标有向边的确定方法,在第一有向图中,以源结点为起点,沿有向边前进,到达后继结点,在前进过程中经过的有向边即为目标有向边。也就是源结点和后继结点之间通过一条或多条有向边连通,连通源结点和后继结点的有向边即为目标有向边。
在一些实施例中,根据源结点、结点和当前位置信息,确定第一权重分量,具体包括:确定源结点对应的待选加油站与目标船舶之间的当前距离;确定目标有向边两端的结点对应的加油站之间的第二边距离;根据当前距离和第二边距离,确定目标有向边的第一权重分量。
图11示出了本发明第一方面的另一个实施例的加油站的推荐方法的流程示意图。如图11所示,该方法包括:
S1101,确定源结点对应的待选加油站与目标船舶之间的当前距离;
S1102,确定目标有向边两端的结点对应的加油站之间的第二边距离;
S1103,根据当前距离和第二边距离,确定目标有向边的第一权重分量。
在该实施例中,根据源结点对应的待选加油站的位置信息,目标船舶的当前位置信息和目标有向边两端结点对应的加油站的位置信息,确定待选加油站与目标船舶之间的当前距离,以及目标有向边两端结点对应的加油站之间的第二边距离,进而根据当前距离和第二边距离确定目标有向边的第一权重分量。
进一步地,确定目标有向边的第一权重分量的具体计算步骤如下:计算目标船舶到源结点的距离d1,计算目标船舶的剩余续航里程与d1的差值d,计算源结点到每一个后继结点的距离d2,得到d与d2之间的差值并将此差值除以一个预设数值,最后将计算结果取整得到第一权重分量。
在一些实施例中,根据第二历史加油信息,确定目标有向边的第二权重分量,具体包括:根据第二历史加油信息,在第一有向图中确定到达结点和非到达结点,其中目标船舶曾经在到达结点对应的到达加油站加油,目标船舶未曾在非到达结点对应的非到达加油站加油;根据第二历史加油信息,确定最近时刻,其中最近时刻为目标船舶最近一次在到达结点开始加油的时刻;根据最近时刻和当前时刻,确定源结点与到达结点之间的到达有向边的计算权重分量;确定源结点与非到达结点之间的非到达有向边的预设权重分量;根据计算权重分量和预设权重分量,确定第二权重分量。
图12示出了本发明第一方面的另一个实施例的加油站的推荐方法的流程示意图。如图12所示,该方法包括:
S1201,根据第二历史加油信息,在第一有向图中确定到达结点和非到达结点,其中目标船舶曾经在到达结点对应的到达加油站加油,目标船舶未曾在非到达结点对应的非到达加油站加油;
S1202,根据第二历史加油信息,确定最近时刻,其中最近时刻为目标船舶最近一次在到达结点开始加油的时刻;
S1203,根据最近时刻和当前时刻,确定源结点与到达结点之间的到达有向边的计算权重分量;
S1204,确定源结点与非到达结点之间的非到达有向边的预设权重分量;
S1205,根据计算权重分量和预设权重分量,确定第二权重分量。
在该实施例中,第二权重分量为目标船舶的习惯指数,第二权重分量的默认值为预设权重分量。在第一有向图中,对于每一个后继结点,如果目标船舶曾经在该后继结点加油,那么该后继结点是到达结点,反之则为非到达结点。获取目标船舶最近一次在到达结点开始加油的时刻,记为最近时刻,根据最近时刻与当前时刻,计算得到源结点与到达结点之间的有向边的计算权重分量,该有向边的第二权重分量为计算得到的计算权重分量。而对于源结点与非到达结点之间的有向边,其第二权重分量为预设权重分量。
进一步地,预设权重分量可以设为0。
在一些实施例中,根据第二加权有向图,在加油站中确定推荐加油站,具体包括:在当前距离大于或等于剩余续航里程的情况下,确定源结点对应的待选加油站为推荐加油站;在当前距离小于剩余续航里程的情况下,确定源结点到第二有向图上余下的每一个其他结点之间的路径权重;以路径权重中最小值对应结点对应的加油站为推荐加油站。
图13示出了本发明第一方面的另一个实施例的加油站的推荐方法的流程示意图。如图13所示,该方法包括:
S1301,在当前距离大于或等于剩余续航里程的情况下,确定源结点对应的待选加油站为推荐加油站;
S1302,在当前距离小于剩余续航里程的情况下,确定源结点到第二有向图上余下的每一个其他结点之间的路径权重;
S1303,以路径权重中最小值对应结点对应的加油站为推荐加油站。
在该实施例中,在当前距离大于或等于剩余续航里程的情况下,也就是目标船舶的剩余续航里程过少,不足以支持目标船舶到达源结点或者距离更远的结点时,确定源结点为推荐加油站。此时,源结点可以对目标船舶提供支援,以使其能够到达源结点。在当前距离小于剩余续航里程的情况下,也就是目标船舶的剩余续航里程足够大,此时可以选择其他结点作为目标加油站,具体地,确定源结点到第二有向图上其余每一个结点之间的路径权重,并以路径权重中最小值对应结点对应的加油站为推荐加油站。
进一步地,剩余续航里程可以根据单次加油平均行驶里程和上次加油后行驶里程计算得到,具体地,根据目标船舶的轨迹计算该船舶上次加油后的平均航速和行驶里程,并获取该船舶在该平均航速下的单次加油平均航行里程,计算单次加油平均航行里程与行驶里程之间的差值,得到剩余续航里程。
在一些实施例中,确定源结点到第二有向图上余下每一个结点之间的路径权重,具体包括:计算源结点到达其他结点所经过的全部目标有向边的第二边权重的和,以和为路径权重。
在该实施例中,对于每一个其他结点,从源结点出发,到达该其他结点的途中所经过的全部目标有向边为源结点到该其他结点的路径。计算源结点到达该其他结点的途中所经过的全部目标有向边的第二边权重的和,即为该其他结点对应的路径权重。
在一些实施例中,根据活跃加油站集合和营业加油站集合,确定加油站集合。
在该实施例中,确定在预设选择时刻之后,将船舶到达过的所有加油站组成的集合作为活跃加油站集合;确定符合预设规则的业务加油站集合;在业务加油站集合中,去掉不再营业的加油站,得到营业加油站集合;确定活跃加油站集合和营业加油站集合的交集,作为加油站集合。
在一些实施例中,使用Bellman-Ford算法确定路径权重最小的结点。
在该实施例中,Bellman-Ford算法通过对有向边执行松弛操作来渐近地降低从源结点到其他结点的最小路径权重的估计值,直到该估计值与实际的最小路径权重相同为止。具体过程是首先初始化路径估计和父节点,记v.d为源结点s到第二有向图中其他结点v的最小路径权重的估计值,将v.d初始化为无穷大。然后定义松弛操作函数,松弛过程为:确定从源结点s到其他结点v之间的最小路径权重以及第二有向图中另一个其他结点u与v之间的边权重,对计算得到的最小路径权重和边权重进行求和计算,并将计算得到的求和结果与当前的源结点s到其他结点v的最小路径权重的估计值进行比较,如果前者更小,则对v.d和v的前驱结点进行更新。最后定义Bellman-Ford函数,过程是首先对第二加权有向图执行初始化操作,然后执行|V|-1次循环处理,其中|V|为第二加权有向图的结点数。每一次循环对第二加权有向图的每条有向边进行一次松弛操作。执行上述循环处理后检查图中是否存在边权重之和为负值的环路并返回与之相对应的布尔值,若该过程未检查到权重为负值的环路,设p(s,v)为源结点s到结点v的最短路径,且v.d最小,则结点v就是路径权重最小的结点。
图14示出了本发明第一方面的另一个实施例的加油站的推荐方法确定目标加油站的示意图。
如图14所示,在对某艘船舶推荐加油站时,首先获取该船的位置和航行方向,从距离和方向两个维度确定源结点,然后根据剩余续航里程,从源结点开始,结合结点对应的加油站之间的距离和加油习惯为有向边更新权重值,如图14中加油站1对应的结点和加油站3对应的结点之间的有向边权重由15更新至13,这样基于该船的实时行驶信息和第二历史加油信息构建的第二加权有向图包含了船舶的潜在的可能加油的加油站结点。在该第二加权有向图上运行单源最短路径算法可以计算出源结点到其余结点的最短路径和权重,选择权重最小的结点作为推荐加油站,可以提高加油交易成功率,实现推荐过程的自动化。
如图15所示,本发明第二方面的实施例提出了一种加油站的推荐装置100,包括:构建单元110,用于根据至少一艘船舶的第一历史加油信息,和至少一个加油站的位置信息,确定第一加权有向图; 更新单元120,用于根据至少一艘船舶中的目标船舶的第二历史加油信息、目标船舶的行驶信息和加油站的位置信息,更新第一加权有向图,以获得第二加权有向图;推荐单元130:根据第二加权有向图,在多个加油站中确定推荐加油站,向目标船舶推送该推荐加油站。
本发明实施例提出的加油站的推荐装置100,包括构建单元110、更新单元120和推荐单元130。构建单元110在得到每个加油站的位置的基础上,根据多艘船舶的第一历史加油信息,构建第一加权有向连通图。更新单元120在所有船舶中选择一个被推荐船舶,作为目标船舶,然后根据目标船舶的第二历史加油信息和行驶信息以及加油站的位置信息,对构建得到的第一加权有向图进行更新,得到第二加权有向图。推荐单元130根据更新后得到的第二加权有向图,为该目标船舶推荐加油站。
图16示出了本发明第二方面的实施例提出了一种加油站的推荐装置100的示意图。
如图16所示,加油站的推荐装置100包括构建单元110、更新单元120和推荐单元130,该加油站推荐装置100获取加油站的位置信息、船舶的行驶信息和船舶的第二历史加油信息,通过构建单元110、更新单元120和推荐单元130的运算,输出推荐加油站。
本发明第三方面的实施例提供了一种可读存储介质,其上存储有程序或指令,程序或指令被处理器执行时实现如上述第一方面的任一实施例的加油站的推荐方法的步骤,因而具备该加油站的推荐方法的全部有益效果,在此不再赘述。
可读存储介质可以包括能够存储或传输信息的任何介质。可读存储介质的例子包括电子电路、半导体存储器设备、ROM、闪存、可擦除ROM(EROM)、软盘、CD-ROM、光盘、硬盘、光纤介质、射频(RF)链路,等等。代码段可以经由诸如因特网、内联网等的网络被下载。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。此外,需要指出的是,本申请实施方式中的方法和装置的范围不限按示出或讨论的顺序来执行功能,还可包括根据所涉及的功能按基本同时的方式或按相反的顺序来执行功能,例如,可以按不同于所描述的次序来执行所描述的方法,并且还可以添加、省去、或组合各种步骤。另外,参照某些示例所描述的特征可在其他示例中被组合。
上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本申请的保护之内。以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
- 加油站的推荐方法、装置和可读存储介质
- 加油站推荐方法和加油站推荐装置