Graph and Network Analysis
Total Page:16
File Type:pdf, Size:1020Kb
Load more
Recommended publications
-
Sagemath and Sagemathcloud
Viviane Pons Ma^ıtrede conf´erence,Universit´eParis-Sud Orsay [email protected] { @PyViv SageMath and SageMathCloud Introduction SageMath SageMath is a free open source mathematics software I Created in 2005 by William Stein. I http://www.sagemath.org/ I Mission: Creating a viable free open source alternative to Magma, Maple, Mathematica and Matlab. Viviane Pons (U-PSud) SageMath and SageMathCloud October 19, 2016 2 / 7 SageMath Source and language I the main language of Sage is python (but there are many other source languages: cython, C, C++, fortran) I the source is distributed under the GPL licence. Viviane Pons (U-PSud) SageMath and SageMathCloud October 19, 2016 3 / 7 SageMath Sage and libraries One of the original purpose of Sage was to put together the many existent open source mathematics software programs: Atlas, GAP, GMP, Linbox, Maxima, MPFR, PARI/GP, NetworkX, NTL, Numpy/Scipy, Singular, Symmetrica,... Sage is all-inclusive: it installs all those libraries and gives you a common python-based interface to work on them. On top of it is the python / cython Sage library it-self. Viviane Pons (U-PSud) SageMath and SageMathCloud October 19, 2016 4 / 7 SageMath Sage and libraries I You can use a library explicitly: sage: n = gap(20062006) sage: type(n) <c l a s s 'sage. interfaces .gap.GapElement'> sage: n.Factors() [ 2, 17, 59, 73, 137 ] I But also, many of Sage computation are done through those libraries without necessarily telling you: sage: G = PermutationGroup([[(1,2,3),(4,5)],[(3,4)]]) sage : G . g a p () Group( [ (3,4), (1,2,3)(4,5) ] ) Viviane Pons (U-PSud) SageMath and SageMathCloud October 19, 2016 5 / 7 SageMath Development model Development model I Sage is developed by researchers for researchers: the original philosophy is to develop what you need for your research and share it with the community. -
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. -
Directed Graph Algorithms
Directed Graph Algorithms CSE 373 Data Structures Readings • Reading Chapter 13 › Sections 13.3 and 13.4 Digraphs 2 Topological Sort 142 322 143 321 Problem: Find an order in which all these courses can 326 be taken. 370 341 Example: 142 Æ 143 Æ 378 Æ 370 Æ 321 Æ 341 Æ 322 Æ 326 Æ 421 Æ 401 378 421 In order to take a course, you must 401 take all of its prerequisites first Digraphs 3 Topological Sort Given a digraph G = (V, E), find a linear ordering of its vertices such that: for any edge (v, w) in E, v precedes w in the ordering B C A F D E Digraphs 4 Topo sort – valid solution B C Any linear ordering in which A all the arrows go to the right F is a valid solution D E A B F C D E Note that F can go anywhere in this list because it is not connected. Also the solution is not unique. Digraphs 5 Topo sort – invalid solution B C A Any linear ordering in which an arrow goes to the left F is not a valid solution D E A B F C E D NO! Digraphs 6 Paths and Cycles • Given a digraph G = (V,E), a path is a sequence of vertices v1,v2, …,vk such that: ›(vi,vi+1) in E for 1 < i < k › path length = number of edges in the path › path cost = sum of costs of each edge • A path is a cycle if : › k > 1; v1 = vk •G is acyclic if it has no cycles. -
Graph Varieties Axiomatized by Semimedial, Medial, and Some Other Groupoid Identities
Discussiones Mathematicae General Algebra and Applications 40 (2020) 143–157 doi:10.7151/dmgaa.1344 GRAPH VARIETIES AXIOMATIZED BY SEMIMEDIAL, MEDIAL, AND SOME OTHER GROUPOID IDENTITIES Erkko Lehtonen Technische Universit¨at Dresden Institut f¨ur Algebra 01062 Dresden, Germany e-mail: [email protected] and Chaowat Manyuen Department of Mathematics, Faculty of Science Khon Kaen University Khon Kaen 40002, Thailand e-mail: [email protected] Abstract Directed graphs without multiple edges can be represented as algebras of type (2, 0), so-called graph algebras. A graph is said to satisfy an identity if the corresponding graph algebra does, and the set of all graphs satisfying a set of identities is called a graph variety. We describe the graph varieties axiomatized by certain groupoid identities (medial, semimedial, autodis- tributive, commutative, idempotent, unipotent, zeropotent, alternative). Keywords: graph algebra, groupoid, identities, semimediality, mediality. 2010 Mathematics Subject Classification: 05C25, 03C05. 1. Introduction Graph algebras were introduced by Shallon [10] in 1979 with the purpose of providing examples of nonfinitely based finite algebras. Let us briefly recall this concept. Given a directed graph G = (V, E) without multiple edges, the graph algebra associated with G is the algebra A(G) = (V ∪ {∞}, ◦, ∞) of type (2, 0), 144 E. Lehtonen and C. Manyuen where ∞ is an element not belonging to V and the binary operation ◦ is defined by the rule u, if (u, v) ∈ E, u ◦ v := (∞, otherwise, for all u, v ∈ V ∪ {∞}. We will denote the product u ◦ v simply by juxtaposition uv. Using this representation, we may view any algebraic property of a graph algebra as a property of the graph with which it is associated. -
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 -
Networks in Nature: Dynamics, Evolution, and Modularity
Networks in Nature: Dynamics, Evolution, and Modularity Sumeet Agarwal Merton College University of Oxford A thesis submitted for the degree of Doctor of Philosophy Hilary 2012 2 To my entire social network; for no man is an island Acknowledgements Primary thanks go to my supervisors, Nick Jones, Charlotte Deane, and Mason Porter, whose ideas and guidance have of course played a major role in shaping this thesis. I would also like to acknowledge the very useful sug- gestions of my examiners, Mark Fricker and Jukka-Pekka Onnela, which have helped improve this work. I am very grateful to all the members of the three Oxford groups I have had the fortune to be associated with: Sys- tems and Signals, Protein Informatics, and the Systems Biology Doctoral Training Centre. Their companionship has served greatly to educate and motivate me during the course of my time in Oxford. In particular, Anna Lewis and Ben Fulcher, both working on closely related D.Phil. projects, have been invaluable throughout, and have assisted and inspired my work in many different ways. Gabriel Villar and Samuel Johnson have been col- laborators and co-authors who have helped me to develop some of the ideas and methods used here. There are several other people who have gener- ously provided data, code, or information that has been directly useful for my work: Waqar Ali, Binh-Minh Bui-Xuan, Pao-Yang Chen, Dan Fenn, Katherine Huang, Patrick Kemmeren, Max Little, Aur´elienMazurie, Aziz Mithani, Peter Mucha, George Nicholson, Eli Owens, Stephen Reid, Nico- las Simonis, Dave Smith, Ian Taylor, Amanda Traud, and Jeffrey Wrana. -
Lecture 20 — March 20, 2013 1 the Maximum Cut Problem 2 a Spectral
UBC CPSC 536N: Sparse Approximations Winter 2013 Lecture 20 | March 20, 2013 Prof. Nick Harvey Scribe: Alexandre Fr´echette We study the Maximum Cut Problem with approximation in mind, and naturally we provide a spectral graph theoretic approach. 1 The Maximum Cut Problem Definition 1.1. Given a (undirected) graph G = (V; E), the maximum cut δ(U) for U ⊆ V is the cut with maximal value jδ(U)j. The Maximum Cut Problem consists of finding a maximal cut. We let MaxCut(G) = maxfjδ(U)j : U ⊆ V g be the value of the maximum cut in G, and 0 MaxCut(G) MaxCut = jEj be the normalized version (note that both normalized and unnormalized maximum cut values are induced by the same set of nodes | so we can interchange them in our search for an actual maximum cut). The Maximum Cut Problem is NP-hard. For a long time, the randomized algorithm 1 1 consisting of uniformly choosing a cut was state-of-the-art with its 2 -approximation factor The simplicity of the algorithm and our inability to find a better solution were unsettling. Linear pro- gramming unfortunately didn't seem to help. However, a (novel) technique called semi-definite programming provided a 0:878-approximation algorithm [Goemans-Williamson '94], which is optimal assuming the Unique Games Conjecture. 2 A Spectral Approximation Algorithm Today, we study a result of [Trevison '09] giving a spectral approach to the Maximum Cut Problem with a 0:531-approximation factor. We will present a slightly simplified result with 0:5292-approximation factor. -
Modularity in Static and Dynamic Networks
Modularity in static and dynamic networks Sarah F. Muldoon University at Buffalo, SUNY OHBM – Brain Graphs Workshop June 25, 2017 Outline 1. Introduction: What is modularity? 2. Determining community structure (static networks) 3. Comparing community structure 4. Multilayer networks: Constructing multitask and temporal multilayer dynamic networks 5. Dynamic community structure 6. Useful references OHBM 2017 – Brain Graphs Workshop – Sarah F. Muldoon Introduction: What is Modularity? OHBM 2017 – Brain Graphs Workshop – Sarah F. Muldoon What is Modularity? Modularity (Community Structure) • A module (community) is a subset of vertices in a graph that have more connections to each other than to the rest of the network • Example social networks: groups of friends Modularity in the brain: • Structural networks: communities are groups of brain areas that are more highly connected to each other than the rest of the brain • Functional networks: communities are groups of brain areas with synchronous activity that is not synchronous with other brain activity OHBM 2017 – Brain Graphs Workshop – Sarah F. Muldoon Findings: The Brain is Modular Structural networks: cortical thickness correlations sensorimotor/spatial strategic/executive mnemonic/emotion olfactocentric auditory/language visual processing Chen et al. (2008) Cereb Cortex OHBM 2017 – Brain Graphs Workshop – Sarah F. Muldoon Findings: The Brain is Modular • Functional networks: resting state fMRI He et al. (2009) PLOS One OHBM 2017 – Brain Graphs Workshop – Sarah F. Muldoon Findings: The -
Structural Graph Theory Meets Algorithms: Covering And
Structural Graph Theory Meets Algorithms: Covering and Connectivity Problems in Graphs Saeed Akhoondian Amiri Fakult¨atIV { Elektrotechnik und Informatik der Technischen Universit¨atBerlin zur Erlangung des akademischen Grades Doktor der Naturwissenschaften Dr. rer. nat. genehmigte Dissertation Promotionsausschuss: Vorsitzender: Prof. Dr. Rolf Niedermeier Gutachter: Prof. Dr. Stephan Kreutzer Gutachter: Prof. Dr. Marcin Pilipczuk Gutachter: Prof. Dr. Dimitrios Thilikos Tag der wissenschaftlichen Aussprache: 13. October 2017 Berlin 2017 2 This thesis is dedicated to my family, especially to my beautiful wife Atefe and my lovely son Shervin. 3 Contents Abstract iii Acknowledgementsv I. Introduction and Preliminaries1 1. Introduction2 1.0.1. General Techniques and Models......................3 1.1. Covering Problems.................................6 1.1.1. Covering Problems in Distributed Models: Case of Dominating Sets.6 1.1.2. Covering Problems in Directed Graphs: Finding Similar Patterns, the Case of Erd}os-P´osaproperty.......................9 1.2. Routing Problems in Directed Graphs...................... 11 1.2.1. Routing Problems............................. 11 1.2.2. Rerouting Problems............................ 12 1.3. Structure of the Thesis and Declaration of Authorship............. 14 2. Preliminaries and Notations 16 2.1. Basic Notations and Defnitions.......................... 16 2.1.1. Sets..................................... 16 2.1.2. Graphs................................... 16 2.2. Complexity Classes................................ -
Networkx Reference Release 1.9.1
NetworkX Reference Release 1.9.1 Aric Hagberg, Dan Schult, Pieter Swart September 20, 2014 CONTENTS 1 Overview 1 1.1 Who uses NetworkX?..........................................1 1.2 Goals...................................................1 1.3 The Python programming language...................................1 1.4 Free software...............................................2 1.5 History..................................................2 2 Introduction 3 2.1 NetworkX Basics.............................................3 2.2 Nodes and Edges.............................................4 3 Graph types 9 3.1 Which graph class should I use?.....................................9 3.2 Basic graph types.............................................9 4 Algorithms 127 4.1 Approximation.............................................. 127 4.2 Assortativity............................................... 132 4.3 Bipartite................................................. 141 4.4 Blockmodeling.............................................. 161 4.5 Boundary................................................. 162 4.6 Centrality................................................. 163 4.7 Chordal.................................................. 184 4.8 Clique.................................................. 187 4.9 Clustering................................................ 190 4.10 Communities............................................... 193 4.11 Components............................................... 194 4.12 Connectivity.............................................. -
Multidimensional Network Analysis
Universita` degli Studi di Pisa Dipartimento di Informatica Dottorato di Ricerca in Informatica Ph.D. Thesis Multidimensional Network Analysis Michele Coscia Supervisor Supervisor Fosca Giannotti Dino Pedreschi May 9, 2012 Abstract This thesis is focused on the study of multidimensional networks. A multidimensional network is a network in which among the nodes there may be multiple different qualitative and quantitative relations. Traditionally, complex network analysis has focused on networks with only one kind of relation. Even with this constraint, monodimensional networks posed many analytic challenges, being representations of ubiquitous complex systems in nature. However, it is a matter of common experience that the constraint of considering only one single relation at a time limits the set of real world phenomena that can be represented with complex networks. When multiple different relations act at the same time, traditional complex network analysis cannot provide suitable an- alytic tools. To provide the suitable tools for this scenario is exactly the aim of this thesis: the creation and study of a Multidimensional Network Analysis, to extend the toolbox of complex network analysis and grasp the complexity of real world phenomena. The urgency and need for a multidimensional network analysis is here presented, along with an empirical proof of the ubiquity of this multifaceted reality in different complex networks, and some related works that in the last two years were proposed in this novel setting, yet to be systematically defined. Then, we tackle the foundations of the multidimensional setting at different levels, both by looking at the basic exten- sions of the known model and by developing novel algorithms and frameworks for well-understood and useful problems, such as community discovery (our main case study), temporal analysis, link prediction and more. -
Strongly Connected Components and Biconnected Components
Strongly Connected Components and Biconnected Components Daniel Wisdom 27 January 2017 1 2 3 4 5 6 7 8 Figure 1: A directed graph. Credit: Crash Course Coding Companion. 1 Strongly Connected Components A strongly connected component (SCC) is a set of vertices where every vertex can reach every other vertex. In an undirected graph the SCCs are just the groups of connected vertices. We can find them using a simple DFS. This works because, in an undirected graph, u can reach v if and only if v can reach u. This is not true in a directed graph, which makes finding the SCCs harder. More on that later. 2 Kernel graph We can travel between any two nodes in the same strongly connected component. So what if we replaced each strongly connected component with a single node? This would give us what we call the kernel graph, which describes the edges between strongly connected components. Note that the kernel graph is a directed acyclic graph because any cycles would constitute an SCC, so the cycle would be compressed into a kernel. 3 1,2,5,6 4,7 8 Figure 2: Kernel graph of the above directed graph. 3 Tarjan's SCC Algorithm In a DFS traversal of the graph every SCC will be a subtree of the DFS tree. This subtree is not necessarily proper, meaning that it may be missing some branches which are their own SCCs. This means that if we can identify every node that is the root of its SCC in the DFS, we can enumerate all the SCCs.