遗传算法基本原理及在互联网中的应用

遗传算法模仿自然进化,通过染色体选择、交叉和变异操作寻找最优解。在互联网中,遗传算法应用于排班、路径规划和应急设施选址等场景。例如,在物流路径规划问题中,算法用于最小化车辆数量、行驶里程和成本,实现高效路线设计。
摘要由CSDN通过智能技术生成

基本原理:遗传算法类似自然进化,通过作用于染色体上的基因寻找好的染色体来求解。与自然界相似,遗传算法对求解问题的本身一无所知,它所需要的仅是对算法产生的每个染色体进行评价,并基于适应值来选择染色体,是适应性更好的染色体有更多的繁殖机会。在遗传算法中,通过随机方式产生若干个所求解问题的数字编码,即染色体,形成初始种群;通过适应度函数给每个染色体一个评价值,淘汰低适应度的个体,选择高适应度的个体参加遗传操作,经过遗传操作后的个体形成下一代新的种群。再对新种群进行下一轮的进化。

基本步骤:

1)初始化群体

2)计算群体上每个个体的适应度值

3)选择操作,遵循个体适应度值所决定的某个规则

4)交叉操作

5)突变操作

6)判断是否满足停止条件,不满足进入(2),否则进入(7)

7)输出种群中适应度值最优的染色体作为问题的最优解

程序的停止条件一般有两种:达到预先设定的最大代数;种群中最优个体在连续若干代没有改进或平均适应度在连续若干代基本没有改进时停止。

如图:

 

在互联网中的应用场景:

0)python demo:https://blog.csdn.net/weixin_37790882/article/details/84034956

https://blog.csdn.net/weixin_37790882/article/details/100622338

1)排班:https://wenku.baidu.com/view/56c1a5a8dd88d0d233d46a62.html

2)路径规划:http://blog.csdn.net/XpxiaoKr/article/details/51153259

3)应急设施选址:paperuri:(bcd85c188b0c4ce1f5b7654433755c81)

 

初步整理,未完待续...

其中,路径规划实现如下:

网上有很多关于遗传算法的教程,但基本千篇一律。这次物流课做了一个跟路径规划相关的案例,拿出来与大家分享。
先贴案例。案例摘自《企业物流管理》。

------------------------------------------

《 R&T批发公司》
R&T批发公司给全印度的零售商批发日用商品。公司在全国有很多仓库,作为存储点和货站供应周边城镇的零售点。供应普拉克萨姆(Prakasam)、冈都尔 (Guntur)、克利须那(Krishna)、西哥达瓦里(WestGodavari)、和东哥达瓦里 (EastGodavari)地区的仓库设在维查雅瓦达(Vijayawada)每周除周六和周日外,每天出去送货 (每月24天),每个城镇每月送货二次或四次,也就是每两周或每周送货一次。对某个镇子来说,每月按一定的周期送货两次,或者在第一、第三周,或者在第二、第四周。一周内送货的日子有调度员决定。于前者类似,可能制定五天内的任何一天送货。物流管理人员希望能为公司车队设计高效的送货路线,一方面将所需车辆数降到最低,另一方面整个月的车辆行驶总里程最短,并且认为这样能够使司机和车辆运营成本最低。
送货量以每次送货的平均销售额来表示,该数字为城内经停的所有零售点购货量的总和。该销售区的地图见图1,绘制坐标系,找出各城镇的坐标。坐标系的比例尺是1坐标单位等于12.2公里。由坐标距离转换成公路距离的转换系数为1.12公里。表 1给出了各点坐标和卸货点的时间。卸货时间指将货物从卡车卸到零售点站台所用的时间。因为一个镇子中可能有多个零售点,所以卸货时间表示城内所有零售点的总卸货时间。
目前有4部T407、4部T310卡车用于送货,每部卡车能装运500000卢比货物,T310 能运送350000卢比货物。卡车每天在该地区的平均行驶速度是40公里每小时。T407的经营成本是每月13500卢比货物,运送成本为每公里5卢比;T310的经营成本为每月7000卢比,运营成本为每公里3卢比。每部卡车配备两名雇员,一位司机,一位辅助人员。雇员的工资按月发放。如果在路上,每位雇员可得到每天60卢比的误餐补助和其他费用。计划在早上6点、中午12点和晚上6点休息。早餐和午餐每餐用30分钟,晚餐休息60分钟。休息时间可以不严格按计划执行。非正式的休息时间可以安排在一天的任何时间,要被计入行驶速度和卸货时间。雇员可以在晚上休息8个小时,第二天早上再上路。没有加班费,公司的政策是让雇员每天回到仓库,不在外面逗留。
正常情况下卡车从早上9 点送货。卡车回到仓库后在晚上装货,第二天早上再出发送货。卡车最早离开仓库的时间是中午12点,从周一早上直到周五。送货到远处需要早点出发来满足时间窗口和在途时间的要求等。短途送货的卡车可能在同一天回到仓库,花2 小时装货后由同一批雇员负责再次出发送货。如果同一批雇员多次送货则不多发补贴。
公司可以和第三方物流公司签约,单程送货到各城镇的费用为每公里15卢比(不考虑运量或卡车在城内的停留次数)。也可以同时使用自有运输和受雇运输模式。
问题 : 设计一个月的运营路线:
1. 所需的车辆数和车的型号。
2. 卡车行驶路线和经停顺序。
3. 四周一个月,到各城送货的日期。
4. 全月卡车使用的时间安排。
5. 雇员排班表。目标是使卡车、雇员和补贴成本最小化。
---------------------------

 

之前已经将所需数据转换成csv文件,之后直接使用,如果需要文件的可以发邮件到ZhangYuyang4D@163.com
以下是python实现。

"""
    solve th
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值