RL系列蒙特卡罗方法——Soap Bubble
Posted jinyublog
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RL系列蒙特卡罗方法——Soap Bubble相关的知识,希望对你有一定的参考价值。
“肥皂泡”问题大致的描述如下:
用一个铁丝首尾相连组成闭合曲线,浸入肥皂泡液,拿起后,可以发现肥皂泡液以这个闭合曲线为边界形成了一个曲面。如何将这个曲面描述出来,便是肥皂泡问题的核心。
若想使得肥皂泡液形成一个稳固的曲面,肥皂泡上的每一个点所受到的合力均为0,所以这意味着该点所处的位置是周边所有点位置的均值(在这里忽略重力的影响,肥皂泡的密度量级与空气相当)。所以在计算曲面时,可以先将闭合曲线投影到x-y平面上,然后用一个点的高度(坐标z)来表示曲面上该点周边所有点位置的均值(该点位置的x,y值是不变的)。
常用的方法是迭代法,依次迭代求解投影到x-y平面上的闭合曲线包围的点的高度值。不过当计算某一个或某几个点的高度时可以使用Monte Carlo Method提高计算效率。
先来尝试一下迭代法求解,这里直接给出算法流程:
- 投影闭合曲线到x-y平面
- 从闭合曲线内的第一个点开始迭代
- 当前被迭代的点在x-y平面上的位置为(x, y),则高度hight,$ H(x, y) $可用该公式计算:$$ H(x, y) = frac{1}{4}(H(x + 1, y) + H(x - 1, y) + H(x, y + 1) + H(x, y - 1)) $$
- 到达闭合曲线内的最后一个点,判断高度$ H $是否收敛,如未收敛继续迭代。
以上是关于RL系列蒙特卡罗方法——Soap Bubble的主要内容,如果未能解决你的问题,请参考以下文章
Reinforcement Learning强化学习系列之四:时序差分TD
Reinforcement Learning强化学习系列之四:时序差分TD