有没有碰到过可以通过建立物理模型来解决的数学题?

一个比较cute的例子是用退火算法来解魔方,更广义的来说就是解全局最优化的问题

退火算法一种由统计力学启发的做优化问题的方法。当一个问题的势能面非常复杂并有很多local minima的时候,用梯度的方法很容易卡在一个local最优而非全局最优的地方。退火的策略就是可以将系统的有效温度升高然后慢慢"降温"来寻找能量最低点。这样做的好处是当系统状态离全局最优的位置较远时,比较剧烈的涨落来探索更多的可能路径,这样不比较不容易卡在一个的路径上。当温度降低后,系统就更将倾向于能量的最低,当"温度"降为零的时候,优化自由能的问题就变成能量的最低点。

Chen和Ding在一篇文章里面就用这种退火的方法来解魔方【1】。在某种程度上说,魔方的能量最小化的问题可以类比一个有几何限制的六面Ising Model。当然因为几何和操作的限制,使得魔方的势能面变得非常复杂。可以想象当魔方被打乱的时候,能量是高的,而当魔方还原的之后的能量是处于一个能量最低点。每次操作定义为对魔方的旋转操作,并计算操作之后的能量变化,根据metropolis算法来接受或者拒绝每一次的操作。同时通过分步地将魔方整理,依次sort 面,边和角块,并通过交替使用两种能量函数针对解决跳出每一步local minima的问题。

用他们的方法可以做到在一个电脑上用996s解一个一百零一阶的魔方。解一个5000阶的魔方在hpc上用8个node只需要半个小时左右.

当然解魔方并不必须用退火的方法,用Group Theory是更自然的表示。只是把统计力学的方法和魔方结合起来感觉还是很有趣的想法。感兴趣的小伙伴可以看看他们的文章。


Reference:

[1] Xi Chen, Z.J. Ding, Solving extra-high-order Rubik's Cube problem by a dynamic simulated annealing, Computer Physics Communications 183 (2012) 1658–1663



来源:知乎 www.zhihu.com
作者:SushiCondensate

【知乎日报】千万用户的选择,做朋友圈里的新鲜事分享大牛。 点击下载

此问题还有 28 个回答,查看全部。

没有评论:

发表评论