Hallo, ich versuche, Pseudocode in Latex zu schreiben
Ich kann den Fehler in Zeile 8 nicht beheben
Code:
\begin{algorithm} \caption{Učící mechanismus všech obcí}
\begin{algorithmic}[1]
\While {Obce ještě nedokonvergovaly}
\State t=t+1
\ForEach {KNIES_p $\in$ Population}
\For{$X_i$ $\in$ Zařazené body}
\State KNIES_p.\quad \textbf{Learn}($X_i$, $\beta_t = \frac{t\beta_T}{T}$)
\EndFor
\If{KNIES_p {$\qaq$} KNIES}
\State KNIES(t) = KNIES_p
\end{algorithmic}
\end{algorithm}
Antwort1
Du hastvieleFehler, meist aufgrund einer unsachgemäßen Behandlung mathematischer Symbole.
Es gibt keinen vordefinierten \ForEach
Block, Sie müssen ihn selbst definieren.
Geben Sie eine Definition für an \qaq
, dies ist kein Standardbefehl.
\documentclass[a4paper]{article}
\usepackage[T1]{fontenc}
\usepackage[czech]{babel}
\usepackage{algorithm,algpseudocode}
\algblockx{ForEach}{EndForEach}{\textbf{foreach} }{\textbf{end foreach}}
\newcommand{\ivar}[1]{\mathit{#1}}
\newcommand{\tvar}[1]{\textrm{#1}}
\newcommand{\qaq}{???} % what's this?
\begin{document}
\begin{algorithm} \caption{Učící mechanismus všech obcí}
\begin{algorithmic}[1]
\While {Obce ještě nedokonvergovaly}
\State $t=t+1$
\ForEach {$\ivar{KNIES}_p \in \tvar{Population}$}
\For{$X_i\in\tvar{Zařazené body}$}
\State $\ivar{KNIES}_p$.\quad
\textbf{Learn}($X_i$, $\beta_t = \frac{t\beta_T}{T}$)
\EndFor
\EndForEach
\If{$\ivar{KNIES}_p \qaq \ivar{KNIES}$}
\State $\ivar{KNIES}(t) = \ivar{KNIES}_p$
\EndIf
\EndWhile
\end{algorithmic}
\end{algorithm}
\end{document}