Научная статья на тему 'Концепция и возможности акторно-ориентированной системы имитационного моделирования «Actor Pilgrim»'

Концепция и возможности акторно-ориентированной системы имитационного моделирования «Actor Pilgrim» Текст научной статьи по специальности «Экономика и бизнес»

CC BY
716
79
i Надоели баннеры? Вы всегда можете отключить рекламу.
Журнал
Прикладная информатика
ВАК
RSCI
Область наук
Ключевые слова
АКТОРЫ / ТЕОРИЯ АКТОРНЫХ СЕТЕЙ / МОДЕЛИРОВАНИЕ / ИМИТАЦИОННОЕ МОДЕЛИРОВАНИЕ.

Аннотация научной статьи по экономике и бизнесу, автор научной работы — Емельянов А.А.

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

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

Текст научной работы на тему «Концепция и возможности акторно-ориентированной системы имитационного моделирования «Actor Pilgrim»»

№ 1 (43) 2013

А. А. Емельянов, докт. экон. наук, профессор Национального исследовательского университета «МЭИ», г. Москва

Концепция и возможности акторно-ориентированной системы имитационного моделирования «Actor Pilgrim»

Продолжение. Начало в №6 (42) 2012 г.

Часть II

Парадигма имитационного моделирования

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

Требование 1. Нужен формальный аппарат симуляции финансово-денежной динамики. Выполнение денежных проводок нельзя аппроксимировать как непрерывным процессом, который хотелось бы назвать «денежным потоком», так и потоком транзактов или акторов, по двум причинам:

Во-первых, проводка в момент времени ^ представляется дельта-функцией:

§(t- to) =

t = t0 0, t * to.

0(t) = j5(t - to)dt--

0, t < to, 1/2, t = to,

1, t > to.

Но первообразной дельта-функции является функция Хевисайда («ступенькой»):

18

Данное свойство приводит к тому, что нельзя найти непрерывный аналог (например, наподобие функции, описывающей поток воды), с помощью которого можно имитировать «денежный поток», на самом деле, потоком не являющийся.

Во-вторых, допустим, инвестор имеет средства для использования в инвестиционном проекте, которые с течением времени (например, по дням) описываются гипотетической функцией A(t). Если, к примеру, он решил вложить деньги в момент t0, то на счет объекта инвестиций будет перечислена сумма

- у • A(t) dt = А%).

Но если инвестор перечисляет деньги несколькими траншами, например, в моменты времени t1, ..., tn и если у него для этого достаточно средств, а источники траншей независимы A0 A2 ..., An (0, то в течение реализации инвестиционного проекта на счет объекта инвестиций будет перечислена сумма

Ха а,).

I =0

Перечисление средств со счета на счет (проводки) — сложный дискретный процесс,

№ 1 (43) 2013

сущность и логика которого сильно отличают его от поведения транзакта или актора. Моделирование перечисления денежной суммы или стоимости с одного счета на другой требует конкретного действия в модели: ввода транзакта или актора в какой-то блок или выполнения конкретного события в момент т1 виртуального времени. Однако такое действие необязательно вызовет проводку этой суммы хотя бы по одной из двух причин.

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

Во-вторых, отрицательное сальдо по модулю может быть существенно больше положительного, а в этом случае ситуация становится неразрешимой, что еще хуже. Реально проводка может быть выполнена в момент т2 > т1. Причем в случае строгого неравенства аппарат управления текущими и будущими событиями не сможет определить т2.

Для реализации требования 1 необходимо иметь два типа дуг (рис. 7): переходы акторов отображают сплошные дуги, проводки — штрих-пунктирные. Условия прохождения акторов определяются известным событийным аппаратом, а условия выполнения проводок — формальным аппаратом симуляции бухучета, задействованным в моделирующей системе, причем модельер может совсем не обладать знаниями в этой специфичной области. Актору благодаря его программным возможностям «безразлично», сколько типов дуг в графе модели, не-

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

Требование 2. Необходима возможность трансформации состава и структуры модели в процессе ее выполнения. Реальные экономические процессы в динамике меняют не только свои параметры, но и структуру различных компонентов, включающих организацию предприятия (разделение, объединение, создание холдинга и др.), потоки управления и механизмы привлечения и распределения ресурсов. Такой вид реорганизации называется реинжинирингом. Соответственно, модель должна иметь возможность в процессе моделирования изменять свою структуру, функции и количество узлов.

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

• транзакт является структурой данных, переназначаемой адресами-указателями от одного блока модели к другому;

• актор является агентной программой, «путешествующей» по блок-схеме модели, которая имеет возможность трансформи-

1 ¡1

Счет 66:

Краткосрочный

кредит

send 66

Счет 51: Р/счет

send 51

Счет 62: Заказчики

Счет 60: Поставщики

send send

62 60

Т У *

Рис. 7. Схема модели с двумя типами дуг

19

№ 1 (43) 2013

.6 С

CL

s

и

I

S

СО

0

!

1

0 §

Е

1

I

I

и

S

СО

0

t

1

0

1

<0

U

0

!

§

со =s

1

I

5

ровать как структуру модели, так и самое себя.

В соответствии с концепциями теории ANT можно рассматривать любой узел Pilgrim-модели «с точки зрения компьютера» как автономный вычислительный процесс, выполняемый особой программой, реализующей функции узла. Узлы объединяются в направленный граф. Каждый граф модели располагается на своем отдельном модельном слое (рис. 8).

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

1. Изменение функций или возможностей узла модели, в частности:

• в модели предприятия сферы услуг можно уменьшить или увеличить число каналов параллельного обслуживания;

• при моделировании бухгалтерской системы обычное обслуживание клиентов мож-

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

2. Преобразование топологии (структуры) графа модели, т. е. изменение состава узлов и направлений путей продвижения акторов.

3. Увеличение или уменьшение количества модельных слоев.

4. Изменение принадлежности узла модельному слою (перемещение узлов по слоям).

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

Модели, имеющие изменяемую в процессе выполнения структуру, получили название «модели-трансформеры». Отметим несколько актуальных направлений их применения в экономике.

1. Главное направление: моделирование процессов реинжиниринга в бизнесе, где предприятия меняют структуру, функ-

Модель «Бизнес-проект» вхолдинге

Слой 1: управление бизнес-проектом

Слой 2:

управление

холдингом //

'serve pay queue

Слой 3:

управление

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

финансами //

Рис. 8. Динамический граф модели экономического процесса

20

№ 1 (43) 2013

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

2. В деятельности сложных экономических структур возможно возникновение ситуаций, приводящих к нарушениям корректного функционирования этих структур: в том числе, к правонарушениям. Их проявление может быть настолько скрытным, что нарушение обнаружится через несколько лет или останется незамеченным. Модели-трансформеры помогут проиграть возможные ситуации, выявить те из них, в результате которых возникают нарушения, выполнить анализ эффективности защиты и вероятных последствий.

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

Требование 3. Необходим аппарат пространственной динамики. Задачи макроэкономики, некоторые микроэкономические задачи, демографические и региональные задачи решаются с учетом взаимного географического расположения моделируемых процессов — с привязкой к географическим координатам и картам (рис. 9), а иногда и с учетом того, что Земля круглая. Причем в моделях в зависимости от их назначения могут использоваться как растровые карты, в основном в качестве карты-основы (как на рис. 9), так и векторные карты, автоматически создаваемые при выполнении модели (рис. 10).

Естественно, может возникнуть вопрос: | зачем нужно использовать карты, если су- г§ ществуют отечественные и зарубежные ¿g геоинформационные системы (ГИС)? Ад- ^ министрации территорий используют мощ- ^ ные ГИС как источники полезной информации, появляющейся в результате решения типовых и уникальных проектных задач, и требующие постоянной и трудоемкой поддержки.

Постановка принципиально новых про-ектно-экономических задач вызывает потребность в использовании новых данных и форм их представления для работы ГИС. Определить необходимые состав и объемы такой информации можно лишь на основе анализа решения указанных задач. Поэтому возможности ГИС зачастую недоступны, но, с другой стороны, для имитационных моделей, используемых для проверки проектных решений, геоинформация необходима. Для снятия этого противоречия потребовалось разработать особую «экспресс-технологию» загрузки геоинформации в компьютерную модель. Создание моделирующей системы Actor Pilgrim [7], обладающей картографическим возможностями, не противоречивыми в отношении ГИС типа ArcView, ArcInfo и MapInfo, стало следствием развития современной парадигмы моделирования.

Требование 4. Модели должны анализировать возможности появления рисковых ситуаций. Риск, в соответствии с вероятностно-математической интерпретацией общего определения [12], используемого в классической теории рисков, — это нежелательное событие, имеющее два взаимно независимых параметра:

• вероятность его появления на заданном интервале времени;

• наносимый ущерб (в случае свершения этого события).

В настоящее время в экономике существуют и постоянно совершенствуются методы управления рисками в рамках классической теории, эффективность которых должна проверяться на имитационных мо-

№ 1 (43) 2013

ja

¡E

S u

I

S

O

!

Ü

12 o

IS

0 §

ÍS

1

i I

I

S

0

ü

1

I

0

1 <0

s

u o

! §

00 =s

t

t £

Рис. 9. Фрагмент электронной растровой карты: окрестности Вязьмы (Смоленская область)

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

К сожалению, датчики псевдослучайных величин в составе современных пакетов, используемых для имитационного моделирования или решения задач методом Монте-Карло, обладают существенным недостатком: длина периода генерируемой псевдослучайной последовательности не превосходит примерно 5 • 109 чисел, т. е. полумиллиарда. Это делает их неприменимыми для моделирования рисковых ситуаций, которые появляются очень редко «на хвостах» распределений. В связи с этим для системы Actor Pilgrim разработан набор специальных программных средств [5], обладающих двумя специальными качествами:

• период соизмерим с величиной 1032 (для генерации такого набора на процессоре с частотой 2,5 ГГц потребуется несколько столетий);

Рис. 10. Векторная карта для пространственного моделирования (Смоленская область)

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

22

№ 1 (43) 2013

• соответственно, повышена точность всех генераторов, выдающих случайные последовательности «с хвостами».

Следует отметить, что кроме классической теории рисков, которая возникла примерно 200 лет назад, уже 80 лет развивается неоклассическая теория, основанная на анализе отклонений и связанных с ними характеристиках случайных процессов, таких как волатильность, дисперсия, коэффициент вариации. В ней используется несколько определений рисков. Например, известный финансист-математик Л. Галиц трактует риск как любое отклонение от номинала [2]. Для исследования рисков в таком понимании имитационное моделирование можно считать хорошим инструментом.

Система Actor Pilgrim: концепции и функциональные возможности

Укрупненная схема программной системы имитационного моделирования Actor Pilgrim показана на рис. 11. Она используется в различных экспериментах, в том числе в итерационных, когда необходимо

найти область оптимальных или рацио- | нальных значений параметров моделируе- г§ мого процесса в многомерном пространст- ,2 ве на неизвестной поверхности отклика, ^ математическое описание которой неиз- ^ вестно.

Существуют два методологических способа поиска такой области и, соответственно, планирования эксперимента:

• метод наискорейшего спуска, как правило, — по градиенту;

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

На верхней части рис. 11 изображены три «облакоподобных» процесса, объединенных стрелками. Первое облако относится к структурному анализу моделируемых процессов, второе — к подготовке программной модели, а третье — к анализу результатов. Показаны два возможных способа получения удовлетворительных результатов в процессе итераций, при этом решаются три обязательные задачи системного анализа: декомпозиции, анализа и синтеза.

Полуавтоматические Автоматические

Рис. 11. Общая схема программной системы Actor Pilgrim

i 23

№ 1 (43) 2013

js

С CL

s

и

I

S

О

!

Ü

12

0

1 §

ÍS

I

Ï I

'S

и

5

0

6

1

I

0

1 <0

u

0

!

s «

=s

1

il £

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

Второй способ. Разработчик модели позаботился об автоматическом построении эксперимента и, соответственно, изменении параметров и структуры модели в процессе прогона модели. В данном случае его участие в эксперименте упрощается.

На нижней части рис. 11 показаны конкретные инструменты. Дело в том, что в системе Actor Pilgrim имеется специальный язык для графического изображения моделей и их частей на отдельных слоях, а также упрощенный способ представления моделей на языке рассматриваемой системы.

Структурное моделирование — это представление модели в графическом виде с помощью знаковых конструкций, являющейся принадлежностью системы моделирования — аналогично GPSS, только в GPSS — 54 различных значка для изображения бло-

ков [11], а в Actor Pilgrim — только 17 значков для изображения узлов, однако по набору функций этого количества вполне хватает, чтобы полностью соответствовать GPSS. На основе данных конструкций создается текст модели на упрощенном языке описания процесса моделирования. Перечень узлов, операторов и их операндов в узлах модели приведен в табл. 1 (опубликована в № 6 (42)). Более подробная трактовка дана в [7].

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Проще всего реализовать модель, приведенную в примерах 1 и 2, с помощью графического конструктора — генератора моделей (рис. 12). В диалоговом окне с помощью меню размещаются обозначения узлов, связи между ними и параметры каждого узла в соответствии с теми, которые содержатся в табл. 2.

Назначение конструктора состоит в следующем: после компоновки рисунка и обеспечения всех узлов модели необходимыми параметрами он должен сгенерировать текст моделирующей программы, который в дальнейшем можно просматривать и редактировать в окне редактора Visual С++.

Конструктор Actor Pilgrim

ааш

Файл Узел Плоскость Модель Настройки Выполнить Окно Помощь

□ i щ ►

queue

О

destroy

О

produce

Корень: 1 »

О

actor

А

key

pay

parent

ModBeg

ModEnd

Переменные

Слой

Плоскость 1

□пm

Жители поселка

Комната ожидания

Парикмахер

queue 2

^ Л

serve 3

V__/

Касса

Рис. 12. Схема модели в окне графического конструктора GEM

24

serve

№ 1 (43) 2013

Таблица 2 §

Перечень узлов, операторов и их операндов в узлах модели

Узел-процесс Операнд Назначение позиционных операндов

Наименование Обозначение A, B, C, D, E, F, G, H

Генератор акторов f actoA_w УЕ0* A Имя генератора акторов

B Номер узла

C Начальное значение приоритета выходящего актора

{D} Вид закона распределения

{E} Параметр закона распределения

{F} Параметр закона распределения

{G} Параметр закона распределения

H Номер узла-приемника для сгенерированного выходящего актора

Материальный ресурс - attach 02 - A Имя ресурса

B Число затребованных элементов ресурса

{C} prty — очередь с приоритетами (none — для FIFO)

D Номер узла-приемника выходящего актора

Управляемый генератор /^create] A Имя управляемого генератора

B Номер порожденного семейства акторов

г C Число порождаемых акторов

{D} copy — присвоить параметры актора-родителя (или none)

E Номер узла-приемника порожденных акторов-детей

F Номер узла-приемника выходящего актора-родителя

Управляемый терминатор /^(destroy) A Номер управляемого терминатора

B Начальный номер диапазона уничтожаемых семейств

C Конечный номер диапазона уничтожаемых семейств

D Номер семейства уничтожающего актора-«ликвидатора»

E Число уничтожаемых акторов из диапазона [B, C]

F Номер узла-приемника выходящего актора

Финансовый директор - ► A Имя финансового директора

J direct! / 05 \ B Номер узла-приемника выходящего актора

Переход на нижний слой - down 06 - A Имя структурного узла перехода актора на нижний слой

B Номер узла-приемника на нижнем слое модели

C Номер узла возврата на слое размещения down

Очередь с динамическими приоритетами _Л dynamo/ w А07 г A Имя динамической очереди

B Номер узла, обслуживающего выходящий актор

Управляемый ключ гАп ► ease A Имя ключа

key /08\ А А , hold ; | rel B Номер узла-приемника выходящего актора

-ч ПРИКЛАДНАЯ ИНФОРМАТИКА

№ 1 (43) 2013 ' -

Продолжение табл. 2

S и

I

S

СО

0

!

1

О

ig

0 §

Е

И

1

Si

!

S

СО

0

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

t

1

о

! <0

is

U

0

! §

со =£

1

и §

Узел-процесс Операнд Назначение позиционных операндов

Наименование Обозначение A, B, C, D, E, F, G, H

Менеджер ресурсов , А , A Имя менеджера ресурсов

manage j ^ /09\ B Номер узла-приемника выходящего актора

Виртуальный слой-узел U parent/7 / 10 // — Список параметров и их значения создаются автоматически, независимо от разработчика модели

Перечисление со счета на счет pay 11 - A Имя структурного узла проводок и перечислений

B Номер узла send, на который нужно перечислить сумму

C Величина переводимой денежной суммы или стоимости

D Номер узла send, с которого нужно перечислить сумму

{E} prty — очередь с приоритетами (none — для FIFO)

F Номер узла-приемника на нижнем слое модели

G Номер узла возврата на слой размещения pay

Управляемый процесс Программа A Имя управляемого процесса

B Имя подключаемой программы или dummy

ггН C Номер исходной точки пространства или none

Л 12 / ▲ ▲ ssive {D} Временная динамика: Пространственная динамика:

active | i pa Вид закона распределения earth — геоповерхность; plane — плоскость; cosmos — произвольная; none — не заложена .

{E} Параметр закона распределения Интервал времени присутствия узла в пункте

{F} Параметр закона распределения Скорость перемещения узла, produce между пунктами пространства, км/ч

{G} Параметр закона распределения Не используется при моделировании пространств

H Номер узла-приемника выходящего актора

Очередь с относительными приоритетами - queue 13 - A Имя очереди

{B} prty — очередь с приоритетами (none — для FIFO)

C Номер узла, обслуживающего очередь

Выделение актору порции ресурса - rent 14 - A Имя структурного узла rent

B Требуемое актором число элементов ресурса

C Номер узла attach — склада ресурсов

{D} prty — очередь с приоритетами (none — для FIFO)

E Номер узла-приемника на нижнем слое модели

F Номер узла возврата на слой размещения rent

26

№ 1 (43) 2013

Окончание табл. 2 §

Узел-процесс Операнд Назначение позиционных операндов

Наименование Обозначение A, B, C, D, E, F, G, H

Счет бухгалтерского учета A Имя узла-счета send

- Y send 15 - B Номер узла send, на который нужно перечислить сумму

C Величина переводимой денежной суммы или стоимости

У {D} prty — очередь с приоритетами (none — для FIFO)

E Номер узла-приемника выходящего актора

Многоканальное обслуживание с прерываниями -н С "\ serve 16 V У A Имя узла обслуживания

B Число каналов обслуживания

{C} abs — обслуживание с абсолютными приоритетами none — обслуживание без прерываний

{D} Вид закона распределения

{E} Параметр закона распределения

{F} Параметр закона распределения

{G} Параметр закона распределения

H Номер узла-приемника выходящего актора

Терминатор term \ A Имя терминатора

Следует отметить, что этим средством удобно пользоваться на начальном этапе освоения системы Actor Pilgrim. Далее, поскольку язык моделирования очень прост, по мере приобретения разработчиком опыта потребность в генераторе уменьшается.

Независимо от способа получения модели текст программы обрабатывается в стандартной среде Visual С++, где происходят компиляция и редактирование межпрограммных связей, после чего появляется машинная программа в виде ехе-файла.

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

Текст автоматически сгенерированной программы показан на рис. 13. Если его сравнить с текстом GPSS-модели такой же системы массового обслуживания, можно убедиться в том, что полученная модель ничуть не сложнее, если понимать под сложностью количество символов.

Рассмотрим текст модели. Все модели оформляются в виде программного блока, начинающегося со структурного оператора forward, с которого в свою очередь начинается блок «Акторная модель». Акторы и узлы могут функционировать только внутри этого блока. Необходимое программное обеспечение симулятора подключается с помощью h-файла (заголовочного файла) модели. Опреатор modbeg инициирует внутренние структуры данных.

Все узлы графа модели, кроме генераторов actor, находятся внутри блока «Граф модели», который начинается со структурного оператора network. Каждый узел начинается с операторной метки, имеющей вид

№ 1 (43) 2013

ja

¡E

fi u

S 00 О

!

Ü

12

0

S

a S

1

ï

I

'S

и

5 00

0

6

1

I

0

1

<0

u

0

!

s «

=s

1

I

£

top (л):,

где n — номер узла, и заканчивается оператором

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

place;.

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

Разработчик модели может использовать любые операторы языка C/C++ для выполнения вычислительных действий, логических преобразований или обращений к собственным функциям внутри узла модели между top (n) и break, пользуясь тем обстоятельством, что продвижение актора в узле — это поток управления, единственным ограничением на который является запрет на использование оператора goto.

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

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

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

Заключение

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

#include <Pilgrim.h> double Tinp = 12.0; double Tser = 10.0; long Dinp = expo; long Dser = expo; long Chen = 1;

forward {

modbeg actor

network {

top(2): top(3): top(4):

fault }

modend ("

return 1; }

// Заглавный 1>файл модели

// Средний интервал между входящими акторами (клиентами) // Средний интервал обслуживания (клиента парикмахером) // Закон распределения интервала между входящими акторами // Закон распределения интервала обслуживания // Число каналов обслуживания (парикмахеров)

// Блок «Акторная модель»

("Модель обслуживания", 4, 100000000.0, (long)time(NULL), none, 2, none, none, 6);

("Жители поселка", 1, none, Dinp, Tinp, zero, zero, 2 ); (dummy,standard) // Блок «Граф модели»

queue ("Комната ожидания", none, 3); place;

serve ("Парикмахер", Chen, none, Dser, Tser, zero, zero, 4); place;

term ("Касса");

place;

(123);

Результаты^^', 1, 24, page);

// Узел 1

// Узел 2 // Узел 3 // Узел 4

Рис. 13. Сгенерированный текст модели

28

№ 1 (43) 2013

Таблица 3 §

Датчики получения случайных величин |

Датчик распределения Функция в Actor Pilgrim (типа double) Смысл аргументов функции:

Операнд D Назначение операнды E, F, G типа double в узлах actor, serve и produce

bern Распределение Бернулли bernully (E, F) E — математическое ожидание; F — длительность кванта времени; G = zero

erln Распределение Эрланга erlang (E, F) E — математическое ожидание одного интервала-слагаемого; F — число слагаемых, F > 1; G = zero

expo Экспоненциальное распределение expont (E) E — математическое ожидание; F = zero; G = zero

cent Нормальное распределение: на основе центральной предельной теоремы central (E, F) E — математическое ожидание; F — среднеквадратичное отклонение; G = zero

gamm Гамма-распределение gamma (E, F) E — параметр распределения ц; F — параметр распределения, к > 0; G = zero

hype Гиперэкспоненциальное распределение: для групповых потоков hyperexp (E, F) E — математическое ожидание интервала поступления групп; F = 1/к, где к — математическое ожидание числа заявок в группе, 0 < к < 1; G = zero

logn Логнормальное распределение: точное lognorm (E, F) E — параметр распределения ц; F — параметр распределения о; G = zero

muln Логнормальное распределение: точное muller (E, F) E — математическое ожидание цлн; F — среднеквадратичное отклонение олн; G = zero

norm Нормальное распределение: точное gauss (E, F) E — математическое ожидание; F — среднеквадратичное отклонение; G = zero

tria Треугольное распределение triangle (E, F, G) E — минимальное значение; F — значение моды; G — максимальное значение

unif Равномерное распределение unifrm (E, F) E — математическое ожидание; F — максимальное отклонение; G — максимальное значение

none Программный датчик пользователя Функция пользователя double E — функция пользователя, возвращающая после каждого обращения случайную величину double; F = zero; G = zero

none Детерминированная величина: датчик не используется Число или переменная double E — константа или переменная double; F = zero; G = zero

Равномерное распределение на (0,1): главный датчик random () Аргументов нет (void); самостоятельного значения как операнд D в узлах actor, serve, produce не имеет

29

№ 1 (43) 2013

ja

¡E

fi u

5 00 О

!

Ü

12

о g

0 g

s

1

ï

I

'S

Ü

s 00

0

6

1

O

!

<0

s

u

0

!

s «

=s

1

t £

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

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

В настоящее время проводятся работы по наращиванию возможностей системы.

Список литературы

1. Анфилатов В. С., Емельянов А. А., Кукушкин А. А. Системный анализ в управлении / под ред. А. А. Емельянова. М.: Финансы и статистика, 2009. — 368 с.

2. Галиц Л. Финансовая инженерия: инструменты и способы управления финансовым риском. М.: ТВП, 1998. — 576 с.

3. Девятков В. В. Мир имитационного моделирования: взгляд из России // Прикладная информатика. 2011. № 4. С. 9-29.

4. Емельянов А. А. Имитационное моделирование экономической динамики // Прикладная информатика. 2010. № 1. С. 105-118.

5. Емельянов А. А. Лаг-генераторы для моделирования рисковых ситуаций в системе Actor Pilgrim // Прикладная информатика. 2011. № 5. С. 98-117.

6. Емельянов А. А. Расширение парадигмы имитационного моделирования дискретных процессов // Всероссийская научно-практическая конференция по имитационному моделированию социально-экономических систем (ВКИМ-СЭС). Труды конференции (ВЗФЭИ, 15 мая 2012 г.). Москва-Невель: Принт-Сервис, 2012. С. 34-38.

7. Емельянов А. А., Власова Е. А., Дума Р. В., Емельянова Н. З. Компьютерная имитация экономических процессов / под ред. А. А. Емельянова. М.: Маркет ДС, 2010. — 464 с.

8. Емельянов А. А, Власова Е. А, Емельянова Н. З, Прокимнов Н. Н. Имитационное моделирование инвестиционных процессов // Прикладная информатика. 2012. № 2 (38). С. 93-99.

9. Корн Г. и Корн Т. Электронные аналоговые и аналого-цифровые вычислительные машины. Т. 1-2. М.: Мир, 1967-1968.

10. Теория систем и системный анализ в управлении организациями: Справочник / под ред. В. Н. Волковой и А. А. Емельянова. М.: Финансы и статистика, 2012. — 840 с.

11. Шрайбер Т. Дж. Моделирование на GPSS. М.: Машиностроение, 1979. — 592 с.

12. Encyclopaedia Britannica. UK: London, 1974, issue 15, vol. 30.

13. Gordon G. A general purpose systems simulator // IBM Systems Journal, Vol. 1. Issue 1. September, 1962. Р. 18-32. IBM Corp. Riverton. NJ, USA (Общецелевой системный симулятор).

14. Терентьев Н. Е. Риски инновационного развития и повышение конкурентоспособности компании // Современная конкуренция. 2008. № 3 (9).

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

15. Газизулин Р. И. Основные направления формирования системы управления рисками развития предпринимательства малого бизнеса // Современная конкуренция. 2011. № 1 (25).

16. Рубин Ю. Б. Постановка задач имитационного тактического моделирования наступательных конкурентных действий // Прикладная информатика. 2006. № 3 (3).

17. Рубин Ю. Б. Постановка задач имитационного моделирования тактических защитных конкурентных действий // Прикладная информатика, 2008. № 1 (13).

18. Дли М. И., Какатунова Т. В. Трехуровневая нечеткая когнитивная модель для анализа процессов инновационного развития региона // Прикладная информатика. 2013. № 1 (43).

19. Дулесов А. С., Прутовых М. А. Алгоритмы территориального размещения предприятия на основе геоинформационных технологий // Прикладная информатика. 2012. № 5 (41).

20. Бочаров Е. П., Алексенцева О. Н., Ермо-шин Д. В. Оценка рисков промышленных предприятий на основе имитационного моделирования // Прикладная информатика. 2008. № 1 (13).

30

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