GRAPH THEORETICAL ALGORITHMS FOR CONTROL FLOW GRAPH COMPARISON

Size: px
Start display at page:

Download "GRAPH THEORETICAL ALGORITHMS FOR CONTROL FLOW GRAPH COMPARISON"

Transcription

1 Proceedings of the IASTED International Conference Software Engineering (SE 21) February 17-19, 21 Innsbruck, Austria GRAPH THEORETICAL ALGORITHMS FOR CONTROL FLOW GRAPH COMPARISON Sergej Alekseev Fachhochschule Frankfurt am Main University of Applied Sciences Nibelungenplatz Frankfurt am Main, Germany alekseev@fb2.fh-frankfurt.de Adam Kajrys Fachhochschule Frankfurt am Main University of Applied Sciences Nibelungenplatz Frankfurt am Main, Germany kajrys@stud.fh-frankfurt.de Andreas Karoly Fachhochschule Frankfurt am Main University of Applied Sciences Nibelungenplatz Frankfurt am Main, Germany karoly@stud.fh-frankfurt.de ABSTRACT This paper presents graph theoretical algorithms to compare control flow graphs of program code based on graph transformation and decomposition into connected components. The essential idea is to transform graphs into reduced graphs and to calculate an isomorphic correspondence. We also show some experimental results to illustrate the effectiveness of our algorithms in terms of detected structural differences in graphs that are compared. The presented algorithms in this paper have been implemented in the Dr. Garbage tool suite and are available for download under the Apache Open Source license. KEY WORDS Control flow graph comparison, graph isomorphism. 1 Introduction The Control Flow Graph Comparison is important in several fields of application such as efficient testing of programs, merging between two versions of software, testing compiler optimization and code instrumentation tools. To compare the structure of two control flow graphs it is essential to know if one graph contains the structure of the second graph. A computational task in which two graphs G 1 and G 2 are given as input, and one must determine whether G 1 contains a subgraph that has the same structure as the graph G 2, is called the subgraph isomorphism problem. The subgraph isomorphism problem is a fundamental problem in graph theory and it is known to be NP-complete [1]. Fortunately polynomial-time algorithms for the subgraph isomorphism problem are known for trees [2], two-connected outerplanar graphs [], and two-connected series-parallel graphs []. In this paper we present graph theoretical algorithms to compare control flow graphs of program code and some extensions based on graph transformation and decomposition. The essential idea is to transform graphs into trees and to calculate an isomorphic correspondence. To consider the whole graph structure, the graph is decomposed into connected components and transformed to a reduced tree. We didn t solve the graph isomorphism problem, but all algorithms presented in this paper have linear time complexity and show very good results in terms of detected structural differences in graphs that are compared. All algorithms presented in this paper have been implemented in the context of the Dr. Garbage tool suite [] and we present some experimental results and statistics of our implementation in section. 2 Related Works The problem of comparing two graphs is known for a long time and it is one of the fundamental problems of graph theory. A. V. Aho, J. E. Hopcroft, and J. D. Ullman present in their book The Design and Analysis of Computer Algorithms [6] algorithms for solving general problems of subtree isomorphism, largest common subtree and smallest common supertree. S. M. Selkow defined the Top-Down subtree isomorphism [7]. A definition of the Bottom-Up subtree isomorphism was introduced by G. Valiente in [8], [9]. A systematic review of efficient subtree isomorphism algorithms can be found in his book Algorithms on Trees and Graphs [1]. The Top-Down and Bottom-Up subtree isomorphism algorithms are used in our proposal to compare the reduced graphs as trees. After the trees have been compared, the differences are represented in the graphs from which the trees have been derived. There are a number of publications that deal with the comparison of program code. W. Yang presents an approach to compare the structure of two programs by using the subtree isomorphism [11]. T. Sager introduced an approach and a tool that measures similarity between Java classes [12]. The tool calculates similarity by using different subtree isomorphism algorithms on syntax tree representations of source code. Compared to our proposal, in both approaches syntax trees derived from the source code are used instead of control flow graphs. The problem is reduced to subtree isomorphism which can be solved in linear time. Unfortunately, this approach can not be applied directly for the comparison of two control flow graphs. J. Laski and W. Szermer present an algorithm that finds differences of two programs by comparing control flow graphs [1]. In their paper they address the problem of the revalidation of a modified code in software mainte- DOI: 1.216/P

2 nance. The modifications are localized by using the control flow graphs of the original and modified programs. Both flow graphs are transformed into reduced flow graphs, between which an isomorphic correspondence is calculated. A similar work and a further improvement of the algorithm can be found in [1]. The authors introduced a hammock matching algorithm based on Laski and Szermer s algorithm. This algorithm uses hammocks and reduced hammock graphs. Hammocks are subgraphs [1] which provide a way to impose a hierarchical structure on the control flow graph for matching. This approach is very close to our proposal. In our approach a different type of control flow graph reduction is performed and the comparison is based on subtree isomorphism. Furthermore the problem of comparing the structure of two graphs can be turned into determining the similarity of two graphs, which is generally referred to as graph matching problem. There are a number of publications of graph matching algorithms. The graph matching has been applied to semantic networks [16], recognition of graphical symbols [17], three-dimensional object recognition [18], and others. However the applications and algorithms have a very low relevance to our approach because the graphs have always specific properties according to the field of application. Subtree Isomorphism Algorithms Since our approach is based on the subtree isomorphism, the most commonly used algorithms are explained here briefly. There are three basic types of subtree isomorphism: largest common [6], top-down [7] and bottom-up [8], [9] subtree isomorphism. The largest common subtree of two given trees T 1 and T 2 (figure 1 ) is the largest subtree of T 1 that is structurally identical to a subtree in T 2. T 1 : 7 7 v 7 v v 6 T 2 : Figure 1. Largest common subtree. The top-down subtree of two given trees (figure 2) is the largest common subtree under the prerequisite that the root of the common subtree is identical with the root nodes of the compared trees T 1 and T 2 a. The bottom-up subtree is the largest isomorphic subtree of two given trees if the bottom-up subtree of T 1 rooted at node is isomorphic to the bottom-up subtree of T 2 b rooted at node v2. There are many publications about the subtree isomorphism and corresponding algorithms. A very good T 1 : v T 2 a : 7 7 v v v 6 T 2 b : 7 7 v Figure 2. Top-down, bottom-up subtree isomophism. overview of subtree isomorphism algorithms is the book by G. Valiente [1]. In his book Valiente presents a number of subtree isomorphism algorithms and provides efficient code implementation examples. We implemented a prototype based on the top-down maximum common subtree isomorphism algorithm by G. Valiente. Our approach can be easily adapted to the bottom-up maximum common subtree isomorphism or tree edit distance algorithms [1] and differs only in the last step by the use of another subtree similarity algorithm. Graph Comparison Algorithms The input for the comparison algorithms are control flow graphs (CF G) of a method. The CF G is defined as a tuple G = (V, A), where V is a nonempty set of vertices representing instructions of a method, A is a (possibly empty) set of arcs (or edges) representing transitions between the instructions. Formally, A is the finite set of ordered pairs of vertices (a, b), where a, b V. The algorithm COMPARE SPANNING TREES (section.1) computes spanning trees of the CFGs to be compared and calculates the subtree isomorphism. The differences detected in these trees are transferred into the original graphs. The algorithm COMPARE BB GRAPHS (section.) extends the algorithm COMPARE SPANNING TREES by the graph transformation to basic block graphs. The subtree isomorphism procedure is applied to a substantial graph structure. The last algorithm COM- PARE BIBLOCK GRAPHS (section.) transforms the basic block graph in a so called biblock (biconnected blocks) graph. The biblock graph is a tree constructed by graph decomposition into connected components [19], [2]. The subtree isomorphism procedure is applied to the biblock tree and for all isomorphic biblocks the algorithm COMPARE BB GRAPHS is executed..1 Spanning Tree Comparison Algorithm As a CF G may contain loops, the CF G has to be transformed into a directed acyclic graph (DAG) by removing loop backedges as identified by a depth-first search of the CF G (figure : line 1). For the given CF Gs the algorithm computes their respective ordered spanning trees. Each node in a program CF G has usually a unique instruc- v v 6 78

3 COMPARE SPANNING TREES(G 1, G 2 ) 1 remove Backedges from G 1 and G 2 ; 2 T 1 = createorderedt ree(g 1 ); T 2 = createorderedt ree(g 2 ); subtreet opdownisomorphism(t 1, T 2 ); /* equal vertices are green and not equal red */ for ( all missing edges e G 1 G 2 ) { 6 if ( source and target of e G 1 e G 2 ) { 7 mark e red; 8 } Figure. Spanning-Tree Comparison Algorithm tion code address. The procedure createorderedt ree (figure : lines 2-) is a modified breadth-first search (BF S). It uses instruction code addresses to define the traversing order of outgoing edges and assigns a logical address to each node in the tree corresponding to the steps of the BF S algorithm. This ensures that a deterministically ordered spanning tree for the given CF G is generated. The comparison of the generated trees is achieved by the subtree isomorphism algorithm (figure : line ). We implemented the top-down subtree isomorphism algorithm from G. Valiente [1]. After executing the subtreet opdownisomorphism procedure the isomorphic vertices are marked green and non isomorphic vertices red. Finally the edges missing in the spanning tree and previously removed back edges are compared and marked red, if the source s or target s logical addresses of the edge e T 1 is not equal to the addresses of the corresponding edge e T 2. The figure illustrates an ordered spanning tree after the execution of the procedure createorderedt ree. The v v v bytecode bytecode logical address operation adresses... 1 if_icmpge; return; Figure. Ordered spaning tree. resulting spanning tree misses the edge v, according to the ascending traversing order on bytecode addresses of the nodes and. The logical addresses are assigned to each node. The algorithm COMPARE SPANNING TREES is very simple, but has a big disadvantage. If the difference in the top-down approach is detected right at the beginning, the remaining tree structure is not further compared by the algorithm..2 Basic Block Graph Comparison Algorithm 79 To work around the limitation of the algorithm COM- PARE SPANNING TREES, the compared CF Gs are reduced to basic block graphs. A basic block graph is a control flow graph with basic blocks as vertices. A basic block (BB) is a maximal sequence of one or more consecutive instructions (previously seperate vertices) with a single entry instruction, a single exit instruction, and no internal branches. The algorithm COMPARE BB GRAPHS (figure ) transforms the graphs G 1 and G 2 to BB-graphs B 1 and COMPARE BB GRAPHS(G 1, G 2 ) 1 B 1 = transformt obasicblock(g 1 ); 2 B 2 = transformt obasicblock(g 2 ); COMP ARE SP ANNING T REES(B 1, B 2 ); for (each isomorphic basicblocks b B 1, b B 2 ){ comparebasicblocks(b, b ) 6 } Figure. Basicblock Graph comparison algorithm B 2 (line 1-2). The COMPARE SPANNING TREES algorithm is applied to the generated BB-graphs. Figure : line generates spanning trees and calculates the subtree isomorphism. For isomorphic BBs detected by the algorithm the content is compared. In our prototype we compare the length of the instruction sequence in basic blocks. If the lengths are different the excessive vertices (instructions) are marked red. The algorithm is able to detect if any instruction sequence have been inserted or deleted in the code and the comparison does not terminate after detecting the first difference. Figure 6 illustrates this step. The insertion or deletion of a sequence of vertices within the basic blocks can be easily detected. The algorithm COMPARE BB GRAPHS is sufficient for use cases which define the sequential modification of code. For example if an instrumentation tool inserts instructions for monitoring, it would be sufficient to check if the original and instrumented basic block graphs are isomorphic. The comparison will terminate as soon as complex structural differences are detected. Further reduction of graphs is necessary to avoid this problem.

4 G 1 and G 2 : v v v v 2 v 2 v b 1 b 2 B 1 and B 2 : b b v v Figure 6. Basic Block graph comparsion b 1 v 7 b 2 2 b v 7 2 b v 7 algorithm is applied to biblock trees (line ) and for each detected isomorphic vertex the COMPARE BB GRAPHS algorithm is applied (lines: 6-8). Graphs are usually decomposed into connected components, where a connected component is a maximal biconnected subgraph or a subgraph generated from a bridge or an isolated vertex. G. Stiege introduced in [19] a similar graph decomposition called biblock decomposition, which is better suited for graph algorithmic problems. The decomposition uses undirected paths. The graph is decomposed into maximal 2-edge-connected subgraphs (subcomponents) and trees, which are connected with the subcomponents. The subcomponents are subdivided into maximal 2-vertex-connected subgraphs, the biblocks. A graph produced by the reduction of the biblocks into single nodes, is called a biblock-tree. An efficient algorithm to find the biblock structure can be found in [2]. G 1 : bb2 1 2 bb G 2 : bb 1 v v bb Graph Comparison Algorithm by Decomposition The idea to decompose graphs for comparison is not new. Valiente and Martinez for example present in [21] an algorithm for pattern-matching on arbitrary graphs that is based on decomposing graphs into connected components. For every connected component, the algorithm performs a combinatorial search. Our algorithm in figure 7 transforms a control flow graph to basic block graphs (lines: 1-2) and creates so called biblock trees (lines: -). The subtree isomorphism COMPARE BIBLOCK TREES(G 1, G 2 ) 1 B 1 = transformt obasicblock(g 1 ); 2 B 2 = transformt obasicblock(g 2 ); T 1 = createbiblockt ree(b 1 ); Biblock-Tree T 1 of G 1 : T 2 = createbiblockt ree(b 2 ); calculatesubtreeisomorphism(t 1, T 2 ); 6 for (each isomorphic vertices v T 1 and v T 2 ){ 7 COMP ARE BB GRAP HS(v, v ); 8 } Figure 7. Biblock Tree comparison algorithm Figure 8. Graph G 1 and G 2 and their biblocks. Figure 8 shows control flow graph G 1 and the modified graph G 2. The vertex G 1 has been replaced by the branch instruction block {,,, } G 2. The instruction block {v, v 6, v 7, v 8 } G 1 has been replaced by the single instruction v G 2. The algorithm COMPARE SPANNING TREES stops the comparison process after processing the first vertices, because the children of the first vertex in the generated spanning trees have different numbers of outgoing edges. It marks vertices,, v G 1 and vertices,, G 2 as isomorphic. The COMPARE BIBLOCK GRAPHS algorithm 8 transforms the graphs G 1 and G 2 to biblock-trees and compares their structure. The biblock-trees of the graph G 1 and G 2 are shown in figure 9. The biblock-trees are isomor- bb 2,,, v bb v, v 6, v 7, v 8 Biblock-Tree T 2 of G 2 : bb 1, v, v, v bb 2,,, v v Figure 9. Biblock-trees of graphs G 1 and G 2 from figure 8. phic and the COMPARE BIBLOCK GRAPHS algorithm compares T 1 bb 1 T 2, bb 2 T 1 bb 2 T 2 and bb T 1 v T 2. After processing all vertices in G 1 and G 2 the vertices,,, v G 1 and,,, v G 2 are marked green, because the content of the biblock bb 2 G 1 and the content of the biblock bb 2 G 2 are identical. The vertices,, G 2 are marked red, because these vertices are

5 G 1 : 2 v G 2 : v v 7 2 Figure 1. Biblock comparison result. missing in G 1. The vertices v 6, v 7, v 8 G 1 are marked red, because these vertices are missing in G 2. Experimental Evaluations To evaluate our algorithms, we selected control flow graphs of program code, that contain if, switch, loop and return instructions. The program methods that have been used for the generation of graphs are listed in table 1. The method M I IF S(c) L R BB BiB m m1a 2 11 m1b m () m2a () m2b 2 2 1() m (8) ma (8) mb (8) Table 1. M: name of the method, I: Number of instructions, IF: Number of if-branches, S (c): Number of switches and their cases, L: number of loops, R: Number of returns BB: Number of Basic Blocks, BiB: Number of BiBlocks m<x>a is produced from the method m<x> by inserting a single instruction. The method m<x>b represents the modification of the method m<x> by inserting a block of instructions. Table 2 illustrates the comparison results of two graphs M 1 and M 2. An acronym represents the used algorithm: TD - COMPARE SPANNING TREES, BBTD - COMPARE BB GRAPHS and BiBTD - COM- PARE BIBLOCK GRAPHS. Figure 11 represents the results from the column G+R1% of the table 2. The vertical axis is the ratio of all marked vertices (green and red) in the column M2 to all vertices of the methods listed in the column M1. The Light bar represents the result of the algorithm COM- PARE SPANNING TREES, the light-dark bar represents the results of the algorithm COMPARE BB GRAPHS and M1 M2 A G G% R 1/2 G+R1% m1 m1a TD % -/- 68.8% BBTD 2 1.% /1 1.% BiBTD 2 1.% /1 1.% m1 m1b TD % -/- 96.9% BBTD 27 8.% 1/1 87.% BiBTD % 1/6 1.% m2 m2a TD % -/- 6.2% BBTD 19 1.% /1 1.% BiBTD 19 1.% /1 1.% m2 m2b TD 9.% -/-.% BBTD 18 9.% / 9.% BiBTD 18 9.% 2/7 1.% m ma TD 12 1.% -/- 1.% BBTD % /2 1.% BiBTD % /2 1.% m mb TD 6 6.7% -/- 6.7% BBTD 1 1.% 2/ 17.8% BiBTD % /6 1.% Table 2. M1, M2: names of the methods to be compared, A: Used algorithm, G: Number of green-marked vertices in M1, G%: Ratio of green-marked vertices to all vertices in M1, R 1/2: Number of red-marked nodes in M1/M2, G+R1%: Ratio of all marked vertices (green + red) to all vertices in M1 the dark bar represents the results of the algorithm COM- PARE BIBLOCK GRAPHS m1a m1b m2a m2b ma mb TD BBTD BiBTD Figure 11. Comparison of algorithms The test case m1-m1b is particularly interesting because the result of algorithm BBTD is worse than the result of algorithm TD. This result is caused by the insertion of a block of instructions in the middle of the program code. The labels of the subsequent nodes in the control flow graph can not be assigned in the same order as in the original graph. So the isomorphism of the compared graphs cannot be uniquely determined. This effect is abrogated by using further graph decomposition into biblocks. In a more extensive example m-mb the algorithm BiBTD returns by 81

6 far the best result. The most important conclusion is that the algorithm BiBTD always produces the same or better result than the algorithms TD and BBTD. 6 Conclusion In this paper we presented algorithms for comparing two control flow graphs which are based on graph transformation into a tree and reduction by decomposition into connected components. Experimental results show that the proposed algorithms can be successfully applied for comparing the code differences. The structural reduction of the control flow graphs makes it possible to capture the overall structure of a program code. On the other hand the results also show the limitations of the proposed algorithms. Although the decomposition does not provide a worse outcome, it helps only in certain cases to improve the comparison result. In future work we will investigate additional heuristics to improve the matching results by the combination of graph theoretical and code specific approaches. We will also continue to improve our tools and collect more meaningful examples and statics. Acknowledgement The authors would like to thank the Dr. Garbage Project Community for supporting the implementation of the proposed algorithms and tools. References [1] J. R. Ullmann, An algorithm for subgraph isomorphism, Journal of the ACM, 2(1), 1976, 1-2. [2] D. W. Matula. An algorithm for subtree identification, SIAM Review, 1, 1968, [] A. Lingas, Subgraph isomorphism for biconnected outerplanar graphs in cubic time, Theoretical Computer Science, 1989, 6:29-2. [] A. Lingas and M. M. Sysło, A polynomial-time algorithm for subgraph isomorphism of two-connected series-parallel graphs, In Proc. 1th Int. Colloq. Automata, Languages and Programming, LNCS 17, Springer-Verlag, 1988, 9-9. [] S. Alekseev, V. Dhanraj, S. Reschke, and P. Palaga, Tools for Control Flow Analysis of Java Code, Proceedings of the 16th IASTED International Conference on Software Engineering and Applications, 212. [6] A. V. Aho, J. E. Hopcroft, and J. D. Ullman, The Design and Analysis of Computer Algorithms, (Addison- Wesley, 197). [7] S. M. Selkow, The tree-to-tree editing problem, Information Processing Letters, 6(6), 1977, [8] G. Valiente, Simple and efficient subtree isomorphism, Technical Report LSI--72-R, Technical University of Catalonia, Department of Software, 2. [9] G. Valiente, Simple and efficient tree comparison, Technical Report LSI-1-1-R, Technical University of Catalonia, Department of Software, 21. [1] G. Valiente, Algorithms on Trees and Graphs, (Berlin: Springer-Verlag, 22). [11] W. Yang, Identifying syntactic differences between two programs, Software - Practice and Experience, 21(7), 1991, [12] T. Sager, Coogle A Code Google Eclipse Plug-in for Detecting Similar Java Classes, Department of Informatics, University of Zurich, 26. [1] J. Laski, W. Szermer, Identification of Program Modifications and its Applications to Software Maintenance, IEEE Conference on Software Maintenance, 1992, pages , Nov. [1] T. Apiwattanapong, A. Orso, M. J. Harrold, A Differencing Algorithm for Object-Oriented Programs, IEEE International Conf. on Automated Software Engineering, 2, pages 2-1. [1] J. Ferrante, K. J. Ottenstein, and J. D. Warren, The program dependence graph and its use in optimization, ACM Transactions on Programming Languages and Systems, July 1987, 9():19-9. [16] H. Ehrig, Introduction to graph grammars with applications to semantic networks, Computers and Mathematics with Applications, 1992, Vol. 2, pp [17] X. Jiang, A. Münger and H. Bunke, Synthesis of representative graphical symbols by generalized median graph computation, Proc. of rd IAPR Workshop on Graphics Recognition, Jaipur, [18] E. K. Wong, Model matching in robot vision by subgraph isomorphism, Journal Pattern Recognition, 1992, Vol. 2, pp [19] G. Stiege, An Algorithm for Finding the Connectivity Structure of Undirected Graphs, Technical Report Institut für Betriebssysteme und Rechnerverbund, May [2] G. Stiege, Graphen und Graphalgorithmen, (Shaker; Auflage: 1, 26). [21] G. Valiente, C. Martinez, An algorithm for graph pattern-matching, In Proc. th South American Workshop on String Processing, 1997, volume 8 of Int. Informatics Series. 82

A Simplified Correctness Proof for a Well-Known Algorithm Computing Strongly Connected Components

A Simplified Correctness Proof for a Well-Known Algorithm Computing Strongly Connected Components A Simplified Correctness Proof for a Well-Known Algorithm Computing Strongly Connected Components Ingo Wegener FB Informatik, LS2, Univ. Dortmund, 44221 Dortmund, Germany wegener@ls2.cs.uni-dortmund.de

More information

Embedded Subgraph Isomorphism and Related Problems

Embedded Subgraph Isomorphism and Related Problems Embedded Subgraph Isomorphism and Related Problems Graph isomorphism, subgraph isomorphism, and maximum common subgraph can be solved in polynomial time when constrained by geometrical information, in

More information

Graph Matching: Fast Candidate Elimination Using Machine Learning Techniques

Graph Matching: Fast Candidate Elimination Using Machine Learning Techniques Graph Matching: Fast Candidate Elimination Using Machine Learning Techniques M. Lazarescu 1,2, H. Bunke 1, and S. Venkatesh 2 1 Computer Science Department, University of Bern, Switzerland 2 School of

More information

Pattern Recognition Using Graph Theory

Pattern Recognition Using Graph Theory ISSN: 2278 0211 (Online) Pattern Recognition Using Graph Theory Aditya Doshi Department of Computer Science and Engineering, Vellore Institute of Technology, Vellore, India Manmohan Jangid Department of

More information

Signatures of Combinatorial Maps

Signatures of Combinatorial Maps Signatures of Combinatorial Maps No Author Given No Institute Given Abstract. In this paper, we address the problem of computing a canonical representation of an n-dimensional combinatorial map. For that,

More information

An Improved Algorithm for Matching Large Graphs

An Improved Algorithm for Matching Large Graphs An Improved Algorithm for Matching Large Graphs L. P. Cordella, P. Foggia, C. Sansone, M. Vento Dipartimento di Informatica e Sistemistica Università degli Studi di Napoli Federico II Via Claudio, 2 8025

More information

Graph Theory. Probabilistic Graphical Models. L. Enrique Sucar, INAOE. Definitions. Types of Graphs. Trajectories and Circuits.

Graph Theory. Probabilistic Graphical Models. L. Enrique Sucar, INAOE. Definitions. Types of Graphs. Trajectories and Circuits. Theory Probabilistic ical Models L. Enrique Sucar, INAOE and (INAOE) 1 / 32 Outline and 1 2 3 4 5 6 7 8 and 9 (INAOE) 2 / 32 A graph provides a compact way to represent binary relations between a set of

More information

On Algebraic Expressions of Generalized Fibonacci Graphs

On Algebraic Expressions of Generalized Fibonacci Graphs On Algebraic Expressions of Generalized Fibonacci Graphs MARK KORENBLIT and VADIM E LEVIT Department of Computer Science Holon Academic Institute of Technology 5 Golomb Str, PO Box 305, Holon 580 ISRAEL

More information

Chapter 9 Graph Algorithms

Chapter 9 Graph Algorithms Chapter 9 Graph Algorithms 2 Introduction graph theory useful in practice represent many real-life problems can be if not careful with data structures 3 Definitions an undirected graph G = (V, E) is a

More information

Performance of general graph isomorphism algorithms Sara Voss Coe College, Cedar Rapids, IA

Performance of general graph isomorphism algorithms Sara Voss Coe College, Cedar Rapids, IA Performance of general graph isomorphism algorithms Sara Voss Coe College, Cedar Rapids, IA I. Problem and Motivation Graphs are commonly used to provide structural and/or relational descriptions. A node

More information

Applied Mathematics Letters. Graph triangulations and the compatibility of unrooted phylogenetic trees

Applied Mathematics Letters. Graph triangulations and the compatibility of unrooted phylogenetic trees Applied Mathematics Letters 24 (2011) 719 723 Contents lists available at ScienceDirect Applied Mathematics Letters journal homepage: www.elsevier.com/locate/aml Graph triangulations and the compatibility

More information

Trees. 3. (Minimally Connected) G is connected and deleting any of its edges gives rise to a disconnected graph.

Trees. 3. (Minimally Connected) G is connected and deleting any of its edges gives rise to a disconnected graph. Trees 1 Introduction Trees are very special kind of (undirected) graphs. Formally speaking, a tree is a connected graph that is acyclic. 1 This definition has some drawbacks: given a graph it is not trivial

More information

Chapter 9 Graph Algorithms

Chapter 9 Graph Algorithms Introduction graph theory useful in practice represent many real-life problems can be if not careful with data structures Chapter 9 Graph s 2 Definitions Definitions an undirected graph is a finite set

More information

A Fast Algorithm for Optimal Alignment between Similar Ordered Trees

A Fast Algorithm for Optimal Alignment between Similar Ordered Trees Fundamenta Informaticae 56 (2003) 105 120 105 IOS Press A Fast Algorithm for Optimal Alignment between Similar Ordered Trees Jesper Jansson Department of Computer Science Lund University, Box 118 SE-221

More information

A Performance Analysis on Maximal Common Subgraph Algorithms

A Performance Analysis on Maximal Common Subgraph Algorithms A Performance Analysis on Maximal Common Subgraph Algorithms Ruud Welling University of Twente P.O. Box 217, 7500AE Enschede The Netherlands r.h.a.welling@student.utwente.nl ABSTRACT Graphs can be used

More information

Layer-Based Scheduling Algorithms for Multiprocessor-Tasks with Precedence Constraints

Layer-Based Scheduling Algorithms for Multiprocessor-Tasks with Precedence Constraints Layer-Based Scheduling Algorithms for Multiprocessor-Tasks with Precedence Constraints Jörg Dümmler, Raphael Kunis, and Gudula Rünger Chemnitz University of Technology, Department of Computer Science,

More information

Graph Crossing Number and Isomorphism SPUR Final Paper, Summer 2012

Graph Crossing Number and Isomorphism SPUR Final Paper, Summer 2012 Graph Crossing Number and Isomorphism SPUR Final Paper, Summer 2012 Mark Velednitsky Mentor Adam Bouland Problem suggested by Adam Bouland, Jacob Fox MIT Abstract The polynomial-time tractability of graph

More information

Complexity Results on Graphs with Few Cliques

Complexity Results on Graphs with Few Cliques Discrete Mathematics and Theoretical Computer Science DMTCS vol. 9, 2007, 127 136 Complexity Results on Graphs with Few Cliques Bill Rosgen 1 and Lorna Stewart 2 1 Institute for Quantum Computing and School

More information

Hierarchical Program Representation for Program Element Matching

Hierarchical Program Representation for Program Element Matching Hierarchical Program Representation for Program Element Matching Fernando Berzal, Juan-Carlos Cubero, and Aída Jiménez Dept. Computer Science and Artificial Intelligence, ETSIIT - University of Granada,

More information

Algorithmic Aspects of Communication Networks

Algorithmic Aspects of Communication Networks Algorithmic Aspects of Communication Networks Chapter 5 Network Resilience Algorithmic Aspects of ComNets (WS 16/17): 05 Network Resilience 1 Introduction and Motivation Network resilience denotes the

More information

Chapter 9 Graph Algorithms

Chapter 9 Graph Algorithms Chapter 9 Graph Algorithms 2 Introduction graph theory useful in practice represent many real-life problems can be slow if not careful with data structures 3 Definitions an undirected graph G = (V, E)

More information

11/22/2016. Chapter 9 Graph Algorithms. Introduction. Definitions. Definitions. Definitions. Definitions

11/22/2016. Chapter 9 Graph Algorithms. Introduction. Definitions. Definitions. Definitions. Definitions Introduction Chapter 9 Graph Algorithms graph theory useful in practice represent many real-life problems can be slow if not careful with data structures 2 Definitions an undirected graph G = (V, E) is

More information

MAT 7003 : Mathematical Foundations. (for Software Engineering) J Paul Gibson, A207.

MAT 7003 : Mathematical Foundations. (for Software Engineering) J Paul Gibson, A207. MAT 7003 : Mathematical Foundations (for Software Engineering) J Paul Gibson, A207 paul.gibson@it-sudparis.eu http://www-public.it-sudparis.eu/~gibson/teaching/mat7003/ Graphs and Trees http://www-public.it-sudparis.eu/~gibson/teaching/mat7003/l2-graphsandtrees.pdf

More information

A Performance Comparison of Five Algorithms for Graph Isomorphism

A Performance Comparison of Five Algorithms for Graph Isomorphism A Performance Comparison of Five Algorithms for Graph Isomorphism P. Foggia, C.Sansone, M. Vento Dipartimento di Informatica e Sistemistica Via Claudio, 21 - I 80125 - Napoli, Italy {foggiapa, carlosan,

More information

Introduction to Combinatorial Algorithms

Introduction to Combinatorial Algorithms Fall 2009 Intro Introduction to the course What are : Combinatorial Structures? Combinatorial Algorithms? Combinatorial Problems? Combinatorial Structures Combinatorial Structures Combinatorial structures

More information

A Relational View of Subgraph Isomorphism

A Relational View of Subgraph Isomorphism A Relational View of Subgraph Isomorphism J. Cortadella and G. Valiente Department of Software, Technical University of Catalonia, Barcelona, Spain Abstract. This paper presents a novel approach to the

More information

Optimal tree for Genetic Algorithms in the Traveling Salesman Problem (TSP).

Optimal tree for Genetic Algorithms in the Traveling Salesman Problem (TSP). Optimal tree for Genetic Algorithms in the Traveling Salesman Problem (TSP). Liew Sing liews_ryan@yahoo.com.sg April 1, 2012 Abstract In this paper, the author proposes optimal tree as a gauge for the

More information

Lecture 2 - Graph Theory Fundamentals - Reachability and Exploration 1

Lecture 2 - Graph Theory Fundamentals - Reachability and Exploration 1 CME 305: Discrete Mathematics and Algorithms Instructor: Professor Aaron Sidford (sidford@stanford.edu) January 11, 2018 Lecture 2 - Graph Theory Fundamentals - Reachability and Exploration 1 In this lecture

More information

A note on the subgraphs of the (2 )-grid

A note on the subgraphs of the (2 )-grid A note on the subgraphs of the (2 )-grid Josep Díaz a,2,1 a Departament de Llenguatges i Sistemes Informàtics, Universitat Politècnica de Catalunya Campus Nord, Edifici Ω, c/ Jordi Girona Salgado 1-3,

More information

Model Checking I Binary Decision Diagrams

Model Checking I Binary Decision Diagrams /42 Model Checking I Binary Decision Diagrams Edmund M. Clarke, Jr. School of Computer Science Carnegie Mellon University Pittsburgh, PA 523 2/42 Binary Decision Diagrams Ordered binary decision diagrams

More information

Introduction to Optimization

Introduction to Optimization Introduction to Optimization Greedy Algorithms October 28, 2016 École Centrale Paris, Châtenay-Malabry, France Dimo Brockhoff Inria Saclay Ile-de-France 2 Course Overview Date Fri, 7.10.2016 Fri, 28.10.2016

More information

Learning Characteristic Structured Patterns in Rooted Planar Maps

Learning Characteristic Structured Patterns in Rooted Planar Maps Learning Characteristic Structured Patterns in Rooted Planar Maps Satoshi Kawamoto Yusuke Suzuki Takayoshi Shoudai Abstract Exting the concept of ordered graphs, we propose a new data structure to express

More information

A NEW ALGORITHM FOR INDUCED SUBGRAPH ISOMORPHISM

A NEW ALGORITHM FOR INDUCED SUBGRAPH ISOMORPHISM U.P.B. Sci. Bull., Series A, Vol. 78, Iss. 1, 2016 ISSN 1223-7027 A NEW ALGORITHM FOR INDUCED SUBGRAPH ISOMORPHISM Nadia M. G. AL-SAIDI 1, Nuha A. RAJAB 2, and Hayder N. ABDUL- RAHMAN 3 Many algorithms

More information

Computing optimal total vertex covers for trees

Computing optimal total vertex covers for trees Computing optimal total vertex covers for trees Pak Ching Li Department of Computer Science University of Manitoba Winnipeg, Manitoba Canada R3T 2N2 Abstract. Let G = (V, E) be a simple, undirected, connected

More information

Topological Invariance under Line Graph Transformations

Topological Invariance under Line Graph Transformations Symmetry 2012, 4, 329-335; doi:103390/sym4020329 Article OPEN ACCESS symmetry ISSN 2073-8994 wwwmdpicom/journal/symmetry Topological Invariance under Line Graph Transformations Allen D Parks Electromagnetic

More information

Studying Graph Connectivity

Studying Graph Connectivity Studying Graph Connectivity Freeman Yufei Huang July 1, 2002 Submitted for CISC-871 Instructor: Dr. Robin Dawes Studying Graph Connectivity Freeman Yufei Huang Submitted July 1, 2002 for CISC-871 In some

More information

On the logspace shortest path problem

On the logspace shortest path problem Electronic Colloquium on Computational Complexity, Report No. 3 (2016) On the logspace shortest path problem Boris Brimkov and Illya V. Hicks Computational & Applied Mathematics, Rice University, Houston,

More information

Discrete Mathematics

Discrete Mathematics Discrete Mathematics 310 (2010) 2769 2775 Contents lists available at ScienceDirect Discrete Mathematics journal homepage: www.elsevier.com/locate/disc Optimal acyclic edge colouring of grid like graphs

More information

Alignment of Trees and Directed Acyclic Graphs

Alignment of Trees and Directed Acyclic Graphs Alignment of Trees and Directed Acyclic Graphs Gabriel Valiente Algorithms, Bioinformatics, Complexity and Formal Methods Research Group Technical University of Catalonia Computational Biology and Bioinformatics

More information

A Performance Comparison of Five Algorithms for Graph Isomorphism

A Performance Comparison of Five Algorithms for Graph Isomorphism A Performance Comparison of Five Algorithms for Graph Isomorphism P. Foggia, C.Sansone, M. Vento Dipartimento di Informatica e Sistemistica Via Claudio, 21 - I 80125 - Napoli, Italy {foggiapa, carlosan,

More information

The 3-Steiner Root Problem

The 3-Steiner Root Problem The 3-Steiner Root Problem Maw-Shang Chang 1 and Ming-Tat Ko 2 1 Department of Computer Science and Information Engineering National Chung Cheng University, Chiayi 621, Taiwan, R.O.C. mschang@cs.ccu.edu.tw

More information

Ensemble Combination for Solving the Parameter Selection Problem in Image Segmentation

Ensemble Combination for Solving the Parameter Selection Problem in Image Segmentation Ensemble Combination for Solving the Parameter Selection Problem in Image Segmentation Pakaket Wattuya and Xiaoyi Jiang Department of Mathematics and Computer Science University of Münster, Germany {wattuya,xjiang}@math.uni-muenster.de

More information

A GENETIC ALGORITHM APPROACH TO OPTIMAL TOPOLOGICAL DESIGN OF ALL TERMINAL NETWORKS

A GENETIC ALGORITHM APPROACH TO OPTIMAL TOPOLOGICAL DESIGN OF ALL TERMINAL NETWORKS A GENETIC ALGORITHM APPROACH TO OPTIMAL TOPOLOGICAL DESIGN OF ALL TERMINAL NETWORKS BERNA DENGIZ AND FULYA ALTIPARMAK Department of Industrial Engineering Gazi University, Ankara, TURKEY 06570 ALICE E.

More information

A Modelling and Analysis Environment for LARES

A Modelling and Analysis Environment for LARES A Modelling and Analysis Environment for LARES Alexander Gouberman, Martin Riedl, Johann Schuster, and Markus Siegle Institut für Technische Informatik, Universität der Bundeswehr München, {firstname.lastname@unibw.de

More information

Foundations of Discrete Mathematics

Foundations of Discrete Mathematics Foundations of Discrete Mathematics Chapter 12 By Dr. Dalia M. Gil, Ph.D. Trees Tree are useful in computer science, where they are employed in a wide range of algorithms. They are used to construct efficient

More information

Chapter 2 Graphs. 2.1 Definition of Graphs

Chapter 2 Graphs. 2.1 Definition of Graphs Chapter 2 Graphs Abstract Graphs are discrete structures that consist of vertices and edges connecting some of these vertices. Graphs have many applications in Mathematics, Computer Science, Engineering,

More information

Finding Maximal Sets of Laminar 3-Separators in Planar Graphs in Linear Time

Finding Maximal Sets of Laminar 3-Separators in Planar Graphs in Linear Time Finding Maximal Sets of Laminar 3-Separators in Planar Graphs in Linear Time David Eppstein University of California, Irvine Bruce Reed McGill University 30th ACM-SIAM Symp. on Discrete Algorithms (SODA

More information

ADAPTIVE SORTING WITH AVL TREES

ADAPTIVE SORTING WITH AVL TREES ADAPTIVE SORTING WITH AVL TREES Amr Elmasry Computer Science Department Alexandria University Alexandria, Egypt elmasry@alexeng.edu.eg Abstract A new adaptive sorting algorithm is introduced. The new implementation

More information

Graph Grammars. Marc Provost McGill University February 18, 2004

Graph Grammars. Marc Provost McGill University February 18, 2004 Graph Grammars Marc Provost McGill University marc.provost@mail.mcgill.ca February 18, 2004 Abstract This presentation introduces graph transformations. Typeset by FoilTEX Structure of the talk Graph Theory

More information

Lesson 22: Basic Graph Concepts

Lesson 22: Basic Graph Concepts Lesson 22: asic Graph oncepts msc 175 iscrete Mathematics 1. Introduction graph is a mathematical object that is used to model different relations between objects and processes: Linked list Flowchart of

More information

Reachability in K 3,3 -free and K 5 -free Graphs is in Unambiguous Logspace

Reachability in K 3,3 -free and K 5 -free Graphs is in Unambiguous Logspace CHICAGO JOURNAL OF THEORETICAL COMPUTER SCIENCE 2014, Article 2, pages 1 29 http://cjtcs.cs.uchicago.edu/ Reachability in K 3,3 -free and K 5 -free Graphs is in Unambiguous Logspace Thomas Thierauf Fabian

More information

Some Applications of Graph Bandwidth to Constraint Satisfaction Problems

Some Applications of Graph Bandwidth to Constraint Satisfaction Problems Some Applications of Graph Bandwidth to Constraint Satisfaction Problems Ramin Zabih Computer Science Department Stanford University Stanford, California 94305 Abstract Bandwidth is a fundamental concept

More information

Nondeterministic Query Algorithms

Nondeterministic Query Algorithms Journal of Universal Computer Science, vol. 17, no. 6 (2011), 859-873 submitted: 30/7/10, accepted: 17/2/11, appeared: 28/3/11 J.UCS Nondeterministic Query Algorithms Alina Vasilieva (Faculty of Computing,

More information

Structural and Syntactic Pattern Recognition

Structural and Syntactic Pattern Recognition Structural and Syntactic Pattern Recognition Selim Aksoy Department of Computer Engineering Bilkent University saksoy@cs.bilkent.edu.tr CS 551, Fall 2017 CS 551, Fall 2017 c 2017, Selim Aksoy (Bilkent

More information

Dynamic Graph Algorithms

Dynamic Graph Algorithms Dynamic Graph Algorithms Giuseppe F. Italiano University of Rome Tor Vergata giuseppe.italiano@uniroma2.it http://www.disp.uniroma2.it/users/italiano Outline Dynamic Graph Problems Quick Intro Lecture

More information

STAFF: State Transition Applied Fast Flash Translation Layer

STAFF: State Transition Applied Fast Flash Translation Layer STAFF: State Transition Applied Fast Flash Translation Layer Tae-Sun Chung, Stein Park, Myung-Jin Jung, and Bumsoo Kim Software Center, Samsung Electronics, Co., Ltd., Seoul 135-893, KOREA {ts.chung,steinpark,m.jung,bumsoo}@samsung.com

More information

Compiler Construction

Compiler Construction Compiler Construction Lecture 1: Introduction Thomas Noll Lehrstuhl für Informatik 2 (Software Modeling and Verification) noll@cs.rwth-aachen.de http://moves.rwth-aachen.de/teaching/ss-14/cc14/ Summer

More information

1 Introduction and Results

1 Introduction and Results On the Structure of Graphs with Large Minimum Bisection Cristina G. Fernandes 1,, Tina Janne Schmidt,, and Anusch Taraz, 1 Instituto de Matemática e Estatística, Universidade de São Paulo, Brazil, cris@ime.usp.br

More information

FAdo: Interactive Tools for Learning Formal Computational Models

FAdo: Interactive Tools for Learning Formal Computational Models FAdo: Interactive Tools for Learning Formal Computational Models Rogério Reis Nelma Moreira DCC-FC& LIACC, Universidade do Porto R. do Campo Alegre 823, 4150 Porto, Portugal {rvr,nam}@ncc.up.pt Abstract

More information

Online Graph Exploration

Online Graph Exploration Distributed Computing Online Graph Exploration Semester thesis Simon Hungerbühler simonhu@ethz.ch Distributed Computing Group Computer Engineering and Networks Laboratory ETH Zürich Supervisors: Sebastian

More information

Polynomial-time Algorithm for Determining the Graph Isomorphism

Polynomial-time Algorithm for Determining the Graph Isomorphism American Journal of Information Science and Computer Engineering Vol. 3, No. 6, 2017, pp. 71-76 http://www.aiscience.org/journal/ajisce ISSN: 2381-7488 (Print); ISSN: 2381-7496 (Online) Polynomial-time

More information

Storage capacity of labeled graphs

Storage capacity of labeled graphs Dana Angluin 1 James Aspnes 1 Rida A. Bazzi 2 Jiang Chen 3 David Eisenstat 4 Goran Konjevod 2 1 Department of Computer Science, Yale University 2 Department of Computer Science and Engineering, Arizona

More information

Complementary Graph Coloring

Complementary Graph Coloring International Journal of Computer (IJC) ISSN 2307-4523 (Print & Online) Global Society of Scientific Research and Researchers http://ijcjournal.org/ Complementary Graph Coloring Mohamed Al-Ibrahim a*,

More information

A generalization of Mader s theorem

A generalization of Mader s theorem A generalization of Mader s theorem Ajit A. Diwan Department of Computer Science and Engineering Indian Institute of Technology, Bombay Mumbai, 4000076, India. email: aad@cse.iitb.ac.in 18 June 2007 Abstract

More information

5th World Congress for Software Quality Shanghai, China November 2011

5th World Congress for Software Quality Shanghai, China November 2011 Yoshihiro Kita University of Miyazaki Miyazaki, Japan kita@earth.cs.miyazaki-u.ac.jp Proposal of Execution Paths Indication Method for Integration Testing by Using an Automatic Visualization Tool Avis

More information

Online algorithms for clustering problems

Online algorithms for clustering problems University of Szeged Department of Computer Algorithms and Artificial Intelligence Online algorithms for clustering problems Summary of the Ph.D. thesis by Gabriella Divéki Supervisor Dr. Csanád Imreh

More information

Review of Regression Test Case Selection Techniques

Review of Regression Test Case Selection Techniques Review of Regression Test Case Selection Manisha Rani CSE Department, DeenBandhuChhotu Ram University of Science and Technology, Murthal, Haryana, India Ajmer Singh CSE Department, DeenBandhuChhotu Ram

More information

Scalability via Parallelization of OWL Reasoning

Scalability via Parallelization of OWL Reasoning Scalability via Parallelization of OWL Reasoning Thorsten Liebig, Andreas Steigmiller, and Olaf Noppens Institute for Artificial Intelligence, Ulm University 89069 Ulm, Germany firstname.lastname@uni-ulm.de

More information

CMPSCI 250: Introduction to Computation. Lecture #22: Graphs, Paths, and Trees David Mix Barrington 12 March 2014

CMPSCI 250: Introduction to Computation. Lecture #22: Graphs, Paths, and Trees David Mix Barrington 12 March 2014 CMPSCI 250: Introduction to Computation Lecture #22: Graphs, Paths, and Trees David Mix Barrington 12 March 2014 Graphs, Paths, and Trees Graph Definitions Paths and the Path Predicate Cycles, Directed

More information

arxiv: v2 [cs.ds] 25 Jan 2017

arxiv: v2 [cs.ds] 25 Jan 2017 d-hop Dominating Set for Directed Graph with in-degree Bounded by One arxiv:1404.6890v2 [cs.ds] 25 Jan 2017 Joydeep Banerjee, Arun Das, and Arunabha Sen School of Computing, Informatics and Decision System

More information

Image segmentation via graph cuts with connectivity priors

Image segmentation via graph cuts with connectivity priors Image segmentation via graph cuts with connectivity priors Celline Butuem Soares Rochester Institute of Technology cxb6747@rit.edu ABSTRACT Graph cuts can be applied to many different ends and one possible

More information

A NEW ALGORITHM FOR RECOGNITION OF A SPHEROID

A NEW ALGORITHM FOR RECOGNITION OF A SPHEROID A NEW ALGORITHM FOR RECOGNITION OF A SPHEROID A Kazmierczak Northwest Arkansas Community College, One College Drive, Bentonville, AR 72712, akazmierczak@nwacc.edu Abstract A sphere mesh, hereafter called

More information

The Disjoint Paths Problem on Chordal Graphs

The Disjoint Paths Problem on Chordal Graphs The Disjoint Paths Problem on Chordal Graphs Frank Kammer and Torsten Tholey Institut für Informatik, Universität Augsburg, D-86135 Augsburg, Germany {kammer,tholey}@informatik.uni-augsburg.de Abstract.

More information

Comparisons of Efficient Implementations for DAWG

Comparisons of Efficient Implementations for DAWG Comparisons of Efficient Implementations for DAWG Masao Fuketa, Kazuhiro Morita, and Jun-ichi Aoe Abstract Key retrieval is very important in various applications. A trie and DAWG are data structures for

More information

EECS 583 Class 2 Control Flow Analysis LLVM Introduction

EECS 583 Class 2 Control Flow Analysis LLVM Introduction EECS 583 Class 2 Control Flow Analysis LLVM Introduction University of Michigan September 8, 2014 - 1 - Announcements & Reading Material HW 1 out today, due Friday, Sept 22 (2 wks)» This homework is not

More information

Lecture 3: Recap. Administrivia. Graph theory: Historical Motivation. COMP9020 Lecture 4 Session 2, 2017 Graphs and Trees

Lecture 3: Recap. Administrivia. Graph theory: Historical Motivation. COMP9020 Lecture 4 Session 2, 2017 Graphs and Trees Administrivia Lecture 3: Recap Assignment 1 due 23:59 tomorrow. Quiz 4 up tonight, due 15:00 Thursday 31 August. Equivalence relations: (S), (R), (T) Total orders: (AS), (R), (T), (L) Partial orders: (AS),

More information

XI International PhD Workshop OWD 2009, October Fuzzy Sets as Metasets

XI International PhD Workshop OWD 2009, October Fuzzy Sets as Metasets XI International PhD Workshop OWD 2009, 17 20 October 2009 Fuzzy Sets as Metasets Bartłomiej Starosta, Polsko-Japońska WyŜsza Szkoła Technik Komputerowych (24.01.2008, prof. Witold Kosiński, Polsko-Japońska

More information

Reducing Directed Max Flow to Undirected Max Flow and Bipartite Matching

Reducing Directed Max Flow to Undirected Max Flow and Bipartite Matching Reducing Directed Max Flow to Undirected Max Flow and Bipartite Matching Henry Lin Division of Computer Science University of California, Berkeley Berkeley, CA 94720 Email: henrylin@eecs.berkeley.edu Abstract

More information

Graph Isomorphism. Algorithms and networks

Graph Isomorphism. Algorithms and networks Graph Isomorphism Algorithms and networks Today Graph isomorphism: definition Complexity: isomorphism completeness The refinement heuristic Isomorphism for trees Rooted trees Unrooted trees Graph Isomorphism

More information

Code Transformation of DF-Expression between Bintree and Quadtree

Code Transformation of DF-Expression between Bintree and Quadtree Code Transformation of DF-Expression between Bintree and Quadtree Chin-Chen Chang*, Chien-Fa Li*, and Yu-Chen Hu** *Department of Computer Science and Information Engineering, National Chung Cheng University

More information

Trees. Arash Rafiey. 20 October, 2015

Trees. Arash Rafiey. 20 October, 2015 20 October, 2015 Definition Let G = (V, E) be a loop-free undirected graph. G is called a tree if G is connected and contains no cycle. Definition Let G = (V, E) be a loop-free undirected graph. G is called

More information

LITERATURE REVIEW: Parallel algorithms for the maximal independent set problem in graphs

LITERATURE REVIEW: Parallel algorithms for the maximal independent set problem in graphs LITERATURE REVIEW: Parallel algorithms for the maximal independent set problem in graphs Luis Barba October 16, 2012 1 Introduction Let G = (V, E) be an undirected graph. An independent set of G is a subset

More information

Outline. Graphs. Divide and Conquer.

Outline. Graphs. Divide and Conquer. GRAPHS COMP 321 McGill University These slides are mainly compiled from the following resources. - Professor Jaehyun Park slides CS 97SI - Top-coder tutorials. - Programming Challenges books. Outline Graphs.

More information

Connecting face hitting sets in planar graphs

Connecting face hitting sets in planar graphs Connecting face hitting sets in planar graphs Pascal Schweitzer and Patrick Schweitzer Max-Planck-Institute for Computer Science Campus E1 4, D-66123 Saarbrücken, Germany pascal@mpi-inf.mpg.de University

More information

Earlier edition Dragon book has been revised. Course Outline Contact Room 124, tel , rvvliet(at)liacs(dot)nl

Earlier edition Dragon book has been revised. Course Outline Contact Room 124, tel , rvvliet(at)liacs(dot)nl Compilerconstructie najaar 2013 http://www.liacs.nl/home/rvvliet/coco/ Rudy van Vliet kamer 124 Snellius, tel. 071-527 5777 rvvliet(at)liacs(dot)nl college 1, dinsdag 3 september 2013 Overview 1 Why this

More information

These notes present some properties of chordal graphs, a set of undirected graphs that are important for undirected graphical models.

These notes present some properties of chordal graphs, a set of undirected graphs that are important for undirected graphical models. Undirected Graphical Models: Chordal Graphs, Decomposable Graphs, Junction Trees, and Factorizations Peter Bartlett. October 2003. These notes present some properties of chordal graphs, a set of undirected

More information

A 4-Approximation Algorithm for k-prize Collecting Steiner Tree Problems

A 4-Approximation Algorithm for k-prize Collecting Steiner Tree Problems arxiv:1802.06564v1 [cs.cc] 19 Feb 2018 A 4-Approximation Algorithm for k-prize Collecting Steiner Tree Problems Yusa Matsuda and Satoshi Takahashi The University of Electro-Communications, Japan February

More information

Control-Flow Analysis

Control-Flow Analysis Control-Flow Analysis Dragon book [Ch. 8, Section 8.4; Ch. 9, Section 9.6] Compilers: Principles, Techniques, and Tools, 2 nd ed. by Alfred V. Aho, Monica S. Lam, Ravi Sethi, and Jerey D. Ullman on reserve

More information

Linearizable Iterators

Linearizable Iterators Linearizable Iterators Supervised by Maurice Herlihy Abstract Petrank et. al. [5] provide a construction of lock-free, linearizable iterators for lock-free linked lists. We consider the problem of extending

More information

Compiler Design Overview. Compiler Design 1

Compiler Design Overview. Compiler Design 1 Compiler Design Overview Compiler Design 1 Preliminaries Required Basic knowledge of programming languages. Basic knowledge of FSA and CFG. Knowledge of a high programming language for the programming

More information

Image-Space-Parallel Direct Volume Rendering on a Cluster of PCs

Image-Space-Parallel Direct Volume Rendering on a Cluster of PCs Image-Space-Parallel Direct Volume Rendering on a Cluster of PCs B. Barla Cambazoglu and Cevdet Aykanat Bilkent University, Department of Computer Engineering, 06800, Ankara, Turkey {berkant,aykanat}@cs.bilkent.edu.tr

More information

Chapter 8: Data Abstractions

Chapter 8: Data Abstractions Chapter 8: Data Abstractions Computer Science: An Overview Tenth Edition by J. Glenn Brookshear Presentation files modified by Farn Wang Copyright 28 Pearson Education, Inc. Publishing as Pearson Addison-Wesley

More information

On Universal Cycles of Labeled Graphs

On Universal Cycles of Labeled Graphs On Universal Cycles of Labeled Graphs Greg Brockman Harvard University Cambridge, MA 02138 United States brockman@hcs.harvard.edu Bill Kay University of South Carolina Columbia, SC 29208 United States

More information

EECS 583 Class 3 Region Formation, Predicated Execution

EECS 583 Class 3 Region Formation, Predicated Execution EECS 583 Class 3 Region Formation, Predicated Execution University of Michigan September 14, 2011 Reading Material Today s class» Trace Selection for Compiling Large C Applications to Microcode, Chang

More information

12 Abstract Data Types

12 Abstract Data Types 12 Abstract Data Types 12.1 Foundations of Computer Science Cengage Learning Objectives After studying this chapter, the student should be able to: Define the concept of an abstract data type (ADT). Define

More information

LabVIEW Based Embedded Design [First Report]

LabVIEW Based Embedded Design [First Report] LabVIEW Based Embedded Design [First Report] Sadia Malik Ram Rajagopal Department of Electrical and Computer Engineering University of Texas at Austin Austin, TX 78712 malik@ece.utexas.edu ram.rajagopal@ni.com

More information

AN EMBEDDED SYSTEM FOR THE ELECTROCARDIOGRAM RECOGNITION

AN EMBEDDED SYSTEM FOR THE ELECTROCARDIOGRAM RECOGNITION AN EMBEDDED SYSTEM FOR THE ELECTROCARDIOGRAM RECOGNITION Christos Pavlatos*, Alexandros Dimopoulos* and G. Papakonstantinou* * National Technical University of Athens Dept. of Electrical and Computer Engineering

More information

The Optimal Locking Problem in a Directed Acyclic Graph

The Optimal Locking Problem in a Directed Acyclic Graph March 1981 Report. No. STAN-CS-81-847 PB96-150685 The Optimal Locking Problem in a Directed Acyclic Graph by Henry F. Korth Research sponsored in part by Air Force Office of Scientific Research Department

More information

Konigsberg Bridge Problem

Konigsberg Bridge Problem Graphs Konigsberg Bridge Problem c C d g A Kneiphof e D a B b f c A C d e g D a b f B Euler s Graph Degree of a vertex: the number of edges incident to it Euler showed that there is a walk starting at

More information

Graphs. Data Structures and Algorithms CSE 373 SU 18 BEN JONES 1

Graphs. Data Structures and Algorithms CSE 373 SU 18 BEN JONES 1 Graphs Data Structures and Algorithms CSE 373 SU 18 BEN JONES 1 Warmup Discuss with your neighbors: Come up with as many kinds of relational data as you can (data that can be represented with a graph).

More information