Практическое занятие 12 - Белорусско

advertisement
ГОСУДАРСТВЕННОЕ УЧРЕЖДЕНИЕ
ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
«БЕЛОРУССКО-РОССИЙСКИЙ УНИВЕРСИТЕТ»
Кафедра «Автоматизированные системы управления»
ДИСКРЕТНАЯ МАТЕМАТИКА
Методические указания к лабораторным
занятиям для студентов специальности
23 01 02 «Автоматизированные системы
обработки информации и управления»
Могилев 2012
УДК 519.6
ББК 22.176
Д 48
Рекомендовано к опубликованию
учебно-методическим управлением
ГУ ВПО «Белорусско-Российский университет»
Одобрено кафедрой «Автоматизированные системы управления»
«15» мая 2012 г., протокол № 9
Составитель канд. техн. наук, доц. А. И. Якимов
Рецензент канд. физ.-мат. наук, доц. Л. В. Плетнев
Изложены основные теоретические сведения по минимизации логических функций, синтезу и анализу логических схем, способам формализации конечного автомата. Представлены практические задачи для самостоятельной работы.
Учебное издание
ДИСКРЕТНАЯ МАТЕМАТИКА
Ответственный за выпуск
С. К. Крутолевич
Технический редактор
А. Т. Червинская
Компьютерная верстка
И. А. Алексеюс
Подписано в печать
. Формат 60х84/16. Бумага офсетная. Гарнитура Таймс.
Печать трафаретная. Усл.-печ. л.
. Уч.-изд. л.
. Тираж 31 экз. Заказ №
Издатель и полиграфическое исполнение
Государственное учреждение высшего профессионального образования
«Белорусско-Российский университет»
ЛИ № 02330/375 от 29.06.2004 г.
212000, г. Могилев, пр. Мира, 43
© ГУ ВПО «Белорусско-Российский
университет», 2012
1 Минимизация функций алгебры логики методом неопределенных
коэффициентов, диаграмм Вейча (карт Карно) (лаб. раб. 09)
1.1 Задача минимизации булевых функций
Задачу поиска наиболее простой записи булевой функции называют
задачей минимизации. Решение такой задачи основывается на понятии несущественности переменных. Переменная называется несущественной на
паре наборов, если при изменении ее значения на противоположное булева
функция сохраняет свое значение. Две конъюнкции, содержащие несущественную переменную, заменяются одной, в которой несущественная переменная отсутствует.
ДНФ булевой функции f(x1,…, xn) называют кратчайшей, если она
содержит наименьшее число элементарных конъюнкций по сравнению с
другими ДНФ этой же функции.
ДНФ булевой функции f(x1,…, xn) называют минимальной, если она
имеет наименьшее число аргументов среди всех эквивалентных ей ДНФ.
Импликантой функции f(x1,…, xn) называется такая элементарная
конъюнкция К над множеством переменных {x1,…, xn}, что
К  f(x1,…, xn) = f(x1,…, xn). Импликанта называется простой, если при отбрасывании любого аргумента из К получается элементарная конъюнкция,
не являющаяся импликантой функции f. Дизъюнкция всех простых импликант функции f называется сокращенной ДНФ функции f.
ДНФ булевой функции f(x1,…, xn) называют тупиковой, если отбрасывание любого слагаемого или аргумента приводит к неэквивалентной ДНФ.
Тупиковая ДНФ функции f(x1,…, xn) получается из сокращенной
ДНФ этой функции путем отбрасывания некоторых элементарных конъюнкций. Среди тупиковых ДНФ ищется минимальная и кратчайшая ДНФ
функции.
1.2 Метод неопределенных коэффициентов
Данный метод может быть применен для минимизации функций алгебры логики от любого числа аргументов, однако для простоты изложения и большей наглядности его рассмотрение будем производить на примере минимизации функции трех аргументов.
Представим функцию f(x1, x2, x3) в виде следующей ДНФ:
00
f ( x1, x2 , x3 )  k10 x1  k11x1  k20 x2  k21 x2  k30 x3  k31x3  k12
x1x2 
01
10
11
00
01
10
11
 k12 x1x2  k12 x1x2  k12 x1x2  k13 x1x3  k13 x1x3  k13 x1x3  k13
x1x3 
(1)
00
01
10
11
000
001
 k23 x2 x3  k23 x2 x3  k23 x2 x3  k23 x2 x3  k123 x1x2 x3  k123 x1x2 x3 
010
011
100
101
110
111
 k123
x1x2 x3  k123
x1x2 x3  k123
x1x2 x3  k123
x1x2 x3  k123
x1x2 x3  k123
x1x2 x3.
Здесь представлены все возможные конъюнктивные члены, которые
могут входить в дизъюнктивную форму представления f(x1, x2, x3). Коэффициенты k с различными индексами являются неопределенными и подбираются так, чтобы получающаяся после этого дизъюнктивная форма была минимальной. Если теперь задавать все возможные наборы аргументов
(x1, x2, x3) и приравнивать полученное после этого выражение (отбрасывая
нулевые конъюнкции) значению функции на выбранных наборах, то получим систему из 23 уравнений для определения коэффициентов k:
00
00
00
000
k10  k20  k30  k12
 k13
 k23
 k123

 0
0
1
00
01
01
001
 k1  k2  k3  k12  k13  k23  k123 
01
00
10
010
 k10  k21  k30  k12
 k13
 k23
 k123

 k 0  k 1  k 1  k 01  k 01  k 11  k 011 
1
2
3
12
13
23
123
 1
0
0
10
10
00
100
 k1  k2  k3  k12  k13  k23  k123 
10
11
01
101
 k11  k20  k31  k12
 k13
 k23
 k123

 1 1
0
10
10
10
110
 k1  k2  k3  k12  k13  k23  k123 
11
11
11
111
 k11  k21  k31  k12
 k13
 k23
 k123

f (0, 0, 0);
f (0, 0, 1);
f (0, 1, 0);
f (0, 1, 1);
f (1, 0, 0);
f (1, 0, 1);
f (1, 1, 0);
f (1, 1, 1).
(2)
Пусть таблично задана некоторая функция f(x1, x2, x3). Задание некоторой конкретной функции определяет значения правых частей системы (2): f(x1, x2, x3) = 0  1. Если функция f(x1, x2, x3) на соответствующем
наборе переменных равна нулю, то все коэффициенты, входящие в уравнение, будут равны нулю. Это вытекает из того, что дизъюнкция равна нулю
только тогда, когда все члены, входящие в нее, равны нулю.
Рассмотрев все наборы, на которых данная функция обращается в
нуль, получим все нулевые коэффициенты k. В уравнениях, в которых
справа стоят единицы, вычеркнем все нулевые коэффициенты. Из оставшихся коэффициентов приравняем единице коэффициент, определяющий
конъюнкцию наименьшего возможного ранга, а остальные коэффициенты
в левой части данного уравнения примем равными нулю (это можно сделать, т. к. дизъюнкция обращается в единицу, если хотя бы один член ее
равен единице). Единичные коэффициенты k определят из (1) соответствующую ДНФ.
Пример
f(x1, x2 , x3)  x1x2 x3  x1x2 x3  x1x2 x3  x1x2 x3  x1x2 x3 .
Составим систему (2):
00
00
00
000
k10  k20  k30  k12
 k13
 k23
 k123
 1;
 0
0
1
00
01
01
001
 k1  k2  k3  k12  k13  k23  k123  0;
01
00
10
010
 k10  k21  k30  k12
 k13
 k23
 k123
 0;
 0
1
1
01
01
11
011
 k1  k2  k3  k12  k13  k23  k123  0;
 1
0
0
10
10
00
100
 k1  k2  k3  k12  k13  k23  k123  1;
 k 1  k 0  k 1  k 10  k 11  k 01  k 101  1;
 11 21 30 1210 1310 2310 123
110
 k1  k2  k3  k12  k13  k23  k123  1;
 k 1  k 1  k 1  k 11  k 11  k 11  k 111  1.
2
3
12
13
23
123
 1
Из второго, третьего и четвертого уравнений в силу свойств дизъюнкции вытекает, что
k10  k20  k21  k30  k31  k1200  k1201  k1300 
10
11
001
010
011
 k1301  k2301  k23
 k23
 k123
 k123
 k123
 0.
После этого данная система имеет вид:
00
000

k23
 k123
 1
10
10
00
100
k1  k12  k13  k23  k123

10
11
101
k11  k12
 k13
 k123


11
10
110
k11  k12
 k13
 k123

11
11
111

k11  k12
 k13
 k123
 1;
 1;
 1;
 1;
 1.
После этого получаем систему
00

k23
 1;
 1
00
k1  k23  1;

k11  1;


k11  1;


k11  1.
Отсюда находим минимальную ДНФ для данной функции:
f ( x1, x2 , x3 )  x1  x2 x3.
Описанный метод эффективен лишь для минимизации функций,
число аргументов в которых не больше 5–6. Это связано с тем, что число
уравнений равно 2n .
1.3 Правила минимизации с использованием диаграмм Вейча
(карт Карно)
В диаграммах Вейча (картах Карно) таблица истинности булевой
функции представляется в виде координатной карты состояний, которая
содержит 2n клеток (по числу входных наборов булевой функции n
переменных). Переменные функции разбиваются на две группы так, что
одна группа определяет координаты столбца карты, а другая – координаты
строки.
При такoм способе построения каждая клетка определяется
значениями переменных, соответствующих определенному двоичному
набору. Внутри каждой клетки карты Карно ставится значение функции на
данном наборе. Переменные в строках и столбцах располагаются так,
чтобы соседние клетки карты Карно различались только в одном разряде
переменных, т. е. были соседними. Поэтому значения переменных в
столбцах и в строках карты образуют соседний код Грея. Такой способ
представления очень удобен для наглядности при минимизации булевых
функций.
При минимизации булевых функций с помощью диаграмм Вейча
(карт Карно) используют следующие правила.
1 В карте Карно группы единиц (для получения ДНФ) и группы нулей (для получения КНФ) необходимо обвести четырехугольными контурами. Внутри контура должны находиться только одноименные значения
функции. Этот процесс соответствует операции склеивания или нахождения импликант данной функции.
2 Количество клеток внутри контура должно быть целой степенью
двойки (1, 2, 4, 8, 16...).
3 При проведении контуров крайние строки карты (верхние и нижние, левые и правые), а также угловые клетки считаются соседними (для
карт до 4-х переменных).
4 Каждый контур должен включать максимально возможное количество клеток. В этом случае он будет соответствовать простой импликанте.
5 Все единицы (нули) в карте (даже одиночные) должны быть охвачены контурами. Любая единица (нуль) может входить в контуры произвольное количество раз.
6 Множество контуров, покрывающих все 1 (0) функции, образуют
тупиковую ДНФ (КНФ). Целью минимизации является нахождение минимальной из множества тупиковых форм.
7 В элементарной конъюнкции (дизъюнкции), которая соответствует
одному контуру, остаются только те переменные, значение которых не изменяется внутри обведенного контура. Переменные булевой функции входят в элементарную конъюнкцию (для значений функции 1) без инверсии,
если их значение на соответствующих координатах равно 1, и с инверсией – если 0. Для значений булевой функции, равных 0, записываются элементарные дизъюнкции, куда переменные входят без инверсии, если их
значение на соответствующих координатах равно 0, и с инверсией – если 1.
Пример – Пусть функция f(x, y, z) = 1 на наборах 0, 1, 2, 3, 6, 7, 8, 15.
Диаграмма Вейча для заданной функции представлена на рисунке 1.
Рисунок 1 – Минимальная ДНФ на диаграмме Вейча
Единицы функции, стоящие в соседних клетках, отличаются значением только одной переменной, следовательно, они склеиваются по этой
переменной и образуют импликанту. В этом случае говорят, что импликанта покрывает соответствующие единицы булевой функции. Например,
две единицы на наборах 7 и 15 покрываются импликантой yzt. Четыре единицы на наборах 2, 3, 7, 6 – импликантой x z . При этом соседними считаются также клетки, стоящие вдоль левого и правого края диаграммы (отличаются значением у) и вдоль верхнего и нижнего края (отличаются значением x).
При минимизации булевой функции на диаграмме Вейча сначала
находят покрытия, содержащие максимальное число единиц (8, 4, 2), а затем покрытия, накрывающие оставшиеся единицы таким образом, чтобы
они также были максимальны по величине и при удалении этого покрытия
хотя бы одна единица функции осталась непокрытой. При этом некоторые
единицы могут быть покрыты неоднократно.
Для функции, представленной на рисунке 1, минимальная ДНФ
f ( x, y , z )  x y  x z  y zt  y z t .
Минимальная КНФ строится двойственно по диаграмме Вейча, заполненной нулями в пустых клетках. Для данной функции минимальная КНФ
f ( x, y, z )  ( y  z )( x  z  t )( x  y  t ) .
1.4 Минимизация частично определенных булевых функций
Диаграммы Вейча могут использоваться для минимизации не только
так называемых полностью определенных логических функций (когда
функция в таблице истинности принимает только два значения – 0 или 1),
но и для случая частичных (не полностью определенных) функций. При
построении реальных цифровых устройств контроля и управления комбинационные схемы описываются, как правило, не полностью определенными булевыми функциями. В таблице истинности и, следовательно, в диаграммах Вейча такие функции кроме 0 и 1 будут содержать и «–»; это
означает, что такой набор никогда на вход устройства не поступает. Следовательно, на месте «–» может быть произвольно поставлена 1 либо 0.
Этот процесс называется доопределением булевой функции. Доопределение булевой функции желательно выполнять так, чтобы получить возможно более простое выражение. В этом случае реализованная комбинационная схема также оказывается более простой.
1.5 Практические задания
Найти минимальные ДНФ и КНФ булевых функций:
1) f ( x, y, z, t )  1 | 0, 3, 4, 6, 8, 9, 10, 11, 13, 15 ;
2) f ( x, y, z, t )  1 | 1, 2, 4, 6, 7, 9, 10, 13, 14 ;
3) f ( x, y, z, t )  1 | 1, 3, 5, 7, 8, 10, 12, 14, 15 ;
4) f ( x, y, z, t )  1 | 5, 7, 8, 9, 10, 11, 12, 14, 15 ;
5) f ( x, y, z, t )  1 | 0, 3, 4, 6, 8, 9, 10, 11, 13, 15 ;
6) f ( x, y, z, t )  1 | 0, 1, 2, 3, 5, 6, 9, 10, 12, 14, 15 ;
7) f ( x, y, z, t )  1 | 0, 3, 5, 7, 8, 9, 11, 12, 14, 15 ;
8)
9)
10)
11)
12)
13)
14)
15)
16)
17)
18)
19)
20)
21)
22)
23)
24)
25)
f ( x, y, z, t )  1 | 1, 3, 6, 7, 8, 9, 10, 13, 14, 15 ;
f ( x, y, z, t )  1 | 2, 4, 5, 7, 8, 9, 10, 11, 12, 13, 15 ;
f ( x, y, z, t )  1 | 1, 4, 5, 7, 9, 10, 12, 14 ;
f ( x, y, z, t )  1 | 2, 4, 6, 7, 10, 12, 14, 15 ;
f ( x, y, z, t )  1 | 2, 4, 6, 9, 11, 13, 15 ;
f ( x, y, z, t )  1 | 0, 3, 5, 7, 8, 9, 10, 11, 12, 14 ;
f ( x, y, z, t )  1 | 0, 1, 2, 3, 8, 9, 10, 11;
f ( x, y, z, t )  1 | 1, 3, 6, 7, 8, 9, 10, 15 ;
f ( x, y, z, t )  1 | 0, 1, 4, 5, 8, 9, 11, 12, 15 ;
f ( x, y, z, t )  1 | 2, 3, 10, 11, 14, 15 ;
f ( x, y, z, t )  1 | 0, 1, 2, 3, 6, 7, 8, 9, 13 ;
f ( x, y, z, t )  1 | 2, 3, 4, 5, 8, 9, 11, 15 ;
f ( x, y, z, t )  1 | 1, 3, 5, 6, 7, 9, 10, 11, 12, 14 ;
f ( x, y, z, t )  1 | 0, 3, 7, 8, 9, 12, 13 ;
f ( x, y, z, t )  1 | 0, 2, 4, 6, 8, 10, 12, 14 ;
f ( x, y, z, t )  1 | 1, 3, 4, 5, 9, 11, 12 ;
f ( x, y, z, t )  1 | 3, 4, 5, 6, 7, 11, 14, 15 ;
f ( x, y, z, t )  1 | 4, 6, 8, 9, 10, 12, 14 .
2 Синтез и анализ логических схем (лаб. раб. 10)
2.1 Задача синтеза логической схемы
По заданной функции f требуется построить схему, реализующую
данную функцию. Задача синтеза решается неоднозначно. Можно поставить в соответствие заданной функции f целое множество схем. Для построения логической схемы необходимо элементы, предназначенные для
выполнения логических операций, указанных в логической функции, располагать в порядке, указанном в булевом выражении.
Пример – Построить логическую схему устройства, реализующего
логическую функцию f  x1x2 x3  x1x2 x3  x1x2 x3  x1x2 x3 (рисунок 2).
2.2 Синтез логических устройств в заданном базисе
С целью уменьшения номенклатуры используемых микросхем часто
пользуются функционально полной системой в составе двух логических
элементов, выполняющих операции И-НЕ, ИЛИ-НЕ. Любую логическую
функцию можно записать в заданном базисе логических элементов. Если
задан базис И-НЕ, то путем двойного инвертирования исходного выраже-
ния или его части и применения теорем де Моргана логическая функция
приводится к виду, содержащему только операции логического умножения
и инвертирования. Если же задан базис ИЛИ-НЕ, исходную логическую
функцию теми же приемами приводят к виду, содержащему только операции логического сложения и инверсии. Далее логическое выражение записывается через условные обозначения выбранных операций.
Рисунок 2 – Пример логической схемы устройства
Пример – Заданную функцию f перевести в базисы И-НЕ и ИЛИ-НЕ.
Исходная ДНФ в базисе И-НЕ имеет вид:
f  x2 x4  x1x3 x4  x1x2 x3  x2 x4  x1x3 x4  x1x2 x3 
 ( x2 x4 )( x1x3 x4 )( x1x2 x3 )  ( x2 | x4 ) | ( x1 | x3 | x4 ) | ( x1 | x2 | x3 ) .
Аналогично КНФ в базисе ИЛИ-НЕ имеет вид:
f  ( x1  x4 )( x1  x2  x3 )( x2  x3  x4 ) 
 ( x1  x4 )  ( x1  x2  x3 )  ( x2  x3  x4 ) 
 ( x1  x4 )  ( x1  x2  x3 )  ( x2  x3  x4 ) .
Пример – Пусть логическая функция задана выражением
f  x1x4  ( x1  x3  x4 )( x2  x3 ) .
Привести логическую функцию в базис И-НЕ, ИЛИ-НЕ:
а) приводим функцию к базису И-НЕ:
f  f1  f 2 f3  f1  f 2 f3  f1  ( f 2 | f3 )  f1  ( f 2 | f3 )  f1  ( f 2 | f3 )  f 1 | ( f 2 | f3 );
f1  x1x4  x1 | x4 ;
f 2  x1  x3  x4  x1x3 x4  x1x3 x4  x1 | x3 | x4 ;
f3  x2  x3  x2  x3  x2 x3  x2 | x3 ;
f  ( x1 | x4 ) | (( x1 | x3 | x4 ) | ( x2 | x3 )) ;
б) приводим функцию к базису ИЛИ-НЕ:
f  f1  f 2 f3  f1  f 2 f3  f1  ( f 2  f3 )  f1  ( f 2  f3 )  f1  ( f 2  f3 ) ;
f1  x1x4  x1x4  x1  x4  x1  x4 ;
f 2  x1  x3  x4  x1  x3  x4  x1  x3  x4 ;
f3  x2  x3  x2  x3  x2  x3  f3  x 2  x3 ;
f  (x1  x 4 )  ((x1  x 3  x 4 )  (x 2  x 3 )) .
2.3 Задача анализа логической схемы
По заданной схеме требуется определить функцию f, реализуемую
данной схемой.
При решении задачи анализа следует придерживаться следующей
последовательности действий:
1) заданная схема разбивается по ярусам;
2) начиная с последнего, выходы каждого элемента обозначаются
проиндексированными функциями в зависимости от яруса, к которому относится элемент;
3) записываются выходные функции каждого элемента в виде формул в соответствии с введенными обозначениями;
4) производится подстановка одних выходных функций через другие,
используя входные переменные;
5) записывается получившаяся булева функция через входные переменные.
Пример – По заданной логической схеме (рисунок 3) составить булеву функцию.
Рисунок 3 – Пример логической схемы устройства
Согласно приведенной выше последовательности действий произведем разбиение схемы на ярусы. Пронумеровав получившиеся ярусы, введем обозначения для каждой выходной функции (см. рисунок 3). Запишем
все функции, начиная с 1-го яруса:
1) f1  f 21  f 22  x4 ;
2) a) f 21  f 31  x2 ; b) f 22  f 32  x1 ;
3) a) f 31  x1 ; b) f 32  x2  x3 .
Теперь запишем все функции, подставляя входные переменные
x1, ..., x4 :
a) f 21  x1  x2 ;
b) f 22  x1  ( x2  x3 ) .
В итоге получим выходную функцию
f  f1  x1  ( x1  x2 )  ( x2  x3 )  x4 .
2.4 Практические задания
1 Дешифратор управляет семисегментным (сегменты a, b, c, d, e,
f, g) индикатором, отображающим символы от 0 до 9, a, b, c, d, E, F
(рисунки 4–5).
a
f
g
e
b
c
d
Рисунок 4 – Стандартное обозначение сегментов индикатора
Рисунок 5 – Символы, отображаемые индикатором
На вход дешифратора поступает четырехразрядный двоичный код.
Необходимо составить таблицу истинности для логических функций
управления сегментами индикатора. Для заданного варианта (таблица 1)
синтезировать логическую схему управления.
Таблица 1 – Варианты синтеза логической схемы управления
Базис
И-НЕ
ИЛИ-НЕ
a
b
c
Сегмент индикатора
d
e
f
g
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2 Синтезировать в базисе И-НЕ (ИЛИ-НЕ) схему для поразрядного
сравнения двух двоичных четырехразрядных чисел и выдачи результатов
этого сравнения. Для каждой пары сравниваемых разрядов a[n] и b[n] вычисляется сумма по модулю 2 (таблица 2).
Если значения соответствующих разрядов не совпадают, то на выходе устройства появляется высокий потенциал.
Таблица 2 – Поразрядное вычисление суммы по модулю 2
a[n]
b[n]
a[n]  b[n]
a[n]
b[n]
a[n]  b[n]
0
0
0
1
0
1
1
1
0
1
1
0
3 Синтезировать в базисе И-НЕ (ИЛИ-НЕ) дешифратор, представляющий собой устройство, в котором при любой комбинации входных двоичных трехразрядных чисел появляется сигнал единица только на одном из
его восьми выходов.
4 Синтезировать преобразователь двоичного четырехразрядного кода
в код Грея. При этом коде в процессе счета с приходом следующего импульса меняется сигнал только на одном выходе (таблица 3).
Таблица 3 – Преобразование двоичного кода в код Грея
C(22)
Двоичный код (входы)
B(21)
A(20)
P1
Код Грея (выходы)
P2
P3
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
0
0
0
1
1
1
1
0
0
1
1
1
1
0
0
0
1
1
0
0
1
1
0
5 Синтезировать в базисе И-НЕ (ИЛИ-НЕ) сумматор для выполнения
операции сложения четырехразрядных чисел в двоичном коде. Сложение
двух двоичных чисел производится в соответствии с таблицей истинности
(таблица 4), где Ai и Bi – значения складываемых двоичных чисел в данном
разряде; Si – результат суммирования в данном разряде; Pi, Pi–1 – значения
сигналов переноса соответственно в данном и предыдущем разряде.
Таблица 4 – Выполнение операции сложения двоичных чисел
Ai
Вход
Bi
Pi–1
Pi
Выход
Si
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
0
0
1
0
1
1
1
0
1
1
0
1
0
0
1
6 Синтезировать в базисе И-НЕ (ИЛИ-НЕ) преобразователь двухразрядного двоичного кода в трехразрядный (таблица 5).
Таблица 5 – Преобразование двухразрядного кода в трехразрядный
a1
Вход
a0
b2
Выход
b1
b0
0
0
1
1
0
1
0
1
0
1
0
1
0
0
0
1
0
1
1
0
7 Реализовать функции И, ИЛИ и НЕ на логических элементах в базисе И-НЕ (ИЛИ-НЕ).
8 Синтезировать в базисе И-НЕ (ИЛИ-НЕ) устройства, заданные логической функцией:
1) f(x1, x2 , x3 , x4)  x1x2 x3  x1x3 x4  ( x1x2 )( x3 x4 ) ;
2) f(x1, x2 , x3 , x4)  ( x1  x2 ) x3 x4 ;
3) f(x1, x2 , x3 , x4)  ( x1x2 )  x3  x4 ;
4) f(x1, x2 , x3 , x4)  x1  x2  x3  x4 ;
5) f(x1, x2 , x3 , x4)  x1x2 x3 x4 ;
6) f(x1, x2 , x3 , x4)  x1  x2  x3  x4  x1x2 ;
7) f(x1, x2 , x3 , x4)  ( x1  x2 )( x3  x4 ) ;
8) f(x1, x2 , x3 , x4)  x1x2 x3  x1x2 x4  ( x1  x2 )( x3  x4 ) ;
9) f(x1, x2 , x3 , x4)  x1x2 x3  x1x2 x3  x4 ;
10) f(x1, x2 , x3 , x4)  ( x1  x2)x3  x1x2 x3 x4 ;
11) f(x1, x2 , x3 , x4)  ( x1  x2  x3 )( x1  x2 x3 x4 ) ;
12) f(x1, x2 , x3 , x4)  x1x2 x3 x4 ;
13) f(x1, x2 , x3 , x4)  x1  x2  x3 x4  x1  x2  x3 x4  x1x3 ;
14) f(x1, x2 , x3 , x4)  x1  ( x2 x3 ( x1  x4 ) ;
15) f(x1, x2 , x3 , x4)  x1(x2  x3 )  x3 x4 ;
16) f(x1, x2 , x3 , x4)  x1x3 x4  x1x2  x2 x4 ;
17) f ( x1, x2 , x3 , x4 )  x1x2  x3 x4  x1x3 x4 ;
18)
19)
20)
21)
22)
23)
24)
25)
f ( x1, x2 , x3 , x4 )  x1x2  x3 x4  x2 x3  x1x2 ;
f ( x1, x2 , x3 , x4 )  x3 x4  x1x2 x4 ;
f ( x1, x2 , x3 , x4 )  x1x2  x3  x1  x2  x4 ;
f ( x1, x2 , x3 , x4 )  x1  x1x2  x2 x3  x1x4 ;
f ( x1, x2 , x3 , x4 )  x1( x2 ( x3  x1x4 )  x1x3 ) ;
f ( x1, x2 , x3 , x4 )  x1x2 ( x3  x4 )  x2 x4 ;
f ( x1, x2 , x3 , x4 )  ( x1  x3 ) x2 x4  ( x2  x4 ) x1x3 ;
f ( x1, x2 , x3 , x4 )  x1  x2 x3 x4  x2  x3 ( x2  x1) .
3 Способы задания абстрактного конечного автомата (лаб. раб. 11)
3.1 Понятие конечного автомата
Теория автоматов представляет собой раздел дискретной математики, изучающий модели преобразователей дискретной информации. Такими
преобразователями являются как реальные устройства (компьютеры, живые организмы), так и воображаемые устройства (аксиоматические теории,
математические машины). По сути, конечный автомат можно охарактеризовать как устройство М, имеющее входной и выходной каналы, при этом
в каждый из дискретных моментов времени, называемых тактовыми моментами, оно находится в одном из конечных состояний.
По входному каналу в каждый момент времени t = 1, 2,... в устройство М поступают входные сигналы (из некоторого конечного множества
сигналов). Задается закон изменения состояния к следующему моменту
времени в зависимости от входного сигнала и состояния устройства в текущий момент времени. Выходной сигнал зависит от состояния и входного
сигнала в текущий момент времени (рисунок 6).
Рисунок 6 – Абстрактный конечный автомат
Конечный автомат является математической моделью реальных дискретных устройств по переработке информации.
Конечным автоматом называется структура A   X; Q; Y; ;  , где X,
Q, Y – произвольные непустые конечные множества.
Множество X  {a1, ..., am} называется входным алфавитом, а его
элементы – входными символами, их последовательности – входными словами. Множество Q  {q1, ..., qn} называется множеством состояний, а его
элементы – состояниями. Множество Y  {b1, ..., bp} называется выходным
алфавитом, а его элементы – выходными символами, их последовательности – выходными словами.
Функция  : X  Q  Q называется функцией переходов. Функция  : X  Q  Y называется функцией выходов, т. е.  (a, q)  Q;
 (a , q )  Y | a  X ; q  Q .
Если в момент времени t = 1, 2,... на вход автомата А = (X; Q;Y; δ; λ)
последовательно подаются входные символы x(t)  X и при этом автомат
находится в состоянии q(t)  Q , то под воздействием символа x(t) автомат
перейдет в новое состояние q(t  1)  Q и выдаст выходной сигнал y(t).
Величины x(t), y(t), q(t), q(t+1) связаны между собой следующими
уравнениями:
q(t  1)  ( x(t ), q(t));
t  1, 2, ..., n, ...

 y(t)  ( x(t ), q(t)),
Эти уравнения называются каноническими уравнениями автомата А.
С конечным автоматом ассоциируется воображаемое устройство, которое работает следующим образом. Оно может находиться в состоянии из
множества Q, воспринимать символы из множества X и выдавать символы
из множества Y.
3.2 Способы задания конечного автомата
Существует несколько эквивалентных способов задания абстрактных
автоматов, среди которых можно назвать следующие: табличный, графический, матричный и функциональный.
Табличное задание автомата. Из определения автомата следует,
что его всегда можно задать таблицей с двумя входами, содержащей m
строк и n столбцов, где на пересечении столбца q и строки a стоят значения функций (a, q) , (a, q) (таблица 6).
Таблица 6 – Табличное задание автомата
a
a1
…
ai
…
am
q1
…
(a1, q1) ; (a1, q1)
…
(ai , q1) ; (ai , q1)
…
(am, q1) ; (am, q1)
…
…
…
…
…
q
qj
(a1, q j ) ;  ( a1, q j )
…
(ai , q j ) ;  ( ai , q j )
…
( a m , q j ) ;  ( am , q j )
…
qn
…
…
…
…
…
(a1, qn) ; (a1, qn )
…
(ai , qn) ; (ai , qn )
…
(am, qn ) ; (am, qn )
Задание автомата диаграммой Мура. Другой способ задания конечного автомата – графический. При этом способе состояния автомата
изображают кружками, в которые вписывают символы состояний qj
(j = 1, ..., n). Из каждого кружка проводится т стрелок (ориентированных
ребер), взаимно-однозначно соответствующих символам входного алфавита X  {a1, ..., am} . Стрелке, соответствующей символу ai  X и выходящей из кружка q j  Q , приписывается пара ( ai , (ai , q j ) ), причем эта
стрелка ведет в кружок, соответствующий (ai, q j ) .
Полученный рисунок называется графом автомата или диаграммой
Мура. Для не очень сложных автоматов этот способ более нагляден, чем
табличный.
Матричный способ задания автомата. Кроме рассмотренных выше
способов, произвольный абстрактный автомат может быть описан матрицей соединений. Такое описание – один из способов матричного задания
абстрактных автоматов. Матрица соединений автомата является квадратной и содержит столько столбцов (строк), сколько различных состояний
имеет рассматриваемый автомат. Каждый столбец (строка) матрицы соединений помечается символом состояния автомата. Если автомат инициальный, то первый слева столбец и первая сверху строка матрицы помечаются символом начального состояния автомата. В клетке матрицы соединений, находящейся на пересечении столбца j и строки i, ставится входной
символ a (или дизъюнкция входных символов), под воздействием которого
осуществляется переход из состояния i в состояние j. Рядом с входным
символом в скобках ставится выходной символ, который выдает автомат,
выполняя переход из i-го состояния в j-ое состояние.
Задание конечного автомата системой булевых функций. Следующий способ задания конечного автомата А = (X; Q; Y; δ; λ), заданного
таблицей или диаграммой Мура, состоит в определении системы булевых
функций.
Изложим алгоритм этого способа задания.
Шаг 1. Находим числа k, r, s, удовлетворяющие условиям
2k 1  m  2k , 2r 1  n  2r , 2 s 1  p  2 s ,
где m | X |, n | Q | , p | Y | .
Очевидно, что k, r, s соответственно равны числу разрядов в двоичном представлении чисел m, n, p. Например, если m = 5, n = 17, p = 3, то
k = 3, r = 5, s = 2.
Шаг 2. Кодирование состояний, входных и выходных символов
автомата.
Каждому q j  Q взаимно-однозначно ставим в соответствие двоичную последовательность длины r – двоичный код α(q) = z1z2…zr. Аналогично каждому ai  X и каждому bk  Y ставим взаимно-однозначно в соответствие двоичные последовательности β(a) = x1x2…xk, γ(b) = y1y2…ys.
Отметим, что кодирование состояний, входных и выходных символов можно провести многими способами. При этом некоторые последовательности (коды) могут оказаться неиспользованными.
Шаг 3. Составляем таблицу 7.
Таблица 7 – Кодирование входных, выходных символов и состояний
Код входного
символа β(a)
Код текущего
состояния α(q)
Код следующего
состояния α'(q)
Код выходного
символа γ(b)
x1
0
x2
0
…
…
xk
0
z1
0
z2
0
…
…
zr
0
δ1
δ2
…
δr
λ1
λ2
…
λs
β1
β2
…
βk
α1
α2
…
αr
α'1
α'2
…
α'r
γ1
γ2
…
γs
1
1
…
1
1
1
…
1
Эта таблица содержит k + r + r + s столбцов и 2k+r строк. В первых
k + r столбцах выписаны все наборы длины k + r. Каждый такой набор соответствует паре (β, α), где β – код входного символа; α – возможный код
некоторого состояния.
Шаг 4. Заполнение последних столбцов в таблице (таблица 7 на шаге 3).
Для каждой пары (ai, qj), где ai  X ; q j  Q , находим код β(a) и α(q).
По таблице автомата (или диаграмме Мура) определяем, что
δ(a, q) = q', λ(a, q) = b.
Затем находим код α(q') = α'1 α'2… α'r и код γ(b) = γ1γ2...γs. В строку
таблицы, соответствующую набору
β1, β2, …, βk, α1, α2, …, αr,
дописываем набор
α'1, α'2, …, α'r, γ1, γ2, ..., γs.
Шаг 5. Определение системы булевых функций.
После выполнения предыдущего шага может оказаться, что не все
строки в таблице заполнены. Это произойдет в том случае, если хотя бы
одно из чисел m, n не является степенью 2. Таким образом, функции
δ1, δ2, …, δr, λ1, λ2, …, λs окажутся не полностью определенными – на некоторых наборах их значения не определены. Тогда их доопределяют произвольным образом, но, как правило, так, чтобы получившиеся полностью
определенные функции удовлетворяли тем или иным условиям оптимальности, например, представлялись минимальными ДНФ.
После выполнения этого шага исходный автомат будет задаваться
системой полностью определенных булевых функций
{δ1, δ2, …, δr, λ1, λ2, …, λs}.
При задании автомата системой булевых функций канонические
уравнения записываются в координатной форме:
z1 (t  1)  1 ( x1 (t ), ..., xk (t ), z1 (t ), ..., zr (t )) ;
…
zr (t  1)  r ( x1 (t ), ..., xk (t ), z1 (t ), ..., zr (t )) ;
y1 (t )  1 ( x1 (t ), ..., xk (t ), z1 (t ), ..., zr (t )) ;
…
ys (t )   s ( x1 (t ), ..., xk (t ), z1 (t ), ..., zr (t )) ,
t = 1, 2, …
Для построения канонических уравнений автомата А необходимо для
данной булевой функции найти минимальную ДНФ (дизъюнктивную нормальную форму), которая, вообще говоря, определяется неоднозначно.
Аналитический алгоритм построения этой ДНФ следующий.
Шаг 1. Для данной функции f(x1, …, xn) строим совершенную конъюнктивную нормальную форму (СКНФ).
Шаг 2. В построенной СКНФ раскрываем скобки, используя правило:
( A  B)  (C  D)  A  C  B  C  A  D  B  D .
Шаг 3. Полученное выражение упрощаем, применяя тождества следующего вида:
K1  K 2  K1  K1 ; K  K  K ; K  0  K ;
K  K  0 ; K  1 1; K 1  K ;
K  K  K ; K  K  1.
В результате получим сокращенную ДНФ, являющуюся дизъюнкцией всех простых импликант данной функции f(x1, …, xn).
3.3 Примеры конечных автоматов
Приведем несколько примеров конечных автоматов.
Пример 1. Элемент задержки (элемент памяти).
Элементы задержки представляют собой устройство, имеющее один
вход и один выход. Причем значение выходного сигнала в момент времени
t совпадает со значением сигнала в предыдущий момент. Схематично элемент задержки можно изобразить следующим образом (рисунок 7).
Рисунок 7 – Элемент задержки
Предположим, что входной и, следовательно, выходной алфавиты
есть X = {0, 1}; Y = {0, 1}. Тогда Q = {0, 1}. Под состоянием элемента задержки в момент времени t понимается содержание элемента памяти в
данный момент. Таким образом, q(t) = x(t – 1), a y(t) = q(t) = x(t – 1).
Зададим элемент задержки таблицей 8, где а1 = 0, а2 = 1, q1 = 0, q2 = 1,
(a1, q1 )  (0, 0)  0 ; (a1, q1 )  (0, 0)  0 ;
(a1, q2 )  (0, 1)  0 ; (a1, q2 )  (0, 1)  1 ;
(a2, q1 )  (1, 0)  1 ; (a2, q1 )  (1, 0)  0 ;
(a2, q2 )  (1, 1)  1 ; (a2, q2 )  (1, 1)  1.
Таблица 8 – Автоматная таблица элемента задержки
a
0
1
q
0
1
δ = 0; λ = 0
δ = 1; λ = 0
δ = 0; λ = 1
δ = 1; λ = 1
Диаграмма Мура изображена на рисунке 8.
Рисунок 8 – Диаграмма Мура элемента задержки
Для представления этого автомата системой булевых функций используем таблицу автомата и вышеизложенный алгоритм. При этом кодирование производить не нужно, так как входной и выходной алфавиты и
состояния уже закодированы.
Обратим внимание на то, что т = п = р = 2. Тогда k = r = s = l, и поэтому элемент задержки задается функциями δ и λ. Таблица истинности
этих функций содержит 2k+r = 22 = 4 строки и k + r + r + s = 4 столбца.
Таблица 9 – Значения функций δ и λ элемента задержки
x
z
δ
λ
0
0
1
1
0
1
0
1
0
0
1
1
0
1
0
1
Канонические уравнения задаются следующими формулами:
 z(t  1)  x(t);
t  1, 2,...

 y(t)  z(t).
Пример 2 – Схема сравнения на равенство.
Схема сравнения на равенство представляет собой устройство, сравнивающее числа x1 и х2, заданные в двоичной системе исчисления. Это устройство работает следующим образом. На вход устройства поступают по двум
каналам числа x1 и х2. Число x1 является результатом сложения по модулю 2
байта данных, хранящегося в памяти компьютера. Число x2 является битом
паритета, дополняющего число x1 так, чтобы их сумма сложения по модулю 2
была равна нулю. Это достигается при равенстве x1 и х2. Поэтому эти числа
сравниваются устройством сравнения. При совпадении разрядов на выходе
схемы формируется выходной сигнал 0, в противном случае на выходе появляется сигнал 1, что говорит о сбое в памяти. Ясно, что появление 1 в выходной последовательности означает, что сравниваемые числа x1 и х2 различны.
Если же выходная последовательность является нулевой, то x1 = х2.
Для этого автомата X = {00; 01; 10; 11}; Y = {0,1}.
Функционирование схемы определяется двумя состояниями. Состояние q0 соответствует равенству сравниваемых в данный момент разрядов.
При этом автомат остается в этом же состоянии. Если в следующий момент сравниваемые разряды будут различны, то автомат перейдет в новое
состояние q1 и в нем остается. Так как это означает, что числа различны.
Таким образом, схему сравнения можно задать таблицей 10.
Таблица 10 – Автоматная таблица схемы сравнения
x
00
01
10
11
q
q0
q0;
q1;
q1;
q0;
q1
0
1
1
0
q0;
q1;
q1;
q0;
1
1
1
1
Диаграмма Мура схемы сравнения на равенство изображена на рисунке 9.
Рисунок 9 – Диаграмма Мура схемы сравнения на равенство
Кодирование состояний произведем следующим образом: α(q0) = 0;
α(q1) = 1. Автомат будет задаваться функциями δ и λ (таблица 11).
Таблица 11 – Значения функций δ и λ схемы сравнения на равенство
x1
x2
z
δ
λ
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
Канонические уравнения задаются следующими формулами:
 z(t  1)  x1(t)  x2(t)  x1(t)  x2(t)  z(t);
t  1, 2,...

y
(
t
)

x
(
t
)

x
(
t
)

x
(
t
)

x
(
t
)

z
(
t
)
.

1
2
1
2
В качестве иллюстрации изложенного выше алгоритма задания канонических уравнений системой булевых функций рассмотрим пример 2
(см. таблицу 11).
Шаг 1. Строим СКНФ функции δ(x1, x2, z). Так как эта функция задана набором своих значений δ = (01111101), то ее СКНФ будет иметь следующий вид:
δ(x1, x2, z) =  xx z  ( x1  x2  z )  ( x1  x2  z ) .
Шаг 2. Раскрываем скобки:
 xx z  ( x1  x2  z )  x1  (x1  x2  z )  x2  (x1  x2  z ) 
 x1  x1  x2  x1  z  x1  x1  x2  x2  x2  z  x2  x1  z  x2  z  z  z .
Упрощаем последнее выражение:
 xx z  0  x1  x2  x1  z  x1  x2  0  x2  z  x1  z  x2  z  z 
 x1  x2  x1  x2  z(x2  x2 )  z(x1  x1 )  z  x1  x2  x1  x2  z .
Таким образом, получим
z(t  1)  x1 (t )  x2 (t )  x1 (t )  x2 (t )  z (t ) .
Аналогично строится функция y(t). При этом из таблицы истинности
(см. таблицу 11) выписываем набор значений функции λ = (01111101), который совпадает с набором значений функции δ(x1, x2, z).
3.4 Практические задания
Задание 1
Для автомата, заданного таблицей, постройте диаграмму Мура. Задайте этот автомат системой булевых функций.
1
x
0
1
2
x
0
1
3
x
0
1
4
x
0
1
q
0
1
2
3
(1; 1) (3; 0) (2; 0) (2; 0)
(2; 1) (2; 0) (3; 0) (3; 0)
q
0
1
2
3
(0; 0) (1; 1) (3; 1) (2; 0)
(2; 0) (0; 1) (3; 1) (1; 0)
q
0
1
2
3
(3; 0) (2; 0) (1; 1) (0; 1)
(0; 1) (1; 1) (2; 0) (3; 0)
q
0
1
2
3
(1; 0) (2; 0) (2; 1) (3; 0)
(3; 0) (3; 1) (2; 1) (1; 0)
5
x
0
1
6
x
0
1
7
x
0
1
8
x
0
1
q
0
1
2
3
(1; 0) (3; 1) (2; 0) (1; 0)
(3; 0) (1; 1) (0; 1) (3; 1)
q
0
1
2
3
(2; 0) (0; 0) (3; 1) (1; 0)
(1; 0) (0; 0) (0; 0) (3; 0)
q
0
1
2
3
(2; 1) (2; 1) (2; 1) (2; 1)
(1; 1) (3; 1) (0; 0) (1; 0)
q
0
1
2
3
(0; 1) (1; 1) (2; 1) (3; 1)
(0; 0) (0; 1) (3; 1) (2; 1)
9
q
x
0
1
2
3
(0; 0) (1; 1) (2; 0) (3; 1)
(1; 0) (0; 1) (3; 0) (2; 1)
0
1
10
q
x
0
1
2
3
(1; 1) (0; 0) (3; 1) (2; 0)
(0; 1) (2; 0) (2; 1) (3; 0)
0
1
11
q
x
0
1
2
3
(0; 0) (1; 1) (2; 1) (3; 1)
(3; 1) (0; 1) (1; 1) (2; 0)
0
1
12
x
0
1
2
3
13
x
0
1
2
3
14
x
0
1
2
q
0
(0; 0)
(0; 1)
(0; 1)
(1; 0)
1
(0; 1)
(1; 0)
(1; 0)
(1; 1)
q
0
(0; 0)
(1; 0)
(0; 1)
(–; 1)
1
(2; 0)
(1; 1)
(1; 1)
1
(1; 1)
(1; 1)
(0; 0)
(–; 0)
q
2
(2; 1)
(3; 0)
(2; 1)
3
(3; 1)
(3; 1)
(1; 0)
15
q
x
0
1
2
3
(0; 0) (0; 1) (2; 0) (2; 1)
(1; 0) (1; 1) (3; 0) (3; 1)
0
1
16
q
x
0
1
2
3
(0; 1) (0; 0) (1; 0) (1; 0)
(2; 0) (2; 1) (3; 0) (3; 1)
0
1
17
q
x
0
1
2
3
(1; 0) (3; 1) (2; 1) (2; 1)
(2; 1) (2; 0) (3; 0) (3; 0)
0
1
18
q
x
0
(0; 0)
(1; 1)
(1; 1)
(0; 0)
0
1
2
3
19
q
x
0
(0; 0)
(0; 0)
(1; 1)
(1; 1)
0
1
2
3
20
x
0
1
2
1
(1; 1)
(1; 1)
(1; 1)
(1; 1)
1
(1; 0)
(2; 1)
(3; 2)
q
2
(2; 1)
(2; 1)
(0; 1)
1
(1; 1)
(0; 1)
(1; 1)
(0; 1)
3
(0; 2)
(3; 0)
(2; 0)
Задание 2
Для автомата, заданного диаграммой Мура, выпишите соответствующую таблицу и систему булевых функций (рисунки 10–25).
Рисунок 10
Рисунок 11
Рисунок 12
Рисунок 13
Рисунок 14
Рисунок 15
Рисунок 16
Рисунок 17
Рисунок 18
Рисунок 19
Рисунок 20
Рисунок 21
Рисунок 22
Рисунок 23
Рисунок 24
Рисунок 25
Задание 3
Для автомата, заданного каноническими уравнениями, постройте
диаграмму Мура и соответствующую таблицу.
 z (t  1)  x1 (t )  z (t )  x2 (t )  z (t );
1 
 y (t )  x2 (t )  z (t )  x1 (t )  x2 (t ).
 z (t  1)  x(t );
2 
 y(t )  x(t )  z (t ).
 z1 (t  1)  x (t )  ( z1 (t )  z2 (t ))  z2 (t )  x(t );
 z (t  1)  x (t )  z (t )  x(t )  z (t );

2
1
3  2
 y1 (t )  x (t )  ( z1 (t )  z2 (t ))  x(t )  z1 (t );
 y2 (t )  x (t )  z1 (t )  z2 (t )  x(t )  z1 (t )  z2 (t ).
 z1 (t  1)  x(t )  ( z2 (t )  z1 (t ))  z2 (t );

4  z2 (t  1)  z1 (t )  [ z2 (t )  x(t )  x (t )  z2 (t )]  z1 (t )  x(t );
 y (t )  z (t )  x(t )  z (t )  z (t )  x (t ).
1
1
2

 z1 (t  1)  z1 (t )  x(t );

5  z2 (t  1)  z1 (t )  z2 (t );
 y (t )  x(t )  z (t ).
2

 z1 (t  1)  z2 (t )  x(t );

6  z2 (t  1)  z1 (t )  x (t )  z1 (t )  x(t );
 y (t )  z (t )  z (t )  z (t )  x (t ).
1
2
1

 z1 (t  1)  z1 (t )  z2 (t )  x(t );

7  z2 (t  1)  z2 (t )  x(t );
 y (t )  z (t )  x(t ).
2

 z (t  1)  x1 (t )  x2 (t )  x1 (t )  z (t )  x2 (t )  z (t );
8 
 y (t )  x1 (t )  x2 (t )  z (t ).
 z (t  1)  x1 (t )  x2 (t )  x1 (t )  x2 (t )  z (t );
9 
 y (t )  x1 (t )  x2 (t )  x1 (t )  x2 (t )  z (t ).
 z1 (t  1)  x(t )  z2 (t )  z1 (t )  z2 (t );

10  z2 (t  1)  z1 (t )  ( z2 (t )  x(t )  x (t )  z2 (t ))  z1 (t )  x(t );
 y (t )  z (t )  x (t )  z (t )  z (t )  x(t ).
1
1
2

 z1 (t  1)  z2 (t )  x(t )  z1 (t )  x (t );

11  z2 (t  1)  z1 (t )  x (t )  z1 (t )  x(t );
 y (t )  z (t )  z (t )  z (t )  x (t ).
1
2
1

 z1 (t  1)  z2 (t )  x(t );

12  z2 (t  1)  z1 (t )  x (t )  z1 (t )  x(t );
 y (t )  z (t ) | z (t )  z (t ) | x (t ).
1
2
1

 z1 (t  1)  x(t )  z2 (t )  z1 (t )  z2 (t );

13  z2 (t  1)  z1 (t )  ( z2 (t )  x(t )  x (t )  z2 (t ))  z1 (t )  x(t );
 y (t )  z (t )  x (t )  z (t )  z (t )  x(t ).
1
1
2

 z1 (t  1)  x (t )  z1 (t )  z2 (t )  x(t );
 z (t  1)  x (t )  z (t )  x(t )  z (t );

2
1
14  2
 y1 (t )  x (t )  ( z1 (t )  z2 (t ))  x(t )  z1 (t );
 y2 (t )  x (t )  z1 (t )  z2 (t )  x(t )  z1 (t )  z2 (t ).
 z1 (t  1)  x (t )  ( z1 (t )  z2 (t ))  z2 (t )  x(t );

 z (t  1)  x (t )  z2 (t )  x(t )  z1 (t );
15  2
 y1 (t )  x (t )  ( z1 (t )  z2 (t ))  x(t )  z1 (t );
 y2 (t )  x (t )  z1 (t )  z2 (t )  x(t )  z1 (t )  z2 (t ).
Задание 4
По содержательному описанию работы автомата постройте автоматную таблицу, диаграмму Мура и систему булевых функций.
1 Двоичный сумматор последовательного действия представляет собой устройство, осуществляющее сложение двух чисел в двоичной системе
исчисления. На входы сумматора подаются числа х1 и х2, начиная с младших разрядов. На выходе формируется последовательность, соответствующая записи числа x1 + x2 в двоичной системе исчисления.
2 Схема сравнения на неравенство представляет собой устройство,
позволяющее выяснить, равны ли сравниваемые x1 и x2, и если они не рав-
ны, выяснить, какое из них больше другого. Это устройство имеет два входа и два выхода. Выходные сигналы y1(t) и y2(t) определяются по следующим правилам:
y1(t) = y2(t) = 0, если x1(t) = x2(t);
y1(t) = 1; y2(t) = 0, если x1(t) > x2(t); т. е. x1(t) = 1; x2(t) = 0;
y1(t) = 0; y2(t) = 1, если x1(t) < x2(t); т. е. x1(t) = 0; x2(t) = 1.
3 Двоичные цифры 0 и 1 подаются на устройство, которое считает
по модулю 3 накопленное число единиц (x – входные цифры, y – накопленное число).
4 Английский текст, составленный из 26 букв алфавита и пробелов,
просматривается с целью подсчета числа слов, начинающихся с un и заканчивающихся на d (таких, как understand, united и др.). Для простоты пробелы
обозначают буквой π, а все другие буквы, кроме d, n и u, – буквой λ.
5 Английский текст, составленный из 26 букв алфавита и промежутков между буквами, просматривается с целью подсчета числа слов,
которые рифмуются с art (x – буква или промежуток, y – увеличение
общего счета).
6 Построить конечный автомат, допускающий все цепочки в алфавите {a, b}, не содержащие вхождений подцепочки aba.
7 Построить конечный автомат, допускающий все цепочки в алфавите {a, b}, которые не начинаются с ab и не заканчиваются ab.
8 Построить конечный автомат, допускающий все последовательности нулей и единиц, кроме тех, которые содержат подпоследовательность 11011.
9 Построить конечный автомат, допускающий те и только те цепочки
в алфавите {0, 1}, которые не начинаются цепочкой 01 и не заканчиваются
цепочкой 11 (т. е. не разрешаются цепочки вида 01x и цепочки вида y11,
каковы бы ни были цепочки x, y  {0, 1}).
10 Найти конечный автомат с однобуквенными переходами, распознающий язык {a nb mc k d | n  0, m  0, k  0} .
11 Найти конечный автомат с однобуквенными переходами, распознающий язык {a nb m | n  3, m  3} .
12 Монета многократно подбрасывается и делается отметка при четных выпадениях цифры в последовательности цифр и при каждом втором
(не обязательно подряд) выпадении герба (x – сторона монеты, y – отметка
при броске).
13 Грузовой лифт, обслуживающий трехэтажный магазин, имеет
кнопку вызова на каждом этаже и работает по следующим правилам: если
нажата одна кнопка, то лифт движется на этаж, на котором расположена
данная кнопка; если нажаты одновременно две или три кнопки, то лифт
движется на самый нижний из этажей, на которых нажаты кнопки. Ни одна
кнопка не может быть нажата во время движения лифта (x – этаж, на котором нажата кнопка, y – направление, в котором будет двигаться лифт, и
число этажей, которое он при этом пройдет без остановки).
14 На рисунке 26 изображена схема N, на которую поступают сигналы от двух импульсных генераторов напряжения V1 и V2. Каждый генератор генерирует положительный или отрицательный импульс с периодом
одна микросекунда.
Элемент d вызывает задержку импульса на одну микросекунду. Схема N выдает положительный импульс, когда оба поступающих на ее входы
импульса положительны, и выдает отрицательный импульс – во всех
остальных случаях (x – комбинация значений входных напряжений, y –
значение выходного напряжения).
Рисунок 26 – Схема устройства с задержками на входе
15 Работа вычислительного устройства, имеющего вход x и выход y,
определяется следующими уравнениями:
yi  xi  yi 1  xi 1 ;
qi  xi  qi 1 ,
где каждая переменная принимает значения 0 или 1; знак  обозначает
сложение по модулю 2.
16 На рисунке 27 представлена модель нервной сети, где нервное волокно соединено с источником, который генерирует стимулы 0 или 1 в
моменты времени ti.
Большой кружок представляет нейрон. Выход нейрона в момент
времени ti возбужден, т. е. принимает значение единица, только в том случае, когда разность между числом его возбужденных «возбуждающих входов» (показаны зачерненными маленькими кружками) и числом возбужденных «тормозящих входов» (показаны маленькими кружками) в момент
ti = 1 равна или превышает его «порог» (число, записанное внутри большого кружка). При решении принять x = Vвх, y = Vвых.
Рисунок 27 – Модель нервной сети
17 На вход автомата могут поступать сигналы R, S и C. На входной
сигнал R автомат выдает выходной сигнал 0, на S – выходной сигнал 1 и
на C – выходной сигнал, противоположный предыдущему выходному сигналу. Для определенности полагают, что в начальном состоянии автомат
помнит «предыдущий» выходной сигнал 0.
18 Автомат имеет две входные шины x1 и x2, на которые в дискретные моменты независимо друг от друга могут поступать сигналы 0 или 1.
В автомате вычисляется функция f = x1  x2, а затем определяется, сколько
раз с учетом данного момента времени функция f принимала значение 1.
Выходной сигнал y может иметь три значения: y = 0,если f = 0; y = 1, если
f = 1 и суммарное число случаев, включая данный, когда f равнялась единице, нечетно; y = 2 – в остальных случаях.
19 Автомат управляет светофором на перекрестке дорог «вертикальная–горизонтальная». Считается, что при открытом светофоре (зеленом
свете) машины преодолевают перекресток мгновенно. Светофор переключается (мгновенно), если число ожидающих машин с обеих сторон перпендикулярной улицы достигло трех.
20 Автомат Мура, принимая на входе монеты 10; 15 и 20 коп., выдает
сигнал П, если значение текущей суммы опущенных монет кратно 50 и не
кратно 1 р.; выдает сигнал Р, если сумма кратна 1 р.; во всех остальных
случаях выдает сигнал 0.
21 На вход автомата по двум шинам x1 и x2 поступают различные
комбинации из нулей и единиц, воспринимаемые как двоичные числа. Автомат выдает сигнал Н , если сумма поступивших чисел нечетная, К – если
сумма чисел кратная четырем, и 4 – если сумма чисел четная, но не кратна
четырем.
22 Синтезировать автомат, на вход которого могут поступать в любой последовательности и, возможно, с любым числом повторений монеты
1, 2 и 3 коп. Автомат продает билет, если сумма опущенных монет равна
трем. В случае превышения суммы автомат возвращает деньги.
23 Построить автомат, на вход которого могут поступать монеты 1, 2
и 3 коп. Автомат выдает сигнал «чет.» (Ч), если сумма опущенных монет
четная, и «нечет.» (Н), если нечетная.
Порядок выполнения лабораторных работ
1 Получить задание у преподавателя.
2 Решить задачи в соответствии с заданием.
3 Сделать выводы по результатам решения.
4 Составить отчет о проделанной работе.
Список литературы
1 Галушкина, Ю. И. Конспект лекций по дискретной математике /
Ю. И. Галушкина, А. Н. Марьямов. – М. : Айрис-Пресс, 2007. – 176 с. : ил.
2 Гилл, А. Введение в теорию конечных автоматов / А. Гилл. – М. :
Наука, 1966. – 272 с. : ил.
3 Трохимчук, Р. М. Основы дискретной математики. Практикум /
Р. М. Трохимчук. – Киев : МАУП, 2004. – 168 с. : ил.
4 Прикладная теория цифровых автоматов / К. Г. Самофалов [и др.]. –
Киев : Вища шк., Головное изд-во, 1987. – 375 с. : ил.
Download