Window size and Example restructuring
This commit is contained in:
parent
deaffff595
commit
7014e9308c
@ -73,7 +73,7 @@ public class OurApplication {
|
|||||||
frame.pack();
|
frame.pack();
|
||||||
applet.init();
|
applet.init();
|
||||||
applet.start();
|
applet.start();
|
||||||
frame.setSize(1000,800);
|
frame.setSize(1350,800);
|
||||||
frame.setVisible(true);
|
frame.setVisible(true);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -8,6 +8,59 @@ public class ExampleGraphs {
|
|||||||
|
|
||||||
public DirectedGraph<VertexMarking, EdgeMarking> example1() {
|
public DirectedGraph<VertexMarking, EdgeMarking> example1() {
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Erstellt einen Beispielgraphen (Beispiel 4), der sich ideal für die Demonstration der Funktionsweise
|
||||||
|
* des Dijkstra- und A*-Algorithmus eignet. Der Graph enthält eine Vielzahl von Knoten, die durch
|
||||||
|
* gewichtete Kanten verbunden sind. Dies ermöglicht es, den kürzesten Weg von einem Startknoten zu einem
|
||||||
|
* Zielknoten effizient zu berechnen und die Unterschiede zwischen den beiden Algorithmen in der
|
||||||
|
* Pfadfindung zu veranschaulichen.
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
DirectedGraph<VertexMarking, EdgeMarking> example4 = new DirectedGraph<>();
|
||||||
|
|
||||||
|
// Erstellung der Knoten mit Koordinaten
|
||||||
|
MarkedVertex<VertexMarking> A = new MarkedVertex<>(50, 250, "Start", null, null);
|
||||||
|
MarkedVertex<VertexMarking> B = new MarkedVertex<>(150, 150, "B", null, null);
|
||||||
|
MarkedVertex<VertexMarking> C = new MarkedVertex<>(150, 350, "C", null, null);
|
||||||
|
MarkedVertex<VertexMarking> D = new MarkedVertex<>(250, 100, "D", null, null);
|
||||||
|
MarkedVertex<VertexMarking> E = new MarkedVertex<>(250, 250, "E", null, null);
|
||||||
|
MarkedVertex<VertexMarking> F = new MarkedVertex<>(350, 200, "F", null, null);
|
||||||
|
MarkedVertex<VertexMarking> G = new MarkedVertex<>(450, 300, "G", null, null);
|
||||||
|
MarkedVertex<VertexMarking> H = new MarkedVertex<>(450, 100, "Ende", null, null);
|
||||||
|
|
||||||
|
|
||||||
|
// Hinzufügen der Knoten zum Graphen
|
||||||
|
example4.addVertex(A);
|
||||||
|
example4.addVertex(B);
|
||||||
|
example4.addVertex(C);
|
||||||
|
example4.addVertex(D);
|
||||||
|
example4.addVertex(E);
|
||||||
|
example4.addVertex(F);
|
||||||
|
example4.addVertex(G);
|
||||||
|
example4.addVertex(H);
|
||||||
|
|
||||||
|
// Erstellung der Kanten mit Gewichtungen
|
||||||
|
example4.addEdge(new MarkedEdge<>("AB", A, B, new EdgeWeightMarking(4)));
|
||||||
|
example4.addEdge(new MarkedEdge<>("AC", A, C, new EdgeWeightMarking(2)));
|
||||||
|
example4.addEdge(new MarkedEdge<>("BC", B, C, new EdgeWeightMarking(5)));
|
||||||
|
example4.addEdge(new MarkedEdge<>("BD", B, D, new EdgeWeightMarking(10)));
|
||||||
|
example4.addEdge(new MarkedEdge<>("CD", C, D, new EdgeWeightMarking(3)));
|
||||||
|
example4.addEdge(new MarkedEdge<>("CE", C, E, new EdgeWeightMarking(7)));
|
||||||
|
example4.addEdge(new MarkedEdge<>("DE", D, E, new EdgeWeightMarking(2)));
|
||||||
|
example4.addEdge(new MarkedEdge<>("DF", D, F, new EdgeWeightMarking(2)));
|
||||||
|
example4.addEdge(new MarkedEdge<>("EF", E, F, new EdgeWeightMarking(5)));
|
||||||
|
example4.addEdge(new MarkedEdge<>("EG", E, G, new EdgeWeightMarking(10)));
|
||||||
|
example4.addEdge(new MarkedEdge<>("FG", F, G, new EdgeWeightMarking(3)));
|
||||||
|
example4.addEdge(new MarkedEdge<>("FH", F, H, new EdgeWeightMarking(6)));
|
||||||
|
example4.addEdge(new MarkedEdge<>("GH", G, H, new EdgeWeightMarking(1)));
|
||||||
|
|
||||||
|
return example4;
|
||||||
|
}
|
||||||
|
|
||||||
|
public DirectedGraph<VertexMarking, EdgeMarking> example2() {
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Beispiel 1 zeigt ein Gitter aus Knoten und Kanten, bei dem jeder Knoten mit
|
* Beispiel 1 zeigt ein Gitter aus Knoten und Kanten, bei dem jeder Knoten mit
|
||||||
* seinen horizontal und vertikal benachbarten Knoten verbunden ist. Alle Kanten
|
* seinen horizontal und vertikal benachbarten Knoten verbunden ist. Alle Kanten
|
||||||
@ -18,8 +71,6 @@ public class ExampleGraphs {
|
|||||||
* Demonstrieren, wie der A*-Algorithmus durch gezieltere Suche effizienter ist
|
* Demonstrieren, wie der A*-Algorithmus durch gezieltere Suche effizienter ist
|
||||||
* als der Dijkstra-Algorithmus in einem strukturierten Gittergraphen.
|
* als der Dijkstra-Algorithmus in einem strukturierten Gittergraphen.
|
||||||
*
|
*
|
||||||
* Startknoten: A
|
|
||||||
* Endknoten: Y
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
DirectedGraph<VertexMarking, EdgeMarking> example1 = new DirectedGraph<>();
|
DirectedGraph<VertexMarking, EdgeMarking> example1 = new DirectedGraph<>();
|
||||||
@ -63,7 +114,7 @@ public class ExampleGraphs {
|
|||||||
graph.addEdge(backwardEdge);
|
graph.addEdge(backwardEdge);
|
||||||
}
|
}
|
||||||
|
|
||||||
public DirectedGraph<VertexMarking, EdgeMarking> example2() {
|
public DirectedGraph<VertexMarking, EdgeMarking> example3() {
|
||||||
DirectedGraph<VertexMarking, EdgeMarking> example2 = new DirectedGraph<>();
|
DirectedGraph<VertexMarking, EdgeMarking> example2 = new DirectedGraph<>();
|
||||||
|
|
||||||
|
|
||||||
@ -73,8 +124,6 @@ public class ExampleGraphs {
|
|||||||
* Der andere Weg (unten) hat mehr Knoten mit höherer Gewichtung der Kanten. Der Algorithmus sollte zuerst den oberen
|
* Der andere Weg (unten) hat mehr Knoten mit höherer Gewichtung der Kanten. Der Algorithmus sollte zuerst den oberen
|
||||||
* Weg erkunden, bis er die hohe Gewichtung der letzten Kante des unteren Wegs berücksichtigt.
|
* Weg erkunden, bis er die hohe Gewichtung der letzten Kante des unteren Wegs berücksichtigt.
|
||||||
*
|
*
|
||||||
* Startknoten: A
|
|
||||||
* Endknoten: E
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
MarkedVertex A = new MarkedVertex<>(100, 100, "Start", null, null);
|
MarkedVertex A = new MarkedVertex<>(100, 100, "Start", null, null);
|
||||||
@ -107,15 +156,13 @@ public class ExampleGraphs {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
public DirectedGraph<VertexMarking, EdgeMarking> example3() {
|
public DirectedGraph<VertexMarking, EdgeMarking> example4() {
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Beispiel 3 zeigt ein Labyrinth mit vier horizontalen Wegen, die jeweils aus vier Knoten bestehen.
|
* Beispiel 3 zeigt ein Labyrinth mit vier horizontalen Wegen, die jeweils aus vier Knoten bestehen.
|
||||||
* Jeder Weg führt zum Endpunkt E1, E2, E3 bzw. E4. Ziel ist es zu zeigen, dass die Algorithmen auch
|
* Jeder Weg führt zum Endpunkt E1, E2, E3 bzw. E4. Ziel ist es zu zeigen, dass die Algorithmen auch
|
||||||
* potenziell falsche Wege erkunden können, bevor sie den richtigen Endpunkt erreichen.
|
* potenziell falsche Wege erkunden können, bevor sie den richtigen Endpunkt erreichen.
|
||||||
*
|
*
|
||||||
* Startknoten: A
|
|
||||||
* Endknoten: E2
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
DirectedGraph<VertexMarking, EdgeMarking> example3 = new DirectedGraph<>();
|
DirectedGraph<VertexMarking, EdgeMarking> example3 = new DirectedGraph<>();
|
||||||
@ -187,63 +234,6 @@ public class ExampleGraphs {
|
|||||||
|
|
||||||
return example3;
|
return example3;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public DirectedGraph<VertexMarking, EdgeMarking> example4() {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Erstellt einen Beispielgraphen (Beispiel 4), der sich ideal für die Demonstration der Funktionsweise
|
|
||||||
* des Dijkstra- und A*-Algorithmus eignet. Der Graph enthält eine Vielzahl von Knoten, die durch
|
|
||||||
* gewichtete Kanten verbunden sind. Dies ermöglicht es, den kürzesten Weg von einem Startknoten zu einem
|
|
||||||
* Zielknoten effizient zu berechnen und die Unterschiede zwischen den beiden Algorithmen in der
|
|
||||||
* Pfadfindung zu veranschaulichen.
|
|
||||||
*
|
|
||||||
* Startknoten: A
|
|
||||||
* Zielknoten: H
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
DirectedGraph<VertexMarking, EdgeMarking> example4 = new DirectedGraph<>();
|
|
||||||
|
|
||||||
// Erstellung der Knoten mit Koordinaten
|
|
||||||
MarkedVertex<VertexMarking> A = new MarkedVertex<>(50, 250, "Start", null, null);
|
|
||||||
MarkedVertex<VertexMarking> B = new MarkedVertex<>(150, 150, "B", null, null);
|
|
||||||
MarkedVertex<VertexMarking> C = new MarkedVertex<>(150, 350, "C", null, null);
|
|
||||||
MarkedVertex<VertexMarking> D = new MarkedVertex<>(250, 100, "D", null, null);
|
|
||||||
MarkedVertex<VertexMarking> E = new MarkedVertex<>(250, 250, "E", null, null);
|
|
||||||
MarkedVertex<VertexMarking> F = new MarkedVertex<>(350, 200, "F", null, null);
|
|
||||||
MarkedVertex<VertexMarking> G = new MarkedVertex<>(450, 300, "G", null, null);
|
|
||||||
MarkedVertex<VertexMarking> H = new MarkedVertex<>(450, 100, "Ende", null, null);
|
|
||||||
|
|
||||||
|
|
||||||
// Hinzufügen der Knoten zum Graphen
|
|
||||||
example4.addVertex(A);
|
|
||||||
example4.addVertex(B);
|
|
||||||
example4.addVertex(C);
|
|
||||||
example4.addVertex(D);
|
|
||||||
example4.addVertex(E);
|
|
||||||
example4.addVertex(F);
|
|
||||||
example4.addVertex(G);
|
|
||||||
example4.addVertex(H);
|
|
||||||
|
|
||||||
// Erstellung der Kanten mit Gewichtungen
|
|
||||||
example4.addEdge(new MarkedEdge<>("AB", A, B, new EdgeWeightMarking(4)));
|
|
||||||
example4.addEdge(new MarkedEdge<>("AC", A, C, new EdgeWeightMarking(2)));
|
|
||||||
example4.addEdge(new MarkedEdge<>("BC", B, C, new EdgeWeightMarking(5)));
|
|
||||||
example4.addEdge(new MarkedEdge<>("BD", B, D, new EdgeWeightMarking(10)));
|
|
||||||
example4.addEdge(new MarkedEdge<>("CD", C, D, new EdgeWeightMarking(3)));
|
|
||||||
example4.addEdge(new MarkedEdge<>("CE", C, E, new EdgeWeightMarking(7)));
|
|
||||||
example4.addEdge(new MarkedEdge<>("DE", D, E, new EdgeWeightMarking(2)));
|
|
||||||
example4.addEdge(new MarkedEdge<>("DF", D, F, new EdgeWeightMarking(2)));
|
|
||||||
example4.addEdge(new MarkedEdge<>("EF", E, F, new EdgeWeightMarking(5)));
|
|
||||||
example4.addEdge(new MarkedEdge<>("EG", E, G, new EdgeWeightMarking(10)));
|
|
||||||
example4.addEdge(new MarkedEdge<>("FG", F, G, new EdgeWeightMarking(3)));
|
|
||||||
example4.addEdge(new MarkedEdge<>("FH", F, H, new EdgeWeightMarking(6)));
|
|
||||||
example4.addEdge(new MarkedEdge<>("GH", G, H, new EdgeWeightMarking(1)));
|
|
||||||
|
|
||||||
return example4;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
Reference in New Issue
Block a user