全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
原创模拟退火算法 /* 模拟退火法求函数f(x,y) = 5sin(xy) + x2 + y2的最小值* 日期:2004-4-16* 作者:ARMYLAU*EMAIL:* 结束条件为两次最优解之差小于某小量*/using System;namespace SimulateAnnealing class Class1 / 要求最优值的目标函数 static double ObjectFunction( double x, double y ) double z = 0.0; z = 5.0 * Math.Sin(x*y) + x*x + y*y; return z; STAThread static void Main(string args) / 搜索的最大区间 const double XMAX = 4; const double YMAX = 4; / 冷却表参数 int MarkovLength = 10000; / 马可夫链长度 double DecayScale = 0.95; / 衰减参数 double StepFactor = 0.02; / 步长因子 double Temperature = 100; / 初始温度 double Tolerance = 1e-8; / 容差 double PreX,NextX; / prior and next value of x double PreY,NextY; / prior and next value of y double PreBestX, PreBestY; / 上一个最优解 double BestX,BestY; / 最终解 double AcceptPoints = 0.0; / Metropolis过程中总接受点 Random rnd = new Random(); / 随机选点 PreX = -XMAX * rnd.NextDouble() ; PreY = -YMAX * rnd.NextDouble(); PreBestX = BestX = PreX; PreBestY = BestY = PreY; / 每迭代一次退火一次(降温), 直到满足迭代条件为止 do Temperature *=DecayScale; AcceptPoints = 0.0; / 在当前温度T下迭代loop(即MARKOV链长度)次 for (int i=0;i / 1) 在此点附近随机选下一点 do NextX = PreX + StepFactor*XMAX*(rnd.NextDouble()-0.5); NextY = PreY + StepFactor*YMAX*(rnd.NextDouble()-0.5); while ( !(NextX = -XMAX & NextX = -YMAX & NextY / 2) 是否全局最优解 if (ObjectFunction(BestX,BestY) ObjectFunction(NextX,NextY) / 保留上一个最优解 PreBestX =BestX; PreBestY = BestY; / 此为新的最优解 BestX=NextX; BestY=NextY; / 3) Metropolis过程 if( ObjectFunction(PreX,PreY) - ObjectFunction(NextX,NextY) 0 ) / 接受, 此处lastPoint即下一个迭代的点以新接受的点开始 PreX=NextX; PreY=NextY; AcceptPoints+; else double change = -1 * ( ObjectFunction(NextX,NextY) - ObjectFunction(PreX,PreY) ) / Temperature ; if( Math.Exp(change) rnd.NextDouble() ) PreX=NextX; PreY=NextY; AcceptPoints+; / 不接受, 保存原解 Console.WriteLine(0,1,2,3,PreX, PreY, ObjectFunction ( PreX, PreY ), Temperature); while( Math.Abs( ObjectFunction( BestX,BestY) ObjectFunction (PreBestX, PreBestY) Tolerance ); C
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 发廊内部管理及流程
- 2026年河北省人教版高一历史第9课中国近代史纲要练习题
- 人生的财务报表
- 保险公司三八妇女节晨会专题
- 在旅行社的实习报告
- 计算与人工智能应用新医科版课件 第4章 智能办公
- 2026年2026春泰山版(新教材)初中信息技术八年级下册同步练习及答案(附目录)新版
- 《乔迁高三新居奋笔青春答卷》-2027届高三开学第一课
- 2026年社会保险法社保经办人员刷题题库及答案
- 2026年联合收割机作业安全管控考核押题卷及答案
- 2024-2025学年广东广州番禺区七年级(下)期末数学试卷及答案
- 2026福建海峡科化股份有限公司社会招聘15人笔试备考题库及答案详解
- 2026北京语言大学新编长聘人员招聘9人(第三批)考试备考题库及答案详解
- 2026秋北京版小学数学二年级上册教学计划
- 消化内镜操作规范
- 护理沟通与人文关怀技巧
- 软包墙面施工方案及技术措施
- 2026年秋季学期 1530安全教育记录
- 病历书写基本规范(国家卫健委2022年版)
- 核心素养导向下大单元教学-成都中考B卷填空题23与几何压轴26最值系列专题复习教案
- DB54T 0616-2026《民用供氧工程施工及验收规范+》
评论
0/150
提交评论