Теоретическая информатика · 2010-03-18 · •...

Post on 17-Jul-2020

4 views 0 download

Transcript of Теоретическая информатика · 2010-03-18 · •...

ГУГУ ВысшаяВысшая школашкола экономикиэкономикиКафедраКафедра управленияуправления разработкойразработкой программногопрограммного обеспеченияобеспечения

ТеоретическаяинформатикаКурс для студентов ПИ, 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δΣ=

δ

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