Curs10 Automat Push-down

46
Automatele Pushdown (PDA) Andrei Paun

description

Automate finite Limbaje formale si automaTE MITRANA

Transcript of Curs10 Automat Push-down

  • Automatele Pushdown (PDA)

    Andrei Paun

  • CuprinsMotivareDefinitieExempleModuri de acceptareDeterminism si nedeterminismRelatia cu gramaticile independente de contextDeterminism si CFGSumar

  • MotivareDFA/NFA nu sunt suficient de puternice

    {aibi| i>0}gramatica: S-> aSb|ab{wwr|w din {a+b}*} palindrom de lungime paragramatica: S-> aSa|bSb|limbajul format din paranteze balansategramatica: S->(S)|SS|

  • MotivareAutomate Pushdown: -NFA cu stiva

    pentru marit puterea NFA-urilor restrictionam regulile/ tranzitiileavem acces la o stiva (LIFO)

  • Automate Pushdown -- PDACuvantul de intrareStivaStarile

  • Reprezentare graficaSimbol de intraresimbolpopcuvantpush

  • Simbolul initial pe stivaStivaStivaSibolul special (ultimul din stiva)capul stiveitopApare la momentul 0

  • topinputstivainlocuim

  • Pushtopinputstiva

  • Poptopinputstiva

  • PoptopinputstivaStiva vidavida Automatul SE OPRESTEnu mai avem tranzitii posibile dupa

  • PoptopinputstivaO tranzitie posibila

  • NedeterminismPDA-urile sunt nedeterministeTranzitiile nedeterministe sunt posibile

  • Exemplu de PDAPDA

  • Ideea de baza:Push a-urii pe stiva2. pentru fiecare b de la intrare consumam un a de pe stiva 3. Am gasit un cuvant

  • Exemplu de executie:Inputstarea curentamomentul 0Stiva

  • Inputstarea curentaStiva

  • Inputstarea curentaStivaTimpul 1

  • Inputstarea curentaStivaTimpul 2

  • Inputstarea curentaStivaTimpul 3

  • Inputstarea curentaStivaTimpul 4

  • Inputstarea curentaStivaTimpul 5

  • Inputstarea curentaStivaTimpul 6

  • Inputstarea curentaStivaTimpul 7acceptam

  • Inputstarea curentaStivaTimpul 0Exemplu de Rejectare:

  • Inputstarea curentaStivaTimpul 0

  • Inputstarea curentaStivaTimpul 1

  • Inputstarea curentaStivaTimpul 2

  • Inputstarea curentaStivaTimpul 3rejectam

  • Exemplu{wwr|w din {a+b}*}pornim intr-o stare s1 care va face o alegere nedeterminista daca am ajuns sau nu la mijlocul cuvantului. Daca nu am ajuns, se salveaza pe stiva literele citite de la intraredin s1 mergem in s2 (in momentul alegerii nedeterministe)in s2 se compara simbolurile de pe stiva cu simbolurile de intraredaca ajungem la sfarsitul cuvantului de intrare si stiva este goala acceptam (mergem intr-o stare finala s3)

  • DefinitieAutomate Pushdown Starialfabetul de intrarealfabetulstiveifunctiatranzitiilorstarilefinalesimbolul de pe stivastarea initiala

  • mergem din starea q in q citind de la intrare a (care poate sa file ) si citind de pe stiva simbolul X. In final ajungem in starea q si inlocuim X cu X pe stiva

  • Descriere instantanee Stareacurentacuvantul de intrare ramas

    continutulcurent alstivei

  • Modul de operare al PDAdaca definim

  • Limbajele acceptate de PDAAcceptare prin stare finala: Se porneste din starea initiala, se accepta daca am ajuns intr-o stare finala (la fel ca in cazul automatelor finite)

  • Acceptare prin stiva vida: Se porneste din starea initiala, se accepta daca am ajuns la sfarsitul cuvantului intr-o configuratie cu stiva vida

    se poate arata simplu echivalenta dintre cele doua moduri de acceptare

  • Acceptare prin stare finala si stiva vida: Se porneste din starea initiala, se accepta daca am ajuns la sfarsitul cuvantului intr-o stare finala si cu stiva vida

  • Determinism si nedeterminismDefinitie: un PDA este deterministic daca contine cel mult un element pentru oricedaca nu este vid pentru atunci este vid

  • observatii pentru DPDADPDA accepta -tranzitiifiecare tranzitie este determinata de catre starea curenta, simbolul de intrare curent si simbolul din capul stiveipentru o pereche stare-simbol de intrare putem sa avem o multitudine de tranzitii diferentiate de sibolul de pe stiva

  • Proprietati pentru DPDAdaca avem TDPDA, NDPDA, LDPDA fiind familiile de limbaje acceptate de DPDA prin stare finala, stiva vida si stare finala si stiva vida, respectivavem NDPDA =LDPDA inclus in TDPDA

  • exemplu: L={ambn|mn, n>0}

    L=T(A), dar L nu apartine lui NDPDA

  • CFL deterministeDefinitie: limbajele independente de context deterministe sunt toate limbajele acceptate de DPDA prin modul de acceptare stare finala

    DCFLs sunt incluse strict in CFLsexemple: L={anbn|0n}U{anb2n|0n}{wwr|w din {a+b}*}

  • Relatia cu limbajele independente de contextPDA (nedeterministe) sunt echivalente cu CFGse demonstreaza ca pentru orice gramatica G se poate construi un PDA A care accepta limbajul generat de Gsi apoi se demonstreaza ca pentru orice PDA A se poate construi o gramatica G care genereaza toate cuvintele acceptate de automatul A

  • L(CFG) inclus in L(PDA)fie G o gramatica independenta de contextconstruim automatul A cu 3 stari si tranzitiile

  • DCFL proprietati de inchidereDCFL sunt inchise la complementare intersectie cu limbaje regulate

    DCFL nu sunt inchise lareuniuneintersectie

  • SumarPDA: un -NFA cu stivaAcceptare: stare finala, stiva vida, 1&2modurile de acceptare sunt echivalente pentru PDAPDA sunt echivalente cu CFGDPDA sunt strict incluse in PDAmodurile de acceptare nu sunt echivalente pentru DPDAREG inclus in DPDA inclus in CFG