Un programme Lustre définie un traitement sur des flots de données, c’est `a dire qu’il définie quelles sont les valeurs de sorties en fonction des valeurs entrées `a tout instant. Il est parfaitement adapté pour programmer des taches temps réel et il est basé sur la notion de synchronisme fort.
Un programme Lustre définie un traitement sur des flots de données, c’est `a dire qu’il définie quelles sont les valeurs de sorties en fonction des valeurs entrées `a tout instant. Il est parfaitement adapté pour programmer des taches temps réel et il est basé sur la notion de synchronisme fort.
Le document contient l'énoncé de l'épreuve de modélisation mathématiques.informatique pour la banque d'écoles Agro/Véto 2017. La correction se trouve sur le même site.
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...OCTO Technology
Par Nicolas Bordier (Consultant numérique responsable @OCTO Technology) et Alaric Rougnon-Glasson (Sustainable Tech Consultant @OCTO Technology)
Sur un exemple très concret d’audit d’éco-conception de l’outil de bilan carbone C’Bilan développé par ICDC (Caisse des dépôts et consignations) nous allons expliquer en quoi l’ACV (analyse de cycle de vie) a été déterminante pour identifier les pistes d’actions pour réduire jusqu'à 82% de l’empreinte environnementale du service.
Vidéo Youtube : https://www.youtube.com/watch?v=7R8oL2P_DkU
Compte-rendu :
Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...OCTO Technology
par Claude Camus (Coach agile d'organisation @OCTO Technology) et Gilles Masy (Organizational Coach @OCTO Technology)
Les équipes infrastructure, sécurité, production, ou cloud, doivent consacrer du temps à la modernisation de leurs outils (automatisation, cloud, etc) et de leurs pratiques (DevOps, SRE, etc). Dans le même temps, elles doivent répondre à une avalanche croissante de demandes, tout en maintenant un niveau de qualité de service optimal.
Habitué des environnements développeurs, les transformations agiles négligent les particularités des équipes OPS. Lors de ce comptoir, nous vous partagerons notre proposition de valeur de l'agilité@OPS, qui embarquera vos équipes OPS en Classe Business (Agility), et leur fera dire : "nous ne reviendrons pas en arrière".
OCTO TALKS : 4 Tech Trends du Software Engineering.pdfOCTO Technology
En cette année 2024 qui s’annonce sous le signe de la complexité, avec :
- L’explosion de la Gen AI
-Un contexte socio-économique sous tensions
- De forts enjeux sur le Sustainable et la régulation IT
- Une archipélisation des lieux de travail post-Covid
Découvrez les Tech trends incontournables pour délivrer vos produits stratégiques.
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)Laurent Speyser
(Conférence dessinée)
Vous êtes certainement à l’origine, ou impliqué, dans un changement au sein de votre organisation. Et peut être que cela ne se passe pas aussi bien qu’attendu…
Depuis plusieurs années, je fais régulièrement le constat de l’échec de l’adoption de l’Agilité, et plus globalement de grands changements, dans les organisations. Je vais tenter de vous expliquer pourquoi ils suscitent peu d'adhésion, peu d’engagement, et ils ne tiennent pas dans le temps.
Heureusement, il existe un autre chemin. Pour l'emprunter il s'agira de cultiver l'invitation, l'intelligence collective , la mécanique des jeux, les rites de passages, .... afin que l'agilité prenne racine.
Vous repartirez de cette conférence en ayant pris du recul sur le changement tel qu‘il est généralement opéré aujourd’hui, et en ayant découvert (ou redécouvert) le seul guide valable à suivre, à mon sens, pour un changement authentique, durable, et respectueux des individus! Et en bonus, 2 ou 3 trucs pratiques!
L'IA connaît une croissance rapide et son intégration dans le domaine éducatif soulève de nombreuses questions. Aujourd'hui, nous explorerons comment les étudiants utilisent l'IA, les perceptions des enseignants à ce sujet, et les mesures possibles pour encadrer ces usages.
Constat Actuel
L'IA est de plus en plus présente dans notre quotidien, y compris dans l'éducation. Certaines universités, comme Science Po en janvier 2023, ont interdit l'utilisation de l'IA, tandis que d'autres, comme l'Université de Prague, la considèrent comme du plagiat. Cette diversité de positions souligne la nécessité urgente d'une réponse institutionnelle pour encadrer ces usages et prévenir les risques de triche et de plagiat.
Enquête Nationale
Pour mieux comprendre ces dynamiques, une enquête nationale intitulée "L'IA dans l'enseignement" a été réalisée. Les auteurs de cette enquête sont Le Sphynx (sondage) et Compilatio (fraude académique). Elle a été diffusée dans les universités de Lyon et d'Aix-Marseille entre le 21 juin et le 15 août 2023, touchant 1242 enseignants et 4443 étudiants. Les questionnaires, conçus pour étudier les usages de l'IA et les représentations de ces usages, abordaient des thèmes comme les craintes, les opportunités et l'acceptabilité.
Résultats de l'Enquête
Les résultats montrent que 55 % des étudiants utilisent l'IA de manière occasionnelle ou fréquente, contre 34 % des enseignants. Cependant, 88 % des enseignants pensent que leurs étudiants utilisent l'IA, ce qui pourrait indiquer une surestimation des usages. Les usages identifiés incluent la recherche d'informations et la rédaction de textes, bien que ces réponses ne puissent pas être cumulées dans les choix proposés.
Analyse Critique
Une analyse plus approfondie révèle que les enseignants peinent à percevoir les bénéfices de l'IA pour l'apprentissage, contrairement aux étudiants. La question de savoir si l'IA améliore les notes sans développer les compétences reste débattue. Est-ce un dopage académique ou une opportunité pour un apprentissage plus efficace ?
Acceptabilité et Éthique
L'enquête révèle que beaucoup d'étudiants jugent acceptable d'utiliser l'IA pour rédiger leurs devoirs, et même un quart des enseignants partagent cet avis. Cela pose des questions éthiques cruciales : copier-coller est-il tricher ? Utiliser l'IA sous supervision ou pour des traductions est-il acceptable ? La réponse n'est pas simple et nécessite un débat ouvert.
Propositions et Solutions
Pour encadrer ces usages, plusieurs solutions sont proposées. Plutôt que d'interdire l'IA, il est suggéré de fixer des règles pour une utilisation responsable. Des innovations pédagogiques peuvent également être explorées, comme la création de situations de concurrence professionnelle ou l'utilisation de détecteurs d'IA.
Conclusion
En conclusion, bien que l'étude présente des limites, elle souligne un besoin urgent de régulation. Une charte institutionnelle pourrait fournir un cadre pour une utilisation éthique.
Le document contient l'énoncé de l'épreuve de modélisation mathématiques.informatique pour la banque d'écoles Agro/Véto 2017. La correction se trouve sur le même site.
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...OCTO Technology
Par Nicolas Bordier (Consultant numérique responsable @OCTO Technology) et Alaric Rougnon-Glasson (Sustainable Tech Consultant @OCTO Technology)
Sur un exemple très concret d’audit d’éco-conception de l’outil de bilan carbone C’Bilan développé par ICDC (Caisse des dépôts et consignations) nous allons expliquer en quoi l’ACV (analyse de cycle de vie) a été déterminante pour identifier les pistes d’actions pour réduire jusqu'à 82% de l’empreinte environnementale du service.
Vidéo Youtube : https://www.youtube.com/watch?v=7R8oL2P_DkU
Compte-rendu :
Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...OCTO Technology
par Claude Camus (Coach agile d'organisation @OCTO Technology) et Gilles Masy (Organizational Coach @OCTO Technology)
Les équipes infrastructure, sécurité, production, ou cloud, doivent consacrer du temps à la modernisation de leurs outils (automatisation, cloud, etc) et de leurs pratiques (DevOps, SRE, etc). Dans le même temps, elles doivent répondre à une avalanche croissante de demandes, tout en maintenant un niveau de qualité de service optimal.
Habitué des environnements développeurs, les transformations agiles négligent les particularités des équipes OPS. Lors de ce comptoir, nous vous partagerons notre proposition de valeur de l'agilité@OPS, qui embarquera vos équipes OPS en Classe Business (Agility), et leur fera dire : "nous ne reviendrons pas en arrière".
OCTO TALKS : 4 Tech Trends du Software Engineering.pdfOCTO Technology
En cette année 2024 qui s’annonce sous le signe de la complexité, avec :
- L’explosion de la Gen AI
-Un contexte socio-économique sous tensions
- De forts enjeux sur le Sustainable et la régulation IT
- Une archipélisation des lieux de travail post-Covid
Découvrez les Tech trends incontournables pour délivrer vos produits stratégiques.
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)Laurent Speyser
(Conférence dessinée)
Vous êtes certainement à l’origine, ou impliqué, dans un changement au sein de votre organisation. Et peut être que cela ne se passe pas aussi bien qu’attendu…
Depuis plusieurs années, je fais régulièrement le constat de l’échec de l’adoption de l’Agilité, et plus globalement de grands changements, dans les organisations. Je vais tenter de vous expliquer pourquoi ils suscitent peu d'adhésion, peu d’engagement, et ils ne tiennent pas dans le temps.
Heureusement, il existe un autre chemin. Pour l'emprunter il s'agira de cultiver l'invitation, l'intelligence collective , la mécanique des jeux, les rites de passages, .... afin que l'agilité prenne racine.
Vous repartirez de cette conférence en ayant pris du recul sur le changement tel qu‘il est généralement opéré aujourd’hui, et en ayant découvert (ou redécouvert) le seul guide valable à suivre, à mon sens, pour un changement authentique, durable, et respectueux des individus! Et en bonus, 2 ou 3 trucs pratiques!
L'IA connaît une croissance rapide et son intégration dans le domaine éducatif soulève de nombreuses questions. Aujourd'hui, nous explorerons comment les étudiants utilisent l'IA, les perceptions des enseignants à ce sujet, et les mesures possibles pour encadrer ces usages.
Constat Actuel
L'IA est de plus en plus présente dans notre quotidien, y compris dans l'éducation. Certaines universités, comme Science Po en janvier 2023, ont interdit l'utilisation de l'IA, tandis que d'autres, comme l'Université de Prague, la considèrent comme du plagiat. Cette diversité de positions souligne la nécessité urgente d'une réponse institutionnelle pour encadrer ces usages et prévenir les risques de triche et de plagiat.
Enquête Nationale
Pour mieux comprendre ces dynamiques, une enquête nationale intitulée "L'IA dans l'enseignement" a été réalisée. Les auteurs de cette enquête sont Le Sphynx (sondage) et Compilatio (fraude académique). Elle a été diffusée dans les universités de Lyon et d'Aix-Marseille entre le 21 juin et le 15 août 2023, touchant 1242 enseignants et 4443 étudiants. Les questionnaires, conçus pour étudier les usages de l'IA et les représentations de ces usages, abordaient des thèmes comme les craintes, les opportunités et l'acceptabilité.
Résultats de l'Enquête
Les résultats montrent que 55 % des étudiants utilisent l'IA de manière occasionnelle ou fréquente, contre 34 % des enseignants. Cependant, 88 % des enseignants pensent que leurs étudiants utilisent l'IA, ce qui pourrait indiquer une surestimation des usages. Les usages identifiés incluent la recherche d'informations et la rédaction de textes, bien que ces réponses ne puissent pas être cumulées dans les choix proposés.
Analyse Critique
Une analyse plus approfondie révèle que les enseignants peinent à percevoir les bénéfices de l'IA pour l'apprentissage, contrairement aux étudiants. La question de savoir si l'IA améliore les notes sans développer les compétences reste débattue. Est-ce un dopage académique ou une opportunité pour un apprentissage plus efficace ?
Acceptabilité et Éthique
L'enquête révèle que beaucoup d'étudiants jugent acceptable d'utiliser l'IA pour rédiger leurs devoirs, et même un quart des enseignants partagent cet avis. Cela pose des questions éthiques cruciales : copier-coller est-il tricher ? Utiliser l'IA sous supervision ou pour des traductions est-il acceptable ? La réponse n'est pas simple et nécessite un débat ouvert.
Propositions et Solutions
Pour encadrer ces usages, plusieurs solutions sont proposées. Plutôt que d'interdire l'IA, il est suggéré de fixer des règles pour une utilisation responsable. Des innovations pédagogiques peuvent également être explorées, comme la création de situations de concurrence professionnelle ou l'utilisation de détecteurs d'IA.
Conclusion
En conclusion, bien que l'étude présente des limites, elle souligne un besoin urgent de régulation. Une charte institutionnelle pourrait fournir un cadre pour une utilisation éthique.
2. 2 Automates finis
I G´n´ralit´s
e e e
I.1 Notion d’automate fini
D´finition 1
e [Automate fini] Un automate fini (non d´terministe) est un 5-uplet
e
A =< Q, A, E, I, T >
o`
u
• Q est un ensemble fini : l’ensemble des ´tats.
e
• A est un alphabet.
• I est une partie de Q : l’ensemble des ´tats initiaux.
e
• T est une partie de Q : l’ensemble des ´tats terminaux (ou finals).
e
• E ⊂ Q × A × Q est l’ensemble des transitions.
a
Lorsque (p, a, q) est une transition de l’automate A, on notera p−→q. On dira que a est
l’´tiquette de cette transition. L’´tat p est l’origine de la transition ; l’´tat q est l’extr´mit´
e e e e e
de cette mˆme transition.
e
I.2 Repr´sentation par un graphe ´tiquet´
e e e
On repr´sente un automate fini par un graphe. Les sommets du graphe sont les ´tats
e e
de l’automate (les ´l´ments de Q). Lorsque le triplet (q, x, q ′ ) appartient ` E, on trace entre
ee a
q et q ′ une arˆte ´tiquet´e par x. On distingue sur le graphe, d’une fa¸on ou d’une autre,
e e e c
les ´tats de d´part et les ´tats accepteurs. Nous adopterons la convention suivante : lorsque
e e e
q est un ´tat de d´part, on fait pointer une fl`che vers le sommet ´tiquet´ par q. Lorsque q
e e e e e
est un ´tat accepteur, on fait partir une fl`che de q vers l’ext´rieur du graphe.
e e e
On a pour l’automate de la figure 1 : A = {a, b}, Q = {1, 2}, I = {1}, T = {1, 2}.
a b
b
1 2
Fig. 1 – Un premier automate
Pour l’automate de la figure 2 , A = {a, b}, Q = {1, 2, 3, 4, 5}, I = {1, 4}, T = {3, 5}. Nous
appellerons A0 cet automate et nous l’utiliserons dans la discussion qui va suivre.
b
a a
1 2 3
a
a
4 5
b
Fig. 2 – Un deuxi`me automate
e
3. Propri´t´s de fermeture des langages reconnaissables
ee 3
I.3 Calculs dans un automate
D´finition 2
e [calcul dans un automate] Soit A = Q, A, E, I, T un automate fini. Soient p et q deux
ai
´tats de A. On appelle calcul dans A toute suite de transitions de la forme qi −→qi+1 ,
e
i = 0 . . . n − 1, l’extr´mit´ de chaque transition ´tant l’origine de la suivante. On note plus
e e e
simplement un tel calcul
a0 a1 a2 an−1
c := q0 −→q1 −→q2 −→ . . . −→qn
L’´tat q0 est l’origine du calcul c, et l’´tat qn est son extr´mit´.
e e e e
On convient ´galement que le calcul vide ε est un calcul d’origine q et d’extr´mit´ q, ceci
e e e
pour tout ´tat q de l’automate.
e
Dans l’automate de la figure 2 , c := ((1, b, 1), (1, a, 2), (2, a, 3)) est un calcul dont l’origine
est l’´tat 1 et l’extr´mit´ est l’´tat 3.
e e e e
D´finition 3
e ´
[Etiquette d’un calcul] Soit c un calcul dans l’automate A. Avec les notations de la
d´finition pr´c´dente, on appelle ´tiquette de c le mot de A∗
e e e e
a0 a1 ...an−1
On note alors
a0 ...an−1
c := q0 −→ qn
L’´tiquette de c est not´e |c| = a0 . . . an−1 .
e e
e
b a a
Dans l’automate de la figure 2 , l’´tiquette du calcul 1−→1−→2−→3 est le mot |c| = baa.
D´finition 4
e [Calcul r´ussi] On dit qu’un calcul dans l’automate A est r´ussi lorsque son origine est un
e e
´tat initial de A, et son extr´mit´ est un ´tat final.
e e e e
D´finition 5
e Langage reconnu. On dit qu’un mot u ∈ A∗ est reconnu (ou accept´) par l’automate A
e
lorsqu’il est l’´tiquette d’un calcul r´ussi dans A. On appelle langage reconnu par l’automate
e e
A l’ensemble des mots reconnus par cet automate :
u
L(A) = {u ∈ A∗ , ∃p ∈ I, ∃q ∈ T, p−→q}.
On dira qu’un langage est reconnaissable lorsqu’il existe un automate fini qui le reconnaˆ
ıt.
On notera Rec(A∗ ) l’ensemble des langages sur l’alphabet A reconnaissables.
L’automate de la figure 2 reconnaˆ les mots aa, baa, bbaa, . . ., a, aba, . . . et plus g´n´rale-
ıt e e
ment les mots du langage (a + b)∗ aa + a(ba)∗ .
On appelle identificateur tout mot sur l’alphabet ASCII commen¸ant par une lettre et
c
´
finissant par une suite de chiffres ou de lettres. Ecrire un automate reconnaissant les iden-
tificateurs.
´
Soit l’alphabet X = {0, 1}. Ecrire un automate reconnaissant le langage des mots binaires
qui sont l’´criture en base 2 d’un multiple de 3.
e
´
On se place sur l’alphabet X = {+, −, 0, 1, ..., 9}. Ecrire un automate reconnaissant les
entiers relatifs ´crits en base 10.
e
Montrer qu’un automate reconnaˆ le mot vide si et seulement si il poss`de un ´tat qui est
ıt e e
` la fois initial et final.
a
4. 4 Automates finis
II Propri´t´s de fermeture des langages recon-
ee
naissables
II.1 R´union de langages reconnaissables
e
Th´or`me 1
e e Rec(A∗ ) est stable par r´union finie.
e
« Il suffit bien sˆr de montrer que la r´union de deux langages reconnaissables est encore
u e
reconnaissable. Soient L1 un langage reconnu par l’automate A1 = Q1 , A, E1 , I1 , T1 et
L2 un langage reconnu par l’automate A2 = Q2 , A, E2 , I2 , T2 . Quitte ` renommer les
a
´tats, on peut supposer que Q1 ∩ Q2 = ∅. Soit l’automate
e
A = Q1 ∪ Q2 , A, E1 ∪ E2 , I1 ∪ I2 , T1 ∪ T2
Alors, A reconnaˆ le langage L1 ∪ L2 .
ıt
«
Nous venons de voir ici la premi`re propri´t´ de stabilit´ des langages reconnaissables
e ee e
par un automate fini. La suite du chapitre permettra de montrer que Rec(A∗ ) est en fait
stable par un tr`s grand nombre d’op´rations sur les langages.
e e
II.2 Langages finis
Th´or`me 2
e e Tout langage fini est reconnaissable.
« Soit u = a0 a1 . . . an−1 ∈ A∗ . L’automate de la figure 3 reconnaˆ le langage ` un seul mot
ıt a
L = {u}. Un langage n’ayant qu’un seul mot est donc reconnaissable. Toute union finie de
langages reconnaissables ´tant encore reconnaissable, un langage fini est donc reconnaissable.
e
«
q0 q1 ... qn
a0 a1 an−1
Fig. 3 – Langage ayant un seul mot
Traiter les cas oubli´s dans la d´monstration ci-dessus : le cas o` le mot u est vide, et le cas
e e u
o` le langage fini est le langage L = ∅.
u
Avant de poursuivre, il nous faut introduire une sous-famille de la famille des auto-
mates : celle des automates standard.
II.3 Automates standard
D´finition 6
e Un automate fini A = Q, A, E, I, T est dit standard lorsque :
• I est un singleton (unique ´tat initial).
e
• L’unique ´tat initial de A n’est l’extr´mit´ d’aucune transition de A.
e e e
Th´or`me 3
e e Si un langage est reconnaissable, il est reconnaisable par un automate standard.
« Soit L un langage, reconnu par l’automate A = Q, A, E, I, T .
Soit A′ = Q ∪ {⌈}, A, E ′ , {⌈}, T ′ o` d est un ´tat n’appartenant pas ` Q, et
u e a
• •T ′ = T si ε ∈ L et T ′ = T ∪ {d} si ε ∈ L.
• •E ′ = E ∪ {(d, x, q ′ ), ∃q ∈ I, (q, x, q ′ ) ∈ E}.
Alors, l’automate A′ reconnaˆ L.
ıt «
5. Propri´t´s de fermeture des langages reconnaissables
ee 5
En gros, on peut dire que le standardis´ d’un automate est obtenu en ¡¡ d´doublant ¿¿ les
e e
transitions issues de ses ´tats initiaux.
e
L’automate de la figure 4 reconnaˆ L = ((b∗ (a2 )∗ )∗ aba)∗ abb(a + b)∗ . Il est ´quivalent `
ıt e a
l’automate standard de la figure 5.
b a, b
a b b
1 2 3 4
a
a
Fig. 4 – Automate non standard
a a, b
b
b a b b
Ω 1 2 3 4
a
a
Fig. 5 – Automate standardis´
e
II.4 Concat´nation de langages reconnaissables
e
Th´or`me 4
e e Soient L1 et L2 deux langages reconnaissables. Alors, le langage L1 .L2 est reconnaissable.
« Soit Ai = Qi , A, Ei , Ii , Ti (i = 1, 2) un automate reconnaissant Li , o` A1 est un auto-
u
mate fini quelconque et A2 est un automate standard. On pose de plus = I2 = {j}. On
d´finit
e
• Q = (Q1 ∪ Q2 ) {d2 }.
• I = I1 .
• T = T2 si j ∈ T2 et T = T1 ∪ T2 {j} si j ∈ T2 .
• E = E1 ∪ E2 ∪ E3 o` E2 = {(q, x, q ′ ) ∈ E2 , q = j} et E3 = {(q, x, q ′ ), q ∈ T1 , (j, x, q ′ ) ∈
′
u ′
E2 }.
Alors, l’automate A = Q, A, E, I, T reconnaˆ L1 .L2 .
ıt «
On peut tr`s bien laisser l’´tat j lorsque l’on concat`ne les deux automates. Cela dit, aucun
e e e
calcul issu d’un ´tat de initial ne pourra y parvenir : cet ´tat est inaccessible.
e e
Nous nous contentons d’indiquer le proc´d´ de fabrication de l’automate A par deux
e e
sch´mas. La d´monstration rigoureuse est laiss´e en exercice.
e e e
Le cas o` j ∈ T2 est r´sum´ dans la figure 6 (avant concat´nation) et la figure 7 (apr`s
u e e e e
concat´nation). Lorsque j ∈ T2 , il faut conserver aux ´tats finals de A1 leur statut accepteur.
e e
i1 a
A1 j A2
b
i2
Fig. 6 – Automates ` “multiplier”
a
6. 6 Automates finis
a
i1
a
A1 A2
b
b
i2
Fig. 7 – Automate reconnaissant le langage produit
Soit L = a b . On construit les deux automates A1 et A2 reconnaissant respectivement
∗ ∗
L1 = a∗ et L2 = b∗ (figure 8). L’automate A2 est standardis´ sur la figure 9 (introduction
e
de l’´tat 3). L’automate A reconnaissant la concat´nation des deux langages est alors donn´
e e e
figure 10 (disparition de l’´tat 3).
e
a b
1 2
Fig. 8 – Automates reconnaissant a∗ et b∗
b
3 2
b
Fig. 9 – Automate standardis´
e
a b
3 2
b
Fig. 10 – Le produit a∗ b∗
II.5 Stabilit´ des langages reconnaissables par fermeture
e
de Kleene (´toile)
e
Th´or`me 5
e e Soit L un langage reconnaissable. Alors, L∗ est reconnaissable.
« Nous nous contentons d’indiquer le principe de construction, tr`s proche de ce qui a ´t´ vu
e ee
lors de la concat´nation. On se donne un automate standard A = Q, A, E, I = {d}, T
e
qui reconnaˆ le langage L. On fabrique ensuite l’automate A = Q {d}, A, E ′ , I, T ∪ I
ıt
o` E ′ = E ∪ {(q, x, q ′ ), q ∈ T, (d, x, q ′ ) ∈ E} (voir figure 11).
u «
a a
a
i A i A′
a b
b b
b
´
Fig. 11 – “Etoile” d’un automate
Prenons pour exemple le langage L = bab. Un automate reconnaissant L est donn´ par la
e
figure 12 (cet automate est d´j` standard). Un automate reconnaissant L∗ , fabriqu´ selon
ea e
la construction du th´or`me, est donn´ ` la figure 13.
e e ea
7. Automates d´terministes
e 7
b a b
1 2 3 4
Fig. 12 – Le langage bab
b a b
1 2 3 4
b
Fig. 13 – Le langage (bab)∗
III Automates d´terministes
e
III.1 Inconv´nients des automates non d´terministes
e e
Le principal inconv´nient d’un automate fini quelconque est son non d´terminisme :
e e
l’acceptation ou le refus d’un mot par l’automate ne peut pas ˆtre trait´e de fa¸on efficace.
e e c
En effet, il faut effectuer tous les calculs possibles des ´tats initiaux vers les ´tats finals,
e e
et regarder si l’un de cescalculs a pour ´tiquette le mot qui nous int´resse. D’un point de
e e
vue algorithmique, cette situation est inacceptable, surtout lorsque l’on sait qu’en pratique,
certains automates peuvent avoir des milliers, voire des millions d’´tats. On rem´die ` cette
e e a
situation en introduisant les automates d´terministes, pour lesquels il n’y a qu’une seule
e
fa¸on d’effectuer un calcul donn´.
c e
D´finition 7
e [Automate fini d´terministe]
e Soit A = Q, A, E, I, T un automate fini. On dit que A
est d´terministe lorsque :
e
• Il y a un unique ´tat initial.
e
• Pour tout ´tat q ∈ Q et toute lettre x ∈ A, il existe au plus un ´tat q ′ ∈ Q tel que
e e
x
q −→q ′ .
E peut donc ˆtre vu comme le graphe d’une fonction δ : Q × A → Q, que l’on appelle
e
la fonction de transition de l’automate.
Si, mieux que cela, δ est une application, alors l’automate est qualifi´ d’automate fini
e
d´terministe complet (AFDC).
e
´
III.2 Equivalence entre AFD et AFDC
Th´or`me 6
e e Tout AFD est ´quivalent a un AFDC.
e `
En clair, ´tant donn´ un automate d´terministe A, il existe un automate d´terministe
e e e e
complet A′ qui reconnaˆ le mˆme langage que A.
ıt e
« L’id´e est simple. On rajoute ` l’automate A un ´tat ω vers lequel on fait pointer toutes
e a e
les transitions manquantes. On rajoute ´galement les transitions (ω, x, ω) pour toutes les
e
lettres x de l’alphabet (figure 14). L’´tat ω est appel´ un ´tat-puits. Une fois que l’on y est
e e e
entr´, on ne peut plus en ressortir. Dans le cas pr´sent´ ici, l’´tat-puits n’est pas un ´tat
e e e e e
final (il peut exister dans certains automates des ´tats-puits finals).
e «
8. 8 Automates finis
A
ω
Fig. 14 – Automate complet
L’automate de la figure 15, construit sur l’alphabet {a, b}, est un AFDC. L’´tat 3 est un
e
´tat puits. L’automate reconnaˆ le langage L = a∗ b2 a∗ .
e ıt
a 3 a, b
a
b
1 2 b
b
4 a
Fig. 15 – Un exemple d’AFDC
Si, en revanche, l’´tat 3 ´tait un ´tat accepteur, alors l’automate reconnaˆ
e e e ıtrait le langage
L = (a∗ baA∗ ) ∪ (a∗ b2 a∗ bA∗ )
III.3 Prolongement de la fonction de transition
La fonction de transition δ est a priori d´finie sur une Q × A. On peut la prolonger `
e a
Q × A∗ de la fa¸on suivante. On pose
c
• •∀q ∈ Q, δ(q, ε) = q.
• •∀q ∈ Q, ∀u ∈ A∗ , ∀x ∈ A, δ(q, xu) = δ(δ(q, x), u).
Il est alors facile de v´rifier que
e
∀q ∈ Q, ∀u, v ∈ A∗ , δ(q, uv) = δ(δ(q, u), v)
Prouver la propri´t´ ci-dessus. On pourra faire une r´currence sur la longueur des mots.
ee e
Th´or`me 7
e e Soit A un automate d´terministe d’´tat de d´part d, et de fonction de transition δ. L’automa-
e e e
te A reconnaˆ le mot u si et seulement si δ(d, u) est un ´tat final de A.
ıt e
« Il suffit de faire une r´currence sur la longueur de u.
e «
III.4 D´terminisation d’un automate fini
e
Nous allons montrer que tout automate est ´quivalent ` un automate d´terministe, et
e a e
que cette ´quivalence est effective : il existe un algorithme permettant de calculer l’automate
e
“d´terminis´” ` partir de l’automate donn´ au d´part.
e e a e e
Th´or`me 8
e e Soit L un langage. Alors, L est reconnaissable si et seulement si il est reconnaissable par
un automate d´terministe.
e
9. Automates d´terministes
e 9
« Id´e de la d´monstration : Soit L le langage reconnu par l’automate (non d´terministe a
e e e
priori) A = Q, A, E, I, T . On pose
• •Q′ = P(Q) (l’ensemble des parties de Q).
• •I ′ = {I}.
• •T ′ = {P ∈ Q′ , P ∩ T = ∅}.
• •δ ′ : Q′ × A → Q′ ; (P, x) → {q ′ ∈ Q, ∃q ∈ P, (q, x, q ′ ) ∈ E}. On note E ′ le graphe de
l’application δ ′ .
Nous allons, apr`s examen d’un exemple, que le langage L est reconnu par l’automate
e
d´terministe A′ = Q′ A, E ′ , I ′ , T ′ .
e «
On prend A = {a, b}. On consid`re l’automate A de la figure 16. Cet automate reconnaˆ
e ıt
le langage L = A∗ abaA∗ .
a, b a, b
a b a
1 2 3 4
Fig. 16 – Mots contenant le facteur aba
L’automate A′ est donn´ ` la figure 17.
ea
a
a
b
a b a b
1 1, 2 1, 3 1, 2, 4 1, 3, 4
a
b
b a b
1, 4
Fig. 17 – Automate d´terminis´
e e
On constate qu’il y a trois ´tats accepteurs, et que ceux-ci forment un puits. On peut
e
donc simplifier en l’automate ´quivalent de la figure 18.
e
a, b
a, b
a b a
I II III IV
b
Fig. 18 – Automate simplifi´
e
´
Ecrire un automate reconnaissant L = (a + b)∗ (babb)(a + b)∗ . Le d´terminiser.
e
« D´monstration du th´or`me : Soit u ∈ A∗ . On cherche une condition portant sur A′ pour
e e e
que u soit reconnu par A.
Si u = ε, alors A reconnaˆ u si et seulement si I ∩ T = ∅ ou encore si et seulement si
ıt
I ∈ T ′ , c’est ` dire {I} ∩ T ′ = ∅. Mais cela signifie que A′ reconnaˆ u.
a ıt
10. 10 Automates finis
Si u = x0 x1 . . . xn−1 = ε, alors :
• A′ reconnaˆ u si et seulement si δ ′ (I, u) ∈ T ′ , c’est ` dire s’il existe P0 , P1 , ..., Pn ∈ Q′
ıt a
v´rifiant P0 = I, Pn ∈ T ′ , et δ ′ (P0 , x0 ) = P1 , δ ′ (P1 , x1 ) = P2 , ..., δ ′ (Pn−1 , xn−1 ) = Pn .
e
• A reconnaˆ u si et seulement si il existe q0 , ..., qn ∈ Q, il existe q0 ∈ I, qn ∈ T tels que
ıt
∀i ∈ {0, ..., n − 1}, (qi , xi , qi+1 ) ∈ E.
Il faut voir que ces deux conditions sont ´quivalentes.
e
• •1 ⇒ 2 : On suppose que A reconnaˆ le mot u. Avec les notations ci-dessus, on pose
ıt
P0 = I. On a alors q0 ∈ P0 . Donc, q1 ∈ P1 = δ ′ (P0 , x0 ). On obtient par r´currence que
e
pour k = 1..n − 1, qk ∈ Pk = δ ′ (Pk−1 , xk−1 ). De l`, qn ∈ Pn , donc Pn rencontre T et
a
finalement Pn ∈ T ′ . Ainsi, A′ reconnaˆ le mot u.
ıt
• •2 ⇒ 1 : On suppose que A′ reconnaˆ le mot u. On a Pn ∈ T ′ , donc Pn ∩ T = ∅.
ıt
Soit qn ∈ Pn ∩ T . On a δ ′ (Pn−1 , xn−1 ) = Pn , donc il existe qn−1 ∈ Pn−1 tel que
(qn−1 , xn−1 , qn ) ∈ δ. On trouve ainsi par r´currence q0 ∈ P0 , q1 ∈ P1 , ... qn ∈ Pn ∩ T
e
tels que pour tout i, (qi , xi , qi+1 ) ∈ E. On en d´duit que A reconnaˆ u.
e ıt
Finalement, les automates A et A′ reconnaissent les mˆmes mots, et sont donc ´quiva-
e e
lents. «
Le “d´terminis´” d’un automate fini poss´dant n ´tats est donc un automate fini d´terministe
e e e e e
et complet poss´dant 2n ´tats. On a l` une explosion combinatoire qui peut conduire ` des
e e a a
situations tr`s d´sagr´ables (par exemple, un automate ` 100 ´tats se d´terminisant en un
e e e a e e
auomate ` 1267650600228229401496703205376 ´tats). Dans la pratique, on se contente des
a e
´tats qui sont accessibles ` partir de l’´tat initial : on fabrique le d´terminis´ de proche en
e a e e e
proche ` partir de l’´tat I, en rajoutant des transitions et de nouveaux ´tats jusqu’` ce que
a e e a
l’on ne retombe que sur des ´tats d´j` vus. Cette m´thode est appel´e d´terminisation par
e ea e e e
la m´thode des sous-ensembles.
e
Il faut toutefois savoir que, bien que dans beaucoup d’exercices le d´terminis´ soit
e e
“petit”, il existe des exemples d’automates ` n ´tats dont le d´terminis´ par la m´thode
a e e e e
des sous-ensembles poss`de 2n ´tats. Il existe mˆme des automates ` n ´tats tels que tout
e e e a e
automate d´terministe ´quivalent poss`de au moins 2n ´tats.
e e e e
III.5 Stabilit´ des langages reconnaissables par passage au
e
compl´mentaire
e
Th´or`me 9
e e Soit L un langage reconnu par un automate d´terministe. Alors, le langage A∗ L est
e
reconnaissable.
« On peut supposer que le langage L est reconnu par un AFDC A = Q, A, E, I = {⌈}, T .
On consid`re A′ = Q, A, E, I, Q T , c’est ` dire que les ´tats finals de A deviennent
e a e
non finals dans A′ et vice versa. Alors, l’automate A′ reconnaˆ le langage A∗ L. En effet,
ıt
soit u ∈ A∗ . Alors A ne reconnaˆ pas u si et seulement si δ(d, u) ∈ T , c’est ` dire si et
ıt a
seulement si A′ reconnaˆ u.
ıt
«
III.6 Stabilit´ des langages reconnaissables par intersec-
e
tion et diff´rence
e
Si L1 et L2 sont deux langages reconnaissables, alors L1 ∩L2 = A∗ ((A∗ L1 )∪(A∗ L2 )).
Ainsi, Rec(A∗ ) est aussi stable par intersection. Enfin, L1 L2 = L1 ∩ (A∗ L2 )) et Rec(A∗ )
est donc stable par diff´rence.
e
11. Exercices 11
IV R´sum´
e e
Nous avons mis en ´vidence dans ce chapitre 4 types d’automates finis :
e
• Les automates non d´terministes qui sont en fait le type le plus g´n´ral d’automate.
e e e
• Les automates standard.
• Les automates d´terministes.
e
• Les automates d´terministes complets.
e
Tous ces types d’automates reconnaissent les mˆmes langages, ce qui a ´t´ ` chaque
e ee a
fois prouv´ par des th´or`mes d’´quivalence. Il est fondamental de constater que toutes
e e e e
les d´monstrations donn´es sont constructives, et permettent de fabriquer effectivement
e e
les automates dont on parle. On ne saurait trop insister sur le fait que, dans un cours
d’informatique, une d´monstration se doit d’ˆtre constructive !
e e
Enfin, l’ensemble Rec(A∗ ) s’av`re avoir de remarquables propri´t´s de stabilit´. Pour
e ee e
commencer :
• Rec(A∗ ) contient les langages finis.
• Rec(A∗ ) est stable par r´union, produit et ´toile.
e e
Le plus petit ensemble de langages v´rifiant ces propri´t´s ´tant l’ensemble Rat(A∗ ) des
e ee e
langages rationnels sur l’alphabet A, on en d´duit :
e
Rat(A∗ ) ⊂ Rec(A∗ )
Nous verrons au chapitre suivant que l’inclusion r´ciproque est ´galement vraie.
e e
Enfin, Rec(A∗ ) est ´galement stable par intersection, compl´mentation et diff´rence.
e e e
En fait, Rec(A∗ ) est stable par bien d’autres op´rations importantes, mais on ne peut pas,
e
avec une heure de cours par semaine, passer cent heures sur les automates (n’est-ce pas ?).
Exercices
1/ Construire des automates reconnaissant les langages suivants sur l’alphabet {a, b} :
(a) Les mots poss´dant au moins trois a.
e
(b) Les mots comportant un nombre pair de a.
(c) Les mots f tels que |f |a ≡ |f |b (mod 2) (o` |f |x est le nombre d’occurences de la
u
lettre x dans le mot f ).
2/ D´terminer le langage reconnu par les automates ci-dessous (donner la r´ponse en lan-
e e
gage courant, en s’inspirant des questions de l’exercice pr´c´dent). On ne demande pas
e e
de preuve.
a
a b
1 2 3
a b
a b a
1 2 3 4
b
a
a a
a
1 2 3 4
b b
b
12. 12 Automates finis
b 3
1 a a
a b
b 2
3/ Construire des automates standard reconnaissant les langages suivants sur l’alphabet
{a, b} :
(a) (a + b)∗
(b) (a∗ b)∗
(c) (a∗ b + bb∗ a)∗
´
4/ Evaluer le nombre d’automates sur l’alphabet {a, b} poss´dant 3 ´tats.
e e
5/
´
(a) Ecrire un automate ` 4 ´tats et 5 transitions reconnaissants les mots sur l’alphabet
a e
{0, 1} qui sont des repr´sentations des multiples de 8 en base 2.
e
(b) D´terminiser cet automate.
e
6/ Soient A = X, Q, D, A, δ et A′ = X, Q′ , D′ , A′ , δ ′ deux automates finis. On
appelle produit de A et A′ l’automate fini A × A′ = X, Q × Q′ , D × D′ , A × A′ , ∆
o` ((p, p′ ), a, (q, q ′ )) ∈ ∆ si et seulement si (p, a, q) ∈ δ et (p′ , a, q ′ ) ∈ δ ′ .
u
(a) Fabriquer deux automates A et A′ ` 3 ´tats reconnaissant respectivement les lan-
a e
gages L = (a + b)∗ ab(a + b)∗ et L = (a + b)∗ ba(a + b)∗ . Dessiner l’automate
A × A′ .
(b) Montrer que, de fa¸on g´n´rale, le langage reconnu par l’automate produit A × A′
c e e
est l’intersection des langages reconnus par A et A′ .
(c) Comment modifier la d´finition de l’automate produit (ce ne sera donc plus l’auto-
e
mate produit !) pour que celui-ci reconnaisse la r´union des langages reconnus par
e
A et A′
7/ D´terminiser les 4 automates ci-dessous :
e
a
a a a
1 2 3 4
b b
b
a
a b
1 2 3 4
a a
b b b
a a
a+b a
1 2 1 2
a b aa
b a a b
3 3
a
13. Exercices 13
8/ Soit A un automate d´terministe reconnaissant un langage L. D´crire un automate
e e
reconnaissant le langage des mots de L “lus de droite ` gauche”. Appliquer ` l’automate
a a
vu en cours reconnaissant les multiples de 3 en base 2. Que constate-t-on ?
9/ On prend ici un alphabet X = {a} avec une seule lettre.
(a) D´terminer tous les automates d´terministes sur l’alphabet X.
e e
(b) En d´duire la propri´t´ suivante : Un langage L sur {a} est rationnel si et seulement
e ee
si il peut s’´crire L = F ∪ G o` F est un langage fini et G est soit vide, soit d´fini
e u e
par deux entiers r et p ≥ 1 et k entiers 0 ≤ i1 i2 . . . ik ≤ p − 1 tels que
G = {an , n ≥ r et ∃j ∈ {1, . . . , k}, n ≡ ij (mod p)}
10/ On consid`re l’automate A = X, Q, D, A, δ o` X = {a, b},Q = {p, q},D = A =
e u
{p},δ = {(p, a, p), (p, b, q), (q, a, p)}.
(a) Dessiner l’automate A. Quel est le langage reconnu par A ?
(b) Pour tout entier n, on note f (n) le nombre de mots de longueur n reconnus par
A. Exprimer f (n + 2) en fonction de f (n + 1) et f (n). Calculer f (0) et f (1) et en
d´duire f (n) pour tout entier n.
e