Виртуальный конечный автомат

Виртуальный конечный автомат ( VFSM ) — это конечный автомат (FSM), определенный в виртуальной среде. Концепция VFSM предоставляет метод спецификации программного обеспечения для описания поведения системы управления с использованием назначенных имен свойств входного управления и выходных действий .

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

Почему

Реализация конечного автомата требует генерации логических условий (условий перехода состояний и условий действия). В аппаратной среде, где конечные автоматы нашли свое первоначальное применение, это тривиально: все сигналы являются булевыми . В отличие от этого, конечные автоматы, указанные и реализованные в программном обеспечении, требуют логических условий, которые по сути являются многозначными :

  • Температура может быть низкой, нормальной, высокой
  • Команды могут иметь несколько значений: Init, Start, Stop, Break, Continue.
  • В иерархической системе управления подчиненные конечные автоматы могут иметь много состояний, которые используются в качестве условий вышестоящего конечного автомата.

Кроме того, входные сигналы могут быть неизвестны из-за ошибок или неисправностей, то есть даже цифровые входные сигналы (рассматриваемые как классические булевы значения) фактически представляют собой 3 значения: низкий, высокий, неизвестный.

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

Свойства управления

Переменная состояния в среде VFSM может иметь одно или несколько значений, которые имеют отношение к элементу управления — в таком случае это входная переменная. Эти значения являются свойствами управления этой переменной. Свойства управления не обязательно являются конкретными значениями данных, а скорее определенными состояниями переменной. Например, цифровая переменная может предоставлять три свойства управления: TRUE, FALSE и UNKNOWN в соответствии с ее возможными булевыми значениями. Числовая (аналоговая) входная переменная имеет такие свойства управления, как: LOW, HIGH, OK, BAD, UNKNOWN в соответствии с ее диапазоном желаемых значений. Таймер может иметь свое состояние OVER (истек тайм-аут) в качестве своего наиболее значимого значения управления; другие значения могут быть STOPPED или RUNNING.

Действия

Другие переменные состояния в среде VFSM могут быть активированы действиями — в таком случае это выходная переменная. Например, цифровой выход имеет два действия: True и False. Числовая (аналоговая) выходная переменная имеет действие: Set. Таймер, который является как входной, так и выходной переменной, может быть запущен такими действиями, как: Start, Stop или Reset.

Виртуальная среда

Рисунок 1: VFSM в виртуальной среде

Виртуальная среда характеризует среду выполнения, в которой работает виртуальная машина . Она определяется тремя наборами имен:

  • Входные имена представляют собой управляющие свойства всех доступных переменных.
  • выходные имена представляют доступные действия над переменными
  • названия штатов , определенные для каждого из штатов FSM.

Входные имена создают виртуальные условия для выполнения переходов состояний или входных действий. Виртуальные условия строятся с использованием алгебры положительной логики . Выходные имена запускают действия; действия входа, действия выхода , действия входа или действия перехода.

Позитивная логическая алгебра

Правила построения виртуального состояния следующие:

Имена входов и виртуальный вход

Состояние входа описывается именами входов, которые создают набор :

  • вход А:Anames = {A1, A2, A3}
  • вход Б:Bnames = {B1, B2}
  • вход С:Cnames = {C1, C2, C3, C4, C5}

и т. д.

Виртуальный вход VI— это набор взаимоисключающих элементов имен входов. A VIвсегда содержит элемент always:

VI = { всегда }VI = { всегда , A1 }VI = { всегда , A1 , B2 , C4 }

Логические операции над входными именами

&Операция (И) представляет собой набор входных имен:

А1 , В3 и С2 =>{A1, B3, C2}


|Операция (ИЛИ) представляет собой таблицу наборов входных имен:

А1 | В3 | С2 => [ { А 1 } { Б 3 } { С 2 } ] {\displaystyle {\begin{bmatrix}\{&A1&\}\\\{&B3&\}\\\{&C2&\}\\\end{bmatrix}}}

~(Дополнение) — это дополнение набора входных имен:

~ А2 ={A1, A3}

Логическое выражение

Логическое выражение представляет собой ИЛИ-таблицу И-множеств ( дизъюнктивная нормальная форма ):

А1 и В3 | А1 и В2 и С4 | С2 => [ { А 1 Б 3 } { А 1 Б 2 С 4 } { С 2 } ] {\displaystyle {\begin{bmatrix}\{&A1&B3&\}\\\{&A1&B2&C4&\}\\\{&C2&\}\\\end{bmatrix}}}

Логические выражения используются для выражения любой логической функции.

Оценка логического выражения

Логическое значение (истина, ложь) логического выражения вычисляется путем проверки того, является ли какой-либо из наборов И в таблице ИЛИ подмножествомVI .

Имена выходов и виртуальный выход

Состояние выхода описывается именами выходов, которые создают набор:

  • выход X:Xnames = {X1, X2}
  • выход Y:Ynames = {Y1, Y2, Y3}

Виртуальный вывод VOпредставляет собой набор взаимоисключающих элементов выходных имен.

Виртуальная среда

Виртуальное имя и виртуальный вывод, дополненные именами состояний, создают виртуальную среду VE, в которой определяется поведение.

Модель исполнения VFSM

Рисунок 2: Блок-схема исполнителя VFSM

Подмножество всех определенных имен входов, которое может существовать только в определенной ситуации, называется виртуальным входом или VI. Например, температура может быть либо «слишком низкой», либо «хорошей», либо «слишком высокой». Хотя определены три имени входов, только одно из них может существовать в реальной ситуации. Это создает VI.

Подмножество всех определенных выходных имен, которое может существовать только в определенной ситуации, называется виртуальным выходом или VO. Оно создается текущим действием(ями) VFSM.

Спецификация поведения строится с помощью таблицы состояний, которая описывает все детали всех состояний VFSM.

Исполнитель VFSM запускается VIтекущим состоянием VFSM. С учетом спецификации поведения текущего состояния VOустанавливается.

На рисунке 2 показана одна из возможных реализаций исполнителя VFSM. На основе этой реализации необходимо рассмотреть типичные характеристики поведения.

Таблица состояний

Таблица состояний определяет все детали поведения состояния VFSM. Она состоит из трех столбцов; первый столбец называет состояние, второй перечисляет виртуальные условия, построенные из входных имен с использованием алгебры положительной логики, а третий столбец содержит выходные имена:

Название штатаУсловия)Действия(я)
Текущее состояниеВступление действияИмя(я) выходных данных
Выходное действиеИмя(я) выходных данных
Виртуальное состояниеИмя(я) выходных данных
......
Название следующего штатаВиртуальное состояниеИмя(я) выходных данных
Название следующего штатаВиртуальное состояниеИмя(я) выходных данных
.........

Прочитайте таблицу следующим образом: первые две строки определяют действия входа и выхода из текущего состояния. Следующие строки, которые не предоставляют следующее состояние, представляют входные действия. Наконец, строки, предоставляющие следующее состояние, представляют условия перехода состояния и действия перехода. Все поля являются необязательными. Чистый комбинаторный VFSM возможен только в случаях, когда используются входные действия, но не определены переходы состояний. Действие перехода может быть заменено надлежащим использованием других действий.

Инструменты

  • StateWORKS: реализация концепции VFSM
  • PlayMaker: реализует концепцию VFSM как метод «визуального скриптинга» игрового движка Unity.

Ссылки

  • Вагнер, Ф., «Виртуальные конечные автоматы: спецификация исполняемого потока управления», Rosa Fischer-Löw Verlag, 1994, ISBN  3-929465-04-3
  • Вагнер, Ф., «Моделирование программного обеспечения с помощью конечных автоматов: практический подход», Auerbach Publications, 2006, ISBN 0-8493-8086-3 
  • Спецификация исполняемого файла VFSM, Труды CompEuro 1992
  • Недоразумения относительно конечного автомата, журнал IEE "Computing and Control Engineering", 1997
  • Парадигма проектирования и реализации виртуального конечного автомата, Bell Labs Technical Journal, 1997
  • Современный инструмент разработки программного обеспечения реального времени: применение уроков Leo, журнал IEE «Вычислительная техника и управление», 2003 г.
  • Моделирование и создание надежного, повторно используемого программного обеспечения., Инженерия компьютерного программного обеспечения 2003 (ECBS'03) Труды
  • Сокращение разрыва между программным моделированием и кодом, Инженерия компьютерного программного обеспечения 2004 (ECBS'04) Труды
  • [1], Вагнер, Т., «VFSMML — стандарт XML для VFSM», 2004
Взято с "https://en.wikipedia.org/w/index.php?title=Виртуальная_конечная_машина&oldid=1253869525"