模拟退火 poj3422 run away
来源:互联网 发布:视频人脸打马赛克软件 编辑:程序博客网 时间:2024/05/21 07:09
题目 :http://poj.org/problem?id=1379
题目大意 :平面上有n个点,然后在平面上找一个位置(x,y),使得(x,y)到n各点的最短距离
尽量大。
算法 :模拟退火。
思路 :设距离是D,则D
的问题。由于没有明显的单调性,因此分治算法不太好用, 只能用模拟退火了。下面给出
模拟退火算法流程。
1 :在平面内随机生成若干个点
2 :确定火的最大温度t,及递减程度(退火比例)
3 :对于每一个温度,枚举1中的若干个点
4 :对于每个点,进行(p – t, p +t)区间内的随机变化得到新点(x1,y1)。
5 :若新点优于旧点,则将新点替换为新点。
6 :回到2,直到温度低到要求精度。
7 :输出一开始随机的若干点中的最好解。
提交情况 :time limit error1 次, 随机点的个数及点在指定温度内的变化次数增加
收获 :学习了三大随机算法之一的模拟退火算法。 但是还是简单版。有待提升
ACcode
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include <time.h>
#define MAXM 1010
#define _P 50
#define _Times 40
typedef doublereal;
structPOINT_NODE{
};
structANS_NODE{
};
ANS_NODE ANS[_P];
POINT_NODE point[MAXM];
real X, Y;
int M;
real Rand_real(inta, int b){
}//随机取得a~b之间的一个实数
real evaluate(POINT_NODE p){
}//评¨¤价?函¡¥数ºy
ANS_NODE Get_ANS(real x1, real x2, real y1, realy2){
}//用给定的范围随机生成一个解
int main(){
}
- 模拟退火 poj3422 run away
- 【模拟退火】 poj1379 Run Away
- 【POJ1379】Run Away 模拟退火
- 模拟退火 hdu1109 Run away
- HDU 1579 Function Run Fun
- ActiveMq1: Run Stand Alone.
- POJ--1379[Run Away] 模拟退火
- 【POJ 1379 Run Away模拟退火】
- poj 1379 Run away 模拟退火
- POJ 1379 Run Away(基础模拟退火)
- poj 1379 Run Away(模拟退火)
- [poj 1379]Run Away[模拟退火]
- POJ 1379 Run Away(模拟退火)
- 模拟退火算法(run away poj1379)
- poj 1379 Run Away 模拟退火
- POJ 1379 Run Away 模拟退火
- POJ 1379 run away 模拟退火算法
- HDU 1109 Run Away 模拟退火算法
- poj1961 KMP
- AC自动机(确定性有限状态自动机)
- 2011年04月06日
- HTML5之Web Worker
- 2011年04月06日的日记
- 模拟退火 poj3422 run away
- hdu3689 AC自动机Dp
- 平面最近圆对儿 hdu3124
- hdu3400 三分法
- 智能避障小车顺利结束
- 内部类和外部类
- poj1015 DP
- poj2018 最大平均值
- hdu3440 差分约束系统