遗传算法中中约束条件怎么处理呢?
来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/11/06 21:27:58
遗传算法中中约束条件怎么处理呢?
是在产生初始种群时只产生符合约束的个体,子代个体产生后也直接把不符约束的去掉吗?可是这样的话种群中个体数量会变很少吧,
是在产生初始种群时只产生符合约束的个体,子代个体产生后也直接把不符约束的去掉吗?可是这样的话种群中个体数量会变很少吧,
只要你的遗传算子选对,进化过程中上下限约束就能满足;
若是其它连续性变量的线性或非线性约束,可采用罚函数法将这些约束加入目标函数(适应度函数)中,这样就能保证最优解在约束范围内.
若是存在0-1的变量(主要是在规划中,某个东西建或不建),则进化过程就会产生较多不可行解,采用直接丢弃的方法固然可以,但是当不可行解多时,这种方法就使遗传算法失去它的优势;所以就有学者提出了不可行解的修复策略,将不可行解通过某种方法转换为可行解.那么不同的优化问题解的修复策略都可能会不同,如果你设计了一个针对你所做问题的修复策略,那也就成了你的创新点之一了.
当然也有设计进化策略的研究,但这方面比较修复策略而言有难度.
再问: 刚开始看遗传算法的东西。很多地方不懂。我做的是一个0-1规划的问题,能不能在初始种群产生时只产生符合约束的,然后子种群产生后把不符合约束的修复为符合约束的,这样的话种群数量也不会减少
再答: 子种群产生后还需要选择子种群中的优良个体(适应度好的个体),在选择的时候就肯定会被选到多次。假如种群规模为20,进化一次产生子种群后有15个不可行个体(解),通过修复策略修复后,假如只能修复其中的10个(能全部修复更好),那么可行个体数变为了15个。下一步依然是遗传算法的过程:选择、交叉和变异。那么在选择的时候你可以从这15个个体中选出20个,也就是说,选出来的个体肯定会有重复的,这也是符合实际的,因为希望优良个体能尽可能多地与其它个体进行交叉。
若是其它连续性变量的线性或非线性约束,可采用罚函数法将这些约束加入目标函数(适应度函数)中,这样就能保证最优解在约束范围内.
若是存在0-1的变量(主要是在规划中,某个东西建或不建),则进化过程就会产生较多不可行解,采用直接丢弃的方法固然可以,但是当不可行解多时,这种方法就使遗传算法失去它的优势;所以就有学者提出了不可行解的修复策略,将不可行解通过某种方法转换为可行解.那么不同的优化问题解的修复策略都可能会不同,如果你设计了一个针对你所做问题的修复策略,那也就成了你的创新点之一了.
当然也有设计进化策略的研究,但这方面比较修复策略而言有难度.
再问: 刚开始看遗传算法的东西。很多地方不懂。我做的是一个0-1规划的问题,能不能在初始种群产生时只产生符合约束的,然后子种群产生后把不符合约束的修复为符合约束的,这样的话种群数量也不会减少
再答: 子种群产生后还需要选择子种群中的优良个体(适应度好的个体),在选择的时候就肯定会被选到多次。假如种群规模为20,进化一次产生子种群后有15个不可行个体(解),通过修复策略修复后,假如只能修复其中的10个(能全部修复更好),那么可行个体数变为了15个。下一步依然是遗传算法的过程:选择、交叉和变异。那么在选择的时候你可以从这15个个体中选出20个,也就是说,选出来的个体肯定会有重复的,这也是符合实际的,因为希望优良个体能尽可能多地与其它个体进行交叉。