我正在制作一个带有嵌套 for 循环的算法,循环中有多个。它们显示在同一行,但我希望它们从换行符开始。有什么想法可以做到这一点吗?
这是我的代码:
\begin{algorithm}
\begin{algorithmic}[1]
\State {Input $\pi$, the random policy}
\State {Initialize V(s)=0 for all s $\in$ S}
\State {Repeat}
\State {$\Delta$ \gets 0}
\For{for each s $\in$ S }:
\For{for each direction $\in$ directions }:
\For{for slide in slides}:
\State{v \gets V(s)}
\State{V(s) \gets \sum_{a} $\pi${(s,a)}\sum_{s'}P_{ss'}^{a}[R_{ss'}^{a}+\gamma V(s')]}
\State{$\Delta$ \gets max($\Delta$,\mid v-V(s)\mid)}
\State{Until $\Delta$ < $\Theta$ ($\Theta$ = 0,01}
\State{Output V \approx V^{$\pi$}}
\EndProcedure
\end{algorithmic}
\caption{Policy evaluation}
\end{algorithm}
答案1
好吧,因为你没有给我们完整的可编译 TeX 代码 (MWE),所以我只能猜测。根据你给出的代码片段,我使用了包algorithm
并algpseudocode
添加了缺少的\EndFor
命令。我在你的代码中更正、添加或移动了一些$
...
请参阅以下 MWE
\documentclass{article}
\usepackage{algorithm}% <=========================== \State
\usepackage{algpseudocode}
\begin{document}
\begin{algorithm}
\begin{algorithmic}[1]
\Procedure{test}{Output} % <============================================
\State {Input $\pi$, the random policy}
\State {Initialize V(s)=0 for all s $\in$ S}
\State {Repeat}
\State {$\Delta \gets 0$}
\For{for each s $\in$ S}
\For{for each direction $\in$ directions}
\For{for slide in slides}
\State{v $\gets$ V(s)}
\State{$V(s) \gets \sum_{a} \pi{(s,a)}\sum_{s'}P_{ss'}^{a}[R_{ss'}^{a}+\gamma V(s')]$}
\State{$\Delta \gets max(\Delta,\mid v-V(s)\mid)$}
\State{Until $\Delta$ < $\Theta$ ($\Theta$ = 0,01}
\State{Output $V \approx V^{\pi}$}
\EndFor% <==========================================================
\EndFor% <============================================================
\EndFor% <==============================================================
\EndProcedure
\end{algorithmic}
\caption{Policy evaluation}
\end{algorithm}
\end{document}
及其结果:
如果这不是您想要的,请编辑您的问题,使您给出的代码片段完整且可编译,并添加结果的屏幕截图并在那里标记您想要更改的内容。并且请回答要求更多信息的评论,使您的问题更清晰...