У нас есть следующие входные данные для алгоритма:
Граф G
без циклов (также известный как остовное дерево), где каждый узел имеет соответствующий вес.
Я хочу найти независимый набор S
такой, что:
- Никакие два элемента в
S
не образуют ребро вG
- Не существует другого возможного подмножества, удовлетворяющего приведенному выше условию, для которого существует больший вес, чем
S[0] + S[1] + ... + S[n-1]
(гдеlen(S)==n
).
Это псевдокод высокого уровня, который у меня есть до сих пор:
MaxWeightNodes(SpanningTree S):
output = {0}
While(length(S)):
o = max(node in S)
output = output (union) o
S = S \ (o + adjacentNodes(o))
End While
Return output
Может ли кто-нибудь сказать мне сразу, сделал ли я какие-либо ошибки, или этот алгоритм даст мне результат, который я хочу?