57
Факултет за информатички науки и компјутерско инженерство Збирка од аудиториумски вежби од предметот Формални јазици и автомати м-р Миле Јованов Кристина Спировска Скопје 2012

AUD Kompleten Materijal 2012 FINKI

Embed Size (px)

DESCRIPTION

фја

Citation preview

Page 1: AUD Kompleten Materijal 2012 FINKI

Факултет за информатички науки и компјутерско

инженерство

Збирка од аудиториумски вежби

од предметот

Формални јазици и автомати

м-р Миле Јованов

Кристина Спировска

Скопје 2012

Page 2: AUD Kompleten Materijal 2012 FINKI

Формални јазици и автомати – м-р Миле Јованов, Кристина Спировска

2

Содржина

Аудиториумски вежби 1: Азбуки и јазици ................................................................ 3

Аудиториумски вежби 2: Конечни претставувања на јазици ............................... 8

Аудиториумски вежби 3: Детерминистички и недетерминистички конечни автомати ................................................................................................................. 15

Конечни автомати ................................................................................................. 15

Детерминистички конечни автомати ................................................................ 15

Недетерминистички конечни автомати ............................................................ 15

Аудиториумски вежби 4: Алгоритми за минимизација и детерминизација ..... 23

Алгоритам за минимизација на ДКА ..................................................................... 23

Аудиториумски вежби 5: Докажување на (не)регуларност на јазици ................ 27

Аудиториумски вежби 6: Граматики ..................................................................... 37

Аудиториумски вежби 7: Push – down (набивачки) автомати ............................ 43

Аудиториумски вежби 8: Тјурингови Машини ....................................................... 52

Page 3: AUD Kompleten Materijal 2012 FINKI

Формални јазици и автомати – м-р Миле Јованов, Кристина Спировска

3

Аудиториумски вежби 1: Азбуки и јазици

Во овој дел, ќе се дефинира што преставува азбука и јазик.

Ќе покажеме со неколку примери како се тоа се претставува, и со неколку задачи

ќе ги утврдиме нашите толкувања.

Дефиниција

Азбука претставува конечно множество на симболи која ја

означуваме со . Елементите од азбуката ќе ги нарекуваме букви.

Дефиниција

Конечна низа од букви од азбуката допишани една до друга се

нарекува збор во азбуката .

Дефиниција

Празен збор претставува низа без букви и тој ќе се означува со λ, e

или ε.

Дефиниција

Должина на збор w е бројот на букви што го сочинуваат тој збор и се

означува со |w|.

Забелешка: Ако во еден збор има повеќе појавувања на иста буква,

при определувањето на должината таа се брои онолку пати колку што

се појавува во зборот.

Забелешка: Празниот збор λ има должина 0, т.е. | λ|=0.

Дефиниција

Множеството од непразни зборови од азбуката го означуваме со +,

додека множеството кое го вклучува и празниот збор го означуваме

со *.

+ и

* можеме да ги претставиме на следниот начин

+=1

2 3 …, a *=0

+, каде со i, i=0,1,2 …, го означуваме

множеството на сите зборови над со должина i.

Page 4: AUD Kompleten Materijal 2012 FINKI

Формални јазици и автомати – м-р Миле Јованов, Кристина Спировска

4

Пример 1

= {1, 0}, бинарна азбука или = {а,б,в, ..., ш}, нашата азбука.

Задача 1

Нека L={ 1n 2

n | n>0 }. Дали 122 припаѓа на L?

122 не припаѓа.

Припаѓаат: 12, 1122, 111222 ...

Дефиниција

Нека е дадена азбука. За секое подмножество L * велиме дека е

јазик во .

Забелешка: Празниот јазик е различен од јазикот кој го содржи само

празниот збор.

Следуваат дефиниции за операциите меѓу јазиците.

Дефиниција

Конкатенација (надоврзување) на јазици

Нека L1 и L2 се два јазика над азбуката , т.е. L1 и L2 *. Тогаш

конкатенацијата L1 ◦ L2 (или само L1L2) се дефинира со:

L={w| w=x◦y, x L1, y L2}

каде што со x◦y е означена конкатенацијата (надоврзувањето) на

зборовите x и y.

Забелешка: Должината на зборот w е |w|=|x◦y|=|x|+|y|

Дефиниција

Унија на јазици

Нека L1 и L2 се два јазика над азбуката , т.е. L1 и L2 *. Тогаш

унијата L1 L2 се дефинира со:

L={w| wL1 wL2}

Page 5: AUD Kompleten Materijal 2012 FINKI

Формални јазици и автомати – м-р Миле Јованов, Кристина Спировска

5

Дефиниција

Клиниева ѕвезда

Клиниевата ѕвезда претставува унарна операција над јазик L *.

Јазикот добиен од L со оваа операција ќе го означуваме со L*. Тој се

дефинира на следниот начин:

L*={w

*|(k ≥ 0) w=w1◦w2◦ … ◦wk, каде w1,w2, … ,wkL}

Забелешка: Ако L≠, тогаш ја употребуваме ознаката L+ за јазикот

LL*,

L+={ w

*|(k > 0) w=w1◦w2◦ … ◦wk, каде w1,w2, … ,wkL }

Задача 22

Нека L1={ an b

n | n>0 } и L2={ c

n | n>0 }. Кои од стринговите

припаѓаат во L1 ◦ L2 ?

а) λ

б)aabbcc

в) abbcc

г) aabbccc

Точните одговори се под б) и г), бидејќи ако aabbL1 и

ccc L2 => aabbccc L1 ◦ L2 .

Задача 3

Нека L1={чашка, кригла, буре} и L2={скопско, амстел, λ}. Најди ги

елементите од L1 ◦ L2 по лексикографски редослед.

Тоа се:

буре

буреамстел

бурескопско

Page 6: AUD Kompleten Materijal 2012 FINKI

Формални јазици и автомати – м-р Миле Јованов, Кристина Спировска

6

кригла

криглаамстел

кригласкопско

чашка

чашкаамстел

чашкаскопско

Задача 4

Разгледај го јазикот L кој се состои од сите стрингови над азбука

{a,b} кои што имаат барем два различни подстрингови со должина 2.

а) Опиши го јазикот во форма на L={w *| каде ...}.

б) Напиши ги најкратките 4 елементи по лексикографски редослед за

L.

а) L={w *| w=xyz, x,z

*, |w| ≥ 3, y=ab v y=ba}

б) Тоа се: aab, abа, baa, bba

Дефиниција

Обратен збор на зборот w, е збор составен од истите симболи

(букви) од w, но запишани во обратен редослед. Го означуваме со wR.

Забелешка: Нека w=uv. Тогаш wR=(uv)

R=v

Ru

R.

Задача 55

Докажи дека:

а) (wR)

R = w

б) v е подзбор од w, ако vR

е подзбор од w

R

a) Докажуваме со индукција по должина на w

Основа на индукција:

|w|=0, w=λ

(wR)

R=( λ

R)R= λ

Page 7: AUD Kompleten Materijal 2012 FINKI

Формални јазици и автомати – м-р Миле Јованов, Кристина Спировска

7

Индуктивна претпоставка:

Претпоставуваме дека тврдењето е точно за секој збор со

должина еднаква или помала од |w|=n.

Чекор на индукција:

Потребно е да се докаже дека тврдењето важи за произволен

збор w, со должина|w|=n+1

w=ya, |y|=n, a

(wR)

R=((yа)

R)

R=(а

Ry

R)

R=(ay

R)

R=(y

R)

Ra

R=w #

б) ( x,y *) w=xvy

<=> ( x,y *) w

R=(xvy)

R

<=> ( x,y *) w

R=y

Rv

Rx

R

<=> vR е подзбор на w

R

Page 8: AUD Kompleten Materijal 2012 FINKI

Формални јазици и автомати – м-р Миле Јованов, Кристина Спировска

8

Аудиториумски вежби 2: Конечни претставувања на

јазици

Множество од регуларни јазици врз азбуката се дефинира рекурзивно т.ш. секое

подмножество L од се смета дека е јазик во .

Дефиниција

Нека е дадена азбука и нека 1={),(,,+,*}. За специјалните

зборови над азбуката 1 ќе велиме дека се регуларни изрази и ќе ги

дефинираме индуктивно на следниот начин:

i. и секој симбол од се регуларни изрази;

ii. Ако и се регуларни изрази, тогаш и (), (+) и * се

регуларни изрази;

iii. Еден израз од азбуката 1 e регуларен ако и само ако може да

се добие со конечна примена на i. и ii.

Регуларните изрази се користат како ознака за регуларните јазици. Тие

преставуваат прецизна репрезентација на регуларните јазици и операциите помеѓу

нив .

Конвенции кај регуларните изрази

1. Кога не постои опасност од помешување при операциите, не мора да

користиме загради , па наместо (а + b) може да се запише ‘ a + b ’

2. Операцијата Клиниева ѕвезда има предност пред операцијата

конкатенација.

3. Операцијата конкатенација има предност пред операцијата унија

Од 2. и 3. можеме да заклучиме дека регуларниот израз (а + (b(c*)))

може поедноставно да се запише на следниов начин : a + bc*

Со секој регуларен израз е претставен еден јазик L над . Дефинираме

пресликување L од множеството регуларни изрази во множеството јазици над ,

така што за секој регуларен израз , L() ќе биде јазикот претставен со регуларниот

израз . L е дефинирано на следниов начин:

1. L(Ø)= Ø и L(a)={a} ,за секој а ;

2. Ако и се регуларни изрази, тогаш

Page 9: AUD Kompleten Materijal 2012 FINKI

Формални јазици и автомати – м-р Миле Јованов, Кристина Спировска

9

L(())=L()L();

L((+))=L()L()

L(*)=L()

*

Дефиниција

Класата регуларни јазици R над азбуката е подмножество од*

2, со

следниве својства:

i. Ø R; a{a}R;

ii. L1,L2 RL1◦L2, L1L2, *

1L R;

iii. Ако S е класа јазици над што ги задоволува условите i. и ii.,

тогаш RS.

Забелешка: Поради iii. од горната дефиниција, класата регуларни

јазици е еднозначно определена.

Својство

Еден јазик L над азбуката е регуларен ако и само ако постои

регуларен израз над , таков што L=L().

Теорема 1:

Множеството на регуларни јазици над азбуката е затворено со

следниве операции :

o Унија

o Конкатенација

o Клиниева ѕвезда

Теорема 2:

Секој конечен јазик е регуларен.

Задача 1

Најди го најкраткиот збор кој не припаѓа на јазикот преставен со

регуларниот израз а*(аb)

*b

*.

Пред се според регуларниот израз може да се согледа дека се

работи за азбуката = {а,b}.

Лесно можеме да воочиме дел од најкратките зборови во овој

јазик: , а, аа, ab, ba, bb, … .

Page 10: AUD Kompleten Materijal 2012 FINKI

Формални јазици и автомати – м-р Миле Јованов, Кристина Спировска

10

Исто така очигледно е дека и зборот ‘bа’ е најкраткиот збор

кој не припаѓа на овој јазик.

Задача 2

За следните 2 регуларни изрази дадени подолу ,

а) Најди збор кој е содржан во L2, но не е содржан во L1;

б) Најди збор кој го содржат и L1 и L2.

Притоа, L1 = а*+b

* и L2 = ab

*+ ba

*+ b

*a + (a

*b)

* .

а) Сите зборови кои се состојат само од а, или само од b,

вклучувајќи го и празниот збор, се зборови кои припаѓаат на

јазикот L1. Додека јазикот L2 се состои од празниот збор и

зборови кои содржат барем едно ‘a’ или барем едно ‘b’ .

Примери за зборови кои ги има во L2, но не и во L1 , се

следниве :

ab

ba

abbbb

bbba

baaaa

б) Збор кој одговара на L1 е збор кој содржи само ‘a’-овци или

само од ‘b’-овци . Единствените зборови кои одговараат на L2

и се содржат само од ‘a’-овци или од ‘b’-овци се зборовите ‘a’,

‘b’ и зборовите кои се состојат само од ‘b’-овци (од (a*b)*).

Задача 3

Најди регуларен израз кој одговара на јазикот од сите зборови над

азбуката = {a,b} кои содржат точно две ‘a’.

Зборот во јазикот мора да содржи точно две ‘а’ без притоа да

внимаваме на нивната локација од зборот ( затоа што тоа не

ни е нагласено ) . Значи може да земеме дека пред првото ‘а’

може да се појават колку било ‘b’ – овци, но помеѓу првото и

второто ‘a’ може исто така да има колку било ‘b’-овци и на

крај после второто може да има колку било ‘b’-овци. Но исто

така постои можност и зборот да биде без ‘b’-овци, па затоа

можеме да заклучиме дека одговорот би бил следниот

регуларен израз : b*ab

*ab

*.

Page 11: AUD Kompleten Materijal 2012 FINKI

Формални јазици и автомати – м-р Миле Јованов, Кристина Спировска

11

Задача 4

На наједноставен начин, наведи ги карактеристиките на зборовите

кои припаѓаат на јазикот претставен со следниве регуларни изрази:

а) a*b(a

*ba

*b)

*a

*

б) (b+ab)

*(a+ab)

*

а)

Во секој збор има барем едно појавување на ‘b’.

После првото појавување на ‘b’ во зборот сите

преостанати ‘b’-овци се појавуваат во парови

Така, бројот на ‘a’-овци во зборот може да биде

произволен, додека бројот на појавувања на ‘b’ ќе биде

секогаш непарен.

б)

( b+ab)* репрезентира зборови кои не го содржат

подзборот ‘aa’ и кои секогаш завршуваат на ‘b’, значи

после секое а има b, додека,

(a+ab)* репрезентира зборови кои не го содржат

подзборот ‘bb’, значи пред секое b има а

Заедно, и двата дела репрезентираат зборови кои се

содржат од било кој подзбор кој не содржи ‘aa’

проследено со ‘b’ на крајот на тој подзбор и сето тоа

проследено со ‘a’ кое не може да биде проследено со

‘bb’. На примет, зборот baabaabb е збор кој не би бил

препознаен од овој јазик.

Задача 5

Нека ={a,b}. Да се запишат регуларните изрази што ги

претставуваат јазиците:

а) {w*|w не содржи повеќе од 3 појавувања на а}

б){ w*| бројот на појавувања на а во w е делив со 3}

в) { w*| зборот ааа се појавува во w точно еднаш}

г) { w*|секое а во w е претходено и следено од b}

д) { w*| abab е подзбор од w}

Page 12: AUD Kompleten Materijal 2012 FINKI

Формални јазици и автомати – м-р Миле Јованов, Кристина Спировска

12

ѓ) { w*| ни aa ни bb не се подзборови во w}

а)

w смее да содржи едно, две, три или ниту едно појавување на

‘а’. Притоа, не сме ограничени со позицијата на а-овците во

зборот, па затоа тие може да се појават било каде во w.

Следува дека регуларниот израз кој го претставува овој јазик

е:

b*ab

*ab

*ab

*+b

*ab

*ab

*+b

*ab

*+b

*

б)

Зборот од овој јазик може да содржи 3,6,9... или ниту едно

појавување на ‘а’. Исто како и во претходниот пример, и овде

а-овците може да се појават на било која позиција во зборот

(бидејќи тоа не ни е нагласено). Регуларниот израз е:

(b*ab

*ab

*ab

*)

*+b

*

в)

(b+ab+aab) *aaa(baa+ba+b)

*

г)

Во овој јазик ќе припаѓаат сите зборови во кои или се појавува

а (тогаш зборот мора да започнува со b), или не се појавува a

(тоа значи дека w е составен само од b-овци или е празниот

збор). Соодветниот регуларен израз е: b(b+ab)*+ λ.

д)

Тука важно ни е abab да ни се појавува барем еднаш. Пред и

по секој ваков подстринг во w може да се појавува било која

друга комбинација на а-овци и b-овци. Значи регуларниот

јазик е:

( (b+a)*abab(b+a)

*)

*

ѓ)

(ab)*(a+λ)+(ba)

*(b+λ)

Page 13: AUD Kompleten Materijal 2012 FINKI

Формални јазици и автомати – м-р Миле Јованов, Кристина Спировска

13

Задача 6*

Нека L1 и L2 се произволни регуларни јазици над некоја азбука .

Најди пример ( за најкраткиот и наједноставен израз со најмалку

Клиниеви ѕвезди и унии ) за регуларен израз кој е еднаков на

следниве изрази :

а) L1 = (r1 + r2 + r1r2 + r2r1)*

б) L2 = (r1(r1 + r2)*)+

Како за еден вид стратегија за прашања од овој вид , сметаме

дека треба да се обидеме да согледаме дали дадениот

регуларен израз е еднаков со некој едноставен регуларен израз

кој ни е познат , како на пример : a, a*, a

+, (a + b)

*, (a + b)

+

а)

Знаеме дека (r1 + r2)* ги преставува сите зборови од r1

и/или r2 , r1 r2 + r2 r1 во даден регуларен израз е

редундантен, што значи и овој израз нема зборови кои

ги нема во изразот (r1 + r2)* . Од овде можеме да

заклучиме дека изразот (r1 + r2 + r1r2 + r2r1)* може да го

упростиме на ниво на изразот (r1 + r2)*.

б)

(r1(r1 + r2)*)

+ значи дека сите зборови , претставени со

овој израз мора да се содржат од еден или повеќе

зборови од (r1(r1 + r2)*) . Како и да е, зборовите од

изразот (r1(r1 + r2)*) , започнуваат со зборот r1 и потоа

се следени со број на зборови земени произволно , r1

и/или r2 . Од ова, знаеме дека се што доаѓа после r1 во

(r1(r1 + r2)*)

+ , е претставено со (r1+ r2)

*. Оттука (r1(r1 +

r2)*) , исто така ги репрезентира зборовите од (r1(r1 +

r2)*)

+ , и обратно , (r1(r1 + r2)

*)

+ ги репрезентира

зборовите преставени со (r1(r1 + r2)*). Значи изразот

(r1(r1 + r2)*)+

, може да се упрости на ниво на изразот

(r1(r1 + r2)*).

Задача 7*

Кој јазик е претставен од регуларниот израз (((а*а)b) b) ?

L(((а*а)b) b) = L((а*а)b) L(b) = L(а*а) L(b) { b } = L(а*)

L(a) { b } { b } = { a }*{ a }{ b } { b } = {a}*{b}

Page 14: AUD Kompleten Materijal 2012 FINKI

Формални јазици и автомати – м-р Миле Јованов, Кристина Спировска

14

Задача 8*

Да се упростат следниве регуларни изрази:

а) Ø*a*b*

б) ((a*b*)*(b*a*)*)*

в) (a*b)* (b*a)*

а)

Нека дадениот израз го означиме со , и нека L е јазикот со кој

е претставен дадениот израз. Тогаш:

L()=L(Ø*) L(a*) L(b*) = λ {a*} {b*} = {a*} {b*}

Значи, упростениот регуларен израз ќе биде: а* b*

б)

Треба да го најдеме јазикот L со кој што може да се претстави

дадениот израз =((a*b*)*(b*a*)*)*. Очигледно е дека во овој

јазик ќе припаѓаат сите можни комбинации на зборови

составени од произволен број а-овци и b -овци,вклучувајќи го

и празниот збор λ, т.е дека L() ={a,b}* и =(a b). Треба да

докажеме дека од L() * и * L(), каде ={a,b}.Јасно е

дека L() * .

* L()

Нека делот (a*b*)*(b*a*)*од изразот , го означиме со и

јазикот со кој што може да се претстави со L1. Бидејќи

изразот е над азбука ={a,b}, следува дека a,b ќе припаѓаат

на јазикот L1. Оттука,

L(a b) L1() L(a b)* L1(*)=L().

Значи, докажавме дека упростениот регуларен израз ќе биде :

(ab)*

Page 15: AUD Kompleten Materijal 2012 FINKI

Формални јазици и автомати – м-р Миле Јованов, Кристина Спировска

15

Аудиториумски вежби 3: Детерминистички и

недетерминистички конечни автомати

Конечни автомати

Конечниот автомат има централен процесор со фиксиран конечен капацитет и нема

меморија. Влезот претставува низа од симболи (запишани на лента), а излезот дава

информација дали дадениот збор е препознаен од автоматот или не. Ние ќе

разгледаме два вида конечни автомати: детерминистички конечен автомат и

недетерминистички конечен автомат.

Детерминистички конечни автомати

Дефиниција

Детерминистички конечен автомат е подредена петорка

М=( К, , , s, F )

каде што:

К е конечно множество состојби

е надворешна азбука

s K е почетна состојба

F K е множество завршни состојби

е функција на премин, т.е. пресликување од К во К

Недетерминистички конечни автомати

Недетерминистички конечен автомат е вид на автомат кај кој ќе дозволиме од

дадена состојба при читањето даден симбол автоматот да може да премине во една

од повеќе состојби по сопствен избор. Значи нема да постои точно определен

премин од состојба при даден симбол, туку тој ќе има повеќе можности за избор на

премин.

Дефиниција

Недетерминистички конечен автомат е подредена петорка:

М = (К, , , s, F)

каде што:

Page 16: AUD Kompleten Materijal 2012 FINKI

Формални јазици и автомати – м-р Миле Јованов, Кристина Спировска

16

К е конечно множество состојби

е конечна азбука од влезни симболи

s K е почетна состојба

F K е множество завршни состојби

е релација за премин и конечно подмножество од К * К

ЗЗадача 112

Да се состави детерминистички конечен автомат над ={a, b} што го

прифаќа јазикот:

a. {w * | секое а е претходено и следено од b}

b. {w * | w има подзбор abab}

c. {w * | w нема подзбор аа и нема подзбор bb}

d. {w * | w има парен број на а и непарен број на b}

e. {w * | w има за подзбор аb и ba}

f. {w * | w нема повеќе од три а}

g. {w * | w има број на појавување на а делив со 3}

h. {w * | aaa се појавува во w точно еднаш}

а)

b)

Page 17: AUD Kompleten Materijal 2012 FINKI

Формални јазици и автомати – м-р Миле Јованов, Кристина Спировска

17

c)

d)

e)

f)

Page 18: AUD Kompleten Materijal 2012 FINKI

Формални јазици и автомати – м-р Миле Јованов, Кристина Спировска

18

g)

h)

ЗЗадачa 2

Нека ={0,1,2,3,4,5,6,7,8,9} да се состави автомат:

a. {w * | w е број делив со 2}

b. {w * | w е број делив со 3}

c. {w * | w е број делив со 4}

Забелешка: И броевите кои почнуваат со нули се броеви (пример 000)

a)

Page 19: AUD Kompleten Materijal 2012 FINKI

Формални јазици и автомати – м-р Миле Јованов, Кристина Спировска

19

b)

c) Оваа задача е решена на следниот начин. Броевите од 0 до 9 се

делат на најпрво на 2 групи, парни и непарни. Соодветно парните

се делат на броеви деливи со 4 и броеви кои не се деливи со 4.

Автоматот завршува само доколку парен број е последна цифра

од бројот.

Задачa 34

Да се состави автомат кој ќе препознава аритметички изрази од

обликот: -23+-4*2+-3/-4—2*+1

Page 20: AUD Kompleten Materijal 2012 FINKI

Формални јазици и автомати – м-р Миле Јованов, Кристина Спировска

20

Теорема

Класата јазици препознаени од конечни автомати е затворена во

однос на:

Унија

Конкатенација

Клиниева ѕвезда

Комплемент

Пресек

Конструкција на унија

Нека L1 и L2 се јазици кои се препознаени од автоматите M1 и M2,

соодветно. Нека

M1=(K1,,1,s1,F1) и M2=(K2,,2,s2,F2)

Конструираме недетерминистички конечен автомат M кој го

препознава јазикот L(M1)L(M2) на следниот начин: М=(K,,,s,F),

каде што s е нова состојба што не припаѓа во K1K2.

K= K1K2{s}

F=F1F2

=12{(s,,s1),(s. ,s2)}

Page 21: AUD Kompleten Materijal 2012 FINKI

Формални јазици и автомати – м-р Миле Јованов, Кристина Спировска

21

Конструкција на конкатенација

Нека L1 и L2 се јазици кои се препознаени од автоматите M1 и M2,

соодветно. Нека

M1=(K1,,1,s1,F1) и M2=(K2,,2,s2,F2)

Конструираме недетерминистички конечен автомат M кој го

препознава јазикот L(M1)L(M2) на следниот начин: М=(K,,,s,F),

каде што s= s1.

K= K1K2

F=F2

=12{F1{}{s2}}

Конструкција на Клиниева ѕвезда

Нека L1 е јазик кој е препознаен од автоматот M1. Нека

M1=(K1,,1,s1,F1) .

Конструираме недетерминистички конечен автомат M кој го

препознава јазикот L(M)=L(M1)* на следниот начин: М=(K,,,s0,F),

каде што s0 е нова почетна состојба која не се содржи во K1.

K= K1{s0}

F=F1{ s0}

=1(F{}{s1}){(s0,,s1)}

Задача 4

Да се конструира недетерминистички конечен автомат кој ќе го

препознава следниот јазик:

(a+ba)*

Недетерминистичкиот автомат кој ќе го препознава јазикот

(а+ba)* може да го конструираме интуитивно. Тој може да се

конструира на следниот начин:

Page 22: AUD Kompleten Materijal 2012 FINKI

Формални јазици и автомати – м-р Миле Јованов, Кристина Спировска

22

Но јазикот (а+ba)* можеме да го гледаме како унија од

јазиците а и ba на кои е применета Клиниева ѕвезда. Јазикот ba

па можеме да го гледаме како конкатенација на јазиците a и b.

Автоматот кој се добива со примена на правилата за

конструкција на унија, конкатенација и Клиниева ѕвезда на :

Добиениот автомат со примена на правилата за конструкција

на унија, конкатенација и Клиниева ѕвезда е еквивалентен на

претходниот автомат.

Page 23: AUD Kompleten Materijal 2012 FINKI

Формални јазици и автомати – м-р Миле Јованов, Кристина Спировска

23

Аудиториумски вежби 4: Алгоритми за

минимизација и детерминизација

Подолу на сликата се дадени два конечни автомата кои иако имаат различна форма

всушност го препознаваат истиот јазик претставен со регуларниот израз ( a*b*)*.

Алгоритам за минимизација на ДКА

Даден е ДКА М=(K, Σ, δ, s, F)

Дефинираме низа на еквиваленции над K, ≡0, ≡1 .... со:

p ≡0 q {p,q} ⊆ F ˅ {p,q} ⊆ K\F

p ≡k+1 q p ≡k q ˄ ∀a ∈ Σ , δ (p,a) ≡k δ (q,a) ,

≡k се дефинира се додека ≡k ≠ ≡k-1 .

На крај се дефинира нов автомат М' = (K', Σ, δ', s', F' ) каде што :

K' = K\ ≡k

δ' (p≡k

, a) = (δ(p,a)) ≡k

s' = s≡k

F' = {p≡k

|p∈F}

L(M) = L(M')

Page 24: AUD Kompleten Materijal 2012 FINKI

Формални јазици и автомати – м-р Миле Јованов, Кристина Спировска

24

Задача 1

Да се минимизира автоматот :

Се започнува со одделување на состојбите кои се завршни од

оние кои не се и креирање на првата партиција (К/≡0).

К/≡0 = {{S1,, S2, S5, S6}, {S3, S4}}

Од вака направената партиција се проверува секое од

темињата во која партиција преминува со секоја од буквите на

азбуката. Се гледа дека S1 со a преминува во незавршна

состојба (т.е првото подмножество) со b преминува во

завршна состојба (т.е. второто подмножество), исто такво теме

е и S2. Темињата S5 и S6 преминуваат со a и b во незавршни

состојби, и остануваат заедно, а темињата S3 и S4 кои веќе беа

во посебно подмножество преминуваат со a и b во незавршни

состојби, значи и тие остануваат заедно. Партицијата K/≡1 се

добива

K/≡1 = {{S1, S2} {S5, S6} {S3, S4}}

Повторно применувајќи ги истите постапки K/≡2 се добива

K/≡2 = {{S1, S2} {S5, S6} {S3, S4}}

Партицијата ≡1 е еднаква со ≡2 и овде застануваме.

Минимизираниот автомат е:

Page 25: AUD Kompleten Materijal 2012 FINKI

Формални јазици и автомати – м-р Миле Јованов, Кристина Спировска

25

Задача 2

а) Да се состави НКА за јазикот (baa*)( baa

*)

*(abb

*).

б)Добиениот автомат да се детерминизира.

в) Автоматот под б) да се минимизира.

а) Се црта НКА

б) Се одредуваат можните премини со празен збор за секоја од

состојбите

E(1) = {1}

E(2) ={2}

E(3) = {3,4,7}

E(4) = {4}

E(5)={5}

E(6)= {4,6,7}

E(7)= {7}

E(8)={8}

E(9)={9}

E(i)={K\Δ(i, e)}

Се пополнува табелата со новите состојби и премините меѓу

нив

A b

1 Ø 2 A

2 3,4,7 Ø B

3,4,7 3,4,7,8 5 C

3,4,7,8 3,4,7,8 5,9 D

5 4,6,7 Ø E

5,9 4,6,7 9 F

4,6,7 4,6,7,8 5 G

9 Ø 9 H

4,6,7,8 4,6,7,8 5,9 I

Ø Ø Ø J

Page 26: AUD Kompleten Materijal 2012 FINKI

Формални јазици и автомати – м-р Миле Јованов, Кристина Спировска

26

Се црта детерминистичкиот автомат

в) Минимизација

≡0 = {{A, B, C, D, E, G, I, J}, {F, H}}

≡1 ={{A, B, C, E, G,J}, {D, I}, {F, H}}

≡2 = {{A, B, E, J}, {C, G}, {D, I}, {F, H]}

≡3 = {{A, J}, {B, E}, {C, G}, {D, I}, {F}, {H}}

≡4 = {{A}, {J}, {B,E}, {C,G}, {D,I}, {F}, {H}}

≡5 = {{A}, {J}, {B, E}, {C,G}, {D,I}, {F}, {H}}

→ ≡4 = ≡5

Page 27: AUD Kompleten Materijal 2012 FINKI

Формални јазици и автомати – м-р Миле Јованов, Кристина Спировска

27

Аудиториумски вежби 5: Докажување на

(не)регуларност на јазици

Овие вежби се поврзани со егзистенцијата на регуларност на даден јазик, односно

како можеме да искористиме метод/и за докажување на регуларност даден јазик.

Една техника/метод за докажување која ќе ја проучуваме е т.н. “пумпање”, што

претставува техника со која ќе можеме да докажеме дека даден јазик не е

регуларен.

Лема за пумпање

Нека L е бесконечен регуларен јазик. Постои број p (пумпачка

должина) и wL,

|w| p е збор од L при тоа w=xyz, т.ш. се задоволени следните

услови:

|y| > 0

|xy| p

За к≥ 0, xyкz L (ова значи дека “напумпаните зборови” повторно

припаѓаат во L)

Доколку важат сите услови за добро одбран збор од L тогаш јазикот е

регуларен, во спротивно тој не е регуларен.

Доказ:

Бидејќи L е регуларен јазик постои конечен детерминистички

автомат M=(K,,,S,F), кој го препознава јазикот L, притоа |K|=p.Сега

бидејќи L е бесконечен јазик следува дека постои збор со n+1 буква.

Нека тоа е зборот H=012.... n, каде iза i=0..n се букви од азбуката

над L.

За да овој збор биде прочитан од автоматот M тој треба да ги помине

следните состојби: q0,q1,…….,qn каде n=p,q0=S и qn F.Со друга

нотација тоа би изгледало вака:

(qo, 012.... n)⊢M (q1,12.... n)⊢M (q2,23.... n)⊢M…⊢M(qn,n)⊢M

(qn+1, )

Page 28: AUD Kompleten Materijal 2012 FINKI

Формални јазици и автомати – м-р Миле Јованов, Кристина Спировска

28

Може да се забележи дека во qn-тата состојба ни останува уште една

буква од зборот H да биде прочитана, па ни требауште една состојба

qn+1 за да може да се прочита целиот збор, но бидејќи ние земавме

дека бројот на состојби ни е еднаков на p односно пумпачката

должина тоа значи дека некоја од состојбите во автоматот се

повторува па qi=qj, 0 i < j p.

Аналогно на горното добиваме:

(qo, 012.... n)⊢M…..⊢M(qi, i.... n) ⊢M…..⊢M (qj, j.... n) =(qi, i....

n)⊢M (qn,)

Каде x=012.... i, y=i+1.... j и z=j+1.... n, па |y| > 0, |xy| p и за сите

к 0,

xyкz L(M) т.е. зборот е препознаен од автоматот M па од тука следи

дека xyкz L.

Лема за пумпање - поинаков пристап

Нека L е бесконечен регуларен јазик препознаен од конечниот

автомат M=(K,,,S,F) и нека w L и |w| ≥ |K|. Тогаш ∃ x,y,z ∑*,

|y| ≥ 1 така што w = xyz и xynz L, n .

Пример 1

Да се докаже дека L={anb

n | n } не е регуларен јазик.

Доказ:

Ќе ја искористиме лемата за пумпање, нека w=xyz е зборот кој

припаѓа на L, треба да разгледаме три случаи и тоа:

i) w=am

aka

rb

mb

kb

r , k 0, m+k+r=n,

каде:x=am

, y=ak и z=a

rb

mb

kb

r

ii) w=аm+k+r

bm

bkb

r, k 0, m+k+r=n,

каде: x=аm+k+r

bm

, y=bkи z=b

r

iii) w=am

akb

rb

m+k-r, k 0, r 0, m+k =n,

каде:x=аm

, y=akb

r, z=b

m+k-r

Ги проверуваме трите случаи :

i) За првиот случај може да видиме дека ако го качиме y

на степен 2 (y се повторува 2 пати) ќе го добиеме

следново:

Page 29: AUD Kompleten Materijal 2012 FINKI

Формални јазици и автомати – м-р Миле Јованов, Кристина Спировска

29

w=xy2z=a

ma

2ka

rb

mb

kb

r , па m+2k+r m+k+r, т.е. добиваме

дека бројот на a-овци е поголем од бројот на b-овци во

зборот што е контрадикција со тоа дека зборот е во

форма anb

n, т.е. овој збор не припаѓа на L.ЗАКЛУЧОК:

Не постои претставување на w од облик xyz каде y

содржи само а-овци, за кое можеме да пумпаме со y.

ii) За вториот случај, слично на првиот, ќе го дигнеме y на

степен 2 и ќе се добие следното:

w=xy2z= а

m+k+rb

m(b

k)

2b

r, од тука ќе го добиеме следното

аm+k+r

bm

b2k

br ова е различно од a

nb

n, бидејќи

m+k+rm+2k+r. ЗАКЛУЧОК: Не постои претставување

на w од облик xyz каде y содржи само b-овци, за кое

можеме да пумпаме со y.

iii) Третиот случај ја разгледува ситуацијата кога y во себе

има и а-овци и b-овци. За y2 имаме:

w=xy2n w=a

m(a

kb

r)

2b

m+k-rw=a

ma

kb

ra

kb

rb

m+k-r

w L(M) w L.

ЗАКЛУЧОК: Не постои претставување на w од облик

xyz каде y содржи и а-овци и b-овци, за кое можеме да

пумпаме со y.

Заклучок од сите три случаи е дека не постои

претставување на w од облик xyz каде |y|>0 за кое

можеме да пумпаме со y. Согласно со лемата, следува

дека L={anb

n | n } не е регуларен јазик.

Пример 2

Да се провери дали L={an | n е прост број} е регуларен јазик.

Ќе земеме за w=xyz, w=am

apa

k каде m+p+k=n и p>0, т.е. во овој

случај ние го разделуваме an на повеќе конкатенирани а-овци

за да можеме полесно да ги одбереме x,y и z, па x=am

, y=ap,

z=ak.

Сега поради тоа што во јазикот се бара n да е прост број тоа

значи дека и збирот m+p+k е прост број.

Тргнувајќи од претпоставката дека јазикот е регуларен треба

за t да важи дека w=am

ap*t

ak L, т.е. дека m+t*p+k е прост

број.

Page 30: AUD Kompleten Materijal 2012 FINKI

Формални јазици и автомати – м-р Миле Јованов, Кристина Спировска

30

Ќе земеме за t=m+k+2p+2

m+p(m+k+2p+2)+k = m+pm+pk+2p2+2p+k =

= m(p+1)+2p(p+1)+k(p+1) =

= (p+1)(m+2p+k)

Од p > 0 следува дека (p+1) > 1 и (m+2p+k)> 2, од што следува

дека добиениот степен нема за биде прост број.

Со ова докажавме дека за каков било избор на y со пумпање

добиваме степен кој не е прост број. Значи, не можеме да

најдеме y со кое ќе може да пумпаме.

Согласно со лемата следува дека јазикот не е регуларен.

Задача 1

Докажи дека L={am

banba

m+n | m,n} не е регуларен јазик.

За докажување на нерегуларност на јазикот ќе ја искористиме

лемата за пумпање.

Нека разгледуваме збор w со произволна должина (поголема

од некое K). Да се обидеме да најдеме претставување на

w=xyz според барањата на лемата.

Имаме два случаи кои треба да се разгледаат и тоа:

1) Ако во y имаме само а-овци тогаш имаме три подслучаи:

1.1)

w=asa

qa

m-s-qba

nba

m+n, s 0, q 1, каде x=a

s, y=a

q, z=a

m-s-

qba

nba

m+n

За k=0 добиваме xy0n=a

s(a

q)0a

m-s-qba

nba

m+n=a

sa

m-s-qba

nba

m+n=a

m-

qba

nba

m+n

Од тука забележуваме дека m+nm-q+n бидејќи q 1. Со тоа,

овој збор не припаѓа на јазикот. Заклучок: При ваков избор на

y со пумпање не добиваме зборови од јазикот, што значи ваква

форма на y е неприфатлива.

1.2)

w=am

basa

qa

n-s-qba

m+n, q 1, каде x=a

mba

s, y=a

q, z=a

n-s-qba

m+n.

Page 31: AUD Kompleten Materijal 2012 FINKI

Формални јазици и автомати – м-р Миле Јованов, Кристина Спировска

31

За k=0 добиваме xy0n=a

mba

s(a

q)

0a

n-s-qba

m+n= a

mba

sa

n-s-qba

m+n =

am

ban-q

bam+n

каде m+nm-q+n бидејќи q 1. Со тоа, овој збор не припаѓа

на јазикот. Заклучок: При ваков избор на y со пумпање не

добиваме зборови од јазикот, што значи ваква форма на y е

неприфатлива.

1.3)

w=am

banbа

sa

qa

m+n-s-q. (Исто како и погоре).

2)

Ако во у имаме и b-овци, во овој случај веднаш е очигледно

дека со пумање ќе добиеме зборови кои не припаѓаат во

јазикот .Тоа е поради фактот што јазикот се состои од зборови

кои имаат точно двe букви b, а со пумпање при y кој содржи

во него b бројот на b-овци или ќе биде помал или поголем од

2. Така, и ваква форма за y е неприфатлива.

Поради тоа што ги разгледавме сите можности и не најдовме

такви x,y,z, кои ќе дозволат пумпање според лемата

заклучуваме дека јазикот не е регуларен.

Задача 2

Дали јазикот на правилни изрази составени од мали загради е

регуларен?

Пр. (), (()), (()())()…..

Во доказот ќе користиме својство: Пресек на два регуларни

јазика е регуларен јазик.

Да се потсетиме дека докажавме дека L={anb

n | n } не е

регуларен.

Да го разгледаме јазикот L1={(*)* }. Очигледно тој е

регуларен јазик (претставен преку регуларен израз).

Нека јазикот од нашата задача го означиме со L2.

Да го разгледаме следниов пресек L1L2. Добиваме дека

L3=L1L2={(n)

n | n }.

Page 32: AUD Kompleten Materijal 2012 FINKI

Формални јазици и автомати – м-р Миле Јованов, Кристина Спировска

32

Очигледно јазикот L3 е гореразгледаниот јазик L кој не е

регуларен. Од својството за пресек, штом L3=L не е регуларен

следува дека барем едниот од двата јазика кои учествуваат во

пресекот не е регуларен.

Бидејќи L1 знаеме дека е регуларен, останува дека L2 не е

регуларен, што е всушност јазикот кој го разгледувавме.

Задача 3

Провери кој од следните јазици е регуларен:

а) Јазикот на унарна репрезентација на броеви деливи со 7.

б) L={w | w е унарна репрезентација на број n, т.ш. постои пар прости

броеви, p и p+2 кои се поголеми од n}.

в) L={w | w е декадна репрезентација на бројот 10n+1 за n }.

г) L={w | w е подзбор на децимален запис на }.

а)

Унарна репрезентација на еден број е претставување на бројот

со цртички, на пр:

Декадно Унарно

1 |

2 ||

… …

8 ||||||||

9 |||||||||

Да го разгледаме регуларниот израз (|||||||)*. Со него се

добиваат зборови кои всушност се состојат од број на цртички

делив со 7 односно:0,7,14,28,... . Тоа е точно јазикот кој го

разгледуваме, од што следи дека тој е регуларен јазик.

б) Имаме два случаи:

i)

Постои пар (p,p+2) кој е последниот пар на прости броеви.

Ако ова важи т.е. ако го најдеме последниот ваков пар тогаш

јазикот ќе се состои од сите броеви помали од р, значи од

конечен број на членови од што следи дека тој е регуларен.

ii) Ако не постои последен пар на прости броеви (p,p+2), тогаш

Page 33: AUD Kompleten Materijal 2012 FINKI

Формални јазици и автомати – м-р Миле Јованов, Кристина Спировска

33

сите природни броеви припаѓаат во јазикот, па тоа е јазикот

(|)*, кој е повторно регуларен.

в)

Во оваа задача се бараат сите зборови во обликот 10n+1, т.е.

зборовите почнувајќи од:

2, 11, 101, 1001, 10001.... Еден начин за докажување на

регуларност на јазик е да се најде негов регуларен израз, па во

овој случај тоа е многу лесно, регуларниот израз ќе биде: 10*1

2. Со тоа докажавме дека јазикот е регуларен.

г)

Доколку се подели 1 со 7 се добива следниот

резултат:0,14285714285714285714285714285714..., каде ќе

забележиме дека маркираниот подзбор се повторува

периодично. Така,можеме да создадеме регуларен израз, а тој

би изгледал вака: 0,(142857)* па овој јазик е регуларен.

Јазикот кој ги содржи сите подзборови на еден регуларен јазик

е регуларен јазик (Да се размисли и докаже!).

Задача 4

Докажи дека ниту еден од следните јазици не е регуларен.

а) La={ wwR | w {a,b}

* }

б)Lb={ ww | w {a,b}* }

в) Lc={ wẁ | w {a,b}*ẁ е збор добиен со замена на а со b и

обратно}

а)

Прво да се потсетиме дека wR е обратниот збор на w,

пр:w=abbwR=bba.

Нека нашиот јазик La е регуларен јазик, и нека L2=a*bba*,

тогаш од својството за пресек следува дека L=LaL2 = {anbba

n|

n }, е регуларен јазик.

Но, дали L={anbba

n| n }, е регуларен јазик?

Page 34: AUD Kompleten Materijal 2012 FINKI

Формални јазици и автомати – м-р Миле Јованов, Кристина Спировска

34

Ако {anbba

n| n } е регуларен јазик, тогаш според лемата за

пумпање за секое w од L со должина поголема од некое K,

постојат такви x, y и z, |y|>0 што w=xyz, и секој xykzL, за

произволен природен број k.

Како можеме да го избереме y?

Првите два случаи се кога во y има само а-овци.

i)

Нека w=asa

qa

n-q-sbba

n, q > 0, каде

x=as, y=a

q, z=a

n-q-sbba

n, па за k=0 следи, w=a

sa

n-q-sbba

n, т.е. n-q

n, односно бројот на а-овци пред пред првото b е помал од

бројот на а-овци после второто b во зборот, па xy0z

LВаков избор за y е неприфатлив.

ii)

За w=аnbba

sa

qa

n-s-q, q > 0, за x=а

nbba

s, y=a

q, z=a

n-s-q, па ако

земеме k=0 следи,

w=аnbba

sa

n-s-q, т.е. nn-q, односно бројот на а-овци пред првото

b е поголем од бројот на а-овци после второто b во зборот, па

xy0z L Ваков избор за y е неприфатлив.

Трет случај би бил кога y содржи само b-овци, тогаш за k=0

xy0z ќе има помалку од две b, што е контрадикција со тоа дека

зборот треба да има точно 2 b. Па, и ваков избор за y е

неприфатлив.

Сега, бидејќи констатиравме дека не постои начин да

избереме y со кој ќе можеме да пумпаме, согласно лемата за

пумпање добивме дека јазикот L не е регуларен.

Враќајќи се наназад, добиваме дека барем еден од La и L2 не е

регуларен. Бидејќи за знаеме дека L2 е регуларен, следува дека

нашиот јазик La не е регуларен.

б)

За оваа задача може да се работи слично како и под а) со тоа

што сега ќе го земеме јазикот зададен со регуларниот израз:

a*ba*b.

Page 35: AUD Kompleten Materijal 2012 FINKI

Формални јазици и автомати – м-р Миле Јованов, Кристина Спировска

35

в)

Помош: Да се разгледа јазикот со регуларен израз a*bb*a.

Задача 5

Провери ја точноста на секој од следните искази:

а) Секое подмножество на регуларен јазик е регуларен јазик.

б) Секој регуларен јазик содржи регуларен јазик како вистинско

подмножество.

в) Ако L е регуларен јазик тогаш и L2={ xy | x L y L } е

регуларен јазик.

г) L={ w | w = wR } е регуларен јазик.

д) Произволна унија на регуларни јазици е регуларен јазик.

а)

Едноставен пример е да земеме нашиот јазик L да биде a*b*.

Неговото подмножество {anb

n} од претходните примери

покажавме дека не е регуларен јазик, од тука заклучуваме дека

исказот не е точен.

б)

Исказот не е точен. Контрапример – празниот јазик!

в)

Имаме дека w=xy е збор составен од два подзбора x и y, па од

x L y L x L y Lc, односно L2=LL

c, бидејќи L

c=*/L

е регуларен јазик и L е регуларен јазик па и нивната

конкатенација ќе биде регуларен јазик исказот е точен.

г)

Исказот не е точен. Односно, јазикот L={ w | w = wR } не е

регуларен.

Помош: Да се разгледа пресекот на L со јазикот {w| w* и w

е со парна должина}.

Page 36: AUD Kompleten Materijal 2012 FINKI

Формални јазици и автомати – м-р Миле Јованов, Кристина Спировска

36

д)

Исказот не е точен. За да докажеме ќе го искористиме

својството на јазикот L={anb

n | n } дека тој не e регуларен

јазик.

Да ги разгледаме сите јазици Lk={akb

k | k e точно зададен број

кој припаѓа на },

Сега, ако ја направиме унијата на сите вакви јазици кои се

регуларни ќе го добиеме јазикот L, кој не е регуларен со што

исказот не важи, т.е. од унија на регуларни јазици добивме

јазик кој не е регуларен.

Задача 6

Даден е јазикот L = { w { a, b, c}* | #a(w) + #b(w) = #c(w)}.

а) Докажи дека ако w припаѓа на L и w λ, тогаш Ǝ x,y,z ∑* така

што w = xyz , y λ и k, xykz L.

б) Докажи дека L не е регуларен.

а)

Нека w L и w λ. Нека избереме дека y=w.

Тогаш #a(y) + #b(y) = #c(y)

Ако y го качиме на степен k за k во новодобиениот збор

ќе имаме k-пати повеќе а-овци, k-пати повеќе b-овци и k-пати

повеќе с-овци, што значи дека

#a(yk) + #b(y

k) = #c(y

k), што следи од

k(#a(y) + #b(y)) = k #c(y).

Јасно x = λ и z = λ.

б )

Нека L1 е регуларниот јазик L1=a*b

*c

*. Tогаш L L1 =

{anb

nc

n| n } кој не е регуларен јазик од каде следи дека и L

не е регуларен јазик.

Page 37: AUD Kompleten Materijal 2012 FINKI

Формални јазици и автомати – м-р Миле Јованов, Кристина Спировска

37

Аудиториумски вежби 6: Граматики

Дефиниција

Формална граматика е подредена четворка G = ( V, ∑ , S, R ), каде V

и ∑ се конечни множества. Притоа :

V ∩ ∑ мора да биде празно множество

S е почетен терминал

R е конечно множество правила од облик vw , каде

v, w (V U ∑)*

Секој член од множеството R се нарекува правило.

Дефиниција

Безконтекстни правила

Безконтекстно правило е правило од А w, каде А е произволен

нетерминал.

Контекстно слободна граматика

Една граматика е контекстно слободна ако и само ако секое правило

од множеството правила е безконтекстно .

Теорема

Регуларен јазик е оној јазик за кој постои регуларна граматика.

Задача 1

Нека G=(V, Σ, R, S) е граматика каде V={S, A}, Σ ={a,b}

R={S→AA, (1)

A→AAA, (2)

A→a, (3)

A→bA, (4)

A→Ab} (5)

а) Дадете 3 различни изводи во G на зборот babbab.

б) За произволни m,n,p ≥ 0 дадете извод на зборот bm

abnab

p.

Page 38: AUD Kompleten Materijal 2012 FINKI

Формални јазици и автомати – м-р Миле Јованов, Кристина Спировска

38

в) Докажете дека L(G) е јазикот над Σ ={a,b} во кој во секој збор има

парен број на a, но минимум две а (и било колку b).

а)

S ⊢1 AA ⊢4 bAA ⊢5 bAbA ⊢5 bAbAb ⊢4 bAbbAb ⊢3 babbAb ⊢3

babbab

S ⊢1 AA ⊢5 AAb ⊢4 bAAb ⊢5 bAbAb ⊢4 bAbbAb ⊢3 babbAb ⊢3

babbab

S ⊢1 AA ⊢4 bAA ⊢4 bAbA ⊢3 babA ⊢4 babbA ⊢5 babbAb ⊢3

babbab

б)

S ⊢1 AA ⊢4×m bm

AA ⊢5×n bm

AbnA ⊢5×p b

mAb

nAb

p ⊢3×2b

mab

nab

p

(4×m значи извршување на 4-тото правило m пати, соодветно

и за 5×n, 5×p и 3×2)

в)

За да докажеме дека L(G) е јазикот над Σ ={a,b} во кој во секој

збор има парен број на a, но минимум две а (и колку било b) ќе

го разгледуваме бројот на појавувања на А.

Од правилото S→AA следи дека на почеток мора да имаме две

појавувања на А, т.е. парен број. Со употреба на кое било од

следниве правила A→bA или A→Ab заменуваме едно А со

еден терминал b и друго А, т.е. бројот на појавувања на А не

се променил и останува парен. Со употреба на правилото

A→AAA бројот на појавувања на А се зголемил за 2, т.е

повторно останува парен.

Единственo правило со чија употреба го добиваме терминалот

a е правилото A→a.

Значи бројот на појавувања на a е ист со бројот на појавувања

на А т.е. е парен.

Поради правилото S→AA бројот на појавувања на А, мора да

биде најмалку 2 што значи и бројот на појавувања на a исто

така мора да е најмалку 2.

Page 39: AUD Kompleten Materijal 2012 FINKI

Формални јазици и автомати – м-р Миле Јованов, Кристина Спировска

39

Бројот на појавувања на b е неограничен бидејќи можеме да ги

употребуваме правилата A→bA и A→Ab неограничен број

пати.

Задача 2

Дефинирај контекстно слободна граматика за јазикот:

а) L1 = {wcwR | w ∊ {a,b}*}

б) L2 = {wwR | w ∊ {a,b}*}

в) L3 = {w ∊ {a,b}* | w = wR}

а)

G=(V, Σ, R1, S), V={S}, Σ ={a,b,c}

R1 = {S→aSa, S→bSb, S→c}

б)

G=(V, Σ, R2, S), V={S}, Σ ={a,b}

R2 = {S→aSa, S→bSb, S→e}

в)

G=(V, Σ, R3, S), V={S}, Σ ={a,b}

R3 = {S→aSa, S→bSb, S→a, S→b, S→e}

Задача 3

Докажи дека L(G) е регуларен јазик, т.ш. G=(V, Σ, R, S), каде

V={S, A}, Σ ={a,b}, а граматиката R е следната:

R={S→aSa, S→aSb, S→bSa, S→bSb, S→e}

Нека регуларниот јазик е претставен со:

L={w∊ Σ* | |w|=2k, k∊N}. Ќе докажеме дека L=L(G)

Со индукција по должината на w докажуваме дека L⊆L(G)

- за k=0 се добива w=e

правилото S→e го генерира w во G, следува w∊L(G)

- претпоставуваме дека за k=n (односно |w|=2n) w∊L(G)

- тогаш за k=n+1 (односно за |w|=2n+2) ги имаме следниве

можности:

Page 40: AUD Kompleten Materijal 2012 FINKI

Формални јазици и автомати – м-р Миле Јованов, Кристина Спировска

40

w = aw’a, w = aw’b, w = bw’a, w = bw’b, каде |w’| = 2n

од претпоставката имаме дека постои извод во G,

така што S ⊢* w’, тогаш

за w = aw’a:

S ⊢ aSa ⊢ aw’a = w

за w = aw’b:

S ⊢ aSb ⊢ aw’b = w

за w = bw’a:

S ⊢ bSa ⊢ bw’a = w

за w = bw’b:

S ⊢ bSb ⊢ bw’b = w

Значи во G постои извод што може да го генерира секое w∊L,

односно L⊆L(G) (1)

Докажуваме дека L(G)⊆L

Нека w∊L(G). Тогаш изводот на w е со последователно

менување на еден нетерминал S и првите 4 правила од R, при

што со секое правило се додаваат по 2 букви на зборот, а на

крај S се заменува со празен збор. Од ова следува дека w ќе

има парен број на букви, односно L(G)⊆L(2).

Од (1) и (2) следува L=L(G)

Постои автомат кој го препознава јазикот L:

значи L навистина е регуларен јазик, па од L=L(G) следува

дека и L(G) е регуларен јазик.

Задача 4

Најди контекстно слободна граматика за следниве јазици:

а) L={am

bn | m≥n}

б) L={am

bnc

pd

q | m+n = p+q}

в) L={uawb | u,w∊{a,b}*, |u|=|w|}

г) L={am

bn | 2n≥m≥n}

а)

Page 41: AUD Kompleten Materijal 2012 FINKI

Формални јазици и автомати – м-р Миле Јованов, Кристина Спировска

41

R={S→aSb, S→aS, S→e}

б)

R={S→aSd, S→B, B→bBd, S→A, A→aAc, B→C, A→C,

C→bCc, C→e}

в)

R={S→Ab, A→aAa, A→aAb, A→bAa, A→bAb, A→a}

г)

R={S→aaSb, S→aSb, S→e}

Дефиниција:

Алгоритам за дефинирање регулaрна граматика од ДКА:

Нека M=(K, Σ, δ, s, F).

Тогаш G=(V, Σ, R, S) ќе биде дефиниран со

V=K, Σ =Σ, S=s, R={A→aB | δ(a,A)=B} ⋃ {A→e | A∊F}.

Задача 5

Да се дефинира регуларна граматика за јазикот препознаен од

автоматот:

V={S, A, B, C}

R={S→aA, S→bB, A→aS, A→bA, B→aB, B→bC, C→aA, C→bC,

A→e}

Page 42: AUD Kompleten Materijal 2012 FINKI

Формални јазици и автомати – м-р Миле Јованов, Кристина Спировска

42

Дефиниција:

Алгоритам за дефинирање НКА од регулaрна граматика:

Нека R=V ⋃ {H}, H∉V.

Тогаш s=S, F={H},

∆={(A,wB) | A→wB∊R} ⋃ {(A,wH) | A→e∊R}

Задача 6

Направете НКА за следната граматика:

R={S→abA, S→B, S→baB, S→e, A→bS, A→b, B→aS}

односно:

Page 43: AUD Kompleten Materijal 2012 FINKI

Формални јазици и автомати – м-р Миле Јованов, Кристина Спировска

43

Аудиториумски вежби 7: Push – down (набивачки)

автомати

Овде ќе дадеме примери како се конструираат push-down автомати доколку е

зададен контекстно-слободниот јазик.

Дефиниција:

Push-down автомат е подредена седморка од облик:

M=(Q,Σ,Γ,δ,s,z,F) каде:

Q e множество на состојби на автоматот;

Σ е азбуката на влезните симболи;

Γ е азбуката на купот;

δ е релација на премин од облик ((К*Σ*Γ)*(К*Γ))

s є Q е почетната состојба

z е знак за означување на дното на купот

F (подмножество од Q) е множество на финални состојби на

автоматот

Притоа, забележуваме дека кај push-down автоматите постои и куп

меморија на која при секое читање на влезен симбол можеме да

прочитаме и запишеме одреден(и) симболи од азбуката на купот.

Слично како и кај конечните автомати и овде дефинираме

конфигурација на автоматот со подредената тројка (q,u,s), каде q е

тековната состојба во коа се наоѓа автоматот, u е остатокот од зборот

што треба да се прочита, а s е состојбата на купот. Премините од една

во друга конфигурација на автоматот се означуваат со ├ и╞ .

Во примерите подолу, ќе сметаме дека зборот е препознаен од

автоматот доколку по исчитувањето на сите симболи од зборот,

автоматот се наоѓа во една од конечните состојби, но нема да не

интересира состојбата на купот.

Како и конечните, така и push-down автоматите можат да бидат

детерминистички и недетерминистички. Детерминистички push-down

Page 44: AUD Kompleten Materijal 2012 FINKI

Формални јазици и автомати – м-р Миле Јованов, Кристина Спировска

44

автомат е оној кај кој со читање на секој влезен симбол од влезот и со

даден симбол на купот, автоматот може да премине во точно една

состојба. Кај недетерминистичките автомати, може да постојат

повеќе премини за еден влезен симбол и даден симбол на купот.

Пример 1

Да се направи push-down автомат кој го препознава јазикот

L(M)={aⁿbⁿ|n≥0}:

Бараниот автомат ќе биде од облик:

M=({q0,q1,q2,q3},{a,b},{a,b},δ,q0,$,{q0,q3}), со следната

релацијата на премин дадена на сликата:

Автоматот без читање на симбол преминува во првата

состојба. Таму со читање на а, во купот става толку а-овци

колку што се читаат од влезот. Кога ќе дојде да се читаат b-

овци, автоматот преминува во втората состојба, и таму

останува се додека не ги исчита сите b-овци од влезот. На крај,

кога купот ќе се испразни ,а зборот ќе се прочита, со ознаката

за дно на купот автоматот преминува во третата финална

состојба со што зборот е препознаен. Доколку бројот на b-

овци е поголем од бројот на а-овци, автоматот ќе заглави во

состојбата 2, поради тоа што нема каде да оди кога ќе дојде до

дното на купот. Во случај да бројот на b-овци е помал од

бројот на a-овци, автоматот повторно ќе заглави во втората

состојба откако ќе го прочита зборот, така што овие зборови

нема да бидат препознаени од автоматот.

Задача 1

Дефинирај детерминистички push-down автомат (ДПДА) кој го

прифаќа јазикот:

а) L={am

bnc

k | m+k≠n };

б) L={wcucwR | w, u є {a,b}

*, c ∉ {a,b}

*};

в)L={w ∈ {a, b, c, d}* | #a(w)+#c(w)≠#b(w)+#d(w)}.

Page 45: AUD Kompleten Materijal 2012 FINKI

Формални јазици и автомати – м-р Миле Јованов, Кристина Спировска

45

а) Автоматот е: M=({q0,q1,q2},{a,b,c},{a,b,c,r,p,t},δ,q0,$,{q1}).

Релацијата на премин е дадена на следната скица:

Овде во азбуката на купот, за првото појавување на некоја

буква во зборот користиме посебна буква. Автоматот има три

состојби, q0 , q1 и q2. Во нултата состојба се наоѓаме кога

неравенството не е задоволено, односно m+k=n, Потоа, со

читање на одреден симбол од влезот, доколку е ист со

претходно прочитаниот, го зголемуваме бројот на неговите

букви во купот, доколку е различен и може да се најде во

дозволен ред (на пр b после а), јадеме буква од купот, а

доколку редот на буквите не е запазен, одиме во втората

(ѓубре) состојба. Во случај на изедначување, (незадоволување

на равенството, празен куп), на пример, читање на b, а на куп

имаме p што вели дека имаме само едно а, доаѓа до

задоволување на равенството m+k=n, па преминуваме во

првата нефинална состојба. Доколку има уште за читање,

автоматот тоа го третира како нов подзбор (досега

прочитаниот не го задоволува равенството) и работата

продолжува онака како што е објаснета погоре.

б) Автоматот е: M=({q0,q1,q2,q3},{a,b,c},{a,b},δ,q0,$,{q3}).

Релацијата на премин е дадена на следната скица:

Page 46: AUD Kompleten Materijal 2012 FINKI

Формални јазици и автомати – м-р Миле Јованов, Кристина Спировска

46

На почетокот, автоматот го чита подзборот w и секој прочитан

знак го става на купот. Откако ќе го прочита w автоматот

преминува во состојбата q2 со читање на знакот c. Потоа го

чита подзборот u но бидејќи за овој подзбор немаме никакви

услови кои треба да се задоволени, не вадиме ниту ставаме

ништо во купот. Потоа автоматот со читање на c преминува во

следната состојба. Понатаму автоматот го чита wR и ги

споредува знаците ставени во куп (вадејќи ги по обратен

редослед од кој се ставени, бидејќи е куп) со прочитаните

знаци и доколку се исти продолжува натаму, во спротивно се

блокира. На таков начин се проверува дали овој подзбор е

обратен на w. На крај, кога ќе се исчита целиот збор и се дојде

до дното на купот, автоматот преминува во крајната состојба,

со што зборот е препознаен.

в) Автоматот е: M=({q0,q1},{a,b,c,d},{A,B,C,D},δ,q0,$,{q1}).

Релацијата на премин е дадена на следната скица:

Најпрво, азбуката ја делиме на две класи: a и c (со маркери A и

С) во една класа, а b и d (со маркери B и D) во друга класа,

бидејќи буквите од овие две класи се наоѓаат на различните

страни од знакот за различно. Маркерите (така ќе ги наречеме

овде буквите од азбуката на купот, со кои ќе го означуваме

бројот на букви од двете класи кои досега се прочитани) ги

користиме за означување на бројот на букви од двете класи во

купот. Автоматот има две состојби, q0 и q1. Во нултата

состојба се наоѓаме кога бројот на симболи од двете класи е

ист, а во првата кога ваквиот број е различен.

Кога автоматот почнува со работа, по читањето на некоја

буква маркира во купот од која класа била таа. Доколку

понатаму читаме букви од истата таа класа, додаваме уште

Page 47: AUD Kompleten Materijal 2012 FINKI

Формални јазици и автомати – м-р Миле Јованов, Кристина Спировска

47

маркери за оваа класа на букви. Кога ќе дојде знак од другата

класа, се намалува бројот на маркери од спротивната класа.

Кога во автоматот ќе остане само првиот маркер и се чита

буква од спротивната класа, се вади од купот последниот

маркер и се изедначува бројот на букви од двете класи. Со тоа

автоматот преминува во почетната нефинална состојба.

Притоа, почетни маркери за класите се A и B.

Задача 2

Конструирај ДПДА кој го препознава јазикот:

L={w ∈ {a, b}* | #aa(w)=#ab(w)}

Автоматот е: M=({q0,q1,q2,q3},{a,b},{a,b,c,d},δ,q0,$,{q0,q3}).

Релацијата на премин е дадена на следната скица:

Автоматот има четири состојби, две од нив се завршни (кога е

во тие состојби, бројот на ab е исти со бројот на aa во зборот).

Во останатите две состојби настанува порамнување на бројот

на ab со бројот на aa во зборот, преку ставање и вадење на a и

b во купот, слично како и во претходните задачи. Премините

во крајните состојби се со вадење на последната буква од

купот (тогаш настанува изедначување на бројот на бараните

подзборови) и зборот се препознава од автоматот.

Задача 3

Конструирај ДПДА кој го препознава јазикот:

L={a1a2…ancb1b2..bn | ai,bi ∈ {a, b}, n ∈ N+ , a1=b1, an=bn, c ∉ {a, b}*}.

Page 48: AUD Kompleten Materijal 2012 FINKI

Формални јазици и автомати – м-р Миле Јованов, Кристина Спировска

48

Автоматот е:

M=({q0,q1,q2,q3,q4,q5,q6,q7,q8},{a,b,c},{a,b,c,d},δ,q0,$,{q8}).

Релацијата на премин е дадена на следната скица:

Автоматот работи на следниот начин:

Најпрво се чита од влезот првата буква и се става на куп.

Потоа, се читаат останатите букви, и за прочитана „a“ од влез

се става „с“ на куп, а за „b“ се става „d“. Тоа е за да се оддели

првата буква од зборот од останатите. На таков начин се чита

првиот дел од зборот. Кога автоматот ќе го чита c од купот

(средината на зборот), проверува кој е последниот ставен

елемент на купот (an) и според тоа преминува во една од

состојбите q2 или q3, со кои ќе знаеме која била претходно

прочитаната буква. Веднаш после тоа, се чита bi и според тоа

автоматот преминува во нова состојба (повторно преоѓа во

една од две состојби, карактеристична за а или b). На таков

начин, секоја од состојбите q4,q5,q6,q7 е карактеристична за

прочитаните an и b1 . На крај, кога се чита последната буква од

зборот и се вади последната од купот, се проверува дали

ваквата варијација е соодветна за варијацијата на претходно

прочитаните симболи, претставена за секоја од овие состојби.

Доколку е така, се преминува во финална состојба и се

препознава зборот.

Задача 4

Конструирај push-down автомат (ПДА) кој го препознава јазикот:

L={uwuR| u, w ∈ {a, b}*, #a(w)=#b(w)}.

Page 49: AUD Kompleten Materijal 2012 FINKI

Формални јазици и автомати – м-р Миле Јованов, Кристина Спировска

49

Автоматот е: M=({q0,q1,q2,q3},{a,b},{a,b,c},δ,q0,$,{q3}).

Релацијата на премин е дадена на следната скица :

Автоматот кој е конструиран е недетерминистички.

На почетокот, автоматот го чита подзборот u и секој прочитан

знак го става на купот. Откако ќе го прочита u автоматот

преминува во состојбата q2 и го маркира крајот на зборот u во

купот со знак c. Потоа го чита подзборот w буква по буква и

притоа го споредува бројот на а-овци и b-овци во овој збор.

Така, доколку претходно имало „а“ на купот и чита „а“, додава

„а“ на купот, а доколку чита „b“, а на купот имало „а“, го

намалува бројот на а-овци на купот. Слична е и обратната

ситуација, доколку има b-овци на купот. Така, откако ќе го

исчита w, доколку бројот на а-овци и b-овци е исти,

последната буква на купот ќе биде c, па автоматот ќе премине

во состојба q2 со вадење на с од купот. Потоа читајќи го uR ,

автоматот ги споредува знаците ставени во куп (вадејќи ги по

обратен редослед од кој се ставени, бидејќи е куп) со

прочитаните знаци и доколку се исти продолжува натаму, во

спротивно се блокира. На таков начин се проверува дали овој

подзбор е обратен на u. На крај, кога ќе дојде дното на купот,

автоматот преминува во крајната состојба, со што зборот е

препознаен.

Задача 5

Конструирај ДПДА кој го препознава јазикот:

L={am

bna

n+3m| n>0, m≥0}.

Автоматот е: M=({q0,q1,q2,q3},{a,b},{a,b},δ,q0,$,{q3}).

Релацијата на премин е дадена на следната скица:

Page 50: AUD Kompleten Materijal 2012 FINKI

Формални јазици и автомати – м-р Миле Јованов, Кристина Спировска

50

Најпрво автоматот ги чита а-овците и за секое прочитано а,

става три а на купот. Потоа ги чита b-овците и ги става на

купот. На крај, кога ќе ги чита а-овците на крајот, од купот ги

вади ставените а-овци и b-овци. Кога ќе дојде до дното на

купот, автоматот преминува во крајната состојба. На таков

начин се препознава зборот којшто го задоволува бараниот

услов за бројот на a и b.

Задача 6

Конструирај ПДА кој го препознава јазикот:

L={anb

m | n, m ∈ N, n≤m≤3n}.

Автоматот е: M=({q0,q1,q2,q3},{a,b},{a,b},δ,q0,$,{q3}).

Релацијата на премин е дадена на следната скица:

Дадениот автомат е недетерминистички. Најпрво тој ги чита

а-овците од влезот, и на куп става едно, две или три а-овци.

Така, ако бројот на а-овци на влезот е n, по исчитувањето на а-

овците од влезот, на купот ќе има помеѓу n и 3n а-овци. Потоа,

читајќи ги b-овците, автоматот ги вади од куп а-овците. Кога

ќе се испразни купот, автоматот вадејќи го од куп знакот за

дно на купот ќе премине во крајната состојба и го препознава

зборот.

Така, кога автоматот ќе биде во крајната состојба, ќе исчита

помеѓу n и 3n b-овци.

Задача 7

Page 51: AUD Kompleten Materijal 2012 FINKI

Формални јазици и автомати – м-р Миле Јованов, Кристина Спировска

51

Да се конструира ПДА кој го препознава јазикот:

L={a1a2…anbn…b2b1 |ai, bi ∈ {a, b}, (∃ i ∈ {1,2,…,n}) ai=bi}.

Автоматот е: M=({q0,q1,q2},{a,b},{a,b},δ,q0,$,{q2}).

Релацијата на премин е дадена на следната скица:

Конструираниот автомат е недетерминистички.

Најпрво, со премините од q0 во q0 се полни купот со буквите

од првата половина на зборот како што се читаат. Потоа, на

средината на зборот, автоматот преминува во следната

состојба, q1. Премините од q1 во q1 ќе се реализираат тогаш

кога bi≠ai (ai е буквата која ја вадиме од купот, а bi е буквата

која ја читаме од влезот). Тогаш кога овие две букви ќе бидат

исти, автоматот преминува во состојбата q2, која што ги јаде

преостанатите букви, без разлика какви се, со цел само да

изброи дека е ист бројот на букви на „вториот збор“ како и во

првиот збор. На крај, ако сме дошле до дното на купот

(зборовите имаат ист број на букви) можеме да преминеме во

q3 која е завршна.

Со тоа, најден е еден пар кој го задоволува условот аi = bi .

Page 52: AUD Kompleten Materijal 2012 FINKI

Формални јазици и автомати – м-р Миле Јованов, Кристина Спировска

52

Аудиториумски вежби 8: Тјурингови машини

Во овие аудиториумски вежби се разгледуваат различни видови на проблеми чие

решение е успешно добиено со употреба на Тјурингова машина.

Дефиниција

Тјурингова машина е теоретска направа која манипулира со симболи

на лента помагајќи се со табела правила. Иако ова е мошне

едноставен концепт тој може да се прилагоди да симулира логика на

компјутерски алгоритам.

Основни елементи на Тјуринговата машина

Секоја Тјурингова машина е составена од:

Лента: претставува низа од клетки кои може да содржат симболи од

конечна азбука и празно место кое ќе го бележиме со празно

квадратче

Глава: може да ги чита симболите на лентата и да ја придвижува

истата на лево и десно по една клетка при секоја функција.

Табела: претставува збир на правила според кои работи машината.

Внатрешна меморија: претставува множество внатрешни состојби

на машината, дефинирана на следниот начин:

К=q0 , q1, … , qm} и важи К =

Завршна состојба: која уште се нарекува и СТОП – состојба и се

означува со “ ! ”.

Page 53: AUD Kompleten Materijal 2012 FINKI

Формални јазици и автомати – м-р Миле Јованов, Кристина Спировска

53

Почетна состојба: која припаѓа на множеството К (кое е погоре

дефинирано) означена како q0.

Механизам за управување: наречен програма која се состои од

подредени петорки – наредби кои се дефинирани на следниот начин:

qi ajarMqs, каде qi, qs К, aj, ar и М={L, R/D, N}

Попрецизно, во продолжение е дадено што означуваат одредени

ознаки:

D – придвижување на лентата десно

L – придвижување на лентата на лево

N – (или никаква ознака) означува дека главата не се

придвижува во ниедна од двете насоки.

! – крајна состојба / машината завршува со работа

□ – бришење на постојниот знак, т.е. поставување на празно

поле

Задача 1

Да се состави Тјурингова машина за пресметување на sg(x) во унарен

запис.

Операцијата sg(x) е дефинирана на следниот начин:

1,1

0,0)(

x

xxsg

За оваа задача се понудени две решенија и притоа е

употребена т.н. “n со n+1 цртички” нотација, што би значело

дека секој број n на лентата се претставува со n+1 цртичка.

q0 q1 q2 q3

D q1 D q2 D L!

L! L q3 L

Page 54: AUD Kompleten Materijal 2012 FINKI

Формални јазици и автомати – м-р Миле Јованов, Кристина Спировска

54

Во состојбата q0 сигурно се наоѓаме над поле со (и нула се

означува со една |), па одиме за еден чекор во десно и

преминуваме во нова состојба.

За состојбата q1 ако има повторно се придвижува главата во

десно и преминува во состојба q2, додека ако наиде на се

придвижува на лево и завршува.

Во q2 сите одвишни -ки ги брише и се подместува во десно,

а за се подместува во лево и оди во нова состојба q3.

Состојбата q3 за се придвижува во лево и завршува, додека

за се придвижува лево.

Ова решение има 4 состојби. Препорачливо е истите да се во

што помал број. Затоа, како пооптимално решение е ова што

следи кое има 3 состојби:

(втор начин:)

q0 q1 q2

D q1 D q2 D

! L q1

Задача 2

Да се конструира Тјурингова машина која пресметува остаток при

делење со 3, каде броевите на лентата се претставени во унарна

нотација.

Решаваме со “n со n+1 цртички” нотација. Дефинираме 3

состојби кои ќе бројат колку е остатокот.

В

Во првата редица, соодветно за q0, q1, q2 се добиваат остатоците

2, 0 и 1.

Задача 3

Да се конструира Тјурингова машина со која главата ќе се намести на

најблиската непразна клетка на лентата.

q0 q1 q2

D q1 D q2 D q0

L q2 ! L q1

Page 55: AUD Kompleten Materijal 2012 FINKI

Формални јазици и автомати – м-р Миле Јованов, Кристина Спировска

55

Оваа Тјурингова машина не е стандардна, бидејќи главата не е

поставена на почетокот, туку на позиција која не ни е позната.

Треба да ја најдеме првата позиција (на лево или на десно) на

која има знак од азбуката на машината. Во подолу даденото

решение е земено дека азбуката има еден знак „|“. Сепак,

истото решение важи и за колку било елементи на азбуката.

Истите премини кои важат за | ќе важат и за останатите

симболи од азбуката.

Решението побарува воведување на маркер. Во овој пример,

маркерот е означен со симболот .

qd ql qbl qzd qbd qzl

Lql D qd D qzd D L qzl L

D L L D

L qbl D qbd D qzd ! L qzl !

Значи, на почетокот се наоѓаме наизменично во состојбите qd

и ql. Истите ја движат главата наизменично надесно и налево и

поставуваат маркер алфа на првата најдена празна позиција.

Целта е да утврдиме каде (лево или десно) ќе се најде првата

непразна позиција. Во моментот кога ќе ја откриеме

преминуваме кон бришење на алфите и враќање на најдената

позиција. Тоа го правиме со состојбите qbl и qzd („бриши во

лево“ и „заврши десно“) ако првата непразна позиција е

најдена десно, и соодветно со останатите 2 состојби, ако е

најдена лево. Ова решение го решава и случајот кога главата е

во старт на првата позиција.

Задача 4

Конструирајте стандардна Тјурингова машина која за даден стринг на

лента, кој е составен од симболи кои припаѓаат на азбуката ={a, b}

ќе го помести стрингот за едно место во десно.

Главата е поставена на почетокот од стрингот. Основната

идеја е, во секој чекор да утврдиме над која буква се наоѓаме и

во зависност од тоа да преминеме во соодветната состојба (qa

или qb). Така во наредниот чекор ќе знаеме која буква да ја

запишеме врз клетката, откако сме утврдиле која буква се

наоѓа веќе таму.

Само на почетокот ставаме празно место (состојба q0), а на

крај, кога ќе дојдеме до празно место, го поставуваме

последниот симбол и преминуваме во „мод“ за враќање на

главата на почетокот од зборот (состојба q2).

Page 56: AUD Kompleten Materijal 2012 FINKI

Формални јазици и автомати – м-р Миле Јованов, Кристина Спировска

56

q0 qa qb q2

D aLq2 aLq2 D!

а Dqа Dqа bDqа Lq2

b Dqb aDqb Dqb Lq2

Задача 5

Да се креира Тјурингова машина која ќе пресмета остаток при делење

со 2 на број во даден декаден запис.

Оваа машина на Тјуринг треба да врати резултат 1 или 0. Тоа

би значело, без разлика каков е зборот, тој треба да се

избрише и се што ќе остане на лентата е резултатот (1 или 0).

Задачата потсетува на конечниот автомат кој го решава овој

проблем, и истиот е конструиран во некоја од претходните

аудиториски вежби.

Цифрите 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ги сместуваме во две

дисјунктни множества, со тоа што парните цифри се едно, а

непарните друго множество. Со тоа јасно е дека програмата ќе

има 2 состојби, q0 и q1. Идејата на ова решение е да се обрне

внимание на последната цифра од бројот кој е на лентата.

Како се поминуваат цифрите, се бришат додека има наредна.

Во моментот кога после цифра следи празна клетка () во

зависност од вредноста на цифрата, се добива резултат 1 или

0.

q0 q1

1, 3, 5, 7, 9 Dq1 D

2, 4, 6, 8, 0 D Dq1

0! 1!

Задача 6

Да се креира Тјурингова машина која ќе го дава остатокот при

делење со 3 во декаден запис.

Оваа задача , за разлика од претходната е малку посложена, со

оглед на тоа што правилото за деливост со 3, бара збир од сите

цифри на бројот. И оваа задача, како претходната е многу

слична на конечен автомат кој го имаме веќе конструирано.

Цифрите од 0 до 9 ги делиме на 3 групи, со кои успешно ќе се

припазува на промените во збирот од бројот кој е поставен на

лентата.

Page 57: AUD Kompleten Materijal 2012 FINKI

Формални јазици и автомати – м-р Миле Јованов, Кристина Спировска

57

q0 q1 q2

0, 3, 6, 9 D D D

1, 4, 7 Dq1 Dq2 Dq0

2, 5, 8 Dq2 Dq0 Dq1

0! 1! 2!

Задача 7

Креирај Тјурингова машина која за даден збор над азбуката 0, 1, 2 се

позиционира на првото појавување на најголемата цифра во зборот.

Притоа, главата на машината е поставена на почеток.

q0 q1 q2 q3 q4

0 D D L L D

1 D q1 D L !

2 ! !

Lq2 Lq3 D! Dq4

Тјуринг-одлучлив јазик (рекурзивен јазик)

Една јазик е рекурзивен јазик, односно Тјуринг-одлучлив ако има

Тјурингова машина која за даден збор ќе даде резултат Y/N( Да/ Не)

во зависност од тоа дали дадениот збор припаѓа или не припаѓа во

јазикот.

Задача 8

Да се креира Тјурингова машина со која се покажува дека

множеството палиндроми со непарна должина над азбуката ={a, b}

е Тјуринг-одлучлив јазик.

q0 qa qa’ qb qb’ q1 qn

а D qa D L q1 D L qn L L

b D qb D L qn D Lq1 L L

N! Lqa’ Y! L qb’ Y! Dq0 N!