Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
www.enseignement.polytechnique.fr/informatique/IF
. .
1 20 3
J. Hopcroft, R. Motwani, J. Ullman, Introduction to Automata Theory, Languages, and Computation.
Addison-Wesley, 2000.
. .
Protocoles réseau
Mécanisme fini (2/2) starting point
CLOSED
Machine avec une mémoire tampon (buffer ) de taille 2, appl: passive open
send: <nothing>
2 cafés avec 0,60e.
ap sen
pl
: a : SY
timeout
cti
send: RST LISTEN
d
ve N
CK
op
N ,A passive open ap
en
: SY pl
se : se
N;
se
nd
v:
RS
T nd nd
:S d
YN ata
Les protocoles
SY rec
v:
rec
recv: SYN appl: close
TCP/IP (Trans-
SYN_RCVD SYN_SENT
20
send: SYN, ACK
simultaneous open active open
or timeout
mission Control
20 2 20
0 se rec CK
4 6 nd v
:< :A
,A K
no CK
th
YN C
:S :A
cv d
Protocol/Internet
K K in
g> re sen
10 20 10 10 appl: close
ESTABLISHED
recv: FIN
CLOSE_WAIT
Protocol) sont
send: FIN send: ACK
10 10 se
data transfer state
les protocoles
l o
:c IN appl: close
10
pl : F
ap nd send: FIN de base pour la
10 se
FIN_WAIT_1
recv: FIN
simultaneous close
CLOSING LAST_ACK
recv: ACK transmission en
K K send: ACK send: <nothing>
re
cv
se : FIN
passive close série de paquets
recv: ACK nd recv: ACK
1 20 3 20 5 send: <nothing> :A ,A
CK CK
send: <nothing>
sur l’internet.
recv: FIN
FIN_WAIT_2 TIME_WAIT
send: ACK
2MSL timeout
active close
. .
Contrôle de flux Automate cellulaire
Un récepteur ne doit pas être submergé par les messages d’un émetteur.
b
2 4
• La bande de lecture n’est pas modifiable (read-only)
b
• La tête de lecture avance d’une case vers la droite à chaque
transition.
• L’état q évolue vers l’état q 0 = δ(q, e) si le caractère e est sous la
tête de lecture.
. .
T (A) = {w | δ(q0 , w) ∈ F }
. .
• A chaque état, l’automate choisit entre plusieurs transitions. Theorem 1 [Rabin-Scott] Tout langage reconnu par un automate fini
Formellement, δ : Q × Σ → 2Q non déterministe est reconnu par un automate fini déterministe.
Démonstration : on considère l’automate déterministe défini sur 2Q , en prenant {q0 } comme état
• Un mot est accepté si une série de choix amène à un état de F . Theorem 3 [Kleene] Les langages reconnus par un automate fini sont
(Les mauvais choix ne comptent pas). exactement ceux décrits par les expressions régulières.
. .
• L2 = {xaay | x, y ∈ Σ∗ } ∪ {xbby | x, y ∈ Σ∗ } Exercice 3 Montrer que toutes ces définitions sont équivalentes à la
• L3 = {xwy | x, y ∈ Σ∗ } où w est un mot donné de Σ∗ définition initiale d’automate fini (dernier cas plus dur).
• L4 ⊂ Σ∗ tel que a est la 6ème lettre à partir de la fin dans tout Exercice 4 Montrer que si dans la définition 3 on enlève la restriction
w ∈4 L. finie, alors on sort de la définition des automates finis.
.
Machine de Turing (1/6) .
Machine de Turing (3/6)
Reconnaı̂tre {an bn | n > 0} X1 X2 Xi Xn B B B B
.
Machine de Turing (2/6) .
Machine de Turing (4/6)
Une machine de Turing M est un 7-uplet M = (Q, Σ, Γ, δ, q0 , B, F ) où : Exercice 5 Donner une machine de Turing qui reconnaisse les
palindromes w formés de a et de b tels que w = wR où wR est l’image
Σ est un alphabet d’entrée,
mirroir de w.
Γ est un alphabet des symboles de la bande (Σ ⊂ Γ),
Exercice 6 Trouver une machine de Turing qui reconnaisse les mots
B ∈ Γ − Σ est le symbole blanc,
bien parenthésés formés de a et de b.
Q est un ensemble fini d’états,
Exercice 7 Donner une machine de Turing qui calcule le successeur
q0 ∈ Q est l’état initial,
x + 1 de tout nombre binaire x.
F ⊂ Q est l’ensemble des états finaux,
Exercice 8 Donner une machine de Turing qui calcule la somme x + y
δ : Q × Γ → Q × Γ × {gauche, droite} est la fonction de transition
de tous nombres binaires x et y.
.
Machine de Turing (6/6) .
of this kind. The situation in regard to the squares whose symbols may be altered in this way is the
class Turing { same as in regard to observed squares. We may, therefore, without loss of generality, assume that the
int q0; Liste fin; Action[ ][ ] delta; squares whose symbols are changed are always ’observed’ squares.
Contradiction !
Une fonction calculable est une fonction calculée par une telle class Facile { void f () { } }
machine de Turing. class Boucle { void f () { while (true) do ; } }
class Absurde { void f () { while (Turing.termine(this)) ; } }
• Si, avec j au début sur la bande, Mi termine sans produire un
entier sur la bande, on donnera 0 comme résultat de la fonction class Test {
calculable correspondante. public static void main (String[ ] args) {
Facile o1 = new Facile();
• Comme les machines de Turing sont dénombrables, les fonctions System.out.println (Turing.termine(o1));
calculables sont en bijection avec N. Boucle o2 = new Boucle();
• card(N → N) > card(N) [Cantor] System.out.println (Turing.termine(o2));
Absurde o3 = new Absurde();
System.out.println (Turing.termine(o3));
• ⇒ Il existe des fonctions non calculables. } }
Finitude de la calculabilité
Ingrédients nécessaires pour un modèle général de la calculabilité :