R1_algorithme et heuristique

January 8, 2018 | Author: Anonymous | Category: Ingénierie, Informatique, Data Structures
Share Embed Donate


Short Description

Download R1_algorithme et heuristique...

Description

Département d’Informatique Master Big Data Analytics & Smart Systems

Realisé par :

Encadré par :

Salma Largo

Pr.Meknassi

Khalid El masry

Année universitaire : 2016/2017

Introduction : Il existe de nombreux problèmes intéressants, ayant des applications pratiques importantes, par exemple, production d’itinéraire ou d’horaires de transport, placement de composants électroniques dans un circuit, conception de réseaux, etc pour lesquels il n’existe aucun algorithme connu ayant un temps d’éxecution polynomial. En d’autres mots, pour de nombreux problèmes, les seuls algorithmes connus qui permettent d’obtenir une solution optimale sont de complexité asymptotique très élevée, c’est-àdire de complexité exponentielle ou factorielle. La question qui se pose existe-t-il un algorithme optimale et qui a un temps d’éxecution polynomilale ? Dans ce travail on va essayer de montrer la différences entre les algorithmes et les heuristiques.

1) Algorithme : On désigne par algorithmique l'ensemble des activités logiques qui relèvent des algorithmes ; en particulier, en informatique, cette discipline désigne l'ensemble des règles et des techniques qui sont impliquées dans la définition et la conception des algorithmes. Le mot « algorithme » vient du nom du mathématicien Al Khwarizmi, qui, au 9ème siècle écrivit le premier ouvrage systématique sur la solution des équations linéaires et quadratiques. La notion d'algorithme est donc historiquement liée aux manipulations numériques, mais elle s'est progressivement développée pour porter sur des objets de plus en plus complexes : des textes, des images, des formules logiques, des objets physiques, etc. Un algorithme est un énoncé d'une suite d'opérations permettant de donner la réponse à un problème.  Si les opérations s'exécutent sur plusieurs processeurs en parallèle, on parle d'algorithme parallèle.  Si les tâches s'exécutent sur un réseau de processeurs on parle d'algorithme distribué.  Un algorithme qui contient un appel à lui-même est dit récursif. • Un algorithme glouton est un algorithme qui suit le principe de faire, étape par étape, un choix optimum local, dans l'espoir d'obtenir un résultat optimum global.

SALMA LARGO & KHALID ELMASRY

Page 2

 Exemple : algorithme problème des 8 reines Le problème initialement posé par K.F. Gauss en 1842 est le suivant : est-il possible de placer 8 reines sur un échiquier sans qu'aucune reine n'en menace une autre ? Sachant que une reine menace toutes les pièces de l'échiquier qui sont situées sur la même : ligne, colonne et diagonale. La solution du problème est codée sous la forme d'un tableau S de taille N qui représente le n-uplet solution, c'est-à-dire que S[i] est la colonne où il faut placer la ième reine. L'algorithme EstLibre teste si la case à la ligne ligne et à la colonne colonne n'est pas menacée par les reines précédemment placées. Il n'est pas nécessaire de disposer d'une matrice booléenne pour savoir quelles sont les cases menacées ou non au fur et mesure de l'évolution de l'algorithme, les positions des reines sur les lignes qui précèdent suffisent et cette information est dans la table S. La vérification se fait en observant qu'aucune reine précédente n'est placée sur la même ligne, sur la même colonne ou les mêmes diagonales.

L'algorithme PlacerReine est chargé de placer les reines les unes après les autres en parcourant implicitement l'arbre de décision. Contrairement à la résolution du problème des 4 reines présenté précédemment, l'algorithme ne s'arrête pas dès que les nn reines sont placées mais poursuit son investigation dans l'arbre jusqu'au bout. Les nn alternatives de placement d'une reine sur une ligne se concrétisent dans SALMA LARGO & KHALID ELMASRY

Page 3

l'algorithme par une boucle suivie d'un test pour vérifier que la case candidate n'est pas menacée. Le premier appel de l'algorithme se fait avec la valeur 1.

2) Heuristique : En optimisation combinatoire, une heuristique est un algorithme approché qui permet d’identifier en temps polynomial au moins une solution réalisable rapide, pas obligatoirement optimale. L’usage d’une heuristique est efficace pour calculer une solution approchée d’un problème et ainsi accélérer le processus de résolution exacte. Généralement une heuristique est conçue pour un problème particulier, en s’appuyant sur sa structure propre sans offrir aucune garantit quant à la qualité de la solution calculée. Les heuristiques peuvent être classées en deux catégories : – Méthodes constructives qui génèrent des solutions à partir d’une solution initiale en essayant d’en ajouter petit à petit des éléments jusqu’à ce qu’une solution complète soit obtenue, – Méthodes de fouilles locales qui démarrent avec une solution initialement complète (probablement moins intéressante), et de manière répétitive essaie d’améliorer cette solution en explorant son voisinage.

SALMA LARGO & KHALID ELMASRY

Page 4

 Exemple : La méthode de descente Pour un problème de minimisation d’une fonction f , la méthode descente peut être décrite comme suit :

L’inconvénient majeur de la méthode de descente est son arrêt au premier minimum local rencontré. Pour améliorer les résultats, on peut lancer plusieurs fois l’algorithme en partant d’un jeu de solutions initiales différentes, mais la performance de cette technique décroît rapidement. Pour éviter d’être bloqué au premier minimum local rencontré, on peut décider d’accepter, sous certaines conditions, de se déplacer d’une solution s vers une solution s 0 ∈ N(s) telle que f(s 0 ) > f(s).

Réferences : http://www.fsr.ac.ma/cours/maths/bernoussi/Cours%20C2SI.pdf http://www-poleia.lip6.fr/~fouilhoux/documents/synthese-heuristique http://www.nymphomath.ch/info/algo/algorithmique.pdf

SALMA LARGO & KHALID ELMASRY

Page 5

View more...

Comments

Copyright � 2017 NANOPDF Inc.
SUPPORT NANOPDF