Poj 1379
题意:给定n个点,你需要在给定矩形范围内找到一个点,使得它到这n个点的距离的最小值最大。
一开始是用的顾研的方法,但总是AC不了,听盾哥说他那个有问题。正确的算法流程应该是:
初始化:初始温度de(充分大),初始p个并行解状态S(算法迭代的起点), 失败次数上限L,接受参数x,衰变系数kk
While de<esp do
For 每个状态S
随机调解方向
While 失败次数<L do
调整得到S’
If C[S’]<C[S] or random<x*exp(C[S]-C[S’]) then
成功,m:=0; S:=S’{这样下一次是继续这个方向调整,而且温度不衰变}
Else 随机调整方向
De:=de*kk
那个random的概率不要设太大,但要有这么个概率,使得解有可能变优。
而且注意de表示的是欧几里得距离,用曼哈顿距离减常数会错。