Compter sur ordinateur et autres calculs : toujours plus vite



Documents pareils
Nombres premiers. Comment reconnaître un nombre premier? Mais...

Représentation des Nombres

Problèmes arithmétiques issus de la cryptographie reposant sur les réseaux

Quelques tests de primalité

Baccalauréat ES Polynésie (spécialité) 10 septembre 2014 Corrigé

Conversion d un entier. Méthode par soustraction

Exercices - Polynômes : corrigé. Opérations sur les polynômes

Cryptographie et fonctions à sens unique

Calculateur quantique: factorisation des entiers

Factorisation d entiers (première partie)

Objectifs du cours d aujourd hui. Informatique II : Cours d introduction à l informatique et à la programmation objet. Complexité d un problème (2)

V- Manipulations de nombres en binaire

Cryptographie. Cours 3/8 - Chiffrement asymétrique

La Licence Mathématiques et Economie-MASS Université de Sciences Sociales de Toulouse 1

CORRIGE LES NOMBRES DECIMAUX RELATIFS. «Réfléchir avant d agir!»

Cours d arithmétique Première partie

CRYPTOGRAPHIE. Signature électronique. E. Bresson. SGDN/DCSSI Laboratoire de cryptographie

Chapitre VI - Méthodes de factorisation

Rappels sur les suites - Algorithme

Cryptologie. Algorithmes à clé publique. Jean-Marc Robert. Génie logiciel et des TI

avec des nombres entiers

Panorama de la cryptographie des courbes elliptiques

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

Représentation d un entier en base b

Puissances d un nombre relatif

Calculer avec Sage. Revision : 417 du 1 er juillet 2010

Cryptographie RSA. Introduction Opérations Attaques. Cryptographie RSA NGUYEN Tuong Lan - LIU Yi 1

La cryptographie du futur

Algorithmes récursifs

COURS EULER: PROGRAMME DE LA PREMIÈRE ANNÉE

Section «Maturité fédérale» EXAMENS D'ADMISSION Session de février 2014 RÉCAPITULATIFS DES MATIÈRES EXAMINÉES. Formation visée

Petit lexique de calcul à l usage des élèves de sixième et de cinquième par M. PARCABE, professeur au collège Alain FOURNIER de BORDEAUX, mars 2007

Maple: premiers calculs et premières applications

Fonction de hachage et signatures électroniques

INF 4420: Sécurité Informatique Cryptographie II

* très facile ** facile *** difficulté moyenne **** difficile ***** très difficile I : Incontournable T : pour travailler et mémoriser le cours

Baccalauréat ES/L Amérique du Sud 21 novembre 2013

Développement décimal d un réel

MIS 102 Initiation à l Informatique

3 ème 2 DÉVELOPPEMENT FACTORISATIONS ET IDENTITÉS REMARQUABLES 1/5 1 - Développements

Introduction. Mathématiques Quantiques Discrètes

Licence Sciences et Technologies Examen janvier 2010

La NP-complétude. Johanne Cohen. PRISM/CNRS, Versailles, France.

BACCALAUREAT GENERAL MATHÉMATIQUES

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

Petite introduction aux protocoles cryptographiques. Master d informatique M2

Fibonacci et les paquerettes

Calcul matriciel. Définition 1 Une matrice de format (m,n) est un tableau rectangulaire de mn éléments, rangés en m lignes et n colonnes.

Les nombres entiers. Durée suggérée: 3 semaines

Cake aux fruits. Pastis Landais

Algorithme. Table des matières

INF 232: Langages et Automates. Travaux Dirigés. Université Joseph Fourier, Université Grenoble 1 Licence Sciences et Technologies

Logiciel de Base. I. Représentation des nombres

Cours d algorithmique pour la classe de 2nde

Communications collectives et ordonnancement en régime permanent pour plates-formes hétérogènes

Baccalauréat ES Antilles Guyane 12 septembre 2014 Corrigé

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

Gestion des Clés Publiques (PKI)

Baccalauréat ES/L Métropole La Réunion 13 septembre 2013 Corrigé

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

Chapitre 7. Récurrences

Chapitre 3. Quelques fonctions usuelles. 1 Fonctions logarithme et exponentielle. 1.1 La fonction logarithme

Précision d un résultat et calculs d incertitudes

Carré parfait et son côté

Angles orientés et trigonométrie

Exercices - Nombres complexes : corrigé. Formes algébriques et trigonométriques, module et argument

Proposition de programmes de calculs en mise en train

Programme de la classe de première année MPSI

ÉPREUVE COMMUNE DE TIPE Partie D

Kenwood Limited, New Lane, Havant, Hampshire PO9 2NH, UK /2

Chapitre 2. Eléments pour comprendre un énoncé

Pour l épreuve d algèbre, les calculatrices sont interdites.

Problème 1 : applications du plan affine

Informatique Générale

Polynômes à plusieurs variables. Résultant

Chapitre 10 Arithmétique réelle

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Date : Tangram en carré page

TOUT CE QU IL FAUT SAVOIR POUR LE BREVET

Table des matières. I Mise à niveau 11. Préface

Catalogue des connaissances de base en mathématiques dispensées dans les gymnases, lycées et collèges romands.

1 Définition et premières propriétés des congruences

Groupe symétrique. Chapitre II. 1 Définitions et généralités

Travail d intérêt personnel encadré : La cryptographie

Continuité et dérivabilité d une fonction

Systèmes décisionnels et programmation avancée

0x700. Cryptologie Pearson France Techniques de hacking, 2e éd. Jon Erickson

Les fonctions de hachage, un domaine à la mode

ALGORITHMIQUE II NOTION DE COMPLEXITE. SMI AlgoII

Fonction inverse Fonctions homographiques

Durée de L épreuve : 2 heures. Barème : Exercice n 4 : 1 ) 1 point 2 ) 2 points 3 ) 1 point

Python - introduction à la programmation et calcul scientifique

Définitions. Numéro à préciser. (Durée : )

ELEC2753 Electrotechnique examen du 11/06/2012

Cours3. Applications continues et homéomorphismes. 1 Rappel sur les images réciproques

STAGE IREM 0- Premiers pas en Python

FONDEMENTS DES MATHÉMATIQUES

De même, le périmètre P d un cercle de rayon 1 vaut P = 2π (par définition de π). Mais, on peut démontrer (difficilement!) que

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

Introduction à l étude des Corps Finis

Transcription:

Compter sur ordinateur et autres calculs : toujours plus vite Nathalie Revol INRIA, LIP, ENS-Lyon Nathalie.Revol@ens-lyon.fr Die, 19 octobre 2004

Algorithme... suite d instructions à effectuer pour accomplir une tâche Pas d implicite ni d imprécision. Syntaxe rigide quand on s adresse à un ordinateur. Die, 19-10-2003 1 N. Revol

Algorithme... recette du taboulé Die, 19-10-2003 2 N. Revol

Algorithme... recette du taboulé (pour un humain) 1. Dans une terrine ajouter dans l ordre en mélangeant à chaque fois : La semoule, les tomates coupées en dés avec leur jus, les oignons hachés, 3 cuillères de menthe hachée, 3 cuillères de persil haché, le jus des citrons, les olives et les raisins puis ajouter le reste des ingrédients : huile, sel et poivre. 2. Vérifier l assaisonnement plusieurs fois. Laisser macérer 3 ou 4 heures (voire faire la veille). 3. En décoration quelques feuilles de menthe en bouquet une tomate en quartier et un petit oignon en quartier. Die, 19-10-2003 3 N. Revol

Recette du taboulé : traduction en langage algorithmique 1. Dans une terrine ajouter dans l ordre en mélangeant à chaque fois : La semoule, les tomates coupées en dés avec leur jus, les oignons hachés, 3 cuillères de menthe hachée, 3 cuillères de persil haché, le jus des citrons, les olives et les raisins puis ajouter le reste des ingrédients huile, sel et poivre. ajouter 250g de semoule dans la terrine mélanger couper 500g de tomates en dés ajouter les 500g de tomates coupées en dés avec leur jus dans la terrine mélanger hacher 250g d oignons ajouter les 250g d oignons hachés dans la terrine mélanger Die, 19-10-2003 4 N. Revol

hacher 3 cuillères à soupe de menthe ajouter les 3 cuillères à soupe de menthe hachée dans la terrine mélanger hacher 3 cuillères à soupe de persil ajouter 3 cuillères à soupe de persil haché dans la terrine mélanger presser 3 citrons ajouter le jus des 3 citrons dans la terrine mélanger ajouter 150g d olives dans la terrine mélanger ajouter les 50g de raisins dans la terrine mélanger ajouter 8 cuillerées à soupe d huile d olive ajouter 1/2 cuillerée à café de sel et 1/2 cuillerée à café de poivre mélanger Die, 19-10-2003 5 N. Revol

2. Vérifier l assaisonnement plusieurs fois. Laisser macérer 3 ou 4 heures (voire faire la veille). intraduisible!!! 3. En décoration quelques feuilles de menthe en bouquet une tomate en quartier et un petit oignon en quartier. poser sur la terrine quelques feuilles de menthe découper une tomate en quartier poser sur la terrine les quartiers de tomate découper un oignon (de 100g) en quartier poser sur la terrine les quartiers d oignon Et tout ceci en supposant que peser, hacher, découper etc ont déjà été précisément définis algorithmiquement! Die, 19-10-2003 6 N. Revol

Compter avec des entiers Plan de l exposé opérations arithmétiques (école primaire) notation redondante calculer avec des rationnels (collège) calcul modulaire Problèmes de graphes qu est-ce qu un graphe chemin eulérien problèmes difficiles Hiérarchie des problèmes la classe P la classe NP hiérarchie Die, 19-10-2003 7 N. Revol

Compter avec des entiers Plan de l exposé opérations arithmétiques (école primaire) notation redondante calculer avec des rationnels (collège) calcul modulaire Problèmes de graphes qu est-ce qu un graphe chemin eulérien problèmes difficiles Hiérarchie des problèmes la classe P la classe NP hiérarchie Die, 19-10-2003 8 N. Revol

Compter avec des entiers Pour des humains ayant 10 doigts : représentation des nombres entiers : 13 = 1 10 + 3 1 = 1 10 1 + 3 10 0 Pour des ordinateurs ayant 2 poings : représentation des nombres entiers : 13 10 = 1 8+1 4+0 2+1 1 = 1 2 3 +1 2 2 +0 2 1 +1 2 0 = 1101 2 Die, 19-10-2003 9 N. Revol

Compter avec des entiers : additionner À la main : 1 1 1 2 3 4 + 5 6 7 1 8 0 1 Die, 19-10-2003 10 N. Revol

Compter avec des entiers : additionner Complexité de l addition de 2 nombres à n chiffres : opérations sur des chiffres. O(n) Hypothèse : additionner deux chiffres quelconques prend toujours le même temps ce qui n est pas le cas du cerveau humain : 1 + 2 est plus rapide à effectuer que 8 + 9. Die, 19-10-2003 11 N. Revol

Compter avec des entiers : problème sur ordinateur 1 1 1 2 3 4 + 5 6 7 1 8 0 1 Problème : la retenue! Pourquoi ne pas commencer par la gauche, pour avoir tout de suite l ordre de grandeur du résultat? Pourquoi ne pas additionner chacun deux chiffres simultanément? Solution : changer de système de numération! Die, 19-10-2003 12 N. Revol

Compter avec des entiers Systèmes redondants de numération (Avizienis, 1961) Principe : un même nombre peut avoir plusieurs représentations. Avantage pour l addition : on choisit toujours un chiffre qui permettra d absorber la retenue (absorber au sens d empêcher de se propager). Comment : ne pas se limiter aux chiffres compris entre 0 et 9 : autoriser les chiffres supérieurs à 10 (par exemple de 0 à 19), autoriser les chiffres négatifs. Exemple : en base 10 avec les chiffres de -6 à 6 1546 s écrit 1546, 2( 5)46 noté 2 546, 2( 4)( 6)6 noté 2 4 66, 2 4 5 4, 16 66, 16 5 4... Die, 19-10-2003 13 N. Revol

Compter avec des entiers Systèmes redondants de numération (Avizienis, 1961) soit 1790 + 11 = 1801. 1 2 3 4 + 5 6 7 1 7 9 11 1 2 3 4 + 5 6 7 2 2 0 1 2 201 = 2000 200 + 00 + 1 = 1801. Die, 19-10-2003 14 N. Revol

Compter avec des entiers : multiplier À la main : 9 8 7 6 1 2 3 4 3 9 5 0 4 2 9 6 2 8 1 9 7 5 2 9 8 7 6 1 2 1 8 6 9 8 4 Die, 19-10-2003 15 N. Revol

Sur ordinateur : Compter avec des entiers : multiplier 9 8 7 6 1 2 3 4 3 9 5 0 4 + 2 9 6 2 8 3 3 5 7 8 4 + 1 9 7 5 2 2 3 1 0 9 8 4 + 9 8 7 6 1 2 1 8 6 9 8 4 Die, 19-10-2003 16 N. Revol

Compter avec des entiers : multiplier Multiplication des paysans russes ou comment éviter d apprendre ses tables 57 86 = 4902 86 172 57 28 Die, 19-10-2003 17 N. Revol

Compter avec des entiers : multiplier Multiplication des paysans russes ou comment éviter d apprendre ses tables 57 86 = 4902 86 172 344 57 28 14 Die, 19-10-2003 18 N. Revol

Compter avec des entiers : multiplier Multiplication des paysans russes ou comment éviter d apprendre ses tables 57 86 = 4902 86 172 344 688 57 28 14 7 Die, 19-10-2003 19 N. Revol

Compter avec des entiers : multiplier Multiplication des paysans russes ou comment éviter d apprendre ses tables 57 86 = 4902 86 172 344 688 1376 57 28 14 7 3 Die, 19-10-2003 20 N. Revol

Compter avec des entiers : multiplier Multiplication des paysans russes ou comment éviter d apprendre ses tables 57 86 = 4902 86 172 344 688 1376 2752 57 28 14 7 3 1 Die, 19-10-2003 21 N. Revol

Compter avec des entiers : multiplier Multiplication des paysans russes ou comment éviter d apprendre ses tables 57 86 = 4902 86 172 344 688 1376 2752 57 28 14 7 3 1 Die, 19-10-2003 22 N. Revol

Compter avec des entiers : multiplier Multiplication des paysans russes ou comment éviter d apprendre ses tables 57 86 = 4902 86 172 344 688 1376 2752 57 28 14 7 3 1 4902 Die, 19-10-2003 23 N. Revol

Multiplication : on peut aller plus vite... Si A et B s écrivent chacun avec 2n chiffres en base β, A = a H β n + a L, B = b H β n + b L A B = a H b H β 2n + (a H b L + a L b H )β n + a L b L soit 4 multiplications de nombres 2 fois plus court... Multiplication de Karatsuba On peut aussi écrire le produit comme A B = a H b H β 2n + [(a H + a L )(b H + b L ) a H b H a L b L ]β n + a L b L avec 3 multiplications de nombres 2 fois plus court... on multiplie 2 nombres de n chiffres en O(n log 2 3 ). Die, 19-10-2003 24 N. Revol

Multiplication : on peut aller plus vite... Si A = 1234 et B = 5678 (4 = 2 2 chiffres en base 10), A B = 7006652 A = 12 10 2 + 34, B = 56 10 2 + 78 Multiplication de Karatsuba A B = 12 56 10 4 + [(12 + 34) (56 + 78) 12 56 34 78] = 672 10 4 + [46 134 672 2652] 10 2 + 2652 = 672 10 4 + [6164 672 2652] 10 2 + 2652 = 6720000 + 284000 + 2652 = 70066652 avec 3 multiplications de nombres 2 fois plus court... Die, 19-10-2003 25 N. Revol

Multiplication : on peut aller encore plus vite... Multiplication rapide Multiplication basée sur la transformée de Fourier rapide (FFT) (ou plutôt discrète : DFT) : la complexité asymptotique de la multiplication est O(n log n log log n) mais elle est difficile à implanter et ne bat d autres méthodes plus simples qu à partir d environ 57 000 chiffres décimaux. Die, 19-10-2003 26 N. Revol

Exponentiation 3 13 = 1 594 323 3 13 9 6 81 3 6561 1 puis multiplication 3 81 6561 = 1 594 323. Autre façon de l écrire : 13 = 8 + 4 + 1 = 1101 2 3 13 = 3 8 3 4 3 1 avec 3 4 = ( 3 2) 2 et 3 8 = ( 3 4) 2. On procède par élévations au carré successives et multiplications finales : il y en a O(log 2 n) si n est l exposant. Die, 19-10-2003 27 N. Revol

Compter avec des entiers : diviser Division 990 252 756 3 234 252 234 18 234 1 234 18 54 54 18 13 0 Complexité de la division de 2 nombres à n chiffres : O(M(n)) où M(n) est la complexité de la multiplication. Die, 19-10-2003 28 N. Revol

Compter avec des entiers : diviser le bug du Pentium en 1994 Algorithme utilisé : celui qu on apprend à l école. Bug du Pentium : T. Nicely (Virginie, USA), en octobre 1004, a constaté que son ordinateur donnait un résultat erroné lors du calcul de 1.0/824633702441 : erreur à partir du 12e chiffre. T. Coe a découvert le pire cas : 41195835.0/3145727.0 donnait 1.333739068902 au lieu de 1.333820449136 (faux à partir du 5e chiffre). Explication : pour aller plus vite, utilisation de notation redondante : utilisation de chiffres supérieurs à la base pour les restes partiels utilisation de chiffres négatifs pour le quotient et erreur en mélangeant tout ça! Die, 19-10-2003 29 N. Revol

Calculer à l école primaire : les entiers pgcd Rappel : pgcd (a, b) = pgcd (b, r) avec a = bq + r si r 0. Algorithme d Euclide : pgcd(990, 252) = pgcd(252, 234) = pgcd(234, 18) = 18. Complexité du pgcd de 2 nombres à n chiffres : O(M(n) log n). Die, 19-10-2003 30 N. Revol

Calculer à l école primaire : les entiers Savoir si un nombre est premier : on a longtemps cru que c était difficile, depuis l été 2002, on sait grâce à Agrawal, Kayal et Saxena que c est facile : en O(n 9 ). Factoriser un nombre en ses facteurs premiers : 990 = 2 3 3 5 11 et 252 = 2 2 3 3 7. Complexité : difficile! publique, dont RSA. certains algorithmes de cryptographie à clé Die, 19-10-2003 31 N. Revol

Calcul modulaire Calculer l heure ou le jour : calcul modulo 60, 24, 7 ou 12. S il est maintenant 8h45, quelle heure sera-t-il dans 35mn? 9h20 : calcul modulo 60 : (45 + 35) mod 60 = 80 mod 60 = 20 et comme (45 + 35)/60 = 80/60 = 1, vous avez rajouté 1h. Et dans 9h, quelle heure sera-t-il? 5h45 du matin : (20 + 9) mod 24 = 29 mod 24 = 5 ou alors (8 + 9) mod 12 = 17 mod 12 = 5. Aujourd hui nous sommes mardi 19 octobre. Quel jour de la semaine tombera le 29 octobre? (29 19) mod 7 = 10 mod 7 = 3 mercredi-un, jeudi-deux, vendredi-trois : ce sera un vendredi! Die, 19-10-2003 32 N. Revol

U [ X V X d G G ZZZZZZZZZZZZZZZZZZZZZZZZZ [ Y W Y d U Algorithme RSA Alice, Bob et la méchante Eve... Cryptographie à clé publique!"#%$'&(""*),+-&.$/ 0 #21'345$'7618),49&-:<; 0 =?>A@CB2DFEHGABJILKNMPOQKRIHS GCT I\G\]%I^G_>`ONMaKcb m texte clair m jlk Ka jlm Kb u_vxwzy { ALICE >nmpbomao7b@cbqphs Gr>AsHbtKQp2S c I\G\]%I^G_>^eHKgfhbiS canal non sécurisé EVE ZZZZZZZZZZZZZZZZZZZZZZZZZZ c texte chiffré }~ } BOB Die, 19-10-2003 33 N. Revol

Algorithme RSA Alice, Bob et la méchante Eve... ALICE BOB décrypte le message avec sa clé privée encrypte le message avec la clé publique d Alice EVE communication non sécurisée Die, 19-10-2003 34 N. Revol

Algorithme RSA Alice, Bob et la méchante Eve... Alice 1. choisit 2 grands nombres premiers p et q : facile 2. calcule N = p q (N doit avoir au moins 150 chiffres) 3. choisit e {2,, ϕ(n) 2} premier avec ϕ(n) où ϕ est la fonction d Euler : ϕ(n) = (p 1) (q 1) 4. calcule d tel que ed 1 mod ϕ(n) Bézout : (d, v)/ed + v.ϕ(n) = 1. 5. publie (N, e) sa clé publique et cache (N, d) sa clé secrète. Euler x {0 N 1}, si x N = 1 alors x ϕ(n) 1 mod N, càd x ϕ(n)+1 x mod N. Die, 19-10-2003 35 N. Revol

Alice, Bob et la méchante Eve... Alice publie (N, e) sa clé publique et cache (N, d) sa clé secrète. (Bézout : (d, v)/ed + v.ϕ(n) = 1.) Euler x {0 N 1}, si x N = 1 alors x ϕ(n)+1 x mod N. Bob 1. écrit son message sous la forme d un entier x {0 N 1} 2. calcule y = x e mod N : facile 3. envoie y Alice calcule y d : x x ϕ(n)+1 x v.ϕ(n)+1 x ed y d mod N Die, 19-10-2003 36 N. Revol

+,,, / : on sait faire (beaucoup de calculs de pgcd). Les rationnels Exemples de logiciels : Maple, Mathematica, certaines calculatrices (TI). Avantage : calcul exact. Inconvénients : Nombres grossissent. Complexité : dépend de la taille des nombres., exp, sin : on ne sait pas faire... Die, 19-10-2003 37 N. Revol

Compter avec des entiers Plan de l exposé opérations arithmétiques (école primaire) notation redondante calculer avec des rationnels (collège) calcul modulaire Problèmes de graphes qu est-ce qu un graphe chemin eulérien problèmes difficiles Hiérarchie des problèmes la classe P la classe NP hiérarchie Die, 19-10-2003 38 N. Revol

Qu est-ce qu un graphe? C est un ensemble de sommets reliés par des traits ou des flèches. Exemples : carte routière : sommets = villes et traits = routes schéma d orientation : sommets = niveaux d étude et traits = accès etc Die, 19-10-2003 39 N. Revol

Intermède Quatre verres sont placés en carré sur un plateau. Une barmaid aveugle portant des gants de boxe essaie de les mettre tous dans le même sens, en retournant un ou deux verres. À chaque essai, un farceur lui dit sans jamais lui mentir s il a réussi puis tourne à sa guise le plateau. La barmaid va-t-elle réussir à mettre tous les verres dans le même sens? Quelle est la stratégie la plus rapide qui permette d y arriver à coup sûr? Die, 19-10-2003 40 N. Revol

La serveuse de bar aveugle avec des gants de boxe 1 Die, 19-10-2003 41 N. Revol

La serveuse de bar aveugle avec des gants de boxe 1 1 Die, 19-10-2003 42 N. Revol

La serveuse de bar aveugle avec des gants de boxe 1 1 1 Die, 19-10-2003 43 N. Revol

La serveuse de bar aveugle avec des gants de boxe 1 1 1 2/, 2 Die, 19-10-2003 44 N. Revol

La serveuse de bar aveugle avec des gants de boxe 1 2/ 1 1 2/, 2 Die, 19-10-2003 45 N. Revol

La serveuse de bar aveugle avec des gants de boxe 1 2/ 1 2 1 2/, 2 Die, 19-10-2003 46 N. Revol

La serveuse de bar aveugle avec des gants de boxe 2/ 1 2/ 1 2 1 2/, 2 Die, 19-10-2003 47 N. Revol

La serveuse de bar aveugle avec des gants de boxe 2 2/ 1 2/ 1 2 1 2/, 2 Die, 19-10-2003 48 N. Revol

La serveuse de bar aveugle avec des gants de boxe 2 2/ 1 2/ 1 2 1 2/, 2 Stratégie : 2/, 2, 2/, 1, 2/, 2, 2/. Die, 19-10-2003 49 N. Revol

Le loup, la chèvre et le chou Sur le bord d une rivière se trouvent un loup, une chèvre et un chou qui désirent traverser ; il y a un bateau si petit que le batelier seul et l un d eux peuvent y tenir. Il est question de les passer tous trois, de telle sorte que le loup ne mange pas la chèvre, ni la chèvre le chou, pendant l absence du batelier. Comment procéder? Die, 19-10-2003 50 N. Revol

Le loup, la chèvre et le chou Sur le bord d une rivière se trouvent un loup, une chèvre et un chou qui désirent traverser ; il y a un bateau si petit que le batelier seul et l un d eux peuvent y tenir. Il est question de les passer tous trois, de telle sorte que le loup ne mange pas la chèvre, ni la chèvre le chou, pendant l absence du batelier. Comment procéder? LGC/ LC/G LG/C GC/L G/LC LC/G L/GC C/LG G/LC /LGC Die, 19-10-2003 51 N. Revol

Le loup, la chèvre et le chou Deux solutions. LGC/ LC/G LG/C GC/L G/LC LC/G L/GC C/LG G/LC /LGC LGC/ LC/G LG/C GC/L G/LC LC/G L/GC C/LG G/LC /LGC Die, 19-10-2003 52 N. Revol

Chemin eulérien Peut-on dessiner le dessin de gauche sans lever le crayon et sans passer deux fois par la même arête? Et celui de droite? Oui pour celui de gauche, non pour celui de droite : au plus 2 points peuvent avoir un degré impair. Die, 19-10-2003 53 N. Revol

O Ba Graphes Océan glacial arctique Etats d'europe c é a n A t l a u e n t i q Mer du Nord que lti Mer Mer Caspienne Mer Noire Méditerranée JPP Marly, 1995 carte : http://www.cfdp.ch/geofri/ Die, 19-10-2003 54 N. Revol

Complexité Reachability Sur une carte routière avec n villes, peut-on aller de Paris à Copenhague? de Berlin à Dublin? Algorithme pour trouver la réponse en O(n 2 ). Problème du voyageur de commerce Sur une carte de France métropolitaine avec n villes, comment établir une tournée la plus courte possible qui passe une fois et une seule par chacune des n villes? Aucun algorithme pour trouver la réponse en O(n α ) (?). Die, 19-10-2003 55 N. Revol

Compter avec des entiers Plan de l exposé opérations arithmétiques (école primaire) notation redondante calculer avec des rationnels (collège) calcul modulaire Problèmes de graphes qu est-ce qu un graphe chemin eulérien problèmes difficiles Hiérarchie des problèmes la classe P la classe NP hiérarchie Die, 19-10-2003 56 N. Revol

La classe P Définition P = { problèmes pour lesquels il existe un algorithme de résolution en temps polynomial en la longueur des entrées }. Exemples addition : O(n) pour 2 entiers à n chiffres multiplication : O(n log n log log n) pour 2 entiers à n chiffres division : O(M(n)) pour 2 entiers à n chiffres pgcd : O(M(n) log n) pour 2 entiers à n chiffres tester la primalité d un entier à n chiffres (août 2002) Sur quel ordinateur? sur un modèle théorique de machine appelé machine de Turing... c est la même sur tout ordinateur réel et avec tout langage de programmation! Die, 19-10-2003 57 N. Revol

Machine de Turing état 3 0 1 1 0 0 0 1 0 1 1 0 0 Die, 19-10-2003 58 N. Revol

Réduction d un problème à un autre Ex : la division se ramène à la multiplication. Pour calculer A/B avec A et B deux entiers à n chiffres : on calcule X = β n /B un inverse approché de B (multiplié par β n ) puis Q = (A X)/β n. Si on veut le reste : R A B Q. Newton modifié pour calculer X : X 2k = X k β k + X k ( β 2k (B 2k X k )/β k) /β k avec X k entier à k chiffres, B k l entier constitué à partir des k chiffres de gauche de B. Arrêt au bout de log 2 n étapes. Die, 19-10-2003 59 N. Revol

Réduction d un problème à un autre Complexité : à l étape k : deux multiplications de 2 nombres à k chiffres et deux +/ complexité : 2M(k) + 2k au total : log n i=1 puisque M(n) D.n 2, on a log n i=1 2M(2 i ) CM(n) M(i) 2M(2n). Die, 19-10-2003 60 N. Revol

La classe NP Définition NP = { problèmes pour lesquels il existe un algorithme de vérification de la solution en temps polynomial en la longueur des entrées }. Exemples factorisation d entiers : il est facile de vérifier une décomposition 990 = 2 3 3 5 11 et 252 = 2 2 3 3 7. isomorphisme de graphes : si la bijection candidate est donnée, facile! Die, 19-10-2003 61 N. Revol

Hiérarchies P1 P2 P3... P complet P dur P NP complet NP dur NP Die, 19-10-2003 62 N. Revol

Conclusions On sait faire les opérations arithmétiques exactes et flottantes l algèbre linéaire... On ne sait pas faire la factorisation d entiers (?) l isomorphisme de graphes... On essaie de classer les problèmes les uns par rapport aux autres : P versus NP P, P-complet, P-dur NP, NP-complet, NP-dur pour justifier pourquoi on ne sait pas faire! (sauf si P = NP) Die, 19-10-2003 63 N. Revol

Vulgarisation Références Histoire d algorithmes - Du caillou à la puce, J.-L. Chabert et al., Belin 1994 Logique, informatique et paradoxes, J.-P. Delahaye, Belin 1995 Histoire des codes secrets, S. Singh, Le livre de poche 2001 Modérément spécialisés Qualité des calculs sur ordinateurs - Vers des arithmétiques plus fiables?, coordonné par M. Daumas et J.-M. Muller, Masson 1997 La cryptologie moderne, A. Canteau et F. Lévy-dit-Véhel, Revue Armements, 2001, http://www-rocq.inria.fr/codes/anne.canteau/crypto-moderne.pdf Arithmétique en précision arbitraire, P. Zimmermann, Réseaux et systèmes répartis, vol. 13, no 4-5, 2001, http://www.inria.fr/rrrt/rr-4272.html Arithmétique par intervalles, N. Revol, Réseaux et systèmes répartis, vol. 13, no 4-5, 2001, http://www.inria.fr/rrrt/rr-4297.html Die, 19-10-2003 64 N. Revol

Spécialisés Modern computer algebra, J. von zur Gathen and J. Gerhard, CUP, 1999 Arithmétique des ordinateurs, J.-M. Muller, Masson 1989 Elementary functions, J.-M. Muller, Birkhauser, 1997. Interval methods for systems of equations, A. Neumaier, CUP, 1990 Computational complexity, C. Papadimitriou, Addison Wesley, 1994 Die, 19-10-2003 65 N. Revol