Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
    geatpy
    @geatpy-dev
    @zhengsiwenn sga_new_code_templet是geatpy第一代的
    @fzx401 要传入
    Mitsuha
    @fzx401
    好像是传入Algorithm里时会自动生成
    Thansing Tsu
    @acRyan54
    请问有解决多旅行商问题(mTSP)的案例吗,多染色体的变量和算子要怎么设计
    danhuangrouzong
    @danhuangrouzong
    想问下我定义的函数f(x)是六维的变量,但我希望我的变量中其中有两维是给定不变的该怎么办呢
    就是设定初值+不变异吗
    geatpy
    @geatpy-dev
    设上下限一样就好了
    cmhwp
    @cmhwp
    image.png
    请问这种情况该怎么办呀
    geatpy
    @geatpy-dev
    拼写错了,没有xovd,应该是xovdp吧。
    xxwwcc520
    @xxwwcc520
    兄弟们,请问这个框架可以拓展一些自己的算法不?比如在初始化种群这方面做工作
    danhuangrouzong
    @danhuangrouzong
    我想在evalVars中传入外部函数的计算结果A,从而设置约束为最大值小于A
    evalVars中能定义除Vars以外的参数吗,如果能的话Problem(evalVars=)中又该如何定义呢
    xxwwcc520
    @xxwwcc520
    请问老师,对排列问题,比如有一个A6的全排列,每个排列位置上有对应的值,这些只要参与目标函数的计算,我该怎么把这些值和排列对应起来,并传入目标函数呢😭
    这些值
    xh1118
    @xh1118
    请问为什么在juyter lab里面找不到geatpy的moudle
    geatpy
    @geatpy-dev
    @danhuangrouzong 不是有个问题类吗,利用面向对象编程方法能实现你想要的功能。
    @xxwwcc520 编程技巧。
    @xh1118 pip安装
    yq60523
    @yq60523
    ImportError: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by /home/qingye/.local/lib/python3.6/site-packages/geatpy/core/boundfix.cpython-36m-x86_64-linux-gnu.so)
    请问遇到这个问题怎么解决呀
    我是centos6系统
    请问有低版本的不要求2.14吗
    @geatpy-dev
    geatpy
    @geatpy-dev
    image.png
    @yq60523 这个问题之前没碰到过,不过网上能搜到很多解决办法
    luogaga
    @gagalo123
    import geatpy as ea
    import numpy as np
    
    # 构建问题
    cost = np.array([
        [8, 13, 12, 3, 14],
        [10, 6, 7, 3, 9],
        [4, 9, 6, 5, 4],
        [7, 5, 9, 12, 10]
    ]).flatten()
    @ea.Problem.single
    def evalVars(Vars):  # 定义目标函数(含约束)
        # f =   # 计算目标函数值
        x = Vars[0:20]
        v1 = np.sum(x * cost)
        p = Vars[20:24]
        v2 = np.sum(p)
        f = v1 + v2
    
        CV = np.array([
            p[0] - 220,
            p[1] - 380,
            p[2] - 250,
            p[3] - 400,
            0.8 * p[0] - 140,
            0.8 * p[1] - 200,
            0.8 * p[2] - 240,
            0.8 * p[3] - 360,
            abs(np.sum(Vars[0:5]) - p[0]),
            abs(np.sum(Vars[5:10]) - p[1]),
            abs(np.sum(Vars[10:15]) - p[2]),
            abs(np.sum(Vars[15:20]) - p[3]),
            abs(np.sum(Vars[[x for x in range(0, 20, 5)]]) - 110),
            abs(np.sum(Vars[[x for x in range(1, 20, 5)]]) - 160),
            abs(np.sum(Vars[[x for x in range(2, 20, 5)]]) - 80),
            abs(np.sum(Vars[[x for x in range(3, 20, 5)]]) - 200),
            abs(np.sum(Vars[[x for x in range(4, 20, 5)]]) - 100)
        ])  # 计算违反约束程度
        return f, CV
    # dim = 24
    problem = ea.Problem(name='soea quick start demo',
                            M=1,  # 目标维数
                            maxormins=[1],  # 目标最小最大化标记列表,1:最小化该目标;-1:最大化该目标
                            Dim=24,  # 决策变量维数
                            varTypes=[0]*24,  # 决策变量的类型列表,0:实数;1:整数
                            lb=[0] * 24,  # 决策变量下界
                            ub=[200] * 24,  # 决策变量上界
                            evalVars=evalVars,
                         )
    # # 构建算法
    algorithm = ea.soea_EGA_templet(problem,
                                    ea.Population(Encoding='BG', NIND=100),
                                    MAXGEN=200,  # 最大进化代数
                                    logTras=1)  # 表示每隔多少代记录一次日志信息
    # algorithm = ea.soea_SEGA_templet(problem,
    #                                     ea.Population(Encoding='BG', NIND=2000),
    #                                     MAXGEN=500,  # 最大进化代数。
    #                                     logTras=1,  # 表示每隔多少代记录一次日志信息,0表示不记录。
    #                                     trappedValue=1e-6,  # 单目标优化陷入停滞的判断阈值。
    #                                     maxTrappedCount=10)  # 进化停滞计数器最大上限值。
    # 求解
    # algorithm =ea.soea_DE_best_1_bin_templet(problem,
    #                                     ea.Population(Encoding='RI', NIND=2000),
    #                                     MAXGEN=50,  # 最大进化代数。
    #                                     logTras=1,  # 表示每隔多少代记录一次日志信息,0表示不记录。
    #                                     trappedValue=1e-6,  # 单目标优化陷入停滞的判断阈值。
    #                                     maxTrappedCount=10)
    res = ea.optimize(algorithm, seed=1, verbose=True, drawing=1, outputMsg=True, drawLog=False, saveFlag=True, dirName='result')
    无法求解出答案,请问是式子出问题还是遗传出了问题?
    zhiyunjiang
    @zhiyunjiang
    请问老师,如果染色体的长度不确定,只知道最大的长度,该怎么编码呢
    zhiyunjiang
    @zhiyunjiang
    1.JPG
    怎样把一个进化算法嵌套进另一个进化算法中,用来求解bilevel optimization呢
    PMxiaoming
    @PMxiaoming
    请问,在内置函数中,是否有把某一个索引的个体删除出种群的方法呢?
    Hermanscat
    @Hermanscat
    对于一个最小化的问题,精英复制选择应该得到适应度最小的个体,但为什么总是得到适应度最大的个体呢
    self.selFunc = 'ecs'
    r0 = ea.selecting(self.selFunc, population.FitnV, NIND)
    Hermanscat
    @Hermanscat
    我已经理解了
    geatpy
    @geatpy-dev
    @gagalo123 你的求解问题存在大量等式约束。
    @zhiyunjiang 你可以把内层规划写进外层规划的目标函数计算里面
    @PMxiaoming 有,看Population.py
    zhiyunjiang
    @zhiyunjiang
    有没有支持多种群混合编码的算法模板呀
    ouyangzhouzhou11
    @ouyangzhouzhou11
    遗传算法计算出来的符合要求的解有很多个,模板里的好像只能输出一组解。能否把目标函数值与最优值相等的解全都输出?
    guangguang
    @uncleguanghui
    image.png
    案例模型有误
    geatpy
    @geatpy-dev
    @uncleguanghui 嗯嗯,感谢提出问题了
    @ouyangzhouzhou11 经典进化算法只能随机搜索出一组解了。得自定义新算法才能实现你想要的功能。
    wangwusui
    @wangwusui
    请问老师,这种函数怎么在MyProblem中定义呀
    Wenxiao Jia
    @jiawenxiao
    geatpy可以求解大规模决策变量的问题吗?大家有人用过吗,比如我有2000个决策变量,需要给每个决策变量赋值0或者1,然后再有全局约束,要求这2000个变量的和有上下界,这个能做吗?
    geatpy
    @geatpy-dev
    算法能解的话就能解。跟使用什么工具箱无关。
    l727248517
    @l727248517
    geatpy有求解柔性车间调度问题的示例代码吗
    l727248517
    @l727248517
    geatpy有求解柔性车间调度问题的示例代码(或者类似的生产调度问题的示例)吗,还请老师帮忙提供下,以便学习使用,感谢
    geatpy
    @geatpy-dev
    只要把问题模型写成一个自定义问题类即可。重点是问题本身了。
    wasdhhhhhh
    @wasdhhhhhh
    请问老师,我当前的geapty的版本是2.7,但似乎没办法使用多点交叉算子,请问能怎么处理?
    Mitsuha
    @fzx401
    请问老师,NSGA-Ⅱ算法跑完后该怎么读取具体的解的取值呢