模拟退火法、遗传算法求解多皇后问题

一、问题背景

多皇后问题是一个经典的问题,在一个 N x N 的棋盘上放置 N 个皇后,使其不能互相攻击 (每行、每列、每一斜线上分别只能放置一个皇后) ,求解 N 皇后问题的复杂度随 N 呈指数级增加;

传统的求解方法采用基于回溯算法的策略,当 N 过大时不再适用,转而使用启发式算法求解,目前常见的启发式算法包括模拟退火法、遗产算法、蚁群算法等,这些算法引入了随机因素,一般能快速地找到满意解;

二、模拟退火法
2.1 模拟退火的原理

模拟退火法的原理和金属退火类似,在温度较高时更容易改变金属结构,在温度变低后结构趋于稳定,模拟退火的基本思想:
(1)初始化产生一个新解 S S S,以及温度 T T T
(2)在 S S S 的邻域搜索,得到一个新解 S ′ S' S
(3)使用评估函数 f f f,得到 Δ t ′ = f ( S ) − f ( S ′ ) \Delta t' = f(S) - f(S') Δt=f(S)f(S), f ( S ′ ) f(S') f(S) 越低表示 S ′ S' S 距离最优解越接近;
(4)若 Δ t ′ > 0 \Delta t' > 0 Δt>0,说明 S ′ S' S 要优于 S S S,我们接受该解, S ← S ′ S \leftarrow S' SS
(5)若 Δ t ′ < 0 \Delta t' < 0

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值