Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МГУПБ. Лаб. практ.мод. сист. в печать конечная...doc
Скачиваний:
5
Добавлен:
01.05.2025
Размер:
4.54 Mб
Скачать

Задание и порядок выполнения работы

  1. Составить структурную схему иерархической имитационной модели CedarBog экологической системы с базисными компонентами: Sun, Natur, Lake, Environ, Organic с описанием всех переменных состояния и сенсорных переменных модели. Компонент Natur содержит подкомпоненты: plants (растения), herbivores (травоядные), carnivores (хищники), а компонент Lake – подкомпоненты layer1 - layer 3. Компоненты environ (окружающая среда) и organic (донные отложения) находятся на одном уровне с компонентами Natur и Lake.

  2. Составить рабочие версии описания базисных компонентов двух смежных иерархических уровней: sun (солнце), plants (растения), herbivores (травоядные), carnivores (хищники), environment (окружающая среда) и organic (донные отложения) и инсталлировать общую модель системы с помощью двух компонентов верхнего уровня Lake_High и CedarBog_High.

  3. В имеющуюся многоуровневую модель CedarBog добавить 4-й слой layer 4 с параметрами f:=0.4; инициализировать константы.

  4. Запустить компонент Lake как независимый с начальным значением сенсорной переменной sun = 95,9. Посмотреть результаты имитации для переменных состояния sun.

  5. Дополнить двухуровневую модель изменением солнечной активности по сезонам в году с генерацией случайного состояния погоды по дням по заданным законам распределения вероятностей.

Вопросы для самопроверки

1. Что такое декомпозиция модели?

2. Что дает использование многокомпонентных моделей?

3. Структура компонента верхнего уровня в иерархических моделях.

4. Для чего служат сенсорные переменные и примеры их использования?

5. Формы определения связей между переменными состояния и сенсорными переменными и могут ли многокомпонентные модели не использовать сенсорные переменные?

6. В чем различие объектно- и агентно-ориентированных моделей?

Требования к отчету

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

Литература

1. Ивашкин Ю.А. Мультиагентное имитационное моделирование больших систем : учебное пособие / Ю.А. Ивашкин. – М. : МГУПБ, 2008. – 238 с.

2. Шмидт Б. Искусство моделирования и имитации. Введение в универсальную имитационную систему Simplex3 / Б. Шмидт; перевод с немецкого под редакцией Ю.А. Ивашкина и В.Л. Конюха. – Ghent, Belgium, 2003. – 550 с.

3. Schmidt B. The Art of modelling and simulation / B. Schmidt. – SCS - Europe BVBA, Ghent, Belgium, 2001. – 504 c.

Лабораторная работа № 11 собственные функциональные компоненты

SIMPLEX- MDL

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

Теоретическое введение

Процедурные составляющие языка Simplex-MDL выделяются в отдельные функциональные компоненты в следующей форме:

FUNCTION <имя компонента>

[MOBILE SUBCOMPONENTS of CLASS <имя мобильного компонента>]

[USE OF UNITS]

[LOCAL DEFINITION]

[DECLARATION OF SUBFUNCTIONS]

DECLARATION OF ELEMENTS

[CONSTANTS ]

INPUT PARAMETER[S]

OUTPUT PARAMETER[S]

[LOCAL VARIABLES]

[RANDOM VARIABLES]

<процедурная часть>

END OF <имя компонента>

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

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

Процедурная часть начинается с ключевого слова BEGIN и использует указатели для локальных переменных и параметров вывода, а также операторы DISPLAY, IF, циклы FOR и WHILE:

LOOP <имя цикла>

WHILE <условие>

REPEAT

<тело цикла>

[EXIT <имя цикла>]

END LOOP <имя цикла>

Цикл повторяется пока условие истинно и при его невыполнении заканчивается по команде EXIT.

Функциональный компонент объявляется в разделе LOCAL DEFINITION базисного компонента после ключевых слов DECLARATION OF SUBFUNCTIONS c указанием имени и интерфейса по форме:

< имя функции > (< тype > : <Inputparameter1> {, (< тype >

< Inputparameter >} → <тype outparameter1> {, <тype outparameter> })

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

При объявлении функции в базисном компоненте указываются ее формальные параметры, их тип (real, integer, logical, location, array) и единицы измерения.

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

Рассмотрим пример MDL-функции, выполняющей в модели CedarBog очистку озера от органических отложений:

BASIC COMPONENT Organic

USE OF UNITS

TIMEUNIT = [a]

LOCAL DEFINITIONS

DECLARATION OF SUBFUNCTIONS # Объявление MDL -функции

Sbros (REAL[t],REAL[t] --> REAL[t],REAL[t])

DECLARATION OF ELEMENTS

STATE VARIABLES

CONTINUOUS

o (REAL[t]) := 0 [t],

omax (REAL[t]) := 200 [t]

SENSOR VARIABLES

CONTINUOUS

p (REAL[t]),

h (REAL[t]),

c (REAL[t])

DYNAMIC BEHAVIOUR

DIFFERENTIAL EQUATIONS

o' := 2.55[1/a] * p + 6.12[1/a] * h + 1.95[1/a] * c ;

END

ON ^o >= omax ^

DO

(o^, omax^) := Sbros (o,omax); # Вызов внутренней MDL -функции

END

END OF Organic

Внутренняя MDL- функция к компоненту Organic:

FUNCTION Sbros

USE OF UNITS

TIMEUNIT = [a]

DECLARATION OF ELEMENTS

INPUT PARAMETERS # Объявление входных параметров функции

In1 (REAL[t]) ,

In2 (REAL[t])

OUTPUT PARAMETERS # Объявление выходных параметров

Out1 (REAL[t]),

Out2 (REAL[t])

BEGIN

Out1:= 0.2* In 1; # Тело процедуры - функции

Out2:= 3* In2 / 2;

RETURN

END OF Sbros

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

Вызов функции в базисном компоненте осуществляется оператором

(o^,omax^) := Sbros(o,omax); .