계속지나가기
코딩스뮤
계속지나가기
전체 방문자
오늘
어제
  • 코딩스뮤:)
    • Algorithm
      • 백준 문제풀이
      • 프로그래머스 문제풀이
      • 알고리즘 이론
      • 자료구조
      • SW Expert Academy
    • 인공지능(AI)
      • LLMs
      • 자연어처리(NLP)
      • 컴퓨터비전(CV)
      • 딥러닝(DL)
      • 머신러닝(ML)
      • 인공지능기초수학
      • 선형대수학
    • 컴퓨터 세팅
    • Computer Science
      • 유닉스프로그래밍
      • 프로그래밍언어론
      • 디자인패턴
      • 클린코드
      • SW 영어
      • 리눅스
      • 논리회로
    • Server
      • Docker

블로그 메뉴

  • 홈
  • Who Am I(CV)
  • 태그

공지사항

인기 글

태그

  • 컴퓨터비전
  • 선형회귀
  • 군집화
  • SIFT
  • 머신러닝
  • 기계학습
  • 에지검출
  • 디지털이미지처리
  • 비용함수
  • f1-score
  • ML
  • 손실함수
  • NLP
  • 네트워크플로우
  • DIP
  • networkflow
  • machinelearning
  • 지도학습
  • LM
  • 파이썬 클린코드
  • DigitalImageProcessing
  • MaximumFlow
  • 언어모델
  • 비지도학습
  • 최대유량
  • ComputerVision
  • 알고리즘
  • 경사하강법
  • 결정경계
  • 패턴인식

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
계속지나가기

코딩스뮤

단절점(Articulation Point), 단절선(Articulation Bridge)
Algorithm/알고리즘 이론

단절점(Articulation Point), 단절선(Articulation Bridge)

2021. 9. 30. 23:16
반응형

 

단절점(Articulation Point)이란?

하나의 컴포넌트로 구성된 무방향 그래프에서 특정 정점을 제거했을 때 두 개 이상의 컴포넌트로 나눌 수 있는 정점을 단절점이라고 한다

 

아래의 그래프에서 하이라이트된 정점들이 A-point이다

 

단절점 구하는 방법

단절점을 구하기 위해서는 먼저 단절점의 특성에 대해 알아야 한다.

어느 한 정점이 단절점이라면, 단절점에 바로 인접해 있는 정점들의 쌍은 단절점이 없으면 우회로로 인해 연결되어 있지 않아야 한다

 

예를 들어 5번 정점이 단절점이라고 생각해보자.

5번 정점을 제거하더라도 인접노드인 4, 6을 우회로(4-8-6)로 연결되어 있으므로 5번은 단절점이 될 수 없다

이번에는 4번 정점이 단절점이라고 생각해보자

4번 정점을 제거하게 되면 (2,3) 과 (5,8)은 우회로를 이용히여 만날 수 있지만 (2,5) (2,8),(3,5),(3,8) 은 만날 수 없다

따라서 4번 정점은 단절점이 된다

 

따라서 이 특성을 이용해 아래의 그래프에서 단절점을 구해보자

무방향 그래프 G

 

  1. DFS를 이용하여 정점들의 방문 순서를 기록
  2. 특정 정점 u에서 자식 노드들이 정점 u를 거치지 않고 정점 a보다 빠른 방문번호를 가진 정점으로 갈 수 없다면 단절점이다
    • u == 5인 경우, 자식노드 6,4가 정점 5를 거치지 않고 방문번호가 더 빠른 노드4(6-8-4), 노드3(4-3)으로 갈 수 있으므로 단절점이 아님
    • u == 4인 경우, 자식노드 2,3은 정점 4를 거치지 않고 방문번호가 더 빠른 노드 1(2-1), 노드2(3-2)로 갈 수 있지만, 자식노드 5,8은 불가능하므로 단절점임

단, 한가지 예외가 있음

<루트 노드로 잡은 특정 노드의 자식 수가 2개 이상이면 무조건 단절점이다>

 

 

해당 방법으로 구하면 단 한번의 DFS로 답을 구할 수 있으므로 O(N+M)의 시간 복잡도를 가지게 된다

반응형

'Algorithm > 알고리즘 이론' 카테고리의 다른 글

이분 매칭(Bipartite Matching)  (0) 2021.11.02
최소 공통 조상(Lowest Common Ancestor)  (0) 2021.10.04
강한연결요소 : Strongly Connected Component  (0) 2021.09.05
위상 정렬 Topological Sort  (0) 2021.08.28
[Algorithm : 알고리즘] 06 Dynamic Programming: DP  (0) 2020.08.03
    'Algorithm/알고리즘 이론' 카테고리의 다른 글
    • 이분 매칭(Bipartite Matching)
    • 최소 공통 조상(Lowest Common Ancestor)
    • 강한연결요소 : Strongly Connected Component
    • 위상 정렬 Topological Sort
    계속지나가기
    계속지나가기
    NLP Engineer

    티스토리툴바