首页 > 其他分享 >模拟退火

模拟退火

时间:2024-08-03 20:08:26浏览次数:7  
标签:RAND rand df int 模拟退火 Delta

接受的概率是 \(e^{\frac{\Delta f}{t}}\times 100 \%\)

代码 exp(df/t)*RAND_MAX>rand()

\(\Delta f\) 是负数!

模板

double t,d=0.999;
void sa()
{
	for(int i=1;i<=100;i++)
	{
		double f1=fun();
		/*
		随机乱搞变化状态 
		生成[-randmax,randmax]的随机数:rand()*2-RAND_MAX 
		*/
		double f2=fun();
		double df=f1-f2;
		if(df<0)
		{
			//接受 
		}
		else if(exp(df/t)*RAND_MAX>rand())//本质是生成一个[0,1]之间的整数与e^(df/t)比较,乘过去即可 
		{
			//接受 
		}
		t*=d;
	}
}

卡时

time(0);
//do something
while(clock()<0.9*CLOCKS_PER_SEC)sa();//0.9!!!
cout<<ans<<endl;

标签:RAND,rand,df,int,模拟退火,Delta
From: https://www.cnblogs.com/tai-chi/p/18340972

相关文章

  • 基于遗传(GA)、粒子群(PSO)、模拟退火(SA)、禁忌搜索(ST)、蚁群算法(ACO)、自自组织神
        ......
  • 模拟退火
    模拟退火必须要单独开一个专题来讲模拟退火了。看到身边很多同学写的模退都是不标准的,步长没有随温度的降低而减小,只能叫随机爬山。系统的学习模退是跟着Acwing的yxc,他写的模退给人一看就有一种豁然开朗,神清气爽的感觉,让你惊叹天下竟然还有如此精妙的算法。是的,优雅的模退......
  • [OI] 模拟退火
    模拟退火是一种适合求样本点较大的多峰函数极值的方法.模拟退火有几个参数:初始温度(\(T_{0}\)),终止温度(\(T_{e}\))和降温参数\(d\),具体地,模拟退火是让每次的当前温度\(T\)变为\(d\timesT\),直到终止,因此\(T_{e}\)应为一个很接近\(0\)的正数,\(d\)应该为一个很接近\(1\)的......
  • 模拟退火学习笔记
    模拟退火学习笔记前言不知道为啥突然有闲情学这个...模拟退火(SimulatedAnnealing),简称\(SA\).是一种基于随机化的算法,无门槛,主要是为了骗分...不是正解!!!!根据爬山算法的过程,我们发现:对于一个当前最优解附近的非最优解,爬山算法直接舍去了这个解。而很多情况下,我们需......
  • 【搜索】【模板】模拟退火
    前置知识自然对数、分数次幂、概率。前言模拟退火可以在我们想不到题目正解的时候试一试其实就是骗分方法。因为纯随机得出正确答案的概率非常低,所以我们就可以加一定的优化,使找到答案概率增大。算法思想温度(步长):每次选择一个范围进行搜索,在搜索过程中范围不断缩小,最后到很......
  • 【人工智能】高级搜索技术(模拟退火搜索算法和遗传算法解决旅行商问题)
    目录一、旅行商问题1.需求分析2.数据结构、功能模块设计与说明2.1数据结构(1)模拟退火搜索算法(2)遗传算法2.2功能模块设计(1)模拟退火搜索算法(2)遗传算法3.核心代码与测试结果说明(1)模拟退火搜索算法(2)遗传算法4.心得体会一、旅行商问题现有一个商人,准备从广州......
  • 模拟退火算法(Simulated Annealing, SA)及微优化(入门)
    模拟退火算法(SimulatedAnnealing,SA)是一种启发式搜索算法,常用于解决优化问题。该算法以概率的方式搜索问题的解空间,并在搜索过程中逐渐降低温度,从而有助于找到全局最优解。模拟退火算法的基本原理如下:初始化:随机生成一个初始解。迭代过程:生成一个新解,这个新解通过一......
  • 利用遗传算法(GA)与模拟退火算法(SA)求目标函数最小值
    要求实现一个演化计算的算法,求测试函数的最小值。要求:群体规模NP=100;最大迭代次数不超过3000代。或者,总的计算次数小于100*3000。算法需独立运行30次,并记录进化的过程。一、遗传算法原理        遗传算法(GeneticAlgorithm,GA)是模拟达尔文生物进化论的自然选择和......
  • 模拟退火(Simulated Annealing, SA)算法是
    模拟退火(SimulatedAnnealing,SA)算法是一种概率型启发式搜索算法,用于寻找优化问题中的全局最优解。它受到冶金学中退火过程的启发,通过模拟金属冷却过程中的退火过程来寻找问题的最优解。以下是使用MATLAB实现模拟退火算法的一个简单示例。这个例子中,我们将使用模拟退火算法来......
  • 基于改进模拟退火(HDSA)优化无人机紧急着陆时的轨迹最优研究(Matlab代码实现)
     ......