Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

MAIN

.pdf
Скачиваний:
23
Добавлен:
10.02.2015
Размер:
255.38 Кб
Скачать

Вопрос 24.1

Теорема 1 (о разпознавании языка). Пусть A=<X,S, ,s0, F> è F={s¯0: s'2F}, w - принимается автоматом A.

 

x1

x2

xn

S0

S0

:::

S0

 

1

 

n 2F

0M(w)=s¯0=(0,...,0,1,0,...,0)

Определение. Решающий вектор столбец

.

 

 

 

 

0

0

1

 

 

 

 

 

 

 

 

F

=

1

 

 

 

 

 

B

:::

C

 

 

 

 

 

B

 

C

 

 

 

 

 

B

 

C

 

 

 

 

 

B

 

C

 

 

 

 

 

B

 

C

 

 

 

 

 

B

 

C

 

= (w);

 

(w)= (w)

 

B

 

C

 

 

 

B

 

C

0

 

 

@

 

A

 

 

 

(

0;

w < L

 

 

 

¯F =

1;

w 2 L

Теорема 2. Пусть A - конечный автомат, и пусть L=L(A), пусть A=<X,S, ,s0, F>, тогда w2L $ (w)=1

Умножение матриц Задача: запрограммировать следующий автомат

01

1

S0

0

S2

S0

1

 

1 S0 = (1,0,0); S1 = (0,0,1); S2 = (0,0,1);

Таким образом, получаются следующие уравнения, где матрицы М(0) 31

и М(1) неизвестны:

(1,0,0)M(0)=(1,0,0)

(1,0,0)M(1)=(0,0,1)

(0,1,0)M(0)=(0,0,1)

(0,1,0)M(1)=(0,1,0)

(0,0,1)M(0)=(0,0,1)

(0,0,1)M(1)=(1,0,0)

Найденные матрицы:

.

 

0

0

0

0

1

 

 

 

 

 

M(0) =

1

0

1

 

 

 

B

0

0

1

C

 

 

 

B

 

 

 

C

 

 

 

B

 

 

 

C

 

 

 

B

 

 

 

C

 

 

 

B

 

0

1

C

 

 

 

B

 

C0

 

 

 

@

0

 

 

A

1

 

M(1) =

0

1

0

 

 

 

B

1

0

0

C

 

 

 

B

 

 

 

C

 

 

 

B

 

 

 

C

 

 

 

B

 

 

 

C

Листинг программы на С++:

 

B

 

 

 

C

 

B

 

 

 

C

 

 

 

@

 

 

 

A

#i n c l u d e <iostream>

 

 

 

 

 

 

#i n c l u d e <fstream>

 

 

 

 

 

 

using

namespace std ;

 

 

 

 

 

 

const

i n t N=3;

 

 

 

 

 

 

void

showvec ( i n t v [ ] )

 

 

 

 

 

 

{

 

 

 

 

 

 

 

f o r ( i n t i =0; i<N; i++)

 

 

 

 

 

 

{

 

 

 

 

 

 

 

 

cout<<v [ i ]<< ' ' ;

 

 

 

 

 

 

}

cout<<' \n ' ;

 

 

 

 

 

 

}

 

 

 

 

 

 

 

void mult ( int v [ ] , int m[N] [N] )

{int res [N] ;

res [0]=0; res [1]=0; res [2]=0;

f o r ( int i =0; i<N; i++)

{

32

f o r ( i n t j =0; j<N; j++)

r e s [ i ]+=v [ j ] m[ j ] [ i ] ;

}

f o r ( i n t i =0; i<N; i++) v [ i ]= r e s [ i ] ;

}

i n t main ( )

{

i n t r e s [N ] ;

i f s t r e a m in ( " input . txt " ) ; i n t m0[N ] [ N] ,m1[N ] [ N ] ;

f o r ( i n t i =0; i<N; i++)

{

f o r ( i n t j =0; j<N; j++) in>>m0[ i ] [ j ] ;

}

f o r ( i n t i =0; i<N; i++)

{

f o r ( i n t j =0; j<N; j++) in>>m1[ i ] [ j ] ;

}

r e s [ 0 ] = 1 ; r e s [ 1 ] = 0 ; r e s [ 2 ] = 0 ; i n t command ;

f o r ( ; ; )

{ cin>>command ;

i f (command==2) break ;

i f (command) mult ( res ,m1 ) ; e l s e mult ( res ,m0 ) ;

showvec ( r e s ) ;

}

}

33

Вопрос 26

Класс NReg

Определение:

Множество языков, распознаваемых недетерминированными автоматами, обозначим NReg,

NReg = fL : L = L(A)g

где А - конечный недетерминированный автомат

Теорема 1. Reg NReg

Доказательство. По определению КДА является частным случаем КНА

) Reg NReg

34

Вопрос 27

Теорема 1. NReg = Reg

Доказательство. 1. Reg NReg по определению;

2.NReg Reg:

L 2 NReg ) L 2 Reg

(2)

L = L(A) = L(B)

A - конечный недетерминированный автомат; В- конечный детерминированный автомат.

Состояниями в новом автомате будут подмножества множества со-

стояний A (те, в которых может находиться недетерминированный автомат): 2S

A =< x; S; ; S0; F >

B =< x; 2S; det; S0; F0 >

2S =< c1; c2; :::; c2d >; 2d = j2sj; jSj = d:

det : 2S x ! 2S

c 2 2S; x 2 X; (c; x) = c; åñëè c = fS1:::S0tg; c0 = (c; x)

S1

(S2; x)

S.2

St

c0 = [ (Si; x); Si 2 c

Мы объединяем все те состояния, в которые может перейти недетерминированный автомат из состояний, в которых он может находиться.

! = x1:::xn c0 = fS0g

35

%

S10

:

c0 = S0 !

:

:

&

S0

 

t1

F0 = fc : â c 9Så; S 2 Fg c \ F ,

1:w 2 L => w 2 L(B) 8S0 2 c

2:w < L => w 2 L(B) S0 < F) F0 = 2S=F0 = fc : C \ F = g

! ! :::

! ::: !

S0

= cn

! ! :::

36

Вопрос 28, 29, 30

Теорема 1. Для регулярного языка L выполняется, что Ndim(L) dim(L)

1 (Доказательство). Пусть A- минимальный КДА для языка L. Следовательно, dim(L) = dim(A) = RangL. Рассматривая КДА А как частный

случай КНА, получаем Ndim(L) dim(L). Q.E.D.

Теорема 2. Для регулярного языка L выполняется, что dim(L) 2Ndim(L)

2 (Доказательство). Пусть B -КДА, распознающий язык L: L = L(B). Получаем, dim(L) dim(B).

Построим КДА B как частный случай КНА А, распознающего язык L. Таким образом, dim(B) = 2dim(A). A0 - минимальный КНА для языка L.

Ndim(L) dim(A), Ndim(L) dim(A0 .

Пусть B0 -КДА, построенный по A0 . Тогда справедливо:

dim(L) dim(B0 ) = 2dim(A0 ) 2Ndim(L)

Q.E.D.

Свойство 1. Для регулярного языка L выполняется, что Ndim(L) dim(L)

2Ndim(L).

Свойство 2. Для регулярного языка L выполняется, что Ndim(L) log2 dim(L).

Теорема 3. 2n Ndim(EQ2n+1)

3 (Доказательство(по принципу Дирихле).). | EQ2n+1|=2n. A-КНА, распознающий язык EQ2n+1. Предположим, что,

dim(A) < 2n

dim(A) 2n 1

На вход автомату A подаются слова только из EQ2n+1 Построем КНА, соответствующий нашему предположению:

37

ñ эпсилон-переходами:
38
КДА, каждый из которых, совершает проверку языка, и

U

 

 

U

S0

S2

 

Ac

V

 

 

 

 

 

V

Ac

 

 

 

Sn

При нашем предположении получаем, что ветка V, построенного автомата будет принимающей, т.е. автомат принимает слова, не принадле- жащие EQ2n+1.Наши предположения неверны.

Получаем,

2n Ndim(EQ2n+1)

Q.E.D.

Теорема 4. Ndim(EQ2n+1) cn2 = c2n log2 n

4 (Доказательство). Построим B- КНА, принимающий язык EQ2n+1, ñî- стоящий из An

начального состояния S0

S0

e e e

1

i

n

A1

Ai

An

В случае n -состояний длина одного автомата Ai будет равна 2n+1. Учитывая, что2n+1 Cn, получаем dim(B) = 1 + Pdim(2n+1) n2. Следо-

вательно,

Ndim(EQ2n+1) cn2 = c2n log2 n

Q.E.D.

39

Вопрос 31, 32, 33 Вопрос 31

Теорема. Объединение регулярных языков - регулярно

Доказательство. Пусть у нас есть 2 языка: L1; L2 2 Reg, L = L1 [ L2. Докажем, что L 2 Reg. L1 = L(A1), L2 = L(A2). Построим автомат A:

S10 A1

S0

S20 A2

.

S0 < S1 [ S2

A =< X; S; ; s0; F >, ãäå

S = S1 [ S2 [ S0, F = F1 [ F2,

: S X [ f"g ! 2S

(S0; ") = fS10; S20g

(S1; x) = 1(S1; x) äëÿ S1 2 S1(S2; x) = 2(S2; x) äëÿ S2 2 S2

Покажем, что L = L(A):

1.w 2 L = L1 [ L2

w 2 L1 èëè w 2 L2 èëè w 2 L1 è L2 ) w - принимается A по определению.

2.w < L ) w < L1 è w < L2 ) w - отвергается A.

Следствие. dim(L) 6 2dim(L1)+dim(L2)+1

Доказательство. Ndim(L) 6 dim(A1) + dim(A2) + 1

dim(L) 6 2Ndim(L)

40

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]