%%{init:{'gitGraph':{'mainBranchName':'自旋玻璃'},'themeVariables':{'commitLabelBackground': 'None','commitLabelFontSize':'30px'}}}%%
gitGraph
commit id:"数学"
commit id:"凝聚态物理学"
branch "Python和MATLAB自旋玻璃投资组合神经网络广义方程"
branch "Python和C++及MATLAB低温磁态机器学习模型"
checkout "Python和MATLAB自旋玻璃投资组合神经网络广义方程"
commit id:"模拟"
commit id:"热图"
commit id:"量子近似优化算法"
checkout "Python和C++及MATLAB低温磁态机器学习模型"
commit id:"小规模磁态训练模型"
commit id:"贪婪算法"
commit id:"模拟退火算法"
commit id:"并行回火算法"
commit id:"图神经网络"
commit id:"机器学习"
checkout "自旋玻璃"
merge "Python和MATLAB自旋玻璃投资组合神经网络广义方程"
merge "Python和C++及MATLAB低温磁态机器学习模型"
pie title 语言分比
"Python":90
"C/C++":70
"MATLAB":30
pie title 内容分比
"算法模型":90
"凝聚态物理学":80
"数学":50
"磁性行为":30
"爱德华兹-安德森模型":20
"自旋玻璃":30
我们将要实现的马尔可夫决策过程是一个离散时间随机控制过程。它提供了一个数学框架,用于在结果部分随机、部分受决策者控制的情况下对决策进行建模。马尔可夫决策过程是一种对顺序决策问题进行建模的工具,其中决策者以顺序方式与环境进行交互。
假设问题是:我们有一个由 12 个状态组成的世界,1 个障碍初始状态(状态 5)和 2 个结束状态(状态 10、11)。对于每个状态,我们都有一个奖励,我们希望找到实施最佳奖励累积的策略。对于每个状态,奖励为 -0.04(r=-0.4)。对于状态 10,奖励为 1,对于结束状态 11,奖励为 -1。
$$ \begin{array}{|l|l|l|l|} \hline 1 & 4 & 7 & 10 \\ \hline 2 & 5 & 8 & 11 \\ \hline 3 & 6 & 9 & 12 \\ \hline \end{array} $$
对于所处的每一个状态,我们都想找到最好的行动,是向北(N)、向南(S)、向东(E)还是向西(W)走。基本上,我们希望以最短的路到达状态 10。首先,让我们创建一个世界类,它将在我们的世界中用于解决问题。这个对象可以帮助我们声明世界、绘制世界并绘制我们发现的移动世界的策略。方法 plot_world
绘制了我们上面看到的图像,将使用值迭代方法代替策略迭代。
使用策略迭代求解马尔可夫决策过程,其中 γ = 0.9 和 r = 0.04。我们使用均匀随机策略初始化了策略迭代算法。并且分别使用 World 类的绘制值和绘制策略函数,将每次迭代步骤后的值函数和策略绘制成网格世界的两个不同图形,我们得到了以下结果:
初次迭代:网格世界值