Upload
others
View
4
Download
0
Embed Size (px)
Citation preview
ГУГУ ВысшаяВысшая школашкола экономикиэкономикиКафедраКафедра управленияуправления разработкойразработкой программногопрограммного обеспеченияобеспечения
ТеоретическаяинформатикаКурс для студентов ПИ, 1 курс
Ломазова Ирина Александровнад.ф.-м.н., профессор
Отделение ПИ Ломазова И.А. 2
Содержание курса
• Формальные языки, грамматики и автоматы
• Теория информации и кодирования
Часть 1:Формальные языки,
грамматики и автоматы
Отделение ПИ Ломазова И.А. 4
Основная литература
Хопкрофт Дж., Мотвани Р., Ульман Дж. Введение в теорию автоматов, языков ивычислений: Пер. с англ. - М.: Издательский дом "Вильямс", 2008.
Отделение ПИ Ломазова И.А. 5
• Алфавит языка:– Множество символов (букв)
• Язык – множество строк• Строка (слово) :
– Последовательность символовПримеры: “студент”, “123”, “house”, …
Формальный язык
{ }zcba ,,,, K=Σ
Отделение ПИ Ломазова И.А. 6
Алфавит и строки• Будем использовать алфавит из двух букв
• Строки (слова)
abbawbbbaaavabu
=
=
=
{ }ba,=Σ
baaabbbaabababaabbaaba
Отделение ПИ Ломазова И.А. 7
Операции над строками
• Конкатенация
• Обращение
abbawaaaw n
=
= L21
bbbaaavbbbv m
=
= L21
abbabbbaaawvbbbaaawv mn
=
= LL 2121
aaabbbvbbbv
Rm
R
=
= 12L
Отделение ПИ Ломазова И.А. 8
Длина строки• Длина:
• Примеры:
• Длина конкатенации строк
naaaw L21=nw =
12
4
=
=
=
aaaabba
vuuv +=
Отделение ПИ Ломазова И.А. 9
Пустая строка• Строка, не содержащая букв: λ
abbaabbaabba
www
==
==
=
λλ
λλ
λ 0
Отделение ПИ Ломазова И.А. 10
Подстрока• Строка: Подстроки:
abbab
bbabbabbaab
λ
Отделение ПИ Ломазова И.А. 11
Префикс и суффикс
• префиксы суффиксыabbab
abbababbaabbabaλ
λbabbabbbababbab
uvw =
префикс
суффикс
Отделение ПИ Ломазова И.А. 12
Итерация
• Пример:
• Для любого слова :
43421 Ln
n wwww =
( ) abbaabbaabba =2
w λ=0w
( ) λ=0abba
Отделение ПИ Ломазова И.А. 13
Операция *• - множество всех возможных слов валфавите
• Пример:
• Тогда язык в алфавите – любоеподмножество *Σ
*ΣΣ
{ }{ }K,,,,,,,,,*,
aabaaabbbaabaababaλ=Σ
=Σ
λ−Σ=Σ+ *{ }K,,,,,,,, aabaaabbbaabaaba=Σ+
Σ
Отделение ПИ Ломазова И.А. 14
Пример бесконечного языка
{ }0: ≥= nbaL nn
aaaaabbbbbaabbabλ
L∈ Labb ∉
Отделение ПИ Ломазова И.А. 15
Операции над языками• Обычные теоретико-множественныеоперации:
• Дополнение:
{ } { }{ } { }{ } { } { }aaaaaabbbaaaaaba
ababbbaaaaabaaaaabbabaabbbaaaaaba
,,,,}{,,,
},,,{,,,
=−
=
=
I
U
LL −Σ= *{ } { }K,,,,,,, aaabbabaabbaa λ=
Отделение ПИ Ломазова И.А. 16
Обращение, конкатенация
{ }2121 ,: LyLxxyLL ∈∈=
{ }LwwL RR ∈= :
{ } { }ababbaabababaaabab R ,,,, =
{ }{ }aabbaaba ,,,{ }baaabababaaabbaaaab ,,,,,=
Отделение ПИ Ломазова И.А. 17
Итерация
• Пример:
• Специальный случай:
321Ln
n LLLL =
{ } { }{ }{ }{ }bbbbbababbaaabbabaaabaaa
babababa,,,,,,,
,,,, 3 ==
{ } { }λ=0,, aaabbaa
{ }λ=0L
Отделение ПИ Ломазова И.А. 18
Еще пример
{ }0: ≥= nbaL nn
{ }0,:2 ≥= mnbabaL mmnn
2Laabbaaabbb ∈
Отделение ПИ Ломазова И.А. 19
Замыкание * (звезда Клини)
• Пример:
LUU 210* LLLL =
{ }
⎪⎪⎭
⎪⎪⎬
⎫
⎪⎪⎩
⎪⎪⎨
⎧
=
K,,,,,,,,
,,,
*,
abbbbabbaaabbaaabbbbbbaabbaa
bbabba
λ
Отделение ПИ Ломазова И.А. 20
Положительное замыкание
• Пример:
{ }λ−=
=+
*
21
L
LLL LUU
{ }⎪⎭
⎪⎬
⎫
⎪⎩
⎪⎨
⎧=+
K,,,,,,,,
,,,
abbbbabbaaabbaaabbbbbbaabbaa
bbabba
Формальные грамматики иязыки
Отделение ПИ Ломазова И.А. 22
Грамматики• Грамматики определяют языки: является ли данноепредложение правильным предложением данногоязыка
• Пример: русский язык<предложение> → <подлежащее> <сказуемое>
<дополнение><подлежащее> → <существительное><сказуемое> → <глагол><дополнение> → <наречие><существительное> → птица | студент<глагол> → летает | учится<наречие> → высоко | хорошо
Отделение ПИ Ломазова И.А. 23
Вывод предложенияПтица летает высоко
<предложение> ⇒<подлежащее> <сказуемое> <дополнение> ⇒<существительное> <сказуемое> <дополнение> ⇒<существительное> <глагол> <дополнение> ⇒<существительное> летает <дополнение> ⇒птица летает <дополнение> ⇒птица летает <наречие> ⇒птица летает высоко
Отделение ПИ Ломазова И.А. 24
Предложения, выводимые вэтой грамматике
• птица летает высоко• студент учится хорошо• птица летает хорошо• птица учится высоко• студент летает хорошо• …
Отделение ПИ Ломазова И.А. 25
Обозначения
Переменнаяили
Нетерминальныйсимвол
ТерминальныйсимволПравило
вывода
<глагол> → летает<глагол> → учится
Отделение ПИ Ломазова И.А. 26
Пример формальнойграмматики
• Грамматика:
• Вывод предложения :
λ→→
SaSbS
ab
abaSbS ⇒⇒
aSbS→ λ→S
Отделение ПИ Ломазова И.А. 27
• Вывод предложения :aabb
aabbaaSbbaSbS ⇒⇒⇒
aSbS→ λ→S
Отделение ПИ Ломазова И.А. 28
• Еще выводы:
• Язык этой грамматики:
aaabbbaaaSbbbaaSbbaSbS ⇒⇒⇒⇒
aaaabbbbaaaaSbbbbaaaSbbbaaSbbaSbS
⇒⇒⇒⇒⇒
{ }0: ≥= nbaL nn
Отделение ПИ Ломазова И.А. 29
Определение формальнойграмматики
( )PSTVG ,,,=
=V
=T
=S
=P
Мн-во нетерминальных символов
Мн-во терминальных символов
Начальный символ
Мн-во правил вывода (продукций)
Отделение ПИ Ломазова И.А. 30
Пример• Грамматика (рассмотренная ранее):
λ→→
SaSbS
G
( )PSTVG ,,,=}{SV =},{ baT =
},{ λ→→= SaSbSP
Отделение ПИ Ломазова И.А. 31
Вывод:
последовательное применение правилвывода.
Обозначение:
Читается: Слово aaabbb выводимо из S
aaabbbaaaSbbbaaSbbaSbS ⇒⇒⇒⇒
aaabbbS *⇒
Отделение ПИ Ломазова И.А. 32
В общем случае, пишем:
если
полагаем
nwwww ⇒⇒⇒⇒ L321
nww *1 ⇒
ww *⇒
Отделение ПИ Ломазова И.А. 33
Примеры
λ→→
SaSbSГрамматика:
aaabbbS *⇒
aabbS *⇒
abS *⇒S *⇒λ
baaaaaSbbbbaaSbb ∗⇒
aaSbbS ∗⇒
Отделение ПИ Ломазова И.А. 34
Еще один пример
• Грамматика G:
λ→→→
AaAbAAbS
Выводы:
aabbbaaAbbbaAbbS ⇒⇒⇒abbaAbbAbS ⇒⇒⇒
bAbS ⇒⇒
Отделение ПИ Ломазова И.А. 35
aaaabbbbbaaaaAbbbbbaaaAbbbbaaAbbbaAbbAbS
⇒⇒⇒⇒⇒⇒
λ→→→
AaAbAAbS
bbaS nn∗⇒
bbbaaaaaabbbbS ∗⇒
aaaabbbbbS ∗⇒
Отделение ПИ Ломазова И.А. 36
Язык, порождаемыйграмматикой
Определение. Для грамматики
с начальным символом
– язык, порождаемый этой грамматикой.
GS
}:{)( wSwGL ∗⇒=
Отделение ПИ Ломазова И.А. 37
ПримерДля грамматики G:
Поскольку:и никакие другие слова не выводимы
λ→→→
AaAbAAbS
bbaS nn∗⇒
}0:{)( ≥= nbbaGL nn
Отделение ПИ Ломазова И.А. 38
Удобное обозначение
•λ→
→A
aAbAλ|aAbA→
thearticleaarticle
→
→ theaarticle |→
Языки и автоматы
Отделение ПИ Ломазова И.А. 40
Вычисление
Процессор
Вход
Выход
Программа
Оперативная память
Отделение ПИ Ломазова И.А. 41
Абстрактная машина
Входн. память
Выходн. память
Программа (в памяти)
Автомат
Внутр. состояние
Оперативная память
Процессор
Отделение ПИ Ломазова И.А. 42
Виды автоматов
В зависимости от оперативной памяти
• конечные автоматы
Нет оперативной памяти
• магазинные (стековые) автоматы
Стек
• машины Тьюринга
‘Неограниченная’ память
Отделение ПИ Ломазова И.А. 43
Конечный автомат
Слабые вычислительные возможности
Конечныйавтомат
Оперативная память
Входн. память
Выходн. память
Отделение ПИ Ломазова И.А. 44
Конечный автомат - распознаватель
Распознает, принадлежит ли слово языку
Конечныйавтомат
Оперативная память
Входн. память
Да или Нет
Отделение ПИ Ломазова И.А. 45
Автомат-распознавательВход
“Да”или
“Нет”
Строка
Конечныйавтомат
Выход
Отделение ПИ Ломазова И.А. 46
Граф переходов автомата
0q 1q 2q 3q 4qa b b aначальноесостояние финальное
состояние“Да”
состояниепереход
5qa a bb
ba,аbba - распознаватель
ba,
Отделение ПИ Ломазова И.А. 47
Начальная конфигурация
0q 1q 2q 3q 4qa b b a
5q
a a bb
ba,
Входная строкаa b b a
ba,
Отделение ПИ Ломазова И.А. 48
Читает вход
0q 1q 2q 3q 4qa b b a
5qa a bb
ba,
a b b a
ba,
Отделение ПИ Ломазова И.А. 49
0q 1q 2q 3q 4qa b b a
5qa a bb
ba,
a b b a
ba,
Отделение ПИ Ломазова И.А. 50
0q 1q 2q 3q 4qa b b a
5qa a bb
ba,
a b b a
ba,
Отделение ПИ Ломазова И.А. 51
0q 1q 2q 3q 4qa b b aВыход: “Да”слово допускается автоматом
5qa a bb
ba,
a b b a
ba,
Отделение ПИ Ломазова И.А. 52
Другой вход
0q 1q 2q 3q 4qa b b a
5qa a bb
ba,
a b a
ba,
Отделение ПИ Ломазова И.А. 53
0q 1q 2q 3q 4qa b b a
5qa a bb
ba,
a b a
ba,
Отделение ПИ Ломазова И.А. 54
0q 1q 2q 3q 4qa b b a
5qa a bb
ba,
a b a
ba,
Отделение ПИ Ломазова И.А. 55
0q 1q 2q 3q 4qa b b a
5qa a bb
ba,Выход:“Нет”
a b a
ba,
Слово отвергается автоматом
Отделение ПИ Ломазова И.А. 56
Строгое определение ДКА• Детерминированный конечный автомат
(ДКА) ( )FqQM ,,,, 0δΣ=
QΣ
δ
0q
F
: множество состояний
: входной алфавит
: функция переходов
: начальное состояние
: множество заключительных состояний
Отделение ПИ Ломазова И.А. 57
Входной алфавит Σ
0q 1q 2q 3q 4qa b b a
5qa a bb
ba,
{ }ba,=Σ
ba,
Отделение ПИ Ломазова И.А. 58
Множество состояний Q
0q 1q 2q 3q 4qa b b a
5qa a bb
ba,
{ }543210 ,,,,, qqqqqqQ =
ba,
Отделение ПИ Ломазова И.А. 59
Начальное состояние 0q
0q 1q 2q 3q 4qa b b a
5qa a bb
ba,
ba,
Отделение ПИ Ломазова И.А. 60
Множество заключительныхсостояний F
0q 1q 2q 3q 4qa b b a
5qa a bb
ba,{ }4qF =
ba,
Отделение ПИ Ломазова И.А. 61
Функция переходов δ
0q 1q 2q 3q 4qa b b a
5qa a bb
ba,
QQ →Σ×:δ
( )
( ) 50
10
,
,
qbq
qaq
=
=
δ
δ
ba,
Отделение ПИ Ломазова И.А. 62
Функция переходов δ
0q 1q 2q 3q 4qa b b a
5qa a bb
ba,
ba,
δ a b0q1q2q3q4q5q
1q 5q5q 2q2q 3q4q 5q
5q5q5q5q
q5
Отделение ПИ Ломазова И.А. 63
Обобщенная функция переходов *δ
QQ →Σ× *:*δ( )
( )
( ) 50
40
20
,*
,*
,*
qabbaaq
qabbaq
qabq
=
=
=
δ
δ
δ
0q 1q 2q 3q 4qa b b a
5qa a bb
ba,
ba,
Отделение ПИ Ломазова И.А. 64
Язык, распознаваемый ДКА
Пусть – ДКАОпределение:
Язык распознается автоматом , еслион состоит из всех строк, допускаемых этимавтоматом.
Другими словами:= { строки, которые переводят в
заключительное состояние}
M
( )ML M
M( )ML
Отделение ПИ Ломазова И.А. 65
Пример
0q 1q 2q 3q 4qa b b a
5qa a bb
ba,
ba,
( ) { }abbaML =
M
Отделение ПИ Ломазова И.А. 66
Другой пример
0q 1q 2q 3q 4qa b b a
5qa a bb
ba,
ba,
( ) { }abbaabML ,,λ=
M
Отделение ПИ Ломазова И.А. 67
Язык, распознаваемый ДКАДля ДКА
Язык, распознаваемый :
( )FqQM ,,,, 0δΣ=
M
( ) ( ){ }FwqwML ∈Σ∈= ,*:* 0δ
алфавитфункцияпереходов
начальноесостояние
заключ.состояния
Отделение ПИ Ломазова И.А. 68
Еще примеры
a
b ba,
ba,
0q 1q 2q
( ) { }0: ≥= nbaML n
допустить “ловушка”
Отделение ПИ Ломазова И.А. 69
( )ML = {все подстроки с префиксом }ab
допустить
a b
ba,
0q 1q 2q
ba,3q
ab
Отделение ПИ Ломазова И.А. 70
( )ML = { все строки, не содержащиеподстроку }001
λ 0 00 001
1
110
0 1,0
0
Отделение ПИ Ломазова И.А. 71
Регулярные языкиОпределение:
Язык – регулярный, если существует ДКАтакой, что
Все регулярные языки составляют классрегулярных языков
L M
( )MLL =
Отделение ПИ Ломазова И.А. 72
Пример:Язык регулярный:{ }{ }*,: bawawaL ∈=
a
b
ba,
a
b
ba
0q 2q 3q
4q