人工智能及其应用大作业

人工智能及其应用大作业
人工智能及其应用大作业

人工智能及其应用大作业(一) 基本遗传算法及其在函数优化中的应用

班级: 020951

姓名:刘泽宇

学号: 02095044

基本遗传算法及其在函数优化中的应用

摘要

遗传算法(Genetic Algorithm)是模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法,它最初由美国Michigan大学J.Holland教授于1975年首先提出来的,并出版了颇有影响的专著《Adaptation in Natural and Artificial Systems》,GA这个名称才逐渐为人所知,J.Holland教授所提出的GA通常为简单遗传算法(SGA)

1.前言

遗传算法(Genetic Algorithm)是一类借鉴生物界的进化规律(适者生存,优胜劣汰遗传机制)演化而来的随机化搜索方法。它是由美国的J.Holland教授1975年首先提出,其主要特点是直接对结构对象进行操作,不存在求导和函数连续性的限定;具有内在的隐并行性和更好的全局寻优能力;采用概率化的寻优方法,能自动获取和指导优化的搜索空间,自适应地调整搜索方向,不需要确定的规则。遗传算法的这些性质,已被人们广泛地应用于组合优化、机器学习、信号处理、自适应控制和人工生命等领域。

它是现代有关智能计算中的关键技术。

将遗传算法应用于函数优化问题中可以在有限次的求解步骤中,求得一个近似最优解,虽然这个解的取值具有一定的波动性,但与生物进化的自然选择类似,只要经过足够多次的迭代,得到的解与所要求的最优解会十分逼近

2.基本算法流程

2.1 初始化种群

设置进化代数计数器t=0,设置最大进化代数T,随机生成M个个体作为初始群体P(0)。

2.2 个体评价

计算群体P(t)中各个个体的适应度。

2.3 选择运算

将选择算子作用于群体。选择的目的是把优化的个体直接遗传到下一代或通过配对交叉产生新的个体再遗传到下一代。选择操作是建立在群体中个体的适应度评估基础上的。

2.4 交叉运算

将交叉算子作用于群体。所谓交叉是指把两个父代个体的部分结构加以替换重组而生成新个体的操作。遗传算法中起核心作用的就是交叉算子。

2.5 变异运算

将变异算子作用于群体。即是对群体中的个体串的某些基因座上的基因值作变动。

群体P(t)经过选择、交叉、变异运算之后得到下一代群体P(t 1)。

2.6 终止条件判断

若t=T,则以进化过程中所得到的具有最大适应度个体作为最优解输出,终止计算。3.试验与结果

3.1测试函数与参数选择

本小节采用y=2*x2函数进行测试

其中

交叉概率为: 100%

变异概率为: 1%

3.2 试验结果

3.3 结果分析

由程序运行结果可以看出,经过50代迭代求解,所求得的解与理论最优解0已经十分接近

而另一方面,由于迭代次数只有50代,导致各代间有着较为明显的差异,比如在上例10次运行中,有0.39这样的解,也有0.00000648这样的解存在,有着较大的离散性,由此可见,在遗传算法的运算中,结果有着一定的随机性,并且会随进化代数的增加而趋于稳定4.结论

由实验结果可知,遗传算法在经过足够多次迭代后会十分接近所要求的最优解,但是遗传算法不是采用确定性规则,而是采用概率的变迁规则来执导的,因此具有很高的灵活性,不依赖于具体的问题领域,对问题的种类有很强的鲁棒性,但是由于其结果的不确定性,遗传算法并不适于解决多元规模过大的问题,并且由于其稳定性相对较差,很容易陷入局部最优解中

5.参考文献

《人工智能及其应用(第三版)》才自行,徐光祐清华大学出版社

https://www.360docs.net/doc/823457600.html,/view/45853.htm

附录

1.程序代码

//

// 遗传算法

// 遗传算法求解min f(X) = 2 * x^2 s.t. -1<= x <=1

//

// author : 龙泉居士

// date : 2011.11.28

// envorment : Visual C++ 6.0 1998

//

//

/*************************** function.h ***************************/

// statements for functions

//

#ifndef FUNCTION201111242101

#define FUNCTION201111242101

#include

usingstd::bitset;

doublebtod (bitset<16> b); //bitset to double

double function (bitset<16>bx); //适应度函数

void gamble (bitset<16> *bx); //轮盘赌

void overlap(bitset<16> *bx); //交叉

void variation(bitset<16> *bx); //变异

#endif

//

/********************** function.cpp ***************************/ //

// the definitions for functions

//

//

#include "function.h"

doublebtod (bitset<16> b) //bitset to double

{

bool a=0;

if(b.test(15))

b.reset(15),a=1;

return a ? -static_cast(b.to_ulong())/10000 :

static_cast(b.to_ulong())/10000;

}

double function (bitset<16>bx) //适应度函数

{

return 5-2*btod(bx)*btod(bx);

}

void gamble (bitset<16> *bx) //轮盘赌

{

bitset<16>tbx[10];

int i;

double p[10],sum=0;

for (i=0; i!=10; ++i)

sum += function(bx[i]);

for(i=0; i!=10; ++i)

p[i] = function(bx[i])/sum;

for(i=1; i!=10; ++i)

p[i] += p[i-1];

p[9]=1;

for (i=0; i!=10; ++i)

{

sum/*临时用作随机数存储器*/ = (double)(rand()%10001)/10000;

for(int j=0; j!=10; ++j)

if(sum<=p[j])

{

tbx[i]=bx[j];

break;

}

}

for(i=0; i!=10; ++i)

bx[i]=tbx[i];

}

void overlap(bitset<16> *bx) //交叉{

//交叉率: 100%

bitset<16> tmp0,tmp1,tmp2,tmp3;

for(int i=0; i!=10; i+=2)

{

tmp0=bx[i]&0xff00;

tmp1=bx[i+1]&0xff00;

tmp2=bx[i]&0x00ff;

tmp3=bx[i+1]&0x00ff;

bx[i]=tmp0|tmp3;

bx[i+1]=tmp1|tmp2;

}

}

void variation(bitset<16> *bx) //变异{

//变异概率:0.01

for (int i=0; i!=10; ++i)

{

int p=rand()%101;

if(p==1)

{

int j=rand()%16;

p=rand()%2;

bx[i][j]=p;

}

}

}

//

/******************** main.cpp ************************/ // main function

//

#include

#include

#include

#include

#include

#include "function.h"

using namespace std;

int main ()

{

bitset<16>bitx[10];

srand(time(0));

for (int a=0; a!=10; ++a)

{

for (int i=0; i!=10; ++i)

{

bitx[i]=rand()%10001;

if(rand()%2)

bitx[i]|=0x8000;

}

for (i=0; i!=50; ++i)

{

gamble(bitx);

overlap(bitx);

variation(bitx);

}

doublelst=0;

for (i=0; i!=10; ++i)

lst += btod(bitx[i]);

lst /= 10;

cout<<"第"<

人工智能在教育领域的应用(含答案)

. 人工智能在教育领域的应用(含答案) 一、单选题(共4题,每题5 分) 1、人工智能在技术发展中的三个阶段包括() ①计算智能 ②感知智能 ③认知智能 ④应用智能 A ①②③ 2、我们目前处于人工智能的第几次浪潮() A. 第一次浪潮 B. 第二次浪潮 C. 第三次浪潮 D. 第四次浪潮 3、人工智能在教育体系中带来的创新性变革不包括() B ①③④ C ②③④ D ①②④ A.个性化学习 B. 科学监管 C. 精准教学 D.科学化就业指导 4、AI+教育的个性化教学离不开老师和()的共同努力。 A.学生 B.家长 C.学校 D.社会 二、多选题(共5题,每题6 分) 5、人工智能和教育应用结合会有哪些优点() A.为数据采集提供手段,支持从数字化到数据化。 B. 为教师减负增效,减少教师简单重复工作时间。 C. 学生行为个性化分析,以学定教,提升学习效率。 D. 为管理提供大数据决策,为科学治理提供支撑。 6、智能感知交互包括哪些技术() A、语音合成技术 B、语音识别技术 C、图像绘制技术 D、图像识别技术 7、智慧课堂产品为学生预制了哪些资源() A. 智能划词搜索 B.智能口语评测 C.智能教学工具 D.化学实验微观可视 8、当前教学中存在的问题() A、如何开展因材施教 B、如何解决课业负担过重 C、如何提高教学的效果 D、如何实现科学管理 9、AI+教育具有哪些优势() A、学习一流教育经验并持续迭代优化 B、提升师生为中心的个性化服务能力 C、智能辅 助和人机协同优化教育治理D、迎合教育与时代发展前景 三、填空题(共6题,每题5 分) 10、人工智能是研究、开发用于模拟、延伸和人的智能的理论、方法、技术及应用系统的一门新的技术科学。 11.人工智能是有关“智能主体”的研究与设计的学问,而“智能主体”是指一个可以 并做出行动以达至目标的系统。 12、考试大数据的采集包括网阅和______。 13、教育改革,贯穿了人类文明的的发展史。而重大变革。的到来,正在推动教育形态发生新的

人工智能的应用领域和发展方向

人工智能的应用领域和发展方向前言 人工智能是一门极富挑战性的科学,但也是一门边沿学科。它属于自然科学和社会科学的交叉。涉及的学科主要有哲学、认知科学、数学、神经生理学、心理学、计算机科学、信息论、控制论、不定性论、仿生学等。 人工智能(Artificial Intelligence) ,英文缩写为AI。。它是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器,该领域的研究包括机器人、语言识别、图像识别、自然语言处理和专家系统等。 人工智能的传说可以追溯到古埃及,但随着1941年以来电子计算机的发展,技术已最终可以创造出机器智能,人工智能领域的研究是从1956年正式开始的,这一年在达特茅斯大学召开的会议上正式使用了"人工智能"(Artificial Intelligence,AI)这个术语,从那以后,研究者们发展了众多理论和原理,人工智能的概念也随之扩展。随后的几十年中,人们从问题求解、逻辑推理与定理证明、自然语言理解、博弈、自动程序设计、专家系统、学习以及机器人学等多个角度展开了研究,已经建立了一些具有不同程度人工智能的计算机系统,例如能够求解微分方程、设计分析集成电路、合成人类自然语言,而进行情报检索,提供语音识别、手写体识别的多模式接口,应用于疾病诊断的专家系统以及控制太空飞行器和水下机器人更加贴近我们的生活。我们熟知的IBM的"深蓝"在棋盘上击败了国际象棋大师卡斯帕罗夫就是比较突出的例子。 长久以来,人工智能对于普通人来说是那样的可望而不可及,然而它却吸引了无数研究人员为之奉献才智,从美国的麻省理工学院(MIT)、卡内基-梅隆大学(CMU)到IBM公司,再到日本的本田公司、SONY公司以及国内的清华大学、中科院等科研院所,全世界的实验室都在进行着AI技术的实验。不久前,著名导演斯蒂文·斯皮尔伯格还将这一主题搬上了银幕,科幻片《人工智能》(A.I.)对许多人的头脑又一次产生了震动,引起了一些人士了解并探索人工智能领域的兴趣。 在它还不长的历史中,人工智能的发展比预想的要慢,但一直在前进,从40年前出现到现在,已经出现了许多AI程序,并且它们也影响到了其它技术的发展。目前,人工智能还在研究中,但有学者认为让计算机拥有智商是很危险的,它可能会反抗人类。这种隐患也在多部电影中发生过。 正文 一有关人工智能 人工智能也称机器智能,它是计算机科学、控制论、信息论、神经生理学、心理学、语言学等多种学科互相渗透而发展起来的一门综合性学科。从计算机应用系统的角度出发,人工智能是研究如何制造出人造的智能机器或智能系统,来模拟人类智能活动的能力,以延伸人们智能的科学。

人工智能及其应用-概论

《人工智能及其应用》 教学讲义 第一章人工智能概论

第一章人工智能概论 一、人工智能的基本概念 人工智能(Artificial Intelligence,简称AI)这一术语是1956年在美国的Dartmouth大学召开的世界第一次AI会议上由麻省理工学院的青年数学教师John McCarthy提议而使用的。AI这一学科至今已有50多年的历史,在国际上已确认AI是当代高科技的核心之一。 AI是一个广义词,各有说法,很难给出准确的定义或一般性的定义。其基本含义是: AI是用机器(计算机或智能机)来模仿人类的智能行为。 AI也叫机器智能,是研究如何使机器具有认识问题与解决问题的能力,研究如何使机器具有感知功能(如视、听、嗅)、思维功能(如分析、综合、计算、推理、联想、判断、规划、决策)、行为功能(如说、写、画)及学习、记忆等功能。 所以,如果一个计算机系统具有某种学习能力,能够对有关问题给出正确的答案,而使用的方法与人类相似,还能解释系统的智能活动,那么,这种计算机系统便认为具有某种智能。 人工智能用计算机技术的概念和方法对智能进行研究,因此,它从根本上提供了一个全新的理论基础。作为一门学科,人工智能的目的是了解使智能得以实现的原理;作为一门技术,它的最终目的是设计出完全与人类智能相媲美的智能计算机系统。 到目前为止,计算机作为一种最有效的信息处理工具,人们已片刻离不开它。但是,与人脑相比,计算机的智能在许多方面还不及婴幼儿。如果计算机具有一定的智能,能够模拟人类的智能活动,成为人脑的延伸,那么计算机对人类的贡献和作用将产生不可估量的影响,人类将步入智能机器人的时代。 尽管科学家们尚未达到这个目的,但在使计算机更加智能化方面已经取得了很大的进展,许多AI 计算机系统在不少领域实际上已超出了高水平的人类技艺,如计算机可以下出极高水平的象棋,用来诊断某种疾病,用来发现数学概念。 AI是使技术适应于人类的钥匙,是自动化技术向智能技术方向发展的关键,也是揭示人类智能和人脑奥秘的有力工具。 二、人工智能的研究内容 要了解人工智能的研究内容,必须先搞清楚什么是人类的智能。“智能”词源来自拉丁语Legere,字面意思是采集、收集和汇集,并由此进行选择。而Intellegere意思是从中进行选择,进而理解、领悟和认识。 因此,人工智能的研究内容应包括三个方面: 1.知识表达(Knowledge Representation): ——研究如何在机器中表示知识,使知识形式化、模型化,用以建立合适的符号逻辑系统。 2.知识获取(Knowledge Acquisition): ——研究机器如何从各种知识源获取知识。 3.知识处理(Knowledge Inference)或问题求解(Peoblem Solving): ——运用存贮于机器中的知识进行相应知识处理,并推出结论。

人工智能的现状与今后发展趋势展望

人工智能的现状及今后发展趋势展望 一.引言 人工智能 (Artificial Intelligence), 英文缩写为 AI ,也称机器智能。“人工智能” 一词最初是在 1956 年的 Dartmouth 学会上提出的。它是计算机科学、控制论、信 息论、神经生理学、心理学、语言学等多种学科互相渗透而发展起来的一门综合性 学科。从计算机应用系统的角度出发,人工智能是研究如何制造智能机器或智能 系统来模拟人类智能活动的能力,以延伸人们智能的科学。 二.目前人工智能技术的研究和发展状况 目前,人工智能技术在美国、欧洲和日本依然飞速发展。在 AI 技术领域十分活跃的 IBM 公司,已经为加州劳伦斯·利佛摩尔国家实验室制造了 ASCI White 电脑,号称具有人脑的千分之一的智力能力。而正在开发的更为强大的 新超级电脑———“蓝色牛仔”( Blue Jean ),据其研究主任保罗·霍恩称,“蓝色牛仔”的智力水平将大致与人脑相当。 三.技术应用 随着 AI 技术的发展,现代几乎各种技术的发展都涉及到了人工智能技术, 可以说人工智能已经广泛应用到许多领域,其典型的应用包括: 1符号计算 计算机最主要的用途之一就是科学计算 , 科学计算可分为两类 : 一类是纯数值 的计算 ,例如求函数的值 ; 另一类是符号计算 , 又称代数运算 ,这是一种智能化的计 算 ,处理的是符号。符号可以代表整数、有理数、实数和复数 ,也可以代表多项式、 函数、集合等。随着计算机的普及和人工智能的发展 , 相继出现了多种功能齐全的 计算机代数系统软件 ,其中 Mathematic 和 Maple 是它们的代表。由于它们都是用 C 语言写成的 , 所以可以在绝大多数计算机上使用。 2模式识别 模式识别就是通过计算机用数学技术方法来研究模式的自动处理和判读。这 里,我们把环境与客体统称为“模式”。用计算机实现模式(文字、声音、人物、 物体等)的自动识别,是开发智能机器的一个关键的突破口,也为人类认识自身智能提供线索。计算机识别的显著特点是速度快、准确性和效率高。识别过程与

相关文档
最新文档