관리 메뉴

Storage Gonie

챕터6-1. 그래프 | 개념 및 용어 본문

알고리즘/알고리즘 기초(코드플러스)

챕터6-1. 그래프 | 개념 및 용어

Storage Gonie 2019. 5. 21. 12:43
반응형

그래프의 개념

# 그래프(Graph)

- 자료구조의 일종

- 그래프는 정점집합과 간선집합으로 만들어진다. G = (V, E)

- 정점(Node, Vertex)은 말그대로 점을 의미하고, 간선(Edge)은 정점간의 관계를 나타낸다.

- 예시1) 지하철노선이나 도로를 그래프로 나타낼 수 있음.
- 예시2) 페이스북같은 경우는 사람이 정점이고 두 사람이 친구사이면 둘을 간선으로 연결해줄 수 있음

그래프에서 사용되는 용어

# 경로(Path)

- 출발지와 도착지가 있고 그 사이를 연결하는 정점과 간선이 있으면 이것을 경로라고 한다.
- 예시)
   A->C->D->E->B
   A->B
   A->C->B

# 사이클(Cycle)

- 경로 중에서 시작점과 도착점이 같은 경우를 사이클이라고 한다.

- 예시)
   'A'->C->B->'A'

   'A'->C->E->B->'A'

   'A'->C->D->E->B->'A'

 

# 단순 경로와 단순 사이클(Simple Path and Simple Cycle)
- 같은 정점을 두 번 이상 방문하지 않는 경로 / 사이클
- 일반적으로 특별한 말이 없으면, 사용하는 경로와 사이클은 단순 경로 /사이클을 의미한다.

ex) "같은 정점을 두 번이상 방문해도 된다." 혹은 "같은 간선을 여러번 사용해도 된다." 일땐 단순 경로와 사이클이 아님.

# 방향이 있는 그래프(Directed Graph)

- A->C와 같이 간선에 방향이 있다.
- A->C는 있지만 C->A는 없다. 

 

# 방향이 없는 그래프(Undirected Graph)     -> 양방향 그래프(Bidirection Graph)
- A-C는 A->C와 C->A를 나타낸다.
- 실제 구현에서는 두 방향에 대한 간선을 모두 저장하여 양방향 그래프로 저장하여 문제를 풀게 된다.

 

# 간선 여러개(Multiple Edge)
- 두 정점 사이에 간선이 여러 개일 수도 있다.
- 주로 풀게될 문제는 간선마다 가중치를 가지고 있는 그래프에서 최단거리를 구하는 문제인데
   이땐 A->B로 가는 여러 간선 중에서 가장 작은 가중치를 가지는 간선 하나만 택하게 된다.

 

# 루프(Loop)

- 간선의 양 끝 점이 같은 경우 루프라고 한다. 자기자신에서 출발해서 자기 자신으로 돌아오는 동글뱅이 간선
- A->A

 

# 가중치(Weight)

- 간선에 가중치가 있는경우 A에서 B로 이동하는 거리, 이동하는데 필요한 시간, 이동하는데 필요한 비용 등을 의미한다.
- 가중치가 없는 경우 모든 간선의 가중치가 1이라고 생각하고 문제를 풀면된다.

 

# 차수(Degree)

- 정점과 연결되어 있는 간선의 개수
- 방향이 있는 그래프라면 in-degree(정점으로 들어오는 간선), out-degree(정점에서 나가는 간선)를 따로 세어주어야 한다.

반응형
Comments