Académique Documents
Professionnel Documents
Culture Documents
Semaine 1/2:
- Informatique : sur ordi
• La simulation de modèles + opti de solutions
• Automatisation d’un certain nb de taches
• Orga, transfert, recherche d’infos
- Ordinateur :
• Ensemble d’automates programmables
• Automate = dispositif capable d’assurer sans intervention humaine, un
enchainement d’opérations correspondant à la réalisation d’une tache donnée
(montre, “ramasse-quilles”)
- Automate programmable = la nature deal tâche qu’il est capable de réaliser peut
être modifié à volonté => grâce à un
programme
• Machine de Turing universelle
• Doit permettre la description des différents
traitement que l’on veut automatiser =>
combinaison de données + opérations
- Programmation :
• Décomposer la tache à automatiser sous la forme d’une séquence d’instructions
• La formalisation des traitements passe par les algorithmes (distinguent les bons
des mauvais traitements)
• La formalisation des données se fait à travers des structures de données
abstraites (distinguer les bonnes des mauvaises structures)
• La conception consiste à choisir les bons traitements et les bonnes structures
- Algo ≠ Programme
• Un algo est indep du langage de prog dans lequel on va l’exprimer
• Algo = partie conceptuelle —> moyen pour un humain de repr senter (pour un
autre humain ou une machine) la r solution d’un probl me donn
• Prog = réalisation d’un algorithme dans un langage de prog spécifique
- Algo : Méthodologie
• Bien identifier le problème (entrées/sorties/quelle question)
• Trouver un algo correct
• Trouver l’algo le plus efficace possible
• Exemple d’algol résoudre une
équation du second degré:
- Instruction élémentaire :
• Une instruction l mentaire est
une instruction dont le co t
d’ex cution est constant
é
é
é
û
é
è
é
é
(négligeable devant la taille des données manipulées par les algo écrits avec ce
jeu d’instructions)
- Complexité d’un algo :
• Nombre d’instructions
l mentaires n cessaires un
algorithme pour donner la r ponse
dans le pire des cas.
• Les tris sont très importantes en
pratique (interviennent souvent
dans bcp d’algos)
• Complexité de types de
tris
Semaine 3:
- Conception d’algo :
• Une premi re d marche consiste rechercher une ressemblance avec des
probl mes d j connus (recherche tri plus court chemin)
• Sinon, il existe plusieurs m thodes de r solution, c’est- -dire des sch mas
d’ laboration de solutions
- Approche descendante :
• Décomposer le problème
général en sous
problèmes plus
spécifiques qui seront
eux memes décomposés
en sous sous problèmes
etc.
- La théorie du calcul :
• Un ensemble S est dénombrable si et seulement si il existe une surjection
f: N* —> S. La fonction f fait le numérotage de S
• Ex: Les entiers Z =…, -3, -2, -1, 0, 1, 2, 3,…., forment un ensemble
dénombrable. On peut prendre la fonction f: N —> Z comme suit :
• Si i est pair, alors f(i) = i/2
• Si i est impair, alors f(i) = -(i-1)/2
• Est ce que N² est dénombrable ? => OUI
• Les algorithmes sont dénombrables :
-Un algo est simplement un texte écrit à l’aide
d’un alphabet choisi. Il est facile d’énumérer
(numéroter) tous les textes possibles dans un ordre
lexicographique :
•Commençons par énumérer les textes d’un seul
élément (a,b,c,d,e,f,…)
•Continuons avec les textes de deux caractères
(aa, ab, ac, ad, ae,…)
•Y a-t-il des fonctions non dénombrables?
-Les fonctions booléennes ne sont pas
dénombrables => bcp plus de fonctions
booléennes que d’algorithmes
• Problème de l’arrêt :
- Existe-t-il un algorithme A qui étant donné un autre algorithme P et des données
x, décide si P, appliquée à x, s’arrête ou non ?
- Théorème: Il n’existe pas d’algorihtme pour résoudre le problème d’arrêt
(preuve par l’absurde, voir transparent)
- Complexité de Kolmogorov de n (notée K(n)) est la longueur minimale d’un
algorithme qui produise n
- Théorème: La complexité de Kolmogorov n’est pas calculable => il
n’existe pas d’algo pour déterminer K(n)
- Théorie de la complexité :
• Prendre la mesure d’un problème :
- Comment savoir si un algo est le plus efficace possible ? => c’est une
caractéristique d’un problème pas d’un algo
- Le théorie du calcul partage les problèmes entre ceux qui peuvent et ceux qui ne
peuvent pas être résolus par le calcul.
• La théorie de la complexité n’étudie que les problèmes pour lesquels un
algorithme de solution existe et partage ces problèmes en fonction de
demandes de temps ou d’espace de l’algorithme le plus efficace possible pour
chaque problème. Il y a une hiérarchie de classes de complexité
- Algorithme “pratique”
• En général, un algorithme “pratique” prend au plus un temps de calcul
cubique (rappel : la mesure est en fct de la taille de l’entrée), que l’on va
généraliser à temps polynomial
• Résoudre en tps polynomial : P
- Tps polynomial => espace polynomial
- Oracles, certificats et vérifications:
• Oracle = algo qui est capable de résoudre en θ(1)
Réponse d’un oracle va être vérifié avec un certificat = prouve que la rep est
correcte, NP = vérifiable en un temps polynomial
- La plupart des problèmes d'optimisation, de vérification, et de prédiction sont
dans NP, mais apparemment pas dans P. Pourtant il faut tout de même bien
produire des algorithmes et des réponses (en un temps raisonnable).
- Alors que faire?
• solutions exactes qui ne marchent que pour des cas particuliers
• solutions inexactes, mais avec
certaines garanties par exemple, le
débit maximum sera au pire 20% de
moins que la valeur optimale
• solutions heuristiques, souvent
excellentes, mais sans garanties par
exemple, solutions dites « gloutonnes
»
• solutions probabilistes, à l'aide d'un
générateur de nombres aléatoires, qui
donnent des garanties en moyenne
Semaine 5:
- Représenter des nombres est une convention, pour faciliter l’activité d’un gré
utilisateur —> il n’y a pas de représentation universelle
- Quel est l’unité élémentaire utilisé dans l’information ? Quel est l’alphabet minimum
qui permettrait de représenter efficacement tous les nombres (entiers)?
• Le système binaire est le système de signes le plus simple our
représenter les nombres efficacement (en log(n) symboles)
- Par convention on utilise 0, et 1 comme éléments binaires
- “Binary digit” est abrégé
bit
- Un octet, 2⁸= 256
informations
- Représentation des nombres
entiers
• Positifs et nuls :
- Convention d’interprétation notation positionnelle en base 2
• Poids forts à gauche et poids faibles à droite
• Du binaire vers le décimal : additionner les puissances de 2 dans le motif
binaire
• Du décimal vers le binaire : décomposer un nombre entier X en une somme
de puissances de 2 par des divisions entières successives tant que le quotient
>=2
• Les calculs sur les entiers sont exactes si le résultat est un entier et appartient
au domaine recouvert
- Causes de dépassement de capacité :
- Division => perte de partie fractionnelle (résultat n’est pas un entier)
- Multiplication, addition, soustraction => sortie du domaine couvert
(ex: pour les entiers sur
32 bits, quand le résultat
n’est pas compris entre 0
et 2³²-1)
• Entiers négatifs :
- Le motif binaire de (2^n -1) est une bonne représentation de -1 car on obtient 0
quand il est ajouté à 1
- Propriétés à vérifier :
• a+b=0
• -(-a)=a
- Avec n bits, on pose que l’opposé d’un nombre, x, est donné par 2^n -x, appelé
complément de 2 à x
- Comment calculer l’opposé (2^n-x) d’un nombre x ?
• Une transformation est nécessaire pour:
• Faire apparaitre des quantités représentables sur n bits
• Les manipuler à l’aide d’opérations simples
• Cas particulier :
• Il est très facile de calculer ((2^n-1)-x).
• Il suffit d’inverser chaque bit de x 0—>1 et 1—>0
• Cette valeur est appelée complémentaire à 1 de x
• Complémentaire à 2 de x = (complémentaire à 1 de x) + 1
• ATTENTION : il s’agit bien
d’une nouvelle convention : de
fait, le bit de poids fort est utilis
pour le signe :10000001 ne
s’interpr te plus comme 129,
mais bien comme −127
• Domaine couvert : de (−2^n−1)
(2^(n−1) − 1)
- Représentation des nombres décimaux :
• La virgule flottante : Pourquoi ?
Comment ?
- En repr sentation virgule fixe sur
n bits, les 2n valeurs repr sent es sont uniform ment r parties dans un intervalle
[MIN, MAX] fix et s par es par la quantit α :
- Erreur relative sur le domaine couvert :
à
é
è
é
à
é
é
é
é
é
é
é
é
• L’erreur relative décrit l’importance relative de l’erreur de discrétisation δx
par rapport au nombre à représenter x.
• ⎮δx⎮/ ⎮x⎮ n’est pas uniforme sur le domaine couvert
- Erreur relative uniforme ?
• Le compromis retenu: garantir une erreur relative uniforme veut dire accepter
une croissance de l’erreur de discrétisation au sein du domaine couvert
- Représentation en virgule flottante => notation scientifique en base 2
• Comporte 3 parties qui se partagent le nombre de bits à disposition: le signe,
l’exposant de la base 2 et le nombre normalisé en base 2.
• La partie fractionnaire du nombre normalisé est appelé la mantisse
• Particularité d la base 2 : le chiffre le plus significatif du nombre normalisé est
constant et toujours égal à 1. Il est donc
implicite.
• Erreur relative maximum est définie par la
puissance la plus faible de la mantisse
Semaine 6 (Module 2)
- Soit X(t) une sinusoïde pure dont la fréquence est plus petite ou égale à f. Pour
pouvoir reconstruire cette sinusoïde, à partir de sa version échantillonnée à la
fréquence fe > 2f
- Sinon si fe< 2fmax —> effet stroboscopique
Semaine 8:
Semaine 9:
- Entropie
• L’entropie est un nombre moyen de questions nécessaires pour deviner une lettre
choisie au hasard dans une séquence.
• Soit X une distribution de probabilités pj (par construction 0 ≤ pj ≤ 1 pour tout j, et p1
+… + pn =1)
• L’entropie est définie par :
Semaine 10:
- Généralisation de l’algorithme de Shannon-Fano