faecher:informatik:oberstufe:graphen:zpg:kuerzeste_pfade:kpfad_kantenzahl:start

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
faecher:informatik:oberstufe:graphen:zpg:kuerzeste_pfade:kpfad_kantenzahl:start [04.07.2024 05:52] Frank Schiebelfaecher:informatik:oberstufe:graphen:zpg:kuerzeste_pfade:kpfad_kantenzahl:start [29.08.2024 14:32] (aktuell) Marco Kuemmel
Zeile 25: Zeile 25:
 ++++ ++++
  
 +-----
 <callout type="warning" icon="true"> <callout type="warning" icon="true">
 Problem: Kürzeste Entfernung in ungewichteten Graphen\\ Problem: Kürzeste Entfernung in ungewichteten Graphen\\
Zeile 33: Zeile 34:
 </callout> </callout>
  
------+
 {{:aufgabe.png?nolink  |}} {{:aufgabe.png?nolink  |}}
 === (A2) Angepasste Breitensuche === === (A2) Angepasste Breitensuche ===
Zeile 49: Zeile 50:
 ++++ ++++
  
-<btn type="info">[[faecher:informatik:oberstufe:graphen:zpg:hilfekarten:start|Hilfe Grafentester]]</btn>+
  
 ----  ---- 
Zeile 56: Zeile 57:
  
 Implementiere den Algorithmus der erweiterten Breitensuche (Algorithmus von Mooore) im Graphentester. Implementiere den Algorithmus der erweiterten Breitensuche (Algorithmus von Mooore) im Graphentester.
 +<btn type="info">[[faecher:informatik:oberstufe:graphen:zpg:hilfekarten:start|Hilfe Grafentester]]</btn>
 +
 +++++ Lösungsvorschlag |
 +<code java>
 +public void fuehreAlgorithmusAus() {
 +    gr = getGraph();
 +    for(Knoten k : gr.getAlleKnoten()) {
 +            k.setWert(Double.POSITIVE_INFINITY);
 +    }
 +    info("Setze alle Entfernungen auf unendlich");
 +    
 +    Queue<Knoten> q = new LinkedList<>();
 +    q.add(getStartKnoten());
 +    getStartKnoten().setMarkiert(true);
 +    getStartKnoten().setWert(0);
 +    info("  - Markiere und reihe ein: " + getStartKnoten().getInfotext());
 +    
 +    step();
 +    
 +    while(!q.isEmpty()) {
 +        Knoten v = q.remove();
 +        v.setFarbe(3);
 +        v.setBesucht(true);
 +        info("Bearbeite " + v.getInfotext());
 +        step();
 +        for(Knoten w: gr.getNachbarknoten(v)) {
 +            if(!w.isMarkiert()) {
 +                info("  - Markiere und reihe ein: " + w.getInfotext());
 +                w.setMarkiert(true); 
 +                w.setWert(v.getIntWert()+1);
 +                q.add(w);            
 +
 +                step();
 +
 +                info("  - Markiere Kante von " + v.getInfotext() + " nach " + w.getInfotext());
 +                gr.getKante(v,w).setMarkiert(true);          
 +            }
 +        }
 +    }
 +}
 +</code>
 +++++
  
 ----  ---- 
 +{{ :faecher:informatik:oberstufe:graphen:zpg:kuerzeste_pfade:kpfad_kantenzahl:auswahl_008.png?400&nolink|}}
 +
 {{:aufgabe.png?nolink  |}} {{:aufgabe.png?nolink  |}}
 === (A4) === === (A4) ===
Zeile 65: Zeile 110:
 Stadtplan mit Einbahnstraßen). Die Kanten dürfen dann nur Stadtplan mit Einbahnstraßen). Die Kanten dürfen dann nur
 in der vorgegebenen Richtung durchlaufen werden. in der vorgegebenen Richtung durchlaufen werden.
 +
 +
  
   * Bestimme die Entfernungen in nebenstehendem Graphen vom markierten Knoten aus.   * Bestimme die Entfernungen in nebenstehendem Graphen vom markierten Knoten aus.
  • faecher/informatik/oberstufe/graphen/zpg/kuerzeste_pfade/kpfad_kantenzahl/start.1720072354.txt.gz
  • Zuletzt geändert: 04.07.2024 05:52
  • von Frank Schiebel