Ce code a pour but d'implémenter les concepts décrits dans mon rapport de stage, ainsi que certains concepts annexes définis par de multiples chercheurs sur le sujet des partitions non-croisées et des fonctions de parking.
Pour chaque partie, lancer les tests depuis le dossier code
par la commande sage ../tests/tests_XXX.sage
.
Pour obtenir les posets exemples, utiliser la commande sage posets.sage
depuis le dossier code
.
Les résultats s'afficheront dans le dossier posets
.
Rapport de stage : LaTeX/latex.pdf
.
code/perm.sage
tests/tests_perm.sage
- Test de cyclicité (représente une bijection circulaire)
- Découpage d'une permutation en ses blocs (cycles)
- Composition de 2 permutations
- Génération de la permutation inverse
- Généraiton des permutations de {1, ..., n}
- Génération du code d'une permutation (nombre minimal de transpositions dans sa décomposition)
- Relation de couverture sur les codes des permutations
code/pnc.sage
tests/tests_pnc.sage
- Génération des partitions non-croisées de {1, ..., n}
- Relation de couverture
- Génération de la permutation associée à une partition non-croisée
- Complément de Kreweras
- Minimums du complément de Kreweras
- Tailles des blocs du complément de Kreweras
- Génération du label d'une relation de couverture
- Génération de la rotation d'une partition non-croisée
- Génération de la rotation inverse d'une partition non-croisée ( = double application de Kreweras )
code/dpnc.sage
tests/tests_dpnc.sage
pi
: partition non-croisée de {1, ..., n}rho
: partition de {1, ..., n}lam
: bijection entre les blocs de pi et les blocs de rho tq 2 blocs associés sont de même cardinal
- Calcul du rang d'une 2-partition non-croisée (#pi - 1)
- Générations des 2-partitions non-croisées de {1, ..., n}
- Relation de couverture
- Application d'une permutation à une 2-partition non-croisée
code/epnc.sage
tests/tests_epnc.sage
pi
: partition non-croisée de {1, ..., n}sig
: permutation de {1, ..., n} MINIMALE dans l'ordre lexicographique
Cette forme est équivalente aux 2-partitions non-croisées
- Calcul du rang d'une 2-partition non-croisée adaptée (#pi - 1)
- Génération des 2-partitions non-croisées adaptées de {1, ..., n}
- Relation de couverture
- Bijection entre EPNC et DPNC
- Génération du label d'une relation de couverture
- Relation d'ordre sur les labels couvrant une EPNC
code/fp.sage
tests/tests_fp.sage
- Test de primitivité ( = fonction de parking non-décroissante)
- Calcul du rang d'une fonction de parking
- Génération des fonctions de parking de longueur n
- Génération des fonctions de parking primitives de longueur n
- Bijection entre partitions non-croisées et fonctions de parking primitives
- Application d'une permutation à une fonction de parking
- Bijection entre fonctions de parking et 2-partitions non-croisées
- Relation de couverture (basée sur la bijection ci-dessus)
code/fptree.sage
tests/tests_fptree.sage
- Génération des arbres de parking de {1, ..., n}
- Affichage d'un arbre de parking
- Parcours d'un arbre de parking (préfixe)
- Bijection entre fonctions de parking et arbres de parking
code/cfp.sage
tests/tests_cfp.sage
- Génération des k-chaînes de fonctions de parking
code/ddyck.sage
tests/tests_ddyck.sage
W
: mot de Dyck de longueur 2nlabels
: permutation de {1, ..., n}
- Affichage d'un chemin de Dyck décoré
- Génération de la liste correspondant à un chemin de Dyck décoré
- Bijection entre fonctions de parking et chemins de Dyck décorés
- Relation de couverture
code/posets.sage
- Génération de posets exemples des objets ci-avant et ci-après par leurs relations de couverture
code/cycle.sage
tests/tests_cycle.sage
M
: ensemblec
: bijection cyclique sur Mm
: #M
- Génération de la trace d'un cycle sur A inclus dans M
- Calcul de la distance entre 2 points du cycle
- Tests de croisement entre paires et parties d'une partition de M
- Test d'adjacence de deux parties d'une partition de M
- Test de correspondance d'un cycle à une partition non-croisée
- Génération de la partition non-croisée la plus fine possible à partir d'une partition quelconque
- Tests de serrage / dilution
- Composition d'un cycle et d'une partition de M
- Génération de la lacune d'un cycle par A inclus dans M
- Générations des lacunes d'un cycle par une partition de M
- Génération de l'arc d'un cycle par A inclus dans M
- Génération des arcs d'un cycle par une partition de M
- Génération de la trace des arcs d'un cycles
code/rdyck.sage
tests/tests_rdyck.sage
a
etb
premiers entre eux- pente
y = a/b x
p
: pas 0 (Est) ou 1 (Nord)
- Génération de la réprésentation d'un chemin de Dyck rationnel sous forme de liste
- Calcul de la liste des coordonnées d'un chemin de Dyck rationnel
- Affichage d'un chemin de Dyck rationnel
- Génération des a, b - chemins de Dyck rationnels
- Calcul des parcours verticaux d'un chemin de Dyck rationnel
- Calcul des vallées d'un chemin de Dyck rationnel (angles droits orientés Nord-Ouest)
- Calcul des lasers d'un chemin de Dyck rationnel ( segments parallèles à l'axe partant d'une vallée)
- Calcul des hauteurs de chaque pas Est d'un chemin de Dyck rationnel
- Génération des partitions non-croisées P et Q correspondant à un chemin de Dyck rationnel
- Calcul du chemin transposé
- Génération de la rotation d'un chemin de Dyck rationnel
code/abpnc.sage
tests/tests_abpnc.sage
a
etb
premiers entre eux|P| = |Q| = b - 1
P
etQ
: pnc mutuellement non-croisées
- Test de non-croisement mutuel entre deux partitions non-croisées
- Génération des paires de pnc mutuellement non-croisées de {1, ..., a}
- Génération des a, b - partitions non-croisées rationnelles
- Génération de la rotation d'une partition non-croisée rationnelle
- Calcul de la séquence de rang d'une partition non-croisée rationnelle
- Génération du chemin de Dyck rationnel associé à une partition non-croisée raitonnelle
code/abfp.sage
tests/tests_abfp.sage
a
etb
premiers entre euxP
etQ
mutuellement non-croiséesfP
: bloc deP
-> sous-ensemble de {1, ..., a}fQ
: bloc deQ
-> sous-ensemble de {1, ..., a}fP (P) + fQ (Q)
= {1, ..., a}(P, Q)
:a, b
- partition non-croisée- |
fP (B)
| = rang (B
) - |
fQ (B)
| = rang (B
)
- Générations des partitions de {1, ..., a} de taille k AVEC parts vides
- Génération des a, b - fonctions de parking
code/abfpp.sage
tests/tests_abfpp.sage
a
etb
premiers entre euxp'
=p
triée = (b1, ..., ba)bi <= (a / b) (i - 1) + 1
- Générations des a, b - fonctions de parking à pente rationnelle
- Application d'une permutation à une fonction de parking à pente rationnelle
- Bijection entre fonctions de parking à pente rationnelle et fonctions de parking rationnelle
- Génération du chemin de Dyck rationnel associé à une fonction de parking à pente rationnelle (+ labels)
code/eff_pnc.sage
tests/tests_eff_pnc.sage
sizes
= dictionnaire où un bloc est représenté parmin : taille
- Bijection entre partitions non-croisées et partitions non-croisées efficaces
- Relation de couverture
- Génération du complément de Kreweras (en passant par la partition non-croisée)
code/edelman.sage
tests/tests_edelman.sage
- Calcul de sigma_b (m)
- Tri selon sigma_b (m)
- Calcul de sigma^_b (m)
- Bon parenthésage
- PNC associée à un bon parenthésage
- Génération des PNC à k blocs
- Bijection entre couples de parenthésages (L, R) et couples (P, b) avec P une partition, et b son premier élément pour le tri
- Calcul du rang
- Relation de couverture
- Génération et comptage des chaînes strictes pour une liste de rangs donnée
- Génération et comptage des chaînes maximales
- Comptage des chaînes faibles de longueur donnée
- Test de k-divisibilité
- Rang par k-divisibilité
- Génération des PNC k-divisibles de {1, ..., m * k} à h blocs
- Comptage des PNC k-divisibles de {1, ..., m * k} à h blocs
- Passage d'une PNC sur {1, ..., m} à une PNC k-divisible sur {1, ..., k*m}
- Génération et comptage des chaînes k-divisibles strictes pour une liste de rangs donnée
- Génération et comptage des chaînes k-divisibles maximales
- Comptage des chaînes k-divisibles faibles de longueur donnée
code/edelman_two.sage
tests/tests_edelman_two.sage
- Relation de couverture
- Génération et comptage des 2-PNC de {1, ..., n}
- Génération des 2-PNC couvertes par une 2-PNC donnée
- Calcul du type d'une 2-PNC
- Génération et comptage des 2-PNC d'un type donné
- Calcul du type d'une partition et d'une PNC
- Génération et comptage des PNC d'un type donné
- Génération et comptage des partitions d'un type donné
- Comptage des 2-PNC en passant par les PNC et partitions
- Comptage des chaînes faibles de longueur donnée
code/my_primitive_ab_cover.sage
tests/tests_my_primitive_ab_cover.sage
- Ma relation de couverture pour les fonctions de parking rationnelles primitives
- Ma relation de couverture pour les chemins de Dyck rationnels
code/my_ab_cover.sage
tests/tests_my_ab_cover.sage
- Ma relation de couverture pour les fonctions de parking rationnelles
- Ma relation de couverture pour les chemins de Dyck rationnels décorés