遗传算法| Python Geatpy库

1 Geatpy库的由来

由华南农业大学、暨南大学、华南理工大学等一批大佬们研发的超高性能、通用性强、能够轻松应用到实际工程项目之中的、能让用户快速上手进化算法的工具箱(遗传算法工具箱),详情见官网http://geatpy.com/index.php/home/

2 Geatpy库的用途

Geatpy 是一个高性能实用型进化算法工具箱,提供了许多已实现的进化算法各项操作的函数,如初始化种群、选择、交叉、变异、多目标优化参考点生成、非支配排序、多目标优化 GD、IGD、HV 等指标的计算等等。

3 Geatpy库的案例

3.1 带约束的单目标优化问题

带约束的单目标优化问题

3.1.1 Python程序

问题描述程序
import numpy as np
import geatpy as ea

class MyProblem(ea.Problem):                # 继承Problem父类
    def __init__(self):
        name = 'MyProblem'                  # 初始化name(函数名称,可以随意设置)
        M = 1                               # 初始化M(目标维数)
        maxormins = [-1]                    # 初始化目标最小最大化标记列表,1:min;-1:max
        Dim = 3                             # 初始化Dim(决策变量维数)
        varTypes = [0] * Dim                # 初始化决策变量类型,0:连续;1:离散
        lb = [0,0,0]                        # 决策变量下界
        ub = [1,1,2]                        # 决策变量上界
        lbin = [1,1,0]                      # 决策变量下边界
        ubin = [1,1,0]                      # 决策变量上边界 # 调用父类构造方法完成实例化
        ea.Problem.__init__(self, name, M, maxormins, Dim, varTypes, lb, ub, lbin, ubin)

    def aimFunc(self, pop):                 # 目标函数,pop为传入的种群对象
        Vars = pop.Phen                     # 得到决策变量矩阵
        x1 = Vars[:, [0]]                   # 取出第一列得到所有个体的x1组成的列向量
        x2 = Vars[:, [1]]                   # 取出第二列得到所有个体的x2组成的列向量
        x3 = Vars[:, [2]]                   # 取出第三列得到所有个体的x3组成的列向量
        # 计算目标函数值,赋值给pop种群对象的ObjV属性
        pop.ObjV = 4*x1 + 2*x2 + x3
        # 采用可行性法则处理约束,生成种群个体违反约束程度矩阵
 
  • 15
    点赞
  • 87
    收藏
    觉得还不错? 一键收藏
  • 12
    评论
遗传算法是一种仿生学的优化算法,它通过模拟自然进化的过程来解决问题。Python中有一些常用的遗传算法可以帮助我们实现和应用遗传算法。 其中一些包括DEAP(Distributed Evolutionary Algorithms in Python)和Geatpy(Genetic Algorithm Python Library)。 DEAP是一个功能强大的Python遗传算法,提供了许多进化算法的实现,包括单目标和多目标优化问题的解决方案。你可以使用DEAP来进行种群初始化、选择、交叉、变异等操作,并计算多种指标如非支配排序、多目标优化指标等。 Geatpy也是一个高性能的实用型进化算法工具箱,它提供了许多已实现的进化算法操作函数,如初始化种群、选择、交叉、变异等。同时,Geatpy还提供了生成多目标优化参考点、非支配排序、多目标优化指标(如GD、IGD、HV等)的计算等功能。它可以帮助你解决带约束的单目标优化问题以及其他多种问题。 这些遗传算法都提供了丰富的功能和易于使用的接口,可以帮助你在Python中实现和应用遗传算法,解决各种优化问题。你可以根据具体的问题需求选择合适的来使用。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [遗传算法python](https://blog.csdn.net/sinat_56238820/article/details/126656961)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [遗传算法| Python Geatpy](https://blog.csdn.net/qq_36658406/article/details/102960957)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值