<<<На главную
Поиск всех путей на ориентированном графе из точки а в точку f на основе упорядочивания массивов и элементов массива по возрастанию. Легко доработать до поиска кратчайшего пути.

Ориентированный граф с 6 вершинами:

В текстовом представлении:
a → b, a → c, a → d
b → d, b → e, b → f
c → d, c → e, c → f
d → e, d → f
e → f
f → (нет исходящих)

Код на языке PHP:
https://gitflic.ru/project/dcc0/mix-c-89-php/blob/?file=all_ways_three_matrix.php
Результат:
Array ( [0] => a [1] => b [2] => d [3] => e [4] => f )
Array ( [0] => a [1] => b [2] => d [3] => f )
Array ( [0] => a [1] => b [2] => e [3] => f )
Array ( [0] => a [1] => b [2] => f )
Array ( [0] => a [1] => c [2] => d [3] => e [4] => f )
Array ( [0] => a [1] => c [2] => d [3] => f )
Array ( [0] => a [1] => c [2] => e [3] => f )
Array ( [0] => a [1] => c [2] => f )
Array ( [0] => a [1] => d [2] => e [3] => f )
Array ( [0] => a [1] => d [2] => f )

Все пути:
Array ( [0] => Array ( [0] => a [1] => b [2] => d [3] => e [4] => f ) [1] => Array ( [0] => a [1] => b [2] => d [3] => f ) [2] => Array ( [0] => a [1] => b [2] => e [3] => f ) [3] => Array ( [0] => a [1] => b [2] => f ) [4] => Array ( [0] => a [1] => c [2] => d [3] => e [4] => f ) [5] => Array ( [0] => a [1] => c [2] => d [3] => f ) [6] => Array ( [0] => a [1] => c [2] => e [3] => f ) [7] => Array ( [0] => a [1] => c [2] => f ) [8] => Array ( [0] => a [1] => d [2] => e [3] => f ) [9] => Array ( [0] => a [1] => d [2] => f ) )
Количество всех путей 10

Расстояния
Array ( [ab] => 1 [ac] => 2 [ad] => 3 [bd] => 1 [be] => 1 [bf] => 3 [cd] => 1 [ce] => 1 [cf] => 1 [de] => 2 [df] => 1 [ef] => 4 )
Минимальное расстояние = 3
Для пути:
Array ( [0] => a [1] => b [2] => d [3] => f )