模拟退火算法经典实例
作者&投稿:程飞 (若有异议请与网页底部的电邮联系)
人工智能原理的图书目录
4语义网络表示法的特点512?7框架表示法522?8状态空间表示法542?9与或图表示法55第3章图搜索技术563?1问题的提出563?2状态图搜索583?2?1状态图搜索分类583?2?2穷举式搜索593?2?3启发式搜索623?2?4A算法及A*算法663?3与或图搜索683?3?1与或图683?3?2与或图搜索举例693?4博弈图搜索733?
温宿县三七回答: 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...
老婉15725781768问: 基于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为函数容许误差 %%%%算法第一...
老婉15725781768问: 试用模拟退火法求函数f(x,y)=sin(xy)+x^2+y^2的最小值. - ?
温宿县三七回答: %使用模拟退火法求函数f(x,y)=sin(x*y)+x^2+y^2的最小值 format long XMAX=4; %搜索的最大区间 YMAX=4; %搜索的最大区间 MarkovLength=10000; %马可夫链长度 DecayScale=0.95; %衰减参数0.95 StepFactor=0.02; %步长因子 ...
老婉15725781768问: 模拟退火算法 Pascal&C++?
温宿县三七回答:模拟退火的基本思想: (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步.
老婉15725781768问: 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])
老婉15725781768问: 遗传模拟退火算法优化BP神经网络的Matlab程序 - ?
温宿县三七回答: “模拟退火”算法是源于对热力学中退火过程的模拟,在某一给定初温下,通过缓慢下降温度参数,使算法能够在多项式时间内给出一个近似最优解.退火与冶金学上的'退火'相似,而与冶金学的淬火有很大区别,前者是温度缓慢下降,后者是温度迅速下降.“模拟退火”的原理也和金属退火的原理近似:我们将热力学的理论套用到统计学上,将搜寻空间内每一点想像成空气内的分子;分子的能量,就是它本身的动能;而搜寻空间内的每一点,也像空气分子一样带有“能量”,以表示该点对命题的合适程度.算法先以搜寻空间内一个任意点作起始:每一步先选择一个“邻居”,然后再计算从现有位置到达“邻居”的概率.很抱歉,回答者上传的附件已失效
老婉15725781768问: matlab模拟退火用法 - ?
温宿县三七回答: matlab自带的模拟退火工具箱算法是simulannealbnd函数,输入参数是fun,x0,lb,ub,没有约束项,所以,你这个不能用.可换别的算法.
老婉15725781768问: 急求,模拟退火遗传算法的MATLAB程序!谢谢 - ?
温宿县三七回答: 你真幸福.我刚刚编了一个模拟退火算法,计算旅行商问题:注意:一共三个文件,第一个是主程序,下面两个是子函数.% for d=1:50 %循环10次发现最小路径为4.115,循环50次有3次出现4.115 T_max=80; %input('please input the start ...
老婉15725781768问: 模拟退火算法优化BP神经网络 - ?
温宿县三七回答: bp神经元网络的学习过程真正求解的其实就是权值的最优解,因为有可能会得出局部最优解,所以你才会用模拟退火来跳出局部最优解,也就是引入了逃逸概率.在这里你可以把bp的学习过程理解成关于 误差=f(w1,w2...) 的函数,让这个函数在模拟退火中作为目标函数,再加上模拟退火的一些初始参数(初始温度啊,退火速度啊等等),就能找到权值解空间的一个不错的最优解,就是一组权向量.把权向量带入到bp当中去,输入新的对象,自然就能算出新的输出了.算法学习要脚踏实地,你要先学会神经元,在学会退火,两个的结合你才能理解.
老婉15725781768问: 求模拟退火算法解旅行商问题的C++代码?
温宿县三七回答: 我自己写的: #include #include #include using namespace std; static double Tmax = 10, Tmin = 0.1, r = 0.999999; static int k = 100; inline void random_sele(int &fl, int &fp, int arr[], int n) { do { fl = rand() % n; fp = rand() % n; } while (fl == arr[fp] || arr[...