Cauchemar d'algorithme : une solution O(EV+VlogVlogK) pour compter les chemins de longueur K
Cet article aborde un problème algorithmique apparemment simple : trouver le nombre de chemins de longueur K entre les nœuds A et B dans un graphe orienté non pondéré. En commençant par le BFS de base et la programmation dynamique, l’auteur se penche sur des techniques plus avancées, notamment l’exponentiation matricielle, les récurrences linéaires, les fonctions génératrices, les polynômes annulateurs et l’algorithme de Berlekamp-Massey. Le résultat est une solution impressionnante O(EV+VlogVlogK), significativement plus rapide que les approches traditionnelles O(EK) ou O(V³logK). L’auteur explique clairement les principes et les connexions entre ces algorithmes, soulignant la complexité du problème et l’élégance de la solution.