Calcul Symbolique & Graphes
Algorithmes de graphes et manipulation symbolique, en Catnip ou avec les outils Python qui savent déjà faire le gros du travail.
Pourquoi cette catégorie
SymPy traite le calcul symbolique et NetworkX fournit les métriques de réseau. A* montre l'autre versant : la
recherche, la relaxation des coûts et la reconstruction du chemin restent en Catnip, tandis que heapq fournit
seulement la file de priorité. Classification de nœuds, parcours de graphes et transformation d'expressions restent
ainsi lisibles côté Catnip.
Les formules et les graphes adorent se déguiser en jungle. Ici, on les remet en structures.
Exemples
| Fichier | Module | Description |
|---|---|---|
a_star_grid.cat |
heapq | A* sur grille, heuristique de Manhattan et comparaison avec Dijkstra |
networkx_social.cat |
networkx | Réseau social, centralité, rôles, communautés |
sheaf_gluing.cat |
— | Descente et recollement de sections sur un espace fini |
sympy_symbolic.cat |
sympy | Calcul symbolique : dérivation, intégration, équations, limites |
Exécution
catnip codex/symbolic-graphs/a_star_grid.cat
catnip codex/symbolic-graphs/networkx_social.cat
catnip codex/symbolic-graphs/sheaf_gluing.cat
catnip codex/symbolic-graphs/sympy_symbolic.cat
L'exemple A* utilise une heuristique de Manhattan admissible et cohérente pour les déplacements orthogonaux de coût unitaire. Dijkstra, obtenu avec une heuristique nulle, sert d'oracle sur le coût optimal ; le programme vérifie aussi la continuité du chemin et l'absence d'obstacles avant d'afficher la grille.
Le recollement de sections n'utilise aucun module : les ouverts sont des set, les sections des structs portant un
dictionnaire. La condition de descente est vérifiée par broadcast sur les paires d'ouverts, ce qui demande de porter ces
paires dans une struct — le broadcast traverse un tuple élément par élément, mais traite une struct comme une feuille.
Une famille contradictoire est rejetée en nommant le point et les deux valeurs en désaccord, avant toute construction.