Maîtrise de Mathématiques et Informatique : Programmes - IMJ-PRG

publicité
Maîtrise de Mathématiques et Informatique
Programmes
09/03/02
1. Programmes des UE d'informatique
UE 1 : Programmation 2



Approfondissements
o traitements statique et dynamique de l'héritage et du sous-typage
o algorithme de résolution de la surcharge
o notion d'interface et programmation modulaire
o correction des programmes: objets et invariants
Programmation concurrente et distribuée
o notions de processus et de processus légers
o communications entre processus
o principe des interactions client/serveur
o objets distribués
o applets
Interfaces et programmation par événements
o boîtes à outils graphiques : gestion de fenêtres, de vues et de contrôles
o notion d'événement, boucle de gestion d'événements
o outils de conception d'interfaces
UE 2 : Calculabilité et complexité






Le modèle des machines RAM : description d'une machine à la Von Neumann
Le modèle des machines de Turing : fonctions T-calculables, machine de Turing
universelle, existence de fonctions qui ne sont pas T-calculables
Les fonctions primitives récursives, récursives et récursives partielles
Thèse de Church : équivalence des modèles présentés comme argument en faveur de
la thèse de Church
Problèmes indécidables : langages récursifs et récursivement énumérables, problèmes
indécidables, réduction algorithmique d'un problème à un autre, exemples
Complexité abstraite : complexité en temps et en espace, classes de complexité,
classes P et NP, réduction polynomiale, problèmes NP-complets
UE 5 ou 6 : Programmation fonctionnelle et logique
Objectif : Donner une approche conceptuelle de la programmation à travers deux grands
paradigmes : la programmation fonctionnelle (langages LISP et ML) et la programmation
logique (langage PROLOG).
1. Présentation des diverses approches pour la programmation.
2. Programmation fonctionnelle :
o introduction à la programmation fonctionnelle non typée et typée : langages
LISP (SCHEME) et ML(CAML) ;
o principales caractéristiques de ces langages ;
o syntaxe et structures de données ;
o fonctionnalité ;
o les affectations - les entrées/sorties;
o évaluation des programmes - liaisons statique et dynamique des variables gestion d'environnement ;
o sémantique opérationnelle pour ce type de langage : interprétation et
compilation - machines à environnement.
3. Programmation logique :
o introduction à la programmation logique : langage PROLOG ;
o principales caractéristiques de ce type de programmation ;
o syntaxe et structures de données - opérateur de coupure ;
o sémantique des programmes PROLOG ;
o le problème de la négation en PROLOG : l'hypothèse du monde clos et la
négation par échec ;
o utilisation de la méthode de résolution dans l'implantation machine de ce type
de langage.
Bibliographie
Chazarain : Programmer avec SCHEME. De la pratique à la théorie, Thomson International,
1996.
Hoogger : Programmer en logique, Masson, 1987. Weis and Leroy : Le langage CAML,
Interéditions, 1993.
UE 5 ou 6 : Algorithmique avancée
Objectif : Maîtriser la conception d'algorithmes complexes dans des domaines d'application
classiques. Chaque année, 2 ou 3 thèmes sont traités parmi :
1. Compression : - les concepts de base (modèles, entropie, performances...) ; - codage
de Hufman statique et dynamique ; codage à la Ziv-Lempel ; codage arithmétique.
2. Codage : - canal de transmission ; - codage par fenêtre coulissante, par bloc ; - codage
par convolution ; - illustration avec le codage du Minitel.
3. Cryptographie : - généralités : terminologie, les différentes attaques, les objectifs de la
cryptographie, clé publique, clé privée ; - cryptographie élémentaire : codage par
substitution par transposition ; - cryptographie à clé privée : DES ; - cryptographie à
clé publique : RSA ; - cryptographie basée sur le problème du sac à dos.
4. Diagrammes de décisions binaires - fonctions booléennes, expressions booléennes,
formes normales ; - arbre de décision binaire ; diagrammes de décision binaire ; opérations sur les BDD ; - applications.
5. Géométrie algorithmique : - localisation d'un point dans le plan ; - algorithmes pour
l'enveloppe convexe ; - diagrammes de Voronoi
UE 5 ou 6 : Algorithmique parallèle et distribuée
Objectif : Comprendre les possibilités et les limites du calcul parallèle ou distribué. Etre
capable de concevoir de tels algorithmes.
1. Algorithmes parallèles : - analyse des algorithmes classiques : calcul des sommes
préfixes, list ranking, algorithmes de fusion de liste, calcul des composantes connexes
; - les différentes notions d'optimalité ; - les possibilités et les limites du traitement
parallèle.
2. Algorithmes distribués : - modèles synchrone et asynchrone, propriétés des
communications ; - algorithmes de base : élection, recherche en profondeur, plus court
chemin, arbre de recouvrement minimal ; temps logiques ; photographies et détection
de propriétés stables (compléments des algorithmes traités dans le tronc commun) ; aspect tolérance aux pannes : classification des défaillances, présentation des
problèmes d'accord, algorithmes ou résultats d'impossibilité ; - réalisation de
communications fiables, fifo, causal, atomique... (avec ou sans défaillances).
Bibliographie
Jaja : An introduction to parallel algorithms, Addison Wesley.
N. Lynch : Distributed Algorithms, Morgan Kaufmann, 96.
UE 5 ou 6 : Infographie
Objectif : Présentation des principes et des méthodes à la base de l'Infographie. Une large
place est faite à la géométrie algorithmique et aux développements récents liés à la synthèse
d'images. Pour réaliser leurs projets, les étudiants ont accès à des systèmes graphiques de la
dernière génération (Evans et Sutherland, SUN, ...)
1. Introduction au système graphique : - architecture ; - logiciel graphique standard.
2. Traitement d'image : - transformée rapide de Fourier ; - échantillonnage ; - analyse
d'images (amélioration, compression, ...).
3. Mathématiques pour la synthèse d'image : - transformation ; - projections.
4. Courbes et surfaces (B-Spline, Bezier).
5. Elimination des lignes et surfaces cachées.
6. Géométrie fractale et applications.
7. Le tracé de rayon.
8. Textures.
Bibliographie
B. Péroche : La synthèse d'image, 1988,
Hermes. D.F. Rogers : Procedural Elements for Computer Graphics, 1985, International
Student Edition.
J.D. Foley, A. Van dam, S.K. Feiner, J.F. Hugues : Computer Graphics, 1990, Addison
Wesley.
UE 5 ou 6 : Intelligence artificielle
Objectif : Connaître les problèmes qui relèvent de l'IA et les méthodes permettant de les
traiter.
1. Programmation logique, étude du langage PROLOG.
2. Représentation et résolution de problèmes, graphes d'états, recherches heuristiques,
algorithme Ao*.
3. Systèmes experts, représentation et élaboration de connaissances, moteurs d'inférence,
explications, métaconnaissances, traitement de l'incertitude ; maintenance de
cohérence. Satisfaction de contraintes (Constraint Satisfaction Problem).
4. Agent intelligent.
Bibliographie Bratko : Programmation en PROLOG pour l'Intelligence artificielle,
Interéditions, 1988.
UE 5 ou 6 : Structures algébriques de l'informatique






Monoïdes et demi-anneaux : demi-groupes et monoïdes, fermeture transitive et son
calcul, sous-monoïdes, morphismes de monoïdes, parties rationnelles et
reconnaissables d'un monoïde
Le monoïde libre : équations sur les mots, combinatoire des mots
Théorème de Kleene : automates finis, déterminisation, minimisation, algorithmes de
passage d'expressions rationnelles à des automates finis et inverse
Arbres et algèbres libres : arbres représentés, F-algèbre, filtrage et unification
Systèmes d'équations : théorème du point fixe, systèmes d'équations dans les mots et
dans les arbres
Systèmes de réécriture : confluence, systèmes de réécriture dans les mots et dans les
arbres
UE 5 ou 6 : Théorie de la Programmation





Outils formels
o termes formels, substitution, filtrage, unification.
o relation de réduction : notions de confluence et de terminaison
o systèmes de réécriture du premier ordre
o lambda-calcul : étude de la réduction, étude du typage
Programmation fonctionnelle
o présentation du langage Objective Caml et programmation des principaux
algorithmes sur les termes
Description formelle d'un langage de programmation
o syntaxe concrète et syntaxe abstraite
o portée des identificateurs et notion d'environnement
o règles de typage statique
o règles d'évaluation
Approches de la vérification de programmes
o programmation impérative et invariants, logique de Hoare
o logique d'ordre supérieure et spécification de programmes fonctionnels
Mise en Oeuvre
o réalisation d'un vérificateur de types puis d'un synthétiseur de types
o réalisation d'un évaluateur
UE 5 ou 6 : Utilisation des automates en algorithmique
Chaque année, 2 ou 3 thèmes sont traités parmi :
1. Modélisation de processus infinitaires : - mots infinis ; - automates de Büchi, de
Muller ; automates alternants ; - langages déterministes.
2. Logique sur les mots : - logique du premier ordre et du second ordre, logique
temporelle ; - liens avec les langages rationnels et sans étoile ; - algorithmes pour
tester la satisfaisabililté d'une formule ; - application à la vérification de systèmes
informatiques.
3. Reconnaissance de motif (string-matching) Les méthodes de base étant supposées
connues depuis la Licence, l'idée est d'introduire des méthodes plus avancées : - une
méthode approchée : les différentes méthodes de reconnaissance avec erreurs d'un
motif ; - reconnaissance d'une occurrence d'un motif dans un ensemble : l'algorithme
de Aho-Corasick.
4. Dictionnaire Le problème posé est celui de la définition d'une structure de données
efficace implémentant un index "long" (exemple : un dictionnaire, une encyclopédie,
une brochure technique...) : - arbre des suffixes : Algorithmes de Creight et de Wiener
; - graphe acrylique des suffixes ; - automates des suffixes : version classique et
version " condensée " (les transitions sont définies par des mots, non par des lettres).
5. Application aux problèmes du génome : - recherche de répétitions dans un texte ; statistique sur les fréquences d'apparition des facteurs ; - comparaison de mots
(problème d'alignements de séquences génomiques par programmation dynamique).
6. Systèmes de numération : - arithmétique dans des bases non classiques de numération
(Avezienis, Fibonacci,....) ; - problème d'ambiguité et de recherche de représentant
canonique ; - complexité des opérations arithmétiques dans ces bases.
2. Programmes des UE de mathématiques
UE 4 : Algèbre : Anneaux et corps (maîtrise, premier semestre)


Anneaux
o Anneaux euclidiens ; exemples. Anneaux principaux.
o Élément irréductible. Factorisation dans Z[X], critère d'irréductibilité.
o L'anneau K[X]/(P)
Corps
o Caractéristique
o Élément algébrique. Extension algébrique, degré d'une extension finie.
o Corps de rupture d'un polynôme irréductible, corps des racines d'un polynôme.
o Corps finis. Factorisation de polynômes à coefficients dans Fq, algorithme de
Berlekamp.
UE 7 ou 8 : Codes et cryptographie (maîtrise, deuxième semestre)


Codes correcteurs
o Espace de Hamming, distance de Hamming.
o Théorème de Shannon. Bornes usuelles (Gilbert, Hamming, Plotkin,
Singleton).
o Codes t-correcteurs, codes parfaits, codes MDS.
o Codes linéaires. Codes cycliques.
o Codes usuels: codes de Hamming, de Golay, de Reed-Muller, de ReedSolomon, codes BCH.
o Le codage CIRC des CD.
o Très éventuellement: réseaux associés aux codes binaires; automorphismes de
codes, cas des codes de Hamming, du code de Golay G23. Rapport avec les
géométries finies; t-designs.
Cryptographie
o Rappels sur le code RSA, sur DES.
o Signature sécurisée.
o
o
o
preuves sans apport d'information (``zero knowledge'').
Méthodes de factorisation: méthodes p- 1 et de Pollard, crible quadratique,
méthode ECM (pour cette dernière, on définira de manière élémentaire les
courbes elliptiques et leur loi de groupe, en admettant l'associativité - ou en la
démontrant par du calcul formel.)
Problème du logarithme discret: plus particulièrement, dans le cas de
Fp*(méthode , méthodes de cribles).
Bibliographie
[1] J. H. Van Lint, Introduction to coding theory, 3rd edition, Springer, 1999.
[2] M. Demazure, Cours d'algèbre : primalité, divisibilité, codes, Cassini, 1997.
[3] N. Koblitz, A course in number theory and cryptography, 2nd edition, Springer,
1994.
[4] G. Zémor, Cours de cryptographie, Cassini, 2000.
UE 7 ou 8 : Analyse (maîtrise, deuxième semestre)
Ce cours traitera des chapitres choisis d'analyse. Voici une liste (non exhaustive) de
possibilités :







Analyse de Fourier : Transformation de Fourier, séries de Fourier, formule de Poisson.
Ondelettes. Équations aux dérivées partielles.
Équations différentielles : Théorèmes d'existence et d'unicité. Équations à variables
séparées. Équation de Newton. Équations différentielles linéaires.
Fonctions d'une variable complexe : Séries entières, rayon de convergence, fonctions
analytiques. Fonctions holomorphes, théorie de Cauchy. Principe du maximum.
Fonctions méromorphes. Résidus. Applications.
Analyse fonctionnelle : Norme d'une application linéaire. Espaces de Banach. Parties
et applications convexes. Espaces lp. Espaces normés de dimension finie. Théorème de
Banach-Steinhaus. Théorème du graphe fermé. Théorème de Hahn-Banach.
Théorie spectrale : Opérateurs compacts. Théorie de Fredholm. Opérateurs
autoadjoints : décomposition spectrale.
Traitement du signal : voir le programme de l'UE de Maîtrise MIM 31MIM062
Analyse numérique : voir le programme de l'UE de Maîtrise MIM 31MIM032
UE 3 : Probabilités (maîtrise, premier semestre)





Le modèle probabiliste
o Variables aléatoires réelles et vectorielles
o Lois de probabilités, fonctions caractéristiques
Moments, covariances et régression linéaire
Indépendance et conditionnement
Vecteurs gaussiens
Convergences
o convergence presque-sûre, en probabilité
o Lois des grands nombres
o Théorème central limite
UE 7 ou 8 : Statistique et Modélisation (maîtrise, deuxième
semestre)







Simulation de variables aléatoires
o méthode d'inversion
o méthode de rejet
Notion de modèle statistique
o modélisation, erreur expérimentale
o modèle binomial, de Poisson, exponentiel, normal
Introduction à l'estimation
o méthodes des moments
o principe du maximum de vraisemblance
o lois limites des estimateurs
o construction d'intervalles de confiance
Introduction à la théorie des tests
o Test de Neyman-Pearson
o Test du 2
Fonction de répartition empirique
o Théorème de Glivenko-Cantelli
o Test de Kolmogorov-Smirnov
Calcul approché d'intégrales par méthodes de Monte-Carlo
o validation des résultats numériques
o réduction de la variance
Modèle linéaire gaussien
o vecteurs gaussiens
o Théorème de Cochran
o estimation par les moindres carrés
o Test de Fisher, de Student
UE 3 : Logique (maîtrise, premier semestre)
Décidabilité et méthodes de démonstration automatique :



Elimination des quantificateurs.
Application de l'élimination des quantificateurs, par exemple à la décidabilité de
certaines arithmétiques faibles (arithmétique de Presburger).
Extensions de la méthode des tableaux à la logique du premier ordre.
Indécidabilité et incomplétude:





Schéma d'induction. Arithmétique de Peano. Ensembles -définissables.
Prouvabilité dans l'arithmétique. Fonctions représentables.
Rapports avec les notions de fonction calculable et de problème indécidable.
Indécidabilité de l'arithmétique de Peano et de la logique du premier ordre. Théorèmes
d'incomplétude de Gödel.
Réductions d'un problème à un autre. Problèmes complets dans une classe.
UE 7 ou 8 : Algorithmes probabilistes et complexité (maîtrise,
deuxième semestre)
L'objectif de cet enseignement est une présentation de méthodes algorithmiques récentes
utilisées dans différentes domaines tles que l'arithmétique, la cryptographie, la théorie des
graphes et la géométrie algorithmique ainsi qu'une introduction à la mesure de complexité de
ces algorithmes. Le fil conducteur est l'utilisation de résultats provenant de ces diverses
branches des mathématiques pour prouver la correction des algorithmes présentés.







Rappels sur les classes de complexité : P et NP et sur les problèmes NP-complets.
Algorithmes de Las Vegas et de Monté Carlo. Classes de complexité probabilistes
(PP, RP et BPP).
Le problème de primalité est dans P et co-P.
Test de primalité (Solovay-Strassen). Algorithme de Rabin-Miller.
Echantillonnage aléatoire. Inégalité de Markov. Borne de Chernoff.
Exemples en géom'etrie algorithmique (enveloppe convexe d'un ensemble de points).
Exemples d'algorithmes sur les graphes (coupure minimale).
Bibliographie
[1] R. Lassaigne et M. de Rougemont, Logique et complexité, Hermès, 1996.
[2] R. Motwani et P. Raghavan, Randomized algorithms, Cambridge University Press,
1995.
[3] C. Papadimitriou, Computational Complexity, Addison Wessley, 1994.
Téléchargement