成都公司:成都市成华区建设南路160号1层9号
重庆公司:重庆市江北区红旗河沟华创商务大厦18楼
APS算法分析之五基因算法
- 复制
- 交叉
- 变异
- N 任务必须在 M 机器排程
- 每一任务包含 m 工序
- 每一工序需要不同的机器
- 所有任务在同样的加工订单上处理
对一人种的目标函数值的所有成员,如计算跨度。从这个较低的跨度被决定和得到最高的适应值fmax.,从不同的人种结果中的每一成员的适应值到它的前辈的索引清单中的适应值。这个作法就保证了为一较低跨度的排程选择的可能性是高的。缩减规模d影响到选择的可能性。必须的条件是: fmin > 0.
适应值 (用 fmax=20, d=5 => fmin=5):
*f(13452) = 20
*f(12345) = 15
*f(24531) = 10
*f(23541) = 5
*整个人种的适应值: 50 (在人种里的所有个体的适应合计)
复制 / 选择
- 大部分公用的复制/选择概率是给定的。是排列的适应值和共计种群的适应值的商
- 我们的案例, 我们得到
*概率(12345) = 15/50 = 0.3
*概率(24531) = 10/50 = 0.2
*概率(23541) = 5/50 = 0.1
在下一代里,保留一个复制操作者选择的机会。它是成比例列出适应。就像排列的选择如一个孩子一个父亲。
用较低跨度排列,比那些用低的适应值有一较高生存/选择可能性。
那么 (0,1)-随机变量产生,如果低于 0.4, 那么排列选择 13452,如果在 0.4 和 0.7, 之间,那么 12345 被选择。如果在0.7 和0.9之间, 那么 24531被选择,如果大于0.9, 那么排列 23541 被复制。
交叉
- 选择两个父项结构,从选择的个体中
- 产生一二进制串m长度
- 对子项 1: 拿所有父项1的位置,在二进制串里用“1”,对子项2:拿所有父项2的位置,在二进制串里用“0”
- 父项1的其它因素被存,作为在父项2里出现时。然后,他们被插入子项1的自由位置。对子项2也是同样的过程 。
- 选择 12345 (父项 1) 和 24531 (父项 2)
- 二进制字串: 01101
- 子项 1: - 2 3 - 5; 子项 2: 2 - - 3 -
- 子项 1: 4 2 3 1 5; 子项2: 2 1 4 3 5
父项 1: 1 - - 4 - ->在父项2 出现: 4 - - 1 -
父项2: - 4 5 - 1 -> 在父项1出现 1: - 1 4 - 5
变异
1. 选择一个体的父项
2. 选择随机两个位置,在这个父项排列中
3. 在这个间隔里的新顺序值是随机产生的。
如
父项: 12345
两个位置: 2 和 4
老的顺序 : 2 3 4 -> 新顺序: 4 2 3
=> 新排列: 1 4 2 3 5
GA的优势:
- 基于在排序里的高性能
- 专注于排程问题(没有太多的基于限制的约束 )

