TD8 : Complexité :

EX 1

1.

Remarquons déjà que : comme il y a 2n valuations possibles, s’il existe une suite d’applications d’opérations qui conduise de sinitial à sfinal, alors il en existe une de longueur inférieure à 2n (à chaque opération, on modifie au moins une variable).

Étant donnée une suite d’applications d’opérations, on exécute les opérations de la numéoro 1 à la numéro 2n, puis on renvoie True ssi elle convient.

2.

On réduit les MT calculant en espace nk.

  • Variables :

    • a𝛴,p1,nk,ap : “Il y a un a à la p-ième case de la bande”.
    • p1,|Q|,qp : “On est dans l’état qp
    • p1,nk,lp : “La tête de lecture est la position p”.
  • sinit : $w[0]0, w[1]_1, ⋯, w[\vert w \vert]{\vert w \vert}, l_0, q_{init}$ sont à True

    Le reste est à False.

  • sfinal : On suppose que la MT a une seule configuration acceptante.

    ex : $$0∧l_0∧q_f$

  • Opérations : Pour tout transition q,aq,b, et

    p1,nk,

    • Condition : lpapq
    • Mise à jour :

      • lp,ap,qFalse
      • lp+1,bp,qTrue

Les opérations sont de taille cste.

  • Taille des opérations : |M|×nk×cste : polynomial en n

  • Nb de variables : |𝛴|×nk+nk+|Q| : polynomial.

  • sinit,sfinal : taille polynomiale.

PREUVE DE CORRECTION :

Th :

s,sinitssinit~Ms~

Preuve : Par induction sur .

Lemme :

s,sinitsp1,nk,!a;s(ap)=True!i1,nk;pi=True!i1,nk;qi=True

Preuve : Par induction sur la longueur de la réduction de sinit vers s.

EX 2

3.

Un automate déterministe concurrent a un nombre fini M=inMi d’états (où Mi est le nombre d’états de Ai)

L(A1,A2,,An)wL(A1,,An);|w|M

On ne peut pas simplement deviner un mot w et tester s’il est dans L(A1,A2,,An), car si M est exponentiel, on n’est pas dans PSPACE.

Taille du compteur :

log(M)iMi

Taille mémorisation des états.

qqinitN

En posant

m2|Mi|
For i=1 to m:

    Deviner une lettre a
    Si transition a possible:
        q ⟵ delta(q, a)
    Sinon :
        reject

Si q=q_final:
    Accept
Sinon:
    Reject

4.

  • {xi}i1,n
  • {ci}i1,n

ck=

  • iIk(xi=𝛼k,i)
  • {(xi𝛽k,i)}iIk
%3 V_i V_i F_i F_i V_i->F_i Puits_i Puits_i V_i->Puits_i F_i->V_i F_i->Puits_i
  • Si iIkIk :

    𝛼k,i𝛽k,i

    𝛼k,iPi

  • Si iIkIk :

    𝛼k,iPi

  • Si iIkIk :

    Vi𝛽k,i

    Fi𝛽k,i

  • sinit,sfinal

  • qi,initial=sinit(i)
  • qi,final=sfinal(i)

Nb d’arêtes : 2×k|Ik|

Nb de sommets : 3×n

Par construction, si on a une suite $(c_{k_i}){i∈⟦1,N⟧}dopérationstelleques{init} ⟶^{(c_{k_i})i} s{final}$.

Si A accepte k1,,kN, qinitialk1,,kNqfinal

i<N,qinitialk1,,kiqi

Invariant :

sinitialck1,,ckisi, avec :

  • sinit=qinit~
  • si=qi~
  • qN=qfinal
  • sN=sfinal

5.

G=(V,E).

f(V', v, P) =
    Pour v'∈V\V':
        Si (v,v')∈E:
            Si f(V'∪{v'}, v', P') = Faux:
                retourner Vrai
    retourner Faux

Complexité spatiale en pire cas :

Au plus |V| appels emboîtés.

Chaque appel utilise au plus |V|+2+log|V|

⟶ en O(|V|2)

Leave a comment