combinat-0.2.10.0: Generate and manipulate various combinatorial objects.

Math.Combinat.Tableaux.GelfandTsetlin.Cone

Contents

Description

This module contains a function to generate (equivalence classes of) triangular tableaux of size k, strictly increasing to the right and to the bottom. For example

 1
2  4
3  5  8
6  7  9  10 

is such a tableau of size 4. The numbers filling a tableau always consist of an interval [1..c]; c is called the content of the tableaux. There is a unique tableau of minimal content 2k-1:

 1
2  3
3  4  5
4  5  6  7 

Let us call the tableaux with maximal content (that is, m = binomial (k+1) 2) standard. The number of such standard tableaux are

1, 1, 2, 12, 286, 33592, 23178480, ...

OEIS:A003121, "Strict sense ballot numbers", https://oeis.org/A003121.

See R. M. Thrall, A combinatorial problem, Michigan Math. J. 1, (1952), 81-88.

The number of tableaux with content c=m-d are

 d=  |     0      1      2      3    ...
-----+----------------------------------------------
k=2 |     1
k=3 |     2      1
k=4 |    12     18      8      1
k=5 |   286    858   1001    572    165     22     1
k=6 | 33592 167960 361114 436696 326196 155584 47320 8892 962 52 1 

We call these "GT simplex tableaux" (in the lack of a better name), since they are in bijection with the simplicial cones in a canonical simplicial decompositions of the Gelfand-Tsetlin cones (the content corresponds to the dimension), which encode the combinatorics of Kostka numbers.

Synopsis

# Types

type Tableau a = [[a]] Source #

A tableau is simply represented as a list of lists.

newtype Tri Source #

Set of (i,j) pairs with i>=j>=1.

Constructors

 Tri FieldsunTri :: (Int, Int)

#### Instances

Instances details
 Source # Instance details Methods(==) :: Tri -> Tri -> Bool #(/=) :: Tri -> Tri -> Bool # Source # Instance details Methodscompare :: Tri -> Tri -> Ordering #(<) :: Tri -> Tri -> Bool #(<=) :: Tri -> Tri -> Bool #(>) :: Tri -> Tri -> Bool #(>=) :: Tri -> Tri -> Bool #max :: Tri -> Tri -> Tri #min :: Tri -> Tri -> Tri # Source # Instance details MethodsshowsPrec :: Int -> Tri -> ShowS #show :: Tri -> String #showList :: [Tri] -> ShowS # Source # Instance details Methodsrange :: (Tri, Tri) -> [Tri] #index :: (Tri, Tri) -> Tri -> Int #unsafeIndex :: (Tri, Tri) -> Tri -> Int #inRange :: (Tri, Tri) -> Tri -> Bool #rangeSize :: (Tri, Tri) -> Int #unsafeRangeSize :: (Tri, Tri) -> Int # Show a => DrawASCII (TriangularArray a) Source # Instance details Methods

type TriangularArray a = Array Tri a Source #

Triangular arrays

# Content

We can flip the numbers in the tableau so that the interval [1..c] becomes [c..1]. This way we a get a maybe more familiar form, when each row and each column is strictly decreasing (to the right and to the bottom).

# Enumeration

Generates all tableaux of size k. Effective for k<=6.

Note: This is slow (it actually generates all the tableaux)