J'ai un graphe DAG non pondéré. Ce que je veux faire est de trouver tous les chemins d'une manière gourmande et le chemin doit contenir au moins K nœuds, et un nœud de départ donné.Recherche de trajectoires dans un graphe orienté avec approche gourmande avec au moins K nœuds et un nœud de départ donné
Y a-t-il un algorithme/une implémentation existant qui fait cela?
Par exemple, j'ai le graphique suivant:
my %graph =(36=>[31],31=>[30,22],30=>[20],22=>[20,8],20=>[1],8=>[5],5=>[2],2=>[1,20]);
Donc, si je définis K = 5 et noeud de départ 36, j'espère obtenir:
{1,20,22,31,36}
{1,20,2,5,8,22,31,36}
{1,20,30,31,36}
{1,2,5,8,22,31,36}
J'ai l'impression que le nombre de ces chemins peut croître de façon exponentielle sur le nombre de nœuds. Comment feriez-vous face à cela? – Leonid
@Leonid: Je le ferai avec heuristique, par exemple. suppression de certains nœuds avec certaines conditions (spécifique au domaine). – neversaint
Le fait de revenir en arrière ne résoudrait pas votre problème? Une approche plus rapide que je voudrais envisager est de penser au problème en termes de programmation dynamique, compte tenu des conditions spécifiques au domaine qui peuvent être appliquées. Sans ces conditions, il ne semble pas qu'il y ait quelque chose de mieux que de revenir en arrière. – Leonid