Précédent   Forum des professionnels en informatique > Autres langages > Algorithmes
Algorithmes Forum d'entraide sur l'algorithmique, l'intelligence artificielle, le traitement numérique d'images et les mathématiques. Avant de poster : Cours d'algorithmique
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Discussion fermée Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 07/02/2003, 16h49   #1
Membre du Club
 
Inscription : octobre 2002
Messages : 67
Détails du profil
Informations forums :
Inscription : octobre 2002
Messages : 67
Points : 69
Points : 69
Par défaut Cours : algorithmes et récursivité

Pour tous ceux qui s'intéressent aux algorithmes dont notamment la récursivité, je signale un lien exceptionnel à lire absolument :
http://recursivite.developpez.com

On peut y télécharger au format PDF un livre complet (145 pages!) d'Axel Chambily-Casadesus et Petrut Constantine sur le sujet :
ftp://ftp-developpez.com/recursivite/recursivite.pdf

Ce manuel traite un nombre impressionnant d'algorithmes (anagrammes, fractales, tris, arbres et graphes, dictionnaire, parcours du fou sur un échiquier, problème des tours de Hanoi, jeu du compte est bon, dérécursificaton etc..), itérativement puis grâce à la récursivité.

Cerise sur le gâteau : les sources en Delphi (mais l'algorithme est tellement bien décrit que cela devient accessoire) :
ftp://ftp-developpez.com/recursivite/fichiers/

A titre de complément au livre, voici ci-dessous deux algorithmes récursifs "génériques".
Pour les appliquer, il suffit de bien visualiser l'enchaînement des cas possibles et de bien définir la condition d'arrêt et le vecteur d'état. Les exemples du livre ont pour objectif de préciser ces données en fonction de leur contexte afin d'optimiser le traitement...


1- Algorithme de recherche à essais successifs (backtracking) : modélisation de la recherche par arbre ; arrêt à la première solution trouvée.
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Essai (Etape)
-------------
  Repeter ...
   {
    Selection etape racine du sous-arbre suivant
    Si étape acceptable alors ..
     {
      Sauvegarde du vecteur d'état
      Enregistrement étape
      Si Non_Succès (vecteur d'état) alors ..
       {
         Essai(racine_sous_arbre)
         Si Non_Succès (vecteur d'état) alors .. 
          {
            Annulation de l'enregistrement de l'étape
            Restauration du vecteur d'état
          }
       }
     }
   }
  Jusqu'à Succès (vecteur d'état) OU (plus de sous-arbres) 
Fin.
2- Algorithme de recherche à essais successifs de toutes les solutions.
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Essai (Etape)
-------------
  Pour tous les sous-arbres ..
   {
    Selection etape racine du sous-arbre suivant
    Si étape acceptable alors ..
     {
       Sauvegarde du vecteur d'état
       Enregistrement étape
       Si Non_Succès (vecteur d'état) alors ..
        {
          Essai(racine_sous_arbre)
            sinon enregistrer la solution 
         }
       Annulation de l'enregistrement de l'étape
       Restauration du vecteur d'état
     }
   }
Fin.
Voilà : en espérant que cela vous éclairera autant que moi
__________________
Consultez :
- La F.A.Q Delphi + Les Cours Delphi
- La sélection des Freewares Delphi
delphi-fan est déconnecté   Envoyer un message privé 00
Discussion fermée Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h59.


 
 
 
 
Partenaires

Hébergement Web