geatpy库模板sga_mps_real_templet简单应用

sga_mps_real_templet
多种群独立进化单目标编程模板(实值编码)

问题

max=2*x1+3*x2;
x1+2*x2<=8;
4*x1<=16;
4*x2<=12;

代码(aimfuc)

import numpy as np


def aimfuc(Phen, LegV):
	x1 = Phen[:, [0]]
	x2 = Phen[:, [1]]
	f = 2 * x1 + 3 * x2
	# 约束条件
	idx1 = np.where(x1 + 2 * x2 > 8)[0]
	exIdx = np.unique(np.hstack([idx1])) # 得到非可行解在种群中的下标
	LegV[exIdx] = 0  # 对非可行解作出标记,使其在可行性列向量中对应的值为0
	return [f, LegV]

代码(main)

# -*- coding: utf-8 -*-
"""
执行脚本main.py
描述:
    该demo是展示如何计算带等式约束的单目标优化问题:
        max=2*x1+3*x2;
		x1+2*x2<=8;
		4*x1<=16;
		4*x2<=12;
    其中目标函数和约束条件写在aimfuc.py文件中,适应度罚函数写在罚函数文件punishing.py中
    本案例通过降维的方法,将等式约束化成了不等式约束,大大拓宽了可行解的空间,方便遗传算法求解
    此外,本案例展示了利用多种群竞争的进化
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值