启发式算法之遗传算法

启发式算法之遗传算法

1.遗传算法算法流程

—————————————————————————————————————
Procedure:遗传算法主要流程
Input:问题数据集,GA参数


Begin
         t ← 0 t \leftarrow0 t0;
         编码产生初始种群 P ( t ) P(t) P(t);
        解码计算适应度值 e v a l u a t e ( P ) evaluate(P) evaluate(P);
        while(不满足终止条件):
                 对 P ( t ) P(t) P(t) 实施交叉操作产生 C ( t ) C(t) C(t);
                 对 P ( t ) P(t) P(t) 实施变异操作产生 C ( t ) C(t) C(t);
                 解码计算适应度值 e v a l u a t e ( C ) evaluate(C) evaluate(C);
                 从 P ( t ) P(t) P(t) C ( t ) C(t) C(t)中选出 P ( t + 1 ) P(t+1) P(t+1);

End


Output:计算结果
—————————————————————————————————————

2.编码方式

1)直接表示法
直接用路线城市编号表示,例如TSP问题求解访问城市顺序,直接以城市编号作为序列表示。
2)随机数表示法
随机生成序列数,对随机数排序,次序对应城市编号。

3.交叉算子

3.1 部分映射算子 PMX

  • 主要流程: 两个父代染色体,确定交换片段的起始和终止位置,进行基因片段交换,并根据片段映射关系,完善更新染色体基因编码。
  • 算法流程

—————————————————————————————————————
Procedure:PMX交叉


Input:染色体 v 1 , v 2 v_1,v_2 v1,v2,染色体长度 l l l;
Output:子代染色体 v 1 ′ , v 2 ′ v_1^{'},v_2^{'} v1,v2;
begin
     R ← \leftarrow ∅ \empty ;
     s ← r a n d o m [ 1 , l − 1 ] s\leftarrow random[1,l-1] srandom[1,l1];
     t ← r a n d o m [ s + 1 , l ] t\leftarrow random[s+1,l] trandom[s+1,l];
     v 1 ′ ← v_1^{'}\leftarrow v1 v 1 [ 1 : s − 1 ] / / v 2 [ s : t ] / / v 1 [ t + 1 : l ] v_1[1:s-1]//v_2[s:t]//v1[t+1:l] v1[1:s1]//v2[s:t]//v1[t+1:l];
     v 2 ′ ← v_2^{'}\leftarrow v2 v 2 [ 1 : s − 1 ] / / v 1 [ s : t ] / / v 2 [ t + 1 : l ] v_2[1:s-1]//v_1[s:t]//v2[t+1:l] v2[1:s1]//v1[s:t]//v2[t+1:l];
    R ← \leftarrow relation( v 1 [ s : t ] , v 2 [ s : t ] v_1[s:t],v_2[s:t] v1[s:t],v2[s:t])
    legalize( v 1 ′ , v 2 ′ v_1^{'},v_2^{'} v1,v2,R)
end
—————————————————————————————————————

3.2 顺序交叉算子

  • 主要流程:从一个父代染色体中选择某个基因片段遗传到子代中对应位置,然后从另一个父代染色体中,将未在子代基因片段中出现基因按照复杂顺序依次填充子代其它位置。
  • 算法流程

———————————————————————————————————
Procedure:


Input:父代染色体 v 1 , v 2 v_1,v_2 v1,v2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值