Спасибо за быстрый ответ. Скачаю, ознакомлюсь.
Можно сразу вопрос до кучи, чтобы темы не плодить? У меня имеется планарный граф и я хочу найти все возможные различные пути из вершины А в вершину Б. Под различными понимаются такие пути, каждый из которых содержит вершину, которую не содержит другой путь. Если же имеется два пути, допустим S и R, причём множество вершин пути S является подмножеством вершин пути R, то такие два пути являются эквивалентными, и в ответ выбирается, разумеется, самый короткий путь S.
Например, вот эти два пути различны:
Код:
##### #####
#...# #...#
#...# #...#
###...## ###...##
#......# #......#
###.#.##.### ###.#.##.###
#...#.##...# #...#.##...#
#.S>>>>>>E.# #.S>>v.>>E.#
#####.#....# #####v#^...#
#...#### #>>^####
##### #####
А вот здесь первые три эквивалентны, причём предпочтение отдаётся самому левому, в то время как четвёртый отличается от первых трёх:
Код:
##### ##### ##### #####
#...# #...# #...# #...#
#...# #...# #...# #...#
###...## ###>v.## ###.>v## ###>>v##
#..>>>v# #..^>>v# #..>^>v# #..^.>v#
###.#^##v### ###.#^##v### ###.#^##v### ###.#^##v###
#...#^##v..# #...#^##v..# #...#^##v..# #...#^##v..#
#.S>>^..>E.# #.S>>^..>E.# #.S>>^..>E.# #.S>>^..>E.#
#####.#....# #####.#....# #####.#....# #####.#....#
#...#### #...#### #...#### #...####
##### ##### ##### #####
В каком направлении копать?