Виртуальный конечный автомат
Виртуальный конечный автомат ( VFSM ) — это конечный автомат (FSM), определенный в виртуальной среде . Концепция VFSM обеспечивает метод спецификации программного обеспечения для описания поведения системы управления с использованием назначенных имен свойств управления вводом и выходных действий .
Метод VFSM представляет модель выполнения и упрощает представление о спецификации исполняемого файла. Эта технология в основном используется в сложных системах управления машинами , приборостроении и телекоммуникациях .
Почему [ править ]
Реализация конечного автомата требует генерации логических условий (условий перехода состояний и условий действия). В аппаратной среде, где конечные автоматы нашли свое первоначальное применение, это тривиально: все сигналы являются логическими . Напротив, конечные автоматы, определенные и реализованные в программном обеспечении, требуют логических условий, которые сами по себе являются многозначными :
- Температура может быть низкой, нормальной, высокой.
- Команды могут иметь несколько значений: Init, Start, Stop, Break, Continue.
- В иерархической системе управления подчиненные конечные автоматы могут иметь множество состояний, которые используются в качестве условий вышестоящего конечного автомата.
Кроме того, входные сигналы могут быть неизвестными из-за ошибок или неисправностей, то есть даже цифровые входные сигналы (рассматриваемые как классические логические значения) на самом деле представляют собой три значения: низкое, высокое, неизвестное.
Позитивная логическая алгебра решает эту проблему посредством виртуализации , создавая виртуальную среду, которая позволяет определять конечные автоматы для программного обеспечения с использованием многозначных переменных.
Свойства элемента управления [ править ]
Переменная состояния в среде VFSM может иметь одно или несколько значений, которые имеют отношение к элементу управления — в таком случае это входная переменная. Эти значения являются управляющими свойствами этой переменной. Свойства элемента управления не обязательно представляют собой конкретные значения данных, а скорее представляют собой определенные состояния переменной. Например, цифровая переменная может обеспечивать три свойства управления: ИСТИНА, ЛОЖЬ и НЕИЗВЕСТНО в соответствии с ее возможными логическими значениями. Числовая (аналоговая) входная переменная имеет свойства управления, такие как: НИЗКИЙ, ВЫСОКИЙ, ОК, ПЛОХО, НЕИЗВЕСТНО в соответствии с диапазоном желаемых значений. Таймер может иметь состояние OVER (произошло время ожидания) в качестве наиболее значимого управляющего значения; другие значения могут быть ОСТАНОВЛЕНЫ или ВЫПОЛНЕНЫ.
Действия [ править ]
Другие переменные состояния в среде VFSM могут быть активированы действиями — в таком случае это выходная переменная. Например, цифровой выход имеет два действия: «Истина» и «Ложь». Числовая (аналоговая) выходная переменная имеет действие: Установить. Таймер, который одновременно является входной и выходной переменной, может запускаться такими действиями, как «Пуск», «Стоп» или «Сброс».
Виртуальная среда [ править ]

Виртуальная среда характеризует среду выполнения , в которой работает виртуальная машина . Он определяется тремя наборами имен:
- имена входов представляют свойства управления всех доступных переменных
- имена выходов представляют доступные действия над переменными
- имена состояний , определенные для каждого состояния FSM.
Имена входов создают виртуальные условия для выполнения переходов состояний или действий ввода. Виртуальные условия строятся с использованием алгебры позитивной логики . Имена выходов запускают действия; действия входа, действия выхода , действия ввода или действия перехода.
Алгебра позитивной логики
Правила построения виртуального состояния следующие:
Имена входов и виртуальный вход [ править ]
Состояние входа описывается именами входов, которые создают набор :
- вход А:
Anames = {A1, A2, A3}
- вход Б:
Bnames = {B1, B2}
- вход С:
Cnames = {C1, C2, C3, C4, C5}
и т. д.
Виртуальный вход VI
представляет собой набор взаимоисключающих элементов входных имен. А VI
всегда содержит элемент always
:
VI = {always} VI = {always, A1} VI = {always, A1, B2, C4}
Логические операции над именами входов [ править ]
&
Операция (И) представляет собой набор входных имен:
A1 , B3 и C2 => {A1, B3, C2}
|
Операция (ИЛИ) представляет собой таблицу наборов входных имен:
А1 | Б3 | С2 =>
~
(Дополнение) является дополнением набора входных имён:
~ А2 = {A1, A3}
Логическое выражение [ править ]
Логическое выражение представляет собой ИЛИ-таблицу И-множеств ( дизъюнктивную нормальную форму ):
А1 и Б3 | A1 , B2 и C4 | С2 =>
Логические выражения используются для выражения любой логической функции.
Вычисление логического выражения [ править ]
Логическое значение (истина, ложь) логического выражения вычисляется путем проверки того, является ли какое-либо из наборов И в таблице подмножеством ИЛИ VI
.
выходов и виртуальный выход Имена
Состояние выхода описывается Именами выходов, которые создают набор:
- выход Х:
Xnames = {X1, X2}
- выход Y:
Ynames = {Y1, Y2, Y3}
Виртуальный выход VO
представляет собой набор взаимоисключающих элементов выходных имен.
Виртуальная среда [ править ]
Виртуальное имя и виртуальный вывод, дополненные именами состояний, создают виртуальную среду. VE
где указано поведение.
Модель выполнения VFSM [ править ]

Подмножество всех определенных имен входов, которое может существовать только в определенной ситуации, называется виртуальным входом или VI
. Например, температура может быть «слишком низкой», «хорошей» или «слишком высокой». Хотя определены три имени входа, в реальной ситуации может существовать только одно из них. Этот строит VI
.
Подмножество всех определенных имен выходов, которые могут существовать только в определенной ситуации, называется виртуальным выходом или VO
. Это создается текущими действиями VFSM.
Спецификация поведения строится на основе таблицы состояний, которая описывает все детали всех состояний VFSM.
Исполнитель VFSM запускается VI
и текущее состояние VFSM. Принимая во внимание спецификацию поведения текущего состояния, VO
установлен.
На рис. 2 показана одна из возможных реализаций исполнителя VFSM. На основе этой реализации необходимо учитывать типичные характеристики поведения.
Таблица состояний [ править ]
Таблица состояний определяет все детали поведения состояния VFSM. Он состоит из трех столбцов; первый столбец называет состояние, второй перечисляет виртуальные условия, построенные на основе имен входов с использованием алгебры позитивной логики, а третий столбец содержит имена выходов:
Название штата | Условия) | Действия |
---|---|---|
Текущее состояние | Входное действие | Выходные имена |
Выход из действия | Выходные имена | |
Виртуальное состояние | Выходные имена | |
... | ... | |
Следующее название штата | Виртуальное состояние | Выходные имена |
Следующее название штата | Виртуальное состояние | Выходные имена |
... | ... | ... |
Прочтите таблицу следующим образом: первые две строки определяют действия входа и выхода из текущего состояния. Следующие строки, которые не предоставляют следующее состояние, представляют действия ввода. Наконец, строки, указывающие следующее состояние, представляют условия перехода состояний и действия перехода. Все поля являются необязательными. Чистый комбинаторный VFSM возможен только в тех случаях, когда используются входные действия, но переходы состояний не определены. Действие перехода можно заменить правильным использованием других действий.
Инструменты [ править ]
- StateWORKS : реализация концепции VFSM
- PlayMaker : реализует концепцию VFSM как метод «визуального написания сценариев» игрового движка Unity.
Ссылки [ править ]
- Вагнер Ф., «Программное обеспечение для моделирования с использованием конечных автоматов: практический подход», Роза Фишер-Лёв Верлаг, 1994 г., ISBN 3-929465-04-3
- Вагнер Ф., «Виртуальные конечные автоматы: спецификация исполняемого потока управления», Auerbach Publications, 2006 г., ISBN 0-8493-8086-3
- Спецификация исполняемого файла VFSM , Труды CompEuro 1992 г.
- Непонимание конечных автоматов , журнал IEE «Вычислительная техника и техника управления», 1997 г.
- Современный инструмент проектирования программного обеспечения реального времени: применение уроков Лео , журнал IEE «Вычислительная техника и техника управления», 2003 г.
- Моделирование и создание надежного программного обеспечения многократного использования. , Разработка компьютерного программного обеспечения, 2003 г. (ECBS'03), Труды
- Устранение разрыва между моделированием программного обеспечения и кодом , разработка компьютерного программного обеспечения, 2004 г. (ECBS'04), материалы
- [1] Вагнер Т., «VFSMML — стандарт XML для VFSM», 2004 г.
- [2] , «Парадигма проектирования и реализации виртуальных конечных автоматов», Технический журнал Bell Labs / Том 2, Выпуск 1, 2002 г.