Connection — библиотека нахождения путей в графе на Swift. Автор позиционирует ее как расширение GameplayKit, но, кажется, может подойти и многим другим. В целом — ищет кратчайший путь между двумя вершинами во взвешенном графе.
Пример:
import Connection // Create nodes. let nodeA = Node(value: "A") let nodeB = Node(value: "B") let nodeC = Node(value: "C") // Make connections. nodeA.addConnection(to: nodeB, bidirectional: false, weight: 1) nodeB.addConnection(to: nodeC, bidirectional: true, weight: 2) // Create graph. let graph = Graph([nodeA, nodeB, nodeC]) // Find path. let shortestAtoCPath = graph.findPath(from: nodeA, to: nodeC) print(shortestAtoCPath) // ["A", "B", "C"]
Исходники: https://github.com/zntfdr/Connection/