NSGA-II算法优化学习记录(Day2)
一直想把智能优化算法和自己的研究课题结合,也看到过不少做这方面工作的学者都发了质量不错的文章。最近文章返稿后终于有时间可以挤出时间来认真开始学习算法。至于为什么从Day2开始记录,是因为Day1的时候忘了(尴尬)。做这一份学习记录是为了检查自己每天的学习情况。接下来不定时将自己的学习进行更新记录。<hr/>1.为什么要学习智能优化算法?
目前自己的研究课题基本上能做的仿真优化都做了,希望能够借助一些其他的工具来突破一下自己课题研究的瓶颈,偶然看到有几篇采用智能优化算法与数值仿真相结合的文章,觉得新奇又还蛮有意义,所以敲定下一步的研究计划就是这个方向。
2.为什么选择NSGA-II算法而不是其他算法呢?
其实算法的选择要根据具体研究问题来做决定,一开始我是想看到有一篇文章选用了代理模型的优化算法,但后来发现文章所研究的问题与我设想的有出入,遂放弃。然后整理了一下我自己所要解决的问题,基本就是多目标函数+多约束条件,所以再三斟酌后考虑选用NSGA-II遗传算法来解决自己的课题内容
3.从哪些方面可以获取学习内容?
因为以往关于fluent的学习我主要集中在B站和公众号,所以这次算法学习也主要从这两个端口出发。目前整理的学习途径主要如下:
视频教程及案例分析:B站+公众号
代码解析及分享:Github,CSDN, OmegaXYZ
专业书籍:《多目标进化优化-Multi-objective Evolutionary Optimization》
在这里补充一下,Github真是宝藏网站,作为一个编程小白初入Github感觉如获至宝,里面有很多现成的源代码可以直接抄录;CSDN也有许多案例讲解和代码分析,但很少有直接提供源代码的,基本上都要会员下载。OmegaXYZ这个网站是在无意中了解到,目前网站内关于NSGA-II的算法案例有3-4个,也可以借鉴一下。
4.应该如何学习NSGA-II算法,怎么才算真正掌握了?
在这里我个人的想法是首先得明确学习目标,才能制订接下来的学习计划。首先像我这种非计算机专业科班出身的学生,我的学习目标并非去改进或提出的新的优化算法,那么我需要做的就是在一个相对成熟的优化算法的基础之上,掌握该算法的优化逻辑,弄清关键代码的具体作用,修改需要优化的目标函数及约束条件,然后将其当作一个工具箱,熟练地用于解决自己研究课题的难题。
在厘清自己的学校目标之后就可以开始学习NSGA-II算法了。首先,让自己短时间内把上述那本多目标优化的专业书籍啃下来是不现实的。因此我是通过相关文献——b站视频案例——源代码练习——代码理解——回顾书籍知识点这一学习路径展开前期的学习。目前所完成的学习内容如下:
了解文献关于算法介绍、算法引入、优化问题描述、算法优化结果、数据分析处理的基本步骤。
b站视频案例的初步了解和学习
已选定相对成熟的源代码,动手写代码,目前已完成三个小模块,在写代码的过程中逐步理解算法的逻辑,不懂的再回顾书籍的专业知识点,尝试自己学习了解。
鉴于自己是第一次入手智能优化算法的学习,对很多知识点和代码的理解不是很到位,写下这个学习日记是为了激励自己持续学习直到完全掌握该技能。文中有遗漏和错误的地方,还请各位大神和专家批评指正,也希望有同在学习优化算法的同学一起交流学习。
页:
[1]