Для данного графика это возможно с помощью функции кратчайшего пути.Сначала вы можете идентифицировать главные и конечные узлы графа следующим образом:
hNodes = setdiff(tail, head);
tNodes = setdiff(head, tail);
Для простоты здесь я предполагаю, что ваши два пути идут от узла 1 к узлам 11 и 16. Вы можете расширитьэто по мере необходимости путем изменения следующего блока кода для цикла по hNodes или tNodes.
Вы можете использовать кратчайший путь, чтобы получить список узлов вдоль каждого из путей ветвления.Вызов setdiff используется для поиска узлов, которые принадлежат только второй ветви.Затем вы можете получить желаемые результаты, взяв каждый второй узел в path1, а затем добавив каждый второй узел из второй ветви
path1 = shortestpath(Graph, 1, 11);
path2 = shortestpath(Graph, 1, 16);
branch2 = setdiff(path2, path1);
AlternateNodes = [path1(1:2:end) branch2(1:2:end)]
AlternateNodes =
1 3 5 7 9 11 12 14 16