Planche 1

Informatique
Amphi 0

Jean-Jacques.Levy@inria.fr
http://jeanjacqueslevy.net

secrétariat de l'enseignement:
Catherine Bensoussan
cb@lix.polytechnique.fr
Aile 00, LIX
tel: 34 67

http://w3.edu.polytechnique.fr/informatique/


Planche 2

Plan


  1. Calculabilité
  2. Complexité
  3. Algorithmes simples
  4. Programmation
  5. Vaste domaine scientifique
  6. Organisation des cours
  7. Contenu du Tronc Commun

Planche 3

Un système étiqueté -- Tag system


Un mot de départ w = abccba
Un nombre n = 3
Des règles a |® bab b |® abba c |® ca

a bccba
a bc cba bab
cbabab
cbabab
cba bab ca
babca
babca
bab ca abba
caabba
c aabba
caa bba ca
bbaca
bbaca
bba ca abba
caabba   (arrêt car déja vu)


Planche 4

Un autre petit jeu


Le mot de départ w = cabcba
Le nombre n = 3
Les règles a |® cac b |® bab c |® ca

cabcba
cbaca
caca
aca
cac
ca
a
c
  (arrêt car mot vide)


Planche 5

Un troisième jeu


Le mot de départ w = 100110
Le nombre n = 3
Les règles 0 |® 00 1 |® 1101

100110
1101101
11011101
111011101
0111011101
101110100
1101001101
10011011101
110111011101
1110111011101
01110111011101
1011101110100
11011101001101
111010011011101
0100110111011101
011011101110100
01110111010000
1011101000000
11010000001101
100000011011101
0000110111011101
011011101110100
(arrêt car déja vu)


Planche 6

Terminaison


Question


Peut-on déterminer
par programme la terminaison d'un jeu donné par w, n et {a1 |® A1, a2 |® A2, ... ap |® Ap}    (n³ 0, p³ 0) ??

Réponse   [Post, 1925]


Non. La terminaison des systèmes étiquetés est
indécidable.


Planche 7

Dominos de Wang


Un ensemble Paver un carré  
de p = 4 motifs de taille n = 6
(carrés à bords colorés)    

Deux motifs
adjacents ssi leurs cotés communs de même couleur.

Rotations et symétries sont interdites.



Planche 8

Dominos de Wang -- bis


4096
solutions


Planche 9

Au dela du jaune et du rouge


3
solutions


Planche 10

Pavage d'un carré


Dans l'exemple précédent

n=6,   p=3

150094635296999121 » 1017 tests à effectuer

Soit
57 jours en comptant 500 × 106 opérations à la seconde.

Faire mieux?


Planche 11

NP complétude


Personne ne sait faire mieux.

Ce problème est représentatif d'une
grande classe de problèmes, dits NP complets.

Si on sait faire mieux pour ce problème, on saura le faire pour toute la classe
NP.

Conjecture:   P ¹? NP   [Cook, 1973]

Un des 10 problèmes ouverts les plus importants des mathématiques
(cf. Majeure 2 d'Informatique)


Planche 12

Pavage du plan



équivalent à
Réponse


Le pavage du plan par
p motifs est indécidable


Planche 13

Pavages non périodiques


Conjecture de Wang (1973): tout pavage du plan est périodique.
Et grâce à cette périodicité, on sait décider du pavage du plan.
Indécidabilité
Þ existence de pavages non périodiques.

Conclusion: en passant par des théorèmes d'informatique théorique, on peut résoudre des problèmes de math.
(Itou pour la physique)



En 1975, les pavages
non périodiques ont fleuri. Pavages quasi périodiques de Penrose.


Planche 14

Exemple de pavage de Penrose





Planche 15

Théorie de la calculabilité


Comment montrer qu'un problème est indécidable?

Par contradiction: si le problème est décidable, un problème indécidable connu deviendrait décidable.

Comment montrer l'indécidabilité de ces problèmes de base?

Par
diagonalisation et reflexivité.

Exemple connexe: Soit
S l'ensemble de tous les ensembles. Alors S Î S. Mais pour l'ensemble X = {T | T ÏT}. Alors X Î X ssi X ÏX.

[Gödel, Church, Turing, Kleene, Post; 1920-1940]
[von Neumann; 1940]


Planche 16

Faits


Il existe des
En pratique


La décidabilité est étudiée en Majeure 1.
La complexité des algorithmes en Tronc Commun et Majeure 2.



Planche 17

Exemples d'algorithmes ``simples''



Planche 18

Programmation


   algorithmes       langage des mathématiques   
   programmes       langages de programmation   


Planche 19

Un programme tout simple




static void copie (char[] s, int s_pos, char[] d, int d_pos, 
                   int longueur) {

  for (int i = 0; i < longueur; ++i)
    d [d_pos + i] = s [s_pos + i];
}
Complexité O(n) si n est la longueur.

Ce programme est-il
correct?


Planche 20

Attention aux alias


Bug si
s et d sont deux alias (s = d)

Le programme correct:


static void copie (char[] s, int s_pos, char[] d, int d_pos, 
                   int longueur) {
  if ( s != d || d_pos <= s_pos) 
    for (int i = 0; i < longueur; ++i)
      d [d_pos + i] = s [s_pos + i];
  else
    for (int i = longueur - 1; i >= 0; --i)
      d [d_pos + i] = s [s_pos + i];
}
La recherche d'alias dans un programme est un problème important (Ariane 5, Word 97, Windows 2000, etc).

Analyse statique de programmes.


Planche 21

Sémantique des opérateurs



static String paques (int y){         y = 11571
    int g = (y % 19) + 1;             g = 1
    int c = y / 100 + 1;              c = 116
    int x = 3 * c / 4 - 12;           x = 75
    int z = (8 * c + 5) / 25 - 5;     z = 32
    int d = 5 * y / 4 - x - 10;       d = 14378
    int e = (11 * g + 20 + z - x) % 30;      e = -12
    if ( e == 25 && g > 11 || e == 24 )  
        ++e;                           
    int n = 44 - e;                    n = 56
    if (n < 21)                        
        n = n + 30;                    
    int j = n + 7 - ((d + n) % 7);     j = 63
    if (j > 31)                        
        return (j - 31) + " avril";    32 avril
    else
        return j + " mars";
  }
Que vaut le modulo d'un nombre négatif?


Planche 22

Domaine des valeurs


Les principes des langages de programmation sont étudiés en Majeure 1.
L'analyse statique est enseignée en DEA.



Planche 23

Au dela



Planche 24

Quelques domaines d'application



Planche 25

Monétique


Cartes à puce
programmable en Java (Javacard).

Intérêt:

Espace limité: 32 KO de ROM, 8 KO d'EEPROM (bytecode), 512 octets de RAM (pile).

Les programmes chargés sont-ils
sûrs?

Þ Analyse statique ou preuves formelles.

(La France est bien placée.)



Planche 26

Télécommunications



Planche 27

Une technologie exponentielle


  gain période
densité des puces × 2 18 mois
vitesse processeur × 2 18 mois
capacité mémoire × 4 3 ans
coût/octet disques × 0.75 1 an

En 2000,


Planche 28

Vers un ordinateur mondial


Le World Wide Web est déjà une bibliothèque mondiale.
Ira-t-on vers un calculateur mondial?

L'exemple de la
cryptographie:


Planche 29

L'informatique et l'X



Planche 30

Enseignement de l'informatique à l'X


Tronc Commun, obligatoire
1ère année, 1er semestre;
Projet informatique,
1ère année, 2ème semestre
Voie C, optionnelle
1ère année, 2ème semestre
Majeure 1, optionnelle
2ème année, 1er trimestre
Majeure 2, optionnelle
2ème année, 2ème trimestre
DEAs
3ème année


Planche 31

Contenus


Tronc Commun: algorithmes et programmation
Lévy   (projet informatique Gonthier)

Voie C: optimisation combinatoire
Steyaert

Majeure 1: mathématiques et informatique
Steyaert
automates et calculabilité, architecture [
Vuillemin],
algèbre
Ú bases de donnée Ú lang. de programmation,
1 cours au choix   
(automates, vision, objets, ...)

Majeure 2: informatique
Cori et Toueg
systèmes et réseaux, complexité,
algorithmes distribués
Ú compilation,
1 cours au choix   
(crypto, synthèse d'images, ...)



Planche 32

Organisation du Tronc Commun


Groupes de niveaux (Forts, Moyens, Débutants)


Planche 33

L'équipe enseignante du Tronc Commun


Centre informatique de l'X



Planche 34

Le contenu du Tronc Commun


programmes itération récursion  
structures tableaux arbres graphes
de données listes listes  
  files, piles    
algorithmes tri
  recherche en table
  analyse syntaxique
  exploration
projet modularité
informatique  

Langage de programmation


Java, [Gosling et Sun microsystems]
langage typé
+ garbage collector



Planche 35



Lisez nos pages Web! Envoyez nous des e-mails. Téléphonez nous. Venez nous voir.

Travaillez l'informatique. On y trouve beaucoup de métiers intéressants.




This document was translated from LATEX by HEVEA.