11.07.2015 Views

Alg`ebre combinatoire et effective : des graphes aux alg ... - Sage

Alg`ebre combinatoire et effective : des graphes aux alg ... - Sage

Alg`ebre combinatoire et effective : des graphes aux alg ... - Sage

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

48 3. ∗-Combinat, BOÎTE À OUTILS POUR L’EXPLORATION INFORMATIQUENous pouvons aussi juste compter ces arbres, une opération beaucoup plus rapide 2 :>> trees::count(6)42Voici un arbre aléatoire. L’affichage en ASCII 2D est loin d’être parfait, mais la structure dedonnées interne, elle, est robuste.>> trees::random(50)o|// \ \|/ | \/ \|// \ \| /// //\\\\\/\|||/ \/ \/ \/|\/|\ ||| ||Les <strong>alg</strong>orithmes sous-jacents ne sont pas spécifiques <strong>aux</strong> arbres. Ils s’appliquent à touteautre famille d’obj<strong>et</strong>s pouvant être définis récursivement par une grammaire. Voici par exemplela relation de récurrence pour le nombre d’arbres binaires. Elle est calculée automatiquementà partir de la grammaire pour ces arbres, <strong>et</strong> est exploitée pour faire du comptage efficace :>> r := binaryTrees::grammar::recurrenceRelation():>> assume(n>0):>> u(n) = factor(op(solve(r, u(n)),1))2 u(n - 1) (2 n - 1)u(n) = --------------------n + 1On reconnaît bien évidement la récurrence usuelle <strong>des</strong> nombres de Catalan.2.2. Graphes cristallins. Nous allons maintenant manipuler <strong>des</strong> <strong>graphes</strong> cristallins, commeceux de la section 2. Ce sont encore <strong>des</strong> classes <strong>combinatoire</strong>s, avec <strong>des</strong> opérations <strong>alg</strong>ébriquessupplémentaires. Nous définissons deux <strong>graphes</strong> cristallins de Kirillov-Resh<strong>et</strong>ikhin de typeA (1)2 :>> C1 := crystals::kirillovResh<strong>et</strong>ikhin(2,2,["A",2,1]):>> C2 := crystals::kirillovResh<strong>et</strong>ikhin(1,1,["A",2,1]):Leurs éléments sont <strong>des</strong> table<strong>aux</strong> semi-standard :>> C1::list()-- +---+---+ +---+---+ +---+---+ +---+---+ +---+---+ +---+---+ --| | 2 | 2 | | 2 | 3 | | 2 | 3 | | 3 | 3 | | 3 | 3 | | 3 | 3 | || +---+---+ +---+---+ +---+---+ +---+---+ +---+---+ +---+---+ || | 1 | 1 |, | 1 | 1 |, | 1 | 2 |, | 1 | 1 |, | 1 | 2 |, | 2 | 2 | |-- +---+---+ +---+---+ +---+---+ +---+---+ +---+---+ +---+---+ --sur lesquels agissent <strong>des</strong> opérateurs montants e i <strong>et</strong> <strong>des</strong>cendants f i :>> x := C1::list()[3]+---+---+| 2 | 3 |+---+---+| 1 | 2 |+---+---+>> x::e(0), x::e(1), x::e(2), x::f(0), x::f(1), x::f(2)2. En tout cas pour n grand ; mais alors, on n’obtient pas d’information fondamentale sur l’univers.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!