如何在算法中(在嵌套的 for 循环中)将文本放在换行符上?

如何在算法中(在嵌套的 for 循环中)将文本放在换行符上?

我正在制作一个带有嵌套 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),所以我只能猜测。根据你给出的代码片段,我使用了包algorithmalgpseudocode添加了缺少的\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}

及其结果:

生成的 pdf

如果这不是您想要的,请编辑您的问题,使您给出的代码片段完整且可编译,并添加结果的屏幕截图并在那里标记您想要更改的内容。并且请回答要求更多信息的评论,使您的问题更清晰...

相关内容