Configurable Graph Drawing Algorithms for the Tikz Graphics Description Language

Total Page:16

File Type:pdf, Size:1020Kb

Configurable Graph Drawing Algorithms for the Tikz Graphics Description Language Diplomarbeit Configurable Graph Drawing Algorithms for the TikZ Graphics Description Language Jannis Pohlmann 14. Oktober 2011 Institut für Theoretische Informatik Prof. Dr. Till Tantau Erklärung Hiermit erkläre ich, dass ich die vorliegende Diplomarbeit selbständig und ausschließlich unter Verwendung der angegebenen Quellen und Hilfsmittel verfasst habe. Zudem versichere ich, dass ich weder diese noch inhaltlich verwandte Arbeiten als Prüfungsleis- tung in anderen Fächern eingereicht habe oder einreichen werde. Lübeck, den 14. Oktober 2011 Abstract Graphs are key to illustrating and understanding many complex systems and processes. This thesis provides an introduction to the graph drawing features of TikZ, a versatile language for creating a wide range of vector graphics that includes a framework for automatic graph layout strategies written in the Lua programming language. Algorithms for two families of drawing methods—spring and spring-electrical layouts of general graphs as well as layered drawings of directed graphs—were developed specifically for TikZ. They are presented along with a discus- sion of their underlying concepts, implementation details, and options to select, configure, and extend them. The generated spring and spring-electrical layouts feature a high degree of sym- metry, evenly distributed nodes and almost uniform edge lengths. The techniques developed for layered drawings are successful in highlighting the flow of directed graphs and producing layouts with uniform edge lengths and few crossings. By discussing many graph drawing fea- tures valuable for end-users and researchers alike, this thesis aims at enabling a comparison to related tools and providing the groundwork for future research and algorithm development. Contents 1 Introduction 1 2 An Overview of TikZ and its Graph Drawing Features 9 2.1 TikZ as a Front-End Language for the PGF Graphics Package 10 2.2 A Special Syntax for Specifying Graphs 12 2.3 The Graph Drawing Engine and its Lua Interface 16 2.4 Contributions to TikZ in the Course of this Thesis 22 3 Force-Based Graph Drawing Algorithms for Arbitrary Graphs 27 3.1 Introduction to Force-Based Graph Drawing 28 3.2 Common Structure and Elements of Spring and Spring-Electrical Algorithms 30 3.3 Spring and Spring-Electrical Algorithms Implemented for TikZ 36 3.4 TikZ Syntax and Options for Creating Spring and Spring-Electrical Layouts 43 4 Algorithms for Layered Drawings of Directed Graphs 51 4.1 An Algorithm Framework Based on the Sugiyama Method 52 4.2 Modular Implementation of the Framework in TikZ 70 4.3 TikZ Syntax and Options for Creating Layered Drawings 73 4.4 Extension Interface of the Algorithm Framework 77 5 Evaluation and Benchmarks 83 5.1 Evaluation of the Spring and Spring-Electrical Algorithms 83 5.2 Evaluation of the Layered Drawing Algorithm 102 6 Conclusion and Outlook 109 Bibliography 113 1 Introduction Consider the following three drawings: These drawings show the same graph. Clearly, the two graphics on the right are more appealing than the one on the left and convey more information about the structure of the graph. What causes us to make this distinction between good and bad or informative and non-informative are aesthetic aspects such as symmetry, distribution of nodes, or edge crossings. Graphs are not only a formal structure to model relational data, but are also key to illustrating and under- standing many complex systems and processes in the form of graph drawings. Three possible applications are the visualization and analysis of social networks, the documentation of compo- nent hierarchies in software engineering, and the illustration of the control flow of a machine or production plant. Due to their size and for reasons of convenience, drawings of graphs are 2 Introduction often generated automatically with the help of specialized software. The quality of the auto- matic layout techniques used in these tools and the compliance with common aesthetic criteria are critical for producing graph drawings that are visually appealing and easy to understand. This is the central focus of graph drawing, an area of mathematics and computer science that ad- dresses the problem of visualizing graphs by developing automatic layout strategies and eval- uating these solutions based on aesthetic criteria. It combines elements from geometric graph theory and information visualization and plays an important role in data analysis as well as the production of research papers, books, lecture notes, and presentations where drawings of graphs are needed. Graph drawing is an active field of research with its own annual conference, the International Symposium on Graph Drawing [5], first held in 1995. Since its early days in the 1960s, graph drawing has succeeded in establishing many concepts related to the visualization of graphs. In addition to the identification and evaluation of common aesthetic criteria such as the minimization of edge crossings or the maximization of symmetry, a number of standard strategies and algorithm frameworks for drawing graphs have been developed. They are often classified by their under- lying concepts, the types of graphs they accept as their input, and the drawing conventions they implement. Popular classifications include methods based on the simulation of physical forces, methods for drawing trees or directed graphs, and methods that produce orthogonal, planar or layered drawings. An introduction to the most important drawing conventions, constraints, and aesthetic criteria as well as a detailed overview of popular techniques for drawing graphs is given by Di Battista et al. [12]. Graph drawing algorithms such as the ones discussed in [18, 21, 27, 31, 35 and 50] have gained recognition and are implemented in many well-known applications, including the graph draw- ing tool Graphviz1 and the computational software Mathematica2. These tools typically provide a special language or syntax for describing graphs. They parse these descriptions and apply graph drawing algorithms in order to find good graph layouts. The resulting drawings are then either rendered to the screen or converted into output formats such as PDF, EPS or PNG, allowing them to be imported into other applications and used in documents and other graphics. This thesis focuses on graph drawing with TikZ, a versatile language for creating a wide range of vector graphics. Like other tools, it provides a compact syntax for specifying graphs and tech- niques for turning these graph descriptions into proper drawings. The work presented here was preceded by extensive research of existing graph drawing literature. Algorithms for two families of drawing methods—force-based layouts of general graphs and layered drawings of 1 Graphviz website: http://graphviz.org 2 Mathematica website: http://www.wolfram.com/mathematica/ 3 directed graphs—were investigated and implemented specifically for use in TikZ. Even though the examples used in this thesis mostly stem from various areas of computer science, the de- veloped algorithms can be applied to many fields of science, education, data visualization, and process modeling. The central topic of the subsequent chapters is to give an introduction to the graph drawing features of TikZ and to discuss the implemented algorithms, including their im- plementation, features, configuration options, and performance. The results produced by these algorithms are evaluated with regards to their visual properties and common aesthetic criteria. What sets TikZ apart from other graph drawing tools are three central features. First of all, its scope is not limited to graph drawing. On the contrary, it has many powerful features for creating complex drawings. Drawing graphs and combining these drawings with other graphic elements is only one of them. In contrast to solutions such as Graphviz or the Open Graph Draw- ing Framework3, TikZ is neither a standalone software nor a framework on top of which other graph drawing tools are built. It can be used to produce graphics for importing into other ap- plications. Its main purpose, however, is to allow the creation of drawings that are embedded into the source code of documents built with the TEX typesetting system. This approach has a number of advantages. Not only does it simplify the document production workflow by en- abling users to store, edit, and build drawings together with the rest of their documents. It also allows drawings to inherit font properties and typesetting features from their containing docu- ments and from TEX, which helps in producing content with a consistent and professional look. The third central feature of TikZ is that—thanks to its modular architecture—it can be extended with new language features, graphics elements, and graph drawing algorithms easily. Unlike with other tools, where such extensions are either not possible at all or require fiddling with compiled languages and build tools, adding new graph drawing algorithms to TikZ is as simple as dropping a script into the TEX directory tree that is written in the Lua programming language and implements a simple function. One thing to note here is that the performance of TEX and algorithms written in Lua is not comparable to the often optimized compiled code used in other tools. This can be a problem with many graph drawings or drawings of large graphs. Luckily, some variants of TEX provide workable solutions to address these issues. Contributions Support for algorithmic graph drawing in TikZ is provided by a dedicated subsystem called the graph drawing engine that takes a graph description, passes it over to a Lua framework where it is turned into an object-oriented representation of the graph and processed with the desired 3 Open Graph Drawing Framework website: http://ogdf.net 4 Introduction graph drawing algorithm. The resulting layout is returned to TikZ for rendering and embedding into the output document. The main contributions of this thesis are the implementation of algorithms for two popular drawing methods applicable to many graphs. These algorithms were implemented specifically for the Lua-based graph drawing engine of TikZ and are presented along with TikZ syntax addi- tions for users to select and configure them.
Recommended publications
  • Networkx Tutorial
    5.03.2020 tutorial NetworkX tutorial Source: https://github.com/networkx/notebooks (https://github.com/networkx/notebooks) Minor corrections: JS, 27.02.2019 Creating a graph Create an empty graph with no nodes and no edges. In [1]: import networkx as nx In [2]: G = nx.Graph() By definition, a Graph is a collection of nodes (vertices) along with identified pairs of nodes (called edges, links, etc). In NetworkX, nodes can be any hashable object e.g. a text string, an image, an XML object, another Graph, a customized node object, etc. (Note: Python's None object should not be used as a node as it determines whether optional function arguments have been assigned in many functions.) Nodes The graph G can be grown in several ways. NetworkX includes many graph generator functions and facilities to read and write graphs in many formats. To get started though we'll look at simple manipulations. You can add one node at a time, In [3]: G.add_node(1) add a list of nodes, In [4]: G.add_nodes_from([2, 3]) or add any nbunch of nodes. An nbunch is any iterable container of nodes that is not itself a node in the graph. (e.g. a list, set, graph, file, etc..) In [5]: H = nx.path_graph(10) file:///home/szwabin/Dropbox/Praca/Zajecia/Diffusion/Lectures/1_intro/networkx_tutorial/tutorial.html 1/18 5.03.2020 tutorial In [6]: G.add_nodes_from(H) Note that G now contains the nodes of H as nodes of G. In contrast, you could use the graph H as a node in G.
    [Show full text]
  • Networkx: Network Analysis with Python
    NetworkX: Network Analysis with Python Salvatore Scellato Full tutorial presented at the XXX SunBelt Conference “NetworkX introduction: Hacking social networks using the Python programming language” by Aric Hagberg & Drew Conway Outline 1. Introduction to NetworkX 2. Getting started with Python and NetworkX 3. Basic network analysis 4. Writing your own code 5. You are ready for your project! 1. Introduction to NetworkX. Introduction to NetworkX - network analysis Vast amounts of network data are being generated and collected • Sociology: web pages, mobile phones, social networks • Technology: Internet routers, vehicular flows, power grids How can we analyze this networks? Introduction to NetworkX - Python awesomeness Introduction to NetworkX “Python package for the creation, manipulation and study of the structure, dynamics and functions of complex networks.” • Data structures for representing many types of networks, or graphs • Nodes can be any (hashable) Python object, edges can contain arbitrary data • Flexibility ideal for representing networks found in many different fields • Easy to install on multiple platforms • Online up-to-date documentation • First public release in April 2005 Introduction to NetworkX - design requirements • Tool to study the structure and dynamics of social, biological, and infrastructure networks • Ease-of-use and rapid development in a collaborative, multidisciplinary environment • Easy to learn, easy to teach • Open-source tool base that can easily grow in a multidisciplinary environment with non-expert users
    [Show full text]
  • Graph Database Fundamental Services
    Bachelor Project Czech Technical University in Prague Faculty of Electrical Engineering F3 Department of Cybernetics Graph Database Fundamental Services Tomáš Roun Supervisor: RNDr. Marko Genyk-Berezovskyj Field of study: Open Informatics Subfield: Computer and Informatic Science May 2018 ii Acknowledgements Declaration I would like to thank my advisor RNDr. I declare that the presented work was de- Marko Genyk-Berezovskyj for his guid- veloped independently and that I have ance and advice. I would also like to thank listed all sources of information used Sergej Kurbanov and Herbert Ullrich for within it in accordance with the methodi- their help and contributions to the project. cal instructions for observing the ethical Special thanks go to my family for their principles in the preparation of university never-ending support. theses. Prague, date ............................ ........................................... signature iii Abstract Abstrakt The goal of this thesis is to provide an Cílem této práce je vyvinout webovou easy-to-use web service offering a database službu nabízející databázi neorientova- of undirected graphs that can be searched ných grafů, kterou bude možno efektivně based on the graph properties. In addi- prohledávat na základě vlastností grafů. tion, it should also allow to compute prop- Tato služba zároveň umožní vypočítávat erties of user-supplied graphs with the grafové vlastnosti pro grafy zadané uži- help graph libraries and generate graph vatelem s pomocí grafových knihoven a images. Last but not least, we implement zobrazovat obrázky grafů. V neposlední a system that allows bulk adding of new řadě je také cílem navrhnout systém na graphs to the database and computing hromadné přidávání grafů do databáze a their properties.
    [Show full text]
  • Gephi Tools for Network Analysis and Visualization
    Frontiers of Network Science Fall 2018 Class 8: Introduction to Gephi Tools for network analysis and visualization Boleslaw Szymanski CLASS PLAN Main Topics • Overview of tools for network analysis and visualization • Installing and using Gephi • Gephi hands-on labs Frontiers of Network Science: Introduction to Gephi 2018 2 TOOLS OVERVIEW (LISTED ALPHABETICALLY) Tools for network analysis and visualization • Computing model and interface – Desktop GUI applications – API/code libraries, Web services – Web GUI front-ends (cloud, distributed, HPC) • Extensibility model – Only by the original developers – By other users/developers (add-ins, modules, additional packages, etc.) • Source availability model – Open-source – Closed-source • Business model – Free of charge – Commercial Frontiers of Network Science: Introduction to Gephi 2018 3 TOOLS CINET CyberInfrastructure for NETwork science • Accessed via a Web-based portal (http://cinet.vbi.vt.edu/granite/granite.html) • Supported by grants, no charge for end users • Aims to provide researchers, analysts, and educators interested in Network Science with an easy-to-use cyber-environment that is accessible from their desktop and integrates into their daily work • Users can contribute new networks, data, algorithms, hardware, and research results • Primarily for research, teaching, and collaboration • No programming experience is required Frontiers of Network Science: Introduction to Gephi 2018 4 TOOLS Cytoscape Network Data Integration, Analysis, and Visualization • A standalone GUI application
    [Show full text]
  • Gephi-Poster-Sunbelt-July10.Pdf
    The Open Graph Viz Platform Gephi is a new open-source network visualization platform. It aims to create a sustainable software and technical Download Gephi at ecosystem, driven by a large international open-source community, who shares common interests in networks and http://gephi.org complex systems. The rendering engine can handle networks larger than 100K elements and guarantees responsiveness. Designed to make data navigation and manipulation easy, it aims to fulll the complete chain from data importing to aesthetics renements and interaction. Particular focus is made on the software usability and interoperability with other tools. A lot of eorts are made to facilitate the community growth, by providing tutorials, plug-ins development documentation, support and student projects. Current developments include Dynamic Network Analysis (DNA) and Goals spigots (Emails, Twitter, Facebook …) import. Create the Photoshop of network visualization, by combining a rich set of Gephi aims at being built-in features and a sustainable, open to friendly user interface. many kind of users, and creating a large, Design a modular and international and extensible software diverse open-source architecture, facilitate plug-ins development, community reuse and mashup. Build a large, international Features Highlight and diverse open-source community. Community Join the network, participate designing the roadmap, get help to quickly code plug-ins or simply share your ideas. Select, move, paint, resize, connect, group Just with the mouse Export in SVG/PDF to include your infographics Metrics Architecture * Betweenness, Eigenvector, Closeness The modular architecture allows developers adding and extending features * Eccentricity with ease by developing plug-ins. Gephi can also be used as Java library in * Diameter, Average Shortest Path other applications and build for instance, a layout server.
    [Show full text]
  • Plantuml Language Reference Guide (Version 1.2021.2)
    Drawing UML with PlantUML PlantUML Language Reference Guide (Version 1.2021.2) PlantUML is a component that allows to quickly write : • Sequence diagram • Usecase diagram • Class diagram • Object diagram • Activity diagram • Component diagram • Deployment diagram • State diagram • Timing diagram The following non-UML diagrams are also supported: • JSON Data • YAML Data • Network diagram (nwdiag) • Wireframe graphical interface • Archimate diagram • Specification and Description Language (SDL) • Ditaa diagram • Gantt diagram • MindMap diagram • Work Breakdown Structure diagram • Mathematic with AsciiMath or JLaTeXMath notation • Entity Relationship diagram Diagrams are defined using a simple and intuitive language. 1 SEQUENCE DIAGRAM 1 Sequence Diagram 1.1 Basic examples The sequence -> is used to draw a message between two participants. Participants do not have to be explicitly declared. To have a dotted arrow, you use --> It is also possible to use <- and <--. That does not change the drawing, but may improve readability. Note that this is only true for sequence diagrams, rules are different for the other diagrams. @startuml Alice -> Bob: Authentication Request Bob --> Alice: Authentication Response Alice -> Bob: Another authentication Request Alice <-- Bob: Another authentication Response @enduml 1.2 Declaring participant If the keyword participant is used to declare a participant, more control on that participant is possible. The order of declaration will be the (default) order of display. Using these other keywords to declare participants
    [Show full text]
  • Travels of Baron Munchausen
    Songs for Scribus Travels of Baron Munchausen Songs for Scribus Travels of Baron Munchausen Travels of Baron Munchausen How should I disengage myself? I was not much pleased with my awkward situation – with a wolf face to face; our ogling was not of the most pleasant kind. If I withdrew my arm, then the animal would fly the more furiously upon me; that I saw in his flaming eyes. In short, I laid hold of his tail, turned him inside out like a glove, and flung him to the ground, where I left him. On January 3 2011, the first working day of the year, OSP gathered around Scribus. We wanted to explore framerendering, bootstrapping Scribus and to play around with the incredible adventures of Baron von Munchausen. The idea was to produce some kind of experimental result, a follow- up of to our earlier attempts to turn a frog into a prince. One day we asked Scribus team-members what their favourite Scribus feature was. After some hesitation they pointed us to the magical framerender. Framerenderer The Framerender is an image frame with a wrapper, a GUI, and a configuration scheme. External programs are invoked from inside of Scribus, and their output is placed into the frame! By default, the current Scribus is configured to host the following friends: LaTeX, Lilypond, gnuplot, dot/GraphViz and POV-Ray Today we are working with Lilypond. We are also creating cus- tom tools that generate PostScript/PDF via Imagemagick and other command line tools. Lilypond LilyPond is a music engraving program, devoted to producing the highest-quality sheet music possible.
    [Show full text]
  • A Comparative Analysis of Large-Scale Network Visualization Tools
    A Comparative Analysis of Large-scale Network Visualization Tools Md Abdul Motaleb Faysal and Shaikh Arifuzzaman Department of Computer Science, University of New Orleans New Orleans, LA 70148, USA. Email: [email protected], [email protected] Abstract—Network (Graph) is a powerful abstraction for scalability for large network analysis. Such study will help a representing underlying relations and structures in large complex person to decide which tool to use for a specific case based systems. Network visualization provides a convenient way to ex- on his need. plore and study such structures and reveal useful insights. There exist several network visualization tools; however, these vary in One such study in [3] compares a couple of tools based on terms of scalability, analytics feature, and user-friendliness. Due scalability. Comparative studies on other visualization metrics to the huge growth of social, biological, and other scientific data, should be conducted to let end users have freedom in choosing the corresponding network data is also large. Visualizing such the specific tool he needs to use. In this paper, we have chosen large network poses another level of difficulty. In this paper, we five widely used visualization tools for an empirical and identify several popular network visualization tools and provide a comparative analysis based on the features and operations comparative analysis. Our comparisons are based on factors these tools support. We demonstrate empirically how those tools such as supported file formats, scalability in visualization scale to large networks. We also provide several case studies of and analysis, interacting capability with the drawn network, visual analytics on large network data and assess performances end user-friendliness (e.g., users with no programming back- of the tools.
    [Show full text]
  • The Graph Crossing Number and Its Variants: a Survey
    The Graph Crossing Number and its Variants: A Survey Marcus Schaefer School of Computing DePaul University Chicago, Illinois 60604, USA [email protected] Submitted: Dec 20, 2011; Accepted: Apr 4, 2013; Published: April 17, 2013 Third edition, Dec 22, 2017 Mathematics Subject Classifications: 05C62, 68R10 Abstract The crossing number is a popular tool in graph drawing and visualization, but there is not really just one crossing number; there is a large family of crossing number notions of which the crossing number is the best known. We survey the rich variety of crossing number variants that have been introduced in the literature for purposes that range from studying the theoretical underpinnings of the crossing number to crossing minimization for visualization problems. 1 So, Which Crossing Number is it? The crossing number, cr(G), of a graph G is the smallest number of crossings required in any drawing of G. Or is it? According to a popular introductory textbook on combi- natorics [460, page 40] the crossing number of a graph is “the minimum number of pairs of crossing edges in a depiction of G”. So, which one is it? Is there even a difference? To start with the second question, the easy answer is: yes, obviously there is a differ- ence, the difference between counting all crossings and counting pairs of edges that cross. But maybe these different ways of counting don’t make a difference and always come out the same? That is a harder question to answer. Pach and Tóth in their paper “Which Crossing Number is it Anyway?” [369] coined the term pair crossing number, pcr, for the crossing number in the second definition.
    [Show full text]
  • No Slide Title
    The ILP approach to the layered graph drawing Ago Kuusik Veskisilla Teooriapäevad 1-3.10.2004 1 Outline Introduction Hierarchical drawing & Sugiyama algorithm Linear Programming (LP) and Integer Linear Programming (ILP) Multi-level crossing minimisation ILP Maximum level planar subgraph ILP 2 Graphs Set of vertices V (real world: entities) Set of edges E ::= pairs of vertices (real world: relations) Directed graph: E ::= set of ordered pairs of vertices 3 Graph drawing Started to grow in 1960s, aim – software understanding Now, used in number of areas, for example – Software engineering (call graphs, class diagrams, database schemas) – Social studies (relationship diagrams) – Chemistry (molecular structures) 4 Graph drawing Definition: Given a graph G=(V, E), represent the graph on a plane: – Vertices – closed shapes – Edges – Jordan curves between vertex shapes (Jordan curve = a closed curve that does not intersect itself) 5 Aesthetic criteria General Application-specific – Min. number of edge – Specific vertex crossings shapes (E-R – Uniform edge diagram) direction (directed – Specific vertex graph) locations (class – Min. number of edge hierarchy) bends – Min. area 6 Hierachical drawing Given: a directed acyclic graph (A cyclic graph can be converted acyclic by reversing some edges; minimum feedback arc set is NP hard) Objective: – Uniform edge direction – Min. Number of edge crossings 7 Sugiyama algorithm Published by Sugiyama, Tagawa, Toda 1981 Vertices are placed on discrete layers Edges have uniform direction Edges connect vertices of adjacent layers Reduced edge crossings Overall balance of vertex locations 8 0. random layout 1. layering 2. sorting on layers 3. final positioning 9 1. Layering Assign vertices to discrete layers so that the edges point to common direction – Longest path layering, shortest path layering: simple DFS algorithms – Coffman-Graham layering – constrains the width of the drawing – ILP approaches (Nikolov, 2002) 10 Proper and non-proper layering Proper Non-Proper Dummy vertex 11 2.
    [Show full text]
  • Visualization of Code Flow
    DEGREE PROJECT, IN COMPUTER SCIENCE , SECOND LEVEL STOCKHOLM, SWEDEN 2015 Visualization of Code Flow YURI STANGE KTH ROYAL INSTITUTE OF TECHNOLOGY COMPUTER SCIENCE AND COMMUNICATION (CSC) Visualization of Code Flow Visualisering av kodflöde YURI STANGE Email at KTH: [email protected] Subject Area: Computer Science Supervisor: Stefan Arnborg Examiner: Stefan Arnborg Abstract Visual representation of Control Flow Graphs (CFG) is a feature avail- able in many tools, such as decompilers. These tools often rely on graph drawing frameworks which implement the Sugiyama hierarchical style graph drawing method, a well known method for drawing directed graphs. The main disadvantage of the Sugiyama framework, is the fact that it does not take into account the nature of the graph to be visualized, specically loops are treated as second class citizens. The question this paper at- tempts to answer is; how can we improve the visual representation of loops in the graph? A method based on the Sugiyama framework was developed and implemented in Qt. It was evaluated by informally inter- viewing test subjects, who were allowed to test the implementation and compare it to the normal Sugiyama. The results show that all test sub- jects concluded that loops, as well as the overall representation of the graph was improved, although with reservations. The method presented in this paper has problems which need to be adressed, before it can be seen as an optimal solution for drawing Control Flow Graphs. Sammanfattning Visuell representation av ödesscheman (eng. Control Flow Graph, CFG) är en funktion tillgänglig hos många verktyg, bland annat dekom- pilerare. Dessa verktyg använder sig ofta av grafritande ramverk som im- plementerar Sugiyamas metod för uppritning av hierarkiska grafer, vilken är en känd metod för uppritning av riktade grafer.
    [Show full text]
  • On Layered Drawings of Planar Graphs
    On Layered Drawings of Planar Graphs Bachelor Thesis of Sarah Lutteropp At the Department of Informatics Institute of Theoretical Computer Science Reviewers: Prof. Dr. Maria Axenovich Prof. Dr. Dorothea Wagner Advisors: Dipl.-Inform. Thomas Bläsius Dr. Tamara Mchedlidze Dr. Torsten Ueckerdt Time Period: 28th January 2014 – 28th May 2014 KIT – University of the State of Baden-Wuerttemberg and National Laboratory of the Helmholtz Association www.kit.edu Acknowledgements I would like to thank my advisors Thomas Bläsius, Dr. Tamara Mchedlidze and Dr. Torsten Ueckerdt for their great support in form of many hours of discussion, useful ideas and extensive commenting on iterative versions. It was not trivial to find a topic and place for a combined mathematics and computer science thesis and I am grateful to Prof. Dr. Dorothea Wagner, who allowed me to write my thesis at her institute. I would also like to thank Prof. Dr. Dorothea Wagner and Prof. Dr. Maria Axenovich for grading my thesis. Last but not least, I would like to thank all my proofreaders (supervisors included) for giving last-minute comments on my thesis. Statement of Authorship I hereby declare that this document has been composed by myself and describes my own work, unless otherwise acknowledged in the text. Karlsruhe, 28th May 2014 iii Abstract A graph is k-level planar if it admits a planar drawing in which each vertex is mapped to one of k horizontal parallel lines and the edges are drawn as non-crossing y-monotone line segments between these lines. It is not known whether the decision problem of a graph being k-level planar is solvable in polynomial time complexity (in P) or not.
    [Show full text]