2014-06-11 2 views
0

그래프 이론을 사용하여 추상 알고리즘을 작성하려고합니다.두 개의 꼭지점 사이의 무향 그래프에서 특정 모서리 찾기

무향 그래프와 비가 중 그래프 G = (V, E)가 주어지면, 두 개의 꼭짓점 : m, n∈V와 특정 에지 e∈E. 가장자리 e가 m과 n 사이의 모든 최단 경로의 일부인지 확인하고 싶습니다.

내 알고리즘 : N에 도달 할 때까지

  1. 이 BFS을 할 수는 m에서 스캔. \\ O (V + E)
  2. INT 온도 < - D [n]은 \\ O (1)
  3. 부울 RET의 \\의 O (1)
  4. G. \\ O로부터 에지 E 꺼내 사실
  5. 경우 D [N - N 개의 \\에 O (V + E)

    • 경우 D [N] = ∞, RET <에 도달 할 때까지 (1)
    • BFS는 m에서 스캔 할 ] == 임시 직원, < - 거짓

    • i O : G. \\ O (1)

    • 복귀 RET에

시간 복잡도 분석 진정한

  • 반환 에지 전자 - FD [N]는> 온도는 <를 마지막 ret (V + E)

    메모리 분석 : 임시 및 ret에 대한 O (2) 추가.

    뭐라고 말합니까? 맞습니까, 아니면 시간 복잡성이 적은 더 좋은 아이디어입니까?

  • 답변

    0

    귀하의 알고리즘은 정확 해 보이며, e이 모든 비 가중 최단 경로에 참여하고 있는지 실제로 확인할 수 있습니다.

    증명 : e 모든 최단 경로에있는 경우

    • 은 ->e을 제거하는 것은이 모든 경로를 부정한다 -> 새로운 최단 경로가 이전보다 더 길어질 수 있습니다 -> 알고리즘을 맺는 정답. 경로 p 남아 e을 제거> 따라서 n-m 최단 거리는 동일하게 유지 - - e 경우
    • 어떤 최단 경로에 참여하지 않음 (이 p를하자)> 알고리즘이 정확한 답을 산출한다.

    , 메모리 분석이 잘못되었습니다.

    BFS는 방문 세트 O(V) 여분의 공간을 필요로 - 그래서 여분의 공간 그것은 O (V + E)되지 않을 것 O(V)

    +0

    피드백과 수정을위한 tnx입니다. – chuck183

    1

    입니다. 너비가 큰 첫 번째 검색에서 최악의 경우는 모든 엣지가 검색되었는데 노드가 발견되지 않으면 검색이 실패합니다. 이것은이 부분에 O (| E |)의 복잡성을 부여합니다. 이것이 지배적 인 계산이고, 다른 모든 O (1), 복잡성은 O (| E |)이기 때문입니다.

    관련 문제