42
IFT-2002 Informatique Théorique H14 - cours 12 Julien Marcil - [email protected] 0

IFT-2002 Informatique Théoriquenr9.github.io/IFT-2002/PDF/cours12.pdfnon hors contexte-Pour prouver qu’un langage est non hors contexte, on fait une preuve par contradiction. On

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: IFT-2002 Informatique Théoriquenr9.github.io/IFT-2002/PDF/cours12.pdfnon hors contexte-Pour prouver qu’un langage est non hors contexte, on fait une preuve par contradiction. On

IFT-2002

InformatiqueThéorique

H14 - cours 12

Julien Marcil - [email protected]

0

Page 2: IFT-2002 Informatique Théoriquenr9.github.io/IFT-2002/PDF/cours12.pdfnon hors contexte-Pour prouver qu’un langage est non hors contexte, on fait une preuve par contradiction. On
Page 3: IFT-2002 Informatique Théoriquenr9.github.io/IFT-2002/PDF/cours12.pdfnon hors contexte-Pour prouver qu’un langage est non hors contexte, on fait une preuve par contradiction. On
Page 4: IFT-2002 Informatique Théoriquenr9.github.io/IFT-2002/PDF/cours12.pdfnon hors contexte-Pour prouver qu’un langage est non hors contexte, on fait une preuve par contradiction. On
Page 5: IFT-2002 Informatique Théoriquenr9.github.io/IFT-2002/PDF/cours12.pdfnon hors contexte-Pour prouver qu’un langage est non hors contexte, on fait une preuve par contradiction. On

Preuve qu’un langage estnon régulier

L

Pour prouver qu’un langage est non régulier, on fait unepreuve par contradiction.

On suppose que est régulier.Donc il existe la longueur de pompage de .On choisi un mot , avec (qu'il ne sera paspossible de pomper).On montre qu'il n'existe pas de valeurs parce qu'enpompant , on génère des mots qui ne sont pas dans

.

Lp L

w ! L <w< ~ p

x, y, zy x zyi

L

Page 6: IFT-2002 Informatique Théoriquenr9.github.io/IFT-2002/PDF/cours12.pdfnon hors contexte-Pour prouver qu’un langage est non hors contexte, on fait une preuve par contradiction. On

ExempleSoit . Prouver que le langage

n'est pasrégulier.

Σ = {0, 1}L = {w < w contient le même nombre de 0 et de 1}

Page 7: IFT-2002 Informatique Théoriquenr9.github.io/IFT-2002/PDF/cours12.pdfnon hors contexte-Pour prouver qu’un langage est non hors contexte, on fait une preuve par contradiction. On

Langage hors contexteDéfinition: Un langage est dit hors contexte (ou noncontextuelle) s’il existe une grammaire hors contexte qui legénère.

Page 8: IFT-2002 Informatique Théoriquenr9.github.io/IFT-2002/PDF/cours12.pdfnon hors contexte-Pour prouver qu’un langage est non hors contexte, on fait une preuve par contradiction. On

Lemme de pompageSi est un langage hors contexte, alors il existe un entier

(appelé longueur de pompage) tel que pour tout mot avec , il existe des mots tels que

et

Lp ~ 1w ! L <w< ~ p u, v, x, y, zw = uvxyz1. 2. 3. pour tout entier on a

<vxy< } p<vy< > 0

i ~ 0 u x z ! Lvi yi

Page 9: IFT-2002 Informatique Théoriquenr9.github.io/IFT-2002/PDF/cours12.pdfnon hors contexte-Pour prouver qu’un langage est non hors contexte, on fait une preuve par contradiction. On

Preuve qu’un langage estnon hors contexte

L

Pour prouver qu’un langage est non hors contexte, on faitune preuve par contradiction.

On suppose que est hors contexte.Donc il existe la longueur de pompage de .On choisi un mot , avec (qu'il ne sera paspossible de pomper).On montre qu'il n'existe pas de valeurs parcequ'en pompant et , on génère des mots qui nesont pas dans .

Lp L

w ! L <w< ~ p

u, v, x, y, zv y u x zvi yi

L

Page 10: IFT-2002 Informatique Théoriquenr9.github.io/IFT-2002/PDF/cours12.pdfnon hors contexte-Pour prouver qu’un langage est non hors contexte, on fait une preuve par contradiction. On

ExempleSoit . Prouver que le langage

a b c n'est pasrégulier.

Σ = {a, b, c}L = {w < w contient le même nombre de , et }

Page 11: IFT-2002 Informatique Théoriquenr9.github.io/IFT-2002/PDF/cours12.pdfnon hors contexte-Pour prouver qu’un langage est non hors contexte, on fait une preuve par contradiction. On

Arrêt d'unemachine de TuringUne machine de turing peut:

se rendre à un état final et arrêterboucler indéfiniment

Page 12: IFT-2002 Informatique Théoriquenr9.github.io/IFT-2002/PDF/cours12.pdfnon hors contexte-Pour prouver qu’un langage est non hors contexte, on fait une preuve par contradiction. On

Turing-acceptableDéfinition: Un langage est dit Turing-acceptable (ourécursivement énumérable)s’il existe une machine de Turingqui accepte les mots de .

L

L

Étant donnée une entrée wSi alors s’arrête et accepte Si alors s’arrête et rejette ou ne s’arrête pas

w ! L M ww " L M w

Page 13: IFT-2002 Informatique Théoriquenr9.github.io/IFT-2002/PDF/cours12.pdfnon hors contexte-Pour prouver qu’un langage est non hors contexte, on fait une preuve par contradiction. On

Turing-décidableDéfinition: Un langage est dit Turing-décidable (oudécidable)s’il existe une machine de Turing qui accepteles mots de et rejette les autres mots.

LM

L

Étant donnée une entrée wSi alors s’arrête et accepte Si alors s’arrête et rejette

w ! L M ww " L M w

Page 14: IFT-2002 Informatique Théoriquenr9.github.io/IFT-2002/PDF/cours12.pdfnon hors contexte-Pour prouver qu’un langage est non hors contexte, on fait une preuve par contradiction. On

ThéorèmeSoit un le langage . Si est Turing-décidable, alors estTuring-décidable.

L L L⎯⎯⎯

Page 15: IFT-2002 Informatique Théoriquenr9.github.io/IFT-2002/PDF/cours12.pdfnon hors contexte-Pour prouver qu’un langage est non hors contexte, on fait une preuve par contradiction. On

ThéorèmeSoit un le langage . Si et sont Turing-acceptable, alors

est Turing-décidable.L L L

⎯⎯⎯

L

Page 16: IFT-2002 Informatique Théoriquenr9.github.io/IFT-2002/PDF/cours12.pdfnon hors contexte-Pour prouver qu’un langage est non hors contexte, on fait une preuve par contradiction. On

La thèse de Church-TuringLes règles formelles de calcul (machines de Turing, le λ-calcul, les fonctions récursives...) formalisent correctementla notion d'algorithme.

Page 17: IFT-2002 Informatique Théoriquenr9.github.io/IFT-2002/PDF/cours12.pdfnon hors contexte-Pour prouver qu’un langage est non hors contexte, on fait une preuve par contradiction. On

Turing-completUn langage informatique est dit Turing-complet s'ilpermet de représenter toutes les fonctions calculables ausens de Turing et Church.

Dans un tel langage, il est possible de programmern'importe quelle machine de Turing, mais également toutce que l'on peut programmer dans une machine de Turing.

Page 18: IFT-2002 Informatique Théoriquenr9.github.io/IFT-2002/PDF/cours12.pdfnon hors contexte-Pour prouver qu’un langage est non hors contexte, on fait une preuve par contradiction. On

RéductionUn language se réduit au language , noté si ilexiste une fonction calculable tel que

L K L K}mf : →Σ0 Σ0

w ! L ⇔ f (w) ! K�w!Σ0

Page 19: IFT-2002 Informatique Théoriquenr9.github.io/IFT-2002/PDF/cours12.pdfnon hors contexte-Pour prouver qu’un langage est non hors contexte, on fait une preuve par contradiction. On

ThéorèmeSi et est décidable, alors est décidable.A B}m B A

Page 20: IFT-2002 Informatique Théoriquenr9.github.io/IFT-2002/PDF/cours12.pdfnon hors contexte-Pour prouver qu’un langage est non hors contexte, on fait une preuve par contradiction. On

CorrolaireSi et n'est pas décidable, alors n'est pasdécidable.

A B}m A B

Page 21: IFT-2002 Informatique Théoriquenr9.github.io/IFT-2002/PDF/cours12.pdfnon hors contexte-Pour prouver qu’un langage est non hors contexte, on fait une preuve par contradiction. On

EAFD

= {⟨B⟩ < B est un AFD et L(B) = ∅}EAFD

Page 22: IFT-2002 Informatique Théoriquenr9.github.io/IFT-2002/PDF/cours12.pdfnon hors contexte-Pour prouver qu’un langage est non hors contexte, on fait une preuve par contradiction. On

Théorème est un langage décidable.EAFD

Page 23: IFT-2002 Informatique Théoriquenr9.github.io/IFT-2002/PDF/cours12.pdfnon hors contexte-Pour prouver qu’un langage est non hors contexte, on fait une preuve par contradiction. On

EQAFD

E = {⟨A, B⟩ < A et B sont des AFD et L(A) = L(B)}QAFD

Page 24: IFT-2002 Informatique Théoriquenr9.github.io/IFT-2002/PDF/cours12.pdfnon hors contexte-Pour prouver qu’un langage est non hors contexte, on fait une preuve par contradiction. On

Théorème est un langage décidable.EQAFD

Page 25: IFT-2002 Informatique Théoriquenr9.github.io/IFT-2002/PDF/cours12.pdfnon hors contexte-Pour prouver qu’un langage est non hors contexte, on fait une preuve par contradiction. On

Théorie des ensemblesSoit un tel queC AFD

L(C) = (L(A) B ) C ( B L(B))L(B)⎯ ⎯⎯⎯⎯⎯⎯⎯

L(A)⎯ ⎯⎯⎯⎯⎯⎯⎯

L(A) = L(B) ⇔ L(C) = ∅

Page 26: IFT-2002 Informatique Théoriquenr9.github.io/IFT-2002/PDF/cours12.pdfnon hors contexte-Pour prouver qu’un langage est non hors contexte, on fait une preuve par contradiction. On

AMT

= {⟨M, w⟩ < M est une MT qui accepte w}AMT

: machine de TuringMT

Page 27: IFT-2002 Informatique Théoriquenr9.github.io/IFT-2002/PDF/cours12.pdfnon hors contexte-Pour prouver qu’un langage est non hors contexte, on fait une preuve par contradiction. On

Théorème est un langage Turing-acceptable.ATM

Page 28: IFT-2002 Informatique Théoriquenr9.github.io/IFT-2002/PDF/cours12.pdfnon hors contexte-Pour prouver qu’un langage est non hors contexte, on fait une preuve par contradiction. On

Théorème n'est pas un langage décidable.ATM

Page 29: IFT-2002 Informatique Théoriquenr9.github.io/IFT-2002/PDF/cours12.pdfnon hors contexte-Pour prouver qu’un langage est non hors contexte, on fait une preuve par contradiction. On

Corrolaire n'est pas un langage Turing-acceptable.ATM

⎯ ⎯⎯⎯⎯⎯⎯

Page 30: IFT-2002 Informatique Théoriquenr9.github.io/IFT-2002/PDF/cours12.pdfnon hors contexte-Pour prouver qu’un langage est non hors contexte, on fait une preuve par contradiction. On

HALTMT

HAL = {⟨M, w⟩ < M est une MT et M s'arrête sur w}TMT

Page 31: IFT-2002 Informatique Théoriquenr9.github.io/IFT-2002/PDF/cours12.pdfnon hors contexte-Pour prouver qu’un langage est non hors contexte, on fait une preuve par contradiction. On

Théorème n'est pas un langage décidable.HALTMT

Page 32: IFT-2002 Informatique Théoriquenr9.github.io/IFT-2002/PDF/cours12.pdfnon hors contexte-Pour prouver qu’un langage est non hors contexte, on fait une preuve par contradiction. On

Addition����( , ) = +r1 r2 r1 r2

←r0 r1

�é�é��� ���� [r2

���( )r0

]

Page 33: IFT-2002 Informatique Théoriquenr9.github.io/IFT-2002/PDF/cours12.pdfnon hors contexte-Pour prouver qu’un langage est non hors contexte, on fait une preuve par contradiction. On

Multiplication����( , ) = ×r1 r2 r1 r2

�é�é��� ���� [r1

�é�é��� ���� [r2

���( )r0

]]

Page 34: IFT-2002 Informatique Théoriquenr9.github.io/IFT-2002/PDF/cours12.pdfnon hors contexte-Pour prouver qu’un langage est non hors contexte, on fait une preuve par contradiction. On

Exponentiation���( , ) =r1 r2 r r 2

1

← 1r0

�é�é��� ���� [r2

← ����( , )r0 r0 r1

]

Page 35: IFT-2002 Informatique Théoriquenr9.github.io/IFT-2002/PDF/cours12.pdfnon hors contexte-Pour prouver qu’un langage est non hors contexte, on fait une preuve par contradiction. On

La classe PLa classe de complexité est définie comme�

����( )⋃k~0

nk

La classe P correspond aux langages décidables enpratique en un temps raisonnable.

Page 36: IFT-2002 Informatique Théoriquenr9.github.io/IFT-2002/PDF/cours12.pdfnon hors contexte-Pour prouver qu’un langage est non hors contexte, on fait une preuve par contradiction. On

VérificateurDéfinition: Un vérificateur polynômial pour un langage

est une machine de Turing tel que pour tout :L V w ! Σ0

si alors il existe un mot tel que si alors pour tout on a

w ! L c ⟨w, c⟩ ! L(V)w " L c ⟨w, c⟩ " L(V)

le temps de calcul de sur est polynômial en la taillede .

V ⟨w, c⟩w

Un tel que est appelé certificat ou preuve outemoin de l’appartenance de au langage .

c ⟨w, c⟩ ! L(V)w L

Page 37: IFT-2002 Informatique Théoriquenr9.github.io/IFT-2002/PDF/cours12.pdfnon hors contexte-Pour prouver qu’un langage est non hors contexte, on fait une preuve par contradiction. On

La classe NPLa classe de complexité est l’ensemble des langages quipossèdent un vérificateur polynômial.

��

Page 38: IFT-2002 Informatique Théoriquenr9.github.io/IFT-2002/PDF/cours12.pdfnon hors contexte-Pour prouver qu’un langage est non hors contexte, on fait une preuve par contradiction. On

P vs NPP: les langages décidables efficacement.NP: les langages vérifiables efficacement.

Page 39: IFT-2002 Informatique Théoriquenr9.github.io/IFT-2002/PDF/cours12.pdfnon hors contexte-Pour prouver qu’un langage est non hors contexte, on fait une preuve par contradiction. On

Réduction polynômialesUn language se réduit au language , noté si ilexiste une fonction calculable en tempspolynômiales tel que

L K L K}p

f : →Σ0 Σ0

w ! L ⇔ f (w) ! K�w!Σ0

Page 40: IFT-2002 Informatique Théoriquenr9.github.io/IFT-2002/PDF/cours12.pdfnon hors contexte-Pour prouver qu’un langage est non hors contexte, on fait une preuve par contradiction. On
Page 41: IFT-2002 Informatique Théoriquenr9.github.io/IFT-2002/PDF/cours12.pdfnon hors contexte-Pour prouver qu’un langage est non hors contexte, on fait une preuve par contradiction. On
Page 42: IFT-2002 Informatique Théoriquenr9.github.io/IFT-2002/PDF/cours12.pdfnon hors contexte-Pour prouver qu’un langage est non hors contexte, on fait une preuve par contradiction. On