From 11b2b9f93556ac1adacdf7291d9a936b820707c2 Mon Sep 17 00:00:00 2001 From: gwen Date: Fri, 21 Apr 2017 10:50:53 +0200 Subject: [PATCH] =?UTF-8?q?exemples=20d'algorithmes=20sur=20des=20structur?= =?UTF-8?q?es=20de=20donn=C3=A9es=20simples?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- algorithmique/cours/apercu.txt | 42 +++++++++++++++++++++++++++++++ algorithmique/cours/donnees.txt | 19 +++++++------- algorithmique/cours/programme.txt | 2 +- 3 files changed, 52 insertions(+), 11 deletions(-) diff --git a/algorithmique/cours/apercu.txt b/algorithmique/cours/apercu.txt index 8d28bfa..02ebdb0 100644 --- a/algorithmique/cours/apercu.txt +++ b/algorithmique/cours/apercu.txt @@ -18,3 +18,45 @@ Exemple : les algorithmes de tri, de recherche dans un arbre, un graphe... - la cryptologie - les stratégies de jeux + +Tirés du monde réel +-------------------- + +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. + +Résolution par + +- algorithme de parcours de graphes + +- 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} diff --git a/algorithmique/cours/donnees.txt b/algorithmique/cours/donnees.txt index b34b259..500488e 100644 --- a/algorithmique/cours/donnees.txt +++ b/algorithmique/cours/donnees.txt @@ -73,20 +73,19 @@ Modification de la structure de données .. code-block:: python - >>> l = [('host1', '10.1.2.3', '6E:FF:56:A2:AF:18'), ('host2', '10.1.2.4', '6E:FF:56:A2:AF:17'), ('host3', '10.1.2.5', '6E:FF:56:A2:AF:19')] + >>> l = [('host1', '10.1.2.3', '6E:FF:56:A2:AF:18'), ('host3', '10.1.2.5', '6E:FF:56:A2:AF:19')] >>> result = [] >>> for hostname, ip, macaddress in l: ... result.append(dict(hostname=hostname, ip=ip, macaddress=macaddress)) ... >>> result [{'hostname': 'host1', 'ip': '10.1.2.3', 'macaddress': '6E:FF:56:A2:AF:18'}, - {'hostname': 'host2', 'ip': '10.1.2.4', 'macaddress': '6E:FF:56:A2:AF:17'}, {'hostname': 'host3', 'ip': '10.1.2.5', 'macaddress': '6E:FF:56:A2:AF:19'}] >>> Structures de données complexes -================================ +------------------------------- - graphes - arbres @@ -107,7 +106,7 @@ Structures de données complexes pire cas. Les types produits -~~~~~~~~~~~~~~~~~~~~ +------------------- Les types construits permettent de structurer l’information. @@ -157,7 +156,7 @@ est renvoyée. - : int list = [4 ;1 ;5 ;8 ;1] Algorithme de la longueur d'une liste -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +-------------------------------------- .. code-block:: ocaml @@ -170,7 +169,7 @@ Cette fonction est prédéfinie en Ocaml : `List.length` Algorithmes de tri -~~~~~~~~~~~~~~~~~~~ +------------------ On désigne par "tri" l'opération consistant à ordonner un ensemble d'éléments en fonction de clés sur lesquelles est définie une relation d'ordre. @@ -179,8 +178,8 @@ Ils sont fondamentaux dans certains domaines (exemples : map-reduce en database L'étude du tri est également intéressante en elle-même, c'est un des domaines de l'algorithmique très étudié et connu. -Algorithme de tri par insertion -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Tri par insertion +~~~~~~~~~~~~~~~~~~ Cet algorithme de tri suit de manière naturelle la structure récursive des listes. Soit l une liste à trier : @@ -203,8 +202,8 @@ Description de l'algorithme # inserer 5 [3 ;7 ;10];; - : int list = [3 ; 5 ; 7 ; 10] -Algorithme de tri rapide -~~~~~~~~~~~~~~~~~~~~~~~~ +Tri rapide +~~~~~~~~~~~~ soit une liste l à trier : diff --git a/algorithmique/cours/programme.txt b/algorithmique/cours/programme.txt index 0a528d6..64ee270 100644 --- a/algorithmique/cours/programme.txt +++ b/algorithmique/cours/programme.txt @@ -205,7 +205,7 @@ Il est possible de communiquer de la manière suivante avec un programme : Exemple de lecture d'une entrée utilisateur -.. block-code:: python +.. code-block:: python # coding: utf-8 prenom = raw_input("quel est ton prénom ? \n")