public void TestAssignment() { var algorithm = new Dijkstra<int>(Graph, 1); algorithm.Run(); var nodes = new[] { Graph.Get(7), Graph.Get(37), Graph.Get(59), Graph.Get(82), Graph.Get(99), Graph.Get(115), Graph.Get(133), Graph.Get(165), Graph.Get(188), Graph.Get(197), }.ToList(); nodes.ForEach(n => { Console.Write(n.Score); Console.Write(","); }); }
public void TestSmallGraph() { var g = new Graph<int>(); for (int i = 0; i < 4; ++i) g.GetOrCreateVertex(i); g.Get(0).AddEdge(1, 1); g.Get(0).AddEdge(2, 3); g.Get(1).AddEdge(2, 1); g.Get(1).AddEdge(3, 3); g.Get(2).AddEdge(3, 1); var algorithm = new Dijkstra<int>(g, 0); algorithm.Run(); Assert.AreEqual(0, g.Get(0).Score); Assert.AreEqual(1, g.Get(1).Score); Assert.AreEqual(2, g.Get(2).Score); Assert.AreEqual(3, g.Get(3).Score); }
static void Main(string[] args) { StreamReader sr = new StreamReader("input.txt"); StreamWriter sw = new StreamWriter("output.txt"); var tmp = sr.ReadLine().Split(new[] { " " }, StringSplitOptions.RemoveEmptyEntries); int n = int.Parse(tmp[0]); int m = int.Parse(tmp[1]); Graph graph = new Graph(n); int vertexS, vertexE, weight; while (!sr.EndOfStream) { var buf = sr.ReadLine().Split(new[] { " " }, StringSplitOptions.RemoveEmptyEntries); vertexS = int.Parse(buf[0]); vertexE = int.Parse(buf[1]); weight = int.Parse(buf[2]); graph.addEdge(vertexS - 1, vertexE - 1, weight); } if (graph._vertices.Count == 0) { sw.Write(0); } else { Dijkstra dijkstra = new Dijkstra(graph); int res = dijkstra.solve(0, n - 1); sw.Write(res); } sw.Close(); }
private void btnRun_Click(object sender, EventArgs e) { if (Vertices.Count != 0) { double[,] G = new double[Vertices.Count, Vertices.Count]; foreach (Edge edge in Edges) { G[edge.from, edge.to] = edge.weight; } try { Dijkstra dijk = new Dijkstra(G, 0); double[] dist = dijk.dist; int[] path = dijk.path; for (int i = 0; i < dist.Length; i++) { Graphics g = panMap.CreateGraphics(); Vertex p = Vertices[i]; StringFormat distFormat = new StringFormat(); distFormat.Alignment = StringAlignment.Center; g.DrawString("Uzaklık= " + dist[i].ToString(), new Font("Verdana", 11), new SolidBrush(Color.Red), p.p.X, p.p.Y - 7, distFormat); } } catch (ArgumentException) { } } else { MetroFramework.MetroMessageBox.Show(this, "Düğümleri Oluşturup Ağırlıklarını Girmeden Neyi Çalıştırmaya Çalışıyosunuz :)", "Uyarı", MessageBoxButtons.OK, MessageBoxIcon.Information); } }
public void TestSmallGraph() { var g = new Graph <int>(); for (int i = 0; i < 4; ++i) { g.GetOrCreateVertex(i); } g.Get(0).AddEdge(1, 1); g.Get(0).AddEdge(2, 3); g.Get(1).AddEdge(2, 1); g.Get(1).AddEdge(3, 3); g.Get(2).AddEdge(3, 1); var algorithm = new Dijkstra <int>(g, 0); algorithm.Run(); Assert.AreEqual(0, g.Get(0).Score); Assert.AreEqual(1, g.Get(1).Score); Assert.AreEqual(2, g.Get(2).Score); Assert.AreEqual(3, g.Get(3).Score); }
static void Main(string[] args) { Dijkstra t = new Dijkstra(); t.print(); }
static void Main(string[] args) { Graph graph = new Graph(); graph.AddEdge(0, 1, 7); graph.AddEdge(0, 2, 9); graph.AddEdge(0, 5, 14); graph.AddEdge(1, 2, 10); graph.AddEdge(1, 3, 15); graph.AddEdge(2, 3, 11); graph.AddEdge(2, 5, 2); graph.AddEdge(3, 4, 6); graph.AddEdge(4, 5, 9); Dijkstra dijkstra = new Dijkstra(graph, graph.Vertices.First()); dijkstra.Run(); Console.WriteLine(dijkstra.Output()); Console.WriteLine("Press any key.."); Console.ReadKey(); }
// obliczenie najkrótszej ścieżki z lokacji A do B public int GetTime(uint _startLocation, uint _stopLocation) { dijkstra = new Dijkstra.Dijkstra(); foreach (Connection connection in connections) { dijkstra.Connections.Add(connection); } /*foreach (City city in cityData) { dijkstra.Locations.Add(city.Id); }*/ for (uint i = 0; i <= maxId + 1; i++) { dijkstra.Locations.Add(i); } // wyliczenie najkrótszej ścieżki między lokacjami return dijkstra.CalculateMinCost(_startLocation, _stopLocation); }
public Map(GlobalMySql GlobalMySqlObject) { //zainicjalizowanie obiektu obliczeniowego Dijkstry dijkstra = new Dijkstra.Dijkstra(); citiesNumber = 0; maxId = 0; //ustawienie połączenia z bazą dataBase = GlobalMySqlObject; if (dataBase.Connection.State != ConnectionState.Open) { try { dataBase.Connection.Open(); } catch { // } } MySqlCommand query = dataBase.Connection.CreateCommand(); //ustalenie najwiekszego identyfikatora miasta w bazie query.CommandText = "SELECT GREATEST( MAX( id_city ) , MAX( id_cityB ) ) AS max FROM `times`"; try { maxId = uint.Parse(query.ExecuteScalar().ToString()); } catch { // } //utworznie zapytania pobierającego dane o miastach query.CommandText = "SELECT * FROM `map_city`"; //pobranie danych o miastach try { using (MySqlDataReader reader = query.ExecuteReader()) { while (reader.Read()) { //utworznie obiektu typu City z danymi z pojedynczego rekordu City city = new City( reader.GetUInt32("id"), reader.GetString("name"), reader.GetUInt32("accessLevel"), reader.GetUInt32("leftCoordinate"), reader.GetUInt32("topCoordinate"), reader.GetString("icon") ); //dodanie obiektu do listy miast cityData.Add(city); //zwiększenie liczby miast citiesNumber++; } } } catch { // } //utworzenie zapytania pobierającego czasy między lokacjami query.CommandText = "SELECT * FROM `times`"; //pobranie danych o miastach try { using (MySqlDataReader reader = query.ExecuteReader()) { while (reader.Read()) { //utworzenie połączenia pomiędzy Link( reader.GetUInt32("id_city"), reader.GetUInt32("id_cityB"), reader.GetInt32("weight") ); } } } catch { // } }
static void Main(string[] args) { graph x = new graph(); Console.WriteLine("Enter Starting Node (node0-4): "); string start = Console.ReadLine(); x.Add("node0"); x.Add("node1"); x.Add("node2"); x.Add("node3"); x.Add("node4"); x.AddEdge(x.vertex[0],x.vertex[1],5); x.AddEdge(x.vertex[0], x.vertex[2], 8); x.AddEdge(x.vertex[1], x.vertex[3], 7); x.AddEdge(x.vertex[2], x.vertex[4], 3); x.AddEdge(x.vertex[3], x.vertex[4], 5); Dijkstra test = new Dijkstra(x,start); foreach (Vertex e in test.dist) { Console.Write("Distance to "+e.index+": "); Console.WriteLine(e.distance); } Console.WriteLine(); }