遗传算法(Genetic a lgo rithm s, GA ) 是由Hol-land 教授及其学生首先提出的一种仿照生物学中进化论思想而衍生出的优化算法。遗传算法应用于优化问题的求解, 是一个启发式随机搜索的过程, 与传统的优化搜索算法相比具有可以克服局部最优解的陷阱, 搜索得到全局最优解等特点, 适用于大规模复杂问题的优化。

但是在实际生产过程中, 优化目标函数往往必须在一定的约束条件下进行。目前解决遗传算法中约束问题的方法主要有可行方向法, 惩罚函数法, 二 次规划法等。今天我们通过惩罚函数法解决连续催化重整(CCR )优化操作中的约束问题, 然后将遗传算法应用于该过程中, 实现遗传算法对含约束条件 的CCR 操作的优化。

带约束条件问题的优化算法 

对于一般的带约束条件问题的优化目标函数, 可以通过惩罚函数, 即通过给原来的目标函数加一 项由约束函数所构成的惩罚项来生成新的目标函 数, 将含有约束的问题转化为不含约束的问题来解决。

01

外点法

对于一般的约束问题

可以定义如下辅助函数:

其中, Α, Β≥1 均为常数。这样把约束问题转化为无约束问题:

外点法在迭代过程中产生的近似最优解只是近似地满足约束条件, 对于一些要求严格的问题, 得到的效果不是很好, 甚至会出现不适用的情况。

02

内点法

内点法是在可行域的内部迭代求解约束问题, 这类方法不适用于带有等式约束的问题。对于一般问题:

可行域记为:

保证迭代点在可行域内部的情况下, 可定义辅助函数:

把约束问题转化为无约束问题。B (x )在实际中常采 用倒数罚函数

和对数罚函数

对数罚函数比倒数罚函数收敛得快些。

在遗传算法的优化过程中, 可以采用以上方法先将带有约束的优化问题转化为无约束问题, 再调用遗传算法工具箱进行优化。

带约束条件的遗传算法在连续催化重整优化中的应用

某石油化工公司炼油厂建设的60万吨年连续催化重整装置采用UOP技术, 以低辛烷值石脑油为原料, 通过原料预处理, 重整反应, 催化剂连续再 生和重整油分馏 4 个工序, 生成富含芳烃的高辛烷值汽油。连续重整反应器生产控制的主要目的是在保证重整产品辛烷值、催化剂结焦含量合格的前提下, 提高重整产品 C+5 液收率。

根据工艺分析, 影响重整产品辛烷值、催化剂结焦含量、重整产品 C+5 液收率的因素众多, 如反应器进出口温度、加权平均床层温度、反应压力、空速、氢油比等, 而生产上只是将反应器进口温度作为操作变量进行优化操作, 在满足辛烷值要求和催化剂结焦含量的标准下得到最大的产品液收率。通过软测量方法可以获得重整产品辛烷值、催化剂结焦含量、重整产品C+5 液收率的模型, 在此基础上可以调整 反应器进口温度, 实现优化操作。连续重整优化问题数学表达如下

式中 y 为收率;

X1 为进料流量, 是上道工序的负荷参数;

X 2为出料流量;

X3 为干点;

X4 为芳烃潜含 量;

X5 为氢油比;

X6 为 50%馏程;

ti 为反应器进料温度(4 个叠加反应器的进料温度控制在相同数值, 故 仅考虑第一反应器进料温度) ;

t01、t02、t03、t04分别为 第一、二、三、四反应器出口温度, tB 为加权平均床层温度;

通过 4 个反应器进料温度和出口温度求出;R 为辛烷值, 要求94≤R ≤100;

C 为催化剂结焦含量, 且要求 1≤C≤6。在优化计算时, 考虑通过改变反应 器加权平均床层温度提高收率, 要求 450≤tB≤480。

01

外点法遗传算法 

建立如下辅助函数:

将带约束的优化问题转化为不含约束的优化问题, 其中w 1、w 2 是惩罚因子, 取w1= 0.1, w2= 0.2, 然后调用遗传算法工具箱, 对必要的参数进行设置:

[ tB endPop ]= ga (bounds, ′fun′, [ ], in itPop ,

[1e- 611], ′maxGenTe rm ′, 25, ⋯ ′norm Geom Selec t′, [0.08], [′ar ithX2 over′], [20], ′nonunifM u tation′, [ 2 253]) ;

寻优后的曲线如图 1 所示, 得到最优控制点:

tB = - 0. 7582

y = 96.5138

其中 tB 为经过归一化后的反应器加权平均床层温度值, 对它反归一化后可得反应器加权平均床层温度为 453. 6 °C。此时可获得重整产品 C+5 最大液收率为 96. 51 38 。

图 1中的曲线是初始函数的图像, “十字”图标是初始种群,“空心圆”图标是经过一次 GA 迭代运算后得到的新种群,“方框”图标是最终获得的种群, 即最优解。

02

内点法遗传算法 

建立辅助函数:

将约束问题转化为不含约束的问题, 其中 n1, n2 为惩罚因子, 取 n1= 0.2, n2= 0.1。然后调用遗传算法工具箱。寻优后的曲线如图 2 所示, 最优控制点:

tB = - 0. 8786,

y = 96. 4348

对 tB 反归一化后可得反应器加权平均床层温度为451. 8 °C, 即当反应器加权平均床层温度为451. 8 °C 时 获 得重整产品 C+5 最 大 液 收 率 为 96. 4348。

内点法和外点法的比较 

采用内点法和外点法解决带约束问题的遗传算 法时的迭代次数如表 1

可以看出使用内点法与外点法解决模型的遗传算法约束问题所经历的迭代次数相差不大。但结合图1和图2 及表2可以看出, 使用内点法改进的遗传算法最终种群(Endpop )可以很精确地重合在一点, 即最优解。

使用外点法改进的遗传算法最终种群的个别个体存在着一定的偏差, 这主要是因为外点法是一种近似求解的方法。同时也说明使用内点法解决不含等式约束的遗传算法问题时具有更好的寻优性能。同时在尝试惩罚因子的过程中, 有时也会碰到外点法不适合解决该实际问题的情形, 即寻找的最优点实际上是次优点或者偏离真实最优点的情况, 当然对于本问题可以通过改变惩罚因子, 迭代次数等参数消除这种弊端。所以对于不含等式约束的问题, 运用内点法是一种很好的 解决方法。但是, 在存在等式约束的情况时, 还是要借助于外点法或者其他方法。

从表 1 还可以看出, 对于本问题采用带约束条件的遗传算法经过 20 次迭代后可以稳定地达到最优值, 对于大规模复杂问题具有很好的应用前景。

国赛 · 最新

重庆赛区成绩公示

广西赛区成绩公示

2020年高教社杯国赛赛题评阅要点

•  END  •

模友们可能已经发现:现在公众号推送文章的顺序,已经不会按时间排列了。这种变化,可能会让各位模友错过我们每天的推送。

所以,如果你还想像往常一样,聚焦数模乐园,就需要将“数模乐园”标为星标公众号,同时在阅读完文章后,别忘了给一个“在看”哦。

星标步骤

(1)点击页面最上方“数模乐园”,进入公众号主页

(2)点击右上角的小点点,在弹出页面点击“设为星标”,就可以啦。

扫码关注我们

2020国际赛QQ参赛群

球分享

球点赞

球在看

遗传算法工具箱_含约束条件的遗传算法在连续催化重整优化操作中的应用相关推荐

  1. python实现遗传算法实例_基于Python的遗传算法特征约简(附代码)

    作者:Ahmed Gad 翻译:张睿毅 校对:丁楠雅 本文4700字,建议阅读15分钟. 本教程主要使用numpy和sklearn来讨论如何使用遗传算法(genetic algorithm,GA)来减 ...

  2. GATBX遗传算法工具箱函数及实例讲解

    基本原理: 遗传算法是一种典型的启发式算法,属于非数值算法范畴.它是模拟达尔文的自然选择学说和自然界的生物进化过程的一种计算模型.它是采用简单的编码技术来表示各种复杂的结构,并通过对一组编码表示进行简 ...

  3. 遗传算法加入约束条件matlab,使用matlab遗传算法工具箱如何加入目标函数中变量的约束条件啊,可否在M文件中加?...

    1.首先打开2113matlab软件,在"APP(应用)"5261选项卡4102中选择"Optimization(优化)1653"工具箱版.2.在优化工具箱中选 ...

  4. 遗传算法、遗传算法库函数ga和gamultiobj、遗传算法工具箱GOT实例介绍

    目录 前言 适应度函数和目标函数的关系 1. 常规遗传算法 2.结合非线性规划fmincon函数的遗传算法 2.1 fmincon非线性规划函数使用 2.2 结合非线性规划fmincon函数的遗传算法 ...

  5. Python遗传算法工具箱的使用(一)求解带约束的单目标优化

    加了个小目录~方便定位查看~ 前言 正文 一. 基础术语: 二. 遗传算法基本算子: 三.完整实现遗传算法: 四.后记: 前言 网上有很多博客讲解遗传算法,但是大都只是"点到即止" ...

  6. matlab 遗传算法 等式约束,关于MATLAB遗传算法工具箱不等式约束

    过去很久了,之前写论文的经验分享一下. 写毕业论文的时候需要用到遗传算法,网上查了很多资料,由于没时间认真去学算法的内部结构,最后还是选择了MATLAB自带的遗传算法工具箱(MATLAB2017-GA ...

  7. 基于Matlab遗传算法工具箱解决物流中心选址

    目录 1.问题 2.建模 3.Matlab编程.求解 1.问题 物流配送中6个客户的位置坐标和配数数量如表1所示,如何设置物流配数中心使得配送量最小. 2.建模 3.Matlab编程.求解 编写目标函 ...

  8. 2021-05-11 Matlab遗传算法工具箱的使用及实例(非线性规划)

    Matlab遗传算法工具箱的使用及实例(非线性规划) 本文将介绍MATLAB遗传算法工具箱求解非线性规划问题.在阅读本文之前,建议读者阅读上一期"MATLAB遗传算法工具箱求解线性规划问题& ...

  9. 关于MATLAB遗传算法工具箱不等式约束

    过去很久了,之前写论文的经验分享一下. 写毕业论文的时候需要用到遗传算法,网上查了很多资料,由于没时间认真去学算法的内部结构,最后还是选择了MATLAB自带的遗传算法工具箱(MATLAB2017-GA ...

  10. MATLAB遗传算法工具箱的使用及实例(线性规划)

    一.引言 在使用遗传算法(Genetic Algorithm,GA)之前,你得了解遗传算法是干什么的.遗传算法一般用于求解优化问题.遗传算法最早是由美国的 John holland于20世纪70年代提 ...

最新文章

  1. 1、使用库函数计算两个向量的夹角
  2. java好用的hbase库_Hbase入库基于java
  3. 漫画谈一下Maven依赖,百分之90的同学不知道!
  4. 四张图带你了解Tomcat系统架构--让面试官颤抖的Tomcat回答系列
  5. 利用Kinect将投影变得可直接用手操控
  6. 设计模式C++实现 —— 策略模式
  7. c# 插入数据到 uniqueidentifier_每天5分钟用C#学习数据结构(16)二叉树 Part 2
  8. 游戏服务器停机维护,网络游戏是如何做到服务器不停机维护的?
  9. 在win10在使用cmder代替Linux是怎样的体验
  10. 关于telnet的问题
  11. 对学生公寓部建议和意见_学生公寓自主管理协会
  12. 记录蚂蚁笔记服务端的搭建过程
  13. C#开发工厂ERP生产管理系统源码
  14. 纵横公路造价软件学习_纵横公路造价软件教程
  15. 17岁韩寒在CCTV《对话》舌战群吊的视频
  16. vue 实现html转图片和生成二维码
  17. 长春人文学院第四组孙乃宇https://blog.csdn.net/weixin_59347653?spm=1010.2135.3001.5421 js笔记
  18. 如何查找APP漏洞并渗透测试 解决网站被黑客攻击
  19. 微信小程序商机_盘点微信小程序的八大商机
  20. javaScript 阶乘尾数

热门文章

  1. 菜鸟教程python100例-菜鸟教程python
  2. 个税抵扣全指南精华版!
  3. Visio2016安装
  4. Excel文件下载From Linux
  5. MySQL OCP备考
  6. AEP(PMM) 傲腾内存特性
  7. 重金求购一份回合制手游源码
  8. 阿帕奇,StringUtil工具类,各种常用字符串的处理
  9. 深入理解机械臂动力学建模
  10. Adobe Acrobat Reader DC缺少字体包的问题