На сегодняшний день существует много объектов управления, программирование которых требует усилий из-за большого количества состояний, реализуемых в них. Решение таких сложных задач лежит в области применения прикладной теории автоматов, получившая распространение в программировании как switch-технология.
Теоретические положения по проектированию и применению теории автоматов рассмотрели В.Г.Лазарев, Е.И.Пийль [1], Дж.Хопкрофт, Р.Мотвани, Дж.Ульман [2]. Основные концепции технологии автоматного программирования приведены в книге А.А.Шалыто, Н.И.Поликарповой [3]. Применение swith-технологии отражено в исследованиях и разработках российских ученых А.С.Бобровских [4], Р.И.Баженова [5, 6], М.А.Афанасьевой [7], Л.С.Гринруга [8, 9], В.Татарчевского [10], М.А.Мазина [11], О.Г.Степанова [12], Ю.Ю.Янкина [13]. Зарубежные ученые применяют рассматриваемую технологию в собственных изысканиях [14, 15, 16].
В данной работе решается задача демонстрации методов ускоренного выполнения операций и моделирование поведения цифрового автомата на примере управления пульта от телевизионного приемника.
Для решения поставленной задачи, описывая абстрактный цифровой автомат, был разработан следующий порядок: представление работы цифрового автомата графом состояний; приведение таблицы состояния и входных (выходных) сигналов; программирование исходного кода программы-эмулятора на основе автоматной теории, используя оператор case; разработка интерфейса программы-эмулятора.
Представим модель управления работой пульта телевизора с помощью автомата, его графом состояний (рис. 1.).
Рисунок 1 – Граф состояний автомата
Опишем состояния и входные (выходные) сигналы для реализации цифрового автомата, управляющего работой пульта телевизора (табл.1).
Таблица 1 – Состояния и входные (выходные) сигналы
Состояние |
Входные сигналы |
Выходные сигналы |
|||
A1 |
Выключено | Z1 | Включить/выключить | W1 | Включить |
A2 |
Включено | Z2 | Канал + | W2 | Выключить |
А3 |
Ожидание ввода номера канала | Z3 | Канал - | W3 | Переключить канал |
|
Z4 | Громкость + | W4 | Изменить громкость | |
|
Z5 | Громкость - | W5 | Сформировать номер канала | |
Z6 | Цифровая кнопка | ||||
Z7 | Передать номер канала |
В основе модели цифрового автомата, реализованного в среде Delphi, представлен оператор case, он обеспечивает структурированный эквивалент последовательности условных операторов той же самой переменной, и является рациональным элементом программирования, чем оператор if.
Представим фрагмент исходного кода для иллюстрации применения switch-технологии:
procedure TForm4.ctrl(sost,sInp: integer);
begin
a:=sost;
z:=sInp;
case a of
1:
case z of
1:
begin
timer1.enabled:=false;
a:=2;
w:=1;
aview;
end;
end;
2:
case z of
1:
begin
timer1.enabled:=false;
a:=1;
w:=2;
aview;
end;
2,3:
begin
w:=3;
aview;
end;
4,5:
begin
w:=4;
aview;
end;
6:
begin
a:=3;
w:=5;
label4.Caption:=’3′;
timer1.enabled:=true;
timer2.Enabled:=true;
aview;
end;
end;
3:
case z of
1:
begin
timer1.enabled:=false;
a:=1;
w:=1;
aview;
end;
6:
begin
w:=5;
aview;
end;
7:
begin
timer1.enabled:=false;
a:=2;
w:=3;
aview;
end;
end;
end;
end;
procedure TForm4.aview;
begin
vsost.Text:=amet[a];
vsin.Text:=zmet[z];
vsout.Text:=wmet[w];
end;
Реализованная модель работы автомата по управлению пультом от телевизора представлена на рис. 2.
Рисунок 2 – Интерфейс программы
Таким образом, проведенное исследование позволило разработать программу-эмулятор, которая моделирует поведение цифрового автомата. Switch-технология позволила быстро и без ошибок запрограммировать управление устройством – пультом от телевизора.
Библиографический список
- Лазарев В. Г., Пийль Е. И. Синтез управляющих автоматов. М.: Энергоатомиздат, 1989. 328 с.
- Хопкрофт Дж., Мотвани Р., Ульман Дж. Введение в теорию автоматов, языков и вычислений. М.: Вильямс, 2002. 528 с.
- Поликарпова Н. И., Шалыто А. А. Автоматное программирование. СПб.: Питер, 2009. 176 с.
- Бобровских А. С. Разработка обучающей системы для алгоритмов начертательной геометрии с использованием технологии автоматного программирования // Вестник компьютерных и информационных технологий. 2011. № 1. С. 38-43..
- Баженов Р. И. Методические рекомендации для выполнения курсовой работы по дисциплине «Теория автоматов». Биробиджан: Изд-во ДВГСГА, 2008. 20 с.
- Баженов Р. И. Интеллектуальные информационные технологии. Биробиджан: ПГУ им. Шолом-Алейхема, 2011. 176 с.
- Баженов Р. И., Афанасьева М. А. Разработка программной модели контроля дверей холодильника на основе теории автоматов // Журнал научных публикаций аспирантов и докторантов. 2014. №4(94). С. 306-308.
- Баженов Р. И., Гринкруг Л. С. Информационная система Абитуриент-Деканат ФГБОУ ВПО «Приамурский государственный университет им. Шолом-Алейхема» // Информатизация и связь. 2013. № 2. С. 97-99.
- Баженов Р. И., Гринкруг Л. С. Информационная система по расчету и распределению нагрузки профессорско-преподавательского состава ФГБОУ ВПО «Приамурский государственный университет им. Шолом-Алейхема» // Информатизация и связь. 2012. №5. С. 75-78.
- Татарчевский В. Применение switch-технологии при разработке программного обеспечения для микроконтроллеров //Компоненты и технологии. 2006. № 65. С. 118-121.
- Мазин М. А. Автоматное программирование для среды языково-ориентированного программирования: автореферат диссертации на соискание ученой степени кандидата технических наук / Санкт-Петербургский государственный университет информационных технологий, механики и оптики. Санкт-Петербург, 2010.
- Степанов О. Г. Автоматное программирование с использованием динамических языков программирования // Научно-технический вестник информационных технологий, механики и оптики. 2006. № 25. С. 37-43.
- Янкин Ю. Ю., Шалыто А. А. Автоматное программирование плис в задачах управления электроприводом // Информационно-управляющие системы. 2011. № 1. С. 50-56.
- Reddy U. S. Automata-Theoretic Semantics of Idealized Algol with Passive Expressions // Electronic Notes in Theoretical Computer Science. 2013. 298 (4). P. 325-348.
- Ekkels P., Rottenberg X., Czarnecki P., Philipsen H., Mertens R., Puers R., Tilmans H.A.C. Air gap-based MEMS switch technology using nickel surface micromachining // Sensors and Actuators A: Physical. 2011. 166 (2). P. 256-263
- Torkestani J. A., Meybodi M. R. A cellular learning automata-based algorithm for solving the vertex coloring problem // Expert Systems with Applications. 2011. 38 (8). P. 9237-9247.