एल्गोरिथ्म और एल्गोरिथ्म usepackages के साथ त्रुटियाँ
Oct 16 2020
मैं एल्गोरिथ्म और एल्गोरिथम पर्यावरण के भीतर स्यूडोकोड लिख रहा हूं, लेकिन नंबरिंग और टाइपिंग दोनों पूरी तरह से गड़बड़ हो गए हैं।
\usepackage{algorithm}
\usepackage{algorithmic}
\usepackage[noend]{algpseudocode}
\usepackage{amsmath,amssymb}
\begin{document}
\begin{algorithm}
\vspace*{2mm}
\caption{Backtracking for TSP} \label{alg:backtracking}
\emph{TSP\_BruteForce1(R,S)}
\begin{algorithmic}[1]
\If {$S$ empty}
\State $minCost$ \gets length tour
\Else{}
\State $minCost \gets \infty$
\ForEach {city $i$ in $S$}
\State Remove $i$ from $S$ and append $i$ to $R$
\State $minCost$ \gets $min(minCost, TSP\_BruteForce1(R,S))$
\State Reinsert $i$ in $S$ and remove $i$ from $R$
\EndFor
\EndIf
\Return {$minCost$}
\end{algorithmic}
\end{algorithm}
\end{document}
मैंने हर जगह घुंघराले ब्रैकेट को जोड़ने और हटाने की कोशिश की है, लेकिन यह बहुत कुछ नहीं करता है।
जवाब
1 Werner Oct 16 2020 at 00:45
आप यहाँ असंगत पैकेज मिला रहे हैं - algorithmic( algorithmsबंडल से ) और algpseudocode(से algorithmicx)। पूर्व को गिराएं और अपने चर और फ़ंक्शन कॉल के लिए कुछ नई परिभाषाएं बनाएं। बेशक, आप अपनी पसंद के हिसाब से इन्हें बदल सकते हैं।
\documentclass{article}
\usepackage{algorithm}
\usepackage[noend]{algpseudocode}
\usepackage{amsmath}
\newcommand{\var}{\texttt}
\newcommand{\func}{\textsl}
\newcommand{\algorithmicforeach}{\textbf{for each}}
\algdef{S}[FOR]{ForEach}[1]{\algorithmicforeach\ #1\ \algorithmicdo}
\begin{document}
\begin{algorithm}
\caption{Backtracking for TSP}
\func{TSP\_BruteForce1}($\var{R}, \var{S}$)
\begin{algorithmic}[1]
\If {$S$ empty}
\State $\var{minCost} \gets \text{length tour}$
\Else
\State $\var{minCost} \gets \infty$
\ForEach {city $i$ in $S$}
\State Remove $i$ from $S$ and append $i$ to $R$
\State $\var{minCost} \gets \min(\var{minCost}, \func{TSP\_BruteForce1}(R, S))$
\State Reinsert $i$ in $S$ and remove $i$ from $R$
\EndFor
\EndIf
\State \Return \var{minCost}
\end{algorithmic}
\end{algorithm}
\end{document}