Projet de programmation
Licence MPCI
2`eme anee
2015 - 2016
Fran¸cois Denis
1
1 Introduction
1.1 L’unit´e Projet de programmation
Objectif : Mettre en oeuvre les connaissances en programmation.
Contenus :
Retour sur les notions de classes,objets,ef´erences et h´eritage.
Le projet devra permettre d’utiliser des algorithmes et des structures
de donn´ees vues en cours ou qui en sont un prolongement. Il devra
se faire en Python 1et permettre la mise en oeuvre des techniques
de G´enie logiciel standard (r´edaction de documentation, architecture,
test unitaires, ...) permettant d’introduire `a la notion de qualit´e lo-
gicielle.
D´eveloppement d’un projet assez volumineux permettant de compl´eter
les connaissances courantes et d’en d’acqu´erir de nouvelles
en algorithmique (programmation dynamique, algorithmique de graphes,
complexit´e et correction des algorithmes, . . .)
en programmation en Python (programmation objet, programmation
modulaire, . . .)
en calcul scientifique (robustesse des algorithmes)
en g´enie logiciel (normes de programmation, tests unitaire, documen-
tation automatique, gestion de version, travail collaboratif, . . .)
et en informatique fondamentale (automates pond´er´es g´en´eralis´es et
s´eries `a valeurs dans un semi-anneau).
Organisation du travail et contrˆole des connaissances :
constitution de groupes de 3 `a 4 ´etudiants
toutes les s´eances ont lieu en salle de TPs (sauf exception)
un examen terminal (ET) individuel de 2 heures (sur machines)
un projet `a rendre (par groupe) + pr´esentation orale
deux contrˆoles individuels (CC) d’une heure sur machine.
NF=max( 2/3*ET + 1/3 *projet ; 1/3*CC + 1/3*projet + 1/3*ET)
1. Le passage de Python 2.7 `a Python 3 n´ecessite un assez grand nombre d’ajustements
et modifications. Les programmes de ce polycopi´e sont en principe test´es pour Python 2.7.
L’annexe 10.1 indique les principales di´erences entre les deux dialectes.
2
2 Automates pond´er´es et s´eries rationnelles
Les equences (ou mots, ou strings) sont des structures lin´eaires qui appa-
raissent tr`es fr´equemment en informatique. Et on a souvent besoin d’utiliser
des fonctions num´eriques qui sont d´efinies sur des ensembles de mots : par
exemple, on peut consid´erer la fonction qui `a un mot associe sa longueur ; ou
la fonction qui `a un mot wassocie 1 si wappartient `a un langage Ldonn´e,
et 0 sinon. Ces fonctions sont appel´ees des eries formelles. Parmi ces fonc-
tions, celles qui peuvent ˆetre calcul´ees au moyen d’automates pond´er´es ont
des propri´et´es alg´ebriques tr`es int´eressantes : on les appelle des s´eries recon-
naissables (ou rationnelles). Ce sont ces fonctions que nous allons ´etudier.
2.1 Semi-anneaux et s´eries formelles
La th´eorie des s´eries rationnelles suppose que l’ensemble des valeurs est
un semi-anneau (semi-ring), structure moins riche que celle de corps ou
d’anneau, mais qui est plus adapt´ee `a un certain nombre d’applications.
efinition 1 Un semi-anneau est un quintuplet hS, +,.,0,1i,o`u
Sun ensemble et o`u +et .sont deux op´erations binaires associa-
tives sur S,
0 et 1 sont respectivement les ´el´ements neutres de +et .,
+est commutative,
.est distributive par rapport `a +,
0 est un ´el´ement absorbant pour .
Autrement dit, 8a, b, c 2S,
— (a+b)+c=a+(b+c)eta.(b.c)=(a.b).c
a+0=0+a=aet 1.a =a.1=a
a+b=b+a
a.(b+c)=a.b +a.c et (a+b).c =a.c +b.c
— 0.a =a.0 = 0.
Exemple 1 Tout anneau est un semi-anneau et donc, en particu-
lier : Z,Q,Ret Csont des semi-anneaux.
Comme il n’est pas demand´e que tout ´el´ement ait un ´el´ement op-
pos´e, N,Q+et R+sont des semi-anneaux.
Soit B={0,1}o`u on d´efinit 1+1=1.1=1. On obtient ainsi le
semi-anneau bool´een.
On peut montrer que h[0,1],max,.,0,1iest un semi-anneau, appel´e
le semi-anneau de Viterbi. Il est utilis´e en calcul des probabilit´es.
3
efinition 2 Soit un alphabet fini et soit Sun semi-anneau. On appelle
s´erie formelle toute application r:7! S.
Exemple 2 Soit ={a, b}.
r:7! Nd´efini par r(w)=|w|(longueur de w).
r:7! [0,1] tel que r(w)=1
2(2||)|w|d´efinit une distribution
de probabilit´es sur .
Soit Lle sous-ensemble de compos´e ces mots poss´edant un
nombre pair de aet soit r:7! Bd´efini par r(w)=1si w2Let 0
sinon. La s´erie rest la fonction indicatrice du langage L.Notation:
1L.
On voit que l’on peut identifier les langages sur un alphabet et les
s´eries formelles d´efinies sur et `a valeurs dans B.
2.2 Automates pond´er´es - repr´esentation alg´ebrique.
Les automates pond´er´es sont des g´en´eralisations des automates `a ´etats
finis. Nous en proposons une d´efinition alg´ebrique.
efinition 3 Soit un alphabet fini et soit Sun semi-anneau. Un auto-
mate pond´er´e Aest un triplet hI,(A)2,Ticompos´e
de deux vecteurs I,T 2Sn, pour un entier ndonn´e (la dimension
de l’automate),
d’autant de matrices carr´es A2Snnqu’il y a de lettres dans
l’alphabet.
Exemple 3 Soit ={a, b}et S={0,1}le semi-anneau bool´een. On peut
d´efinir un automate pond´er´e en posant
I=(1,0)>,T=(1,0)>,Aa=01
10
et Ab=10
01
.
Notation : si A=hI,(A)2,Tiest un automate pond´er´e et si w=
w1w2...w
nest un mot de , on note Awla matrice carr´ee Aw=Aw1Aw2...A
wn.
Si d´enote le mot vide, on identifie par convention A`a la matrice identit´e.
efinition 4 Un automate pond´er´e A=hI,(A)2,Tisur d´efinit une
s´erie formelle rApar
rA(w)=I>AwT.
Exemple 4 Avec l’automate pond´er´e de l’exemple 3, on a
4
q1
1
1
q2
b, 1
a, 1
b, 1
a, 1
Figure 1 – Repr´esentation graphique de l’automate de l’exemple 3. Il calcule
la fonction indicatrice du langage Lde l’exemple 2.
r()=I>T=1,
r(a)=I>AaT=0,
r(aba)=I>AaAbAaT=1.
Les automates pond´er´es admettent une repr´esentation graphique natu-
relle. Soit A=hI,(A)2,Tiun automate pond´er´e de dimension n:
on d´efinit un ensemble d’´etats Q={q1,...,q
n},
pour chaque coordonn´ee I[i]deI, on place une fl`eche entrante dans
l’´etat qi´etiquet´ee par I[i],
pour chaque coordonn´ee T[i]deT, on place une fl`eche sortante de
l’´etat qi´etiquet´ee par T[i],
pour chaque lettre et chaque coecient A[i, j] de la matrice A,
on place un arc orient´e de qivers qj´etiquet´e par ,A
[i, j].
Par convention, on ne place ni arc, ni fl`eche pour un param`etre ´egal `a 0.
Exercice 1
Soit ={a}. On d´efinit un automate pond´er´e en posant
I=(1,0)>,T=(0,1)>,Aa=11
01
.
1. Repr´esenter graphiquement cet automate.
2. Quel fonction calcule t-il
(a) si S=B,
(b) si S=N?
Exercice 2 La figure 2 repr´esente un automate probabiliste.
1. Essayez de comprendre quelle exp´erience il mod´elise.
5
1 / 51 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !