简单做一下 银川第九届数模A题

A题
随着三年新冠疫情结束后第一个五一假期的到来,许多人选择出门旅游,在有限的几天假期怎样玩好就是一件值得考虑的事。小明是一位旅游爱好者,想在五一期间到宁夏一些著名景点旅游。由于跟着旅游团会受到若干限制,所以他(她)打算自己作为背包客旅游。在出游之前他(她)选择了宁夏五个市的旅游景点,作为五一的旅游目的地,分别如下:
银川(沙湖,西夏王陵,贺兰山岩画,黄沙古渡旅游区)石嘴山(北武当生态旅游区)中卫(沙坡头,寺口子)吴忠(青铜峡黄河大峡谷,哈巴胡生态旅游区)固原(须弥山石窟,六盘山,老龙潭,火石寨)
由于旅游时会受到多种实际因素影响,如:出行方式,游览景点的数目,旅游的时间,旅游者的经济状况等。请查阅景点分布,交通,景点费用等相关资料。考虑以下三个问题

一.为小明设计合适的旅游线路,在不受时间约束的情况下,使旅客花最少的钱游览全部的景点。

二.如果旅游费用不限,旅客想游览十个景点,那么需要设计一个最优的路线,使旅客花费最少的时间。

三.如果旅客受到旅游费用的限制,只带来2500元,他(她)想游览尽可能多的景点,要想满足该条件,我们必须设计一条合适的路线,使旅客满意。

先收集各个景区的门票价格,以百度地图上的信息为例
再收集景点之间旅行费用,假设只靠打车这一种方式,以滴滴上的价格为例
在以百度上自驾方式的预估时间为例,收集数据,制成表格

第一问

选用蚁群算法进行智能计算,
因为所有的地方都会去一遍,因此门票费和路径选择无关,适应值函数只与车费有关
整个算法的目的让适应值最小
对代码的距离矩阵计算部分进行改动:
1.改为车费的数据集
结果如下:坐标不参与运算,可能与给的图片不太像
2505

Best:2505
Best_path
 [[105.005776  37.478011]
 [105.45914   37.299328]
 [105.997777  36.281923]
 [105.772101  36.104501]
 [106.239451  35.688087]
 [106.345534  35.400119]
 [107.090392  37.746578]
 [105.993688  37.879801]
 [106.025836  38.448286]
 [106.027259  38.754811]
 [106.368212  38.807523]
 [106.363015  39.043122]
 [106.554914  38.572183]]

第二问

第二问要求在所有景点里选出十个,可以看作是一个特征选择问题
直接用计算智能应用于特征选择的粒子群算法和代码即可
在代码的选择特征处进行改动:
1.当景点数量不足10时,随机加上一个景点(循环此步)
2. 当景点数量超过10时,随机枪毙一个景点(循环此步)
在适应值函数也进行改动:
1.改为第一问的蚁群算法求解的最佳路径
2. 蚁群算法的距离矩阵计算改为时间花费数据
这个时间仅仅时路程上花的时间,并没有考虑每个景点内需要多少时间

Best:1582
 [[106.363015  39.043122]
 [106.368212  38.807523]
 [106.554914  38.572183]
 [106.025836  38.448286]
 [106.027259  38.754811]
 [105.993688  37.879801]
 [105.45914   37.299328]
 [105.997777  36.281923]
 [106.345534  35.400119]
 [106.239451  35.688087]]
 index: [ 0  1  3  4  5  6  7  9 10 12]  ##选择景点

第三问

第三问要求在有限的经费内选择尽可能多的景点
仍然可以选择智能计算在特征选择上的算法和代码
这一问可以选择DE差分进化算法
依旧需要对代码进行一些更改
路径部分进行更改:

  1. 二值化以后,选择第一问蚁群算法先计算最少花费
  2. 如果最少花费大于2500,随机枪毙一个景点(循环此步)

适应值函数更改:

  1. 更改为节点数目,因为代码求的是最小值,所以还要加个负号

蚁群算法更改:

  1. 距离矩阵改为车费数据
  2. 路径长度还需要加上选择的景点的门票
Best:2462 
[[105.997777  36.281923]
 [105.772101  36.104501]
 [106.239451  35.688087]
 [106.345534  35.400119]
 [105.45914   37.299328]
 [105.993688  37.879801]
 [106.025836  38.448286]
 [106.027259  38.754811]
 [106.363015  39.043122]]
index: [ 1  2  4  6  7  9 10 11 12]

最多能去9个地方

这是代码

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
心中带点小风骚的头像心中带点小风骚普通用户
上一篇 2023年8月6日
下一篇 2023年8月6日

相关推荐