diff --git a/1_hintergrund/1_hintergrund.odt b/1_hintergrund/1_hintergrund.odt index cfb569b..c5ad36d 100644 Binary files a/1_hintergrund/1_hintergrund.odt and b/1_hintergrund/1_hintergrund.odt differ diff --git a/1_hintergrund/2_unterrichtsverlauf.odt b/1_hintergrund/2_unterrichtsverlauf.odt index 5d11844..ad059fa 100644 Binary files a/1_hintergrund/2_unterrichtsverlauf.odt and b/1_hintergrund/2_unterrichtsverlauf.odt differ diff --git a/2_kopiervorlagen/01_eulerzug.odt b/2_kopiervorlagen/01_eulerzug.odt index ea867be..7122be2 100644 Binary files a/2_kopiervorlagen/01_eulerzug.odt and b/2_kopiervorlagen/01_eulerzug.odt differ diff --git a/2_kopiervorlagen/01_eulerzug.pdf b/2_kopiervorlagen/01_eulerzug.pdf index 873b819..21aac71 100644 Binary files a/2_kopiervorlagen/01_eulerzug.pdf and b/2_kopiervorlagen/01_eulerzug.pdf differ diff --git a/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo.java b/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo.java index ff0ebae..3dd20e5 100644 --- a/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo.java +++ b/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo.java @@ -14,7 +14,7 @@ import javafx.application.Platform; * Abstrakte Oberklasse für alle zu simulierende Algorithmen * Diese müssen die Methode getBezeichnung(): String und fuehreAlgorithmusAus() überschreiben. * - * @version 6.7 (Dez. 2020) + * @version 7.1 12.02.2025 * @author Thomas Schaller */ @@ -78,10 +78,9 @@ public abstract class GraphAlgo extends Thread { /** * Muss vom Algorithmus aufgerufen werden, um einen Haltepunkt zu setzen */ - public void step() { + public void step() throws InterruptedException { if(gp == null) return; try{ - //System.out.println("Step"); gp.updateImage(); aktuellerZustand = g.getStatus(); waitforclick = true; @@ -95,9 +94,13 @@ public abstract class GraphAlgo extends Thread { if (hilfe != null) hilfe.setReviewAllowed(false); g.setStatus(aktuellerZustand); aktuellerZustand = null; + if(Thread.interrupted()){ + throw new InterruptedException(); + } }catch(Exception e) { // Erneutes Stop, damit nicht stop während des Sleeps hier abgefangen wird. - stop(); + //System.out.println("Step wurde unterbrochen"); + throw e; } } @@ -146,17 +149,13 @@ public abstract class GraphAlgo extends Thread { if (hilfe != null) hilfe.setReviewAllowed(false); fuehreAlgorithmusAus(); gp.updateImage(); - // System.out.println("Algorithmus beendet"); - } catch( ThreadDeath e){ - // System.out.println("Algorithmus vorzeitig beendet."+e); + //System.out.println("Algorithmus beendet"); + } catch( InterruptedException e){ + //System.out.println("Algorithmus vorzeitig beendet."+e); + } finally { + if (hilfe != null) hilfe.setReviewAllowed(true); + inArbeit = false; } - if (hilfe != null) hilfe.setReviewAllowed(true); - inArbeit = false; - return; - } - else - { - return; } } // Ende Methoden @@ -184,7 +183,7 @@ public abstract class GraphAlgo extends Thread { /** * Methode für den eigentlichen Algorithmus */ - public abstract void fuehreAlgorithmusAus(); + public abstract void fuehreAlgorithmusAus() throws InterruptedException; /** * Name des Algorithmus für die Dropdown-Auswahl @@ -257,3 +256,4 @@ public abstract class GraphAlgo extends Thread { } } + diff --git a/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_BellmanFord.java b/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_BellmanFord.java index 812fc5f..9d221fc 100644 --- a/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_BellmanFord.java +++ b/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_BellmanFord.java @@ -9,7 +9,7 @@ import graph.*; * Dieser Algorithmus findet die kürzesten Pfade in einem gewichteten Graphen. * Algorithmus: Bellman-Ford * - * @version 1.0 from 10.12.2020 + * @version 7.1 from 12.02.2025 * @author Thomas Schaller */ @@ -37,7 +37,7 @@ public class GraphAlgo_BellmanFord extends GraphAlgo { } // Anfang Methoden - public void fuehreAlgorithmusAus() { + public void fuehreAlgorithmusAus() throws InterruptedException { if (g.getAnzahlKnoten()==0) { return; } diff --git a/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_Breitensuche.java b/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_Breitensuche.java index d9c992e..b49704d 100644 --- a/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_Breitensuche.java +++ b/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_Breitensuche.java @@ -10,7 +10,7 @@ import graph.*; * Dieser Algorithmus nummeriert alle Knoten des Graphen. * Algorithmus: Breitensuche mit ToDo-Liste (Schlange) * - * @version 1.0 from 10.12.2020 + * @version 7.1 from 12.02.2025 * @author Thomas Schaller */ @@ -23,7 +23,7 @@ public class GraphAlgo_Breitensuche extends GraphAlgo { } // Anfang Methoden - public void fuehreAlgorithmusAus() { + public void fuehreAlgorithmusAus() throws InterruptedException { if (g.getAnzahlKnoten()==0) { return; } diff --git a/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_ColoringBacktracking.java b/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_ColoringBacktracking.java index e2d7cec..c061679 100644 --- a/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_ColoringBacktracking.java +++ b/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_ColoringBacktracking.java @@ -10,7 +10,7 @@ import graph.*; * die gleiche Farbe haben und möglichst wenige Farben benutzt werden. * Algorithmus: Backtracking * - * @version 1.0 from 10.12.2020 + * @version 7.1 from 12.02.2025 * @author Thomas Schaller */ @@ -25,7 +25,7 @@ public class GraphAlgo_ColoringBacktracking extends GraphAlgo { } // Anfang Methoden - public void fuehreAlgorithmusAus() { + public void fuehreAlgorithmusAus() throws InterruptedException { if (g.getAnzahlKnoten()==0) { return; } @@ -35,7 +35,7 @@ public class GraphAlgo_ColoringBacktracking extends GraphAlgo { step(); } - private void bestimmeColoring(int benutzteFarben) { + private void bestimmeColoring(int benutzteFarben) throws InterruptedException { int min = Integer.MAX_VALUE; List knoten = g.getAlleKnoten(k->k.getFarbe()<=0); diff --git a/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_ColoringGreedy.java b/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_ColoringGreedy.java index d8e0980..1ba1217 100644 --- a/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_ColoringGreedy.java +++ b/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_ColoringGreedy.java @@ -9,7 +9,7 @@ import graph.*; * die gleiche Farbe haben und möglichst wenige Farben benutzt werden. * Algorithmus: Näherungslösung mit Greedy-Algorithmus * - * @version 1.0 from 10.12.2020 + * @version 7.1 from 12.02.2025 * @author Thomas Schaller */ public class GraphAlgo_ColoringGreedy extends GraphAlgo { @@ -26,7 +26,7 @@ public class GraphAlgo_ColoringGreedy extends GraphAlgo { // Ende Attribute // Anfang Methoden - public void fuehreAlgorithmusAus() { + public void fuehreAlgorithmusAus() throws InterruptedException { List knoten = g.getAlleKnoten(); info("Wiederhole für jeden Knoten"); for (Knoten aktuellerKnoten: knoten ) { diff --git a/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_ColoringGreedyRandom.java b/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_ColoringGreedyRandom.java index dece2df..3c5292c 100644 --- a/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_ColoringGreedyRandom.java +++ b/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_ColoringGreedyRandom.java @@ -10,7 +10,7 @@ import graph.*; * die gleiche Farbe haben und möglichst wenige Farben benutzt werden. * Algorithmus: Näherungslösung mit Greedy-Algorithmus (Knotenreihenfolge zufällig) * - * @version 1.0 from 10.12.2020 + * @version 7.1 from 12.02.2025 * @author Thomas Schaller */ @@ -28,7 +28,7 @@ public class GraphAlgo_ColoringGreedyRandom extends GraphAlgo { // Ende Attribute // Anfang Methoden - public void fuehreAlgorithmusAus() { + public void fuehreAlgorithmusAus() throws InterruptedException { List knoten = g.getAlleKnoten(); Collections.shuffle(knoten); info("Wiederhole für jeden Knoten"); diff --git a/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_Dijkstra.java b/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_Dijkstra.java index 009fdf2..1e69680 100644 --- a/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_Dijkstra.java +++ b/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_Dijkstra.java @@ -10,7 +10,7 @@ import graph.*; * Dieser Algorithmus findet die kürzesten Pfade in einem gewichteten Graphen. * Algorithmus: Dijkstra * - * @version 1.0 from 10.12.2020 + * @version 7.1 from 12.02.2025 * @author Thomas Schaller */ @@ -31,7 +31,7 @@ public class GraphAlgo_Dijkstra extends GraphAlgo { } // Anfang Methoden - public void fuehreAlgorithmusAus() { + public void fuehreAlgorithmusAus() throws InterruptedException { if (g.getAnzahlKnoten()==0) { return; } diff --git a/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_DijkstraMitVorgaenger.java b/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_DijkstraMitVorgaenger.java index 015ceee..30768c9 100644 --- a/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_DijkstraMitVorgaenger.java +++ b/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_DijkstraMitVorgaenger.java @@ -11,7 +11,7 @@ import graph.*; * Dieser Algorithmus findet die kürzesten Pfade in einem gewichteten Graphen. * Algorithmus: Dijkstra * - * @version 1.0 from 10.12.2020 + * @version 7.1 from 12.02.2025 * @author Thomas Schaller */ @@ -34,7 +34,7 @@ public class GraphAlgo_DijkstraMitVorgaenger extends GraphAlgo { gp.getGraphOptions().knotenLangtext = new String[]{"Infotext","Entfernung","Vorgänger","Markiert","Besucht"}; } - public void fuehreAlgorithmusAus() { + public void fuehreAlgorithmusAus() throws InterruptedException { if (g.getAnzahlKnoten()==0) { return; } diff --git a/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_DominatingSetBacktracking.java b/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_DominatingSetBacktracking.java index 181f52e..8cbf781 100644 --- a/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_DominatingSetBacktracking.java +++ b/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_DominatingSetBacktracking.java @@ -10,7 +10,7 @@ import graph.*; * und bestimmt den Zeitbedarf. * Algorithmus: Backtracking * - * @version 1.0 from 10.12.2020 + * @version 7.1 from 12.02.2025 * @author Thomas Schaller */ @@ -26,7 +26,7 @@ public class GraphAlgo_DominatingSetBacktracking extends GraphAlgo { // Anfang Methoden - public void fuehreAlgorithmusAus() { + public void fuehreAlgorithmusAus() throws InterruptedException { long starttime = System.currentTimeMillis(); if (g.getAnzahlKnoten()==0) { return; @@ -41,7 +41,7 @@ public class GraphAlgo_DominatingSetBacktracking extends GraphAlgo { - private void bestimmeDominierendeMenge(int knoten) { + private void bestimmeDominierendeMenge(int knoten) throws InterruptedException { List status = g.getStatus(); List markierte = g.getAlleKnoten(kn->kn.isMarkiert()); diff --git a/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_DominatingSetGenetisch.java b/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_DominatingSetGenetisch.java index a4dd669..73fcfb5 100644 --- a/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_DominatingSetGenetisch.java +++ b/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_DominatingSetGenetisch.java @@ -11,7 +11,7 @@ import graph.*; * Dieser Algorithmus bestimmt die kleinste dominierende Menge in einem Graphen * und bestimmt den Zeitbedarf. * Algorithmus: Genetischer Algorithmus - * @version 1.0 from 10.12.2020 + * @version 7.1 from 12.02.2025 * @author Thomas Schaller */ @@ -31,7 +31,7 @@ public class GraphAlgo_DominatingSetGenetisch extends GraphAlgo { // Anfang Methoden - public void fuehreAlgorithmusAus() { + public void fuehreAlgorithmusAus() throws InterruptedException { population = new int[popGroesse][g.getAnzahlKnoten()]; double[] bewertungen = new double[popGroesse]; for(int i=0; i knoten = g.getAlleKnoten(k->!k.isMarkiert()); info("Wiederhole für jeden noch nicht markierten Knoten"); @@ -49,7 +49,7 @@ public class GraphAlgo_DominatingSetGreedyC extends GraphAlgo { } // Anfang Methoden - public void fuehreAlgorithmusAus() { + public void fuehreAlgorithmusAus() throws InterruptedException { if (g.getAnzahlKnoten()==0) { return; } diff --git a/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_DominatingSetGreedyD.java b/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_DominatingSetGreedyD.java index fdb1a3c..ec008ba 100644 --- a/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_DominatingSetGreedyD.java +++ b/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_DominatingSetGreedyD.java @@ -14,7 +14,7 @@ import graph.*; * Algorithmus: Greedy mit Strategie: * Nimm den Knoten mit den meisten Nachbarn * - * @version 1.0 from 10.12.2020 + * @version 7.1 from 12.02.2025 * @author Thomas Schaller */ @@ -49,7 +49,7 @@ public class GraphAlgo_DominatingSetGreedyD extends GraphAlgo { } // Anfang Methoden - public void fuehreAlgorithmusAus() { + public void fuehreAlgorithmusAus() throws InterruptedException { if (g.getAnzahlKnoten()==0) { return; } diff --git a/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_DominatingSetGreedyE.java b/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_DominatingSetGreedyE.java index 67b250f..39d47c3 100644 --- a/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_DominatingSetGreedyE.java +++ b/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_DominatingSetGreedyE.java @@ -14,7 +14,7 @@ import graph.*; * Algorithmus: Greedy mit Strategie: * ein nicht abgedeckten Knoten, der von einem beliebigen schon ausgewählten Knoten die Entfernung 3 hat * - * @version 1.0 from 10.12.2020 + * @version 7.1 from 12.02.2025 * @author Thomas Schaller */ @@ -30,7 +30,7 @@ public class GraphAlgo_DominatingSetGreedyE extends GraphAlgo { * ein nicht abgedeckten Knoten, der von einem beliebigen schon ausgewählten Knoten die Entfernung 3 hat */ - private Knoten bestimmeBesten() { + private Knoten bestimmeBesten() throws InterruptedException { Random r= new Random(); List markierte = g.getAlleKnoten(k->k.isMarkiert() ); @@ -68,7 +68,7 @@ public class GraphAlgo_DominatingSetGreedyE extends GraphAlgo { } // Anfang Methoden - public void fuehreAlgorithmusAus() { + public void fuehreAlgorithmusAus() throws InterruptedException { if (g.getAnzahlKnoten()==0) { return; } diff --git a/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_DominatingSetGreedyF.java b/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_DominatingSetGreedyF.java index 21673c2..9e834c1 100644 --- a/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_DominatingSetGreedyF.java +++ b/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_DominatingSetGreedyF.java @@ -14,7 +14,7 @@ import graph.*; * Algorithmus: Greedy mit Strategie: * ein nicht abgedeckten Knoten, der von einem beliebigen schon ausgewählten Knoten die Entfernung 3 hat * - * @version 1.0 from 10.12.2020 + * @version 7.1 from 12.02.2025 * @author Thomas Schaller */ @@ -30,7 +30,7 @@ public class GraphAlgo_DominatingSetGreedyF extends GraphAlgo { * ein nicht abgedeckten Knoten, der von einem beliebigen schon ausgewählten Knoten die Entfernung 3 hat */ - private Knoten bestimmeBesten() { + private Knoten bestimmeBesten() throws InterruptedException { Random r= new Random(); List markierte = g.getAlleKnoten(k->k.isMarkiert() ); @@ -68,7 +68,7 @@ public class GraphAlgo_DominatingSetGreedyF extends GraphAlgo { } // Anfang Methoden - public void fuehreAlgorithmusAus() { + public void fuehreAlgorithmusAus() throws InterruptedException { if (g.getAnzahlKnoten()==0) { return; } diff --git a/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_DominatingSetGreedyG.java b/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_DominatingSetGreedyG.java index cb4e7cf..37492f0 100644 --- a/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_DominatingSetGreedyG.java +++ b/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_DominatingSetGreedyG.java @@ -14,7 +14,7 @@ import graph.*; * Algorithmus: Greedy mit Strategie: * ein nicht abgedeckten Knoten, der von einem beliebigen schon ausgewählten Knoten die Entfernung 3 hat * - * @version 1.0 from 10.12.2020 + * @version 7.1 from 12.02.2025 * @author Thomas Schaller */ @@ -30,7 +30,7 @@ public class GraphAlgo_DominatingSetGreedyG extends GraphAlgo { * ein nicht abgedeckten Knoten, der von einem beliebigen schon ausgewählten Knoten die Entfernung 3 hat */ - private Knoten bestimmeBesten() { + private Knoten bestimmeBesten() throws InterruptedException { Random r= new Random(); List markierte = g.getAlleKnoten(k->k.isMarkiert() ); @@ -68,7 +68,7 @@ public class GraphAlgo_DominatingSetGreedyG extends GraphAlgo { } // Anfang Methoden - public void fuehreAlgorithmusAus() { + public void fuehreAlgorithmusAus() throws InterruptedException { if (g.getAnzahlKnoten()==0) { return; } diff --git a/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_DominatingSetGreedyH.java b/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_DominatingSetGreedyH.java index b1d7c8d..5879d49 100644 --- a/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_DominatingSetGreedyH.java +++ b/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_DominatingSetGreedyH.java @@ -14,7 +14,7 @@ import graph.*; * Algorithmus: Greedy mit Strategie: * ein nicht abgedeckten Knoten, der von möglichst vielen schon ausgewählten Knoten die Entfernung 3 hat * - * @version 1.0 from 10.12.2020 + * @version 7.1 from 12.02.2025 * @author Thomas Schaller */ @@ -29,7 +29,7 @@ public class GraphAlgo_DominatingSetGreedyH extends GraphAlgo { /** Bestimmt besten Knoten nach Strategie: * ein nicht abgedeckten Knoten, der von möglichst vielen schon ausgewählten Knoten die Entfernung 3 hat */ - private Knoten bestimmeBesten() { + private Knoten bestimmeBesten() throws InterruptedException { Random r = new Random(); List markierte = g.getAlleKnoten(k->k.isMarkiert() ); List nichtabgedeckte = g.getAlleKnoten(k->!k.isMarkiert() && !k.isBesucht() ); @@ -71,7 +71,7 @@ public class GraphAlgo_DominatingSetGreedyH extends GraphAlgo { } // Anfang Methoden - public void fuehreAlgorithmusAus() { + public void fuehreAlgorithmusAus() throws InterruptedException { if (g.getAnzahlKnoten()==0) { return; } diff --git a/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_DominatingSetGreedyI.java b/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_DominatingSetGreedyI.java index cdcf6d9..7cbdf8c 100644 --- a/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_DominatingSetGreedyI.java +++ b/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_DominatingSetGreedyI.java @@ -14,7 +14,7 @@ import graph.*; * Algorithmus: Greedy mit Strategie: * ein nicht abgedeckten Knoten, der von den ausgewählten Knoten eine möglichst große Entfernung hat * - * @version 1.0 from 10.12.2020 + * @version 7.1 from 12.02.2025 * @author Thomas Schaller */ @@ -30,7 +30,7 @@ public class GraphAlgo_DominatingSetGreedyI extends GraphAlgo { * ein nicht abgedeckten Knoten, der von den ausgewählten Knoten eine möglichst große Entfernung hat */ - private Knoten bestimmeBesten() { + private Knoten bestimmeBesten() throws InterruptedException { Random r = new Random(); List markierte = g.getAlleKnoten(k->k.isMarkiert() ); List nichtabgedeckte = g.getAlleKnoten(k->!k.isMarkiert() && !k.isBesucht() ); @@ -84,7 +84,7 @@ public class GraphAlgo_DominatingSetGreedyI extends GraphAlgo { // Anfang Methoden - public void fuehreAlgorithmusAus() { + public void fuehreAlgorithmusAus() throws InterruptedException { if (g.getAnzahlKnoten()==0) { return; } diff --git a/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_EulerkreisExistenz.java b/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_EulerkreisExistenz.java index a14d026..3ce0cd3 100644 --- a/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_EulerkreisExistenz.java +++ b/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_EulerkreisExistenz.java @@ -8,7 +8,7 @@ import graph.*; * Algorithmus: Zunächst wird auf geraden Grad der Knoten getestet, danach * mit Tiefensuche der Zusammenhang des Graphen überprüft. * - * @version 1.0 from 10.12.2020 + * @version 7.1 from 12.02.2025 * @author Thomas Schaller */ @@ -18,7 +18,7 @@ public class GraphAlgo_EulerkreisExistenz extends GraphAlgo { return "Eulerkreis (Existenz)"; } - public void fuehreAlgorithmusAus() { + public void fuehreAlgorithmusAus() throws InterruptedException { if (g.getAnzahlKnoten()==0) { return; } diff --git a/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_MST_Kruskal.java b/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_MST_Kruskal.java index 48d8c33..6e3a5bf 100644 --- a/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_MST_Kruskal.java +++ b/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_MST_Kruskal.java @@ -25,7 +25,7 @@ public class GraphAlgo_MST_Kruskal extends GraphAlgo { // Anfang Methoden - public void fuehreAlgorithmusAus() { + public void fuehreAlgorithmusAus() throws InterruptedException { int farbe = 1; List kanten = g.getAlleKanten(); List knoten = g.getAlleKnoten(); diff --git a/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_MST_Prim.java b/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_MST_Prim.java index df91cac..e646654 100644 --- a/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_MST_Prim.java +++ b/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_MST_Prim.java @@ -24,7 +24,7 @@ public class GraphAlgo_MST_Prim extends GraphAlgo { return "MST (Prim)"; } - public void fuehreAlgorithmusAus() { + public void fuehreAlgorithmusAus() throws InterruptedException { int markiert = 0; List knoten; List kanten; diff --git a/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_Moore.java b/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_Moore.java index cad7715..14cdc43 100644 --- a/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_Moore.java +++ b/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_Moore.java @@ -10,7 +10,7 @@ import graph.*; * Dieser Algorithmus findet die kürzesten Pfade in einem ungewichteten Graphen. * Algorithmus: Algorithmus A von Moore * - * @version 1.0 from 10.12.2020 + * @version 7.1 from 12.02.2025 * @author Thomas Schaller */ @@ -23,7 +23,7 @@ public class GraphAlgo_Moore extends GraphAlgo { } // Anfang Methoden - public void fuehreAlgorithmusAus() { + public void fuehreAlgorithmusAus() throws InterruptedException { if (g.getAnzahlKnoten()==0) { return; } diff --git a/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_TSPBacktracking.java b/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_TSPBacktracking.java index c484856..0952ab4 100644 --- a/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_TSPBacktracking.java +++ b/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_TSPBacktracking.java @@ -32,7 +32,7 @@ public class GraphAlgo_TSPBacktracking extends GraphAlgo { // Anfang Methoden - public void fuehreAlgorithmusAus() { + public void fuehreAlgorithmusAus() throws InterruptedException { start = this.getStartKnoten(); probiere(start); g.setStatus(besteLoesung); @@ -40,7 +40,7 @@ public class GraphAlgo_TSPBacktracking extends GraphAlgo { melde("beste Route gefunden:" +getInfo()); } // end of for - public void probiere(Knoten akt) { + public void probiere(Knoten akt) throws InterruptedException { boolean fertig = true; infoIndentMore(); akt.setMarkiert(true); diff --git a/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_TSPGenetisch.java b/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_TSPGenetisch.java index 527a2ef..2259941 100644 --- a/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_TSPGenetisch.java +++ b/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_TSPGenetisch.java @@ -30,7 +30,7 @@ public class GraphAlgo_TSPGenetisch extends GraphAlgo { } // Anfang Methoden - public void fuehreAlgorithmusAus() { + public void fuehreAlgorithmusAus() throws InterruptedException { population = new int[popGroesse][g.getAnzahlKnoten()+1]; double[] rundreiseLaenge = new double[popGroesse]; for(int i=0; i kanten = g.getAlleKanten(); diff --git a/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_TSPGreedyOpt.java b/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_TSPGreedyOpt.java index c56e7fb..c64c126 100644 --- a/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_TSPGreedyOpt.java +++ b/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_TSPGreedyOpt.java @@ -27,7 +27,7 @@ public class GraphAlgo_TSPGreedyOpt extends GraphAlgo { } // Anfang Methoden - public void fuehreAlgorithmusAus() { + public void fuehreAlgorithmusAus() throws InterruptedException { Knoten start = this.getStartKnoten(); Knoten akt = start; List reihung = new ArrayList(); diff --git a/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_Tiefensuche.java b/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_Tiefensuche.java index 7d20241..fc10d4c 100644 --- a/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_Tiefensuche.java +++ b/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_Tiefensuche.java @@ -10,7 +10,7 @@ import graph.*; * Dieser Algorithmus nummeriert alle Knoten des Graphen. * Algorithmus: Tiefensuche mit ToDo-Liste (Stapel) * - * @version 1.0 from 10.12.2020 + * @version 7.1 from 12.02.2025 * @author Thomas Schaller */ @@ -24,7 +24,7 @@ public class GraphAlgo_Tiefensuche extends GraphAlgo { // Anfang Methoden - public void fuehreAlgorithmusAus() { + public void fuehreAlgorithmusAus() throws InterruptedException { if (g.getAnzahlKnoten()==0) { return; } diff --git a/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_TiefensucheRek.java b/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_TiefensucheRek.java index 8616a61..598366c 100644 --- a/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_TiefensucheRek.java +++ b/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_TiefensucheRek.java @@ -10,7 +10,7 @@ import graph.*; * Dieser Algorithmus nummeriert alle Knoten des Graphen. * Algorithmus: Tiefensuche rekursiv * - * @version 1.0 from 10.12.2020 + * @version 7.1 from 12.02.2025 * @author Thomas Schaller */ @@ -24,14 +24,14 @@ public class GraphAlgo_TiefensucheRek extends GraphAlgo { // Anfang Methoden - public void fuehreAlgorithmusAus() { + public void fuehreAlgorithmusAus() throws InterruptedException { if (g.getAnzahlKnoten()==0) { return; } nummeriere(getStartKnoten(), 0); } // end - private int nummeriere(Knoten k, int nr) { + private int nummeriere(Knoten k, int nr) throws InterruptedException { // Abbruchbedingung if(k.isBesucht()) { info("Untersuche "+g.getKnoteninfo(k,false)+" => ist schon besucht"); diff --git a/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_ZyklusBacktracking.java b/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_ZyklusBacktracking.java index 596da2f..9302526 100644 --- a/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_ZyklusBacktracking.java +++ b/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_ZyklusBacktracking.java @@ -10,7 +10,7 @@ import graph.*; * Er sucht einen Zyklus im Graphen. * Algorithmus: Backtracking * - * @version 1.0 from 10.12.2020 + * @version 7.1 from 12.02.2025 * @author Thomas Schaller */ @@ -22,13 +22,13 @@ public class GraphAlgo_ZyklusBacktracking extends GraphAlgo { return "Zyklensuche (Backtracking)"; } - public void fuehreAlgorithmusAus() { + public void fuehreAlgorithmusAus() throws InterruptedException { List loesung = backtracking(getStartKnoten()); if(loesung != null) g.setStatus(loesung); step(); } - public List backtracking(Knoten k){ + public List backtracking(Knoten k) throws InterruptedException { List loesung = null; diff --git a/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_toplogischeSortierung.java b/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_toplogischeSortierung.java index ed02226..9fb723c 100644 --- a/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_toplogischeSortierung.java +++ b/3_vorlagen_tauschordner/2_graphentester_jar/algorithmen/GraphAlgo_toplogischeSortierung.java @@ -8,7 +8,7 @@ import graph.*; /** * Dieser Algorithmus findet eine topologische Sortierung des Graphen. * - * @version 1.0 from 10.12.2020 + * @version 7.1 from 12.02.2025 * @author Thomas Schaller */ @@ -23,7 +23,7 @@ public class GraphAlgo_toplogischeSortierung extends GraphAlgo { // Anfang Methoden - public void fuehreAlgorithmusAus() { + public void fuehreAlgorithmusAus() throws InterruptedException { String reihenfolge = ""; if (g.getAnzahlKnoten()==0) { return; diff --git a/3_vorlagen_tauschordner/2_graphentester_jar/beispielgraphen/02_topologischesortierung/01_aufbausimulation1.csv b/3_vorlagen_tauschordner/2_graphentester_jar/beispielgraphen/02_topologischesortierung/01_aufbausimulation1.csv index b52d928..0ce28e5 100644 --- a/3_vorlagen_tauschordner/2_graphentester_jar/beispielgraphen/02_topologischesortierung/01_aufbausimulation1.csv +++ b/3_vorlagen_tauschordner/2_graphentester_jar/beispielgraphen/02_topologischesortierung/01_aufbausimulation1.csv @@ -1,5 +1,5 @@ # Anzeigeoptionen:# Gewichte anzeigen 1, Gewichte nicht anzeigen 0 -showWeights,0 +showWeights,1 # Knoteninfo anzeigen 1,Knoteninfo nicht anzeigen 0 showInfoText,1 # Knoten leer 0, Knotenname anzeigen 1, Wert des Knoten anzeigen 2 diff --git a/3_vorlagen_tauschordner/2_graphentester_jar/beispielgraphen/02_topologischesortierung/02_aufbausimulation2.csv b/3_vorlagen_tauschordner/2_graphentester_jar/beispielgraphen/02_topologischesortierung/02_aufbausimulation2.csv index 347b375..844cb4d 100644 --- a/3_vorlagen_tauschordner/2_graphentester_jar/beispielgraphen/02_topologischesortierung/02_aufbausimulation2.csv +++ b/3_vorlagen_tauschordner/2_graphentester_jar/beispielgraphen/02_topologischesortierung/02_aufbausimulation2.csv @@ -1,5 +1,5 @@ # Anzeigeoptionen:# Gewichte anzeigen 1, Gewichte nicht anzeigen 0 -showWeights,0 +showWeights,1 # Knoteninfo anzeigen 1,Knoteninfo nicht anzeigen 0 showInfoText,1 # Knoten leer 0, Knotenname anzeigen 1, Wert des Knoten anzeigen 2 diff --git a/3_vorlagen_tauschordner/2_graphentester_jar/graphentester.jar b/3_vorlagen_tauschordner/2_graphentester_jar/graphentester.jar index 5249924..7aa3d4b 100644 Binary files a/3_vorlagen_tauschordner/2_graphentester_jar/graphentester.jar and b/3_vorlagen_tauschordner/2_graphentester_jar/graphentester.jar differ diff --git a/5_praesentationen/02_eulerzug.odp b/5_praesentationen/02_eulerzug.odp index c994b8d..705ab7c 100644 Binary files a/5_praesentationen/02_eulerzug.odp and b/5_praesentationen/02_eulerzug.odp differ