Add détection de circuit - ordinateur
This commit is contained in:
parent
b4958338fc
commit
06b9a267d0
1 changed files with 31 additions and 1 deletions
|
@ -412,9 +412,40 @@
|
||||||
|
|
||||||
\paragraph{Méthode pour les ordinateurs}
|
\paragraph{Méthode pour les ordinateurs}
|
||||||
|
|
||||||
|
Contrairement aux humains, un ordinateur ne comprend pas un graph.
|
||||||
|
Il a besoin d'une matrice d'adjacence.
|
||||||
|
Le graphe précédent donne la matrice suivante~:
|
||||||
|
|
||||||
|
\begin{center}
|
||||||
|
\begin{tabular}{c|cccccccccccc}
|
||||||
|
& 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 & 12 \\
|
||||||
|
\hline
|
||||||
|
1 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\
|
||||||
|
2 & 0 & 0 & 0 & 1 & 0 & 0 & 1 & 1 & 0 & 0 & 0 & 1 \\
|
||||||
|
3 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 1 & 1 & 0 \\
|
||||||
|
4 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 1 & 1 \\
|
||||||
|
5 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 \\
|
||||||
|
6 & 1 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 \\
|
||||||
|
7 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 1 \\
|
||||||
|
8 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 \\
|
||||||
|
9 & 0 & 0 & 0 & 0 & 1 & 0 & 1 & 0 & 0 & 0 & 0 & 0 \\
|
||||||
|
10 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\
|
||||||
|
11 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 \\
|
||||||
|
12 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\
|
||||||
|
\hline
|
||||||
|
$d^-$ & 1 & 0 & 1 & 1 & 3 & 0 & 3 & 2 & 0 & 3 & 3 & 5 \\
|
||||||
|
\end{tabular}
|
||||||
|
\end{center}
|
||||||
|
|
||||||
|
En calculant le $d^-$ à chaque étape, on peut trouver les sommets à enlever~: il s'agit de ceux pour lesquels le $d^-$ est égal à 0.
|
||||||
|
|
||||||
|
Il suffit alors d'enlever ces sommets de la matrice et de recommencer.
|
||||||
|
La boucle s'arrête quand aucun $d^-$ est à 0, ou au maximum après $n$ fois (avec $n$ étant le nombre de sommets).
|
||||||
|
|
||||||
\subsubsection{Détection de cycle (algorithme de Rosalind-Marimond)}
|
\subsubsection{Détection de cycle (algorithme de Rosalind-Marimond)}
|
||||||
|
|
||||||
L'algorithme de Rosalind-Marimond supprime les $d^-$ (connexions entrantes) et les $d^+$ (connexions sortantes) à chaque étape.
|
L'algorithme de Rosalind-Marimond supprime les $d^-$ (connexions entrantes) et les $d^+$ (connexions sortantes) à chaque étape.
|
||||||
|
Ce qui reste à la fin est forcément un cycle, puisque tous les sommets ont à la fois des arcs entrants et sortants.
|
||||||
|
|
||||||
\subsubsection{Parcours en largeur}
|
\subsubsection{Parcours en largeur}
|
||||||
|
|
||||||
|
@ -498,5 +529,4 @@
|
||||||
|
|
||||||
\end{multicols}
|
\end{multicols}
|
||||||
|
|
||||||
|
|
||||||
\end{document}
|
\end{document}
|
||||||
|
|
Loading…
Reference in a new issue