Programmaturas matematiskie modeli - PowerPoint PPT Presentation

About This Presentation
Title:

Programmaturas matematiskie modeli

Description:

Programmat ras matem tiskie mode i Sintakse un semantika – PowerPoint PPT presentation

Number of Views:31
Avg rating:3.0/5.0
Slides: 28
Provided by: Karli150
Category:

less

Transcript and Presenter's Notes

Title: Programmaturas matematiskie modeli


1
Programmaturas matematiskie modeli
  • Sintakse un semantika

2
Galigs automats (akceptors)
  • Galigu automatu (akceptoru) raksturo- Galiga
    stavoklu kopa Q (kados stavoklos automats var
    atrasties).- Galigs ieejas simbolu alfabets I
    (kadus ieejas simbolus automats var sanemt /
    kados notikumos automats var piedalities).-
    Pareju attieciba ? ? Q?I?Q. ?q,a,q? ? ?
    apzimejam ari ka q -a? q, pieraksts tam, ka no
    stavokla q, sanemot ieeja simbolu a, automats var
    pariet uz stavokli q.- Sakuma stavoklu kopa S ?
    Q, beigu stavoklu kopa F ? Q.
  • Definejam, ka automats ir kortežs A ?Q, I,
    ?, S, F? (minetie 5 elementi automatu raksturo
    viennozimigi).
  • Automats akcepte vardu. I - galigo vardu kopa
    alfabeta I.
  • (x ? I ) ? ?k x a1a2ak, ?i?k ai ? I.
  • Rakstam q -x? q, ja q -a1? q1 a2? q2 ak? qk
    q pareja ar vardu x no stavokla q uz stavokli
    q.
  • Definicija. Automats A akcepte vardu x ? I , ja
    ?q ? S, ?q ? F q -x? q.
  • Definicija. Automata A valoda L(A) x ? I A
    akcepte x.

3
Galigs automats ka programmas modelis
  • Galigs skaits dažadu stavoklu un parejas starp
    tiem.
  • Kafijas automats
  • Katra bridi atrodas viena no 2 stavokliem
  • Var pienemt monetu, vai var izdot kafiju.
  • Stavokli nosaka iepriekšeja darbibu seciba.
  • Galigs dažadu stavoklu skaits, galigs skaits
    variantu, ka automats var reaget pašreizeja
    situacija.
  • Ir sistemas, ko var adekvati aprakstit ar galigu
    automatu.
  • Cita veida sistemam galigs automats var but
    abstrakcija, kas var atspogulot vairakas (lai
    ari ne visas) butiskas sistemas ipašibas.
  • Galigi automati butiski gan valodu sintakses, gan
    semantikas uzdošana (redzesim ari atškiribas
    starp šiem 2 lietojumiem).

4
Galigi automati un diskretie procesi
  • Galigs automats A ?Q, I, ?, S, F?, kur ? ?
    Q?I?Q, S ? Q, F ? Q.
  • Automats define diskreto procesu katra bridi
    automats atrodas noteikta stavokli. Ienakošie
    simboli maina automata stavokli.
  • Diskretais process programmas semantiskais
    objekts
  • Katrs no stavokliem parada, kadas ir talakas
    iespejamas automata darbibas (sk. kafijas
    automats).
  • Katram automatam ta darbibas laika iespejams
    galigs iekšejo situaciju skaits.
  • Iekšeja situacija raksturo, kas ar automatu
    noticis pagatne, un kas ar to var notikt nakotne.
  • Galigam automatam galiga, ierobežota atmina par
    to, kas ir noticis pagatne.
  • C, PASCAL programma vadibas informacija
    dati, mainigo vertibas, var izdarit vairak, neka
    ar galigo automatu.

5
Determineti automati
  • Galigs automats A ?Q, I, ?, S, F?, kur ? ?
    Q?I?Q, S ? Q, F ? Q.
  • Definicija. Automats A ir determinets, ja (1) ?!
    q?S (automatam ir tieši viens sakuma stavoklis)
    un(2) ?q?Q, ?a?I q a?q ? q a?q ? q q
    (ne vairak ka 1 parejas iespeja no katra
    stavokla ar katru ieejas alfabeta simbolu).
  • Automats ir nedeterminets, ja tam neizpildas
    kada no prasibam (1) vai (2).
  • Kadreiz lieto vardus nedeterminets automats,
    lai uzsvertu, ka nav zinams tas, ka automats ir
    determinets (bet tas nav ari izslegts, ka
    automats var izradities determinets).
  • Varam rakstit Det ? Aut, kur Det determineto
    automatu kopa, bet Aut visu (vispar sakot,
    iespejams, ka nedeterminetu) automatu kopa.
  • Definicija. Automats A ir pilns, ja ?q?Q, ?a?I
    eksiste tads q, kam q a?q .
  • Piezime. Atseviškos avotos par determinetiem var
    tikt saukti automati, kas ir vienlaikus gan
    determineti (šeit dotas definicijas nozime), gan
    pilni.

6
Galigi automati piemeri
  • Galigs automats A ?Q, I, ?, S, F?, kur ? ?
    Q?I?Q, S ? Q, F ? Q.
  • 1) I a,b, L x ? I (b,x) ir nepara
    skaitlis ((b,x) burta b ieiešanas reižu
    skaits varda x).

Katrs no stavokliem raksturo sanemto b burtu
skaitu para skaits, vai nepara skaits. Automats
nevar atškirt, vai sanemti 5 vai 9 b burti. 2) I
a,b,c, L x ? I ?y,z? I, x y a b b z
(akcepte tos un tikai tos vardus, kas satur
fragmentu abb).
Katrs no stavokliem raksturo to sakuma fragmentu
no varda abb, kas jau ir nolasits. Šis sakuma
fragments raksturo, kadas darbibas ar ieejas
simboliem veicamas turpmak.
7
Galigie automati iespejas
  • Galigs automats var atpazit valodas
  • L x1, x2, , xn jebkura galiga valoda.
  • I a,b, L x ? I (b,x) ir nepara
    skaitlis . Var but ari burta ieiešanas reižu
    skaita dališanas ar citu skaitli, noteikts
    minimali nepieciešamais burtu skaits, u.taml.
  • I a,b,c, L x ? I ?y,z? I, x y a b b
    z (akcepte tos un tikai tos vardus, kas satur
    fragmentu abb). Var but jebkurš cits fragments.
    Var but gan apakšvards, gan apakšvirkne, u.c.
    Piemerus var turpinat.
  • Valodas, ko galigs automats var atpazit t.s.
    regularas valodas (sk. automatu teorija).
  • Teorema. Ja valodam L1 un L2 eksiste galigi
    automati, kas tas atpazist, tad galigi
    atpazistoši automati eksiste ari valodam- L1 ?
    L2, L1 ? L2, I \ L1, - L1 L2 x y x ?
    L1, y ? L2 - L1 x1 x2 xn n ? 0 ? ?i?n
    xi?L1
  • Teoremu var pielietot ari vairakkartigi, lai no
    vienkaršakam valodam uzkonstruetu sarežgitakas
    valodas (pieradijuma pieejamas konstrukcijas, kas
    pec vienkaršakas valodas atpazistošajiem
    automatiem uzkonstrue automatus sarežgitakam
    valodam).

8
Regularas valodas (definicija)
  • Regularas izteiksmes alfabeta ?, kopa R(?)
  • Ja a ? ?, r0,r1 ? R(?), tad kopa R(?) ietver ari
    šadus elementus r
  • r ? ? a (r0)(r1) (r0)(r1)
    (r0) (r0)
  • Katrai regularai izteiksmei r atbilst valoda L(r)
    ? ? .
  • L(?) ?
  • L(? ) ?
  • L(a) a
  • L(XY) L(X) ? L(Y)
  • L(XY) L(X) L(Y) xy x ? L(X) ? y ? L(Y)
  • L(X) ?i ? N L(Xi), kur L(X0) ? un L(Xi1)
    L(XXi)
  • L((X)) L(X)

9
Galigie automati ierobežojumi
  • Valodas, ko neviens galigs automats nevar atpazit
    (piemeri)
  • L an bn I n ? N , vardi, kas sastav no
    noteikta skaita a burtiem, kam seko tikpat daudz
    b burti.
  • Automatam, kas šadu valodu atpazitu, butu
    jaakcepte katru no taja ietvertajiem vardiem, un
    tas nedrikstetu akceptet nevienu citu vardu. Var
    pieradit, ka šads galigs automats nav iespejams
    (pa celam jaatceras potenciali neierobežots
    informacijas daudzums cik tad a burtu lidz šim
    bija?).
  • Pienemsim, ka ir kaut kads automats A, kas
    atpazist valodu L. Automatam A ir noteikts skaits
    stavoklu n.
  • Apskatam celu (vienu no celiem), kadu automats A
    iziet no sakuma stavokla lidz akceptejošam
    stavoklim ar vardu an bn , šaja cela stavokli pec
    fragmenta ai apstrades apzimejam ar si.
  • Aplukojam stavoklus s0, s1, sn. Ta ka šo stavoklu
    ir n1, bet automata ir tikai n dažadi stavokli,
    tad si sj, kaut kadiem i, j, kam i lt j. Redzam,
    ka automats akcepte ari vardu an-ji bn, ko tam
    nevajadzetu akceptet. Pretruna.

10
Galigie automati ierobežojumi (2)
  • Valoda, ko neviens galigs automats nevar atpazit
  • L x ? I x ir simetrisks (ja I sastav no
    vismaz 2 simboliem).
  • Pieradijums analogisks valodas an bn I n ? N
    gadijumam.
  • Pienemam pretejo, ka eksiste kads automats A, kas
    var atpazit valodu L, šim automatam ir noteikts
    stavoklu skaits, n.
  • Aplukojam vardu an b an , tas ir simetrisks,
    tadel A šo vardu atpazist, eksiste celš automata
    no sakuma stavokla uz beigu stavokli, gar kuru
    var tikt nolasits šis vards.
  • Fiksejam vienu no šadiem celiem, šaja cela
    stavokli pec fragmenta ai apstrades apzimejam ar
    si.
  • Analogiski ka iepriekšeja gadijuma pieradam, ka
    šis automats akceptes ari vardu an-ji b an ,
    kur i lt j ? n, kurš nav simetrisks.
  • Pretruna.

11
Nedetermineti automati valodas
  • Teorema. Katram nedeterminetam automatam A
    eksiste atbilstošs determinets automats A, kuram
    L(A) L(A).
  • Automats A akcepte tos un tikai tos vardus,
    kurus akcepte automats A.
  • Ja automatam A ir n stavokli, tad automatam A
    stavoklu skaits neparsniegs 2n.
  • Konstrukcijas ideja (no A iegut A)Ja A ?Q,
    I, ?, S, F?, tad A ?2Q, I, ?, S, F?, kur
    jaunas stavoklu kopas 2Q elementi ir visas kopas
    Q apakškopas Q1 -a? Q2, ja Q2 q ?q ?Q1
    q -a?q Q1 ?F, ja ?q ?Q1 q ?F.
  • Daudzos gadijumos konstrukcijas var but
    vienkaršakas (mazak stavoklus prasošas).
  • Noverojums dažadas abstrakto mašinu klases (Det
    un Aut), tomer viena un ta pati izteiksmes speja
    (speja akceptet vienas un tas pašas valodas).
  • Piemers uzkonstruet atbilstošu determinetu
    automatu.

12
Nedetermineti automati diskretas iekartas
  • Ja meginam nedeterminetu automatu izpildit, ar
    kadu diskreto procesu sastopamies?
  • Kas notiek tad, ja viena bridi dažadas iespejas
    izpildit pareju, kas atbilst sanemtajam ieejas
    simbolam a?
  • Klasiska pieeja (ka iepriekšeja slaida) automats
    atceras visas iespejas, kadas bija izdarit šo
    pareju (atceras visus stavoklus, lidz kuram ar
    lidz šim sanemto vardu bija iespejams aiziet) un
    procesa (ieejas varda) beigas apskatas, vai starp
    visam iespejam bija kada, kas ir laba (noved
    lidz akceptejošam stavoklim).
  • Reala laika pieeja automata iekšiene notiek
    nedetermineta izvele katra simbola sanemšanas
    bridi.
  • Vai šadi 2 automati ir ekvivalenti (uzskatam, ka
    visi automatu stavokli ir akceptejoši)?
  • Abi automati akcepte vienu un to pašu valodu a
    ( an n ? N ).

Reala laika izpratne labas puses automata
iespejams strupcelš stavoklis, no kura nav
iespejama neviena talaka pareja. Reala laika
sistemam tas ir slikti.
13
Divas pieejas automatu nedeterminitatei
  • A. Valodu pieeja automats akcepte vardu, ja
    eksiste celš cauri tam, pa kuru var šo vardu
    nolasit.
  • Automati ir ekvivalenti, ja tiem valodas sakrit.
  • B. Reala laika pieeja automats katra savas
    izpildes reize izpilda vienu no nedeterminetas
    izveles scenarijiem.
  • Lai pieraditu kadu automata ipašibu, to japierada
    visiem automata celiem.
  • A sintakses analize izmantota pieeja.
  • B semantiskaja modelešana tipiski izmantotais
    variants (izmanto ari valodu pieeju)
  • Laba zina determinetiem automatiem dažadi
    semantiskie modeli ir sava starpa lidzvertigi.
  • Nedetermineti modeli paralelam sistemam mazliet
    velak šaja kursa.

14
Pareju sistemas
  • Programmas semantiskais objekts var nebut
    galigs.
  • Pareju sistema visparigaja gadijuma M ltS, V,
    ?, I, FgtS stavoklu kopa (galiga vai
    bezgaliga), konfiguraciju kopa, ietverta visa
    informacija par programmas stavokli (gan datu,
    gan vadibas informacija)V programmas ievada
    un izvada darbibu kopa (var tikt sadalita kopas
    Vin un Vout, kas atbilst ieejas un izejas
    darbibam, vai ari tikt veidota ka Dekarta
    reizinajums Vin ? Vout)? ? S ? V ? S pareju
    attieciba, parasti determineta (vienam stavoklim
    un vienai ieejas darbibai tikai viena iespejama
    pareja)I ? S sakuma stavoklu kopa (var but
    vajadziga kopa, kas satur vairak, neka vienu
    elementu, ja programmas ieejas datus ietveram
    stavokla informacija)F ? S beigu stavoklu
    kopa.
  • Pareju sistemas aplukosim operacionalas
    semantikas ietvaros.

15
Paplašinatie automati
  • Ja sistemas struktura ir galiga vadibas
    komponente un datu komponente, kuru erti aplukot
    ka iespejami bezgaligu, tad pareju sistemu var
    attelot t.s. paplašinata automata veida.Šadi var
    raksturot proceduru semantiku tradicionalas
    programmešanas valodas.
  • Paplašinats automats A ?Q, D, L, V, E, S, D0,
    F?Q galiga vadibas stavoklu kopaD
    (iespejami) bezgaliga datu vertibu kopa, piemeram
    DFun(Var,Z) galigai mainigo kopai Var L
    galiga notikumu (ieejas un izejas simbolu) kopaV
    (iespejams) bezgaliga ieejas un izejas datu
    vertibu kopaE škautnu kopa, ?e?E definetas
    funkcijas s(e) ?Q - izejas virsotne, t(e) ?Q
    ieejas virsotne, l(e) ?L iezime
    (notikums), p(e) D x V ? 0,1 škautnes
    predikats, ?(e) D x V ? D x V datu
    transformacija ( e ?s,t,l,p,? ? ).S ? Q
    sakuma virsotnu kopa, F ? Q beigu virsotnu
    kopa, D0 ? D sakuma datu elementu kopa.
  • Vienkaršaks variants V () , p(e) D ?
    0,1, ?(e) D ? D.
  • Paša paplašinata automata semantika pareju
    sistemas veida
  • Pareju attieciba ? ? (Q x D) x (V x L x V) x (Q
    x D)
  • Pareja notiek pa škautni e no ?q,d? uz ?q,d? ,
    automatam piedaloties notikuma l(e), sanemot
    ieeja v un izdodot izeja v, ja p(e)(d,v) 1 un
    ?(e)(d,v) (d,v).

16
Blokshema ka paplašinats automats
while ?(xy) do if x?y
then yy-x else xx-y fi od
A ?(xy)
-

B x?y

E beigas
-
C yy-x
D xx-y
  • Piemers vienkarša programma un atbilstoša
    blokshema.
  • Paplašinatais automats vadibas bloks datu
    bloks, komandas izpilde maina noradi uz kartejo
    instrukciju vadibas bloka, maina datu
    informaciju.
  • Blokshema puscelš uz atbilstoša paplašinata
    automata definiciju.
  • Vadibas stavoklu kopa A, B, C, D, E
  • Datu stavoklu kopa StVar x,y ? Z (vai
    Fun(x,y, Z), vai Z ? Z)
  • Lai paplašinato automatu definetu precizi,
    vajadzigi vel pareju nosacijumi pA, pA-, pB,
    pB- (ka predikati kopa StVar) un pareju
    funkcijas fA, fA-, fB, fB-, fC, fD (ka
    funkcijas StVar ? StVar).

17
Tema galigu automatu analize
  • Programmaturas matematiskie modeli

18
Galigu automatu analize
  • Ja dots galiga automata apraksts (automata
    diagramma, automata pareju uzskaitijums teksta
    forma, vai ka citadi), vai mes varam kaut ko
    pateikt par to diskreto procesu, ko šis automats
    realize? Par valodu, ko šis automats apraksta?
  • Automatu analizes problemas (piemeri)
  • Pec dota automata A noskaidrot, vai L(A) ? ?
  • Pec dota automata A un dota a ? I noskaidrot, vai
    L(A) satur kadu vardu x, kura ir vismaz viens
    (vai tieši viens) a burts?
  • Pec dota automata A un dota q ? Q noskaidrot, vai
    automata eksiste celš no kada sakuma stavokla
    lidz stavoklim q?
  • Pec 2 dotiem automatiem A un B noskaidrot, vai
    L(A) L(B) ?
  • Fakts. Visas šeit minetas (un daudzas citas
    radniecigas) galigo automatu analizes problemas
    ir algoritmiski atrisinamas (katrai no šim
    problemam eksiste algoritms, kas to risina).
  • Motivacija automatam ir galigs skaits stavoklu,
    visus tos ir iespejams parlasit.
  • Jautajums vai mes negribetu algoritmus lidzigu
    problemu risinašanai attieciba uz C vai PASCAL
    programmam, kuras mes rakstam?

19
Galigu automatu analize definicijas
  • Aplukojam X ?Q.
  • Definejam
  • Step(X,a) q ?Q ?q ? X q -a?q no X
    ar a viena soli sasniedzamo stavoklu kopa
  • Step(X) q ?Q ?q ? X ?b ?I q -b?q
    no X viena soli sasniedzamo stavoklu kopa
  • Reach(X,i) no X ar ne vairak ka i soliem
    sasniedzamo stavoklu kopa
  • Reach(X,0) X
  • Reach(X,i1) Reach(X,i) ? Step(Reach(X,i))
  • Ieviešam Next(X) X ? Step(X), tad Reach(X,i1)
    Next(Reach(X,i))
  • Next 2Q ? 2Q (2Q - stavoklu kopas Q
    apakškopu kopa)
  • Teorema. Funkcija Next ir monotona, t.i. ja A ?B,
    tad Next(A) ?Next(B)
  • Reach(X) ? Reach(X,s) s ?N - visu no X
    sasniedzamo stavoklu kopa.

20
Galigu automatu analize piemers
  • Pec dota automata A ?Q, I, ?, S, F? noskaidrot,
    vai L(A) ? ? (t.i., vai L(A) satur vismaz vienu
    vardu)?
  • Buvejam kopas Ri Reach(S,i) ne vairak, ka i
    solos no S sasniedzamo stavoklu kopa.
  • R0 S -- Visi sakuma stavokli, sasniedzami 0
    solos no S.
  • Ri1 Ri ? Step(Ri) Next(Ri) -- ne vairak, ka
    i1 solos sasniedzamie stavokli
  • Beidzam, kad Ri1 Ri. Apskatamies, vai Ri ? F ?
    ?.
  • Kapec šads bridis bus?
  • Tapec, ka R0 ? R1 ? R2 ? ? Q galiga kopa.
  • Kapec programma izdos pareizu atbildi?
  • Ta ka Ri Ri1 tad Next(Ri ) Next(Ri1), t.i.
    Ri1 Ri2 , tatad, pec indukcijas ?k Ri
    Rik . Secinam ?s ?N Rs ? Ri tatad Ri ? Rs
    s ?N Reach(S) visu sasniedzamo stavoklu
    kopa.
  • Tatad, L(A) ? ? tad un tikai tad, ja Ri ? F ? ?.
  • Programmas pseidokods
  • Kopai X ? Q rakstam X(q) 1, ja q ?X, citadi
    X(q) 0.
  • Mainigie (masivi) R(q), q ?Q karteja kopa
    Ri1 , T(q), q ?Q iepriekšeja kopa Ri

21
Galigu automatu analize piemers, programma
  • Pec dota automata A ?Q, I, ?, S, F? un dota a ?
    I noskaidrot, vai L(A) satur kadu vardu x?
  • Programmas pseidokods
  • Kopai X ? Q rakstam X(q) 1, ja q ?X, citadi
    X(q) 0.
  • Mainigie (masivi) R(q), q ?Q karteja kopa
    Ri1 , T(q), q ?Q iepriekšeja kopa Ri
  • ?q T(q) 0 ?q R(q) S(q) / sakuma
    inicializacija R1 S /
  • while ?q ( R(q) ? T(q)) do
  • ?q T(q) R(q) / Nokopejam kartejas
    vertibas uz iepriekšejam /
  • for all q ?Q, T(q) 1 if ?b ?I q -b?q then
    R(q) 1
  • end for / Cikla veidojam jaunas kartejas
    vertibas /
  • end while
  • if ?q R(q) 1 ? F(q) 1 then print Yes! else
    print No ..

22
Galigu automatu analize piemers (2)
  • Pec dota automata A ?Q, I, ?, S, F? un dota a ?
    I noskaidrot, vai L(A) satur kadu vardu x, kura
    ir vismaz viens a burts?
  • Kopas Ri ne vairak, ka i solos no S sasniedzamo
    stavoklu kopa, Rai ne vairak, ka i solos no S
    sasniedzamo stavoklu kopa ar vardu, kas satur
    vismaz vienu a simbolu.
  • R0 S, Ra0 ?
  • Ri1 Ri ? q ?Q ?q ? Ri ?b ?I q -b?q
  • Rai1 Rai ? q ?Q ?q ? Ri q -a?q ? q
    ?Q ?q ? Rai ?b ?I q -b?q
  • Beidzam, kad Ri1 Ri un Rai1 Rai .
    Apskatamies, vai Rai ? F ? ?.
  • Kapec šads bridis bus?
  • Tapec, ka R0 ? R1 ? R2 ? ? Q un Ra0 ? Ra1 ? Ra2
    ? ? Q , Q galiga kopa
  • Kapec programma izdos pareizu atbildi?
  • Definejam R ? Rs s ? N , Ra ? Ras s ?
    N
  • Ra to stavoklu kopa, kas sasniedzami ar vardu,
    kurš satur a.
  • Ta ka Ri Ri1 , tad Ri1 Ri2 un pec
    indukcijas ?k Ri Rik , tatad Ri R.
  • Ta ka Ri Ri1 ? Rai Rai1 , tad Ri1 Ri2
    ? Rai1 Rai2 un pec indukcijas ?k Ri Rik
    ? Rai Raik , tatad Ri R ? Rai Ra.
  • Tatad Rai ? F ? ? ? Ra ? F ? ? un algoritms
    izdos pareizu atbildi.

23
Galigu automatu analize piemers, programma (2)
  • Pec dota automata A ?Q, I, ?, S, F? un dota a ?
    I noskaidrot, vai L(A) satur kadu vardu x, kura
    ir vismaz viens a burts?
  • Programmas pseidokods
  • Kopai X ? Q rakstam X(q) 1, ja q ?X, citadi
    X(q) 0.
  • Mainigie (masivi) R(q), q ?Q karteja kopa
    Ri1 , T(q), q ?Q iepriekšeja kopa RiRa(q),
    q ?Q karteja kopa Rai1 , Ta(q), q ?Q
    iepriekšeja kopa Rai .
  • ?q T(q) 0 ?q R(q) S(q) / sakuma
    inicializacija R1 S /
  • ?q Ta(q) 0 ?q Ra(q) 0
  • while ?q ( R(q) ? T(q) ? Ra(q) ? Ta(q) ) do
  • ?q T(q) R(q) ?q Ta(q) Ra(q)
  • for all q ?T(q) if ?b ?I q -b?q then R(q)
    1
  • if q -a?q then Ra(q) 1 end for
  • for all q ?Ta(q) if ?b ?I q -b?q then Ra(q)
    1 end for
  • end while
  • if ?q Ra(q) 1 ? F(q) 1 then print Yes!
    else print No ..

24
Galigu automatu ekvivalence
  • Definicija. Galigus automatus A un B sauksim par
    ekvivalentiem (klasiskaja nozime), ja L(A)
    L(B).
  • Teorema. Eksiste algoritms, kas pec 2 dotiem
    galigiem automatiem nosaka, vai tie ir
    ekvivalenti.
  • Pieradijums. Doti 2 automati A ?Q1, I, ?1, S1,
    F1? un B ?Q2, I, ?2, S2, F2?.
  • Pienemsim, ka A un B ir pilni, t.i. katra no šiem
    automatiem no katra stavokla eksiste pareja ar
    katru ieejas simbolu.
  • (Ja kads no A vai B nebutu pilns, tad to varetu
    parveidot par ekvivalentu pilnu automatu,
    pievienojot papildus neakceptejošu stavokli, uz
    kuru novirzit visas parejas, kas sakotneja
    automata nav definetas).
  • Izveidojam automatu A ?? B ? Q1 ? Q2, I, ?, S1
    ? S2, F1 ? (Q2 \ F2) ? (Q1 \ F1) ? F2 ? ,
  • kur pareju attieciba ? defineta ka ?s,t ? -a?
    ?s,t ? tad un tikai tad, ja ?s? -a?1 ?s? un ?
    t ? -a?2 ? t ?.
  • A un B ir ekvivalenti tad un tikai tad, ja L(A ??
    B) ?.

25
Paplašinatu automatu analize
  • Dažadas paplašinato automatu klases (dažadi
    škautnu predikati un transformejošas funkcijas),
    tam atbilst dažadas analizes iespejas
  • Var but ta, ka neeksiste algoritms pat vienkaršu
    ipašibu automatiskai noskaidrošanai noteiktam
    paplašinato automatu klasem
  • Pat vienkaršam paplašinato automatu klasem (t.sk.
    paplašinatiem automatiem, kas atbilst proceduram
    parastas programmešanas valodas) neeksiste
    algoritmi vienkaršu ipašibu (piemeram, virsotnes
    sasniedzamiba) automatiskai noskaidrošanai
  • Sk. algoritmu teorija ..
  • Šaja kursa varesim šos jautajumus aplukot
    programmu korektibas apgalvojumu konteksta

26
Tjuringa mašinas
  • Tjuringa mašina - abstrakta mašina, paplašinats
    automats - vadibas bloks galigs automats,-
    datu bloks bezgaliga lenta, sadalita šunas,
    katra šuna iespejams ierakstit vienu simbolu no
    fikseta galiga alfabeta, katra bridi automata
    galvina apluko vienu no šunam- operacija
    atkariga no automata stavokla un no simbola, kas
    uz lentas preti galvinai pec izpildes jauns
    stavoklis, jauns simbols uz lentas un parvietota
    galvina.
  • M ?Q, L, P, S, F?
  • Q galiga automata stavoklu kopa,
  • L 0,1, ?, galigs lentas simbolu alfabets
  • P mašinas komandu kopa (programma), katra
    komanda ir forma qiak?qjare, kur qi, qj ?Q, qi
    komandas sakuma stavoklis, qj komandas beigu
    stavoklis ak, ar ?L, ak no lentas nolasitais
    simbols, ar uz lentas uzrakstitais simbols e
    ?L,R,E galvinas nobide L pa kreisi, R pa
    labi, E paliek uz vietas
  • Tjuringa mašinas izpilde Ja automats stavokli qi
    redz simbolu ak, tas uzraksta uz lentas simbolu
    ar, pariet uz stavokli qj un pabida galvinu uz
    lentas par e.
  • S ? Q sakuma stavoklu kopa, F ? Q beigu
    stavoklu kopa.

27
Paplašinatu automatu algoritmiska analize
  • Analizes problemas stavokla sasniedzamiba,
    noteikta darbibas scenarija iespejamiba
    (piemeram, ieciklošanas, utt.),
    programmas/automata atbilstiba specifikacijai
  • Galigi automati visas butiskas analizes
    problemas algoritmiski atrisinamas.
  • Tjuringa mašinas, universalas programmešanas
    valodas var pieradit, ka visas butiskas
    analizes problemas visparigaja gadijuma
    algoritmiski neatrisinamas.
  • Petnieciski jautajumi atrast tadas paplašinato
    automatu / programmu klases, kuram noteikta
    analizes problema tomer ir algoritmiski
    atrisinama. Stavoklu kopa ir bezgaliga, tatad
    metodes nevar but vienkarša parlase.
  • Skaititajs zi programmas mainigais sakuma 0,
    operacijas zi zi1, zi zi (-)1, zi 0.
  • Teorema. Pec dotas Tjuringa mašinas M var
    uzkonstruet automatu ar 2 skaititajiem A(M), kas
    apstajas tad un tikai tad, ja M apstajas, sakot
    darbu ar tukšu lentu.
  • Sekas. Automatu ar 2 skaititajiem klase virsotnes
    sasniedzamibas problema ir algoritmiski
    neatrisinama.
  • Teorema. Eksiste algoritms, kas pec dota automata
    ar 1 skaititaju un dotas virsotnes automata
    nosaka, vai ši virsotne ir sasniedzama.
  • Citas paplašinato automatu klases interesanta
    petnieciska nozare.
Write a Comment
User Comments (0)
About PowerShow.com