1. Hinweise hinzugefügt 2. "Flüsse Zurücksetzen" setzt nun auch den ausgewählten Pfad zurück

main
Konrad Krauth 2024-11-26 17:18:54 +01:00
parent 48eb5d0266
commit 242cd1514f
1 changed files with 8 additions and 1 deletions

View File

@ -196,6 +196,7 @@ function resetFlows(){
for(let vertex in verticesMap){ for(let vertex in verticesMap){
edgesFlow[vertex]={}; edgesFlow[vertex]={};
} }
flowVertices=["s"];
calculatePossibleNextSteps(); calculatePossibleNextSteps();
draw(); draw();
statusSim.innerText="Graph zurückgesetzt"; statusSim.innerText="Graph zurückgesetzt";
@ -405,6 +406,12 @@ body {
<body onload="initializeEventHandlers();resetToDefaultGraph();parseGraph()"> <body onload="initializeEventHandlers();resetToDefaultGraph();parseGraph()">
<h1>Simulation des Ford-Fulkerson-Algorithmus</h1> <h1>Simulation des Ford-Fulkerson-Algorithmus</h1>
Hinweis zum manuellen Auswählen von Flusspfaden: <br>
1. klicke "Mausklick: wählt Flusspfade aus" <br>
2.1. klicke auf blau umrandete Knoten, um sie Teil des Pfades zu machen <br>
2.2. klicke auf bereits besuchte Knoten, um den Pfad bis zu diesem Knoten rückgängig zu machen. (Dafür muss "Mausklick: wählt Flusspfade aus" ausgewählt sein.) <br>
3. wenn Pfad von s zu t geht: klicke "Aktion: Fluss aus ausgewähltem augmentierenden Pfad erstellen" <br>
<h2> Graph definieren </h2> <h2> Graph definieren </h2>
<b>Knoten</b>, mit Semikolon getrennt (s und t werden nicht mit angegeben) <b>Knoten</b>, mit Semikolon getrennt (s und t werden nicht mit angegeben)
<br><textarea id="vDef" rows=5> </textarea> <br><textarea id="vDef" rows=5> </textarea>
@ -422,7 +429,7 @@ body {
<br> Mausklick: <br> Mausklick:
<button onclick="editMode='drag';draw()"> verschiebt Knoten </button> <button onclick="editMode='drag';draw()"> verschiebt Knoten </button>
<button onclick="editMode='flow';draw()"> wählt Flusspfade aus </button> <button onclick="editMode='flow';draw()"> wählt Flusspfade aus </button>
<br> Aktion: <button onclick="generateNewFlow()">Fluss aus ausgewähltem augmentierenden Pfad erstellen</button> <button onclick="selectShortestPath();">kürzesten s-t-Pfad auswählen (Edmonds-Karp)</button> <button onclick="selectRandomPath();">zufälligen s-t-Pfad auswählen</button> <button onclick="edmondsKarp()">Edmonds-Karp-Algorithmus vollständig durchlaufen lassen</button> <button onclick="randomFordFulkerson()">Zufalls-Ford-Fulkerson-Algorithmus vollständig durchlaufen lassen</button> <button onclick="resetFlows()">Flüsse zurücksetzen</button> <br> Aktion: <button onclick="generateNewFlow()">Fluss aus ausgewähltem augmentierenden Pfad erstellen</button> <button onclick="selectShortestPath();">kürzesten s-t-Pfad auswählen (Edmonds-Karp)</button> <button onclick="selectRandomPath();">zufälligen s-t-Pfad auswählen</button> <button onclick="edmondsKarp()">Edmonds-Karp-Algorithmus vollständig durchlaufen lassen</button> <button onclick="randomFordFulkerson()">Zufalls-Ford-Fulkerson-Algorithmus vollständig durchlaufen lassen</button> <button onclick="resetFlows()">Alle Flüsse zurücksetzen</button>
<br> <span id="statusSim"> </span> <br> <span id="statusSim"> </span>
<canvas id="c" width=600 height=300 style="width:100%"> </canvas> <canvas id="c" width=600 height=300 style="width:100%"> </canvas>
</body> </body>