- •Вопрос 1. Предмет та.
- •Вопрос 2. Классификация автоматов
- •Вопрос 3. Приложения та
- •Вопрос 4. Двоичное умножение
- •Вопрос 5. Умножение в инверсных кодах
- •Вопрос 6. Деление
- •Вопрос 7. Деление в инверсных кодах. Особенности.
- •Вопрос 8. Особенности выполнения операций в формате с плавающей запятой.
- •Вопрос 9
- •Вопрос 10. Модель дискретного преобразователя Глушкова
- •Вопрос 11. Микропрограммирование
- •Вопрос 12. Структуры операционных автоматов
- •Вопрос 13. Синтез оа процедурного типа
- •Вопрос 14. Синтез оа структурного типа
- •Вопрос 15. Автоматные языки. Формальное задание Автомата.
- •Вопрос 16. Модели автоматов Мили и Мура
- •Вопрос 17. Эквивалентность ка. Теорема Мура.
- •Вопрос 18. Минимизация конечных автоматов.
- •Вопрос 19. Эквивалентность автомата Мили и Мура.
- •Вопрос 20. Виды уа
- •Вопрос 21. Структурные схемы уа. Мили и Мура.
- •Вопрос 22. Этапы синтеза уажл.
- •Вопрос 23. Примеры синтеза уажл.
- •Вопрос 24. Гонки и способы борьбы с ними
- •Вопрос 25. Уа с программируемой логикой (уапл)
- •Вопрос 26. Алгебраическая и структурная теория ка.
- •Вопрос 26 [part2]
- •Вопрос 27. Объединение нескольких уа в один
- •Вопрос 28. Программная реализация ка. Варианты реализации. Шаблон Состояние.
- •Вопрос 29. Назначение и краткая характеристика vhdl.
- •Вопрос 30. Реализация уа на vhdl.
- •Вопрос 31. Понятие о языке моделирования uml.
- •Вопрос 32. Понятие о языках и формальных грамматиках
- •Вопрос 33. Классификация языков
- •Регулярные языки и Конечные Автоматы
- •Вопрос 34. Лемма о накачке
- •Вопрос 35. Понятие о нка. Получение дка по нка.
- •Вопрос 36. Регулярные выражения. Синтаксические диаграммы. Теорема Клини.
- •Вопрос 37. Применение рв. Различные нотации рв.
- •Вопрос 38. Кс-грамматики и магазинные автоматы.
- •Вопрос 39. Машины Тьюринга
- •Вопрос 40. Использование мт для анализа алгоритмов.
Вопрос 26 [part2]
Это означает, что следующее разбиение πi+1 в каждой итерации строится как сумма ?????? разбиения и разбиения ρ(δ(v,x)δ(s,x) для каждой пары состояний r и s принадлежащих одному блоку разбиения предыдущей итерации для каждого входного сигнала.
3. Замыкание определяется как; такое разбиение, [[ π]]A=πi, что πi+1= πi
ρ(r,s) – элементарное разбиение, которое объединяется в один блок состояния r и s. ρ(r,s) – {< r,s>,<>,<>…<>}
Алгоритм поиска конгруэнции реализуется в два этапа: 1. Для каждой пары r и s различных состояний А стремится (r,s):r,s|εS, r≠s строится замыкание [[ρ(r,s)]]A. 2. Для построения остальных конгруэнций пишутся всевозможные суммы ?????????? на первом этапе замыканий ∑[[ ρ(ri,si)]]
Пример:A:
|
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
a |
3 |
4 |
3 |
2 |
1 |
1 |
2 |
4 |
b |
4 |
7 |
0 |
6 |
5 |
4 |
3 |
3 |
Для этого А нужно построить 28 замыканий.
ρ(0,1)={<0,1>;<2>;<3>;<4>;<6>;<5><7>}
7+6+5…=28
Рассмотрим вычисление замыкания [[ρ(0,1)]]А
π0= ρ(0,1)
π1=π0+ ρ(δ(0,a),δ(1,a))+ ρ(δ(0,b),δ(1,b)) = π0+ ρ(3,4)+ ρ(4,7)={<0,1>,<2>,<3,4,7>,<5>,<6>}
1.2.2. π2=π1+ ρ(δ(3,a),δ(4,a))+ ρ(δ(3,b),δ(4,b))+ρ(δ(3,a),δ(7,a))+ρ(δ(3,b),δ(7,b))+ ρ(δ(4,a),δ(7,a))+ρ(δ(4,b),δ(7,b)= π1+ ρ(1,2)+ ρ(5,6)+ ρ(2,4)+ ρ(3,6)+ ρ(1,4)+ ρ(3,5)=<0,1,2,3,4,5,6,7>=I
π0= ρ(0,2)
π1=π0= ρ(δ(0,a),δ(2,a))+ ρ(δ(0,b)δ(2,b)) = π0+ ρ(3,3)+ ρ(0,4)= {<0,2,4>,<1>,<3>,<5>,<6>,<7>}
π2=π1+ ρ(δ(0,a),δ(4,a))+ ρ(δ(0,b),δ(4,b))+ρ(δ(2,a),δ(4,a))+ρ(δ(2,b),δ(4,b))= π1+ ρ(1,3)+ ρ(4,5)+ ρ(0,5)+ ρ(4,5)={<0,2,4,5>,<1,3>,<6>,<7>}
[[ρ(0,2)]]A={<0,2,4,5>;<1,3>;<6,7>} – первая конгруэнция
В результате завершения первого этапа алгоритма после анализа всех 28 пар состояний получим сходные конгруэнции.
π1={<0,2,4,5>;<1,3>;<6,7>}
π2={<0,2,4,5>;<1,3,6,7>}
π3={<0,2>;<1>;<2>;<3,6>;<4>;<5>;<7>}
π4={<0,7>;<1,2>;<3,4,5,6>}
π5={<0,5>;<1,3>;<2,4>;<6,7>}
π6={<0>;<1>;<2>;<3,>;<4,5>;<6>;<7>}
π7={<0,5>;<1????????,3,6,7>;<2,4>}
π8={<0,7>;<1,2>;<3,4>;<5,6>}
π9={<0,5,6,7>;<1,2,3,4>}
Полученные конгруэнции можно использовать для последовательной и параллельной декомпозиции автомата.
[pg.65]
Вопрос 27. Объединение нескольких уа в один
На первом этапе необходимо построить совместный алгоритм работы объединенных автоматов как общего автомата. Номер автомата кодируется и затем код автомата является одним из входных сигналов синтезируемого автомата.
Подобные автоматы можно строить и при программной и при аппаратной реализации А. При этом в обоих случаях можно оставлять структуру каждого А без изменений либо, использовать часть схемы или программы автомата в нескольких подавтоматах.
При синтезе общего закона функционирования автомата, составленного из двух автоматов, можно воспользоваться, например, матрицей переходов / выходов (МПВ) для обоих автоматов, ввести доп. входной сигнал, указывающий на номер матрицы, и произвести синтез совмещенной матрицы.
Вопрос 28. Программная реализация ка. Варианты реализации. Шаблон Состояние.
Рассмотрим другой пример реализации со статическими переменными. Смоделируем турникет.
Объектная реализация автоматов
В Объектно-ориентированном программировании данный стиль реализации автомата не при приветствуется, т.к. много операторов-ветвлений и выбора, которых в ООП пытаются избежать. Даже на данных примерах видно, что код программы становится запутанным, трудновоспринимаемым и модифицированным.
В ООП стремятся перейти от развилок и выбора к наследованию. В данном случае лучше использовать один из так называемых patten’ов или шаблонов (не template) и паттерн State (состояние). Впервые pattern были описаны в книге GoF, в которой описано 23 состояния.
Рассмотрим пример шаблона State для моделирования турникета.
Для этого рассмотрим диаграмму классовUML (Unified modeling language) – язык диаграмм
.
Где:
+ - public
- - private
# - protected
ассоциация
- - - > - зависимость
- - -- наследование
<<interface>> - абстрактный класс, который не может иметь экземпляров и имеет хотя бы один нереализованный метод.
Turnstile (турникет) – класс, реализующий работу турникета, аналог автомата Глушкова.
Им управляет Turnstile FSM (Finite State Machine – КА) – этот класс реагирует на входные события coin и pass и осуществляет переключение состояний с помощью метода Setstate. Но этот класс реализует переключение состояний совсем не так, как было рассмотрено выше: он делегирует реакцией на входные события конкретного состояния, реализующие интерфейс Turnstile State, т.е. наследует Turnstile State. Turnstile State – интерфейс одного состояния, реагирующего на входные сигналы coin и pass. Получая событие (например coin) класс Turnstile FSM вызывает соответствующий метод текущего состояния Turnstile State, при этом сам Turnstile FSM не знает, какое конкретное состояние обрабатывает само событие.
Это позволяет:
1) отделить поведение А от логики его переключения
2) данная схема позволяет заменить вложения управляющих структур наследованием, используя базовые абстрактные состояния.
При этом использование интерфейса позволяет добавлять новые состояния не изменяя другие части программы, с условием, что не изменяются входным сигналы и т.п.