[알고리즘] Week 7: Planar Graphs와 Planar Separator Theorem
Day 1: 평면 그래프 (Planar Graphs)강의 내용:평면 그래프의 개념평면 그래프란 무엇인가?평면 그래프의 특성 및 응용 사례평면 그래프의 기본 원리Euler's Formula (오일러의 정리)그래프의 평면성 판정시간 복잡도 분석평면 그래프 알고리즘의 복잡도 및 효율성실습:파이썬을 사용한 평면 그래프 생성 및 시각화 예제import networkx as nximport matplotlib.pyplot as plt# 평면 그래프 생성G = nx.Graph()G.add_edges_from([(0, 1), (1, 2), (2, 3), (3, 0), (0, 2)])# 평면성 판정is_planar, embedding = nx.check_planarity(G)print("그래프는 평면 그래프인가?", i..
2024. 6. 2.
[알고리즘] Week 10: 고급 그래프 이론 - 트리 분해, 트리 DP, 라벨링 기법
Day 1: 트리 분해 (Tree Decomposition)강의 내용:트리 분해의 개념트리 분해란 무엇인가?트리 분해의 목적 및 응용 사례트리 분해의 기본 용어트리 너비 (Treewidth)트리 분해의 정의트리 분해 알고리즘나이스 트리 분해 (Nice Tree Decomposition)시간 복잡도 분석트리 분해의 복잡도 및 효율성실습:간단한 예제 그래프에서 트리 분해 수행# 트리 분해 예제import networkx as nxdef tree_decomposition_example(): G = nx.Graph() G.add_edges_from([(1, 2), (1, 3), (2, 3), (2, 4), (3, 5), (4, 5)]) T = nx.Graph() T.add_edges_fro..
2024. 6. 2.