컴퓨터알고리즘#16

LeeMir, 19 May 2021

방향 그래프


방향 그래프
  • 모든 간선이 방향 간선인 그래프
  • 간선 (a, b)는 a에서 b로 가지만, b에서 a로 가지는 않음
  • 진입 간선들과 진출 간선들을 각각 별도의 인접 리스트로 보관한다면, 진입 간선들의 집합과 진출 간선들의 집합을 각각 크기에 비례한 시간에 조사 가능
  • 방향 DFS
    • 간선들을 주어진 방향만을 따라 순회하도록 하면, DFS 및 BFS 순회 알고리즘들을 방향 그래프에 특화 가능
    • 방향 DFS / BFS 알고리즘에서, 네 종류의 간선이 발생
      • 트리간선 / 후향간선 / 전향간선 / 교차간선
  • 도달 가능성
    • 그래프 G에 u에서 v로의 방향 경로가 존재한다면, u는 v에 도달한다라고 표현
  • 강연결성
    • 그래프 G의 어느 두 정점 u와 v에 대해서나 u는 v에 도달하며 v는 u에 도달하면 G를 강연결이라고 말함
    • 강연결 검사
      • G에서 DFS 수행, G를 역행한 G’에서 DFS 수행해서 모든 정점을 다 방문하는 지 검사
    • 강연결 요소
      • 방향 그래프에서 각 정점으로부터 다른 모든 정점으로 도달할 수 있는 최대의 부그래프
  • 이행적폐쇄
    • A에서 B로 갈 수 있고, B에서 C로 갈 수 있다면 A에서 C로 가는 경로를 추가
      • Floyd-Warshall 알고리즘
동적프로그래밍
  • 알고리즘 설계의 일반적 기법 가운데 하나
  • 언뜻 보기에 많은 시간이 소요될 것 같은 문제에 주로 적용
  • 적용 조건
    • 부문제 단순성
      • 부문제들이 몇 개의 기본 변수로 정의될 수 있음
    • 부문제 최적성
      • 전체 최적치가 최적의 부문제들에 의해 정의될 수 있음
    • 부문제 중복성
      • 부문제들이 독립적이 아니라 상호 겹쳐짐