当前位置:首页 » 操作系统 » 遗传算法ga

遗传算法ga

发布时间: 2022-02-02 08:58:27

‘壹’ 遗传算法的优缺点

优点:

1、遗传算法是以决策变量的编码作为运算对象,可以直接对集合、序列、矩阵、树、图等结构对象进行操作。这样的方式一方面有助于模拟生物的基因、染色体和遗传进化的过程,方便遗传操作算子的运用。

另一方面也使得遗传算法具有广泛的应用领域,如函数优化、生产调度、自动控制、图像处理、机器学习、数据挖掘等领域。

2、遗传算法直接以目标函数值作为搜索信息。它仅仅使用适应度函数值来度量个体的优良程度,不涉及目标函数值求导求微分的过程。因为在现实中很多目标函数是很难求导的,甚至是不存在导数的,所以这一点也使得遗传算法显示出高度的优越性。

3、遗传算法具有群体搜索的特性。它的搜索过程是从一个具有多个个体的初始群体P(0)开始的,一方面可以有效地避免搜索一些不必搜索的点。

另一方面由于传统的单点搜索方法在对多峰分布的搜索空间进行搜索时很容易陷入局部某个单峰的极值点,而遗传算法的群体搜索特性却可以避免这样的问题,因而可以体现出遗传算法的并行化和较好的全局搜索性。

4、遗传算法基于概率规则,而不是确定性规则。这使得搜索更为灵活,参数对其搜索效果的影响也尽可能的小。

5、遗传算法具有可扩展性,易于与其他技术混合使用。以上几点便是遗传算法作为优化算法所具备的优点。

缺点:

1、遗传算法在进行编码时容易出现不规范不准确的问题。

2、由于单一的遗传算法编码不能全面将优化问题的约束表示出来,因此需要考虑对不可行解采用阈值,进而增加了工作量和求解时间。

3、遗传算法效率通常低于其他传统的优化方法。

4、遗传算法容易出现过早收敛的问题。

(1)遗传算法ga扩展阅读

遗传算法的机理相对复杂,在Matlab中已经由封装好的工具箱命令,通过调用就能够十分方便的使用遗传算法。

函数ga:[x, fval,reason]= ga(@fitnessfun, nvars, options)x是最优解,fval是最优值,@fitnessness是目标函数,nvars是自变量个数,options是其他属性设置。系统默认求最小值,所以在求最大值时应在写函数文档时加负号。

为了设置options,需要用到下面这个函数:options=gaoptimset('PropertyName1', 'PropertyValue1', 'PropertyName2', 'PropertyValue2','PropertyName3', 'PropertyValue3', ...)通过这个函数就能够实现对部分遗传算法的参数的设置。

‘贰’ 求遗传算法(GA)C语言代码

.----来个例子,大家好理解..--
基于遗传算法的人工生命模拟
#include<stdio.h>
#include<stdlib.h>
#include<graphics.h>
#include<math.h>
#include<time.h>
#include<string.h>
#include "graph.c"
/* 宏定义 */
#define TL1 20 /* 植物性食物限制时间 */
#define TL2 5 /* 动物性食物限制时间 */
#define NEWFOODS 3 /* 植物性食物每代生成数目 */
#define MUTATION 0.05 /* 变异概率 */
#define G_LENGTH 32 /* 个体染色体长度 */
#define MAX_POP 100 /* 个体总数的最大值 */
#define MAX_FOOD 100 /* 食物总数的最大值 */
#define MAX_WX 60 /* 虚拟环境的长度最大值 */
#define MAX_WY 32 /* 虚拟环境的宽度最大值 */
#define SX1 330 /* 虚拟环境图左上角点x坐标 */
#define SY1 40 /* 虚拟环境图左上角点y坐标 */
#define GX 360 /* 个体数进化图形窗口的左上角点X坐标 */
#define GY 257 /* 个体数进化图形窗口的左上角点Y坐标 */
#define GXR 250 /* 个体数进化图形窗口的长度 */
#define GYR 100 /* 个体数进化图形窗口的宽度 */
#define GSTEP 2 /* 个体数进化图形窗口的X方向步长 */
#define R_LIFE 0.05 /* 初期产生生物数的环境比率 */
#define R_FOOD 0.02 /* 初期产生食物数的环境比率 */
#define SL_MIN 10 /* 个体寿命最小值 */
/* 全局变量 */
unsigned char gene[MAX_POP][G_LENGTH]; /* 遗传基因 */
unsigned char iflg[MAX_POP]; /* 个体死活状态标志变量 */

‘叁’ 关于遗传算法

遗传算法(Genetic Algorithm,简称GA)是美国 Michigan大学的 John Golland提出的一种建立在自然选择和群体遗传学机理基础上的随机、迭代、进化、具有广泛适用性的搜索方法。现在已被广泛用于学习、优化、自适应等问题中。图4-1 给出了 GA搜索过程的直观描述。图中曲线对应一个具有复杂搜索空间(多峰空间)的问题。纵坐标表示适应度函数(目标函数),其值越大相应的解越优。横坐标表示搜索点。显然,用解析方法求解该目标函数是困难的。采用 GA时,首先随机挑选若干个搜索点,然后分别从这些搜索点开始并行搜索。在搜索过程中,仅靠适应度来反复指导和执行 GA 搜索。在经过若干代的进化后,搜索点后都具有较高的适应度并接近最优解。

一个简单GA由复制、杂交和变异三个遗传算子组成:

图4-2 常规遗传算法流程图

‘肆’ MATLAB用遗传算法ga求最大值中的最小值

MATLAB用遗传算法ga求含有最大值的最小值问题,可以这样处理:由于最大值问题的反问题就是最小值问题,所以 max=-min。因此,你的问题就可以改写为

min ( min -(3*x1+4*x2+...))

‘伍’ 模拟退火法(SA)和遗传算法(GA)的专业解释

n局部搜索,模拟退火,遗传算法,禁忌搜索的形象比喻:

为了找出地球上最高的山,一群有志气的兔子们开始想办法。
1.兔子朝着比现在高的地方跳去。他们找到了不远处的最高山峰。但是这座山不一定是珠穆朗玛峰。这就是局部搜索,它不能保证局部最优值就是全局最优值。
2.兔子喝醉了。他随机地跳了很长时间。这期间,它可能走向高处,也可能踏入平地。但是,他渐渐清醒了并朝最高方向跳去。这就是模拟退火。
3.兔子们吃了失忆药片,并被发射到太空,然后随机落到了地球上的某些地方。他们不知道自己的使命是什么。但是,如果你过几年就杀死一部分海拔低的兔子,多产的兔子们自己就会找到珠穆朗玛峰。这就是遗传算法。
4.兔子们知道一个兔的力量是渺小的。他们互相转告着,哪里的山已经找过,并且找过的每一座山他们都留下一只兔子做记号。他们制定了下一步去哪里寻找的策略。这就是禁忌搜索。

‘陆’ 谁能告诉我遗传算法的ga函数里面到底是怎么设置参数的呢,交叉概率,变异概率什么的。。。

MATLAB中,gaoptimset是用来设置遗传算法的优化参数的。

‘柒’ matlab怎样让遗传算法ga从上次的运行结果开始继续寻优

比如通过MATLAB遗传算法的思想求解f(x)=x*sin(10pi*x)+2.0,-1>f=@(x)-(x*sin(10*pi*x)+2)f= @(x)-(x*sin(10*pi*x)+2)接着输入gatool会打开遗传算法工具箱按上图所示设置,设置好了之后点击Start运行结果如下显示51代之后算法终止,最小结果为-3.85027334719567,对应的x为1.851,由于自定义函数加了负号,所以原式的最大值为3.85027334719567,对应的x为1.851。不过这是遗传算法得到的结果,每次运行的结果可能会有所不同,而且不一定是确切的最大值。遗传算法适合应用在一些求最优解比较复杂的问题(常规的算法运算时间过长,甚至无法解决)。

‘捌’ 遗传算法 matlab自带ga函数

c=[246];%c为目标函数系数
fun_1=@(x)dot(c,x');%y为适应度函数值,求两向量的数量积

A=[10-1;-1-20;-100];%A为AX<=b的系数矩阵
b=[10;-1;0];%b为AX<=b的常数项
Aeq=[011];%AeqX=beq的系数矩阵
beq=12;%AeqX=beq的常数项

[x,y]=ga(fun_1,3,A,b,Aeq,beq)

‘玖’ 遗传算法:matlab中ga函数参数options该怎么设置

  1. options可以不写有默认设置。

  2. options是一个结构体要用函数gaoptimset()设置。

  3. options=gaoptimset()然后把options填到ga()里面。

  4. gaoptimset('属性名1',数值1,'属性名2',数值2......)。

常用设置:

热点内容
c语言双轨加密算法 发布:2024-11-14 12:08:41 浏览:689
java母 发布:2024-11-14 12:08:36 浏览:456
微信如何评论图片安卓 发布:2024-11-14 11:56:34 浏览:849
游戏遍地脚本 发布:2024-11-14 11:56:32 浏览:760
怎样编译一个背单词系统 发布:2024-11-14 11:54:47 浏览:177
传奇这个配置怎么样 发布:2024-11-14 11:48:25 浏览:377
配置横向防火墙是什么意思 发布:2024-11-14 11:42:34 浏览:732
手机缓存文件能打开吗 发布:2024-11-14 11:41:00 浏览:493
存储系统集成 发布:2024-11-14 11:14:54 浏览:585
云服务器搭建方法图解 发布:2024-11-14 11:14:53 浏览:310