HDU1109 模擬退火演算法

2021-12-30 10:25:41 字數 974 閱讀 1101

hdu1109runaway模擬退火演算法:模擬退火,聽起來很高大上的樣子,但是實現起來非常簡單…對於這道題,我們可以隨機選擇30個源點,以step為步長,讓它們沿任意角度跳躍,直到不管如何跳躍,答案都比當前最優值差。

但是這道題並不需要「正統」模擬退火一般設立機率接受比當前差的結果。

**#include

#include

#include

#include

#include

using namespace std;

const int inf = 1 << 31 -1, maxn = 1005;

const double exps = 1e-3; //最小步長,比精度低2位即可

const double pi = acos(-1.0);

int x, y, m;

double x[maxn], y[maxn];

double a[maxn], b[maxn], best[maxn];

inline double rand(double l, double r) //生成區間[l, r]間的隨機數

inline double pow(double x)

inline double dist(double x1, double y1, double x2, double y2)

int main()

double step = max(x, y);

while(step > exps)

}step *= 0.85;

}int t = 1;

for(i = 2; i <= 30 ;i++)

if(best[i] >= best[t]) t = i;

printf("the safest point is (%.1lf, %.1lf).\n", a[t], b[t]);

}return 0;

}

POJ2420 HDU1109 模擬退火

n區域性搜尋,模擬退火,遺傳演算法,禁忌搜尋的形象比喻 為了找出地球上最高的山,一群有志氣的兔子們開始想辦法。1 兔子朝著比現在高的地方跳去。他們找到了不遠處的最高山峰。但是這座山不一定是珠穆朗瑪峰。這就是區域性搜尋,它不能保證區域性最優值就是全域性最優值。2 兔子喝醉了。他隨機地跳了很長時間。這期...

模擬退火演算法

w 模擬退火演算法的基本思想 將乙個優化問題比擬成乙個金屬物體,將優化問題的目標函式比擬成物體的能量,問題的解比擬成物體的狀態,問題的最優解比擬成能量最低的狀態,然後模擬金屬物體的退火過程,從乙個足夠高的溫度開始,逐漸降低溫度,使物體分子從高能量狀態緩慢的過渡到低能量狀態,直至獲得能量最小的理想狀態...

模擬退火演算法

一些求解極值的問題不能通過函式特性直接求解,只能暴力列舉,但是單純的列舉效率不高,通過模擬退火演算法可以高效的找到答案。學習好博文 最小圓覆蓋 hdu 3007 buried memory 大意 給出一些點,求出能覆蓋他們的最小的圓。輸出圓心和半徑 include include include i...