Прикладная теория цифровых автоматов

Автор: Пользователь скрыл имя, 04 Марта 2013 в 13:55, курсовая работа

Описание работы

Потребность в вычислениях возникла у людей на самых ранних стадиях развития человеческого общества. Причем с самого начала для облегчения счета люди использовали различные приспособления. Многие из них были весьма интересными и остроумными по принципу действия, но все они обязательно требовали, чтобы в процессе вычислений активно участвовал человек-оператор. Качественно новый этап развития вычислительной техники наступил с изобретением и созданием электронных вычислительных машин, которые работают автоматически, без участия человека, в соответствии с заранее заданной программой.

Работа содержит 1 файл

1.doc

— 1.85 Мб (Скачать)

Сравнивая попарно все 0-кубы, получаем множество 1-кубов К1. Применяя таким же образом к множеству К1 операцию склеивания, находим множество 2-кубов К2 и т.д. Этот процесс продолжается до тех пор, пока полученное из множества КS очередное множество КS+1 не окажется пустым (или не будет получен n-куб, представляющий функцию – константу «1»). В результате получается комплекс кубов, состоящий из множеств КS:

К={К0, К1,..., КS}, где s£n-1.

Для выделения из К множества  простых импликант ZÌK при каждой операции склеивания тем или иным способом отмечаются те кубы, которые объединяются в кубы высшей размерности. Очевидно, что неотмеченные кубы и образуют множество простых импликант Z, именуемое сокращенной ДНФ.

На следующем шаге при извлечении экстремалей используется таблица покрытий. Ее строки соответствуют простым импликантам, а столбцы - конституентам «1» (0-кубам) данной функции. В клетке таблицы ставится метка, если простая импликанта, соответствующая данной строке, покрывает вершину, соответствующую данному столбцу клетки. Экстремалям соответствуют те строки таблицы, которые содержат единственную метку в каком-либо столбце. Удаляя строки экстремалей и все столбцы, в которых данные строки имеют метки, получаем сокращенную таблицу покрытий.

Из сокращенной таблицы покрытий тем или иным способом выбираются простые импликанты, дополняющие выделенное множество экстремалей до тупиковых покрытий. Метод Квайна не формализует этот шаг в виде какой-либо процедуры. На множестве всех тупиковых покрытий определяется минимальные покрытия, которых может быть несколько.

Алгебраический метод  получения минимального покрытия (алгоритм Петрика)Выбор минимального покрытия на заключительном этапе формализуется с помощью алгебраического метода, предложенного Петриком. Исходная форма для алгоритма – таблица покрытий. Простые импликанты обозначаются символами, например, буквами латинского алфавита. В каждом столбце таблицы записывается дизъюнкция простых импликант, покрывающих соответствующий 0-куб. Покрытию функции соответствует конъюнкция всех записанных дизъюнкций векторов. Упрощая полученное выражение с помощью тождеств булевой алгебры, получаем некоторую ДНФ, каждый член которой соответствует некоторому тупиковому покрытию. Выбирая те из них, которые содержат минимальное количество букв, находим минимальные покрытия.

Алгебраические преобразования упрощаются, если исходить из сокращенной таблицы покрытий, получаемой после выделения экстремалей. Тогда результатом таких преобразований являются множества простых импликант, дополняющих совокупность экстремалей до тупиковых покрытий. Минимальное из этих дополнений совместно с ядром образует минимальное покрытие булевой функции.

Метод Квайна-МакКласки

Недостатком метода Квайна является большое число сравнений, проводимое между импликантами каждого из кубов  КS. Метод Квайна-МакКласки является модификацией метода Квайна, позволяющей уменьшить число сравнений. Для этого каждое множество КS разбивается на классы, в каждом из которых содержатся S-кубы с одинаковым числом единиц. Классы упорядочиваются, например, по возрастанию числа единиц. Так как, склеиваться могут только такие два S-куба, число единиц в которых отличается на одну единицу, то достаточно ограничиться по парным сравнением S-кубов некоторого класса с S-кубами соседнего класса. В остальном модификация работает, как и метод Квайна.

Найдем минимальную дизъюнктивную  нормальную форму (МДНФ). Задана функция, принимающая значение «1» на y= Ú (1,4,5,6,8,10,12,18,19,20,21,23,24) и имеющая не определенное положение на у = х (0,7,14,15,16,17,28,29,30,31).

K0=

Х1

Х2

Х3

Х4

Х5

f

0

0

0

0

0

0

X

1

0

0

0

0

1

1

4

0

0

1

0

0

1

5

0

0

1

0

1

1

6

0

0

1

1

0

1

7

0

0

1

1

1

X

8

0

1

0

0

0

1

10

0

1

0

1

0

1

12

0

1

1

0

0

1

14

0

1

1

1

0

X

15

0

1

1

1

1

X

16

1

0

0

0

0

X

17

1

0

0

0

1

X

18

1

0

0

1

0

1

19

1

0

0

1

1

1

20

1

0

1

0

0

1

21

1

0

1

0

1

1

23

1

0

1

1

1

1

24

1

1

0

0

0

1

28

1

1

1

0

0

X

29

1

1

1

0

1

X

30

1

1

1

1

0

X

31

1

1

1

1

1

X


 

Находим сокращенную ДНФ.

 

K'0=

 

K'1=

 

K'2=

 

K'3=

 

K'4=

Æ

~

00000

 

0000x

 

00x0x

 

x0x0x

   
 

00001

 

00x00

 

x000x

 

xxx00

   
 

00100

 

0x000

 

0xx00

       
 

01000

 

x0000

 

x0x00

       

~

10000

 

00x01

 

xx000

       
 

00101

 

x0001

 

x0x01

       
 

00110

 

001x0

 

10x0x

       
 

01010

 

0x100

 

001xx

       
 

01100

 

x0100

 

0x1x0

       

~

10001

 

010x0

 

xx100

       
 

10010

 

01x00

 

x010x

       
 

10100

 

x1000

 

01xx0

       
 

11000

 

1000x

 

100xx

       

~

00111

 

100x0

 

1xx00

       

~

01110

 

10x00

 

x01x1

       
 

10011

 

1x000

 

0x11x

       
 

10101

 

001x1

 

x11x0

       

~

11100

 

x0101

 

10xx1

       

~

01111

 

0x110

 

1x10x

       
 

10111

 

0011x

 

xx111

       

~

11101

 

01x10

 

x111x

       

~

11110

 

011x0

 

1x1x1

       

~

11111

 

100x1

 

111xx

       
     

10x01

           
     

1001x

           
     

1010x

           
     

1x100

           
     

11x00

           
     

0x111

           
     

x0111

           
     

0111x

           
     

x1110

           
     

10x11

           
     

1x101

           
     

1110x

           
     

111x0

           
     

x1111

           
     

1x111

           
     

111x1

           
     

1111x

           

 

Строим таблицу покрытия (см. таблица 3.) и определяем ядро булевой функции.

 

 

                                                                                                                                                         Таблица 3

 

00001

00100

01000

00101

00110

01010

01100

10010

10100

11000

10011

10101

10111

 

x0x0x

~

~

 

~

       

~

   

~

 

A

xxx00

 

~

~

     

~

 

~

~

     

B

001xx

 

~

 

~

~

               

C

0x1x0

 

~

   

~

 

~

           

D

01xx0

   

~

   

~

~

           

E

100xx

             

~

   

~

   

F

x01x1

     

~

             

~

~

G

0x11x

       

~

               

H

x11x0

           

~

           

I

10xx1

                   

~

~

~

J

1x10x

               

~

   

~

 

K

xx111

                       

~

L

x111x

                         

M

1x1x1

                     

~

~

N

111xx

                         

O

         

CDH

E

 

F

   

FJ

 

GJLN

 

 

Строим сокращенную таблицу покрытия (см. таблица 4)

                                                                                          Таблица 4

 

00110

01010

10010

10011

10111

 

001xx

~

       

C

0x1x0

~

       

D

01xx0

 

~

     

E

100xx

   

~

~

 

F

x01x1

       

~

G

0x11x

~

       

H

10xx1

     

~

~

J

xx111

       

~

L

1x1x1

       

~

N

 

CDH

E

F

FJ

GJLN

 

 

Существует две экстремали – х0х0х и ххх00. Из сокращенной таблицы покрытий, включающей 6, 7, 9, 12, 14  столбцы и 3-8, 10, 12, 14 строки, следует:

(CÚDÚH) (GÚJÚLÚN)(FÚJ)ÙFÙE = (CGÚCJÚCLÚCNÚDGÚDJÚDLÚDNÚHGÚHJÚHLÚHN)ÙFÙE = =FECGÚFECJÚFECLÚFECNÚFEDGÚFEDJÚFEDLÚFEDNÚFEHGÚFEHJÚFEHLÚFEHN

Таким образом, существует двенадцать тупиковых покрытий:

 

ТДНФ1

=

x0x0x

 

ТДНФ2

=

x0x0x

 

ТДНФ3

=

x0x0x

 

ТДНФ4

=

x0x0x

   

xxx00

     

xxx00

     

xxx00

     

xxx00

   

01xx0

     

01xx0

     

01xx0

     

01xx0

   

100xx

     

100xx

     

100xx

     

100xx

   

001xx

     

001xx

     

001xx

     

001xx

   

x01x1

     

10xx1

     

xx111

     

1x1x1

                             

ТДНФ5

=

x0x0x

 

ТДНФ6

=

x0x0x

 

ТДНФ7

=

x0x0x

 

ТДНФ8

=

x0x0x

   

xxx00

     

xxx00

     

xxx00

     

xxx00

   

01xx0

     

01xx0

     

01xx0

     

01xx0

   

100xx

     

100xx

     

100xx

     

100xx

   

0x1x0

     

0x1x0

     

0x1x0

     

0x1x0

   

x01x1

     

10xx1

     

xx111

     

1x1x1

                             

ТДНФ9

=

x0x0x

 

ТДНФ10

=

x0x0x

 

ТДНФ11

=

x0x0x

 

ТДНФ12

=

x0x0x

   

xxx00

     

xxx00

     

xxx00

     

xxx00

   

01xx0

     

01xx0

     

01xx0

     

01xx0

   

100xx

     

100xx

     

100xx

     

100xx

   

0x11x

     

0x11x

     

0x11x

     

0x11x

   

x01x1

     

10xx1

     

xx111

     

1x1x1

Информация о работе Прикладная теория цифровых автоматов