mehrere Verbesserungen
- "Fulkersen" zu "Fulkerson" - "Flüsse zurücksetzen"-funktion - farbliche Markierungen in Ansicht "Kapazitäten und Flüsse".main
parent
d74058bd8b
commit
48eb5d0266
|
@ -94,7 +94,7 @@ function draw(){
|
|||
}
|
||||
}else if(shownEdges=="capacity_and_flows"){
|
||||
if(edgesCapacity[vertex.name][otherVertex.name]>0){
|
||||
drawEdge(vertex,otherVertex,getEdge(edgesFlow,vertex.name,otherVertex.name)+"/"+edgesCapacity[vertex.name][otherVertex.name],"black","white");
|
||||
drawEdge(vertex,otherVertex,getEdge(edgesFlow,vertex.name,otherVertex.name)+"/"+edgesCapacity[vertex.name][otherVertex.name],"black",edgesFlow[vertex.name][otherVertex.name]>0?(edgesFlow[vertex.name][otherVertex.name]==edgesCapacity[vertex.name][otherVertex.name]?"#ff88ff":"#8888ff"):"white");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -189,6 +189,21 @@ function parseGraph(){
|
|||
};
|
||||
draw();
|
||||
}
|
||||
function resetFlows(){
|
||||
done=false;
|
||||
iterations=0;
|
||||
totalFlow=0;
|
||||
for(let vertex in verticesMap){
|
||||
edgesFlow[vertex]={};
|
||||
}
|
||||
calculatePossibleNextSteps();
|
||||
draw();
|
||||
statusSim.innerText="Graph zurückgesetzt";
|
||||
if(bfs()==undefined){
|
||||
statusSim.innerText+="- Es gibt von Anfang an keinen augmentierenden Pfad, der Algorithmus braucht nicht angewandt zu werden.";
|
||||
done=true;
|
||||
};
|
||||
}
|
||||
function bfs(){
|
||||
let searches=[["s"]];
|
||||
let visitedVertices=["s"];
|
||||
|
@ -388,7 +403,7 @@ body {
|
|||
</style>
|
||||
</head>
|
||||
<body onload="initializeEventHandlers();resetToDefaultGraph();parseGraph()">
|
||||
<h1>Simulation des Ford-Fulkersen-Algorithmus</h1>
|
||||
<h1>Simulation des Ford-Fulkerson-Algorithmus</h1>
|
||||
|
||||
<h2> Graph definieren </h2>
|
||||
<b>Knoten</b>, mit Semikolon getrennt (s und t werden nicht mit angegeben)
|
||||
|
@ -407,7 +422,7 @@ body {
|
|||
<br> Mausklick:
|
||||
<button onclick="editMode='drag';draw()"> verschiebt Knoten </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>
|
||||
<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> <span id="statusSim"> </span>
|
||||
<canvas id="c" width=600 height=300 style="width:100%"> </canvas>
|
||||
</body>
|
||||
|
|
Loading…
Reference in New Issue