Aperçu des algorithmes fondamentaux =================================== Les algorithmes sont partout. Absolument partout aujourd'hui. Il n'est pas un domaine de nos activités qui ne soit liés à tel ou tel algorithme. En mathématiques ----------------- - l'algèbre (étude des structures de données) - l'arithmétique modulaire (théorie des nombres) - la géométrie (affine, algébrique, invariants topologiques...) - les diagrammes (diagrammes de Venn...) - les colorisation d'une carte - comportements stochastiques En informatique ---------------- - les algorithmes sur la manipulation des structures de données Exemple : les algorithmes de tri, de recherche dans un arbre... - les parcours de graphes (chemins le plus court, voyageur de commerce...) - la cryptologie (code gray) - les stratégies de jeux Tirés du monde réel -------------------- - les jeux (casse-tête, dominos, échiquiers...) - énigmes, logique et paradoxes - problèmes de raisonnements. Il n'existe pas beaucoup de méthodes ou de moyens simples pour traiter et résoudre les énoncés de logique de raisonnement. - La "marche de l'ivrogne" : processus de progression discrète (pas à pas) dont l'étape suivante est lié à l'état présent et pas du tout à la mémoire du passé proche. Il revêt seulement un caractère de type probabilité (stochastique) dit markovien. - algorithmes de colonies de fourmis (chemins optimal pour arriver à la nourriture) Le voyageur de commerce ~~~~~~~~~~~~~~~~~~~~~~~~ Le problème du voyageur de commerce, consiste en la recherche d’un trajet minimal permettant à un voyageur de visiter n villes. En règle générale on cherche à minimiser le temps de parcours total ou la distance totale parcourue. Il suffit de construire tous les chemins possibles et de calculer leurs longueurs. Avec ``n`` villes il y a ``(n-1)!/2`` chemins possibles. Avec 36 villes on trouve : 5166573983193072464833325668761600000000, si le nombre de villes augmente, ça devient vite rédibitoire. Résolution par - algorithme de parcours de graphes - algorithme glouton - algorithmes génétiques Les algorithmes génétiques s’appuient sur un principe de sélection des individus d’une population qui présen- tent des caractéristiques se rapprochant au mieux de ce que l’on recherche; cette population évoluant par ailleurs selon des critères d’évolution génétique à choisir. Dans le contexte du problème du voyageur de commerce, un individu est une tournée, un chemin et une population un ensemble de tournées. Il s’agit maintenant de dé...nir un critère de sélection ainsi que des règles d’évolution de la population. - approches métaheuristiques (exemples: colonies de fourmis) Exemple de résolution .. raw:: latex \begin{algorithm} \caption{Algorithme du voyageur de commerce}\label{commerce} \begin{algorithmic}[1] \BState \emph{Données} : $L$ \Comment{Liste des villes à parcourir avec les distances entre les villes} \BState \emph{Données} : $L'$ \Comment{Liste du parcours des villes à effectuer} \State \emph{début} \BState ... \State \emph{fin} \end{algorithmic} \end{algorithm}