[发明专利]一种基于改进蛙跳算法的个性化旅游路线推荐方法有效
| 申请号: | 202010319466.3 | 申请日: | 2020-04-21 |
| 公开(公告)号: | CN111523059B | 公开(公告)日: | 2023-08-22 |
| 发明(设计)人: | 申晓宁;吴俊潮;王森林;仇友辉;张磊;李常峰 | 申请(专利权)人: | 南京信息工程大学 |
| 主分类号: | G06F16/9537 | 分类号: | G06F16/9537;G06F16/958;G06F16/29;G06N3/006;G06Q50/14 |
| 代理公司: | 南京苏高专利商标事务所(普通合伙) 32204 | 代理人: | 冒艳 |
| 地址: | 210044 江苏*** | 国省代码: | 江苏;32 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 基于 改进 蛙跳 算法 个性化 旅游 路线 推荐 方法 | ||
1.一种基于改进蛙跳算法的个性化旅游路线推荐方法,其特征在于:包括如下步骤:
(1)读取模型所需数据和个性化参数,确定优化目标和约束条件;
(2)数据预处理与算法参数初始化;
(3)随机生成初始种群,并计算其适应度;
(4)判断是否进行种群的扩大;
(5)对所有个体按适应度进行降序排序并分组;
(6)对种群进行更新;
(7)种群混合,记录最优解;
(8)判断算法是否到达终止条件;
步骤(1)模型所需的数据包括当地所有候选景点与旅馆的位置、候选景点和旅馆的数量、游玩过程中在时间和金钱上的平均消费、在出行中消耗的时间与交通费用、旅馆的住宿费用;个性化参数包括旅游天数、每日游玩景点数、旅游偏好、优先级别、旅游开始时期;优化目标包括每日游玩时间最少、游玩期间内平均金钱消费最小;约束条件为选定某一个旅馆作为多日游或一日游固定的起点,每个景点最多游玩一次并于当天回到起点;
所述景点与旅馆的位置通过在已知经纬度,在平面直角坐标系中以坐标的形式来表示,
其中S为候选景点集,候选景点数量为ns;H为候选旅馆集,候选旅馆数量为nh;在各大景点游玩消耗的的时间、金钱,候选旅馆的费用以向量的形式表示,
Pm=[pm1,pm2,pm3,……,pmns]
Pt=[pt1,pt2,pt3,……,ptns]
Ph=[ph1,ph2,ph3,……,phnh]
其中Pm为候选景点的平均游玩费用,Pt为候选景点的游玩时间,Ph为候选旅馆的单价;
根据约束条件,在选定某一旅馆作为起点的情况下,旅馆与景点间出行交通费用与耗费时间的交互数据以矩阵mcost和tcost的形式表示,且
size(mcost)=size(tcost)=(1+ns)×(1+ns)×4
即mcost和tcost的维度都是(1+ns)×(1+ns)×4,mcost(i,j,k)则表示第i个地点前往第j个地点采用第k种交通方式的交通费用;tcost(i,j,k)则表示第i个地点前往第j个地点采用第k种交通方式的出行时间;其中i,j∈{1,2,3......,ns+1},k∈{1,2,3,4},规定:选定的旅馆在其中编号为1,第2到ns+1的顺序与S中候选景点编号顺序一致;k=1,2,3,4时分别对应公交、地铁、驾车、步行,显然mcost(i,j,4)=0;
个性化参数包括旅游天数t_days、每日游玩景点数t_pnum、旅游偏好t_type、优先级别t_sup、旅游开始时期t_date;
其中,所述步骤(4)判断是否进行种群的扩大的方法:判断当前迭代次数g是否等于选定阈值T,若等于选定阈值,则增大种群规模,在原种群的基础上,新增一组等同于原种群数量的随机解;种群规模扩大后的种群数量变为M′=2M,种群内个体数量变为I′=2I,初始种群个体数量变为(M×I)′=2M×2I,初始种群更新次数变为N′=2N;
在种群的扩大判断基础上增加了种群规模扩大阈值T=fth×G,其中fth为结果精确度的调节因子,在迭代次数未达到T时,算法结果还未收敛于最优值,此时使用普通搜索;当迭代次数超过T时,算法即将收敛,此时扩大搜索范围,减少最优解的遗漏,旨在提高结果精确度,T的选择由调节因子fth确定;G为全局混合迭代次数;
其中,所述步骤(6)对种群进行更新的方法:根据分组结果,提取各个种群中的最差解X_wk与最优解X_bk(k=1,2,3……M),对各个种群内部进行N次的局部搜索,对于每一次局部搜索得到的新解X_newk,计算其适应度并判断其是否为异常解,若为异常解则通过加入惩罚因子的方式大幅度降低其适应度,最后使用改进的筛选规则决定新解的取舍;
所述异常解的产生包括在进行种群更新时产生的新解出现景点重复,多日游的路线规划中出现路线交叉,路线不满足旅游偏好;在生成每一个随机个体之后,立即判断其是否为异常解,若为异常解,则用一个数值足够大的惩罚因子ΔC代替目标值,
f(Xh)=ΔC
在惩罚因子ΔC足够大的情况下,异常个体的适应度降低,使其在种群的更新中被淘汰;
所述的改进的筛选规则:
步骤(6)中的改进筛选规则是在基本混合蛙跳的基础上新增了一项判断条件,在以全局最优解和局部最差解之间的差距作为最大步长进行跳跃之后,若
||X_newk-X_wk||ε
则产生一个新的随机解代替原有的X_wk,否则保留原有的X_wk;其中ε为根据模型和需求自行选定的阈值;
种群更新的实现步骤如下:
(a)种群更新计数器i=1;
(b)种群编号k=1;
(c)计算最大跳跃步长stepmax=X_bk-X_wk;
(d)产生一个0~1的随机数λ;
(e)对最差解进行更新X_newk=X_wk+λstepmax,并对X_newk进行取整操作;
(f)计算新解适应度F(X_newk);
(g)若F(X_newk)>F(X_wk),则令X_wk=X_newk,转(m);否则转(h);
(h)计算新的最大跳跃步长
(i)产生一个0~1的随机数λ′;
(j)对最差解进行第二次更新并对X_newk
进行取整操作;
(k)若F(X_newk)>F(X_wk),则令X_wk=X_newk,转(m);否则转(l);
(l)若或则保留X_wk,否则产生一个新解代替原有的X_wk;Route表示路线,Pb表示交通方式的编号;
(m)k=k+1,若k≤M转(c)否则转(n);
(n)i=i+1若i≤N转(b),否则算法终止。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京信息工程大学,未经南京信息工程大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010319466.3/1.html,转载请声明来源钻瓜专利网。





