Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
avancée
(suite)
Ahmed Harbaoui
Harbaoui.pro@gmail.com
1.3 Autres modèles de calcul
Il existe d'autres modèles de calcul permettant d’aborder sous un autre
angle les problèmes de décision et plus généralement l'informatique
théorique :
- Automates de Markov,
- Circuits booléens ou digitaux,
- Machine de Turing à plusieurs rubans
Pas de MTU unique ! Mais sont toutes équivalentes à une constante près.
Exemple 2:
somme = 0;
for (i=1; i<=n; i++)
somme += n;
Temps: O(n)
Exemple 3:
somme = 0;
for (j=1; j<=n; j++)
for (i=1; i<=n; i++)
somme++;
for (k=0; k<n; k++)
A[k] = k;
Temps: O(1) + O(n2) + O(n) = O(n2)
Exemple 4:
somme = 0;
for (i=1; i<=n; i++)
for (j=1; j<=i; j++)
somme++;
Temps: O(1) + O(n2) = O(n2)
Exemple 5:
somme = 0;
for (k=1; k<=n; k*=2)
for (j=1; j<=n; j++)
somme++;
Temps: O(nlog n)
Exemples : Résumé
O(1) : complexité constante, pas d'augmentation du temps d'exécution quand
le paramètre croit
O(log(n)) : complexité logarithmique, augmentation très faible du temps
d'exécution quand le paramètre croit. Exemple : algorithmes qui décomposent
un problème en un ensemble de problèmes plus petits (dichotomie).
O(n) : complexité linéaire, augmentation linéaire du temps d'exécution quand
le paramètre croit (si le paramètre double, le temps double). Exemple :
algorithmes qui parcourent séquentiellement des structures linéaires.
O(nlog(n)) : complexité quasi-linéaire, augmentation un peu supérieure . O(n).
Exemple : algorithmes qui décomposent un problème en d'autres plus
simples, traités indépendaments et qui combinent les solutions partielles pour
calculer la solution générale.
Exemples : Résumé
-Z ZLZaZ ZcZlZaZsZsZeZ ZNZPZ ZeZsZtZ ZfZoZrZmZéeZ ZdZeZsZ ZlZaZnZgZaZgZeZsZ ZrZeZcZoZnZnZuZsZ Z(ZoZuZ ZaZcZcZeZpZtZésZ)Z ZpZaZrZ ZlZeZsZ
ZmZaZcZhZiZnZeZsZ ZdZeZ ZTZuZrZiZnZgZ ZdZétZeZrZmZiZnZiZsZtZeZ
1.8 La classe NP
l
- La classe NP est formée des langages reconnus (ou acceptés) par les
machines de Turing Non déterministe polynomiale
l
- Machine de Turing non-déterministe pour chaque pair état-symbole
il peut y avoir une, plusieurs ou aucune possibilité de transition,
correspondant a un choix
l
- Un algorithme non polynomiale et vérifiable d'une façon
polynomiale appartient à la classe NP
AU 2015-2016 Ahmed HARBAOUI @ ISAMM 27
1.8 La classe NP
Etant donné
- n sommets (des « villes »)
- et les distances séparant chaque sommet,
Trouver une chaine de longueur totale minimale
qui passe exactement une fois par chaque
sommet (et revienne au sommet de départ).
– Calculer pour n petit
– Déduire le nombre de possibilité de chemin
On a donc 1/2(n-1)! chemins candidats possibles
TSP
Voici un énoncé plus formel du problème du voyageur de commerce sous
forme de problème de décision.
Données :
un graphe complet G = (V,E,φ) avec V un ensemble de sommets, E un
ensemble d'arêtes et φ une matrice de distances;
un entier B
Question :
Existe-t-il un cycle passant une et une seule fois par chaque sommet tel que
la somme des coûts des arcs utilisés soit inférieure à B
TSP
On ne connaît pas de méthode de résolution permettant d'obtenir des
solutions exactes en un temps raisonnable pour de grandes instances (grand
nombre de villes) du problème.
Le nombre de chemins possibles passant par 69 villes est déjà un nombre de 100 chiffres.
Logiciel Concorde
A résolu un TSP de plusieurs milliers de villes
http://www.tsp.gatech.edu/concorde.html
1.8 La classe NP : Approche informelle
Problème du siècle
Théorème : { Π ∈ P } ↔ { ΠC ∈ P}