VIEWS: 12 PAGES: 30 POSTED ON: 8/19/2012 Public Domain
University of Ottawa School of Information Technology and Engineering Genetic Algorithm for Graphs Drawing Mehrdad Nojoumian Dec. 5, 2005 COMP 5206 Professor Franz Oppacher 1 Contents Introduction: Main Idea of the Embedding Problem and It’s Goals Definitions: Pagenumber and Pagewidth Application in Different Engineering Fields: Electrical Eng., Civil Eng., Chemical Eng., Flight Eng., etc. Standard Graphs Embedding: (1) Outerplanar Graph (2) The Pinwheel Graph (3) The Sum of Triangles Graph (4) Complete Binary Tree (5) Square Grids (6) X-Tree (7) The Complete Graph K(n) Genetic Algorithms for Graph Drawimg: (1) Embedding a Graph by Genetic Algorithm Crossover, Mutation, Evaluation, Fitness Function and Practical Result (2) Drawing a Graph on a page by Genetic Algorithm Crossover, Mutation, Fitness Function and Practical Result Conclusion: References: 2 Introduction Main Idea: Embedding a graph in a book with its vertices in a line along the spine of the book and its edges on the pages in such a way that edges on the same page do not cross. Pagenumber: The number of pages that we use to draw the graph. Pagewidth: The maximum number of edges that cross any line perpendicular to the spine of the book. Order of inputs and Genetic Algorithms: If we arrange our inputs (vertices) in different ways, we can achieve different results, that is why GA has a very efficient role in this respect. Spine of the book d c d c d b c Perpendicular b Line, Width = 1 b a Perpendicular Line, Width = 2 a a 3 Page 1 Page 2 Page 1 Application in Different Engineering Fields Electrical Eng. : Designing Electrical Circuits Civil Eng. : City Architecture Chemical Eng. : To build Refinery Facilities Flight Eng. : Airlines Traffic Control Etc. Applied Goals: To minimize the use of the space To shorten the path To save resources (Money, Time, etc.) To simplify complex design (Understandable Design) To maintain security and safety (e.g. Reducing the intersection points in Airlines) And so on. 4 1- Outerplanar Graph Theorem: A graph can be embedded in a one-page book if, and only if, it is outerplanar. Definition: A graph G is outerplanar just when its vertices can be placed on a circle so that its edges become noncrossing chords of the circle. Sample of Outerplanar Graph 5 Outerplanar graph (Ctd) If we cut the circle between any two vertices and opening it out to form a line then it can be embedded in one page. Cutting An Embedding strategy: 1- Embedding the vertices of Graph in a circle by finding a hamiltonian cycle in G (even by adding some additional edges). 2- Transforming the edges of G into the chords of the circle. 2- Pinwheel Graph The depth-n pinwheel graph P(n) has 2n vertices. We must decompose the pinwheel graph into two adjacent butterflies, and continue this process: a1 b1 a1 b1 a2 b2 a2 b2 a3 b3 a3 b3 a4 b4 a4 b4 a5 b5 a5 b5 a6 b6 a6 b6 a7 b7 a7 b7 a8 b8 a8 b8 7 a1 b1 Pinwheel Graph (Ctd) a2 b2 a3 b3 a4 b4 The first two butterflies Pinwheel graph is 3-page The second two butterflies a5 b5 embeddable a6 b6 a7 b7 a8 b8 a1 b1 a8 b8 b7 a7 b2 a2 a3 b3 a6 b6 b5 a5 b4 a4 Page 1: Top of the vertices Page 2: Bottom of the vertices Page 3: Dotted lines 8 3- The Sum of Triangles Graph The depth-n sum of triangles graph T(n) has vertices: {ai, bi, ci: 1≤ i≤ n} and edges connecting each triple (ai, bi, ci) into a triangle, T(n) is 3(n)⅓-page embeddable: 3(n)⅓ = 3(3)⅓ = 3 3-page embeddable b1 a1 b2 c1 a2 a1 a2 a3 b3 b2 b1 c1 c2 c3 b3 c2 a3 c3 Order of Vertices: a1, a2, a3 - b3, b2, b1 - c1, c2, c3 Page 1: Top of the vertices, Page 2: Bottom of the vertices Page 3: Dotted lines 9 4- Complete Binary Tree 1 Complete Binary Tree needs one page to be 2 3 embedded and its pagewidth is (Log n) : Height = (Log n) 4 5 6 7 Without any arrangement: 2-page embeddable 1 2 3 4 5 6 7 Pagewidth = 2 In-Order (Left-Root-Right) 1-page embeddable 4 2 5 1 6 7 3 Pagewidth = 2 Pre-Order (Root-Left-Right) 1-page embeddable 1 2 4 5 3 6 7 Pagewidth = 3 10 5- Square Grids 16 12 1 2 3 4 15 11 14 10 5 6 7 8 9 Cutting 9 10 11 12 1 5 2 6 13 14 15 16 3 7 (n*n) square grid is planar and subhamiltonian, 8 4 hence 2-page Embeddable. By adding an edge (13-1) we can find Hamiltonian cycle. Page1 13 14 15 16 12 11 10 9 5 6 7 8 4 3 2 1 Page 2 11 6- X-Tree The depth-d X-Tree X(d) is the edge augmentation of the depth-d complete binary tree that adds edges going across each level of the tree in left-to-right order. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Proposition: The depth-d X-Tree admits a 2-page embedding, with one page of width 2d and one of width 3d. 12 1 X-Tree 13 7 (Ctd) 14 6 15 12 2 3 11 8 10 4 5 6 7 4 9 8 9 10 11 12 13 14 15 2 5 1 3 8 4 2 1 3 5 9 10 11 12 6 7 13 14 15 13 2 pages 7- The Complete Graph K(n) The K(n) is a complete graph, in which every pair of vertices is adjacent. Proposition: The complete graph is embeddable in (n/2) pages. 1 2 6 3 N=6 3 pages 1 2 3 6 5 4 5 4 14 Embedding a Graph by Genetic Algorithm Initialization: (1) Random Initialization: Create a layout randomly (2) Heuristic Method: Create a layout in which there are edges between all adjacent nodes, this one is better than the other one a1 a2 a3 a4 a5 a6 a7 a8 a1 a5 a3 a2 a8 a4 a6 a7 || E || = 7 and two different layout according to the order of vertices Crossover: (1) Cycle Crossover (2) Partially Mapped Crossover (3) Order Crossover Mutation: (1) Scramble (2) Move Block (3) Swap Block (4) Insert Evaluation: Fitness is simply a function of Pagenumber and Edge Intersections Termination: Terminate if the best fitness has not been surpassed for a set number of generation 15 Crossover Cycle Crossover (CC): Parent-1: j h d e f i g c b a Parent-2: h g e b c j i a d f Child-1: h g d e f j i c b a Child-2: j h e b c i g a d f Partially Mapped Crossover (PMC): Parent-1: j h d e f i g c b a Child-1: e h d b c j g f i a Parent-2: hg e b c j i a d f Child-2: h g b e f i c a d j Order Crossover (OC): Parent-1: j h d e f i g c b a Child-1: h d e b c j f i g a Parent-2: hg e b c j i a d f Child-2: h g b e f i c j a d 16 Mutation Scramble: Select a random block of elements and randomly reorder the elements in it: P: j h e d i f g c b a Reorder C: j h c d e f g i b a Move Block: Select a random block & move it to a random position: P: j h e d i f g c b a Position=2 C: j d i f g c h e b a Swap Block: Swap two blocks of elements: P: j h e d i f g c b a Swap C: j g c i f h e d b a Insert: Select a random element & insert it at a random position: P: j h e d i f g c b a Insert C: j h c e d i f g b a 17 Evaluation Solution space is composed from both permutation of Nodes & Edges. Generally: ||E|| > ||N|| (# of E is more than # of N) Permutation of Nodes (N): we apply genetic operators such as crossover and mutation to test different permutation for this part Permutation of Edges (E): After setting nodes we have to select edges and put them in to the layout, It is not practical to test all permutation of edges. we just try on: (1) Random edge selection (2) Order of best solution which we have found in our GA so far (3) Lexicographic order: according to the physical layout 18 Fitness Function a) || P || : We just consider the number of pages as a fitness function Problem: Two solutions with the same pagenumber are equally good while one may be closer to a solution. 4 2 5 1 6 3 7 Is better than 1 2 4 5 3 6 7 || P || = 1 || P || = 1 b) ( n * || P || ) + ( || E || in the smallest page ) n : Coefficient , || P || : number of pages , || E || : number of edges smallest page : is the page that has the lowest number of edges Smallest page has 2 edges Second page has 4 edges Largest page has 8 edges We take into account the || E || in smallest page which is a good potential for reducing the pagenumber 19 Fitness Function (Ctd) c) ( 0 * || E || in the 1st page ) + … + ( (k-1) * || E || in the Kth page ) we take into account the distribution of edges through pages but we do not have any strategy to define which one is the first page, etc d) ( 0 * || E || in the largest page )+…+( (k-1) * || E || in the smallest page) we take into account the distribution of edges and improve the previous function by ordering pages, so pages with less edges increase fitness value: ( 0 * 8 ) + ( 1 * 4 ) + ( 2 * 2 ) = 8 Smallest page has 2 edges Second page has 4 edges Largest page has 8 edges e) Number of edge crosses for a tested permutation of nodes, assuming all nodes and edges are embedded on a single page Edges are embedded on a single page and Number of edge crosses is 15 20 Practical Result Heuristic Method for initialization, in which there are edges between all adjacent nodes improved Genetic Algorithm three times as many optimal solution as the random initialization Mutation operators are not intended to find a better solution, their purpose is to ensure that breadth of search is maintained The last fitness function which is independent from pagenumber and distribution of edges through pages worked better than the other methods 21 Graph Drawing by Genetic Algorithm Encoding: 2 A genotype consist in a vector: { ( X1 , Y1 ) , ( X2 , Y2 ) , … , ( Xn, Yn ) } 4 where ( Xi , Yi ) are the coordinates of i th vertex of the graph Vertices: ( -3 , -2 ) , ( -2 , 2 ) , ( 1 , -3 ) , ( 2 , 1 ) Edges: (n1 - n2) , (n2 - n3) , (n2 - n4) , (n3 - n4) 1 3 Initialization: Initial vertex position for each individual is randomly generated Crossover: Uniform Crossover - Convex Hall Crossover - Single Point Crossover Mutation: Random Mutation Evaluation: The number of edge crossing The length of each edge The angles between edges incident into the same vertex 22 Crossover Uniform Crossover: Vertex positions have the same probability of being inherited from either parent: 2 2 2 4 4 4 1 1 3 1 3 3 Convex Hall Crossover: Parent-1: … ( Xi , Yi ) … … Child: ( Xi + Mi / 2 , Yi + Ni / 2 ) … Parent-2: … ( Mi , Ni ) … Single Point Crossover: Parent-1: (X1,Y1) , (X2,Y2) , (X3,Y3) , (X4,Y4) , (X5,Y5) , (X6,Y6) Parent-2: (M1,N1) , (M2,N2) , (M3,N3) , (M4,N4) , (M5,N5) , (M6,N6) Child-1: (X1,Y1) , (X2,Y2) , (X3,Y3) , (M4,N4) , (M5,N5) , (M6,N6) Child-2: (M1,N1) , (M2,N2) , (M3,N3) , (X4,Y4) , (X5,Y5) , (X6,Y6) 23 Mutation Random Mutation: ( X , Y ) Mutate ( M , N ) Where M & N are two independent distributed random variables with the mutation variance ^2, which is a constant parameter of the Genetic Algorithm ^2 = [ ( X1^2 + X2^2 + … + Xn^2) / n ] – [ (X1 + X2 + … + Xn ) / n ]^2 For example: We want to mutate point 3 : ( 2 , -2 ) Assume that our two random variables are as follow : ( -1 , 1 ) 2 2 4 Mutation 4 3 1 1 3 24 Fitness Function 1/(+1) + 1/(+1) + 1/(+1) The number of edge crossing There should be as few edge crossing as possible, # of edge crossing : The length of each edge The length of each edge should be as close as possible to a parameter “ L “ which is a constant parameter of the Genetic Algorithm = 1 / ||E|| [ ( ||e|| - L) / L ] ^ 2 || E || : Number of Edges || e || : Length of edges eЄE L : Constant The angles between edges incident into the same vertex The angles between edges incident into the same vertex should be as uniform as possible NV Nv : # of edges incident = [ ( ) – (2 / N ) ] ^ 2 v Є V K=1 k v v into vertex “v” k(v) : angles between adjacent vertices 25 Fitness Function (Ctd) 1/(+1) + 1/(+1) + 1/(+1) Assume L = 4.2 = 1 / ||E|| [ ( ||e|| - L) / L ] ^ 2 || E || : Number of Edges || e || : Length of edges eЄE L : Constant ||e|| = 4 cm & ||E|| = 4 ||e|| = 5 cm & ||E|| = 4 = ¼{ [(4 - 4.2)/4.2]^2 + [(4 - 4.2)/4.2]^2 + [(4 - 4.2)/4.2]^2 + [(4 - 4.2)/4.2]^2 = 0.0023 this one increases the fitness value = ¼{ [(5 - 4.2)/4.2]^2 + [(5 - 4.2)/4.2]^2 + [(5- 4.2)/4.2]^2 + [(5 - 4.2)/4.2]^2 = 0.0361 this one decreases the fitness value The graph in the left side has a better fitness value since L = 4.2 and the length of its edges is 4 while the length of edges in the other one is 5, if we change L into the , for example, 4.8 then the other graph will have a better fitness value 26 Fitness Function (Ctd) 1/(+1) + 1/(+1) + 1/(+1) Assume we have 5 vertices in the following two pictures NV [ ( ) – (2 / N ) ] ^ 2 Nv : # of edges incident = k v v into vertex “v” k(v) : angles between v Є V K=1 adjacent vertices a b a b 90 c c 90 90 d 90 e e d = (5/6-2/1)^2 + (/6-2/1)^2 + (11/6-2/1)^2 + (10/6-2/1)^2 + [(5/6-2/4)^2 + (/6-2/4)^2 + (11/6-2/4)^2 + (10/6-2/4)^2 ] = 8.2 ^2 = (3/4-2/1)^2 + (/4-2/1)^2 + (7/4-2/1)^2 + (5/4-2/1)^2 + [(3/4-2/4)^2 + (/4-2/4)^2 + (7/4-2/4)^2 + (5/4-2/4)^2 ] = 7.5 ^2 The graph in the right side has a better fitness value since angles between adjacent vertices are equal 27 Practical Result G represents the road plan of a neighbourhood of Milan and contains ||V|| = 39 vertices and ||E|| = 58 edges An example of random layout for A layout of Graph G, found by the Graph G, having fitness 0.006193 algorithm with uniform crossover after 10,000 generations, having fitness 0.221208 28 Conclusion Embedding graphs in books is a kind of Optimization Problem which has a lot of useful applications Genetic Algorithms have very good practical results for graphs drawing since the landscape is large We can minimize our parameters based on various structural properties of the graph Embedding a graph in a book is a NP-complete problem since it depends on permutation of Nodes and Edges 29 References 1. N. Kapoor and et al, “A Genetic Algorithm for Finding the Pagenumber of Interconnection Networks”, Journal of Parallel and Distributed Computing 62, 2002. 2. A. Tettamanzi, “Drawing Graphs With Evolutionary Algorithms”, Genetica - Advanced Software Architectures, Italy, 1998. 3. Timo Eloranta and Erkki Makinen, “TimGA - A Genetic Algorithm for Drawing Undirected Graphs”, University of Tampere,1996. 4. J. Branke, F. Bucher, H. Schmeck, “Using Genetic Algorithm for Drawing Undirected Graphs”, University of Karlsruhe, 1996. 5. F. Chung and et al, “Embedding Graphs in Books: a layout problem with applications to VSLI design”, SIAM Journal on Algebraic & Discrete Methods 8, 1987. 6. Joseph L. Ganley and Lenwood S. Heath, “The Pagenumber of Trees”, Virginia University, 2000. 7. Janos Pach and Rephael Wenger, “Embedding Planar Graphs at Fixed Vertex Locations”, Ohio State University, 1999. 8. M. Alzohairi, “The Pagenumber of Ordered Sets”, PhD Thesis, University of Ottawa, Sep. 1996. 30