人工智能算法(精选11篇)
人工智能算法 篇1
随着医学知识与信息科技的不断发展和进步,传统的医疗模式已逐渐从“有疾始医”向“无疾预防”转变。这种转变使人体各类生理信号的日常监测成为一项越来越重要的工作,其中一项心率信息的定义是心脏每分钟跳动的次数。在众多生体信号中,心率数据可谓是最基本同时也是最重要的信息之一,在诸多方面表现出极大价值,例如,在疾病预测及诊断方面,通过心率信号,可以捕获心脏疾病的先兆情况,了解心脑血管疾病的潜在风险;在健康保健和运动医学领域,可依据心率情况判断健身效果以及保障被监测者的运动安全。
传统的心率检测方法一般基于绘制心电图(ECG,electrocardiogram)的技术,如图1所示[1]。此种方法需要在人体数个特定部位放置体表电极,用于身体表面各点生物电压的采集;然后,根据各点间电位差,绘制出人体心电图并籍此获得心率信息。由于这种检测方法事先需要进行较为繁琐的准备工作,比如需要花费时间在体表安置电极和预热仪器设备等。此外,由于该检测方法需要仪器与体表直接接触,所以还涉及到清洁仪器、体表消毒等问题。该方法另需通过波形分析方法分析数据,方能获得心率信息。由此可见,在非专业医疗环境特别是那些我们仅需获知被检测者心率信息而对心电图信息不甚关心的场合,以上测试方法显得较为繁琐与不便。综上所述,迫切企盼一种操作简便,无需与人体相接触,并且能够快速完成心率检测的非接触式心率检测方法。
为满足上述需求,前人提出一种基于时滞图像(time-lapse image)分析人体心率的非接触、非侵入式检测方法。该方法通过截取人体脸颊部位特定区域的视频时滞图像,透过该图像区域平均灰度值的离散变化,籍由若干信号处理方法及6阶自回归分析而获取心跳频率(heart rate)及呼吸频率(respiratory rate),较好克服了前文所述传统检测方法的问题。但是,该方法也存在着精确度、可靠性上的缺陷,使得研究者继而思索更佳分析处理方法,从而在满足非接触性、非侵入式特性的同时,提高准确率。
本文尝试在此种方法的基础上,着眼于新算法的开发,提出一种基于人工智能技术中模糊逻辑理论的生体信号分析算法,将其应用于心率检测领域。实验表明,采用该算法之后,检测结果比较理想。
1 研究现状
通过人体局部视频图像信号的变化检测心率,作为一种新颖的非接触式、非侵入式心率检测方案受到学术界的关注。比如,在由Takano C等所发表的文章中[2],提出一种由CCD摄像机捕捉人脸特定目标区域的时滞视频图像后,依次通过一阶微分、低通滤波和6阶自回归分析等信号处理手段,于信号频谱能量最大的两个频段处获取呼吸和心跳频率。然而,由于视频图像信号极易混入噪声的特性,加上该算法先天所存在的局限性,最后的检测结果不甚理想。
2 本文提出方法
为了提高前文所述心率检测方法的精确度,本文尝试在该方法基础上,引入人工智能领域中模糊逻辑的分析算法,籍此能有效提高精确性。
2.1 模糊逻辑简介
模糊逻辑是目前人工智能领域内较为活跃的一个分支。该方法植根于University of California,Berkeley的Lotfi Sedah教授于1965年提出的模糊数学理论,籍由其中的模糊集合论为工具,通过模糊隶属函数之赋值,规避布尔逻辑所带来的“绝对二元性”问题。由于其在精确度、鲁棒性及易用性之间有良好的折衷处理关系,目前已广泛应用于智能家电,医疗仪器和图像处理等领域。
2.2 数据预处理
由数码摄像机采集人脸面颊特定区域的视频时滞图像,其原始数据格式为NTSC,拍摄参数为每秒30桢,即信号采样率为30 Hz。此后经256阶灰度处理,取每桢图像的灰度平均值,所获预处理信号如图2所示。
由于该信号仍存在较大的噪声,宜先进行滤波处理。在此,采用加BLACKMAN窗的方法,其幅频及相频曲线如图3所示,其窗系数方程[4]为:
其中,n为滤波器系数的序列;BLACKMAN滤波器阶数为L=N+1。
基于人体心率的知识,取滤波器通带为0.5 Hz至2 Hz。经过以上处理之后的信号如图4所示。
2.3 算法说明
基于人体心跳特征的研究,可建立以下两条基本知识规则[5]:
1)每次心跳所需时间以一定概率形式分布在时域中,其中包括心率正常者及心率异常者;
2)在每次心跳过程中,信号幅度至少会出现一次较大波峰,心率异常者可能波峰更多。
根据以上知识,基于模糊集合理论[3],我们据此构建两条模糊隶属函数:
基于第一条知识,定义时间模糊隶属函数,在此使用如图5所示的高斯形隶属函数:
其中,τ(t)为信号时间离散值;T为按Takano C方法[2]计算所得心跳频率的倒数;σ决定函数曲线的宽度,取经验值。
基于第二条知识,定义幅值模糊隶属度。由于幅值信号所受的干扰较为严重,因此如图6所示的线性分布被用于刻画幅值模糊隶属度:
其中,x(t)为信号幅度离散值;xmax及xmin分别为信号之极值。
通过以上两维模糊隶属函数之乘积,可定义综合模糊隶属度:
μ=μInt×μAmp
基于以上所定义模糊隶属度,可计算信号每一离散点之综合模糊隶属度。心跳点即为信号综合模糊隶属度最大的点。最后,通过计算一分钟内心跳点的个数,即可获得实验者的心率。
3 实验结果
为了测试本文所提出算法的有效性,将5位被测试者的实际心跳与用本文提出的心率检测算法同时进行对比验证,其结果如表1所示。
通过计算,该算法所得结果与实际心率的相关系数(correlation coefficient)为0.95,而Takano C等[1]所提出的算法检测结果与实际心率的相关系数为0.90。因此,本文提出的算法满足了性能提高的需求,达到设计目的。
4 结论
非接触式心率检测方法由于其方便性、安全性及灵活性受到业界广泛关注与研究。本文在前人基于人体视频时滞图像检测心率方法的基础上,提出了一种新颖的心率检测算法。该算法结合了信号处理技术及人工智能方法,在易用性及精确度之间进行了良好的平衡。实验结果显示,能基本满足心率检测的要求。
参考文献
[1]Electrocardiography.http://en.wikipedia.org/wiki/Ecg
[2]Takano C,Ohta Y.Heart rate measurement based on a time-lapse image[J].Med Eng Phys,2006,29(8):853-857.
[3]李人厚著.智能控制理论和方法[M].西安:西安电子科技大学出版社,2005.
[4]Documentation for MathWorks Products,R2009b.http://www.mathworks.com
[5]Yutaka Hata,Yuya Kamozaki,Toshiyuki Sawayama,et al.Heart pulse monitoring system by air pressure and ultrasonic sensor systems[J].System of Systems Engineering,2007,16-18:1-5.
人工智能算法 篇2
基于修正因子智能权函数的汽车ABS模糊控制算法仿真研究
根据汽车ABS相关知识和模糊控制理论,建立了基于修正因子智能权函数的模糊控制算法,利用Maflab建立了ABS模糊控制总模犁及模糊控制器模型,对其进行仿真.结果显示,基于修正因子智能权函数的控制算法能使车轮的附着系数在最大附着系数附近微小波动,最佳的`利用路面的附着潜力,故此控制算法的制动效果较好.
作 者:李劲松 金志扬 LI Jin-song JIN Zhi-yang 作者单位:海南大学机电工程学院,儋州,571737 刊 名:汽车科技 英文刊名:AUTOMOBILE SCIENCE & TECHNOLOGY 年,卷(期): “”(3) 分类号:U461.3 关键词:汽车防抱死制动系统 修正因子 智能权函数 模糊控制 仿真人工智能算法 篇3
关键词:人工智能算法;电气自动化控制;应用
0 引言
电气自动化是一门新兴学科,其主要研究领域是计算机应用、信息处理、系统运行、电气工程自动控制等等。在自动化控制中應用人工智能算法,能够极大地提高电气自动化的运行效率,降低运行成本,提高电气自动化的准确率。本文对人工智能算法及其特点进行了简要的介绍,并分析了人工智能算法在自动化控制中的应用。
1 人工智能算法及其特点
1.1 人工智能算法
作为一门边缘性学科,人工智能算法也被称为机器智能。主要是通过智能机器来模拟人类的智能反应,融合了社会科学和自然科学。人工智能算法涵盖了计算机科学、数学、哲学、认知科学的理念,主要在语言和图像理解、遗传编程、机器人等领域进行应用[1]。
1.2 人工智能算法的特点
①人工智能算法具有可靠性。人工智能算法的可靠性表现在其结合了高端智能电器数字化应用系统,无需使用其他的传统设备。这样一来可以更加便利的操作电力系统,使电力系统的控制效率和精度得到提高,有利于现代企业的发展,提高工业生产效率和安全性。
②人工智能算法在进行电气设计时,不需要详细的了解控制对象的实际动态、非线性和参数变化。
③智能化的人工控制器与驱动器不存在直接关系,具有较强的一致性,能够有效地提高预测结果的准确性。
④使用人工智能算法对控制器进行设计能够有效地提高其抗干扰能力和信息、数据的适应性,使修改和扩展更加便利。
2 人工智能算法在电气自动化控制中的应用
2.1 设计电气产品
使用人工智能算法进行电气产品的设计有利于提高设计方案的科学性和合理性,缩短产品开发周期,具有较高的可能性和准确性。引进人工智能算法和CAD技术,能够有效的提高电气产品的质量和设计效率。
2.2 发挥人工智能算法的控制功能
第一,人工智能算法可以自动采集和处理数据信息,实时采集全部的开关量和模拟量,并对其进行存储。第二,可以通过模拟画面来反映系统设备的运行状况,生成相应的趋势图。第三,通过应用专家系统可以便利地完成运行曲线、数据存储、报表生成等操作功能。第四,人工智能算法可以进行模拟量的故障录波、顺序记录、波形捕捉和开关量变位。可以便利地控制断路器和电动隔离开关,调整励磁电流。第五,人工智能算法可以实现负序量计算、不对称的运行分析和在线分析。最后,人工智能算法可以实现有效的运行监控,对故障和事故进行自动报警和记录[2]。
3 人工智能算法的自动化控制中的实践
3.1 在电气设备的设计中运用人工智能算法
电气设备的设计工作要涉及到电子技术、电磁场、变压器、电力技术、电路等方面的知识,对设计者的专业知识水平和实践经验具有较高的要求,需要投入一定的物力、财力和人力。然而使用人工智能算法进行电气设备的设计,可以迅速地解决繁琐的计算和模拟过程,极大的提高了设计的效率、准确性和精度。
要立足于实际情况,结合各种人工智能算法对电气设备进行科学的设计。在开发性设计中还可以使用专家系统,在设计优化阶段可以使用遗传算法。在电气设备的设计中用人工智能算法对于设计人员的计算机水平有一定的要求,要求其能够熟练地使用人工智能软件,并具备一定的设计经验。
3.2 在电气设备控制中运用人工智能算法
在电气设备控制中用人工智能算法能够实现电气设备的自动化控制,从而对电气系统的运行效率和质量进行提升,同时减少了大量的财力、物力和人力投入。电气设备控制是一项关键的环节,人工智能算法等应用主要体现在模糊控制、专家系统控制和神经网络控制方面[3]。
一般情况下,模糊控制操作比较简单,与实际的联系比较紧密,应用的范围较广。模糊控制的电气传动控制中的应用主要包括直流传动中的应用和交流传动中的应用,能够取代PI控制器和PID控制器的作用。与此同时在高动态全数字的传动系统中可以应用模糊神经控制器。
3.3 在电力系统中运用人工智能算法
人工智能算法在电力系统中的应用主要包括以下几个方面:模糊集理论、启发式搜索、专家系统和神经网络。专家系统的程序比较复杂,集合了大量的专业规则、经验和知识,能够运用专家的经验来进行判断和推理,模拟专家的决策方法、过程和模式,从而解决需要专家进行分析决策的问题。专家系统的主要组成部分有咨询解释、人机接口、推理机、知识获取、知识库、数据库等。要根据实际情况不断更新专家系统的知识库和规则库。
在电力系统中广泛地应用了多种神经网络和训练算法,具有非常灵活的储存方式、学习方式和分布方式,能够处理大规模的信息,并且具有复杂状态的分类功能和识别功能。神经系统能够迅速的分类样本和模型,构建周预测模型和日预测模型。在复杂的电力系统中,往往综合使用元件的关联性分析和人工神经网络来进行故障诊断。
4 结语
本文简要介绍了人工智能算法及其特点,随着科技的不断发展和进步,未来的生产和发展必然要将人工智能算法作为一个重要的发展方向。在电气自动化控制中应用人工智能算法能够使自动化的控制效率、准确度得到有效的提高,节约大量的人力、物力和财力。人工智能算法在自动化控制中具有广泛的应用前景,必将发挥更大的作用。
参考文献:
[1]刘宗保.人工智能技术在电气自动化中的应用[J].科技促进发展(应用版),2011(12).
[2]贾刚,张萌.浅谈电气自动化控制中的人工智能技术[J].中小企业管理与科技(下旬刊),2011(09).
基于人工智能的自动排课算法 篇4
班级课程表模型:每周五天, 每天六节课, 每两节课连在一起上一门课, 1至15表示节次;星期一下午固定为班会课, 1至15用来将节次数字化, 见表1。
每周为28节课需要排, 设排4个班, 每个班开四门课, 而且由四个老师来上课, 即每个老师全排满课的情况下来排课, 实际中这种情况是极少, 教师不可能所有的时间都在上课。班级为A, B, C, D;教师为a, b, c, d;教师a授a1, b授b1, c授c1, d授d1课程具体的节数分配见表2。
2 排课算法
(1) 数据初始化工作;
(2) 设置好每一位教师每天上课可排的节数;
(3) 设置好班级每天可排课的节数;
(4) 按班级为单位排好记录;
(5) 读入一条记录;
(6) 计算记录科目的次数;
(7) 按以下算法将其填入班级课表中, 并在教师课表中, 并在班级次当天可用课次数和教师当天可用课次数中减1;
(8) 先按班级和教师中的可用节次对首先要排课的周次进行排序, 按由大到小排序, 即保证每次排课都是班级中最少课的周次, 和教师上课最少课的天;
(9) 对于 (1) 中找出的周次进行具体的节次进行转换, 由于是最空课的周次, 因此肯定有空的节次;
(10) 对应班级表中的节次i位置是否为空, Y则转到 (11) , N则转到 (9) ;
(11) 对应教师标志位是否为空, Y转到 (12) , N转到 (9) ;
(12) 在班级课程表和教师课程表中填入课程, 班级和教师中的可用节次相应减1, k=k-1;
(13) k=0GY则转到 (5) , N则进入 (8) ;
(14) 如果产生冲突, 记录下产生冲突的教师, 并设置一个优先值, 则回到 (4) 对当前班级进行重排, 重排时先排这个发生冲突的教师, 当然要恢复排之前的数据。
3 程序实现
3.1 排课所用的数据库结构
排课的过程中采用了大量对表格的操作, 所有的操作都用一个数据库中的表格来操作;数据库中的表有如下几个表:Gbxx (用来录入教师上课的基本信息) 、Bjkcb (用来存放排好的班级课程) 、Bzxx (用来存放排好的教师课程) 、Bgtian Bzxx (用来标志班级中那天空课的节次) 、JstianShangke Cs (用来标教师中可排的空课节次) 、Px (用来对周次进行排序, 即按班级空课次数和教师空课次数来排序) 。
3.2 产生排课班级节次冲突的处理方式
对于具体班级节次的冲突, 采用了在班级当天排课中随机产生当天节次的方式来处理冲突, 班级每次排课的周次都是最空的周次所以肯定会有一节课可用的, 从 (10) 和 (11) 跳转到 (9) 。由于 (9) 中的周次每天所对应的节次最多为3, 因此采用随机的方式来遍历, 在程序中使用一个计数器, 设置值为50次, 也就说3次节次在50次随机数中肯定都会出现。
3.3产生排课教师节次冲突的处理方式
当教师发生冲突时给发生冲突的教师一个优先值, 这里采用回塑算法, 即清除这个班的所有所排的课程, 重新排这个班的课, 重排时与前面有一点不同是, 按优先值的高低来进行排序。
4排出的结果
设计的软件不但对于模型能很好地排出结果, 而且对于上百个教师的课程进行排课设计也能很快地排出较满意的结果, 见表3。
参考文献
基于回溯算法的智能排课系统 篇5
【关键词】回溯法;数学模型;排课算法
一、引言
排课问题,从一般意义上说,就是在给定教师和教室资源、学生人数和开课计划的前提下,合理为课程安排时间与地点的问题。对于规模较小,教师、教室、学生人数不多的情况下,进行人工排课还较顺利,但对于规模较大,复杂的排课问题(如高等院校),进行人工排课,则费时费力,其科学合理性更是无法保证,计算机技术的普及给排课问题搭建了一个平台,用计算机进行排课已经势在必行。本文充分利用回溯算法的特点,给出了利用计算机进行排课的有效求解方法。
二、回溯算法
回溯法是一种选优搜索法。按选择最优解的条件向前搜索,以达到目的。但每当搜索到某一步时,发现其达不到预期的效果,就退回一步重新选择。这种行不通就退回再搜索的技术称为回溯法。
回溯法就其算法的逻辑思路可表示为一棵树,根结点是初始状态,每搜索到一个结点都有若干个可供选择的后继结点,没有任何能达到到目标的暗示,只有走着瞧,不行了就回溯到上一层结点,恢复原来刚使用过的参数,再走另一条路径,所以回溯法其本质是穷举与试探,找到从根结点到叶子结点中所有的正确结果。基于回溯算法的许多优点,其应用范围也较为广泛。
三、排课问题中的约束条件及数学模型
排课问题的关键就是为了解决课程安排对时间和空间资源的有效利用并避免相互冲突。排课的优化目标就是使得各类冲突为零,并且尽可能满足教师、学生的要求,达到较好的教学效果。这就要求在实际排课过程中,需要考虑到教师、学生、班级、教室、教室的大小、实验设备等方面的问题。要满足班级、教师、教室上课不冲突;教室的座位应该满足上课班级学生的需要等等。所以对排课问题的基本约束条件如下:
1.同一时间,同一个教师,同一个学生,同一个教室不允许同时上一门以上课程;
2.教室必须有足够的座位容纳学生;
3.某些课程需要安排在特定的教室;
4.对于需要试验设备的课程,教室需要有相应的配套设备。比如生化课需要生化仪器。
通过对排课问题约束条件的分析,可以看到排课问题实际上是将某种定量资源分配给不同的需求个体,并同时满足一定的约束条件,因此其数学模型可概括为一个资源分配模型,该数学模型的几个要素:
1.需求集。其集合中的元素就是需要安排时间、教室与教师的课程,其特征有课程名称,上课人数,授课教师等等。
2.资源集。上课时间集合与教室集合就是两个最根本的资源集。对于时间资源集中的元素,时间序数就是唯一也是最基本的特征。而教室资源集中的元素,可以有教室大小(座位数)、教室用途等多种特征。
3.约束条件群。需求集中的元素特征与资源集中的元素特征相互作用形成的数学关系,构成了约束条件群。根据不同特征的性质,可以将约束条件分为两类:
映射约束。映射约束是一个Z[M,N]的矩阵,其中M是需求集中的元素个数,N是资源集中的元素个数,矩阵元素值是将资源元素i分配该需求元素j的满意度,是一个权值。由于在排课问题中,资源具有独占性,不可再分配,故应有M 软约束。需求集中的元素特征与资源集中的元素特征形成的多维,不定型约束。 4.解集,其形式为符合约束条件的一组解,实质就是需求集与资源集之间的对应关系,称为分配向量。 四、排课算法 排课系统中,选优条件即为排课数学模型中的约束条件群。换而言之,若不满足约束条件群,该选择即为不优或达不到目标。当遍历该步骤的所有可能仍未满足约束条件群,则该状态满足了回溯条件,该状态点即为回溯点。 具体的排课算法如下: 1.建立资源集合Y[N],并进行排序; 2.建立需求集合X[M],并进行排序; 3.建立映射约束矩阵Z[M,N],若元素值假定为0或1,则满意度为一个二元选择; 4.定义变量i=1;j=1; 5.为分配,其中,(i<=M,j<=N); 6.检查是否满足约束(包括映射约束条件群和软约束条件群); 7.若不满足,则为其分配Y中的第j+l个元素; 8.若Y中所有资源都被分配过,仍不满足约束条件群,则此状态作为回溯点,重新为X中第i-1元素分配资源(将i减1,回到第5步); 9.分配X中下一个元素(将i加1,回到第5步)。以此下去,直至X中所有元素均合理分配。 五、结束语 本文在回溯算法的基础上设计实现了智能排课系统,从排课的结果分析得出所编排的课程表满足排课原则,有效解决冲突问题,课时安排比较均匀。但对实际排课中的一些模糊因素,其更规范的数学描述有待研究。算法的性能有待于进一步提高。 参考文献 [1]吴志斌,陈淑珍等.回溯算法与计算机智能排课[J].计算机工程,1999,25(3):79-80. [2]夏小云,高武军.基于遗传算法的高校智能排课系统[J].人工智能及识别技术,2008,4(1):175-177. [3]王健,董改芳,许道云.自动排课系统的模型与实现[J].贵州大学学报:自然科学版,2004,21(2):34-36. 在工程技术和科学计算中,经常会遇到求解数值积分∫ 1 人工鱼群算法 1.1 基本人工鱼群算法 在一片水域中,鱼往往能自行或尾随其它鱼找到营养物质多的地方,因而鱼生存数目最多的地方一般就是本水域中营养物质最多的地方。人工鱼群算法AFSA(Artificial Fish-school Algorithm)[3]就是根据鱼群上述特点提出的一种新型仿生优化算法,通过构造人工鱼来模仿鱼群的觅食、聚群、追尾及随机行为,从而实现寻优,是群体智能思想[4]的一个具体应用。它的主要特点是不需要了解问题的特殊信息,只需要对问题进行优劣的比较,通过各人工鱼个体的局部寻优行为,最终使全局最优值突现出来。作为一种新型的全局寻优策略,它已应用于时变系统的在线辩识、鲁棒PID的参数整定和优化前向神经网络中,取得了较好的效果。 然而随着优化问题的复杂性,基本AFSA在应用中也存在不足:当寻优的空间维数高或区域较大或处于变化平坦的区域时收敛于全局最优解的速度减慢,搜索性能劣化,甚至会陷入局部极小;算法一般在优化初期收敛快,后期却往往较慢;得到的解是满意解,精度不高。因此在具体应用中常常要对它进行改进。 1.2 柯西变异人工鱼群算法 Gunter[5]通过理论分析表明柯西变异算子具有较强的局部逃逸能力。为了增强人工鱼群算法在高维复杂环境下的全局搜索能力和提高搜索效率,本文在基本人工鱼群算法中引入柯西变异算子来对人工鱼的状态Xi=(xi1,xi2,...,xin)进行变异,定义如下: X′i=Xi·[1+k·Cauchy(0,1)] (1) 其中Cauchy(0,1)的一维概率密度函数为 设ξ是[0, 1]上的服从均匀分布的随机变量,由随机变量生成函数定理[6],Cauchy(0,1)的柯西分布的随机变量生成函数为 η=tan[(ξ-0.5)π]。 为判断随迭代次数增加搜索结果是否有改进,种群迭代后将种群中最优鱼的状态的函数值与公告板[7]进行比较,如果优于公告板,则取代公告板状态。当在连续两次迭代过程中公告板没有改变或变化极小时,此时我们看作鱼群迭代停滞,则启用变异操作。此算法CMAFSA(Artificial Fish-school Algorithm Based on Cauchy Mutation)流程如下: Step1 初始化群体:在控制变量可行域内随机生成Np条人工鱼,形成初始鱼群。 Step2 公告板赋初值:计算初始鱼群各人工鱼当前状态的函数值y,取y为最小值者进入公告板,并将此鱼位置状态也赋值给公告板。 Step3 行为选择:各人工鱼分别模拟追尾行为和聚群行为,评价行动后的值,选择y值较小的行为实际执行,缺省行为方式为觅食行为。 Step4 公告板更新:种群迭代后,如果种群最优鱼状态的y优于公告板的y,则更新公告板。 Step5 变异条件判断:若公告板在连续两次迭代过程没有改变或变化极小(<η),则执行Step6;否则执行Step7。 Step6 变异操作:用历史最优鱼替换当前群体的最差鱼形成中间种群,对中间种群的人工鱼按式(1)变异,计算变异后各状态的函数值与公告板比较,若优,更新公告板。 Step7 终止条件判断:判断是否已达到预置的最大迭代次数MaxIteration或判断最优值是否达到了满意的误差界内(<ε),若不满足,执行Step3,进行下一代鱼群优化过程;否则执行Step8。 Step8 算法终止:输出最优解(即公告板中人工鱼状态和函数值)。 1.3 CMAFSA性能测试 本文用一个典型的高维(30维)、多峰函数Ackley来测试CMAFSA的性能。算法参数设置如下:Np=100,Try_number=30,δ=0.618, η=10-4,最大迭代次数200次, Visual=5,Step=0.5。独立测试5次(随机生成5个初始群体分别用AFSA和CMAFSA运行), 运行结果如表1和图1(为了便于比较, 图中纵坐标是5次的每代最优值的平均值的常用对数)所示。 从表1和图1可以看出AFSA在优化高维、多峰问题时效果很差,而CMAFSA的精度、收敛速度、稳定性有了非常明显的提高,实际上5次实验中CMAFSA最差的一次是在第114(从图1也可看出)代达到了理论最优值。 2基于人工鱼群算法的优化分割数值积分算法 在数值积分 Step1 确定人工鱼个体的表达式:Xi=(x1,x2,...,xn),其中xi为积分区间[a,b]内的随机n个节点。 Step2 鱼群初始化:在[a,b]内随机生成Np条人工鱼, 形成初始鱼群。实际上就是在[a,b]上产生Np个随机分割。 Step3 公告板赋初值:计算初始鱼群各人工鱼当前状态的函数值y,取y为最小值者进入公告板,并将此鱼位置状态也赋值给公告板。其中函数值是这样计算的:将人工鱼的状态值置于积分区间的左端点和右端点之间,各自按照升序排好顺序。这样,积分区间[a,b]总共有n+2个节点和n+1个小区间,然后分别计算这n+2个节点相邻节点之间的长度Δxi,i=1, 2, …,n+1。再计算出这n+2个节点对应的函数值和每个小区间中点的函数值。找出每个小区间左端点、中点和右端点的函数值中的最小值wi和最大值Wi,i=1,2,…,n+1,则该个体所对应的函数值 Step4 行为选择:各人工鱼分别模拟追尾行为和聚群行为,评价行动后的值,选择y值较小的行为实际执行,缺省行为方式为觅食行为。 Step5 公告板更新:种群迭代后,如果种群最优鱼状态的y优于公告板的y,则更新公告板。 Step6 变异条件判断:若公告板在连续两次迭代过程没有改变或变化极小(<η),则执行Step7;否则执行Step8。 Step7 变异操作:用历史最优鱼替换当前群体的最差鱼形成中间种群,对中间种群的人工鱼按式(1)变异,计算变异后各状态的函数值与公告板比较,若优,更新公告板。 Step8 鱼群算法终止条件判断:判断是否已达到预置的最大迭代次数MaxIteration或判断y的最优值是否达到了满意的误差界内(<ε),若不满足,执行Step4,进行下一代鱼群优化过程;否则执行Step9。 Step9 得到最优人工鱼个体状态(xbest1,xbest2,...,xbestn),这n个数同a,b一起排序,从而得到最优分割。 Step10 输出积分 3 积分仿真实验与分析 为了检验本文提出的数值积分算法的有效性和正确性,本文给出的一些实例,以下仿真均在Matlab 7.0下编程运行。参数设置如下:Np=50,Try_number=20,δ=0.618, η=10-4,ε=10-4,最大迭代次数200次,Visual=0.1,Step=0.01, n=100。每个函数独立运行5次,并与传统的梯形法、Simpson方法、Composite Simpson方法、Romberg方法和神经网络等比较。 例1 分别计算被积函数 由表2看出传统方法中只有Simpson法在求解函数x2时的结果优外,其他的在这6个函数上效果都不好,而本文的算法对每个函数均独立运行5次皆是精确值,可见精度高且很稳定。 例2 计算积分: ∫ 被积函数的原函数不是初等函数,本文算法(参数设置同前)5次运算与文献[9]分别用矩形法、梯形法、Simpson法给出结果统计如表3所示。 由表3看出对于被积函数的原函数不是初等函数的函数,本文的算法也是相当有效的。 例3 计算积分: 用传统的方法Romberg比较麻烦,不易处理,文献[9]用神经网络算法得到的结果是58.5205,文献[10]用Composite Simpson rule计算的结果是58.47082,而此积分的精确值是58.4704691。由于此被积函数是一个以π为周期的函数,48=15π+(48-15π),此积分可化为: 用本文的算法(参数设置同前)运行5次求得的积分值的最差值是58.47046674929646,最佳值是58.47046909676099,平均值是58.47046871265326,由此看出对于Romberg方法不易处理的函数积分,本文的算法也是很优的。 例4 计算奇异函数: 在[0,3]上的积分该函数的积分精确值是1.546036,文献[9]用神经网络算法算得的结果是1.5467。用本文的算法(参数设置同前)运行5次求得的积分值的最差值是1.54554025335573,最佳值是1.54606116448507,平均值是1.54600370898978,可见本文算法也可求解奇异函数的积分。 4 结 论 本文在分析传统数值积分和人工鱼群算法的基础上提出了一种求解定积分数值解的新算法,此算法对被积函数没有太多的限制,通过四组积分算例实验表明此方法十分有效,此方法可以看作是传统方法的补充和拓展。在优化区间的每一段上如何再处理以及用此算法计算重积分是我们下一段要做的工作。 摘要:在分析传统求数值积分和基本人工鱼群算法不足的基础上,提出了一种基于人工鱼群算法的优化分割数值积分算法,该算法不仅能求解通常意义下函数的数值积分,还能计算奇异函数的数值积分。通过算例与传统数值积分方法比较,实验结果表明该算法是可行的和有效的。 关键词:人工鱼群算法,柯西变异,优化分割,数值积分 参考文献 [1]华东师范大学数学系.数学分析[M].北京:高等教育出版社,2001. [2]薛密.数值数学和计算[M].上海:复旦大学出版社,1991. [3]李晓磊,邵之江,钱积新.一种基于动物自治体的寻优模式:鱼群算法[J].系统工程理论与实践,2002,22(11):32-38. [4]Bonabeau E,Theraulaz G.SwarmSmarts[J].Scientific American,2000,282(3):72-79. [5]Gunter R.Local convergence rates of simple evolutionary algorithms withCauchy mutation[J].IEEE Transactions on Evolutionary computation,1997,4(1):249-258. [6]王梓坤.概率论基础及其应用[M].北京:科技出版社,1979. [7]李晓磊,路飞,田国会,等.组合优化问题的人工鱼群算法应用[J].山东大学学报:工学版,2004,34(5):64-67. [8]Burden R L,Faires J D.Numerical Analysis[M].7th Edition.Brooks/Cole,Thomson Learning,Inc,2001:190. [9]王小华,何怡刚,曾喆昭.三角基函数神经网络算法在数值积分中的应用[J].电子与信息学报,2004,26(3). 自20世纪70年代起, 到现今受注目的工业4.0, 渐渐引入计算机控制自动化机器人来取代人力, 而军事及救灾方面的机器人更是功能繁多, 拥有如排雷、攻击、搜救等诸多用途。在科技发展越来越先进的今天, 精细、粗重、繁琐、危险及任何人体不适合的作业大都由机器完成, 机器人已在生活中占有重要的地位。 机器人可模仿人类的行为, 重要目的是代替人类执行某些动作, 而其常见的行为流程可以分为下列3个步骤: (1) 实时感知所处环境的情境及限制; (2) 依据感知所获的信息, 进行任务分析及规划执行内容; (3) 完成任务, 尤其是交由实体执行动作。 而如何让机器人将获取的环境信息进行分析及规划则是研究的核心内容, 至今也有许多研究成果发表, 其中机器人路径规划是具代表性的问题之一。 在完成环境探索后, 运用最低的成本, 使系统能在两点间反复行动就显得十分重要, 如灾后救援物资的往返运送。人工智能路径规划法是适用于此类研究的方法之一。 不同于以往传统数学逻辑或程序性的算法, 人工智能路径规划法不需花大量时间求解不确定、非线性多项式 (Nondeterministic Polynomial, NP) 问题, 转而模拟生物演化或生存方式, 设计出许多不同求解方式的仿生算法, 通常能在可接受的时间内得到最佳解或是较佳解。 目前在路径规划方面常见的启发式算法有, A*算法 (A-star Algorithm) 、基因算法 (Genetic Algorithm, GA) 与蚂蚁算法 (Ant System, AS) 算法等。其中可以将蚁群算法AS应用于仿生机器人行动规划的设计。 蚁群算法是模仿自然界蚂蚁的觅食行为, 而发展出来的启发式算法, 是Dorigo于1996年提出的。其在复杂、信息不完整的优化问题上有良好的表现。 2 仿生机器人行动的设计 机器人在路经规划初期并不知道环境的全貌, 透过自身传感器逐步搜集完整环境信息。因此, 本研究建立在环境全貌已逐步搜集完成以及系统定位与障碍物回避皆已有效解决的前提下。仿真环境对照组以一个静态地图作为所搜集的环境全貌。由DACS算法规划的结果如图1所示。 本研究设计于对照组执行路径规划至第二次迭代时, 使环境分别产生节点移动、节点增加、节点消失及目标变换等变化, 以此仿真动态环境。因实际情况中, 传感器测量距离能力有限, 故在实验中设两节点距离若超出10 unit无法侦测, 将判定为不可行走的路径。测试档内部各个节点均以平面坐标表示, 并分别标上nn0~nn31等编号以便于识别, 若两节点间蚂蚁经过的次数越多则线段越粗, 蚂蚁经过的次数越少则线段越细。nnmm (xx, yy) 括号中x、y为平面坐标x及y值, pp{nnmm1, nnmm2, …, nnmmmm}代表一路径, d{nnmm1, nnmm2}代表nnmm1及nnmm2的直线距离。 此实验欲证实地图中的节点若发生移动, 则DACS算法仍可正常运作。实验中起点为节点nn0 (0, 0) , 终点为节点nn31 (37, 26) 。如图1所示, d{nn10, nn16}为12.8 unit, d{nn11, nn16}为11.66 unit, 两者路径长度均超出10 unit检测范围, 按照实验设定均判定为可行路径。图1中行经节点nn10及节点nn11时, 因为判定为不可行路径而不经过节点nn16, 改走其他路径。图1则因nn16'的位置是前进方向上距离最短、机率提升的快捷方式, 使的蚂蚁经过节点nn16'次数增加。 依据DACS算法的仿真, 可以得知机器人需装载感测模块以获取环境信息, 并将环境信息交由运算及控制平台进行运算, 并将DACS算法运算的结果, 由移动模块输出, 并由传输模块进行监控及记录。 将DACS算法仿真流程结合机器人功能方块, 可以得到机器人功能程序。输入环境参数的步骤, 即为机器人获取环境信息的功能, 以此为开端进行路径规划。获取环境信息的步骤, 本研究称为Scan () 。函数Scan () 中包含了两个子函数myservo.write () 及distance_vois () 。myservo.write () 会依据所输入的数值, 驱动伺服马达转动至指定的角度;distance_vois () 则是利用超音波传感器感测该角度的距离, 因此, 通过函数Scan () 可以得知环境中的角度及距离信息, 此结果将作为启发值进行后续运用。 取得环境信息后, 送至运算及控制平台函数Select () 运算。函数Select () 中包含了projection () 、pheromones_update () 及random () 三个子函数。projection () 是计算到下一节点的向量在前进方向上的投影量, 再将此结果当成启发值。pheromones_update () 是计算费洛蒙值及更新费洛蒙值, 通过启发值及费洛蒙值可得选择该节点的机率值。random () 为Arduino的链接库内建之函数, 利用Arduino Uno开发板未连接的任意模拟脚位之噪声来当随机数种子, 此函数用于产生一随机随机数, 藉此来选择下一路径。 地图中有两条不同长度的路径A及路径B, 在实验中让机器人从起点至终点连续行走5次, 以验证机器人经过多次路径规划后, 可否因为前次经验而缩短抵达终点时间, 实验数据如表1所示, 实际行走状况如图2所示。 人工智能算法 篇6
人工智能算法 篇7
从表1可以看出机器人随着行走次数增加逐渐适应环境, 因此, 所耗费的时间缩短, 证明机器人具有依循前次经验的能力得以适应环境。
3 结语
本研究设计动态实验, 利用节点移动、消失、增加及目标变换来仿真现实环境的动态变化, 实验结果显示DACS算法不仅能依照环境的变动调整规划的路径, 也具有跳出区域解的能力, 展现了在动态环境下的存活力。本研究将DACS算法与ACS算法进行500次仿真实验, 结果显示DACS算法较ACS算法的平均最佳路径距离短46.5%、平均迭代次数少28.5%、平均时间少63.8%, 明显较ACS具适应力优势。
参考文献
[1]J Canny.The Complexity of Robot Motion Planning[M].Boston:MIT Press, 1987.
[2]C Hofner, GK Schmidt.Path Planning and Guidance Techniques for an Autonomous Mobile Cleaning Robot[J].IEEE Intelligent Robots and Systems, 1994:610-617.
人工免疫算法综述 篇8
从信息处理的观点看, 免疫系统是与遗传系统、神经系统并列的人体三大信息系统之一。人类从免疫系统中不断获得新的启示并创造出越来越多智能方法, 人工免疫算法就是其中的一种方法。在人工免疫算法中, 被求解的问题视为抗原, 抗体则对应于问题的解, 改进的人工免疫算法与GA相似, 人工免疫算法也是从随机生成的初始解群出发, 采用复制、交叉、变异等算子进行操作, 产生比父代优越的子代, 这样循环执行, 逐渐逼近最优解。不同的是人工免疫算法的复制算子模拟了免疫系统基于浓度的抗体繁殖策略, 出色地保持了解群 (对应于免疫系统中的抗体) 的多样性, 从而克服了GA解群多样性保持能力不足的缺点。
1 人工免疫算法
人工免疫算法将抗原和抗体分别对应于优化问题的目标函数和可行解。把抗体和抗原的亲和力视为可行解与目标函数的匹配程度:用抗体之间的亲和力保证可行解的多样性, 通过计算抗体期望生存率来促进较优抗体的遗传和变异, 用记忆细胞单元保存择优后的可行解来抑制相似可行解的继续产生并加速搜索到全局最优解, 同时, 当相似问题再次出现时, 能较快产生适应该问题的较优解甚至最优解。人工免疫算法的基本步骤如下:
(1) 问题识别。根据给定的目标函数和约束条件作为算法的抗原。
(2) 产生抗体群。初始抗体群通常是在解空间用随机的方法产生的, 抗体群采用二进制编码来表示。
(3) 计算抗体适应值。即计算抗原和抗体的亲和度。
(4) 生成免疫记忆细胞。将适应值较大的抗体作为记忆细胞加以保留。
(5) 抗体的选择 (促进和抑制) 。计算当前抗体群中适应值相近的抗体浓度, 浓度高的则减小该个体的选择概率—抑制;反之, 则增加该个体的选择概率—促进, 以此保持群体中个体的多样性。
(6) 抗体的演变。进行交叉和变异操作, 产生新抗体群。
(7) 抗体群更新。用记忆细胞中适应值高的个体代替抗体群中适应值低的个体, 形成下一代抗体群。
(8) 终止。一旦算法满足终止条件则结束算法。否则转到 (3) 重复执行。人工免疫算法基本流程如图1所示。
2 人工免疫算法的改进
2.1 基于信息嫡的人工免疫算法
标准人工免疫算法由于其采用了信息嫡的概念来描述抗体的多样性, 故也称作基于信息嫡的人工免疫算法。其特点如下: (1) 采用信息嫡作为评价抗体群的相似度, 较容易地与生物免疫系统中的抗体相对应, 更能够客观地反应其含义; (2) 采用基于浓度的选择机制, 既鼓励适应度高的抗体 (解) , 又可抑制浓度高的抗体, 从而保证了算法的收敛性及抗体群体的多样性。
根据抗体群平均信息嫡的概念计算抗体亲合度和浓度的方法可知, 抗体群的所有抗体在同一基因座上的等位基因各不相同时, 抗体群的平均信息嫡最大, 抗体的亲和 (相似) 度最小;反之, 则亲和度较大。然而, 在优化计算中, 这种利用信息嫡的概念计算抗体 (即解) 亲和度和抗体浓度的方法存在一定的问题, 例如对于由抗体u={0111111111}和抗体v={1000000000}构成的抗体群, 其平均信息嫡H (2) 二0.693147, 表明抗体u和抗体v是两个很不相同的抗体。但是我们知道在优化计算中它们是两个很相近的解 (通过解码后) 。还比如:抗体u={0100000000}和抗体v={0011111111}等。由此, 可以看出基于信息嫡的人工免疫算法具有一定的缺陷。为了防止这种缺陷的发生, 提出了一种改进的基于欧氏距离求解抗体多样性的人工免疫算法。
2.2 基于欧氏距离的人工免疫算法
一种改进的基于欧氏距离的人工免疫算法, 采用欧氏距离代替信息嫡, 来反映抗体的多样性和计算抗体与抗体的亲和度。
基于欧氏距离的人工免疫算法的算法流程如图2所示。
两种算法性能比较结果如表1所示。
其中, 群体规模为N为30。算法运行一次是指算法从最初的随机产生群体到最后得出问题的解为止, 称作算法运行了一次, 在此规定算法重复执行的次数为40次, 而搜索代数是指在一次算法运行过程中产生新群体的代数为400代。所耗时间是算法运行40次所花费的总时间。同时在基于信息嫡的人工免疫算法中, 解抗体采用34位的二进制编码来表示, 即每个自变量由17位基因组成, 而在基于欧氏距离的人工免疫算法中, 解抗体采用10位十进制数编码来表示, 即每个自变量由5位基因组成, 这一方面能保证解的精度, 同时也能减少算法运行时间。
由表1可以看出, 在基于信息嫡的人工免疫算法中, 由于要计算每代抗体群中每个个体的信息嫡, 使得算法的速度大大减缓, 比改进了的基于欧氏距离的人工免疫算法在该算例实验中慢了几乎6.8倍。同时也可看出, 当求解问题中的自变量增加时, 信息嫡的计算量将呈爆炸式增长的, 这将极大地阻碍了基于信息嫡的人工免疫算法的搜索效率, 从而显现出基于欧氏距离的人工免疫算法的优点来。
参考文献
[1]罗小平.人工免疫遗传学习算法及工程应用研究[D].杭州:浙江大学博士论文, 2002.
群智能算法发展研究 篇9
群智能算法是近几十年发展起来的一类基于生物群体行为规律的全局概率搜索算法。这些算法将搜索空间中的每一个可行解视为生物个体, 解的搜索和优化过程视为个体的进化或觅食过程。生物个体适应环境的能力用来度量待求解问题的目标函数, 生物个体的进化或觅食过程用来模拟优化中较差的可行解被具有优势的可行解替代的迭代过程。下文将对几种典型的群智能算法进行简要的介绍。
2 典型群智能优化算法
2.1 蚁群算法
1991年意大利学者Dorigo M等受到自然界中蚁群觅食行为启发而提出了蚁群算法 (Ant Colony Optimization, ACO) 。
蚁群算法的思想是:在最短路径的找寻过程中, 每只蚂蚁只可以根据局部信息调整路径上的信息素, 一轮循环结束后, 采取全局信息对路径上的信息量再进行一次调整, 且只对寻优过程中发现的最好路径上的信息素进行加强。在蚁群算法中, 蚂蚁逐步地构造问题的可行解, 在解的构造期间, 每只蚂蚁使用概率方式向下一个节点跳转, 这个节点是具有较强信息素和较高启发式因子的方向, 直至无法进一步移动。此时, 蚂蚁所走路径对应于待求解问题的一个可行解。
蚁群算法目前已成功地用于解决旅行商TSP问题、数据挖掘、二次指派问题、网络路由优化、机器人路径规划、图着色、物流配送车辆调度、PID控制参数优化及无线传感器网络等问题。
2.2 粒子群算法
1995年美国的Kennedy等受鸟群捕食行为的启发而提出了粒子群算法 (Particle Swarm Optimization, PSO) 。
粒子群算法的思想是:将群体中的任一个个体, 即每个可行解, 视为D维搜索空间的一个有飞行方向和速度的粒子。所有的粒子都有一个被目标函数决定的适应值, 且记忆了自身曾经获得的最好位置及当前位置, 视为自身的飞行经验。同时每个粒子还知道整个群体所有粒子已获得的最优位置, 视为群体的飞行经验。在迭代过程中, 所有的粒子将不断地统计个体的飞行经验和整个群体的飞行经验, 以此动态调整本身飞行的方向和速度。在此过程中, 个体逐步迁移到较优的区域, 使群体最终搜索到问题的最优解。
粒子群算法的应用领域众多, 如模式识别与图像处理、工程应用、神经网络训练、模糊系统控制、化工系统处理、滤波器设计、仿人智能控制参数优化、数据聚类等。
2.3 人工鱼算法
2002年由我国的李晓磊等受鱼群运动行为的启发而提出了人工鱼群算法 (Artificial Fish-Swarm Algorithm, AFSA) 。
人工鱼群算法的思想是:将人工鱼随机地分布于解空间中, 解空间中包含着若干局部最优值和一个全局最优值。可将最优值视为食物的浓度, 而全局最优值为最大的食物浓度, 且人工鱼将移动聚集到食物浓度较大的区域, 通过移动策略来控制人工鱼个体的四种行为 (觅食、聚群、追尾和随机) , 用视野来限制个体的邻域, 用步长来控制个体探索的进度, 用拥挤度来控制群体的过度密集。寻优期间, 每次迭代执行完, 人工鱼都将对比自身状态和公告板状态, 如自身具有优势, 则更新公告板状态, 确保公告板为最优状态。
人工鱼群算法已在参数估计、组合优化、前向神经网络优化、电力系统无功优化、输电网规划、边坡稳定、非线性方程求解等方面得到应用, 且取得了较好的效果。
2.4 混合蛙跳算法
2003年Eusuff等人受青蛙觅食特征的启发而提出了混合蛙跳算法[4] (Shuffled Frog Leaping Algorithm, SFLA) 。
混合蛙跳算法的思想是:将青蛙个体随机地分布于解空间中, 每只青蛙表示解空间的一个解。在进化更新的过程中既有全局性的信息交流, 还有内部的信息交流。根据青蛙个体的适应度值的优劣进行排序和分组, 组内只有适应度最差的青蛙更新, 元进化并混合各组, 在各组一轮元进化后, 将组中的青蛙重新排序、分组并记录全局最优解, 之后再继续局部搜索的过程。青蛙更新的学习对象首先是组内最优, 其次是群体最优, 若两次都未能进步, 则随机初始化。
混合蛙跳算法已经应用于多个领域, 如水资源网络优化、数据聚类、桥面修复、风电场电力系统动态优化、装配线排序、流水车间调度、PID控制器参数调节等。
2.5 人工蜂算法
2005年由土耳其的Karaboga等受蜜蜂采蜜行为的启发而提出了人工蜂群算法 (Artificial Bee Colony, ABC) 。
人工蜂群算法的思想是:将虚拟蜜蜂群初始时随机分布在解空间中, 将食物源的位置抽象成解空间中的点 (可行解) 。通过三种蜜蜂对食物源位置 (解) 修正, 进行一次循环搜索过程。引领蜂通过对比附近食物源的花蜜量 (适应度) , 来对现有食物源位置 (解) 进行修正。如果新食物源的花蜜量 (适应度) 比现有的高, 那么引领蜂记忆新食物源 (解) , 放弃现有的。在引领蜂的搜索过程完成后, 它们通过跳舞与跟随蜂传递食物源信息。跟随蜂通过汇总和评估所有食物源信息, 计算出一个关于花蜜量的概率值, 通过比较概率选取食物源。跟随蜂也是根据贪婪选择策略来更新当前食物源的位置。利用侦察蜂来使得陷入局部搜索停滞的蜜蜂跳出。
人工蜂群算法已经应用于多个领域, 如车辆路径问题、人工神经网络训练、作业车间调度问题、数据聚类以及各类连续优化问题等。
2.6 萤火虫算法
2009年由剑桥大学的Xin-She Yang受萤火虫发光行为的启发而提出了萤火虫算法 (Firefly Algorithm, FA) 。
萤火虫算法的思想是:将萤火虫个体作为解随机地分布于解空间中。解的搜索和优化过程视为每只萤火虫的移动和吸引过程。个体所在位置的优劣用来度量所求问题目标函数。个体进化的过程用来模拟优化中较差的可行解被具有优势的可行解替代的迭代过程。萤火虫根据自身亮度和吸引度两个要素来更新自己的位置。萤火虫所在位置的目标值决定其能产生的荧光亮度, 所处位置 (目标值) 越好其亮度越高。萤火虫的亮度与吸引力成正比, 视线范围内, 亮度稍弱的萤火虫将被吸引, 朝着较亮萤火虫的方向移动, 以完成的位置进化。当亮度相同时, 萤火虫则随机地进行位置移动。萤火虫之间的距离与亮度和吸引度成反比, 也即距离越大, 亮度和吸引度越小。
目前萤火虫算法已应用在生产调度、路径规划、神经网络训练、天线阵列设计优化、图像处理、机械结构设计优化、负载经济均衡分配问题、复杂函数优化等方面。
3 结论
本文在简述群智能算法的基础上, 对近年来发展的几种典型的群智能算法的生物原理、算法思想和应用进行了阐述和研究, 为群智能算法的深入研究奠定了基础。
摘要:最优化技术的应用日渐广泛, 传统的优化方法对于解决复杂问题变得无能为力。群智能算法在这种背景下产生并迅速发展。目前已研究出许多种类的群智能优化算法, 包括蚁群、粒子群、人工鱼群、混合蛙跳、人工蜂、萤火虫算法等。本文主要介绍群智能算法的发展, 阐述上述典型算法产生的生物原理、算法思想和应用。
关键词:群智能算法,ACO,PSO,AFSA,SFLA,ABC,FA
参考文献
[1]Colomi A, Dorigo M, Maniezzo V.The Ant System:An autocatalytic optimization process, Technical Report 91-016, Dept.of Electronics, Politecnicco di Milano, Italy, 1991.
[2]Kennedy J, Eberhart RC.Particle swarm optimization[C].IEEE International Conference on Neural Networks, Perth, Piscataway, NJ, Australia:IEEE Service Center, 1995, 1942-1948.
[3]李晓磊, 邵之江, 钱积新.一种基于动物自治体的寻优模式:鱼群算法[J].系统工程理论与实践, 2002, 11, 32-38.
[4]Eusuff, M.M., Lansey.K.E.Optimization of Water Distribution Network Design Using the Shuffled Frog Leaping Algorithm[J].Water Resources Planning and Management, 2003, 129 (3) :210-225.
[5]Karaboga D.An Idea Based On Honey Bee Swarm for Numerical Optimization[R].Erciyes Uiversity, Technical Report:TR06, 2005.
人工智能算法 篇10
关键词:智能排课遗传算法排课变量
1.引言
近几年,随着高校教育走向大众化,学生人数急速上升,这无疑加大了排课工作的难度,而课表安排又是教务管理工作中最基础的部分。因此自动排课系统是高校教务管理系统的一个重要组成部分,自动排课系统的应用,使得管理人员可以及时掌握学生的排课情况,进一步优化指导学校的教学资源,在一定程度上提高了高校教学管理人员的工作效率及教学质量。
2.背景
随着计算机网络技术的发展和教育信息化的不断推进,信息技术和计算机网络技术对教学和管理的各个方面都产生了很深的影响。教学计划的实施是高校日常教学管理工作中最重要也是最基本的一个环节。而课程表的制定则是教学计划实施的一个根本条件,是整个教学管理工作实施的基础,对教学计划的实施与教学培养计划的落实起着至关重要的作用,在此基础上对教育教学进行科学统一的组织和管理,有助于充分整合及利用各种资源。一张好的课表不仅能给授课教师带来工作上面的便利,而且也能为学生创造好的学习环境,提高学习效率。编制课表目的在于使整个教学过程能够有计划有秩序地进行,这在高校的教务管理工作中是一项耗时巨大的工程。而这项排课工作的复杂程度与学校的规模有很大的关系,学校的规模越大,当然排课工作的复杂程度就会越高。近几年,随着高校教育走向大众化,学生人数急速上升,这无疑加大了排课工作的难度,而课表安排是又教务管理工作中最基础的部分,因此如何设计一个好的排课系统,如何把教务管理人员从复杂的排课工作中抽离出来,是每一位教务工作人员和软件开发者的希望,也是当前迫切需要解决的一个问题。
因此,自动化排课系统的广泛应用必然成为大势所趋。排课系统是高校教务管理系统的一个重要组成部分,自动排课系统的应用,使得管理人员可以及其掌握学生的排课情况,进一步优化指导学校的教学,操作方便、灵活高效。自动化排课系统实现了整个排课流程的自动化,同时还解决了多种角色以及各个部门之间的协作关系。因此自动化排课系统的应用,在一定程度上提高了高校教学管理人员的工作效率及教学质量。
3.遗传算法
1.原理
遗传算法(Genetic Algorithms,GA)通过模拟自然界的生物进化过程来寻求问题的最优解,它借鉴了生物界的自然选择机制。遗传算法被较多的用于解决排课问题,同时很多学者热衷于对它的改进与优化,从而出现了诸多基于遗传算法的排课算法。
2.遗传算法流程如下:
1)进行染色体编码;
2)随机产生初始种群,数量根据实际情况事先定义;
3)计算所有个体进行适应度函数值的计算,若某个个体适应度值已满足最优化的要求,则输出该个体及其优化解,并结束当前计算,否则转到第4)步;
4)依据适应度值的大小,从所有个体中选取出那些适应能力较强的个体成为再生个体;
5)依据预先定义的交叉概率及方法产生出新的个体;
6)依据预先定义的变异概率及方法产生出新的个体;
7)由以上两个步骤中的交叉、变异操作产生新一代种群,并返回到第3)步。
4.排课系统设计
4.1排课管理部分
包括智能排课和排课结果查询两个功能。确定专业和年级后,启动自动排课功能,即可完成自动排课功能。排课结果查询即是对前面已排好的课表,在指定了专业和年级以后进行查询。
4.2数据库设计
排课系统依赖的基本信息包括课程、教室、教师、班级等资源,求解目标即满足要求的课表安排。数据库是上述信息的载体。利用关系型数据库系统进行系统的开发,需要首先完成概念结构的设计。概念结构反映了现实世界中实体之间的联系。
4.3排课问题变量
1. 时间变量
排课时重点要注意的是时间段的划分,一般高校安排周一至周五
为课程工作日, 一天可以安排8节课(上午4节, 下午4节),上课方式一般为两节连上,一个课次为两个相邻的小节课。所以以一个课次为一个时间段,一天可以划分为4个时间段。按一周五天计算,一周可以划分为20个时间段。但是,并非20个时间段里面每一个时间段都适合排课,并且有的课程对时间可能还会有一定的要求,如:比较重要的课一般放在一二节;体育课尽量不要排在上午的时间;周五下午三四节一般不排课等等。
2. 教师变量
一个教师可能只带一门课,也可能带多门课,但是一个教师在某一个时间段,在某一个教学地点只能上一门课;另外,一个教师可能带一个班级的课程也可能带多个班级的课,如果一个教师在某一时间段内被安排在多个班级上课,同样会造成教学活动的混乱。
3. 课程变量
一门课程可以由一位教师任教也可以由多位教师任教,而且每位教师可能对应了个班级的学生。
4. 班级变量
同一时间段内一个班级只能在一个教室里面上课,并且只能是一门课程。
5. 教室变量
学校里通常有多个教学楼,每个教学楼又会有若干个教室可供选择,在某个时间段内只能有一名教师在此教室授课,可以有多名学生,但是学生的课程必须相同,所选教师必须相同。
4.4排课问题约束
排课问题涉及到两种约束,分别是基本约束和模糊约束。其中,基本约束又称硬约束,是指在排课过程中必须要遵循的原则。而模糊约束又称软约束,是要尽量满足的原则。
nlc202309011113
一个正确的课表要遵循的基本约束条件:
1. 同一时间段内不能给一位教师安排两门不同的课程上课;
2. 同一時间段内一个班级只能安排一门课程;
3. 同一时间段内一个教室只能安排一门课程;
4. 教室的最大容量应不小于上课的学生人数;
除上述的基本约束外,还有一些模糊约束,这些模糊约束可以使课表更加合理、更加人性化。
模糊约束条件有:
1.根据课程类型以及学生接受程度,来为这类课程安排最合适的时间段;如:专业课、必修课一般安排在早上,而文体类的课程通常安排在下午;
2.理论性课程尽量分散安排,即一门课尽量分散在一周的某几天,并且中间尽量隔开,以便教师能够有充足的时间备课,而学生也有足够的时间消化已学到的知识;理论与实践并重的课程最好将理论与实践课穿插安排,可以在学生学习完理论课程后及时通过动手操作加以巩固,有利于学生对知识的理解、掌握;
3.学生的上课时间不能过分集中,应尽量避免某一天课程安排的很满而另一天却没课的情况;
4.排课时,应尽量把知识性强的和趣味性强的、理论性的和理解性的课程交叉安排;
5.考虑教师的工作负荷,一天内上课一般不超过四节;
6. 同一教师,同一门课程可以尽量安排在相对固定的教学场所,不但方便记忆, 还有利于教师和学生的适应;
7.教师或学生接连两门课程地点尽量比较接近;
8.对于教师、学生可能提出的一些特殊要求,根据情况安排,如若合理,尽量满足。
另外,对于其它特殊情况,如分单、双周上的课程,不确定周次的课程等,也需要综合考虑,合理安排。此外对于计算机预排的结果,还可以根据实际情况,通过人工交互的方式进行修改。
4.5基于遗传算法的智能排课算法
1.连接数据库获得课程信息,班级信息,教室信息,公共课程信息,系别信息;
2.根据多媒体教室资源数据生成空白时间安排表;
3.按照群体中个体数量,随机地将课程序号数据装入到时间安排表中;
4.计算每个个体的适应度向量,即个体染色体适应度函数值;
5.若适应度达到事先设定的进化结束要求(无继续收敛),或进化代数达到最大代数,则跳转到9;
6.根据4所得适应度值,计算交叉、变异和选择概率,根据概率选择优秀的时间安排方案,并淘汰掉适应度值低的方案;
7.应用交叉、变异算子与染色体;
8.继续循环,跳到5;
9.从较优群体中选择一个最优方案,生成最优时间安排表。
5.结束语
本文中的自动排课算法实现了教师、教室、课程、时间等资源在教学活动中的合理配置与安排,把教学工作者从繁杂的手工排课工作中解脱出来。同时,也减少了排课过程中可能出现的冲突错误,保证了教学秩序的正常运行,大幅度的提高了教务教学管理水平以及教务人员的工作效率。虽然实现了自动排课功能,而在实际应用中,还应该考虑到因为一些特殊原因导致的需要手工调节课表安排的情况,所以在今后还需要改善这方面的功能。
参考文献:
[1]修磊, 杨社堂. 高校排课管理系统的设计与实现[J].太原理工大学学报,2006, 37(5):75-77.
[2]张海涛, 刘万军. 高校计算机排调课算法研究[J].辽宁工程技术大学学报,2005,24(1): 110-111.
[3]袁宏武, 薛模根, 姚翎. 基于规则的个性化课表生成算法[J].计算机工程,2006,32(4), 194-224.
[4]苏仰娜. 基于遗传算法的优化排课系统[J].河南大学学报(自然科学版),2005, 35(1), 75-78.
[5]魏敏.基于遗传算法电大排课系统的设计与实现[J].复旦大学,2011.
课题信息:课题名称:遗传算法在高等学校智能排课问题方面的研究,课题类别: 内蒙古自治区高等教育科学“十二五”规划课题课题,批准号:NGJGH2014083。
人工智能算法 篇11
人工萤火虫群优化算法基本思想是模拟自然界萤火虫群中的所有萤火虫通过发光来进行群体觅食或吸引伴侣的行为, 萤火虫发出的光的亮度越大对其它萤火虫的吸引力也就越大。一直到最后, 大部分的萤火虫在聚集在多个集中的位置一起发出亮光来吸引伴侣或者一起进行觅食活动。
萤火虫优化算法整体分为四个阶段:萤火虫的部署阶段, 荧光素值更新阶段, 萤火虫位置更新阶段以及决策域半径更新阶段。
部署阶段就是将萤火虫随机的部署在要求解的目标函数的可行域中, 并且开始的时候假设所有的萤火虫的初始荧光亮度和感应半径都相同。
在荧光素值更新阶段, 所有的萤火虫在移动结束之后都会更新它们的荧光素值。荧光素值更新公式如下:
其中, il (t) 表示萤火虫i在迭代t的荧光素的值即萤火虫i的亮度;ρ表示亮度衰减常数 (0<ρ<1) , (1-ρ) 表示亮度衰减率, 用于控制过去经验的比重, 使得萤火虫在迭代中遗忘过去的非优解;γ表示比例常数, 用于控制迭代中搜索解的经验比重。
萤火虫位置更新, 也就是萤火虫的移动。在这个阶段中, 所有的萤火虫都会根据决策域半径和荧光素亮度来产生一个邻居集合, 然后在邻居集合中找出比它本身亮的萤火虫, 最后按照概率选择公式选出一只萤火虫作为移动目标, 然后向着目标飞行。
在算法的执行过程中, 萤火虫会在位置更新之后会根据所在位置的邻居密度的基础上对区域决策半径进行更新。决策区域的半径大小是由该萤火虫当下决策域所涵盖的邻居数量比率, 即邻居密度决定的, 若邻居密度小于一个给定的值, 半径会加大以便下次迭代时能搜索到更多邻居, 反之决策区域半径会缩小, 若密度没有变化半径也保持不变。
二、基于蛙跳算法的人工萤火虫群优化算法
蛙跳算法的基本思想很简单, 我们用到的是蛙跳算法中的分组思想, 所谓分组思想指的是将所有种群先进行分组, 分组结束之后在子群内进行寻优, 子群寻优结束之后在重新组合进行全局寻优。
我们在人工萤火虫群优化算法中引入蛙跳算法中的分组思想, 先将萤火虫进行分组, 在每个组内对萤火虫应用萤火虫优化算法, 组内优化结束之后对萤火虫进行组合在继续寻优, 直到达到最大迭代次数。改进后的算法记为GSO-SFLA。
改进后的算法的步骤如下:
Step 1初始化萤火虫算法和蛙跳算法的参数。
Step 2把种群中的萤火虫随机进行排序, 然后进行个体的分组。将第一个个体分配给子群1, 第二个个体分配到子群2, 一次类推, 第groupm分配到groupm, 第 (groupm+1) 分配到子群1中, 一直到分配完所有的个体。
Step 3每个子群内部进行相关的更新。按照荧光素更新公式更新荧光素值。
Step 4每个子群内的萤火虫计算邻域集合, 统计概率, 选择最优个体。
Step 5利用模拟退火准则来判断被选中的最优个体是否被接受, 如果被选中的最优个体的目标函数值确实比当前位置的目标函数值优, 就接受最优解, 否则以一定的概率接受劣解。
Step 6更新萤火虫的位置。萤火虫移动后, 按照萤火虫感知半径更新公式更新萤火虫的感知半径。判断是否达到组内最大迭代次数group MAX, 如果达到, 则跳转到Step7, 否则, 跳转到Step3继续进行组内循环。
Step 7判断是否达到最大迭代次数max DT, 如果达到, 输出最优解, 保存最优个体, 否则, 跳到Step2。
三、实验仿真
为了证明改进后算法的有效性, 现选取函数来进行测试。
Rastrigin’s函数是由Rastrign率先提出来的。该函数有广泛的搜索空间、大量的局部最小值和局部最大值, 由于它的以上一些特性, 该函数成为一个相当棘手的问题, 它在定义域内有100个峰, 需要性能较好的算法才能搜索到全部的峰, 因此Rastrigin’s函数常常用来测试优化算法的基准函数。由于函数具有较多的峰, 为了加快算法测试的速度, 我们选取x、y在[-2, 2]的搜索空间, Rastrigin’s函数在这个区间内有16个函数值不等的峰。函数如下:
在这里我们需要证明函数既能有效减少种群规模, 又能减少迭代次数, 因此, 首先我们设置迭代次数固定, iter_max=100, 来看一下算法的平均捕峰数与种群规模的关系, 再接着让种群规模固定, 设置规模为150, 看一下算法的平均捕峰数与迭代次数的关系。
迭代次数为100时函数测试如下所示:
测试结果图一开始就显示出了改进后的算法在捕峰能力上的优势。并且优势逐渐增大, 在个体数增加到80左右的时候改进后的算法基本能够捕捉到所有的峰值, 原来的算法在个体数接近200的时候仅仅捕捉到10个峰左右, 有力的证明了改进后的算法在捕峰能力上的提升, 说明了改进的有效性。
设置种群规模为150。函数测试结果如图所示。
测试结果很直观, 改进后的算法在迭代次数很少的时候就能捕捉到16个峰, 并且没有波动, 算法平稳, 而未改进的算法则一直未捕捉到全部的峰并且还存在较大的波动。
摘要:人工萤火虫群优化算法 (GSO) 是最近提出的一种群智能优化算法, 算法具有参数少、优化求解速度快以及占用内存少等优势, 但是GSO算法还是存在许多的不足, 本文就是来讨论解决GSO算法中的一些不足之处。
关键词:人工萤火虫群优化算法,蛙跳算法,分组思想
参考文献
[1]黄正新, 周永权.自适应步长萤火虫群多模态函数优化算法[J].计算机科学, 2011, 07:220-224.