2017年1月9日

摘要: This is the Readme file for NSGA-II code. About the Algorithm NSGA-II: Non-dominated Sorting Genetic Algorithm - II Please refer to the following pape 阅读全文
posted @ 2017-01-09 15:43 Angry_Panda 阅读(1285) 评论(0) 推荐(0) 编辑
摘要: 这部分比较简单,具体的函数数值计算是需要调用设定的目标函数的,此部分一个不能忽略的问题是 超出限制条件的处理 , 故对此加以解释。 首先是包装函数, 核心操作调用 evaluate_ind 实现。 6行 到 9行,根据标识位判断是否需要进行 超限 处理。 13行 到 19行, 对个体的所有限制条件遍 阅读全文
posted @ 2017-01-09 15:37 Angry_Panda 阅读(1130) 评论(0) 推荐(0) 编辑
摘要: 种群解码函数 decode_pop 为包装函数, 核心调用函数为 decode_ind , 对每个个体进行解码。 核心解码操作: 其中,15行, 将个体某变量的比特编码 转换为 实数。 因为需要考虑精度问题,所以二进制编码的个体长度表示的范围空间(double)(pow(2,nbits[j])-1) 阅读全文
posted @ 2017-01-09 15:23 Angry_Panda 阅读(1357) 评论(0) 推荐(0) 编辑
摘要: 遗传算法的变异操作 一次进化过程中的 变异操作, 需要调用 变异函数 mutation_ind 种群个数popsize 次。 函数包装,判断是实数编码还是二进制编码并调用不同的变异函数。 二进制编码 的 变异操作: 每个个体 的 每个变量 的 二进制编码段 的 每个比特位, 以变异概率 pmut_b 阅读全文
posted @ 2017-01-09 14:19 Angry_Panda 阅读(4314) 评论(0) 推荐(0) 编辑
摘要: 以上代码里的两个函数都为包装函数,最终的计算都是需要调用下面的函数 assign_crowding_distance (population *pop, int *dist, int **obj_array, int front_size) 。 其中,加入一定的判断过程,对一个层里面只有两个个体的情 阅读全文
posted @ 2017-01-09 13:54 Angry_Panda 阅读(5523) 评论(0) 推荐(0) 编辑
摘要: 按照个体的不同 目标函数 序号(objcount), 对种群序号数组obj_array按照拥挤距离进行快速排序。 将带排序的个体索引序号 按照 拥挤距离 排序。(快速排序法) 阅读全文
posted @ 2017-01-09 13:11 Angry_Panda 阅读(1177) 评论(0) 推荐(0) 编辑
摘要: 以上代码,83行代码之前和 rank.c 中代码基本一致,其功能就是选出当前种群的非支配解。 85行到99行代码,意思是,如果该层个体加入到新种群中后个体总数不超过设定的种群个体数则直接加入, 97行代码,调用 assign_crowding_distance_indices , 计算加入个体的拥挤 阅读全文
posted @ 2017-01-09 12:42 Angry_Panda 阅读(778) 评论(0) 推荐(0) 编辑
摘要: 该非支配分层基本思想是设置两个双向链表(orig cur),orig 链表里面存放所有待分层排序的个体索引,cur链表中的元素为分层结束后该层的个体索引。 每次在orig 中取出的元素对应的个体为 a, cur 中取出的元素对应的个体为 b 。 若 b支配于 a ,则取 orig 中对应的下一个个体 阅读全文
posted @ 2017-01-09 12:08 Angry_Panda 阅读(2395) 评论(0) 推荐(0) 编辑

2017年1月8日

摘要: report_pop 将种群中所有个体的 目标函数值, 限制条件值, 编码值 打印出来。 report_pop 种群中的非支配个体并且限制条件总和为0 (constr_violation == 0.0)的个体的 目标函数值, 限制条件值, 编码值 打印出来。 阅读全文
posted @ 2017-01-08 18:19 Angry_Panda 阅读(498) 评论(0) 推荐(0) 编辑
摘要: list 结构体中有两个指针,可构成双向链表,数值空间存放 索引序号 。 insert 函数 申请一块新的内存空间,放在在 list 指针 指向的空间之后。 del 函数 将 list 指向 的个体空间释放。 以上两个操作在插入,删除操作后都有修改指针操作,保证原有链表 的 上下链接正常。 阅读全文
posted @ 2017-01-08 16:34 Angry_Panda 阅读(453) 评论(0) 推荐(0) 编辑

导航