遗传算法与其python实现

遗传算法详解 附python代码实现 遗传算法 遗传算法是用于解决最优化问题的一种搜索算法。从名字来看,遗传算法借用了生物学里达尔文的进化理论:”适者生存,不适者淘汰“,将该理论以算法的形式表现出来就是遗传算法的过程。 问题引入 上面提到遗传算法是用来解决最优化问题的,下面我将以求二元函数: def F(x, y): return 3*(1-x)**2*np.exp(-(x**2)-(y+1)**2)- 10*(x/5 - x**3...... 阅读详情

遗传算法(Genetic Algorithm)和模拟退火算法一样,也是搜索启发式算法的一种,它是借鉴了自然界优胜劣汰与适者生存的思想,通过模拟自然界这一过程来搜索最优解,在机器学习、组合优化等方面有广泛的用途。
首先我们一样来看一个函数:

f(x)=x+5sin5x+2cos3x f ( x ) = x + 5 s i n 5 x + 2 c o s 3 x

函数图像如下:
这里写图片描述

现在需要求这个函数在[0,9]的最大值并需要精确到4位小数。同样,如果使用穷举法,需要计算90000次。现在我们来看看如何用遗传算法优化求解过程。

1.遗传算法

遗传算法的组成主要包括4个部分:
(1)编码
(2)适应度函数
(3)遗传算子(选择,交叉,变异)
(4)运行参数

1.1编码与解码(code and decode)

实行遗传算法的首要任务是要确定编码与解码的形式,就如同生物遗传是通过染色体和基因进行一样。编码形式可以直接使用实数编码,也可以使用二进制编码,基本遗传算法(SGA)都是选取二进制编码。
现在,对于上面的问题,如何对90000个数进行二进制编码呢。我们考虑90000个数将自变量空间划分成了90000个等份,现在使用二进制来表示这90000个等份,由于:

216<90000<217 2 16 < 90000 < 2 17

那么,只需要17为二进制字符串便可以表达每一个等份,每一等份都对应一个不同的字符串。现在,如何将二进制字符串转化回原自变量呢?首先将二进制转化为十进制:
x=(b16b15b14b13b0)2=
Python实战:5分钟搞定固定翼无人机三自由度仿真(附完整代码) 本文提供了一个基于Python的固定翼无人机三自由度仿真快速实现方案。通过面向对象设计,封装了核心运动学模型,并对比了欧拉法与龙格-库塔法两种积分方法。文章附有完整实例代码,帮助算法工程师和研究人员在5分钟内搭建轻量级仿真环境,用于快速验证控制律、路径规划等核心算法逻辑。 阅读详情

相关推荐

TypeError: fitness() takes 0 positional arguments but 1 was given

yolo中train.py报错

qq_53545309的博客 1494

遗传算法python实现

遗传算法python实现

qq_54543084的博客 8547

【100%通过率】2023华为od机试C卷【围棋的气】Python 实现

围棋棋盘由纵横各19条线垂直相交组成,棋盘上一共19 x 19 = 361 个交点,对奔双方一方执白棋,一方执黑棋,落子时只能将棋子置于交点上。 “气”是围棋中很重要的一个概念,某个棋子有几口气,是指其上下左右方向四个相邻的交叉点中,有几个交叉点没有棋子,由此可知:

MISAYAONE的博客 1803

利用遗传算法优化GANs

GANs是在训练阶段最需要计算的密集型模型之一,因为它相当于同时训练两个神经网络。对于我的普通电脑来说,把gan训练到收敛是非常困难的。 遗传算法是根据大自然中生物体进化规律而设计提出的,是根据大自然中生物体进化规律而设计提出的。是模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法。 在本片文章中,我们尝试使用遗传算法来对训练GANs进行优化,我们的训练模型是生成手写数字。 什么是遗传算法? 遗传算法是一种学习算法,它利用交叉两个好的神经网络的权.

deephub 6315

使用Python实现遗传算法 附完整代码

使用Python实现遗传算法 附完整代码

1万+

JBuilder 无法启动的解决方法

        安装 JBuilder 后第一次可以成功运行,可是机器重新启动之后再次运行 JBuilder 时却每次只是看到 Logo 闪了一下就没有任何反应了。        这种情况主要是由于 VM 的内存分配设置出了问题。可以在 X:/JBuilder2006/bin 目录下找到一个名为 jbuilder.config 的文件,打开该文件,其中有如下一行设置:# Tune this VM

幽客独往 4862

关于在jbuilder中使用jndi配置datasource(tomcat4、jbuilder9-x)

最近在做一个项目使用到tomcat里的datasource,因为要在jbuilder中调试启动tomcat,配置这个是一个问题,因为当你建立一个工程,一些配置文件在运行期才会产生;    例如:新建一个工程-TestDemo,启动tomcat时会在工程目录下的tomcat/conf/ 产生server808X.xml临时文件(根据端口不同产生),同时会在工程目录下的tomcat/webapp/下产

遂意>>xuanhai 1116

JBUILDER X 初体验

JBUILDERX 初体验JBUILDER的版本飞的太快了,一个版本还没有搞明白和前一个版本的不同之处,下一个版本又出来了!每个版本肯定都有改进,但如果不使用比较深入的功能,也觉得版本的改进不是太大(我就是这样^_^,每升级一次就觉得漂亮多了).我在用7开发EJB的时候遇到的BUG到9才改掉,这也是我多次升级带来的唯一一次好处.不过这次JBUILDER X给我感觉倒的确是一次里程碑式的升级

zcwm的专栏 1064

linux 下jbuilder 的安装

导读:   FreeBSD 5.1 下安装 JBuilder 9   NightKids 于 2003年09月01日 23:00 至 02日 早上 06:45 (睡了一觉)   由于很简单,不想浪费各位眼神,所以写得简略.   以下操作没用特别指明均为 root 身份   1)安装 Linux Base 环境   从 5.1 的光盘安装   2)安装 X-Window 环境(我用的是 KD

黑客攻防 | .net 源代码下载 | ASP.NET开发 | ORACLE数据库开发 | JAVASCRIPT脚本下载 | java源码下载 900

jbuilder2005不能启动问题的解决

安装好jbuilder2005后,点击启动,2005的启动界面一闪后便再无动静,进入F:/Borland/JBuilder2005/bin/JBuilder.exe路径,在cmd中运行JBuilder,报错:F:/Borland/JBuilder2005/bin>jbuilderError occurred during initialization of VMCould not reserve

tesge的专栏 4513

JBuilder2006中配置Weblogic8.x

JBuilder2006中配置Weblogic8.x 1先下载JBulider2006和Weblogic 8.x(前者有破解;后者可在官方网站下载,只是对连接数有限制)。 2、首先按照Weblogic8.x中的Configuration Wizard配置向导逐步配置Basic Weblogic Domain 服务(配置成功后,会在“启动—程序—Weblogic—User Proje

1562

JBUILDER2006 打开后一闪就没了,打不开的问题

2008-9-17以前碰到过,今天重装系统又碰到了这个问题。以为是系统中毒了,想重装,后网上一搜,好多人有此问题。解决方法:(一)有些计算机安装JBuilder2006不能正常运行,在我安装时也出现了这种情况,后来我尝试了好几种方法都无济于事,修改注册表、控制面板上添加并没有成功,最后就在JBuilder.exe上右键,单击运行方式,选择计算机管理员(Administrator)有

changleqy的专栏 2447

JBuilder快捷键

1 F9键     通过创建项目的运行模块   2 Ctrl+Alt+P  显示/隐藏项目面板   3 Ctrl+Alt+C  显示/隐藏代码与设计面板   4 Ctrl+Alt+S  显示/隐藏结构面板   5 Ctrl+Alt+M  显示/隐藏消息面板   6 Ctrl+Alt+U  显示/隐藏状态栏   7 Ctrl+Alt+Z  显示/隐藏项目、结构、信息面板   8 Ctrl+B    

apple90的专栏 684

安装Jbuilder2006

首先要知道JBuilder 2006的软件包直接开装是没法装的把整个光盘的内容复制到用户目录中的一个目录中如/usr/install/jb2006,操作如下:cd /usr/install/jb2006/Disk1/InstData/Linux/VMmv ./install.bin ./install.bin.borland  /* 对安装文件进行备份 */cat ./install.bin.bo

hg2000的专栏 717

用Jbuilder8做一个简单的struts示例

用Jbuilder8做一个简单的struts示例最近在看Wiley出版的《Mastering Jakarta Struts》(PDF格式)时发现很多例子包括配置文档等都是直接用手工写的,工作量比较大。为此考虑使用IDE来简化工作。JBUILDER8是个非常流行的java工具并且可以和多种WEB SERVER集成工作。本文中的例子在tomcat4.x和weblogic7.1均能正常工作。(本文不

tonyzhangcn的专栏 1033

JBuilder 内存监控

监控JB内存的开源工具OverviewThe Memory Monitor OpenTool is an add-on module for the Borland JBuilder IDE, which offers: the continiously dynamic inspection of the JBuilder IDEs memory consumption

浪迹 1087

JBUILDER X/2005一个奇怪的故障

今天用TuneUp Utilities 2004清理了一下硬盘,然后打开JBUILDER 2005,接着做未完的工作,执行已编写好的test case,这时问题出现了,往日系统rebuild完就会自动打开JB自己的JBTestRunner窗口执行用例,这次却rebuild完以后就没有任何反应了,奇了怪了,难道是误删了JB的文件?应该不会呀,不管那么多,重装JB2005,等了n久终于装完了,心想这下

未来之路 1481

求助!!关于使用JBUILDER X进行J2EE 应用开发。

我已经编写好一个能接受两个数,然后算出他们的和的SESSION BEAN.也就是说,在session bean :  calcbean 中有 int sum(int a, int b){}方法。并且, CalcHome接口, Calc.java(remote interface)已经实现。而且我能将他们部署到 jboss服务器上。用JBUILDER X 编写一个client.java 去测试这个s

zjblur的专栏 628

jbuilder2006 无法启动

安装好jbuilder2005后,点击启动,2005的启动界面一闪后便再无动静,进入F:\Borland\JBuilder2005\bin\JBuilder.exe路径,在cmd中运行JBuilder,报错: F:\Borland\JBuilder2005\bin&gt;jbuilder Error occurred during initialization of VM Could not r...

xiaoxin 160

国微SM25QH128以及复旦微JFM25F32A Flash芯片的操作使用笔记

1、详细介绍了国微SM25QH128以及复旦微JFM25F32A Flash读写时序;2、给出了 FPGA Verilog读写Flash芯片的操作流程,以及状态机的设计方法;3、给出了程序开发过程中的注意事项;4、该资料作为Flash读写很好的参考资料,如果需要提供技术支持,可以联系笔者。

上一篇: 神经网络的keras实现
下一篇: python绘图练习——股票分析(一):基础分析
WFRainn
博客等级 码龄8年 199粉丝 12原创
评论 25
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值