A × B - KTU - Kompiuterių katedra

Download Report

Transcript A × B - KTU - Kompiuterių katedra

KOMPIUTERIŲ TEORIJA
BAIGTINIAI AUTOMATAI
1 paskaita
Kartojame matematiką, ...
Doc. Stasys Maciulevičius
[email protected]
Kaip mes dirbsime?




Paskaitos – kiekvieną pirmadienį (nuo 17
val.)
Praktiniai užsiėmimai – pavyzdžiai –
paskaitose, pratybose ir “darbo
savaitgaliais” (jų laikas – 10.18, 11.22,
12.20)
Egzaminas – 01.24-25
Grįžtamasis ryšys – elektroniniu paštu:
[email protected]
2009-2013
©S.Maciulevičius
2
Apie kurso turinį: 1 dalis

Įvadas

BA kalboms. Deterministiniai baigtiniai automatai
Įvadas. Būtiniausios matematikos skyrių žinios
Deterministiniai baigtiniai automatai. Baigtinio automato
konfigūracija. Eilutės priėmimas. Nedeterministiniai baigtiniai
automatai. Baigtinių automatų pavyzdžiai.

Nedeterministiniai baigtiniai automatai

Baigtiniai automatai ir reguliariosios išraiškos
NDBA konfigūracija. NDBA ir DBA ryšys. Teorema apie NDBA ir
DBA. NDBA pertvarkymo į DBA pavyzdys.
Reguliariosios išraiškos. Teorema apie automato priimamų kalbų
klases. Algoritmas A: Kaip pagal duotąją reguliarią išraišką
formuojamas baigtinis automatas? Reguliariosios ir nereguliariosios
kalbos. Išraiškų diagrama. Algoritmas B: Kaip pagal duotąjį baigtinį
automatą formuojama reguliarioji išraiška?
2009-2013
©S.Maciulevičius
3
Apie kurso turinį: 1 dalis

Būsenų skaičiaus minimizavimas
Būsenų skaičiaus minimizavimas. Ekvivalentiškumo klasės (EK) ir
jų radimas. EK nustatymo algoritmas

Sintaksinė analizė
Sintaksinės analizės medis. Ekvivalentiškų išvedimų klasės.
Išvedimo variantai. Dviprasmės gramatikos. Steko tipo automatai
(STA). STA konfigūracija.
2009-2013
©S.Maciulevičius
4
Apie kurso turinį: 2 dalis

Tiuringo mašinų teorijos pagrindai
2009-2013
©S.Maciulevičius
5
Apie kurso turinį: 3 dalis

Baigtiniai automatai valdymui
Mili ir Muro automatai. BA vaizdavimo būdai.

Automatų ekvivalentiškumas
Automatų ekvivalentiškumas. Mili ir Muro automatų ryšys. BA
pertvarkymas (būsenų skaičiaus minimizavimas).

BA projektavimas
BA projektavimo uždavinys. Struktūrinis automatas. Automato
kodavimas. Automato realizacija.
2009-2013
©S.Maciulevičius
6
Apie kursą ir atsiskaitymą







Paskaitos – pirmadieniais, 17 val.
Kurso medžiaga - http://ifko.ktu.lt/~stama
(http://ifko.ktu.lt/~stama/KompTeorMag/
Komp_Teorija.htm)
Rasite ir kurso medžiagos santrauką .pdf formatu
Namų darbai - uždavinių sprendimas medžiagai
įsisavinti
Susitikimai - spalio 18-19 d., lapkričio 22-23 d.,
gruodžio 20-21 d.
Tuomet – konsultacijos, uždavinių sprendimas, dalinis
atsiskaitymas
Siūlau: lapkričio 22 d. atsiskaityti už 1 dalį, gruodžio 20
d. - už 2 dalį
2009-2013
©S.Maciulevičius
7
Šio skaidrių rinkinio turinys
•
•
•
•
•
•
•
Aibės
Santykiai, funkcijos
Grafai
Alfabetas, eilutės
Kalbos
Reguliariosios išraiškos
Pakartokime ...
2009-2013
©S.Maciulevičius
8
Aibės




Aibė – tai kurių nors objektų rinkinys. Pavyzdžiui,
L={a, b, c, d} – aibė, sudaryta iš 4 raidžių
Aibę sudarantys elementai vadinami aibės
elementais arba aibės nariais. Pavyzdžiui, tegul
a yra aibės L elementas. Tai žymima aL. Tuo
tarpu raidė f nėra aibės L elementas. Tai žymima
fL
Pagal elementų skaičių skiriamos baigtinės ir
begalinės aibės . Pavyzdžiui, aukščiau minėta
aibė L yra baigtinė (turinti 4 elementus)
Aibė gali turėti vienintelį elementą. Aibė gali būti ir
tuščia. Tokia aibė žymima 
2009-2013
©S.Maciulevičius
9
Aibės



Kartais negalima išvardinti visų aibės elementų.
Pavyzdžiui, natūrinių skaičių aibė užrašoma
taip: N={0,1,2,…}. Akivaizdu, kad ši aibė yra
begalinė
Dar vienas būdas aibės elementams apibrėžti
– nusakyti jų savybes. Pavyzdžiui, didesnių už
3 natūrinių skaičių aibė gali būti užrašoma taip:
G = {x : xN ir x>3}
Apibendrinus užrašas atrodys taip:
B = {x : xA ir x pasižymi savybe S}
2009-2013
©S.Maciulevičius
10
Aibės



Sakoma, kad aibė A yra aibės B poaibis
(AB), jei kiekvienas aibės A elementas
kartu yra ir aibės B elementas. Taigi,
didesnių už 3 natūrinių skaičių aibė GN
Jeigu AB ir aibės A ir B nesutampa,
rašoma AB
Jeigu AB ir BA, tai A=B. Atsižvelgę į
tai, galime sakyti, kad G  N
2009-2013
©S.Maciulevičius
11
Aibių operacijos



Aibėms taikomos tokios operacijos:
 Aibių sąjunga: A  B = {x : xA arba xB}
 Aibių sankirta: A  B = {x : xA ir xB}
 Aibių skirtumas: A - B = {x : xA ir xB}
Pavyzdžiui, tegul A = {1,2,3,4,5}, o B = {2,4,6};
tuomet A  B = {1,2,3,4,5,6}, A  B = {2,4},
A – B = {1,3,5}
Jei U pažymėsime kurių nors objektų klasę, o
AU, tai aibės A papildymu laikysime aibę
A’ = {x : x  A}
2009-2013
©S.Maciulevičius
12
Aibių operacijos

Aibių operacijos pasižymi tokiomis savybėmis:






Idempotentyvumu: A  A = A, A  A = A
Komutatyvumu: A  B = B  A, A  B = B  A
Asociatyvumu: (A  B)  C = A  (B  C),
(A  B)  C = A  (B  C)
Distributyvumu: (A  B)  C = (A  C)  (B  C),
(A  B)  C = (A  C )  (B  C)
Absorbcija: (A  B)  A = A, (A  B)  A = A
De Morgano dėsniai: A - ( B  C) = (A - B)  (A - C),
A - ( B  C) = (A - B)  (A - C)
2009-2013
©S.Maciulevičius
13
Aibių operacijos ir Veno diagramos



Aibių operacijų savybės gali būti
patikrinamos naudojant Veno diagramas
Veno diagramą sukūrė ir savo vardu
pavadino britų filosofas ir matematikas
Džonas Venas (John Venn), gyvenęs 18341923 m.
Veno diagramos iliustruoja matematinius
arba loginius ryšius tarp skirtingų objektų ar
grupių (aibių)
2009-2013
©S.Maciulevičius
14
Aibių operacijos ir Veno diagramos


Šios diagramos susideda iš apskritimų (ovalų),
susikertančių arba esančių vienas kitame
Tegul A ir B – dvi aibės, turinčios bendrų
elementų:
A-B
AB
B-A
Tegul aibę A atitinka
žalia spalva nudažytas
skritulys, o B – geltona
spalva nudažytas ovalas
AB
2009-2013
©S.Maciulevičius
15
Veno diagramos


Distributyvumas: (A  B)C = (AC)  (BC):
Tegul aibę A atitinka žalia spalva, B – geltona, o
C – raudona spalva nudažytas skritulys:
C
A
B
2009-2013
©S.Maciulevičius
16
Veno diagramos


Distributyvumas: (A  B)C = (AC)  (BC):
Kairiajai lygybės pusei: A  B atitiks
horizontaliomis, C - vertikaliomis linijomis
užštrichuota dalis, o (A  B)C – horizontaliomis
ir vertikaliomis linijomis užštrichuota dalis:
C
A
2009-2013
©S.Maciulevičius
B
17
Veno diagramos


Distributyvumas: (A  B)C = (AC)  (BC):
Dešiniajai lygybės pusei: AB atitiks
horizontaliomis linijomis užštrichuota dalis, o BC
– vertikaliomis linijomis užštrichuota dalis:
C
A
2009-2013
B
Tuomet (AC)  (BC)
atitiks horizontaliomis
arba vertikaliomis
linijomis užštrichuota
dalis
©S.Maciulevičius
18
Aibės


Aibės nesikerta, jei jos neturi bendrų
elementų: A  B = 
Netuščios aibės A suskaidymu vadinsime
tokių jos poaibių rinkinį P, kuris tenkina
tokius reikalavimus:
kiekvienas P elementas – netuščia aibė,
 skirtingi P elementai nesusikerta,
  P = A
Pavyzdys: A = {1,2,3,4,5,6}; P1 = {1,5,6}, P2 =
{3,4}, P3 = {2}

2009-2013
©S.Maciulevičius
19
Aibės



Aibės galia vadinamas jos elementų skaičius.
Aibės A galią dažniausiai žymime |A|
Tegul A ir B – dvi aibės. Tuomet jų sandauga
(Dekarto sandauga) vadinsime tokią aibę,
kurios kiekvienas elementas atitinka porą (ai,
bj), aiA ir bjB :
A × B = {(ai, bj)| aiA ir bjB}
Tegul A={0,1} ir B={a,b,c}. Tuomet :
A × B = {(0, a), (0, b), (0, c), (1, a), (1, b), (1, c)}
2009-2013
©S.Maciulevičius
20
Santykiai





Matematikoje mes esame sutikę santykius <, >, = ir
pan.
Kaip yra su aibių elementais? Čia santykį apibrėžti
sunkiau
Įveskime aibės elementų grupavimą: tegul du aibių A
ir B elementai a ir b sudaro elementų grupę, kurią
pavadinsime sutvarkyta pora ir žymėsime (a, b)
Tokiu atveju aibė A vadinama apibrėžimo sritimi, o
B vadinama reikšmių sritimi
Dažnai abi šios sritys – ta pati aibė. Tuomet sakoma,
kad santykis R  A × A apibrėžtas aibėje A
2009-2013
©S.Maciulevičius
21
Santykiai


Žinoma, (a, b) nėra tas pats kaip {a, b}. Aibėms
galima rašyti {a, b}={b, a}, tuo tarpu (a, b)  (b,
a). Be to, abu poros elementai gali sutapti: (a,
a), tuo tarpu {a, a} = {a}
Bendruoju atveju galima kalbėti apie n-matį
sutvarkytą rinkinį. Tegul a1, a2, …, an – bet
kokie n objektų (nebūtinai skirtingų). Tuomet
(a1, a2, …, an) - sutvarkytas rinkinys, o ai , i =
1, 2, …, n – i-tasis šio rinkinio elementas
(komponentas)
2009-2013
©S.Maciulevičius
22
Funkcijos


Intuityviai galime teigti, kad funkcija – tai
asociacija, nusakanti, kaip kiekvienas vienos
rūšies objektas siejamas su atitinkamu (kitos
rūšies) objektu: žmogus – su jo amžiumi, medis
– su jo aukščiu ir t.t.
Aibės elementams funkcija tarp aibių A ir B gali
būti apibrėžta kaip binarinis santykis R,
pasižymintis tokia savybe: kiekvienam aibės
elementui aA egzistuoja vienintelė sutvarkyta
pora, kurios pirmasis komponentas yra a
2009-2013
©S.Maciulevičius
23
Funkcijos

Tegul A – Lietuvos apskričių aibė, o M –
Lietuvos miestų aibė. Pažymėkime
R1 = {(m,a) : mM, aA, o m - miestas
apskrityje a},
R2 = {(a,m) : aA, mM, o a apskrityje yra
miestas m }.
Tuomet R1 yra funkcija (kiekvienas miestas yra
tam tikroje apskrityje), tuo tarpu R2 – ne (bet
kurioje apskrityje yra daugiau nei vienas
miestas)
2009-2013
©S.Maciulevičius
24
Funkcijos




Funkciją žymėsime taip: f : A  B
Aibę A vadinsime funkcijos apibrėžimo
sritimi
Jeigu aA, tai f (a) žymėsime tokį aibės
B elementą, kad (a,b)f
a dar vadinamas argumentu, o b –
funkcijos reikšme
2009-2013
©S.Maciulevičius
25
Grafai



Tegul A – aibė, o santykis R  A  A
apibrėžtas šioje aibėje
Šį santykį galima pavaizduoti orientuotu
grafu, kurio viršūnes a žymėsime
skrituliukais, o lanku sujungsime viršūnes a ir b
tik tuomet, jei (a,b)R
Pavyzdžiui, santykį R = {(a,b), (b,a), (a,c),
(c,b), (c,c)} atitinka grafas a
b
c
2009-2013
©S.Maciulevičius
26
Grafai





Santykis R  A  A vadinamas simetrišku, jei
kiekvienam aA ir bA yra (a,b)R ir (b,a)R
Šį santykį atitinka neorientuotas grafas, kurio
lankai vaizduojami be rodyklių
Santykis R  A  A vadinamas asimetrišku, jei
kiekvienam aA ir bA teisinga (a,b)R , bet
(b,a)R
Santykis R  A  A vadinamas refleksyviu, jei
kiekvienam aA teisinga (a,a)R
Santykis R  A  A vadinamas tranzityviu, jei
turint (a,b)R ir (b,c)R, teisinga (a,c)R
2009-2013
©S.Maciulevičius
27
Alfabetas, eilutės
 Alfabetu vadiname baigtinę simbolių aibę
 Eilute vadinsime baigtinę seką simbolių,
paimtų iš duotojo alfabeto. Bendruoju atveju
eilutę žymėsime ω
 Eilutė, kuri neturi nė vieno simbolio, vadinama
tuščia. Tokią eilutę žymėsime e
 Jei alfabetą žymėsime Σ, tai visumą šio
alfabeto eilučių žymėsime Σ*
 Eilutės ω ilgiu vadinsime ją sudarančių
simbolių skaičių ir žymėsime |ω|
2009-2013
©S.Maciulevičius
28
Alfabetas, eilutės
 ω(j) , 1≤ j ≤ |ω|, žymėsime j-jį eilutės simbolį
 Dviejų eilučių x ir y sukabinimu
(konkatenacija, concatenation) vadinsime naują
eilutę xy arba x • y, kurioje po eilutės x seka
eilutė y:
ω = x•y , jeigu ir tik jeigu:
|ω| = |x| + |y|,
ω(j) = x(j) ,
j = 1, …, |x| ,
ω(|x| +j) = y(j) ,
j = 1, …, |y|
 Suprantama, kad ω • e = e • ω = ω
2009-2013
©S.Maciulevičius
29
Alfabetas, eilutės
 Eilutė v vadinama eilutės ω subeilute (substring), jei
egzistuoja tokios dvi eilutės x ir y , kad
ω=x•v•y
Čia gali būti ir x = e arba y = e arba x = e ir y = e
 Jei ω = x • v , tai v yra eilutės ω priesaga (suffix)
 Jei ω = v • y , tai v yra eilutės ω priešdėlis (prefix)
 Kiekvienai duotajai eilutei ω ir kiekvienam natūriniam
skaičiui i eilutę ωi apibrėšime taip:
i
ω :
2009-2013
{
0
ω = e,
i+1
i
ω = ω • ω, i 0
©S.Maciulevičius
30
Alfabetas, eilutės
 Atvirkščia eilutė ωR yra sudaroma iš tų pačių
simbolių (kaip ir ω), tik užrašytų atvirkščia
tvarka:
alusR = sula
 Formaliai:
1) jei |ω| = 0, tai ωR = ω = e,
2) jei |ω| = n + 1 > 0, ir ω = ua, kur a Σ, tai ωR
= auR .
Tai gali būti įrodyta naudojant matematinę
indukciją
2009-2013
©S.Maciulevičius
31
Reguliariosios išraiškos

Eilutes galima užrašyti įvairiai, naudojant
skliaustus ir pagrindines operacijas:





• - sukabinimą: a•b•c arba tiesiog abc
U - apjungimą: ab U c (ši operacija atitinka “arba”)
pakartojimą: anb
iteraciją: a*b
Reguliariosios išraiškos aprašo kalbą naudojant
pavienius simbolius ir , kartu su simboliais U, •,
bei * , taip pat esant reikalui, skliaustais.
2009-2013
©S.Maciulevičius
32
Reguliariosios išraiškos
Reguliariosios išraiškos alfabete Σ yra visos eilutės
alfabete Σ U {(, ), , U, *}, gautos tokiu būdu:
1.
2.
3.
4.
5.
 ir kiekvienas Σ elementas yra reguliarioji išraiška.
Jei  ir  - reguliariosios išraiškos, tai () taip pat yra
reguliarioji išraiška.
Jei  ir  - reguliariosios išraiškos, tai ( U ) taip pat
yra reguliarioji išraiška.
Jei  - reguliarioji išraiška, tai * taip pat yra reguliarioji
išraiška.
Visos kitos išraiškos, kurios nėra gaunamos
panaudojant 1-4 taisykles baigtinį skaičių kartų, nėra
reguliariosios išraiškos.
2009-2013
©S.Maciulevičius
33
Kalba
 Kalba vadinsime bet kokią aibę eilučių,
sudarytų iš alfabeto Σ simbolių, t.y., Σ*
poaibį
 Kalbą galima užduoti išvardijant visas jos eilutes.
Pavyzdžiui, jei alfabetas Σ = {a, b, …, z}, tai
{abba, bonus, koma, z} yra kalba (šiame
alfabete)
 Kadangi dauguma kalbų nėra baigtinės, išvardyti
visas kalbos eilutes neįmanoma.Tokioms
kalboms apibrėžti naudojamas toks principas:
L = {ω  Σ*: ω pasižymi savybe P}
2009-2013
©S.Maciulevičius
34
Kalbos baigtinis atvaizdavimas
Aišku, kad baigtinę kalbą galima pateikti sunumeravus ir
užrašius visas jos eilutes. Tačiau kaip tai padaryti, jei
kalba nėra baigtinė?
Pradžioje panagrinėkime išraiškas.
Pavyzdžiui, tegul L = {ω  { 0, 1}: į ω įeina 2 ar 3
vienetukai, be to, pirmąjį nuo antrojo skiria bent
vienas 0}. Šią kalbą galima aprašyti panaudojant
pavienių simbolių aibes ir simbolius •, bei * :
L = {0}* •{1} •{0}* •{0} •{1} •{0}* • (({1} •{0}*) U *)
Jei praleisime kai kuriuos skliaustus ir simbolius •,
gausime:
L = 0*10*010* (10* U *)
Taip atrodančios išraiškos vadinamos reguliariomis.
2009-2013
©S.Maciulevičius
35
Reguliariosios išraiškos ir kalba
Kiekviena reguliarioji išraiška atitinka kalbą. Formaliai reguliariųjų
išraiškų ir kalbų santykis nustatomas funkcija L: jei  yra
reguliarioji išraiška, tai L () yra kalba, kurią atstovauja  .
Funkciją L apibrėšime taip:
1. L ()= , L (a)= {a} kiekvienam a  Σ.
2. Jei  ir  - reguliariosios išraiškos, tai L (())=L ()L ()
3. Jei  ir  - reguliariosios išraiškos, tai L (( U ))=L () U L
( )
4. Jei  - reguliarioji išraiška, tai L (*)= (L ())* .
Pirmasis teiginys apibrėžia kalbą reguliariosioms išraiškoms,
sudarytoms iš vieno simbolio, o kitos - sudarytoms iš
trumpesnių išraiškų.
2009-2013
©S.Maciulevičius
36
Reguliariosios išraiškos ir kalba
Pavyzdys.
Kas yra L (((a U b)* a))?
L (((a U b)* a)) = L ((a U b)* ) L (a)
(2)
= L ((a U b)* ) {a}
(1)
= (L (a U b))* {a}
(4)
= (L (a) U L (b)) * {a} (3)
= ({a} U {b})* {a} (1)
= {a, b}* {a}
= {ω  {a, b}* : ω baigiasi a}
2009-2013
©S.Maciulevičius
37
Reguliariosios išraiškos ir kalba



Kiekviena kalba, kuri gali būti užduota reguliariąja
išraiška, gali būti užduota ir daugeliu kitų.
Pavyzdžiui:  ir ( U ) visada atitinka tą pačią
kalbą. Analogiškai (( U ) U ) ir ( U ( U ))
taip pat atitinka tą pačią kalbą
Reguliariųjų kalbų klase alfabete Σ laikomos
visos tokios kalbos L , kad L =L ( )
reguliariosioms išraiškoms alfabete Σ
Vienok ne kiekvieną kalbą, kuri gali būti užduota
kitomis priemonėmis, galima pateikti
reguliariosiomis išraiškomis. Pavyzdžiui: {0n1n:
n0} nėra reguliarioji išraiška
2009-2013
©S.Maciulevičius
38
Kalba
Kalboms galima taikyti tokias pačias
operacijas, kaip ir eilutėms:
 apjungimo (union),
 susikirtimo (intersection),
 skirtumo (difference).
Be to, kartais vietoj skirtumo Σ* - A rašoma
– A ; tai aibės A papildymas.
Yra ir specifinių, tik kalboms būdingų
operacijų.
2009-2013
©S.Maciulevičius
39
Kalba
Viena tokių - sukabinimas (konkatenacija). Jei L1
ir L2 - alfabeto Σ kalbos, tai
L = L1 • L2 arba L = L1L2,
kur
L = {ω  Σ*: ω = x • y , o x  L1 ir y  L2}.
Pavyzdžiui:
Σ = {0, 1}. L1 = {ω  Σ*: ω turi nelyginį 0
skaičių}.
L2 = {ω  Σ*: ω prasideda 0 , o visi kiti
simboliai lygūs 1}.
Tada L = L1 • L2 = {ω: ω turi lyginį 0 skaičių}.
2009-2013
©S.Maciulevičius
40
Kalba
Kita tokia operacija – iteracija
(Klini žvaigždė - Kleene star), žymima L*
simboliu.
L* - aibė visų eilučių, gaunamus sukabinus n  0
kalbos L eilučių:
L* = {ω  Σ*: ω = ω1 • ω2 • ω3 • … • ωn , n  0 ir
ω1, ω2, ω3, … , ωn  L }.
Kai n = 0, gauname e.
Pavyzdžiui: L = {01, 1, 100}.
Tuomet 110001110011  L*, nes 110001110011 =
1•100•01•1•100•1•1.
2009-2013
©S.Maciulevičius
41
Kalbos atpažinimas



Algoritmą, kuris specialiai sukurtas kalbai L,
siekiant atsakyti į klausimą „Ar eilutė ω
priklauso kalbai L?“, vadinsime kalbos
atpažinimo įtaisu
Pavyzdžiui, kalbą L = {ω  {0, 1}: ω neturi
subeilutės 111 } atpažįsta įtaisas, kuris galėtų
funkcionuoti taip:
Skaitiklio pradinė reikšmė lygi 0. Kai įėjime pasirodo 0,
skaitiklis gesinamas. Skaitiklio turinys padidinamas
vienetu, kai įėjime pasirodo 1. Jei skaitiklis pasiekia
reikšmę 3, įtaisas stabdomas ir išėjime pateikia
reikšmę „NE“. Kai visa eilutė perskaityta, įtaisas
stabdomas ir išėjime pateikia reikšmę „TAIP“
2009-2013
©S.Maciulevičius
42
Kalbos generavimas


Pagal duotą išraišką galima sukurti
kalbos generatorių
Pavyzdžiui, reguliarioji išraiška (e U a U ba) (b
U ab U abb)* taip generuoja kalbos narius:
Norėdami gauti kalbos L narį, pirmiausia
užrašykite a arba ba arba nieko, o po to - b
arba ab arba abb bet kokį skaičių kartų,
įskaitant ir nė vieno.
Kalbos L nariai: aabbababbb,
babababbbabb
2009-2013
©S.Maciulevičius
43
Reguliariosios išraiškos – pavyzdžiai
Kiekvienai iš kalbų L  {a, b}* raskite ją
apibrėžiančią reguliariąją išraišką:
a)L sudaro visos eilutės, kurios prasideda
simboliais aa;
2009-2013
©S.Maciulevičius
44
Reguliariosios išraiškos – pavyzdžiai
L sudaro visos eilutės, kurios prasideda
simboliais aa;
Sprendimas: pradžioje – aa, o po to – bet
kokia simbolių a ir/ar b seka; tokia seka
aprašoma taip: (a U b)*.
Taigi, aa (a U b)*.
2009-2013
©S.Maciulevičius
45
Reguliariosios išraiškos – pavyzdžiai
Kiekvienai iš kalbų L  {a, b}* raskite ją
apibrėžiančią reguliariąją išraišką:
b) L sudaro visos eilutės, kurios neprasideda
simboliais aa;
Sprendimas: jei pradžioje ne aa, tai kas?
2009-2013
©S.Maciulevičius
46
Reguliariosios išraiškos – pavyzdžiai
Sprendimas: jei pradžioje ne aa, tai kas?
Gali būti:
b, o po to – bet kokia simbolių a ir/ar b seka;
ab, o po to – bet kokia simbolių a ir/ar b seka;
Taigi, (b U ab) (a U b)*.
2009-2013
©S.Maciulevičius
47
Reguliariosios išraiškos – pavyzdžiai
Kiekvienai iš kalbų L  {a, b}* raskite ją
apibrėžiančią reguliariąją išraišką:
c) L sudaro visos eilutės, kuriose po
kiekvieno a eina b;
2009-2013
©S.Maciulevičius
48
Reguliariosios išraiškos – pavyzdžiai
L sudaro visos eilutės, kuriose po kiekvieno a eina b;
c)
Gali būti:
e, (tuščia eilutė)
b,
bb, bbb, bbbb, ...
ab, abb, abab, ...
bab, babb, babab, ...
2009-2013
©S.Maciulevičius
49
Reguliariosios išraiškos – pavyzdžiai
Kiekvienai iš kalbų L  {a, b}* raskite ją
apibrėžiančią reguliariąją išraišką:
c) L sudaro visos eilutės, kuriose po kiekvieno a
eina b;
Sprendimas: (b U ab)*.
Tik ne (b U ab)* (a U b)*!!!!!
2009-2013
©S.Maciulevičius
50