mirror of
https://github.com/MartinThoma/LaTeX-examples.git
synced 2025-04-25 06:18:05 +02:00
Pseudocode eingedeutscht
This commit is contained in:
parent
bc73a5a948
commit
4924652496
4 changed files with 37 additions and 25 deletions
|
@ -100,7 +100,18 @@ Die Vokabularbestimmung kann zu jedem Zeitpunkt $t$ durchgeführt
|
||||||
werden, muss es aber nicht.
|
werden, muss es aber nicht.
|
||||||
|
|
||||||
In \cref{alg:DYCOS} wird der DYCOS-Algorithmus als
|
In \cref{alg:DYCOS} wird der DYCOS-Algorithmus als
|
||||||
Pseudocode vorgestellt.
|
Pseudocode vorgestellt:
|
||||||
|
In \cref{alg1:l8} wird für jeden unbeschrifteten Knoten
|
||||||
|
durch die folgenden Zeilen eine Beschriftung gewählt.
|
||||||
|
|
||||||
|
\Cref{alg1:l10} führt $r$ Random Walks durch.
|
||||||
|
In \cref{alg1:l11} wird eine temporäre Variable für den aktuell
|
||||||
|
betrachteten Knoten angelegt.
|
||||||
|
|
||||||
|
In \cref{alg1:l12} bis \cref{alg1:l21} werden einzelne Random Walks
|
||||||
|
der Länge $l$ durchgeführt, wobei die beobachteten Beschriftungen
|
||||||
|
gezählt werden und mit einer Wahrscheinlichkeit von $p_S$ ein
|
||||||
|
struktureller Sprung durchgeführt wird.
|
||||||
|
|
||||||
\begin{algorithm}
|
\begin{algorithm}
|
||||||
\begin{algorithmic}[1]
|
\begin{algorithmic}[1]
|
||||||
|
@ -112,20 +123,23 @@ Pseudocode vorgestellt.
|
||||||
\Ensure Klassifikation von $V_t \setminus V_{L,t}$\\
|
\Ensure Klassifikation von $V_t \setminus V_{L,t}$\\
|
||||||
\\
|
\\
|
||||||
|
|
||||||
\ForAll{Knoten $v \in V_t \setminus V_{L,t}$}
|
\ForAll{Knoten $v \in V_t \setminus V_{L,t}$}\label{alg1:l8}
|
||||||
\State $d \gets $ defaultdict
|
\State $d \gets $ leeres assoziatives Array
|
||||||
\For{$i = 1, \dots,r$}
|
\For{$i = 1, \dots,r$}\label{alg1:l10}
|
||||||
\State $w \gets v$
|
\State $w \gets v$\label{alg1:l11}
|
||||||
\For{$j= 1, \dots, l$}
|
\For{$j= 1, \dots, l$}\label{alg1:l12}
|
||||||
\State $sprungTyp \gets \Call{random}{0, 1}$
|
\State $sprungTyp \gets \Call{random}{0, 1}$
|
||||||
\If{$sprungTyp \leq p_S$}
|
\If{$sprungTyp \leq p_S$}
|
||||||
\State $w \gets$ \Call{SturkturellerSprung}{$w$}
|
\State $w \gets$ \Call{SturkturellerSprung}{$w$}
|
||||||
\Else
|
\Else
|
||||||
\State $w \gets$ \Call{InhaltlicherMehrfachsprung}{$w$}
|
\State $w \gets$ \Call{InhaltlicherMehrfachsprung}{$w$}
|
||||||
\EndIf
|
\EndIf
|
||||||
\State $w \gets v.\Call{GetLabel}{ }$ \Comment{Zähle die Beschriftung}
|
\State $beschriftung \gets w.\Call{GetLabel}{ }$
|
||||||
\State $d[w] \gets d[w] + 1$
|
\If{$!d.\Call{hasKey}{beschriftung}$}
|
||||||
\EndFor
|
\State $d[beschriftung] \gets 0$
|
||||||
|
\EndIf
|
||||||
|
\State $d[beschriftung] \gets d[beschriftung] + 1$
|
||||||
|
\EndFor\label{alg1:l21}
|
||||||
\EndFor
|
\EndFor
|
||||||
|
|
||||||
\If{$d$ ist leer} \Comment{Es wurde kein beschrifteter Knoten gesehen}
|
\If{$d$ ist leer} \Comment{Es wurde kein beschrifteter Knoten gesehen}
|
||||||
|
@ -151,7 +165,8 @@ verwaltet der DYCOS-Algorithmus zwei weitere Datenstrukturen:
|
||||||
\item Für jeden Knoten $v \in V_t$ werden die vorkommenden Wörter,
|
\item Für jeden Knoten $v \in V_t$ werden die vorkommenden Wörter,
|
||||||
die auch im Vokabular $W_t$ sind,
|
die auch im Vokabular $W_t$ sind,
|
||||||
und deren Anzahl gespeichert. Das könnte z.~B. über ein
|
und deren Anzahl gespeichert. Das könnte z.~B. über ein
|
||||||
assoziatives Array geschehen. Wörter, die nicht in
|
assoziatives Array (auch \enquote{dictionary} oder
|
||||||
|
\enquote{map} genannt) geschehen. Wörter, die nicht in
|
||||||
Texten von $v$ vorkommen, sind nicht im Array. Für
|
Texten von $v$ vorkommen, sind nicht im Array. Für
|
||||||
alle vorkommenden Wörter ist der gespeicherte Wert zum
|
alle vorkommenden Wörter ist der gespeicherte Wert zum
|
||||||
Schlüssel $w \in W_t$ die Anzahl der Vorkommen von
|
Schlüssel $w \in W_t$ die Anzahl der Vorkommen von
|
||||||
|
@ -161,13 +176,6 @@ verwaltet der DYCOS-Algorithmus zwei weitere Datenstrukturen:
|
||||||
Diese Liste wird bei den inhaltlichen Mehrfachsprung,
|
Diese Liste wird bei den inhaltlichen Mehrfachsprung,
|
||||||
der in \cref{sec:sprungtypen} erklärt wird,
|
der in \cref{sec:sprungtypen} erklärt wird,
|
||||||
verwendet.
|
verwendet.
|
||||||
\item An einigen Stellen macht ein assoziatives Array, auch
|
|
||||||
\enquote{dictionary} oder \enquote{map} genannt, Sinn.
|
|
||||||
Zustätzlich ist es nützlich, wenn diese Datenstruktur für
|
|
||||||
unbekannte Schlüssel keinen Fehler ausgibt, sondern für diese
|
|
||||||
Schlüssel den Wert 0 annimmt. Eine solche Datenstruktur
|
|
||||||
wird in Python \texttt{defaultdict} genannt und ich werde
|
|
||||||
im Folgenden diese Benennung beibehalten.
|
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
\input{Sprungtypen}
|
\input{Sprungtypen}
|
||||||
|
|
Binary file not shown.
|
@ -1,3 +1,5 @@
|
||||||
|
About
|
||||||
|
=====
|
||||||
Ausarbeitung zum Proseminar "Netzwerkanalyse" am KIT.
|
Ausarbeitung zum Proseminar "Netzwerkanalyse" am KIT.
|
||||||
|
|
||||||
Die Ausarbeitung soll 10-12 Seiten haben und die Präsentation
|
Die Ausarbeitung soll 10-12 Seiten haben und die Präsentation
|
||||||
|
@ -8,5 +10,4 @@ TODO
|
||||||
|
|
||||||
* Abschnitt "Problemstellung" überarbeiten
|
* Abschnitt "Problemstellung" überarbeiten
|
||||||
* Algorithmen erklären
|
* Algorithmen erklären
|
||||||
* Warum sind Stellenangaben überflüssig?
|
|
||||||
* Algorithmus 4, S. 9
|
* Algorithmus 4, S. 9
|
||||||
|
|
|
@ -80,28 +80,31 @@ Wortknoten entspricht ausgewählt und schließlich zurückgegeben.
|
||||||
\label{alg:DYCOS-content-multihop}
|
\label{alg:DYCOS-content-multihop}
|
||||||
\begin{algorithmic}[1]
|
\begin{algorithmic}[1]
|
||||||
\Procedure{InhaltlicherMehrfachsprung}{Knoten $v \in V_T$, $q \in \mathbb{N}$}
|
\Procedure{InhaltlicherMehrfachsprung}{Knoten $v \in V_T$, $q \in \mathbb{N}$}
|
||||||
\State $reachableNodes \gets$ defaultdict\label{alg:l2}
|
\State $erreichbareKnoten \gets$ leeres assoziatives Array\label{alg:l2}
|
||||||
\ForAll{Wortknoten $w$ in $v.\Call{getWordNodes}{ }$}
|
\ForAll{Wortknoten $w$ in $v.\Call{getWordNodes}{ }$}
|
||||||
\ForAll{Strukturknoten $x$ in $w.\Call{getStructuralNodes}{ }$}
|
\ForAll{Strukturknoten $x$ in $w.\Call{getStructuralNodes}{ }$}
|
||||||
\State $reachableNodes[x] \gets reachableNodes[x] + 1$
|
\If{$!erreichbareKnoten.\Call{hasKey}{x}$}
|
||||||
|
\State $erreichbareKnoten[x] \gets 0$
|
||||||
|
\EndIf
|
||||||
|
\State $erreichbareKnoten[x] \gets erreichbareKnoten[x] + 1$
|
||||||
\EndFor
|
\EndFor
|
||||||
\EndFor\label{alg:l5}
|
\EndFor\label{alg:l5}
|
||||||
\State \label{alg:l6} $T \gets \Call{max}{reachableNodes, q}$
|
\State \label{alg:l6} $T \gets \Call{max}{erreichbareKnoten, q}$
|
||||||
\\
|
\\
|
||||||
\State \label{alg:l8} $s \gets 0$
|
\State \label{alg:l8} $s \gets 0$
|
||||||
\ForAll{Knoten $x \in T$}
|
\ForAll{Knoten $x \in T$}
|
||||||
\State $s \gets s + reachableNodes[x]$
|
\State $s \gets s + erreichbareKnoten[x]$
|
||||||
\EndFor
|
\EndFor
|
||||||
\State $relativeFrequency \gets $ Dictionary
|
\State $relativeHaeufigkeit \gets $ leeres assoziatives Array
|
||||||
\ForAll{Knoten $x \in T$}
|
\ForAll{Knoten $x \in T$}
|
||||||
\State $relativeFrequency \gets \frac{reachableNodes[x]}{s}$
|
\State $relativeHaeufigkeit \gets \frac{erreichbareKnoten[x]}{s}$
|
||||||
\EndFor\label{alg:l13}
|
\EndFor\label{alg:l13}
|
||||||
\\
|
\\
|
||||||
\State \label{alg:15} $random \gets \Call{random}{0, 1}$
|
\State \label{alg:15} $random \gets \Call{random}{0, 1}$
|
||||||
\State $r \gets 0.0$
|
\State $r \gets 0.0$
|
||||||
\State $i \gets 0$
|
\State $i \gets 0$
|
||||||
\While{$s < random$}
|
\While{$s < random$}
|
||||||
\State $r \gets r + relativeFrequency[i]$
|
\State $r \gets r + relativeHaeufigkeit[i]$
|
||||||
\State $i \gets i + 1$
|
\State $i \gets i + 1$
|
||||||
\EndWhile
|
\EndWhile
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue