
- •Министерство образования и науки, молодежи и спорта Украины
- •Донбасская государственная машиностроительная академия
- •Дискретная математика
- •Методические указания
- •К выполнению лабораторных работ и самостоятельной работы
- •Краматорск 2011
- •Содержание
- •Лабораторная работа №1
- •Элементы теории множеств
- •Краткие теоретические сведения
- •Метод включений и исключений
- •Лабораторная работа №2
- •Комбинаторный анализ
- •Запрограммировать решение
- •Краткие теоретические сведения
- •Лабораторная работа №7 Самокорректирующиеся коды. Коды Хемминга
- •Задание.
- •Краткие теоретические сведения.
- •1 Построение кодов Хемминга (описание алгоритма кодирования)
- •2 Обнаружение ошибок в кодах Хемминга
- •3 Декодирование
- •Краткие теоретические сведения.
- •Классификация грамматик по Хомскому
- •Лабораторная работа №10 Построение автомата с магазинной памятью
- •Задание
- •Краткие теоретические сведения.
- •Список рекомендованной литературы
Краткие теоретические сведения.
Алфавит – это конечное множество символов.
Цепочкой символов в алфавите V называется любая конечная последовательность символов этого алфавита.
Цепочка, которая не содержит ни одного символа, называется пустой цепочкой - . Предполагается, что сама буква в алфавит V не входит; она лишь помогает обозначить пустую последовательность символов.
Если α и β — цепочки, то цепочка αβ (результат приписывания цепочки β в конец цепочки α), называется конкатенацией ( или сцеплением ) цепочек α и β. Конкатенацию можно считать двуместной операцией над цепочками: αβ = αβ.
Обращением (или реверсом) цепочки α называется цепочка, символы
которой записаны в обратном порядке. Обращение цепочки α будем обозначать αR. Для пустой цепочки: R = .
n-ой степенью цепочки α (будем обозначать αn) называется конкатена-
ц
ия
n цепочек
α:
αn
= αα …
ααα .
n
Длина цепочки – это число составляющих ее символов (или длина по-
следовательности символов). Длину цепочки α будем обозначать | α |. Длина равна 0.
Обозначим через V * множество, содержащее все цепочки в алфавите V, включая пустую цепочку .
Порождающая грамматика G – это четверка 〈 T, N, P, S 〉, где
T
– терминальный
алфавит, N
–
нетерминальный, вспомогательный алфавит;
P
–конечное
множество правил
вывода или продукций;
элемент (α,
β)
множества P
называется
правилом
вывода и
записывается в виде α
→ β;
α называется
левой частью
правила,
β -
правой
частью;
левая часть любого правила из P
обязана
содержать хотя бы один нетерминал; S
– начальный
символ (цель, аксиома) грамматики,
S
N.
Цепочка
β
( T
N
)*
непосредственно
выводима
из цепочки
α
( T N )+ в грамматике G = 〈 T, N, P, S 〉 (обозначается α→ G β), если α = ξ1γξ2, β = ξ1δξ2, где ξ1, ξ2, δ (T N )*, γ (T N )+ и правило вывода γ → δ содержится в P. Индекс G в обозначении →G обычно опускают, если понятно, о какой грамматике идет речь.
Цепочка
β
(T
N
)*
выводима
из
цепочки α
(T
N)+
в грамматике
G =
〈T,
N,
P,
S 〉
(обозначается
α
G β),
если существуют цепочки γ0,
γ1,
..., γn
(n
≥ 0),
такие, что α =
γ0
→ γ1
→ ... → γn
= β.
Последовательность γ0,
γ1,
..., γn
называется
выводом длины
n. Индекс G
в обозначении
G
опускают,
если понятно, какая грамматика
подразумевается.
Например, грамматика:
Gexample = 〈{0, 1}, {A, S}, P, S 〉, где P состоит из правил:
S → 0A1
0A → 00A1
A →
S
000A111
в
грамматике
Gexample,
т.к.
существует
вывод
S
→
0A1
→ 00A11
→ 000A111.
Длина
вывода равна 3.
Языком, порождаемым грамматикой G = 〈 T, N, P, S 〉, называется множество L(G) = {α Т* | S α}. Другими словами, L(G) – это все цепочки в алфавите T, которые выводимы из S с помощью правил P. Например, L(Gexample) = {0n1n | n > 0}.
Цепочка
α
(T
N)*,
для которой S
α, называется
сентенциальной
формой в грамматике G = 〈 T, N, P, S 〉.
Грамматики G1 и G2 называются эквивалентными, если L(G1) = L(G2).
Грамматики G1 и G2 почти эквивалентны, если L(G1) {} = L(G2) {}. Другими словами, грамматики почти эквивалентны, если языки, ими порождаемые, отличаются не более, чем на .