Graph coloring
- 1. Graph Coloring
• k개의 색을 사용하여 인접한 노드가
서로 색이 다르도록 칠할 수 있으면,
k-colorable하다.
• k개의 색으로 그래프를 색칠하는 문제는
NP-hard이다.
- 2. 이론
• 인접한 노드 수가 k개 미만인 노드 t를 고른다.
• 노드 t와 엣지를 지운다.
• 만약 노드 t와 t의 엣지를 지운 그래프가
k-colorable이면,
원래의 그래프도 k-colorable이다.
- 3. 방법
1. 인접한 노드 수가 k개 미만인 노드 t를 고른다.
2. 노드 t와 엣지를 지우고, 노드 t를 스택에 넣는다.
3. 빈 그래프가 될 때 까지 1~2를 반복한다.
4. 스택에 들어있는 순서대로 색이 구별되도록 칠한다.
- 13. a r2
b
c r1
d
e r2
f r3
Stack: [d,b]
스택에서 a를 꺼내고,
기존의 그래프에서 색이 겹치지
않도록
색을 칠한다.
- 14. a r2
b r4
c r1
d
e r2
f r3
Stack: [d]
스택에서 b를 꺼내고,
기존의 그래프에서 색이 겹치지
않도록
색을 칠한다.
- 15. a r2
b r4
c r1
d r4
e r2
f r3
Stack: []
스택에서 d를 꺼내고,
기존의 그래프에서 색이 겹치지
않도록
색을 칠한다.