Научная статья на тему 'Моделирование поведения объектов с помощью концепции конечных автоматов'

Моделирование поведения объектов с помощью концепции конечных автоматов Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
811
97
i Надоели баннеры? Вы всегда можете отключить рекламу.
i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Моделирование поведения объектов с помощью концепции конечных автоматов»

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

Преимущество объектно-ориентированного подхода оказывается большим, чем может показаться с первого взгляда. Выявление объектов, изучение его свойств (статические модели) и поведения с другими объектами (динамические модели) позволяет разработчику формировать и оценивать проектные решения по структуре системы на этапе предварительного проектирования. ООМ обладает достаточно мощным инструментом построения распределенных открытых систем и позволяет моделировать системы для исследовательских задач с учетом заявленных требований.

Литературы

1. S.A. Zhukova, S.Zh. Kozlova, I.N. Efimov, E.A. Ermolaeva Technologies of development of the open systems and their application in science and education: the review of papers and development perspective (Технологии построения открытых систем в формировании научнообразовательной среды: обзор работ и перспективы развития) // 12 международная конференция Computer Science and Information Technologies (CSIT’2010) (Информатика и Информационные технологии), Уфимский государственный авиационный технический университет (УГАТУ), С. 208-212.

2. Разработка модели автоматизированной системы интеграции открытых виртуальных лабораторных комплексов. Этап 2: «Построение концепции автоматизированной системы открытых виртуальных лабораторных комплексов» (промежуточный)» / Отчет о научноисследовательской работе (промежуточный)/ Ижевский государственный технический университет; рук. И.Н.Ефимов. - Ижевск, 2010. - 199 с. - ГР № 02.740.11. 0658

3. Арлоу, Нейштадт. UML 2 и Унифицированный процесс: практический объектно-

ориентированный анализ и проектирование. - Символ-Плюс, 2-е изд. - 2007. - с. 624

4. К. Ларман. Применение UML 2.0 и шаблонов проектирования. - Вильямс, 3-е изд. - 2007. -с.730

УДК 004.457

МОДЕЛИРОВАНИЕ ПОВЕДЕНИЯ ОБЪЕКТОВ С ПОМОЩЬЮ КОНЦЕПЦИИ

КОНЕЧНЫХ АВТОМАТОВ1

Галиаскаров Эдуард Геннадьевич, к.х.н., доцент, доцент, Ивановский государственный химикотехнологический университет, Россия, Иваново, galiaskarov@isuct.ru

Особенности дискретно-детерминированного подхода чаще всего рассматриваются на базе теории автоматов. Теория автоматов - раздел теоретической кибернетики, в котором изучаются математические модели - автоматы. Автомат перерабатывает дискретную информацию и меняет свои внутренние состояния в допустимые моменты времени. Если конечное множество объектов можно интерпретировать как алфавит, а сами объекты рассматривать как буквы этого алфавита, набор из этих букв представляет собой упорядоченную совокупность, называемую словом, то автомат представляет собой некий черный ящик, который преобразует буквы входного сигнала в буквы выходного сигнала. Конечным автоматом будем называть такой автомат, у которого множество состояний конечно [1]. Для того чтобы задать конечный автомат (finite automata), необходимо задать одношаговую функцию перехода

1 Статья рекомендована к опубликованию в журнале "Информационные технологии и вычислительные системы"

96

z(t) = €[z(t -1), x(t)]

и функцию выхода

У (t) = z(t -1),x(t)].

Автомат задается F-схемой вида:

F = (Z, A ,Y Z

где Z -конечное множество состояний; X - входной сигнал (алфавит); Y - выходной алфавит; (р,, - функции перехода и выхода; Z0 - начальное состояние алфавита

Автомат функционирует в дискретные моменты времени, которые называются тактами.

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

Рассмотрим довольно простую, но достаточно иллюстративную задачу. Предположим, что необходимо сконструировать автомат для продажи билетов. Требования к системе просты. Этот автомат принимает монеты достоинством 1, 2, 3 и 5 руб. и выдает билеты стоимостью 5 руб.

Сначала опишем данное устройство в каноническом виде. Данное устройство можно представить как конечный асинхронный автомат Мили с множеством состояний Z ={0, 1, 2, 3, 4}, где каждое состояние представляет собой сумму монет в монетоприемнике, причем Z = 0 означает отсутствие монет в монетоприемнике как в режиме ожидания, так и в режиме выдачи билета, когда сумма монет превысит 4, входным алфавитом X = {1, 2, 3, 5} и выходным алфавитом Y = {0, 1}, где 0 соответствует ситуации "билет не выдается", а 1 -ситуации "билет выдается". Функция переходов •(t) определяется соотношением z(t) = (z (t -1) + x(t ))mod, 5

а функция выходов |(t) - соотношением „0, когда z(t -1) + x(t) < 4

y(t) = {

[1, если z(t -1) + x(t) > 4

В качестве иллюстрации построим таблицы переходов и выходов рассматриваемого

автомата:

Таблица переходов

Z

x 0 1 2 3 4

1 1 2 3 4 0

2 2 3 4 0 0

3 3 4 0 0 0

5 0 0 0 0 0

Таблица выходов

x z

0 1 2 3 4

1 0 0 0 0 1

2 0 0 0 1 1

3 0 0 1 1 1

5 1 1 1 1 1

Формализуем описание рассматриваемой системы с помощью UML [2].

Использование автомата для продажи билетов исключительно просто и представляется одним единственным вариантом использования (рис. 1).

Типичный процесс приобретения билета можно отразить на диаграмме деятельности (рис. 2). В соответствии со сценарием использования и условием задачи структурную модель автомата для продажи билетов можно изобразить на диаграмме классов, представленной на рис. 3.

Как следует из математического описания, рассматриваемую систему можно представить в виде асинхронного автомата Мили. Введем некоторые обозначения для упрощения изображения параметров на диаграммах состояния:

X - номинал монеты;

Z - сумма денег в монетоприемнике;

97

L - размер сдачи;

Y - выдан или нет билет

Рис. 1 - Диаграмма использования автомата продажи билетов

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

Рис. 2 - Типичный сценарий использования автомата продажи билетов

class Автомат продажи билетов J

«enumerations Монета Дь то мот продажи (млотоь

Сумма ч монетоприемнике

1 руб. < J принять Деньги(Монета)

2 руб. покозотьСуммуО

3 руб. быдатьСдачуО

5 руб. кыдатьБилетО

Рис. 3. Диаграмма классов автомата продажи билетов

Диаграмма получилась довольно большой и сложной. А что будет, если к монетам добавится возможность использовать и бумажные банкноты? Очевидно, что диаграмма значительно усложнится. Можно ли найти иной способ отображения поведения автомата? Да, такой способ есть. Опишем автомат через два состояния: состояние S0 - прием монет, и состояние S1 — выдача билета. Таким образом, начальную постановку задачи в виде автомата Мили, мы заменили автоматом Мура, у которого выходная функция зависит только от состояния. Входная переменная X может принимать значение 1, 2, 3 или 5. Выходная переменная Y - 0 или 1. Введем внутреннюю переменную Z - сумма денег в монетоприемнике. Переход из

98

состояния S0 в состояние S1 происходит по условию (Z >= 5). В начальный момент времени система находится в состоянии S0, а сумма денег Z = 0.

Рис. 4 - Исходный вариант диаграммы состояний автомата продажи билетов

Рис. 5 - Вариант диаграммы состояний автомата продажи билетов как автомата Мура

Для того, чтобы убедится в корректности предложенных моделей, можно реализовать эти модели в замечательном инструменте Matlab и провести имитационное моделированиу. С этой целью необходимо использовать toolbox Simulink, предназначенный для визуального моделирования самых разнообразных систем. В состав Simulink входит другой замечательный инструмент Stateflow, предназначенный для описания и моделирования дискретных систем на базе теории конечных автоматов [3]. При этом используемая в Stateflow графическая система обозначения Харела практически полностью соответствует синтаксису и семантике построения диаграмм состояний UML [2], что позволяет без труда перенести результаты UML моделирования в модель Simulink.

Автор выражает благодарность за полезные дискуссии Денису Юрьевичу Иванову, одному из авторов книги «Моделирование на UML».

Литература

1. Советов Б.Я., Яковлев С.А. Моделирование систем: Учеб. Для вузов - 3-е изд., перераб. и доп. -М.: Высш. шк., 2001. -343 с.: ил..

2. Новиков Ф.А., Иванов Д.Ю. Моделирование на UML. Теория, практика, видеокурс. -СПб.: Профессиональная литература, Наука и техника, 2010. - 640 с.: ил.

3. Гультяев А.К. MATLAB 5.2. Имитационное моделирование в среде Windows: Практическое пособие. - СПб.: КОРОНА принт, 1999. - 288 с.

99

i Надоели баннеры? Вы всегда можете отключить рекламу.