Как правильно представить карту (метро) для поиска и каким алгоритмом реализовать?
А еще спорят, нужна ли математика программисту ...
По ссылке теория, закодить подобное думаю не составит труда.
Neo4j — графовая система управления базами данных с открытым исходным кодом, реализованная на Java.