образуя путь из смежности матриц - PullRequest
2 голосов
/ 29 августа 2011

если у меня есть смежность узлов, каждое число представляет идентификатор узла

                    A  = [ 3 7;
                           4 7;
                           6 9;
                           3 10;
                           4 10;
                           7 10]

как я могу получить результат, который предполагает формирование пути

                          [3 7 10 4]
                          [4 7 10 3]
                          [6 9 0 0]
                          [3 10 4 7]
                          [4 10 3 7]
                          [7 10 4 7]

из матрицы A первой строкисо значением 3 приведет к значению 7, а из 7 он найдет матрицу A, которая приведет к последней строке, которая соединяет 7 с номером 10. Таким образом, из числа 10 он может выбрать либо значение 3, либо 4 в качестве следующего числа.Я хочу, чтобы в ответе не было повторяющегося числа в одной строке, но не нужно заканчиваться наивысшим идентификатором, он закончится, если следующий номер будет повторяться из предыдущего.Надеюсь, я дал понять, что я новичок в Matlab.заранее большое спасибо.

Ответы [ 2 ]

3 голосов
/ 29 августа 2011

Это относится к области теории графов.Если вы не хотите заново изобретать колесо, есть несколько наборов инструментов, которые предоставляют общие алгоритмы при решении таких проблем:

0 голосов
/ 29 августа 2011

Использовать поиск в ширину (http://en.wikipedia.org/wiki/Breadth-first_search).. Вы можете либо отклонить пути, которые недопустимы для ваших критериев во время поиска, либо отфильтровать их позже.

Вы должны уточнить свой вопрос дальше. Не совсем понятно, о чем вы просите.

...