350 likes | 756 Views
그래프 이론. 그래프이론 그래프 알고리즘 4색 문제 . 그래프 란?. Node (virtices) 점 Edges 선분 Directed graph (digraph) Weighted graph 그래프는 많은 것을 표현할수 있다. 도로망, 전산망, 분자, 인간관계, 사회조직, 데이터 구조, 생물유전자 관계, 고고학에서 유물연구 … . 그래프의 표현 . list edges and end point vertices Vertices A, B, C, g, w, e
E N D
그래프 이론 • 그래프이론 • 그래프 알고리즘 • 4색 문제
그래프 란? • Node (virtices) 점 • Edges 선분 • Directed graph (digraph) • Weighted graph • 그래프는 많은 것을 표현할수 있다. • 도로망, 전산망, 분자, 인간관계, 사회조직, 데이터 구조, 생물유전자관계, 고고학에서 유물연구….
그래프의 표현 • list edges and end point vertices • Vertices A, B, C, g, w, e • Edges Ag, Aw, Ae, Bg, Bw, Be, Cg, Cw, Ce • Multiple graph: more than one edges connect given two vertices or loops water gas electricity C A B
그래프의 종류 • Null graph: 연결안됨 • Complete graph: 두점은 반드시 한선분으로 연결됨 • Cycle graph: single cycle • Path graph: single path • Bipartite graph: vertices into two groups ; complete bipartite graph
Cube graph Petersen graph (generalized) http://mathworld.wolfram.com/GeneralizedPetersenGraph.html
trees • Cycle이 없다.
그래프이론의 주문제 • Euler path problem (Chinese postmanproblem) • Shortest path problem • Minimum spanning tree problem • Traveling salesman problem • Coloring problem (4색문제) • Flow problem • Isomorphism problems (Graph matching) Canonical Labeling, subgraph isomorphism and monomorphisms, Maximal common subgraph • Graph embedding problem (Planarity)
오일러 길문제 (Euler path problem) • 그래프가 주어졌다. 두 점사이 각 선분을 한번 지나가는 길이 있는가? Euler path problem • 각 선분을 한번 지나고 제자리로 돌아오는 길은? Euler circuit problem http://mathworld.wolfram.com/KoenigsbergBridgeProblem.html
Handshaking Lemma • Degree of a node: number of edges ending at a node (no loops) • Handshaking LemmaSum of all degree is twice the number of edges. • The sum of vertex-degrees are even. • Any graph has an even number of vertices of odd degree
오일라 문제의 일반적인답 • 그래프는 연결되어 있어야 한다. • 그래프가 odd degree의 vertex가 없으면 Euler circuit 이 있다. • 그래프가 두개의 odd degree vertex가 있으면 이를 연결하는 Euler path가 있다. • 그래프가 4개이상의 odd degree vertex를 가지면 Euler path가 존재하지 않는다.
오일라문제의 해결 • 만약 Euler circuit이 존재한다면…. • 조건을 만족하는 그래프가 있다고 하자. 이때 Euler circuit을 찾아야 한다. Induction 점 하나만 있는 그래프는 만족하는가? Cycle을 하나 찾자. Cycle은 항상 존재하는가? Cycle을 빼면 나머지 그래프는 어떤 조건을 만족하는가?
Fleury's Algorithm • Input: A connected graph G each of whose vertices has an even degree.Output: An Eulerian trail C of G.Method: Expand a trail Ci while avoiding bridges in G-Ci, until no other choice remains.
Choose and v0 in V(G) and let C0=v0. Set i:=0. • Suppose that the trail C=v0,e1,v1, . . . , ei,vi has already been choosen: • At vi choose any edge ei+1 that is not on Ci and that is not a bridge of the graph Gi=G-E(Ci) unless there is no other choice. • Define Ci+1=Ci,ei+1,vi+1. • Set i:=i+1. • If i=|E(G)|, then halt since C=Ci is the desired circuit; else go to 2. • 이 알고리즘은 P일까 NP일까? P
Eulerian Type Problems • Diagram tracing puzzles L. Poinsot 1809 n개의interconnected point n홀 가능 n짝 불가능
Mazes, Labyrinths • http://www.flint.umich.edu/Departments/ITS/crac/maze.form.html Gastron tarry 1895: 이미지나온 교차점으로 가는 길로 가능하면 돌아가지 말라.
Chinese Postman Problem • 우체부가 모든 거리의 집에 편지를 전하고 우체국으로 돌아오려한다. 최저 거리의 길을 찾아라. (1962 Meigu Guan 질문) • 도시의 눈치우기 (Zurich)
Shortest Path Problem • Weighted graph가 주어진경우 두점을 연결하고 weight의 합이 최소인 경로찾기. • http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm • Application to scheduling.
Spanning tree problem • A minimum spanning tree is a tree formed from a subset of the edges in a given undirected graph, with two properties: • It spans the graph - it includes every vertex in the graph • It is a minimum - the total weight of all the edges is as low as possible • http://en2.wikipedia.org/wiki/Minimum_spanning_tree
http://en2.wikipedia.org/wiki/Kruskal%27s_algorithm http://en.wikipedia.org/wiki/Prim's_algorithm
Traveling salesman problem A Hamilitonian cycle: a loop that visits each node once http://mathworld.wolfram.com/HamiltonianCircuit.html NP-Hard http://www.math.princeton.edu/tsp/
Algorithms for tsp • http://en.wikipedia.org/wiki/Nearest_neighbour_algorithm • http://www.pcug.org.au/~dakin/tsp.htm
Flows: minmax cut theorem • http://en.wikipedia.org/wiki/Nearest_neighbour_algorithm
Coloring problem • The assignment of labels or colors to the edges or vertices of a graph. The most common types of graph colorings are edge coloring and vertex coloring.
Chromatic number X(G): the minimum number of colors forvertex covering of G Chromatic polynomial PG(k): the number of ways to k color. Chromatic index X’(G): the minimum number of colors for edge-coloring of G
Planarity • 오른쪽: planar imbedding, 왼쪽: not planar imbedding 단 선은 굽어도 된다. http://mathworld.wolfram.com/PlanarGraph.html
오일러 공식 • G를 연결된 planar 그래프라하자. V: # nodes, E: # edges, F: # regionsV – E + F = 2 (주의: 책과 조금 F의 정의 다름) http://www.math.ohio-state.edu/~fiedorow/math655/Euler.html
증명: A: 모든 그래프는 spanning tree에 edge를 붙여서 만든다. B: edge를 하나 붙일때 마다: Tree에서는 사실이다. Edge는 1개 는다. vertex의 개수는 불변 Face의 개수는 1개는다. 따라서…..
Kuratowski’s theorem • A graph is planar if and only if it does not contain a subdivision of K5 or K3,3. • K5 는 5개의 node의 complete graph. • K3,3 는 6개의 node의 complete bipartite graph.
4-color problem • Guthrie, De Morgan 1852 • G a connected planar graph with no bridges. Faces correspond to countries a map
Every map is 4-colorable. • Equivalent form: every planar graph is 4-colorable. • Euler’s formula every map contains a digon, triangle, square, or a pentagon. • Kempe’s argument • Final solution: Appel, Haken, (Univ. Illinois) using computer and Heesch’s discharging argument http://www-gap.dcs.st-and.ac.uk/~history/HistTopics/The_four_colour_theorem.html
Isomorphism problem • When is two graph the same? • Connectivity edge connectivity: the smallest number of edges whose removal disconnects G. Vertex connectivity: the above for vertices • Various algorithms
Embedding problem (Planarity) • 그래프를 어떤 곡면 선들이 만나지 않게 그려 넣을 수 있는가? 이때의 곡면은 무엇인가?