1、1.优化模型2.优化算法3.智能优化算法,智能优化算法,(一)优化模型的数学描述,1. 优化模型,“受约束于”之意,(二)优化模型的分类,1.根据是否存在约束条件 有约束问题和无约束问题。2.根据设计变量的性质 静态问题和动态问题。,3.根据目标函数和约束条件表达式的性质 线性规划,非线性规划,二次规划,多目标规划等。,(1)非线性规划目标函数和约束条件中,至少有一个非线性函数。,(2)线性规划(LP) 目标函数和所有的约束条件都是设计变量的线性函数。,(3)二次规划问题目标函数为二次函数,约束条件为线性约束,5. 根据变量具有确定值还是随机值 确定规划和随机规划。,4. 根据设计变量的允许值
2、,整数规划(0-1规划)和实数规划。,2.优化算法,求最优解或近似最优解的方法主要有三种:枚举法、启发式算法和搜索算法。(1)枚举法:枚举出可行解集合内的所有可行解,以求出精确最优解.对于连续函数,该方法要求先对其进行离散化处理,这样就有可能产生离散误差而永远达不到最优解。另外,当枚举空间比较大时,该方法的求解效率比较低,有时其他甚至在目前先进的计算工具上都无法求解。(2)启发式算法:寻求一种能产生可行解的启发式规则,以找到一个最优解或近似最优解。该方法的求解效率虽然比较高,但对每一个需要求解的问题都必须找出其特有的启发式规则,这个启发式规则无通用性,不能适合于其他问题。(3)搜索算法:寻求一
3、种搜索算法,该算法在可行解集合的一个子集内进行搜索操作,以找到问题的最优解或近似最优解。该方法虽然保证不了一定能够得到问题的最优解,但若适当地利用一些启发知识,就可在近似解的质量和求解效率上达到一种较好的平衡。,3.智能优化算法,3.1.人工神经网络3.2.遗传算法3.3.群智能算法,智能算法特点,智能算法的实用性: 对判断是否能够求解优化问题的前提条件的要求很低,智能算法比传统算法能在更多的情况下能够求得有用的(即近似的、次优的和在精度许可范围内的)优化解。智能算法的通用性: 通过策略、参数、操作以及算子的调整,能够更广泛地适应不同领域的优化求解问题,尤其是对多目标、大规模、高维数、非线性以
4、及带有不可转化约束条件的复杂优化问题,具有更强的适应性。智能算法的灵活性: 通过策略、参数、操作以及算子的短时间的调整,能够很快提高寻优求解的性能(效率和质量):更重要的是智能算法能够通过自身的改良以及同其它方法的交叉融合,在不长的时间内快速“进化”,这一点是智能算法仿生、仿自然的内在特性.智能算法的高效特点: 不是说在拥有同等计算资源时,求解优化问题肯定都比传统方法快(从整体上讲,在近年来多数工程应用中的效率确实高出传统算法,否则,智能算法的发展速度也不会突飞猛进),更多的是指能够更充分挖掘计算机的潜力,比如容易实现并行寻优求解,人类具有高度发达的大脑,大脑是思维活动的物质基础,而思维是人类
5、智能的集中体现。 思维是人脑的信息处理方式。人脑的思维有逻辑思维、形象思维和灵感思维三种基本方式。 逻辑思维的基础是概念、判断与推理,即将信息抽象为概念,在根据逻辑规则进行逻辑推理。 由于概念可用符号表示,而逻辑推理可按串行模式进行,这一过程可以写成串行指令由机器来完成。 计算机就是这样一种用机器模拟人脑逻辑思维的人工智能系统。,3.1.人工神经网络,1997年5月11日深蓝战胜卡斯帕罗夫,1997年5月11日,早晨4时50分(北京时间),一台名为“深蓝”的超级电脑将棋盘上的一个兵走到C4位置时,人类有史以来最伟大的国际象棋名家卡斯帕罗夫不得不沮丧地承认自己输了。世纪末的一场人机大战终于以计算
6、机的微弱优势取胜。这场比赛是继1996年卡斯帕罗夫与IBM的超级电脑“深蓝”比赛获胜后,与改进型的“深蓝”的第二次较量。 比赛于5月3日-11日在纽约的公平大厦举行。整个比赛引起了全世界传媒的巨大关注。比赛吸引人们注视目光的原因之一是世界象棋冠军卡斯帕罗夫赛前充满信心,发誓要为捍卫人类之优于机器的尊严而战。然而,最后的结果却是他所捍卫的人类尊严在一台冷漠的1.4吨重的庞然大物 “蓝色巨人”面前被无情地击溃了。虽然人类的骄傲可以把这场比赛的结果仍然归咎于人类的胜利,毕竟“深蓝”自己也是人类所研制出来的一台计算机而已,但人类所创造的工具击溃了人类,并且是在人类引以为骄傲的智慧领域,这在一定程度上带
7、来了恐惧,并由此引发了一场有关人类创造物与自身关系的深层讨论。 “深蓝”是IBM公司生产的世界上第一台超级国际象棋电脑。是一台RS6000SP2超级并行处理计算机,计算能力惊人,平均每秒可计算棋局变化2OO万步。,卡斯帕罗夫在与“深蓝”对弈(右为“深蓝”现场操作者),请看我的精彩表演!,一、人脑与计算机信息处理能力的比较,信息综合能力,耳听八方,眼观六路,经验直觉,一、人脑与计算机信息处理能力的比较,信息处理速度,人脑的结构、机制和功能中凝聚着无比的奥秘和智慧。,地球是宇宙的骄子,人类是地球的宠儿,大脑是人的主宰。,现在是探索脑的奥秘,从中获得智慧,在其启发下构造为人类文明服务的高级智能系统的
8、时候了!,敢问路在何方?,人工神经网络Artificial Neural Network,什么是人工神经网络,生物神经网络 人类的大脑大约有1.41011个神经细胞,亦称为神经元。每个神经元有数以千计的通道同其它神经元广泛相互连接,形成复杂的生物神经网络。,人工神经网络 以数学和物理方法以及信息处理的角度对人脑神经网络进行抽象,并建立某种简化模型,就称为人工神经网络(Artificial Neural Network,缩写 ANN)。,人工神经网络定义,人工神经网络是一个由许多简单的并行工作的处理单元组成的系统,其功能取决于网络的结构、连接强度以及各单元的处理方式。,人工神经网络是一种旨在模仿
9、人脑结构及其功能的信息处理系统。,神经网络是由多个非常简单的处理单元彼此按某种方式相互连接而形成的计算系统,该系统是靠其状态对外部输入信息的动态响应来处理信息的。,X1 = 火对手产生的温度 w1 =火对手产生的温度的权值(对火对手产生的温度的放大或是缩小,我们让这个值为1) 激活函数(Active Function)= 如果 x1 * w1 40 激活(缩手),否则抑制(不缩手),神经网络的基本特征,结构特征:并行式处理分布式存储容错性,能力特征:自学习自组织自适应性,神经网络的基本功能之一,联想记忆功能,神经网络的基本功能之二,非线性映射功能,神经网络的基本功能之三,分类与识别功能,神经网
10、络的基本功能之四,优化计算功能,神经网络的基本功能之五,知识处理功能,人工神经网络在经济管理中的应用,在微观经济领域的应用用人工神经网络构造的企业成本预测模型用人工神经网络对销售额进行仿真实验在宏观经济领域的应用用于国民经济参数的测算预测通货膨胀率预测经济周期对经济运行态势进行预测预警在证券市场中的应用在金融领域的应用,3.2 遗传算法,遗传算法是由美国的J. Holland教授于1975年在他的专著自然界和人工系统的适应性中首先提出的,它是一类借鉴生物界自然选择和自然遗传机制的随机化搜索算法 。,遗传算法的搜索机制,遗传算法模拟自然选择和自然遗传过程中发生的繁殖、交叉和基因突变现象,在每次迭
11、代中都保留一组候选解,并按某种指标从解群中选取较优的个体,利用遗传算子(选择、交叉和变异)对这些个体进行组合,产生新一代的候选解群,重复此过程,直到满足某种收敛指标为止。,基本遗传算法,基本遗传算法(Simple Genetic Algorithms,简称SGA,又称简单遗传算法或标准遗传算法),是由Goldberg总结出的一种最基本的遗传算法,其遗传进化操作过程简单,容易理解,是其它一些遗传算法的雏形和基础。,基本遗传算法的组成,(1)编码(产生初始种群)(2)适应度函数(3)遗传算子(选择、交叉、变异)(4)运行参数,遗传算法的描述,例子:为四个连锁饭店寻找最好的经营决策,其中一个经营饭店
12、的决策包括要做出以下三项决定:(1)价格 汉堡包的价格应该定在50美分还是1美元?(2)饮料 和汉堡包一起供应的应该是酒还是可乐?(3)服务速度 饭店应该提供慢的还是快的服务?目的:找到这三个决定的组合以产生最高的利润。上述问题的表示方案: 串长 (l3)字母表规模( k2) 映射共有8种表示方案用遗传算法解这个问题的第一步就是选取一个适当的表示方案。,表1 饭店问题的表示方案(其中的4个),群体规模N4,表2 初始群体中经营决策的适应值,一个简单的遗传算法由复制、杂交、变异三个算子组成,表3 使用复制算子后产生的交配池,1.复制算子:采用赌盘选择,2.杂交算子:采用一点杂交,作用过程:a)产
13、生一个在1到l1之间的随机数i b)配对的两个串相互对应的交换从i1到l的位段,例如:从交配池中选择编号为1和2的串进行配对,且杂交点选在2(用分隔符|表示),杂交算子作用的结果为: 01 | 1 010 11 | 0 111,对交配池中指定百分比的个体应用杂交算子,假设杂交概率pc50,交配池中余下的50个体仅进行复制运算,即复制概率pr50。,表4 使用复制和杂交算子的作用结果,遗传算法利用复制和杂交算子可以产生具有更高平均适应值和更好个体的群体,3.变异算子:以一个很小的概率pm随机改变染色体串上的某些位。 对于二进制串,就是将相应位上的0变为1或将1变为0。,例如:选交配池中编号为4的
14、串进行变异,且变异点在2,则 010 000,变异算子相对而言,是次要算子,但在恢复群体中失去的多样性方面具有潜在的作用。,上述遗传算法描述了从第0代产生第1代的过程,然后遗传算法迭代地执行这个过程,直到满足某个停止准则。在每一代中,算法首先计算群体中每个个体地适应值,然后利用适应值信息,遗传算法分别以概率pc 、 pr 和pm 执行杂交、复制和变异操作,从而产生新的群体。应用遗传算法求解问题需完成四个主要步骤: 1.确定表示方案 2.确定适应值度量 3.确定控制算法的参数和变量 4.确定指定结果的方法和停止运行的准则,编码,GA是通过某种编码机制把对象抽象为由特定符号按一定顺序排成的串。正如
15、研究生物遗传是从染色体着手,而染色体则是由基因排成的串。SGA使用二进制串进行编码。,函数优化示例,求下列一元函数的最大值:,x-1,2 ,求解结果精确到6位小数。,SGA对于本例的编码,由于区间长度为3,求解结果精确到6位小数,因此可将自变量定义区间划分为3106等份。又因为221 3106 222 ,所以本例的二进制编码长度至少需要22位,本例的编码过程实质上是将区间-1,2内对应的实数值转化为一个二进制串(b21b20b0)。,几个术语,基因型:1000101110110101000111,表现型:0.637197,编码,解码,个体(染色体),基因,初始种群,SGA采用随机方法生成若干个
16、个体的集合,该集合称为初始种群。初始种群中个体的数量称为种群规模。,适应度函数,遗传算法对一个个体(解)的好坏用适应度函数值来评价,适应度函数值越大,解的质量越好。适应度函数是遗传算法进化过程的驱动力,也是进行自然选择的唯一标准,它的设计应结合求解问题本身的要求而定。,选择算子,遗传算法使用选择运算来实现对群体中的个体进行优胜劣汰操作:适应度高的个体被遗传到下一代群体中的概率大;适应度低的个体,被遗传到下一代群体中的概率小。选择操作的任务就是按某种方法从父代群体中选取一些个体,遗传到下一代群体。SGA中选择算子采用轮盘赌选择方法。,轮盘赌选择方法,轮盘赌选择又称比例选择算子,它的基本思想是:各
17、个个体被选中的概率与其适应度函数值大小成正比。设群体大小为n ,个体i 的适应度为 Fi,则个体i 被选中遗传到下一代群体的概率为:,轮盘赌选择方法的实现步骤,(1) 计算群体中所有个体的适应度函数值(需要解码);(2) 利用比例选择算子的公式,计算每个个体被选中遗传到下一代群体的概率;(3) 采用模拟赌盘操作(即生成0到1之间的随机数与每个个体遗传到下一代群体的概率进行匹配)来确定各个个体是否遗传到下一代群体中。,交叉算子,所谓交叉运算,是指对两个相互配对的染色体依据交叉概率 Pc 按某种方式相互交换其部分基因,从而形成两个新的个体。交叉运算是遗传算法区别于其他进化算法的重要特征,它在遗传算
18、法中起关键作用,是产生新个体的主要方法。 SGA中交叉算子采用单点交叉算子。,单点交叉运算,交叉前:00000|0111000000001000011100|00000111111000101交叉后:00000|0000011111100010111100|01110000000010000,交叉点,变异算子,所谓变异运算,是指依据变异概率 Pm 将个体编码串中的某些基因值用其它基因值来替换,从而形成一个新的个体。遗传算法中的变异运算是产生新个体的辅助方法,它决定了遗传算法的局部搜索能力,同时保持种群的多样性。交叉运算和变异运算的相互配合,共同完成对搜索空间的全局搜索和局部搜索。 SGA中变异
19、算子采用基本位变异算子。,基本位变异算子,基本位变异算子是指对个体编码串随机指定的某一位或某几位基因作变异运算。对于基本遗传算法中用二进制编码符号串所表示的个体,若需要进行变异操作的某一基因座上的原有基因值为0,则变异操作将其变为1;反之,若原有基因值为1,则变异操作将其变为0 。,基本位变异算子的执行过程,变异前:000001110000000010000变异后:000001110001000010000,变异点,运行参数,(1)M : 种群规模 (2)T : 遗传运算的终止进化代数 (3)Pc : 交叉概率 (4)Pm : 变异概率,SGA的框图,遗传算法的特点,(1)群体搜索,易于并行化
20、处理; (2)不是盲目穷举,而是启发式搜索;(3)适应度函数不受连续、可微等条件的约束,适用范围很广。,遗传算法的本质,遗传算法本质上是对染色体模式所进行的一系列运算,即通过选择算子将当前种群中的优良模式遗传到下一代种群中,利用交叉算子进行模式重组,利用变异算子进行模式突变。通过这些遗传操作,模式逐步向较好的方向进化,最终得到问题的最优解。,遗传算法的应用领域,(1)组合优化 (2)函数优化 (3)自动控制 (4)生产调度 (5)图像处理 (6)机器学习 (7)人工生命 (8)数据挖掘,3.3 蚁群算法,蚁群算法(Ant Colony Optimization, ACO)由Colorni,Do
21、rigo和Maniezzo在1991年提出,它是通过模拟自然界蚂蚁社会的寻找食物的方式而得出的一种仿生优化算法。自然界种蚁群寻找食物时会派出一些蚂蚁分头在四周游荡,如果一只蚂蚁找到食物,它就返回巢中通知同伴并沿途留下“信息素”(pheromone) 作为蚁群前往食物所在地的标记。 信息素会逐渐挥发,如果两只蚂蚁同时找到同一食物,又采取不同路线回到巢中,那么比较绕弯的一条路上信息素的气味会比较淡,蚁群将倾向于沿另一条更近的路线前往食物所在地。,蚁群算法的基本原理,(1)个体蚂蚁的记忆.一只蚂蚁搜索过的路径在下次搜索就不会被选择,由此在蚁群算法中建立tabu(禁忌)列表来进行模拟;(2)蚂蚁利用信
22、息素进行彼此通信.蚂蚁在选择的路上会释放一种叫信息素的物质,当同伴进行路径选择时,会根据路上的信息素进行选择,这样信息素就成为蚂蚁之间进行通讯的媒介.(3)蚂蚁的群集活动.当某些路径上通过的蚂蚁越来越多时,在路径上留下的信息素数量也越来越多,导致信息素强度增大,蚂蚁选择该路径的概率随之增加,从而进一步增加该路径的信息素强度,而某些路径上通过的蚂蚁较少时,路径上的信息素就会随时间的推移而蒸发.因此,模拟这种现象从而利用群体智能建立的路径选择机制,使蚁群算法的搜索向最优解推进.,蚁群算法应用,ACO算法设计虚拟的“蚂蚁”,让它们摸索不同路线,并留下会随时间逐渐消失的虚拟“信息素”。根据“信息素较浓
23、的路线更近”的原则,即可选择出最佳路线。 目前,ACO算法已被广泛应用于组合优化问题中,在图着色问题、车间流问题、车辆调度问题、机器人路径规划问题、路由算法设计等领域均取得了良好的效果。也有研究者尝试将ACO算法应用于连续问题的优化中。由于ACO算法具有广泛实用价值,成为了群智能领域第一个取得成功的实例,曾一度成为群智能的代名词,相应理论研究及改进算法近年来层出不穷。,粒子群算法(particle swarm optimization,PSO)由Kennedy和Eberhart在1995年提出,该算法模拟鸟集群飞行觅食的行为,鸟之间通过集体的协作使群体达到最优目的,是一种基于Swarm Int
24、elligence的优化方法。同遗传算法类似,也是一种基于群体叠代的,但并没有遗传算法用的交叉以及变异,而是粒子在解空间追随最优的粒子进行搜索。PSO的优势在于简单容易实现同时又有深刻的智能背景,既适合科学研究,又特别适合工程应用,并且没有许多参数需要调整。,3.4 PSO算法简介,PSO产生背景之一:复杂适应系统,CAS理论的最基本的思想可以概述如下: 我们把系统中的成员称为具有适应性的主体(Adaptive Agent),简称为主体。所谓具有适应性,就是指它能够与环境以及其它主体进行交流,在这种交流的过程中“学习”或“积累经验”,并且根据学到的经验改变自身的结构和行为方式。整个系统的演变或
25、进化,包括新层次的产生,分化和多样性的出现,新的、聚合而成的、更大的主体的出现等等,都是在这个基础上出现的。,复杂适应系统(CAS)续,CAS的四个基本特点:首先,主体(Adaptive Agent)是主动的、活的实体; 其次,个体与环境(包括个体之间)的相互影响,相互作用,是 系统演变和进化的主要动力;再次,这种方法不象许多其他的方法那样,把宏观和微观截然 分开,而是把它们有机地联系起来;最后,这种建模方法还引进了随机因素的作用,使它具有更强 的描述和表达能力。,PSO产生背景之二:人工生命,人工生命“是来研究具有某些生命基本特征的人工系统。人工生命包括两方面的内容: 研究如何利用计算技术研
26、究生物现象; 研究如何利用生物技术研究计算问题(Nature Computation)。 我们现在关注的是第二部分的内容。现在已经有很多源于生物现象的计算技巧,例如, 人工神经网络是简化的大脑模型. 遗传算法是模拟基因进化过程的。现在我们讨论另一种生物系统:社会系统,更确切地说,是由简单个体组成的群落与环境以及个体之间的互动行为,也可称做群智能。,基本PSO算法,粒子群优化算法源于1987年Reynolds对鸟群社会系统boids的仿真研究,boids是一个CAS。在boids中,一群鸟在空中飞行,每个鸟遵守以下三条规则:1)避免与相邻的鸟发生碰撞冲突;2)尽量与自己周围的鸟在速度上保持协调和
27、一致;3)尽量试图向自己所认为的群体中靠近。 仅通过使用这三条规则,boids系统就出现非常逼真的群体聚集行为,鸟成群地在空中飞行,当遇到障碍时它们会分开绕行而过,随后又会重新形成群体。,基本PSO算法(续),Reynolds仅仅将其作为CAS的一个实例作仿真研究,而并未将它用于优化计算中 。 Kennedy和Eberhart在中加入了一个特定点,定义为食物,鸟根据周围鸟的觅食行为来寻找食物。他们的初衷是希望通过这种模型来模拟鸟群寻找食源的现象,然而实验结果却揭示这个仿真模型中蕴涵着很强的优化能力,尤其是在多维空间寻优中。,基本PSO算法(续),PSO中,每个优化问题的解都是搜索空间中的一只鸟。称之为“粒子(Particle)”。所有的粒子都有一个由被优化的函数决定的适应值,每个粒子还有一个速度决定他们飞翔的方向和距离。然后粒子们就追随当前的最优粒子在解空间中搜索. PSO 初始化为一群随机粒子。然后通过叠代找到最优解。在每一次叠代中,粒子通过跟踪两个极值来更新自己。第一个就是粒子本身所找到的最优解。这个解叫做个体极值pBest. 另一个极值是整个种群目前找到的最优解。这个极值是全局极值gBest。另外,也可以不用整个种群而只是用其中一部分的邻居。,