MAIN
.pdfВопрос 24.1
Теорема 1 (о разпознавании языка). Пусть A=<X,S, ,s0, F> è F={s¯0: s'2F}, w - принимается автоматом A.
|
x1 |
x2 |
xn |
S0 |
S0 |
::: |
S0 |
|
1 |
|
n 2F |
s¯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 |
||
s¯0 |
s¯ |
|
s¯ |
|
@ |
|
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
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