利用scikit中的遗传算法求解(整数01)约束规划实例详解教程+利用scipy.optimize求解约束规划问题

您所在的位置:网站首页 ga怎样写 利用scikit中的遗传算法求解(整数01)约束规划实例详解教程+利用scipy.optimize求解约束规划问题

利用scikit中的遗传算法求解(整数01)约束规划实例详解教程+利用scipy.optimize求解约束规划问题

2024-07-01 23:53| 来源: 网络整理| 查看: 265

注意标准形式

下面两个方法约束规划的一般标准形式为: 在这里插入图片描述

利用scikit-opt的遗传算法求解约束规划问题

先放上链接:scikit-opt网址 主要四个步骤: 下面依照此题多约束为例在这里插入图片描述

可知该题有5个不等式约束,且决策变量为01整数,后面将具体讲解如何将目标函数的约束条件加入GA模型中

一:import scikit-opt库 import pandas as pd import numpy as np import matplotlib.pyplot as plt from sko.GA import GA ###########此行为调出scikit-opt中的遗传算法 ########### #若安装 #则: pip install scikit-opt ##################################### 二:定义目标函数

看线面的代码我们发现里面有个参数p,这个参数我理解就是GA中的某一个种群,真正调用这个函数的时候我们不需要写参数和括号

def schaffer(p): ''' 目标函数: min(xi)求和 决策变量维度:n 决策变量类型:0 1 整数 :param p: :return: ''' x=np.array(p)###转化为数组 return sum(x)###返回将目标函数的值 三:定义约束

注意这里遗传算法中的约束应该默认为≤0的形式,而且不管有多少个约束,最终将约束的值及你给过一个max函数累加后返回,同样这里也需要决策变量,这里也是参数P,我们真正调用时,不需要写括号和参数

def constraint_yueshu(p): ####注意这里的p就是种群,对应本约束问题,就是x,但是p是个一维的数据,若想利用矩阵计算,可将p reshape,即进行尺寸的转化 x=np.array(p)###转化为一维数组 #注意需要将原约束转化为标准形式,


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3