# Ticket #14859: trac_14859.patch

File trac_14859.patch, 2.2 KB (added by ncohen, 8 years ago)
• ## sage/graphs/hypergraph.py

# HG changeset patch
# User Nathann Cohen <nathann.cohen@gmail.com>
# Date 1373063764 -7200
#      Sat Jul 06 00:36:04 2013 +0200
# Node ID 13d3870bed98a2ee47fadf53f2fd0286cec5e1eb
# Parent  5d8c13e7b81a1e152855073f97a4d48ee97255d1
Implements Hypergraph.automorphism_group

diff --git a/sage/graphs/hypergraph.py b/sage/graphs/hypergraph.py
 a Hypergraphs This module consists in a very basic implementation of :class:Hypergraph, whose only current purpose is to provide method to visualize them. This is done at the moment through \LaTeX and TikZ, and can be obtained from Sage through the view command:: whose only current purpose is to observe them : it can be used to compute automorphism groups and to draw them. The latter is done at the moment through \LaTeX and TikZ, and can be obtained from Sage through the view command:: sage: H = Hypergraph([{1,2,3},{2,3,4},{3,4,5},{4,5,6}]); H Hypergraph on 6 vertices containing 4 sets tex += "\\end{tikzpicture}" return tex def automorphism_group(self): r""" Returns the automorphism group. For more information on the automorphism group of a hypergraph, see the :wikipedia:Hypergraph. EXAMPLE:: sage: H = designs.steiner_triple_system(7).blocks() sage: H = Hypergraph(H) sage: g = H.automorphism_group(); g Permutation Group with generators [(2,4)(5,6), (2,5)(4,6), (1,2)(3,4), (1,3)(5,6), (0,1)(2,5)] sage: g.is_isomorphic(groups.permutation.PGL(3,2)) True """ from sage.graphs.graph import Graph from sage.groups.perm_gps.permgroup import PermutationGroup G = Graph() domain = list(self.domain()) G.add_vertices(domain) for s in self._sets: for i in s: G.add_edge(s,i) ag = G.automorphism_group(partition=[domain,list(self._sets)]) gens =  [ [tuple(c) for c in g.cycle_tuples() if c[0] in domain] for g in ag.gens()] return PermutationGroup(gens = gens, domain = domain)