Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Opredelenie_bulevoy_funktsii.doc
Скачиваний:
2
Добавлен:
01.03.2025
Размер:
5.01 Mб
Скачать

34.Словарные операторы. Примеры.

Рассмотрим конечный алфавит X , составленный из букв x1,…..,xn : X={ x1,…..,xn }.

Элементы декартового произведения Xk называют словами длины k в алфавите X: =xi1…xik . При k = 0 имеем пустое слово, которое обозначается . Множество всех слов в алфавите X обозначается X*: X*= X X2 … Xn.

Длину слова обозначим l( ) . Например, l( )= 0 , l( )=k є Xk.

Пусть 1 = xi1…xip и 2=xj1…xjq – произвольные слова из алфавита X . Приписывание слова 1 к слову 2 называется конкатенацией. Полученное при этом слово обозначается 1 2: 1 2= xi1…xip xj1…xjq .

Операция конкатенации обладает следующими свойствами:

а) ассоциативность: 1( 2 3)=( 1 2) 3;

б) существование нейтрального элемента: = = .

Очевидно, что эта операция некоммутативна.

Пусть X и Y – два алфавита, X*и Y*– соответствующие им множества слов.

Отображение ϕ :X*→Y*, → = ϕ ( ) называется словарным оператором.

Рассмотрим примеры словарных операторов для двоичных алфавитов X=Y={0,1}.

Пример 1. Оператор ϕ1 сопоставляет каждому слову его первую букву: ϕ11…. αn)= α1

Пример 2. Оператор ϕ2 производит в слове-аргументе замену каждого нуля на единицу и каждой единицы на нуль: ϕ21…. αn)=

Пример 3. Оператор ϕ3 переписывает каждое слово слева направо: ϕ11…. αn)= αn…α1

Пример 4. Оператор ϕ4 определяется следующим образом:

ϕ31 α2…. αn)=β1 β2… βn , где β1= α1, β2= α1 α2

35. Словарный оператор, реализуемый автоматом. Ограниченно-детерминированный словарный оператор.

По определению автомата A=(X, Y, Q, δ, λ): δ(x,q)- состояние автомата, в которое он переходит из состояния q , когда на его вход поступает символ x ; λ(x,q)- символ на выходе автомата, находящегося в состоянии q , в момент, когда на его вход поступает символ x .

Обе функции определены на множестве X x Q . Расширим область определения до X* x Q, полагая, что на вход поступает не символ x , а слово .

Формальное определение функций δ( ,q)и λ( ,q) можно дать индуктивно по длине слова.

Б а з и с и н д у к ц и и . Полагаем δ( ,q)=q, λ( ,q)= .

И н д у к т и в н ы й п е р е х о д . Предположим, что функции δ( ,q)и λ( ,q) определены для всех слов , длина которых не превосходит n-1. Рассмотрим произвольное слово x длины n с первой буквой x , то есть l( )=n-1 . Определим δ(x ,q)и λ(x ,q):

δ(x ,q)= δ( ,δ(x,q)), (1) λ(x ,q)= λ(x,q) λ( ,δ(x,q)). (2)

Из формул (1) и (2) следует, что функции δ( ,q)и λ( ,q)полностью определяются функциями δ(x,q)и λ(x,q), задающими закон функционирования автомата, и являются суперпозициями этих функций. Например, для слова =abc из (1): δ( ,q)= δ(abc,q)= δ(bc,δ(a,q))= δ(c, δ(b, δ(a,q))).

Из формул (1) и (2) ∀ 1, 2 : δ( 1 2,q)= δ( 2,δ( 1,q)), λ( 1 2,q)= λ( 1,q) λ( 2,δ( 1,q)).

Будем считать, что в момент t =1 автомат находится в состоянии q1єQ , которое будем называть начальным.

Словарным оператором, реализуемым автоматом A , называется отображение ϕA: X*→Y*, → = ϕA( ), определяемое следующим образом: ϕA( )=λ( ,q1) (3).

Поставим вопрос: каждое ли преобразование слов можно реализовать на автомате?

Формально нужно проверить выполнение условия: ∀ϕ∃A: ϕA=ϕ.

Оказывается, что для выполнения этого условия необходимо, чтобы словарный оператор ϕ обладал следующими тремя свойствами

1 ∀ єX: l(ϕ( ))=l( ) . Следует из (2) и (3).

2 ∀ 0, єX: ϕ( 0 ))= 0 , где 0= ϕ ( 0). Словарный оператор ϕ должен отображать слова с общим началом в слова с общим началом.

Словарный оператор ϕ , обладающий свойствами 1 и 2, называется детерминированным.

3. Пусть ϕ – детерминированный оператор, а 0– некоторое слово.

Остаточным оператором оператора ϕ, порожденным словом 0 , называется словарный оператор ϕ 0: X*→Y*, действующий по правилу: ϕ 0= , ϕ( 0 )= 0 (4).

Корректность этого определения вытекает из свойства 2. Правило (4) можно сформулировать так: чтобы найти образ слова при отображении ϕ 0, припишем к нему слева слово 0, найдем образ полученного слова при отображении ϕ и удалим в полученном слове l( 0) букв.

Из определения (4) получим соотношение ϕ 1 ( 2 )= ϕ 1( 2 1 2 ( ). (5)

Действительно, из равенства ϕ( 1 2 )= 1 2 по определению (4) следует ϕ 1 ( 2 )= 2 и ϕ 1 2 ( )= . При x= ϕ 1 ( 2)= 2. Отсюда получаем (5).

Рассмотрим остаточный оператор для словарного оператора, реализуемого автоматом. Для множества слов, имеющих общее начало { 0 | єX*}, имеем ϕA( 0 )=λ( 0 ,q1)= λ( 0,q1) λ( ,δ( 0,q1)). Отсюда (ϕA) 0( )=λ( ,δ( 0,q1)).

Так как δ( 0,q1)– одно из состояний автомата qi, то (ϕA) 0( )=λ( ,qi).

Таким образом, ∀(ϕA) 0∃qi: (ϕA) 0( ) – выход автомата, установленного в состояние qi, на вход которого подано слово . Так число состояний автомата конечно, то получаем свойство 3, согласно которому словарный оператор ϕ должен иметь конечное число остаточных операторов.

Словарный оператор, обладающий свойствами 1–3, называется ограниченно детерминированным.

Мы доказали следующую теорему.

Т е о р е м а . Словарный оператор, реализуемый конечным автоматом, является ограниченно-детерминированным.

Справедлива и обратная теорема.

Т е о р е м а . Для каждого ограниченно-детерминированного словарного оператора существует реализующий его конечный автомат.

Д о к а з а т е л ь с т в о . Пусть ϕ: X*→Y*, – ограниченно-детерминированный сло-

варный оператор. Обозначим через r(ϕ)число различных остаточных операторов словар-

ного оператора ϕ . Если r(ϕ)=r , то { ϕi 1, ...,r} – множество всех остаточных операторов словарного оператора ϕ (ϕ1= ϕA= ϕ). Поскольку каждый остаточный оператор порождается некоторым словом

0єX* , разобьем множество всех слов на r классов: X*= Ci (6), где Сi={ |ϕ i}. Обозначим класс, в который входит слово через C( ) . Имеем C( 1)=C( 2) ⇔ ϕ 1= ϕ 2 .

Разбиение (6) обладает следующим свойством ∀ xєX | C( 1)=C( 2) ⇒ C( 1x)=C( 2x) (7).

Построим автомат A0=(X0, Y0,Q0, δ0, λ0 ), реализующий оператор ϕ.

Так ϕ: X*→Y*,то X0=X*, Y0=Y*. В качестве состояний автомата возьмем классы разбиения (6):

Q0={ C( )| 0єX*}={C1,..., Cr}. (8)

Функция переходов: δ0(x, C( ))=C( x). (9)

Соотношение (9) можно по индукции распространить на слова: δ0( 1, C( ))=C( 1). (10)

Функция выходов: λ0(x, C( ))=ϕ (x) (11)

Покажем индукцией по длине слова, что ϕA0= ϕ, то есть ∀ єX*| ϕA0( )=ϕ(x) (12)

l( )=1⇒ ϕA0(x)=λ (x, C1)= ϕ (x)= ϕ(x)

Пусть (12) справедливо для всех слов длины n -1. Рассмотрим произвольное слово

длины n с последней буквой x : ϕA0( x) = λ0 ( x, C1) = λ0 ( , C1) λ0 (x, δ( , C1))

По предположению индукции λ0 ( , C1)= ϕA0( )=ϕ( ).На основании (10) δ( , C1)= C( ). Тогда ϕA0( x) = ϕ( )λ0 (x, C( )) = ϕ( )ϕ (x)= ϕ( x) Теорема доказана.

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