Algoritmic2e ERRORE

  • Creatore
    Topic
  • #83594
    Up
    0
    Down
    ::


    Ciao a tutti.
    Sto ultimando la tesi però mi segna un errore che non riesco a capire in un capitolo del file. Precisamente dove è presente un algoritmo che ho scritto con il pacchetto algoritmic2e. Sto uscendo pazza e non riesco a capire qual è il problema visto che segna semplicemente la mancanza di un $.
    Riporto il file e il preambolo nella speranza che qualcuno capisca di cosa si tratta e sperando anche che il problema non sia prima dell’algoritmo.

    `\documentclass[12pt,oneside,a4paper,titlepage]{book}
    \usepackage[latin1]{inputenc}
    \usepackage[T1]{fontenc}
    \usepackage{microtype}
    \usepackage{amsmath,amsfonts,amssymb}
    \usepackage{amsthm}
    \usepackage{makeidx}
    \usepackage{graphicx}
    \usepackage[all]{xy}

    \graphicspath{{./figure/}}
    %\usepackage{fancyhdr}
    \usepackage[italian]{babel}

    \textwidth=15cm \textheight=21cm \topmargin=0.5cm
    \oddsidemargin=0.5cm \evensidemargin=0.5cm \pagestyle{plain}

    \usepackage[italian]{babel}
    \usepackage{latexsym}
    \usepackage{amssymb}
    \usepackage{amscd}
    \usepackage{amsmath}
    \usepackage{pifont}
    \usepackage[latin1]{inputenc}
    \usepackage{booktabs}
    \usepackage{hyperref}
    \usepackage[ruled,vlined]{algorithm2e}
    \begin{document}
    {\renewcommand{\baselinestretch}{1}
    \begin{algorithm}
    \DontPrintSemicolon
    \KwData{$a_1 ,\ldots,a_r ,b_1 ,\ldots,b_{r'}\in\NN^n,s\in\NN$}
    \KwResult{\verb”true” se $\sd(I/J)=s$}
    \nl P:=Poset($a_1 ,\ldots,a_r ,b_r ,\ldots,b_{r'}$)\;
    \nl\ForEach{$p_i\in P_{<}$}{ $S_i^{(s)}:=\widetilde{\rho}(p_i )$\; $j_i :=0$\; } \nl i:=1\; \nl\While{1\leq i\leq|S^{(s)}|}{ \nl\If{$p_i$ è coperto}{\verb"isCovered":=true} \nl\While{\neg \verb"isCovered" \ e \ $j_i <|S_i^{(s)}|$} { $j_i := j_i +1$\; \verb"isCovered":=\verb"tryInterval"$(p_i ,S_i^{(s)}(j_i ))$\; } \nl\If({i:=i+1}){\verb"isCovered"}\ \Else{ \nl $j_i :=0$\; $i:=i-1$\; \verb"goBack":=true\; \nl\While{$i>0$ e \verb”goBack”}{
    \nl\uIf{$j_i =|S_i^{(s)}|$}{
    \verb”uncoverInterval”$(p_i, S_i^{(s)}(j_i ))$\;
    $j_i :=0$\;
    $i:=i-1$}\
    \uElseIf{$j_i\neq 0$}{
    \verb”uncoverInterval”$(p_i, S_i^{(s)}(j_i ))$\;
    \verb”goBack”:=false}\
    \lElse{$i:=i-1$}
    }\;
    }}
    \nl\eIf{$i=0$}{\textbf{return} false}{\textbf{return} true}
    \caption{Algoritmo: algoritmo per il calcolo della Stanley depth\label{Alg}}
    \end{algorithm}
    }
    \end{document}`

Visualizzazione 4 filoni di risposte
  • Autore
    Risposte
    • #83595
      Up
      0
      Down
      ::

      Ga” post=82926Ciao a tutti.
      Sto ultimando la tesi però mi segna un errore che non riesco a capire in un capitolo del file. Precisamente dove è presente un algoritmo che ho scritto con il pacchetto algoritmic2e. Sto uscendo pazza e non riesco a capire qual è il problema visto che segna semplicemente la mancanza di un $.
      Riporto il file e il preambolo nella speranza che qualcuno capisca di cosa si tratta e sperando anche che il problema non sia prima dell’algoritmo.

      `\documentclass[12pt,oneside,a4paper,titlepage]{book}
      \usepackage[latin1]{inputenc}
      \usepackage[T1]{fontenc}
      \usepackage{microtype}
      \usepackage{amsmath,amsfonts,amssymb}
      \usepackage{amsthm}
      \usepackage{makeidx}
      \usepackage{graphicx}
      \usepackage[all]{xy}

      \graphicspath{{./figure/}}
      %\usepackage{fancyhdr}
      \usepackage[italian]{babel}

      \textwidth=15cm \textheight=21cm \topmargin=0.5cm
      \oddsidemargin=0.5cm \evensidemargin=0.5cm \pagestyle{plain}

      \usepackage[italian]{babel}
      \usepackage{latexsym}
      \usepackage{amssymb}
      \usepackage{amscd}
      \usepackage{amsmath}
      \usepackage{pifont}
      \usepackage[latin1]{inputenc}
      \usepackage{booktabs}
      \usepackage{hyperref}
      \usepackage[ruled,vlined]{algorithm2e}
      \begin{document}
      {\renewcommand{\baselinestretch}{1}
      \begin{algorithm}
      \DontPrintSemicolon
      \KwData{$a_1 ,\ldots,a_r ,b_1 ,\ldots,b_{r'}\in\NN^n,s\in\NN$}
      \KwResult{\verb”true” se $\sd(I/J)=s$}
      \nl P:=Poset($a_1 ,\ldots,a_r ,b_r ,\ldots,b_{r'}$)\;
      \nl\ForEach{$p_i\in P_{<}$}{ $S_i^{(s)}:=\widetilde{\rho}(p_i )$\; $j_i :=0$\; } \nl i:=1\; \nl\While{1\leq i\leq|S^{(s)}|}{ \nl\If{$p_i$ è coperto}{\verb"isCovered":=true} \nl\While{\neg \verb"isCovered" \ e \ $j_i <|S_i^{(s)}|$} { $j_i := j_i +1$\; \verb"isCovered":=\verb"tryInterval"$(p_i ,S_i^{(s)}(j_i ))$\; } \nl\If({i:=i+1}){\verb"isCovered"}\ \Else{ \nl $j_i :=0$\; $i:=i-1$\; \verb"goBack":=true\; \nl\While{$i>0$ e \verb”goBack”}{
      \nl\uIf{$j_i =|S_i^{(s)}|$}{
      \verb”uncoverInterval”$(p_i, S_i^{(s)}(j_i ))$\;
      $j_i :=0$\;
      $i:=i-1$}\
      \uElseIf{$j_i\neq 0$}{
      \verb”uncoverInterval”$(p_i, S_i^{(s)}(j_i ))$\;
      \verb”goBack”:=false}\
      \lElse{$i:=i-1$}
      }\;
      }}
      \nl\eIf{$i=0$}{\textbf{return} false}{\textbf{return} true}
      \caption{Algoritmo: algoritmo per il calcolo della Stanley depth\label{Alg}}
      \end{algorithm}
      }
      \end{document}`

      È scritto davvero male, sai? Matematica sì o no sembra scelto a caso.

      Comunque l’errore è nel secondo [tt]\While[/tt]: ci va un [tt]$[/tt] prima di [tt]\neg[/tt]:
      `
      \While{$\neg \mytt{isCovered}$ e $j_i <|S_i^{(s)}|$} ` Invece di [tt]\verb"xyz"[/tt] userei `\newcommand\ttvar[1]{\textnormal{\ttfamily#1}}` e [tt]\ttvar{xyz}[/tt]. Ciao Enrico

    • #83596
      Up
      0
      Down
      ::


      Ciao Gaia,

      non conosco affatto il pacchetto che usi. Comunque, dopo aver fatto delle prove commentando tutto e decommentando via via nuove righe di codice ho trovato l’errore. Alla riga 43 tu scrivi:
      `\nl\While{\neg \verb”isCovered” \ e \ $j_i <|S_i^{(s)}|$}` mentre dovresti scrivere: `\nl\While{$\neg$ \verb"isCovered" \ e \ $j_i <|S_i^{(s)}|$}` Essendo un simbolo matematico [tt]\neg[/tt] va messo fra dollari. Ciao, Marco.

    • #83597
      Up
      0
      Down
      ::


      Grazie a tutti per la risposta! Finalmente ho trovato l’errore, scusate per la domanda risultata poi banale. Comunque Enrico, so che è scritto male, è la prima volta che ho utilizzato questo pacchetto e ho dovuto imparare tutto da sola e in pochissimo tempo. Chiaramente ogni consiglio per migliorarlo è molto ben accetto!
      Grazie ancora.
      Gaia

    • #83598
      Up
      0
      Down
      ::

      Ga” post=82938Grazie a tutti per la risposta! Finalmente ho trovato l’errore, scusate per la domanda risultata poi banale. Comunque Enrico, so che è scritto male, è la prima volta che ho utilizzato questo pacchetto e ho dovuto imparare tutto da sola e in pochissimo tempo. Chiaramente ogni consiglio per migliorarlo è molto ben accetto!
      Grazie ancora.
      Gaia

      Forse così?

      Ho eliminato un po’ di pacchetti che non servivano per l’esempio.

      Passa a utf8 al più presto possibile; l’ho messo, informati sull’Arte al riguardo; ma non usarlo nei tuoi documenti se prima non li converti.

      `\documentclass[12pt,oneside,a4paper,titlepage]{book}
      \usepackage[utf8]{inputenc}
      \usepackage[T1]{fontenc}
      \usepackage[italian]{babel}

      \usepackage{microtype}
      \usepackage{amsmath,amsfonts,amssymb}

      \usepackage[ruled,vlined]{algorithm2e}

      \newcommand{\ttvar}[1]{\textnormal{\ttfamily#1}}
      \newcommand{\NN}{\mathbb{N}}
      \DeclareMathOperator{\sd}{sd} % ???

      \begin{document}

      \begin{algorithm}
      \DontPrintSemicolon
      \KwData{$a_1 ,\ldots,a_r ,b_1 ,\ldots,b_{r'}\in\NN^n,s\in\NN$}
      \KwResult{true se $\sd(I/J)=s$}
      \nl
      $P:=\operatorname{Poset}(a_1 ,\ldots,a_r ,b_r ,\dots,b_{r'}$)\;
      \nl
      \ForEach{$p_i\in P_{<}$}{ $S_i^{(s)}:=\widetilde{\rho}(p_i )$\; $j_i :=0$\; } \nl $i:=1$\; \nl \While{$1\leq i\leq|S^{(s)}|$}{ \nl \If{$p_i$ è coperto}{$\ttvar{isCovered}:=$true} \nl \While{$\neg \ttvar{isCovered}$ e $j_i <|S_i^{(s)}|$}{ $j_i := j_i +1$\; \ttvar{isCovered}:=\ttvar{tryInterval}$(p_i ,S_i^{(s)}(j_i ))$\; } \nl \If{$(i:=i+1)$}{\ttvar{isCovered}}\; \Else{ \nl $j_i :=0$\; $i:=i-1$\; $\ttvar{goBack}:=$true\; \nl \While{$i>0$ e \ttvar{goBack}}{
      \nl
      \uIf{$j_i =|S_i^{(s)}|$}{
      \ttvar{uncoverInterval}$(p_i, S_i^{(s)}(j_i ))$\;
      $j_i :=0$\;
      $i:=i-1$
      }\;
      \uElseIf{$j_i\neq 0$}{
      $\ttvar{uncoverInterval}(p_i, S_i^{(s)}(j_i ))$\;
      $\ttvar{goBack}:=$false
      }\;
      \lElse{$i:=i-1$
      }
      }\;
      }
      }
      \nl
      \eIf{$i=0$}{\textbf{return} false}{\textbf{return} true}
      \caption{Algoritmo: algoritmo per il calcolo della Stanley depth\label{Alg}}
      \end{algorithm}

      \end{document}`
      Ciao
      Enrico

    • #83599
      Up
      0
      Down
      ::


      Ok, grazie mille Enrico! e scusa se ho inserito gli altri pacchetti, era giusto per far prima!!
      Buona giornata.
      Gaia

Visualizzazione 4 filoni di risposte
  • Devi essere connesso per rispondere a questo topic.

Go to top