2010-11-26 5 views
4

hypotetical question. 내가 나무 T와 T의 노드 쌍 (x, y) 목록을 받았다고 가정 해 봅시다. T에서 각 edge를 최대 한 번 사용하여 simotaneously (y와 x 연결) 할 수있는 쌍의 수를 묻습니다. .트리에서 노드 연결

어떻게 생각하나요?

+0

여행 판매원 문제를 설명하는 것처럼 들리십니까? 에지를 두 번 사용하지 않고 가능한 많은 노드를 시도하고 방문하십시오. 이것은 NP 어렵고 많은 연구의 초점입니다. http://en.wikipedia.org/wiki/Travelling_salesman_problem – TZHX

+2

@TZHX 아니오, 노드 쌍으로 경로를 의미한다고 생각합니다. 그래서 그는 가장자리 분리 된 주어진 경로의 수를 최대화하기를 원합니다. – marcog

+0

@marcog, 네 말이 맞아. 그게 내가 원하는거야! – Alexander

답변

2

나무에는 NP 어려운 것은 아닙니다. 예를 들어, 다음을 수행 할 수 있습니다.

  1. 임의로 트리를 뿌리십시오.

  2. 각 정점 v에 대해 v의 하위 트리에만 국한된 최적 해를 계산합니다.

  3. 또한 각 v에 대해 v의 모서리를 포함하는 각 경로 p에 대해 경로 p를 제외하고 v의 하위 트리에만 국한되는 최적 해를 계산합니다.

(2) 및 (3)은 v의 서브 트리 내의 더 작은 문제에 대한 해답을 사용하여 계산 될 수있다.

1 단계, 2 단계 및 3 단계를보고 재귀를 직접 계산하는 것이 더 쉽지만 아이디어를 얻으려면 (2) 최대 해를 구하면 계산할 수 있습니다. v의 자녀들을위한 해답 (즉, 각 어린이에 대해 2 단계에서 생성 된 해의 합)과 v를 포함하는 각 경로에 하나 더하기 다른 어린이들에 대한 2 단계 해법 (이것은 본질적으로 하나의 또는 v의 자녀에 대해 3 단계에서 생성 된 두 가지 솔루션과 다른 어린이에 대해 2 단계에서 생성 된 솔루션의 합계).

관련 문제