다음은 원래 질문에 더 연결된 MIT 솔루션 세트를 따르는 증거입니다. 명확하게하기 위해, 나는 그들이 사용하는 것과 동일한 표기법을 사용하여 비교를보다 쉽게 할 수 있습니다.
우리는 두 정점 있다고 가정 및 간 거리되도록 와 경로에 예를 들어 거리, 직경이고 트리 내의 임의의 두 지점 사이의 최대 가능한 거리이다. 또한 노드 ( 이면 첫 번째 BFS가 얻고 두 번째가 a로 돌아 가기 때문에 체계가 작동하는 것이 분명합니다 )를 가정하십시오. 와 같은 노드 가 있다고 가정 합니다.ababp(a,b)d(a,b)s≠a,bs=abud(s,u)=maxxd(s,x)
Lemma 0 : 와 는 모두 리프 노드입니다.ab
증명 :가 리프 노드가 아니라면, 우리가 증가 할 수 리프 노드 끝점을 연장함으로써 모순 의 직경을 주도한다.d(a,b)d(a,b)
렘마 1 : .max[d(s,a),d(s,b)]=d(s,u)
증명 : 모순을 위해 와 둘 다 보다 엄격히 작았다고 가정하십시오 . 우리는 두 가지 경우를 봅니다.d(s,a)d(s,b)d(s,u)
사례 1 : 경로 않는다 하지 정점 포함 . 이 경우 는 직경이 될 수 없습니다. 이유를 보려면, 가 가장 작은 에서 고유 한 꼭짓점이되도록하십시오 . 그러면 , 사람 . 마찬가지로 있습니다. 이것은 가 직경 모순된다 .p(a,b)sd(a,b)tp(a,b)sd(a,u)=d(a,t)+d(t,s)+d(s,u)>d(a,b)=d(a,t)+d(t,b)d(s,u)>d(s,b)=d(s,t)+d(t,b)>d(t,b)d(b,u)>d(a,b)d(a,b)
사례 2 : 경로 정점 포함 . 이 경우에, 다시 일부 정점 때문에, 직경 수없는 되도록 두 및 는 보다 큽니다 .p(a,b)sd(a,b) ud(s,u)=maxxd(s,x)d(a,u)d(b,u)d(a,b)
Lemma 1은 우리 가 첫 번째 BFS 의 마지막으로 발견 된 정점 에서 두 번째 너비 우선 검색을 시작하는 이유를 제공합니다 . 가 에서 가능한 최대 거리를 갖는 고유 한 정점 인 경우 Lemma 1에 의해 직경과 동일한 거리를 가진 경로의 끝점 중 하나 여야 하며, 따라서 루트가 명확하게 가있는 를 가진 두 번째 BFS가 직경. 반면에 와 같은 다른 정점 하나 이상 있으면 직경이 임을 알 수 있습니다. 또는 에서 두 번째 BFS를 시작하는지 여부는 중요하지 않습니다 .uusuvd(s,v)=d(s,u)d(a,b)=2d(s,u)uv