非数值算法的模拟退火算法
这个问题有人问过,其实你别想象的太复杂,它的思想搞清楚就好了,他首先是个算法,这个算法的目的是求解,精髓是求最优解,它能使解在迭代过程中跳出局部最优的陷阱,怎么跳出的,是通过接受不好的解,继续迭代,这样就可以从整体上考虑,求出最优解。这是它的精髓,知道这个思想之后,看看程序代码,就可以理解了。希望能帮你。
模拟退火算法来源于固体退火原理,将固体加温至充分高,再让其徐徐冷却,加温时,固体
内部粒子随温升变为无序状,内能增大,而徐徐冷却时粒子渐趋有序,在每个温度都达到平
衡态,最后在常温时达到基态,内能减为最小。根据Metropolis 准则,粒子在温度T 时趋于
平衡的概率为e-ΔE/(kT),其中E 为温度T 时的内能,ΔE 为其改变量,k 为Boltzmann 常
数。用固体退火模拟组合优化问题,将内能E 模拟为目标函数值f,温度T 演化成控制参数
t,即得到解组合优化问题的模拟退火算法:由初始解i 和控制参数初值t 开始,对当前解重
复“产生新解→计算目标函数差→接受或舍弃”的迭代,并逐步衰减t 值,算法终止时的当
前解即为所得近似最优解,这是基于蒙特卡罗迭代求解法的一种启发式随机搜索过程。退火
过程由冷却进度表(Cooling Schedule)控制,包括控制参数的初值t 及其衰减因子Δt、每个t
值时的迭代次数L 和停止条件S。
1、模拟退火算法可以分解为解空间、目标函数和初始解三部分 。 它为问题的所有可能(可行的或包括不可行的)解的集合,它限定了初始解选取和新解产
生时的范围。对无约束的优化问题,任一可能解(possible solution)即为一可行解(feasible
solution),因此解空间就是所有可行解的集合;而在许多组合优化问题中,一个解除满足目
标函数最优的要求外,还必须满足一组约束(constraint),因此在解集中可能包含一些不可行
解(infeasible so1ution)。为此,可以限定解空间仅为所有可行解的集合,即在构造解时就考
虑到对解的约束;也可允许解空间包含不可行解,而在目标函数中加上所谓罚函数(penalty
function)以“惩罚”不可行解的出现。 它是对问题的优化目标的数学描述,通常表述为若干优化目标的一个和式。目标函数的
选取必须正确体现对问题的整体优化要求。例如,如上所述,当解空间包含不可行解时,目
标函数中应包含对不可行解的罚函数项,借此将一个有约束的优化问题转化为无约束的优化
问题。一般地,目标函数值不一定就是问题的优化目标值,但其对应关系应是显明的。此外,
目标函数式应当是易于计算的,这将有利于在优化过程中简化目标函数差的计算以提高算法
的效率。 是算法迭代的起点,试验表明,模拟退火算法是鲁棒的(Robust),即最终解的求得几乎
不依赖于初始解的选取。
2、基本思想:
(1) 初始化:初始温度T(充分大),初始解状态S(是算法迭代的起点), 每个T 值的迭
代次数L
(2) 对k=1,,L 做第(3)至第6 步:
(3) 产生新解S′
(4) 计算增量Δt′=C(S′)-C(S),其中C(S)为评价函数
(5) 若Δt′<0 则接受S′作为新的当前解,否则以概率exp(-Δt′/T)接受S′作为新的
当前解.
(6) 如果满足终止条件则输出当前解作为最优解,结束程序。
终止条件通常取为连续若干个新解都没有被接受时终止算法。
(7) T 逐渐减少,且T->0,然后转第2 步。
二、遗传算法
遗传算法的基本思想是基于Darwin 进化论和Mendel 的遗传学说的。
Darwin 进化论最重要的是适者生存原理。它认为每一物种在发展中越来越适应环境。物种
每个个体的基本特征由后代所继承,但后代又会产生一些异于父代的新变化。在环境变化时,
只有那些能适应环境的个体特征方能保留下来。
Mendel 遗传学说最重要的是基因遗传原理。它认为遗传以密码方式存在细胞中,并以基因
形式包含在染色体内。每个基因有特殊的位置并控制某种特殊性质;所以,每个基因产生的
个体对环境具有某种适应性。基因突变和基因杂交可产生更适应于环境的后代。经过存优去
劣的自然淘汰,适应性高的基因结构得以保存下来。
遗传算法简称GA(Genetic Algorithm),在本质上是一种不依赖具体问题的直接搜索方法。
1、遗传算法的原理
遗传算法GA 把问题的解表示成“染色体”,在算法中也即是以二进制编码的串。并且,在
执行遗传算法之前,给出一群“染色体”,也即是假设解。然后,把这些假设解置于问题的
“环境”中,并按适者生存的原则,从中选择出较适应环境的“染色体”进行复制,再通过
交叉,变异过程产生更适应环境的新一代“染色体”群。这样,一代一代地进化,最后就会
收敛到最适应环境的一个“染色体”上,它就是问题的最优解。
长度为L 的n 个二进制串bi(i=1,2,,n)组成了遗传算法的初解群,也称为初始群体。
在每个串中,每个二进制位就是个体染色体的基因。根据进化术语,对群体执行的操作有三
种:
(1).选择(Selection)
这是从群体中选择出较适应环境的个体。这些选中的个体用于繁殖下一代。故有时也称这一
操作为再生(Reproduction)。由于在选择用于繁殖下一代的个体时,是根据个体对环境的适
应度而决定其繁殖量的,故而有时也称为非均匀再生(differential reproduction)。
(2).交叉(Crossover)
这是在选中用于繁殖下一代的个体中,对两个不同的个体的相同位置的基因进行交换,从而
产生新的个体。
(3).变异(Mutation)
这是在选中的个体中,对个体中的某些基因执行异向转化。在串bi 中,如果某位基因为1,
产生变异时就是把它变成0;反亦反之。
2、遗传算法的特点
(1).遗传算法从问题解的中集开始嫂索,而不是从单个解开始。
这是遗传算法与传统优化算法的极大区别。传统优化算法是从单个初始值迭代求最优解的;
容易误入局部最优解。遗传算法从串集开始搜索,覆盖面大,利于全局择优。
(2).遗传算法求解时使用特定问题的信息极少,容易形成通用算法程序。
由于遗传算法使用适应值这一信息进行搜索,并不需要问题导数等与问题直接相关的信息。
遗传算法只需适应值和串编码等通用信息,故几乎可处理任何问题。
(3).遗传算法有极强的容错能力
遗传算法的初始串集本身就带有大量与最优解甚远的信息;通过选择、交叉、变异操作能迅
速排除与最优解相差极大的串;这是一个强烈的滤波过程;并且是一个并行滤波机制。故而,
遗传算法有很高的容错能力。
(4).遗传算法中的选择、交叉和变异都是随机操作,而不是确定的精确规则。
这说明遗传算法是采用随机方法进行最优解搜索,选择体现了向最优解迫近,交叉体现了最
优解的产生,变异体现了全局最优解的覆盖。
三、神经网络算法
“人工神经网络”(ARTIFICIAL NEURAL NETWORK,简称A.N.N.)是在对人脑组织结构和
运行机智的认识理解基础之上模拟其结构和智能行为的一种工程系统。早在本世纪40 年代
初期,心理学家McCulloch、数学家Pitts 就提出了人工神经网络的第一个数学模型,从此开
创了神经科学理论的研究时代。其后,F.Rosenblatt、Widrow 和Hopf、J.J.Hopfield 等学者又
先后提出了感知模型,使得人工神经网络技术得以蓬勃发展。
神经系统的基本构造是神经元(神经细胞),它是处理人体内各部分之间相互信息传递的基本
单元。据神经生物学家研究的结果表明,人的一个大脑一般有10 10 ~10 11
个神经元。每个神经元都由一个细胞体,一个连接其他神经元的轴突和一些向外伸出的其它
较短分支——树突组成。轴突的功能是将本神经元的输出信号(兴奋)传递给别的神经元。其
末端的许多神经末梢使得兴奋可以同时传送给多个神经元。树突的功能是接受来自其它神经
元的兴奋。神经元细胞体将接受到的所有信号进行简单地处理(如:加权求和,即对所有的
输入信号都加以考虑且对每个信号的重视程度——体现在权值上——有所不同)后由轴突输
出。神经元的树突与另外的神经元的神经末梢相连的部分称为突触。
1、神经网络的工作原理
人工神经网络首先要以一定的学习准则进行学习,然后才能工作。现以人工神经网络对手写
“A”、“B”两个字母的识别为例进行说明,规定当“A”输入网络时,应该输出“1”,而
当输入为“B”时,输出为“0”。所以网络学习的准则应该是:如果网络作出错误的的判决,
则通过网络的学习,应使得网络减少下次犯同样错误的可能性。首先,给网络的各连接权值
赋予(0,1)区间内的随机值,将“A”所对应的图象模式输入给网络,网络将输入模式加权
求和、与门限比较、再进行非线性运算,得到网络的输出。在此情况下,网络输出为“1”
和“0”的概率各为50%,也就是说是完全随机的。这时如果输出为“1”(结果正确),则使
连接权值增大,以便使网络再次遇到“A”模式输入时,仍然能作出正确的判断。如果输出
为“0”(即结果错误),则把网络连接权值朝着减小综合输入加权值的方向调整,其目的在
于使网络下次再遇到“A”模式输入时,减小犯同样错误的可能性。如此操作调整,当给网
络轮番输入若干个手写字母“A”、“B”后,经过网络按以上学习方法进行若干次学习后,
网络判断的正确率将大大提高。这说明网络对这两个模式的学习已经获得了成功,它已将这
两个模式分布地记忆在网络的各个连接权值上。当网络再次遇到其中任何一个模式时,能够
作出迅速、准确的判断和识别。一般说来,网络中所含的神经元个数越多,则它能记忆、识
别的模式也就越多。
2、人工神经网络的特点
人工神经网络是由大量的神经元广泛互连而成的系统,它的这一结构特点决定着人工神经网
络具有高速信息处理的能力。人脑的每个神经元大约有10 3~10 4 个树突及相应的突
触,一个人的大脑总计约形成10 14 ~10 15 个突触。用神经网络的术语来说,
即是人脑具有10 14 ~10 15 个互相连接的存储潜力。虽然每个神经元的运算
功能十分简单,且信号传输速率也较低(大约100 次/秒),但由于各神经元之间的极度并行互
连功能,最终使得一个普通人的大脑在约1 秒内就能完成现行计算机至少需要数10 亿次处
理步骤才能完成的任务。
人工神经网络的知识存储容量很大。在神经网络中,知识与信息的存储表现为神经元之间分
布式的物理联系。它分散地表示和存储于整个网络内的各神经元及其连线上。每个神经元及
其连线只表示一部分信息,而不是一个完整具体概念。只有通过各神经元的分布式综合效果
才能表达出特定的概念和知识。
由于人工神经网络中神经元个数众多以及整个网络存储信息容量的巨大,使得它具有很强的
不确定性信息处理能力。即使输入信息不完全、不准确或模糊不清,神经网络仍然能够联想
思维存在于记忆中的事物的完整图象。只要输入的模式接近于训练样本,系统就能给出正确
的推理结论。
正是因为人工神经网络的结构特点和其信息存储的分布式特点,使得它相对于其它的判断识
别系统,如:专家系统等,具有另一个显著的优点:健壮性。生物神经网络不会因为个别神
经元的损失而失去对原有模式的记忆。最有力的证明是,当一个人的大脑因意外事故受轻微
损伤之后,并不会失去原有事物的全部记忆。人工神经网络也有类似的情况。因某些原因,
无论是网络的硬件实现还是软件实现中的某个或某些神经元失效,整个网络仍然能继续工
作。
人工神经网络是一种非线性的处理单元。只有当神经元对所有的输入信号的综合处理结果超
过某一门限值后才输出一个信号。因此神经网络是一种具有高度非线性的超大规模连续时间
动力学系统。它突破了传统的以线性处理为基础的数字电子计算机的局限,标志着人们智能
信息处理能力和模拟人脑智能行为能力的一大飞跃。
遗传算法、数值算法、爬山算法、模拟退火 各自的优缺点
模拟退火:具有局部搜索能力强、运行时间短的优点。缺点是全局搜索能力差,容易受到参数的影响。爬山算法:显然爬山算法简单、效率高,但在处理多约束大规模问题时,往往不能得到较好的解决方案。数值算法:这个数值算法的含义太宽泛了,指的是哪种数值算法,阵列算法与爬山算法一样,各有优缺点。
遗传算法、数值算法、爬山算法、模拟退火 各自的优缺点
遗传算法:优点是能很好的处理约束,能很好的跳出局部最优,最终得到全局最优解,全局搜索能力强;缺点是收敛较慢,局部搜索能力较弱,运行时间长,且容易受参数的影响。模拟退火:优点是局部搜索能力强,运行时间较短;缺点是全局搜索能力差,容易受参数的影响。爬山算法:显然爬山算法较简单,效率高,但是...
数学建模竞赛中必须熟练掌握的十个算法
4. **图论算法**:包括Dijkstra、Floyd等,如92年B题的分枝定界法,97年B题的动态规划问题。5. **最优化理论算法**:如模拟退火、神经网络、遗传算法,如97年A题的模拟退火算法和00年B题的神经网络应用。6. **网格算法和穷举法**:用于连续问题的离散处理,如97年A题的网格法搜索。7. **数...
遗传算法、粒子群、模拟退火相比于普通的蒙特卡洛算法有什么优势?他 ...
蒙特卡洛算法是数值计算方法,原理是利用随机数来解决计算问题。与它对应的是确定性算法。也就是说该种算法属于随机算法,得到的解是近似解。而遗传算法、粒子群、模拟退火虽然也是随机近似算法,但这三种都是仿生智能算法,且比蒙特卡洛算法要复杂,应用的领域也不太相同。显然,蒙特卡洛算法很轻巧,求解问题...
《心中有数》:透过数学看人生,找到自己人生的最优解
刘雪峰在《心里有数》一书中用到了计算机领域著名的模拟退火算法来解释。模拟退火算法是解决函数优化问题的数值解法,要找到函数的极值。刘雪峰教授用找到函数y=-x2+2x的极值为例,分别列举了几种算法,包括解析解、梯度法和爬山法。其中解析解无疑是最优的,但是要找到解析解也并不那么容易。于是就有了梯度法和爬山...
数学建模算法有哪些
5. 动态规划、回溯搜索、分治算法、分支定界等计算机算法。 这些算法是算法设计中比较常用的方法,竞赛中很多场合会用到。6. 最优化理论的三大非经典算法:模拟退火算法、神经网络算法、遗传算法。 这些问题是用来解决一些较困难的最优化问题的,对于有些问题非常有帮助,但是算法的实现比较困难,需慎重使用...
数学建模常用模型有哪些
5、动态规划、回溯搜索、分治算法、分支定界等计算机算法。6、最优化理论的三大非经典算法:模拟退火法、神经网络、遗传算法。7、网格算法和穷举法,这两者都是暴力搜索最优点的算法,在很多竞赛题中有所应用。8、数值分析算法,比如方程组求解、矩阵运算、函数积分等算法就需要额外编写库函数进行调用。
数学建模常用十大算法和五大模型总结
5. 计算机算法,如动态规划、回溯搜索等,用于求解最优化问题。6. 非经典优化算法,如模拟退火、神经网络和遗传算法,用于处理复杂优化问题。7. 网格算法和穷举法,用于搜索空间较大的问题。8. 连续离散化方法,用于处理连续和离散问题的转换。9. 数值分析算法,解决数值计算中的精度和稳定性问题。10. ...
数学建模应用的数学建模十大算法
3. 规划类问题,如线性规划、整数规划、多元规划和二次规划,通常借助Lindo、Lingo等软件求解。4. 图论算法,涵盖最短路径、网络流、二分图等多种算法,适用于解决涉及图结构的问题。5. 计算机算法,包括动态规划、回溯搜索、分治算法和分支定界法等。6. 最优化问题的非经典算法,包括模拟退火法、神经...
参加数学建模有哪些必学的算法
a) 模拟退火法(SA)b) 神经网络(NN)c) 遗传算法(GA)7. 网格算法和穷举算法 8. 连续问题离散化的方法 因为计算机只能处理离散化的问题,但是实际中数据大多是连续的,因此需要将连续问题离散化之后再用计算机求解。如:差分代替微分、求和代替积分等思想都是把连续问题离散化的常用...
广艳宫瘤: 模拟退火算法(Simulated Annealing,SA)最早的思想是由N. Metropolis 等人于1953年提出.1983 年,S. Kirkpatrick 等成功地将退火思想引入到组合优化领域.它是基于Monte-Carlo迭代求解策略的一种随机寻优算法,其出发点是基于物理中固...
雄县13444008097: 基于matlab的模拟退火法?
广艳宫瘤: function [xo,fo] = Opt_Simu(f,x0,l,u,kmax,q,TolFun) % 模拟退火算法求函数 f(x)的最小值点, 且 l <= x <= u % f为待求函数,x0为初值点,l,u分别为搜索区间的上下限,kmax为最大迭代次数 % q为退火因子,TolFun为函数容许误差 %%%%算法第一...
雄县13444008097: 谁能给我举一个模拟退火算法MATLAB源代码的简单例子 - ?
广艳宫瘤: clear clc a = 0.95 k = [5;10;13;4;3;11;13;10;8;16;7;4]; k = -k; % 模拟退火算法是求解最小值,故取负数 d = [2;5;18;3;2;5;10;4;11;7;14;6]; restriction = 46; num = 12; sol_new = ones(1,num); % 生成初始解 E_current = inf;E_best = inf; % E_current...
雄县13444008097: 数学建模有哪些前沿算法或者说新颖算法? - ?
广艳宫瘤: 一、蒙特卡罗算法 二、数据拟合、参数估计、插值等数据处理算法 三、线性规划、整数规划、多元规划、二次规划等规划类问题 四、图论算法 五、动态规划、回溯搜索、分治算法、分支定界等计算机算法 六、最优化理论的三大经典算法:模拟退火法、神经网络、遗传算法 七、网格算法和穷举法 八、一些连续离散化方法 九、数值分析算法 十、图象处理算法
雄县13444008097: 数学建模的十大算法 - ?
广艳宫瘤: 1、蒙特卡罗算法(该算法又称随机性模拟算法,是通过计算机仿真来解决问题的算法,同时可以通过模拟可以来检验自己模型的正确性,是比赛时必用的方法)2、数据拟合、参数估计、插值等数据处理算法(比赛中通常会遇到大量的数据需要...
雄县13444008097: matlab用模拟退火法求函数f(x,y)=sin(xy)+x^2+y^2的最小值. - ?
广艳宫瘤: 能解释一下为什么要用模拟退火法吗?这个函数的最小值直接观察就能看出来在x=y=0处,或者用fminunc也可以求解:x=fminunc(@(x)sin(x(1)*x(2))+x(1)^2+x(2)^2,[0 0]) 当然,用模拟退火算法也很简单,换一下函数即可:x=simulannealbnd(@(x)sin(x(1)*x(2))+x(1)^2+x(2)^2,[0 0])
雄县13444008097: C语言非数值算法 - ?
广艳宫瘤: 这个题目比较奇怪,没有使用数值算法的算法么就叫非数值算法呀,也有可能他说的计算方法是不归入数值算法中的
雄县13444008097: 模拟退火算法里的温度代表什么? - ?
广艳宫瘤: 模拟退火是一种优化算法,它本身是不能独立存在的,需要有一个应用场合,其中温度就是模拟退火需要优化的参数,如果它应用到了聚类分析中,那么就是说聚类分析中有某个或者某几个参数需要优化,而这个参数,或者参数集就是温度所代表的.它可以是某项指标,某项关联度,某个距离等等
雄县13444008097: 请问模拟退火算法的重要性如何? - ?
广艳宫瘤: 那个模拟退火效率低了点....一般都是把模拟退火和遗传算法结合起来吧...而且神经网络应用非常非常广,相比模拟退火来说...
雄县13444008097: 遗传模拟退火算法优化BP神经网络的Matlab程序 - ?
广艳宫瘤: “模拟退火”算法是源于对热力学中退火过程的模拟,在某一给定初温下,通过缓慢下降温度参数,使算法能够在多项式时间内给出一个近似最优解.退火与冶金学上的'退火'相似,而与冶金学的淬火有很大区别,前者是温度缓慢下降,后者是温度迅速下降.“模拟退火”的原理也和金属退火的原理近似:我们将热力学的理论套用到统计学上,将搜寻空间内每一点想像成空气内的分子;分子的能量,就是它本身的动能;而搜寻空间内的每一点,也像空气分子一样带有“能量”,以表示该点对命题的合适程度.算法先以搜寻空间内一个任意点作起始:每一步先选择一个“邻居”,然后再计算从现有位置到达“邻居”的概率.很抱歉,回答者上传的附件已失效