From 542da545e2f379b3d44fdf04a0155fc376cef8d8 Mon Sep 17 00:00:00 2001 From: tronje Date: Tue, 3 Dec 2013 23:11:19 +0100 Subject: [PATCH] fixed 4a --- ...Gruppe_8_Koehler_Krabbe_Martens_Blatt4.tex | 20 ++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/ad/AD-Gruppe_8_Koehler_Krabbe_Martens_Blatt4.tex b/ad/AD-Gruppe_8_Koehler_Krabbe_Martens_Blatt4.tex index 3bed5ed..d164b76 100644 --- a/ad/AD-Gruppe_8_Koehler_Krabbe_Martens_Blatt4.tex +++ b/ad/AD-Gruppe_8_Koehler_Krabbe_Martens_Blatt4.tex @@ -268,16 +268,34 @@ Jim Martens (6420323)} \subsection{} %a % Senken finden (alle Senken infiltrieren, dadurch werden alle Module eliminiert) % Algorithmus aus Vorlesung benutzen - Es müssen alle Module (oder Knoten) ohne eingehende Kanten eliminiert (bzw. markiert) werden, da diese andernfalls nie erreicht werden können. Zu allen anderen Knoten muss es gerichtete Pfade von einem dieser Knoten geben. + Es müssen alle Module (oder Knoten) ohne eingehende Kanten eliminiert (bzw. markiert) werden, da diese andernfalls nie erreicht werden können. Zu allen anderen Knoten muss es gerichtete Pfade von einem dieser Knoten geben. Ausnahmen können starke Zusammenhangskomponenten bilden. In jeder starken Zusammenhangskomponente wird daher ebenfalls ein Knoten eliminiert. + \newpage \begin{verbatim} function eliminiereMCP() { + int zaehler = 0 + list infiltrierteKnoten + // füge alle Knoten ohne Vorgänger hinzu: for-all v in Knotenmenge: if v.eingehendeKanten == 0: infiltriere(v) infiltrierteKnoten.add(v) end if end for-all + // füge einen Knoten aus jeder + // starken Zusammenhangskomponente hinzu: + list starkZusammenhaengend = findeStarkeZusammenhangskomponenten() + for-all elemente in starkZusammenhaengend: + for i = 0; i < elemente.length; i++ + if infiltrierteKnoten.contains(elemente[i]): + zaehler++ + end if + if zaehler == 0: + infiltriere(elemente[0]) + infiltrierteKnoten.add(elemente[0]) + end if + end for + end for-all eliminiere(infiltrierteKnoten) } \end{verbatim}