Я создал график автобусных остановок, связанных между собой автобусными линиями. Две станции могут быть связаны несколькими линиями. При поиске путей мне нужно получать пути с минимальным количеством строк.
Отношения закодированы так:
(a)-[:CONNECTED_TO {line:lineid}]->(b)
Мне нужно получить кратчайшие пути между двумя узлами, упорядоченные по количеству различных строк. Например:
path 1 : (a)-[lineid1]->(b)-[lineid1]->(b)
path 2 : (a)-[lineid1]->(b)-[lineid2]->(b)
Первый путь должен быть заказан первым, потому что все остановки связаны одной линией.
Чтобы выбрать между двумя путями, я должен выбрать тот, у которого минимально разные линии, но также и с минимальным переносом строк, например:
path1 : 1-2-2-1-2-3
path2 : 1-1-2-2-3-3
Я должен выбрать путь2