展会信息港展会大全

C#数值计算之模拟退火法简介(二)(2)
来源:互联网   发布日期:2011-10-01 17:18:30   浏览:4318次  

导读:Console.WriteLine({0},{1},{2},{3},PreX,PreY,ObjectFunction(PreX,PreY),Temperature); } while(Math.Abs(ObjectFunction(BestX,BestY)–ObjectFunction(PreBe...




Console.WriteLine("{0},{1},{2},{3}",PreX,PreY,ObjectFunction(PreX,PreY),Temperature);



} while(Math.Abs(ObjectFunction(BestX,BestY)–ObjectFunction(PreBestX,PreBestY))>Tolerance);



Console.WriteLine("最小值在点:{0},{1}",BestX,BestY);

Console.WriteLine("最小值为:{0}",ObjectFunction(BestX,BestY));

}

}

}



l结果:

最小值在点:-1.07678129318956,1.07669421564618

最小值为:-2.26401670947686



l后记:

原来想写一系列的文章,介绍如何用C#解数值问题,这是因为在CSDN上很少有数值计算方面的文章,所以希望能有所补充。

一开始在网上搜索模拟退火的资料并想作为C#数值计算的一个例子,找不到现成的源码。后来自己实验了很久,终于将此程序写出,不敢私藏,拿出来作用模拟退火或者用C#解数值算法问题的一个入门例子。

本文尽量避免太过学术化,如数学和物理名称和公式,仓促下笔,有很多地方可能讲得不是很清楚,希望各位体谅。任何问题或批评,可EMAIL与我:armylau2@163.com

另,模拟退火还可以应用到其它更多更复杂的问题,如“推销员问题”等组合优化问题。本例只是求一个二维函数的最小值问题,而且其冷却表参数的选择也过于简单,只能作用一个初步的入门简介,请读者注意。





l参考文献:

1.http://www.computer-dictionary-online.org/index.ASP?q=simulated annealing 计算机词典

2.NumericRecipesinC

3.计算方法丛书非数值并行算法(第一册)模拟退火算法


赞助本站

人工智能实验室

相关热词: 简介 模拟 计算 数值 // NextX

相关内容
AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港