'Computer Science/Data Structures & Algorithms' 카테고리의 글 목록 (4 Page) — Archive

Computer Science/Data Structures & Algorithms

Computer Science/Data Structures & Algorithms

[Algorithms] Johnson's Algorithm | 존슨 알고리즘

Johnson's Algorithm 존슨 알고리즘 - Bellman-Ford Algorithm (URL)과 Dijkstra's Algorithm (URL)을 Subroutine으로 사용하여 Weighted Graph에서 존재할 수 있는 모든 (출발 정점, 도착 정점) Pairs에 대한 최단 경로를 계산해내는 알고리즘이다. - Sparse Graph에 대해서는 Floyd-Warshall Algorithm (URL) 보다 우수한 성능을 보여준다. - Time Complexity of Floyd-Warshall Algorithm : \(\Theta(|V|^3)\) - Time Complexity of Johnson's Algorithm : \(O(|V|^2\log |V| + |V|*|E|)\) * Graph ..

Computer Science/Data Structures & Algorithms

[Algorithms] Floyd-Warshall Algorithm | 플로이드-워샬 알고리즘

Floyd-Warshall Algorithm 플로이드-워샬 알고리즘 - 그래프 상에서, 존재할 수 있는 모든 (출발 정점, 도착 정점) Pairs에 대한 최단 경로를 Dynamic Programming 기법을 적용하여 계산해내는 알고리즘이다. - Warshall이 Directed Graph에서 정점들 간의 상호 연결 경로의 존재 여부를 밝히는 알고리즘을 제안하고, Floyd가 이를 변형하여 최단 경로를 찾아내는 알고리즘으로 만들었다. (즉, Warshall의 기여가 더 크다.) * Graph (그래프) (URL) [Data Structures] Graph | 그래프 Graph 그래프 - 현상이나 사물을 Vertex(정점)와 이들을 잇는 Edge(간선)로 구성하는 방법으로, Vertex로 대상이나 개체를 ..

Computer Science/Data Structures & Algorithms

[Algorithms] Bellman-Ford Algorithm | 벨만-포드 알고리즘

Bellman-Ford Algorithm 벨만-포드 알고리즘 - Negative Weight를 허용하는 Weighted Graph상에서 Shortest Path를 찾아내는 알고리즘이다. - 음의 가중치는 허용하되, 가중치의 합이 음수인 Cycle은 허용되지 않는다. (가중치의 합이 음수인 Cycle을 몇 번이고 돌아서, 가중치의 합을 무한정 낮출 수 있기 때문이다.) - 간선을 최대 1개 사용하는 최단 경로, 간선을 최대 2개 사용하는 최단 경로, \(\cdots\), 이런식으로 간선을 최대 \(n-1\)개 사용하는 최단 경로까지 계산해나간다. * Graph (그래프) (URL) [Data Structures] Graph | 그래프 Graph 그래프 - 현상이나 사물을 Vertex(정점)와 이들을 잇는 ..

Computer Science/Data Structures & Algorithms

[Algorithms] Dijkstra's Algorithm | 다익스트라 알고리즘

Dijkstra's Algorithm 다익스트라 알고리즘 - 0 이상의 Weight만을 허용하는 Weighted Graph상에서 Shortest Path를 찾아내는 알고리즘이다. (가중치가 음수인 경우는 Bellman-Ford Algorithm (URL)으로 해결할 수 있다.) - 다익스트라 알고리즘은 시작 정점에서 다른 모든 정점까지의 간선들을 Greedy선택하며 계산해나간다. - Prim's Algorithm (URL)과 유사한 알고리즘 구조를 갖고 있다. * Graph (그래프) (URL) [Data Structures] Graph | 그래프 Graph 그래프 - 현상이나 사물을 Vertex(정점)와 이들을 잇는 Edge(간선)로 구성하는 방법으로, Vertex로 대상이나 개체를 표현하고, Edge..

Computer Science/Data Structures & Algorithms

[Algorithms] Topological Sorting | 위상 정렬

Topological Sorting 위상 정렬 - DAG(Directed Acyclic Graph; 유향 비순환 그래프) \(G = (V, E)\)에서 \(V\)의 모든 정점을 정렬하되, 간선 \((i, j)\)가 존재하면 정렬 결과에서 정점 \(i\)는 반드시 정점 \(j\)보다 앞에 위치하게 정렬하는 방법을 의미한다. - Cycle이 있는 그래프에서는 위상 정렬을 수행할 수 없다. * Graph (그래프) (URL) [Data Structures] Graph | 그래프 Graph 그래프 - 현상이나 사물을 Vertex(정점)와 이들을 잇는 Edge(간선)로 구성하는 방법으로, Vertex로 대상이나 개체를 표현하고, Edge로는 이들 간의 관계를 표현한다. Examples of Algorithm us..

Computer Science/Data Structures & Algorithms

[Algorithms] Kruskal's Algorithm | 크루스칼 알고리즘

Kruskal's Algorithm 크루스칼 알고리즘 - Graph상에서 Minimum Spanning Tree(최소 신장 트리)를 구성하는 방법 중 하나이다. - Weight값이 가장 작은 간선(=Light Edge; 경량 간선)들을 집합에 포함시켜 가면서 신장 트리를 구성한다. - 이 때, 선택한 간선으로 인해 Cycle이 생긴다면, 해당 간선은 집합에 포함시키지 않는다. - \(n\)개의 정점으로 최소 신장 트리를 구성한다면, Kruskal's 알고리즘에서는 \(n-1\)개의 간선을 선택할 때 까지 연산을 진행해야 한다. - \(n\)개의 정점들을 모두 노드가 하나인 개별적인 트리로 본다면, Kruskal's 알고리즘에서는 \(n\)개의 트리로 구성된 Forest에서 두 트리를 하나로 합쳐가며 하나..

Computer Science/Data Structures & Algorithms

[Algorithms] Prim's Algorithm | 프림 알고리즘

Prim's Algorithm 프림 알고리즘 - Graph상에서 Minimum Spanning Tree(최소 신장 트리)를 구성하는 방법 중 하나이다. - 시작 정점으로부터 Weight값이 가장 작은 간선과 연결된 정점을 선택해가며 신장 트리를 구성한다. - 이 때, 선택한 정점으로 인해 Cycle이 생긴다면, 해당 정점은 집합에 포함시키지 않는다. * Prim's 알고리즘은 하나의 집합에 정점을 더해가며 하나의 신장트리를 만드는 방식이고, Kruskal's 알고리즘은 여러 집합을 합쳐가며 하나의 신장트리를 만드는 방식이다. * Graph (그래프) (URL) [Data Structures] Graph | 그래프 Graph 그래프 - 현상이나 사물을 Vertex(정점)와 이들을 잇는 Edge(간선)로 구..

Computer Science/Data Structures & Algorithms

[Algorithms] Depth-First Search (DFS) | 깊이 우선 탐색

Depth-First Search (DFS) 깊이 우선 탐색 - 그래프 상의 모든 Vertex를 탐색하는 알고리즘 중 하나이다. - 시작 Vertex에 인접한 한 Vertex를 방문하고, 그 Vertex에 인접한 Vertex를 방문해나가는 것을 반복한다. - Tree에서 DFS를 수행하면, Root부터 종단의 Leaf까지 Traversal하게 된다. * Graph (그래프) (URL) [Data Structures] Graph | 그래프 Graph 그래프 - 현상이나 사물을 Vertex(정점)와 이들을 잇는 Edge(간선)로 구성하는 방법으로, Vertex로 대상이나 개체를 표현하고, Edge로는 이들 간의 관계를 표현한다. Examples of Algorithm using Graph Str.. dad-..

lww7438
'Computer Science/Data Structures & Algorithms' 카테고리의 글 목록 (4 Page)