S'il vous plaît aidez-moi un algorithme pour le problème suivant -algorithme pour un problème de graphe orienté
Compte tenu d'une collection de faits, nous aimerions vous débarrasser de redondance autant que possible. Les faits impliqués dans ce problème sont des membres d'une relation transitive entre majuscules. Donc chaque fait est une paire de lettres majuscules comme AB signifiant que A est apparenté à B. Une lettre peut ou non être liée à elle-même, mais la transitivité est vraie: si A est lié à B et B est lié à C alors on peut inférer que A est lié à C. Créer une classe FactCount qui contient une méthode minFacts qui reçoit une chaîne [] connue et qui renvoie la taille du plus petit ensemble de faits qui nous permettra de déduire tout (et seulement ces choses) cela peut être déduit des faits contenus dans connu.
Chaque élément de connu contiendra 1 ou plusieurs faits séparés par un seul espace. Le plus petit ensemble de faits peut contenir des faits qui peuvent être déduits de ceux qui sont connus mais qui n'y sont pas contenus.
Par exemple:
{ "AB AC CA AA BC", "AD"}
Retours: 4
AB, CA, BC et AD nous permettent de déduire les deux AA (AB, BC, CA donne AA par transitivité) et AC (AB, BC donne AC par transitivité), et il n'y a pas de sous-ensemble plus petit qui nous permet d'inférer tous les faits connus.
P.S - Ce n'est PAS un devoir. Juste un problème que j'ai trouvé en ligne et j'ai été incapable de résoudre pendant des heures ...
Impossible de trouver sur Google. – Pranav
Si vous travaillez en python, il y a NetworkX. C'est une bibliothèque très complète. http://networkx.lanl.gov/reference/generated/networkx.mst.html#networkx.mst –
Pour l'algorithme, il suffit de copier ce qu'ils utilisent;) –