Förderjahr 2020 / Project Call #15 / ProjektID: 5172 / Projekt: Resilionator
Die letzten Schritte zum Ziel
Im letzten Blog haben wir den Dijkstra Routingalgorithmus vorgestellt, welcher den kürzesten Pfad zwischen zwei Knoten berechnet. Wir haben diesen Algorithmus um eine zweite Variante ergänzt, nämlich eine bei der die kürzesten Pfade nicht neu berechnet werden, auch dann nicht wenn ein Knoten der auf diesem Pfad liegt ausfällt: dadurch bietet der Algorithmus eine gewisse Form der Resilienz bis global neue Routen berechnet werden. Jedoch kann es auch hier unter Umständen dazu führen, dass der Algorithmus in eine Schleife kommt aus der er nicht mehr hinaus findet, wie in dem Beispiel unterhalb zu sehen ist. In diesem Beispiel hat der Algorithmus einen kürzesten Pfad zwischen den Knoten “b” und “k” ermittelt. Jedoch ist nach der Berechnung der Knoten “l” ausgefallen. Da der Dijkstra Algorithmus aber nur eine lokale Sicht auf das Netzwerk hat, nimmt dieser vom Knoten “e” aus nicht “f”, der zielführend wäre, sondern “a”, da dieser kostengünstiger ist. Vom Knoten “a” wird wieder Knoten “e” angesteuert usw.
Wir haben auch eine Custom-Routing Funktion implementiert. Bei dieser kann man für jeden Knoten im Netzwerk angeben, welche Nachbarn der Algorithmus nehmen soll. Diese sind nach ihrer Priorität geordnet. Es müssen jedoch nicht alle Knoten bzw. alle Nachbarn eines Knoten angegeben werden, diese werden dann vom Algorithmus ignoriert. Dadurch ist ermöglicht, dass flexibel weitere Routingalgorithmen von extern getestet werden können.
Als letzten Schritt zur Finalisierung unseres Projektes haben wir noch eine zweite Feedbackrunde abgehalten, um neu hinzugefügte UI/UX Elemente und Funktionen ausgiebiger testen zu können, aber auch um die letzten Bugs auszumerzen. Dazu konsultierten wir zum Teil auch unsere Tester aus der ersten Feedbackrunde um einen vorher/nachher Vergleich anstellen zu können. Eine Funktion die z.B. nach der Evaluierung der Feedbacks neu hinzugefügt wurde, ist das Erstellen eines zufälligen Graphen, welcher es Nutzern ermöglicht, den Schritt der manuellen Graphenerstellung zu überspringen und sofort mit der Analyse oder dem Routing zu beginnen.
Wir freuen uns sehr, dass wir unser Projekt “Resilionator” erfolgreich abschließen konnten und wollen uns auch bei Netidee für diese einzigartige Gelegenheit herzlichst bedanken. Das Ende des Projektes bedeutet aber nicht das Ende der Entwicklung am Tool selbst. Wir werden unser Projekt auf unsere Githubseite weiter zur Entwicklung zur Verfügung stellen und hoffen, dass es noch um viele weitere nützliche Funktionen bereichert wird!