引言: 模拟退火算法
模拟退火算法来源于固体退火原理,将固体加温至充分高,再让其徐徐冷却,加温时,固体内部粒子随温升变为无序状,内能增大,而徐徐冷却时粒子渐趋有序,在每个温度都达到平衡态,最后在常温时达到基态,内能减为最小。
摘要:每个java对象都有hashcode()和 equals()方法。许多类忽略(override)这些方法的缺省实施,以在对象实例之间提供更深层次的语义可比性。在java理念和实践这一部分,java开发人员brian goetz向您介绍在创建java类以有效和准确定义hashcode()和equals()时应遵循的规则和指南。您可以在讨论论坛与作者和其它读者一同探讨您对本文的看法。(您还可以点击本文......
摘要:不变对象具有许多能更方便地使用它们的特性,包括不严格的同步需求和不必考虑数据讹误就能自由地共享和高速缓存对象引用。尽管不变性可能未必对于所有类都有意义,但大多数程序中至少有一些类将受益于不可变。在本月的 java 理论与实践中,brian goetz 说明了不变性的一些长处和构造不变类的一些准则。请在附带的论坛中与作者和其他读者分享您关于本文的心得。(也可以单击文章顶部或底部的“讨论&......
Simulate Anneal Arithmetic (SAA,模拟退火算法)模拟退火算法 【程序编程相关:
xmlhttp 抓取网页内容1】 【推荐阅读:
毕业五年有感,给年轻人的一点忠告】 【扩展信息:
ASP六大对象介绍 】
模拟退火算法来源于固体退火原理,将固体加温至充分高,再让其徐徐冷却,加温时,固体内部粒子随温升变为无序状,内能增大,而徐徐冷却时粒子渐趋有序,在每个温度都达到平衡态,最后在常温时达到基态,内能减为最小.根据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 . 模拟退火算法的模型 模拟退火算法可以分解为解空间.目标函数与初始解三部分. 模拟退火的基本思想: (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步. 算法对应动态演示图: 模拟退火算法新解的产生与接受可分为如下四个步骤: ...
下一页 摘要:在.net framework sdk文档中,关于调用windows api的指示比较零散,并且其中稍全面一点的是针对visual basic .net讲述的。本文将c#中调用api的要点汇集如下,希望给未在c#中使用过api的朋友一点帮助。另外如果安装了visual studio .net的话,在c:\program files\microsoft visual studio .net\fram......