반응형

Event Queue 2

[ 알고리즘 ] Topological Sort

1. Topological Sort 번역하자면 위상정렬이다. *DAG: Directed Acyclic Graph (방향성이 있고 사이클이 없는 그래프) 위상 정렬은 DAG의 노드들을 왼쪽에서 오른쪽 방향(엣지 방향이 모두 오른쪽) 으로 정렬하는 것을 의미한다. DAG에 사이클이 존재하지 않으면 알고리즘은 항상 성공한다. 사이클이 없기 위해서는 indegree=0 인 노드가 최소 하나 이상 있어야한다. 이를 귀류법으로 증명해보겠다. indgree=0인 노드가 없다고 가정해보자. indgree=0인 노드를 안만들기 위해서는 계속 들어가는 노드를 만들어야하는데, 이 과정이 무한하게 흘러간다. 무한하지 않으려면 다른노드와 연결해야하는데 이렇게 되면 사이클이 생긴다. 1.1 algorithm DAG G에서 ind..

[ 알고리즘 ] Graph Traversal : Any-Order Traversal

1. Traversal Traversal : 그래프의 노드를 방문하는 방법 어디서 시작하는지 정하지 않는다. 어디에서 시작하느냐에 따라서 다른 알고리즘이 된다. 같은 노드를 여러번 지나갈 수 있다. 어떤 문제를 푸느냐에 따라서 계산할 것들이 달라진다. Traversal을 통해 그래프 안에 뭔가 구조가 만들어질 것이다. => 보통 Tree가 만들어 진다. 2. Any-Order Traversal 어떤 노드 s에서 시작하고 s를 BOX에 넣는다. BOX가 비어있지 않으면 아래의 과정을 반복한다. 하나의 노드를 꺼내고 방문하지 않은 노드라면 방문한 뒤 어떤 계산을 수행한다. 그리고 노드와 인접한 모든 엣지들을 BOX에 넣는다. 이후 이 과정을 계속 반복한다. 박스에 여러개 들어있다면 어느 것을 꺼내겠는가? 어..

반응형