
- •Определение булевой функции
- •Способы задания булевых функций
- •Формулы. Реализация функций формулами
- •Принцип двойственности
- •Разложение булевых функций по переменным. Совершенные
- •Полнота и замкнутость. Примеры функционально полных систем
- •Представление булевых функций полиномом Жегалкина
- •Класс функций, сохраняющий константу 0
- •Класс функций, сохраняющий константу 1
- •Класс самодвойственных функций
- •Класс линейных функций
- •Теорема Поста о полноте
- •Понятие днф. Проблема минимизации булевых функций
- •Геометрическая интерпретация задачи минимизации булевых функций
- •Определение тупиковой днф
- •Построение тупиковых днф методом упрощения совершенной днф
- •Определение сокращенной днф и геометрический метод ее построения
- •19.Минимизация булевых функций на основе построения тупиковых д. Н. Ф.
- •20. Минимизация булевых функций методом карт Карно.
- •21.Минимизация булевых функций методом Квайна-Мак-Класски
- •24. Элементарные методы синтеза схем из функциональных элементов. Метод синтеза, основанный на совершенной д. Н. Ф.
- •25. Элементарные методы синтеза схем из функциональных элементов. Метод синтеза, основанный на более компактной реализации множества всех конъюнкций .
- •26.Элементарные методы синтеза схем из функциональных элементов. Метод синтеза, основанный на разложении функции по переменной .
- •27 Синтез схем дешифратора
- •29. Определение и способы задания конечного автомата
- •Способы задания конечного автомата
- •30. Задача анализа и синтеза автоматов
- •31.Элементарные автоматы
- •32. Задача о полноте автоматного базиса
- •Канонический метод синтеза автомата.(?)
- •34.Словарные операторы. Примеры.
- •35. Словарный оператор, реализуемый автоматом. Ограниченно-детерминированный словарный оператор.
- •36. Минимизация автомата
- •37. Понятие формального языка
- •Регулярные языки и грамматики
- •38. Автоматы Мили и Мура. Распознавание множеств автоматами. Теорема анализа для автомата.
- •Понятие алгоритма. Машины Тьюринга и операции над ними. Функции, вычислимые на машинах Тьюринга.
- •40. Формальное определение алгоритма. Представление об алгоритмически неразрешимых проблемах.
- •2. Представление об алгоритмически неразрешимых проблемах
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 сопоставляет каждому слову его первую букву: ϕ1(α1…. αn)= α1
Пример 2. Оператор ϕ2
производит в слове-аргументе замену
каждого нуля на единицу и каждой единицы
на нуль: ϕ2(α1…. αn)=
Пример 3. Оператор ϕ3 переписывает каждое слово слева направо: ϕ1(α1…. αn)= αn…α1
Пример 4. Оператор ϕ4 определяется следующим образом:
ϕ3(α1 α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) Теорема доказана.