2009-07-22 7 views
-1

У меня есть древовидная структура взаимосвязанных узлов разных типов. Каждый узел отслеживает, с какими узлами он связан. В этой структуре мне нужно найти самую длинную несвязанную цепочку или путь узлов того же типа.Поиск самой длинной цепи узлов одного типа

Я прочитал графики и широту/глубину первых поисков, но это не совсем дает результаты, которые мне нужны. (они найдут цепочку, но также включают все ветви тупика между исходным и конечным узлами)

Существует ли для этого существующий алгоритм?

+1

Самый длинный * несвязанный * цепь? Если вы ищете цепочку, я предполагаю, что вы хотите, чтобы эти узлы были связаны *? Не могли бы вы уточнить? –

+0

Можете ли вы объяснить свой вопрос немного больше, поскольку, если каждый узел отслеживает узлы, к которым он подключен, похоже, что у вас есть граф, который имеет связанные компоненты, а для каждого типа узла - количество подключенных компонентов, тип узла находится в, тот, который присутствует в большинстве подключенных компонентов, является типом, который имеет самую длинную несвязанную цепочку. это то, что вы имели в виду? – umar

+0

Я думаю, что автор указывает на то, что он может получить график обратно как ((A-> B), (A-> F), (B-> C), (C-> D), (D-> E)). A-F - это все тот же тип. Но он хочет, чтобы любые ветви, такие как A-> F, были обрезаны из графика. Это представляет проблему в случае ((M-> N), (N-> O), (M-> P), (P-> Q)), так как в одном дереве есть две ветви равной длины - который вы обрезаете? –

ответ

0

Если по «цепочке» вы имеете в виду связную компоненты, то

Произнесите граф имеет ребро Е и вершины V.

итерацию по краям, удаляя все ребра, соединяющих узлы различного типа. Это O (| E |).

Найдите подключенные компоненты, используя глубину-первую или ширину. Это O (| E | + | V |).

Самый большой подключенный компонент будет самой длинной цепью узлов одного и того же типа.

Если по цепочке вы имеете в виду простой цикл (запускает, останавливается на том же узле, не пересматривает любые узлы), то это NP завершено. Если подключенные компоненты малы, это должно быть осуществимо, тем не менее.

Если по цепочке вы имеете в виду простую дорогу, то это NP-Hard.

Смежные вопросы