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 [21.11.2022 18:21] – [Quacki der Frosch] 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\\ 
 +\\
  
   * **Eingabe:** Ein Graph und ein Startknoten   * **Eingabe:** Ein Graph und ein Startknoten
   * **Ausgabe:** Die Entfernung in der Einheit "Kanten" zwischen dem Startknoten und jedem Knoten des Graphen.   * **Ausgabe:** Die Entfernung in der Einheit "Kanten" zwischen dem Startknoten und jedem Knoten des Graphen.
 </callout> </callout>
 +
 +
 +{{:aufgabe.png?nolink  |}}
 +=== (A2) Angepasste Breitensuche ===
 +
 +Das Problem kann man mit einer "angepassten Breitensuche" lösen. Wie?
 +
 +  * Schreibe den Algorithmus für die Breitensuche als Pseudocode auf.((Du kannst [[faecher:informatik:oberstufe:graphen:zpg:kuerzeste_pfade:traversierungen:start#implementation|hier]] spicken, wenn du es vergessen hast))
 +  * Was kannst du ändern, um dir die "Ebenenweise" Bearbeitung der Knoten bei der Breitensuche zunutze zu machen, um den Abstand jedes Knotens vom Startknoten zu ermitteln?
 +
 +++++ Hilfestellung |
 +
 +Wie ergibt sich die Anzahl der notwendigen Sprünge zu einem Blatt, wenn man weiß, dass man
 +zu einem benachbarten Blatt fünf Sprünge (n Sprünge) braucht? Formuliere diese Aussage auch
 +mit Knoten und Kanten.
 +++++
 +
 +
 +
 +---- 
 +{{:aufgabe.png?nolink  |}}
 +=== (A3) Implementation ===
 +
 +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  |}}
 +=== (A4) ===
 +
 +Für viele Anwendungen verwendet man **gerichtete** Graphen,
 +d.h. die Kanten haben eine Richtung (z.B. bei einem
 +Stadtplan mit Einbahnstraßen). Die Kanten dürfen dann nur
 +in der vorgegebenen Richtung durchlaufen werden.
 +
 +
 +
 +  * Bestimme die Entfernungen in nebenstehendem Graphen vom markierten Knoten aus.
 +  * Entscheide, ob der Algorithmus verändert werden muss, um auf gerichtete Graphen angewendet werden zu können.
 +
 +Du kannst deine Ergebnisse im Graphentester nachvollziehen, wenn du den Graph ''03_routenplanung/01_einbahnstrassen.csv'' lädst.
 +
  
  • faecher/informatik/oberstufe/graphen/zpg/kuerzeste_pfade/kpfad_kantenzahl/start.1669054909.txt.gz
  • Zuletzt geändert: 21.11.2022 18:21
  • von Frank Schiebel