Évolution des entreprises
Plan
Cours : S. Peyronnet
1
Comment me contacter? sylvain.peyronnet@lrde.epita.fr Structure du cours
• Complexité et algorithmique : définitions • Principales méthodes de tri • Structures de données de bases • Structures de données avancées • Principaux paradigmes algorithmiques
Support de cours Introduction to algorithms par Cormen, Leiserson, Rivest et Stein.
2
Introduction
Notion d’algorithme
3
• Selon le Petit Robert : "ensemble des règles opératoires propres à un calcul.” • Un peu plus précisement : Une séquence de pas de calcul qui prend un ensemble de valeurs comme entrée (input) et produit un ensemble de valeurs comme sortie (output). • Un algorithme résout toujours un problème de calcul. L’énoncé du problème spécifie la relation input / output souhaitée.
Notion d’algorithme
4
Exemples :
1. Multiplication Input : deux entiers a et b Output : leur produit ab Algorithme : celui de l’école 2. Plus Grand Commun Diviseur (PGCD) Input : deux entiers a et b Output : pgcd(a,b) Algorithme : celui d’Euclide 3. Primalité Input : un entier a Question : a est-il un entier premier? Cas spécial : problème de décision - output = réponse oui/non à une question.
Notion d’algorithme
5
Donner une définition précise de la notion d’algorithme est assez difficile et complexe. Il existe plusieurs définitions mathématiques depuis les années 30. exemples : • fonctions récursives • λ-calcul • machines de Turing • RAM (Random Access Machine : machine à accès aléatoire)
Notion d’algorithme
6
Fait : Toutes ces définitions sont équivalentes Thèse de Church : Tout ce qui est calculable intuitivement est aussi calculable par les objets formels ci-dessus Mais : Il existe des problèmes non calculables (indécidables) exemple : Problème de l’arrêt Input : Un algorithme (programme) A et un input I Output : A termine-t-il pour I?
Notion d’algorithme
7
preuve de l’indecidabilité (par l’absurde)