Graph Theory in SAGE Emily Kirkman, Robert Miller and William Stein - PowerPoint PPT Presentation

1 / 1
About This Presentation
Title:

Graph Theory in SAGE Emily Kirkman, Robert Miller and William Stein

Description:

... Jason Grout (recent Ph.D. BYU), Jon Hanke (Duke postdoc), Mike Hansen (Harvey ... Robert Miller (UW grad student), Kate Minola (University of Maryland), Bobby ... – PowerPoint PPT presentation

Number of Views:578
Avg rating:3.0/5.0
Slides: 2
Provided by: monina6
Category:

less

Transcript and Presenter's Notes

Title: Graph Theory in SAGE Emily Kirkman, Robert Miller and William Stein


1
Graph Theory in SAGE Emily Kirkman, Robert
Miller and William Stein www.sagemath.org
University of
Washington, Mathematics
Recent Improvements and Continuing Work
Introduction
Examples
SAGE (Software for Algebra and Geometry
Experimentation) is free open-source mathematics
software geared toward education and research.
The spirit of SAGE is rooted in openness and
collaboration. SAGE was started in 2005 by
William Stein and with the help of many
contributors has grown to include support for
algebra, geometry, number theory, numerical
computation, cryptography and related areas.
Database The Database includes all unlabeled
graphs with 7 or fewer vertices. It was
constructed by obtaining all graphs with
NetworkX's graph_atlas_g function, then running
inspection functions in SAGE on all 1,253 graphs.
The data is stored in a Python dictionary, with
each graph's properties contained in a SAGE Set.
Properties that can be queried include number of
edges, number of nodes, density, max degree, min
degree, diameter, radius and whether or not it's
connected. A new SQLite version of the Graph
Database is currently in progress. Via data
provided by Jason Grout (Brigham Young
University), the following additional properties
will be included for all graphs with 9 or fewer
nodes Clique Number, Containing Subgraphs,
Complement graph, Degree range, Eigenvalue of the
Laplacian Matrix, Eulerian (boolean), Girth,
Independence Number, Number of Cycles, Regular
(boolean).
Isomorphism Testing Nice (as in open source)
Isomorphism Check Engine (NICE), handles
automorphism group computation and isomorphism
checking for graphs.This is an open source
implementation of Brendan McKay's algorithm for
graph automorphism and isomorphism. McKay
released a C version of his algorithm, named
nauty (No AUTomorphisms, Yes?) under a license
that is not GPL compatible. Although the program
is open source, reading the source disallows
anyone from recreating anything similar and
releasing it under the GPL. Also, many people
have complained that the code is difficult to
understand. The first main goal of NICE was to
produce a genuinely open graph isomorphism
program, which has been accomplished. The second
goal is for this code to be understandable, so
that computed results can be trusted and further
derived work will be possible.To determine the
isomorphism type of a graph, it is convenient to
define a canonical label for each isomorphism
class- essentially an equivalence class
representative. Loosely (albeit incorrectly), the
canonical label is defined by enumerating all
labeled graphs, then picking the maximal one in
each isomorphism class. The NICE algorithm is
essentially a backtrack search. It searches
through the rooted tree of partition nests (where
each partition is equitable) for implicit and
explicit automorphisms, and uses this information
to eliminate large parts of the tree from further
searching. Since the leaves of the search tree
are all discrete ordered partitions, each one of
these corresponds to an ordering of the vertices
of the graph, i.e. another member of the
isomorphism class. Once the algorithm has
finished searching the tree, it will know which
leaf corresponds to the canonical label. In the
process, generators for the automorphism group
are also produced.


SAGE Graph Basics
The Graph Theory package included in SAGE started
development in September 2006. The initial
structure of the package was built on NetworkX, a
Python library under development at Los Alamos
that surpassed Maple and Mathematica (with
Combinatorica) in initial benchmarking.
Currently implemented in SAGE is the first-ever
open-source graph isomorphism tester, a
pre-computed database of all unlabeled graphs
with 7 or fewer vertices and their properties,
graph6 and sparse6 conversion, generators of many
named graphs or common structures with
reference-style docstrings and preset plotting
positions, a substantial optimization of the
spring-layout algorithm for graph plotting (2D)
and a module to handle lists of graphs. Data
Structure A Graph in SAGE is stored as a
dictionary of dictionaries. Each dictionary key
is a vertex label, and each key in the following
dictionary is a neighbor of that vertex. Each
vertex can have any hashable object as a label.
Each edge can have any label if specified
(default is None). SAGE graphs can be
constructed from the following inputs both
NetworkX dictionary and graph formats, graph6 or
sparse6 format, a SAGE adjacency matrix, or a
SAGE incidence matrix. Graph Generators The
Graph Generators class provides constructors of
30 named graphs and structures, reference-style
docstrings and preset plot positionings. The
graphs currently included in the Generators class
are BarbellGraph, BullGraph, CircularLadderGraph
, ClawGraph, CompleteBipartiteGraph,
CompleteGraph, CubeGraph, CycleGraph,
DiamondGraph, DodecahedralGraph, EmptyGraph,
FlowerSnark, FruchtGraph, Grid2dGraph,
HeawoodGraph, HouseGraph, HouseXGraph,
KrackhardtKiteGraph, LadderGraph, LollipopGraph,
MöbiusKantorGraph, OctahedralGraph, PathGraph,
PetersenGraph, RandomGNP, RandomGNPFast,
StarGraph, TetrahedralGraph, ThomsenGraph,
WheelGraph
Examples
SAGE Contributors Martin Albrecht (Bremen, grad
student in computer science), Nick Alexander (UC
Irvine graduate student), Jennifer Balakrishnan,
Tom Boothby (UW undergrad student employee),
Robert Bradshaw (UW grad student), Nils Bruin,
Iftikhar Burhanuddin (USC student), Wilson Cheung
(UCSD sysadmin), Craig Citro (UCLA grad student),
Timothy Clemans (high school student), Alex
Clemesha (UW employee), John Cremona (Nottingham
prof), Doug Cutrell (UCSD grad student), Didier
Deshommes, Jason Grout (recent Ph.D. BYU), Jon
Hanke (Duke postdoc), Mike Hansen (Harvey Mudd),
Bill Hart, David Harvey, Naqi Jaffery (UCSD
undergrad), David Joyner (USNA prof.), Josh
Kantor (UW grad student), Kiran Kedlaya (MIT
Prof), David Kirkby, Emily Kirkman (UW undergrad
student employee), David Kohel (Univ Sydney
prof), Jason Martin (James Madison University),
Robert Miller (UW grad student), Kate Minola
(University of Maryland), Bobby Moretti (UW
undergrad student employee, Gregg Musiker (UCSD
grad student), Andrey Novoseltsev (UW grad
student), Bill Page, Yi Qiang (UW undergrad
student employee), Dorian Raymer (UCSD), R.
Rishikesh (Univ of Waterloo), David Roe (MIT
undergrad), Kyle Schalm (UT Austin grad student),
Steven Sivek (MIT undergrad), Jaap Spies, Gonzalo
Tornaria (Montreal postdoc), Justin Walker
(retired Apple OS X kernel developer), Mark
Watkins (Bristol), Joe Wetherell (CCR), Carl
Witty (Newton Labs), Gary Zablackis
References 1 Hagberg, A., Schult, D., Swart,
P., NetworkX. Online Available
https//networkx.lanl.gov/reference/networkx/  
  2 McKay, Brendan D. Practical Graph
Isomorphism. Congressus Numerantium, Vol. 30
(1981), pp. 45-87
Write a Comment
User Comments (0)
About PowerShow.com