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.