Разбить неориентированный граф по отрицательным ребрам - PullRequest
0 голосов
/ 28 февраля 2019

Интересно, существует ли алгоритм для разделения графа неориентированного связного компонента по заданным отрицательным ребрам.

По существу вершины, представленные в отрицательных ребрах, должны быть недоступны.

1 Ответ

0 голосов
/ 24 мая 2019

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

Вот алгоритм.

Begin 
    For each edge e in graph G, if e is negative, remove e from G.

    For each vertex v in G, do:
        If v is not labeled as visited
            Let c be a new component, and add c to set C.
            Call procedure DFS(v, c) to find one component of positive edges only.
        End If
    End For

    The set C contains all the connected components consisting of positive edges only.
End

Procedure DFS(v, c)
    Add v to c, and label v as visited.
    For each edge from v to w, do
        If vertex w is not labeled as visited then
            Call DFS(G,w)
        End If
    End For
End Procedure
...