#18618: sandpile revisions
-------------------------------------+-------------------------------------
Reporter: dperkinson | Owner:
Type: enhancement | Status: needs_work
Priority: major | Milestone: sage-6.8
Component: graph theory | Resolution:
Keywords: sandpile | Merged in:
Authors: David Perkinson | Reviewers:
Report Upstream: N/A | Work issues:
Branch: | Commit:
u/dperkinson/sandpile_revisions | fc12fc271154416d91afd8f12b6f919e7e7c987a
Dependencies: | Stopgaps:
-------------------------------------+-------------------------------------
Description changed by dperkinson:
Old description:
> Summary of sandpile.py changes from version 2.3 to 2.4
> June 11, 2015
>
> 1. Eliminated dependence on 4ti2, substituting the use of Polyhedron
> methods. Thus, no optional packages are necessary.
> 2. Fixed bug in Sandpile.__init__ so that now multigraphs are handled
> correctly.
> 3. Created `sandpiles` to handle examples of Sandpiles in analogy with
> `graphs`, `simplicial_complexes`, and `polytopes`. In the process, we
> implemented a much faster way of producing the sandpile grid graph.
> 4. Added support for open and closed sandpile Markov chains.
> 5. Added support for Weierstrass points.
> 6. Implemented the Cori-Le Borgne algorithm for computing ranks of
> divisors on complete graphs.
>
> NEW METHODS
>
> **Sandpile**
> * avalanche_polynomial -- the avalance polynomial
> * genus -- genus of the sandpile graph (undirected
> case only)
> * group_gens -- minimal set of generators for the
> sandpile group
> * help -- list of Sandpile-specific methods
> * jacobian_representatives -- representatives for elements of the
> Jacobian group
> * markov_chain -- open and closed sandpile Markov chain
> * picard_representatives -- representatives for elements of the
> Picard group
> * smith_form -- Smith normal from for transpose of the
> Laplacian
> * stable_configs -- iterator for all stable configurations
> * stationary_density -- the stationary density for the closed
> sandpile Markov chain
> * tutte_polynomial -- Tutte polynomial of underlying graph
> (undirected case only)
>
> **!SandpileConfig**
> * burst_size -- statistic for sandpile Markov chain
> * help -- list of !SandpileConfig methods
>
> **!SandpileDivisor**
> * help -- list of !SandpileDivisor methods
> * is_linearly_equivalent -- Is the divisor linearly equivalent to a
> given divisor?
> * is_q_reduced -- Is the divisor q-reduced (q=sink)
> * is_weierstrass_pt -- Is the given vertex a Weierstrass pt for
> the divisor?
> * polytope -- polytope determining the complete linear
> system
> * polytope_integer_pts -- integer points inside the divisor's
> polytope
> * q_reduced -- linearly equiv. q-reduced divisor
> * rank -- the rank of the divisor
> * simulate_threshold -- simulate closed sandpile Markov chain
> until threshold
> * stabilize -- stabilize, if possible
> * weierstrass_gap_seq -- the Weierstrass gap sequence for the
> given vertex
> * weierstrass_pts -- all Weierstrass points (vertices) for the
> divisor
> * weierstrass_rank_seq -- the rank sequence at a Weierstrass point
>
> DEPRECATED
> * !SandpileDivisor.linear_system -- uses 4ti2. Replaced by
> !SandpileDivisor.polytope.
> * !SandpileDivisor.r_of_D -- uses 4ti2. Replaced by
> !SandpileDivisor.rank.
> * sandlib method -- replaced by `sandpiles`
> * complete_sandpile -- replaced by sandpiles.Complete
> * grid_sandpile -- replaced by sandpiles.Grid
> * triangle_sandpile -- Not used much. Will still be able to import.
> * aztec_sandpile -- Not used much. Will still be able to import.
> * random_digraph -- Duplicates methods from graphs and digraphs, more or
> less.
> * random_DAG -- Not used much. Will still be able to import.
> * random_tree -- Duplicates method from graphs and digraphs, more or
> less.
> * glue_graphs -- Not used much. Will still be able to import.
> * admissible_partitions -- Not used much. Will still be able to import.
> * firing_vector -- Replaced by !SandpileDivisor.is_linearly_equivalent.
> * min_cycles -- Not used much. Will still be able to import.
>
> MINOR CHANGES
> * The `sink` argument to Sandpile.__init__ now defaults to the first
> vertex.
> * A !SandpileConfig or !SandpileDivisor may now be multiplied by an
> integer.
> * Sped up __add__ method for !SandpileConfig and !SandpileDivisor.
> * Enhanced string representation of a Sandpile (via _repr_ and the
> `name` method).
> * Recurrents for complete graphs and cycle graphs are computed more
> quickly.
> * The stabilization code for !SandpileConfig has been made more
> efficient.
> * Added optional probability distribution arguments to `add_random`
> methods.
New description:
Summary of sandpile.py changes from version 2.3 to 2.4
June 11, 2015
1. Eliminated dependence on 4ti2, substituting the use of Polyhedron
methods. Thus, no optional packages are necessary.
2. Fixed bug in Sandpile.__init__ so that now multigraphs are handled
correctly.
3. Created `sandpiles` to handle examples of Sandpiles in analogy with
`graphs`, `simplicial_complexes`, and `polytopes`. In the process, we
implemented a much faster way of producing the sandpile grid graph.
4. Added support for open and closed sandpile Markov chains.
5. Added support for Weierstrass points.
6. Implemented the Cori-Le Borgne algorithm for computing ranks of
divisors on complete graphs.
NEW METHODS
**Sandpile**
* avalanche_polynomial -- the avalance polynomial
* genus -- genus of the sandpile graph (undirected
case only)
* group_gens -- minimal set of generators for the sandpile
group
* help -- list of Sandpile-specific methods
* jacobian_representatives -- representatives for elements of the
Jacobian group
* markov_chain -- open and closed sandpile Markov chain
* picard_representatives -- representatives for elements of the Picard
group
* smith_form -- Smith normal from for transpose of the
Laplacian
* stable_configs -- iterator for all stable configurations
* stationary_density -- the stationary density for the closed
sandpile Markov chain
* tutte_polynomial -- Tutte polynomial of underlying graph
(undirected case only)
**!SandpileConfig**
* burst_size -- statistic for sandpile Markov chain
* help -- list of !SandpileConfig methods
**!SandpileDivisor**
* help -- list of !SandpileDivisor methods
* is_linearly_equivalent -- Is the divisor linearly equivalent to a
given divisor?
* is_q_reduced -- Is the divisor q-reduced (q=sink)
* is_weierstrass_pt -- Is the given vertex a Weierstrass pt for
the divisor?
* polytope -- polytope determining the complete linear
system
* polytope_integer_pts -- integer points inside the divisor's
polytope
* q_reduced -- linearly equiv. q-reduced divisor
* rank -- the rank of the divisor
* simulate_threshold -- simulate closed sandpile Markov chain
until threshold
* stabilize -- stabilize, if possible
* weierstrass_gap_seq -- the Weierstrass gap sequence for the given
vertex
* weierstrass_pts -- all Weierstrass points (vertices) for the
divisor
* weierstrass_rank_seq -- the rank sequence at a Weierstrass point
DEPRECATED
* !SandpileDivisor.linear_system -- uses 4ti2. Replaced by
!SandpileDivisor.polytope.
* !SandpileDivisor.r_of_D -- uses 4ti2. Replaced by
!SandpileDivisor.rank.
* sandlib method -- replaced by `sandpiles`
* complete_sandpile -- replaced by sandpiles.Complete
* grid_sandpile -- replaced by sandpiles.Grid
* triangle_sandpile -- Not used much. Will still be able to import.
* aztec_sandpile -- Not used much. Will still be able to import.
* random_digraph -- Duplicates methods from graphs and digraphs, more or
less.
* random_tree -- Duplicates method from graphs and digraphs, more or
less.
* glue_graphs -- Not used much. Will still be able to import.
* admissible_partitions -- Not used much. Will still be able to import.
* firing_vector -- Replaced by !SandpileDivisor.is_linearly_equivalent.
* min_cycles -- Not used much. Will still be able to import.
MINOR CHANGES
* The `sink` argument to Sandpile.__init__ now defaults to the first
vertex.
* A !SandpileConfig or !SandpileDivisor may now be multiplied by an
integer.
* Sped up __add__ method for !SandpileConfig and !SandpileDivisor.
* Enhanced string representation of a Sandpile (via _repr_ and the `name`
method).
* Recurrents for complete graphs and cycle graphs are computed more
quickly.
* The stabilization code for !SandpileConfig has been made more
efficient.
* Added optional probability distribution arguments to `add_random`
methods.
--
--
Ticket URL: <http://trac.sagemath.org/ticket/18618#comment:30>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica,
and MATLAB
--
You received this message because you are subscribed to the Google Groups
"sage-trac" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/d/optout.