Cluster complex (or generalized dual associahedron)¶
EXAMPLES:
A first example of a cluster complex:
sage: C = ClusterComplex(['A', 2]); C
Cluster complex of type ['A', 2] with 5 vertices and 5 facets
>>> from sage.all import *
>>> C = ClusterComplex(['A', Integer(2)]); C
Cluster complex of type ['A', 2] with 5 vertices and 5 facets
Its vertices, facets, and minimal non-faces:
sage: C.vertices()
(0, 1, 2, 3, 4)
sage: C.facets()
[(0, 1), (0, 4), (1, 2), (2, 3), (3, 4)]
sage: for F in C.facets(): F.cluster()
[(-1, 0), (0, -1)]
[(-1, 0), (0, 1)]
[(0, -1), (1, 0)]
[(1, 0), (1, 1)]
[(1, 1), (0, 1)]
sage: C.minimal_nonfaces()
[[0, 2], [0, 3], [1, 3], [1, 4], [2, 4]]
>>> from sage.all import *
>>> C.vertices()
(0, 1, 2, 3, 4)
>>> C.facets()
[(0, 1), (0, 4), (1, 2), (2, 3), (3, 4)]
>>> for F in C.facets(): F.cluster()
[(-1, 0), (0, -1)]
[(-1, 0), (0, 1)]
[(0, -1), (1, 0)]
[(1, 0), (1, 1)]
[(1, 1), (0, 1)]
>>> C.minimal_nonfaces()
[[0, 2], [0, 3], [1, 3], [1, 4], [2, 4]]
We can do everything we can do on simplicial complexes, e.g. computing its homology:
sage: C.homology()
{0: 0, 1: Z}
>>> from sage.all import *
>>> C.homology()
{0: 0, 1: Z}
AUTHORS:
- Christian Stump (2011) Initial version 
- class sage.combinat.cluster_complex.ClusterComplex(W, k, coxeter_element, algorithm)[source]¶
- Bases: - SubwordComplex- A cluster complex (or generalized dual associahedron). - The cluster complex (or generalized dual associahedron) is a simplicial complex constructed from a cluster algebra. Its vertices are the cluster variables and its facets are the clusters, i.e., maximal subsets of compatible cluster variables. - The cluster complex of type \(A_n\) is the simplicial complex with vertices being (proper) diagonals in a convex \((n+3)\)-gon and with facets being triangulations. - The implementation of the cluster complex depends on its connection to subword complexes, see [CLS2014]. Let \(c\) be a Coxeter element with reduced word \({\bf c}\) in a finite Coxeter group \(W\), and let \({\bf w}_\circ\) be the \(c\)-sorting word for the longest element \(w_\circ \in W\). - The - multi-cluster complex\(\Delta(W,k)\) has vertices in one-to-one correspondence with letters in the word \(Q = {\bf c^k w}_\circ\) and with facets being complements in \(Q\) of reduced expressions for \(w_\circ\).- For \(k = 1\), the multi-cluster complex is isomorphic to the cluster complex as defined above. - EXAMPLES: - A first example of a cluster complex: - sage: C = ClusterComplex(['A', 2]); C Cluster complex of type ['A', 2] with 5 vertices and 5 facets - >>> from sage.all import * >>> C = ClusterComplex(['A', Integer(2)]); C Cluster complex of type ['A', 2] with 5 vertices and 5 facets - Its vertices, facets, and minimal non-faces: - sage: C.vertices() (0, 1, 2, 3, 4) sage: C.facets() [(0, 1), (0, 4), (1, 2), (2, 3), (3, 4)] sage: C.minimal_nonfaces() [[0, 2], [0, 3], [1, 3], [1, 4], [2, 4]] - >>> from sage.all import * >>> C.vertices() (0, 1, 2, 3, 4) >>> C.facets() [(0, 1), (0, 4), (1, 2), (2, 3), (3, 4)] >>> C.minimal_nonfaces() [[0, 2], [0, 3], [1, 3], [1, 4], [2, 4]] - We can do everything we can do on simplicial complexes, e.g. computing its homology: - sage: C.homology() {0: 0, 1: Z} - >>> from sage.all import * >>> C.homology() {0: 0, 1: Z} - We can also create a multi-cluster complex: - sage: ClusterComplex(['A', 2], k=2) Multi-cluster complex of type ['A', 2] with 7 vertices and 14 facets - >>> from sage.all import * >>> ClusterComplex(['A', Integer(2)], k=Integer(2)) Multi-cluster complex of type ['A', 2] with 7 vertices and 14 facets - REFERENCES: - Element[source]¶
- alias of - ClusterComplexFacet
 - cyclic_rotation()[source]¶
- Return the operation on the facets of - selfobtained by the cyclic rotation as defined in [CLS2014].- EXAMPLES: - sage: ClusterComplex(['A', 2]).cyclic_rotation() <function ...act at ...> - >>> from sage.all import * >>> ClusterComplex(['A', Integer(2)]).cyclic_rotation() <function ...act at ...> 
 
- class sage.combinat.cluster_complex.ClusterComplexFacet(parent, positions, facet_test=True)[source]¶
- Bases: - SubwordComplexFacet- A cluster (i.e., a facet) of a cluster complex. - cluster()[source]¶
- Return this cluster as a set of almost positive roots. - EXAMPLES: - sage: C = ClusterComplex(['A', 2]) sage: F = C((0, 1)) sage: F.cluster() [(-1, 0), (0, -1)] - >>> from sage.all import * >>> C = ClusterComplex(['A', Integer(2)]) >>> F = C((Integer(0), Integer(1))) >>> F.cluster() [(-1, 0), (0, -1)] 
 - product_of_upper_cluster()[source]¶
- Return the product of the upper cluster in reversed order. - EXAMPLES: - sage: C = ClusterComplex(['A', 2]) sage: for F in C: F.product_of_upper_cluster().reduced_word() [] [2] [1] [1, 2] [1, 2] - >>> from sage.all import * >>> C = ClusterComplex(['A', Integer(2)]) >>> for F in C: F.product_of_upper_cluster().reduced_word() [] [2] [1] [1, 2] [1, 2] 
 - upper_cluster()[source]¶
- Return the part of the cluster that contains positive roots. - EXAMPLES: - sage: C = ClusterComplex(['A', 2]) sage: F = C((0, 1)) sage: F.upper_cluster() [] - >>> from sage.all import * >>> C = ClusterComplex(['A', Integer(2)]) >>> F = C((Integer(0), Integer(1))) >>> F.upper_cluster() []