Title: Programmaturas matematiskie modeli
1Programmaturas matematiskie modeli
2Galigs 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.
3Galigs 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).
4Galigi 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.
5Determineti 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.
6Galigi 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.
7Galigie 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).
8Regularas 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)
9Galigie 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.
10Galigie 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.
11Nedetermineti 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.
12Nedetermineti 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.
13Divas 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.
14Pareju 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.
15Paplaš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).
16Blokshema 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).
17Tema galigu automatu analize
- Programmaturas matematiskie modeli
18Galigu 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?
19Galigu 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.
20Galigu 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
21Galigu 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 ..
22Galigu 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.
23Galigu 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 ..
24Galigu 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) ?.
25Paplaš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
26Tjuringa 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.
27Paplaš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.