<<
>>

Приложение В

(справочное)

Разработка имитационной модели в AnyLogic

В данном приложении приведем основные настройки и исходные коды разработанной имитационной модели на платформе AnyLogic 7.

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

основные элементы модели.

Рисунок В.1 - Основной интерфейс имитационной модели

Таблица В.1 - Общие настройки имитационной модели

Основные
Единицы модельного времени дни
Численные методы
Метод решения дифф.ур-й Эйлер
Метод решения алгебр. ур-й Измененный Ньютон
Метод решения смешанных ур-й RK45+Newton
Абсолютная точность 1.0E-5
Временная точность 1.0E-5
Относительная точность 1.0E-5
Фиксированный шаг по времени 0.001

Таблица В.2 - Настройки агента Main

Агент в диаграмме процесса
Использовать в диаграммах процесса Агент
Пространство и сеть
Тип пространства Непрерывное
Тип расположения Задается пользователем
Применить расположение при запуске true
Тип сети Задается пользователем
Создать сеть при запуске true
Выполнять шаги false
Java для экспертов
Импорт import

j avax.swing.text.StyledEditorKit.F ontSizeAction; import j avax.activation.DataHandler; import java.util.function.DoubleToIntFunction; import com.anylogic.engine.internal.ln;

Таблица В.3 - Настройки функции redrawFons

Основные
Тип возвращаемого значения: Действие (не возвращает ничего)
На презентации true
Отображать метку true
Тело функции
double MIN BUBBLE SIZE = 2,

MAX BUBBLE SIZE = 2, DIAGRAM X POS = 180, DIAGRAM Y POS = 50,

DIAGRAM HEIGHT = 200, DIAGRAM WIDTH = 170;

double verticalGap = 8, horizontalGap = 8;
Тело for( Fon fo : fons ){ double yCoord = DIAGRAM Y POS + verticalGap + ((DIAGRAM_HEIGHT - 2 * verticalGap) * random() ); double xCoord = DIAGRAM X POS + horizontalGap + ((DIAGRAM_WIDTH - 2 * horizontalGap) * random() ); double size = MAX_BUBBLE_SIZE * FonSize_; fo.show( xCoord, yCoord, size, true ); }
Специфические
Статическая false
Уровень доступа по умолчанию
Единицы измерения (сист.
динамика)
false

Таблица В.4 - Настройки функции KoefDiff

Основные
Тип возвращаемого значения double
Тип возвращаемого значения: Возвращает значение
На презентации true
Отображать метку true
Тело функции
Тело if ( StateinMarketNIP > 0 ) return ( InnPSize / (FonSize + InnPSize + NIPSize) ) * 0.01 * UserAbility * ( 1 + StateUsers ); // * log ( Demand / (StateUsers + 1) ) ((Demand - StateUsers) / Demand) * (Demand / (Demand + DemandNIP));

else return ( InnPSize / (FonSize + InnPSize) ) * 0.01 * UserAbility * ( 1 + StateUsers ); // * log ( Demand / (StateUsers + 1) ); // ((Demand - StateUsers) / Demand );

// ( 1 + StateUsers /* / MarketSize */ );

Специфические
Статическая false
Уровень доступа по умолчанию
Единицы измерения (сист. динамика) false

Таблица В.5 - Настройки функции Force

Основные
Тип возвращаемого значения double
Тип возвращаемого значения: Возвращает значение
На презентации true
Отображать метку true
Тело функции
Тело if ( Offer == 0 || Demand == 0 || ( Demand + StateKilled - 1 ) == StateUsers ) return 0; else {if ( StateinMarketNIP < 1 ) return log ( xidz(Demand + StateKilled, StateUsers + 1, 0) );

else return log ( xidz(Demand * Demand, (Demand + DemandNIP) * (StateUsers + 1), 0 ) ); } //else return 0;

// (PotentUsers() * (StateUsers+1))/MarketSize;

Специфические
Статическая false
Уровень доступа по умолчанию
Единицы измерения (сист.
динамика)
false

Таблица В.6 - Настройки функции FonSize_int

Основные
Тип возвращаемого значения int
Тип возвращаемого значения: Возвращает значение
На презентации true
Отображать метку true
Тело функции
Тело int i; double h; h = 0.5 * MarketSize * ( 1 - InnPSize ) ; return i = (int) h;
Специфические
Статическая false
Уровень доступа по умолчанию
Единицы измерения (сист. динамика) false

Таблица В.7 - Настройки функции Force_NIP

Основные
Тип возвращаемого значения double
Тип возвращаемого значения: Возвращает значение
На презентации true
Отображать метку true
Тело функции
Тело if ( OfferNIP == 0 || DemandNIP == 0 || StateUsersNIP == DemandNIP ) return 0; else return log ( DemandNIP / ( StateUsersNIP + 1 ) );

Таблица В.8 - Настройки функции PointSatur

Основные
Тип возвращаемого значения: Действие (не возвращает ничего)
На презентации true
Отображать метку true
Тело функции
Тело if ( (StateUsers ) >= ceil(QuanPoint - 5) && (StateUsers) 1 &&StateUsersNIP >= ceil(QuanPointNIP - 10) &&StateUsersNIP 1 && (StateUsersNIP = DemandNIP - 50) ) { TimeSaturNIP = time();

QSaturNIP = StateUsersNIP; QSumSatNIP = SumUsers(); }

Специфические
Статическая false
Уровень доступа по умолчанию
Единицы измерения (сист.
динамика)
false

Основные
Logging true
Условие StateReadytoLaunch < 10 &&StateUsers < Demand
Тип события При выполнении условия
На презентации true
Отображать метку true
Действие
Действие add_innovationPs(); //create a new

agent //PointSatur(); StartNewInnProduct.restart();

Таблица В.11 - Настройки события setColor

Основные
Logging true
Интенсивность (1 : PER_SECOND)
Тип события С заданной интенсивностью
На презентации true
Отображать метку true
Действие
Действие if (inState(inMarket) &&getX() >= 90 &&getX() = 250) { oval_innovation.setFillColor(brown); oval_innovation.setLineColor(gray); }

// setCol or.re start();

Таблица В.12 - Настройки кнопки button_startNIP

Основные
Вкл. true
Текст метки Запуск
На верхнем уровне true
Действие
Действие if (StateUsers < QuanPoint - 10) QuanPoint = (Demand * Demand / (Demand * E + E * DemandNIP) ); TStartNIP = time(); QStartIP = StateUsers; QSumStart =

SumUsers(); QuanPointNIP = DemandNIP / E; StartNIPButton();

Таблица В.13 - Настройки перехода Launch

Основные
Доп.
условие
main.StateinMarket < ( main.Demand - main.StateUsers + main.StateKilled )
Действие TimetoLaunch = time(); GetX = getX() + 110 + uniform (15, 110); moveTo( GetX, getY() );
Интенсивность (12 * main.Offer : PER_MONTH)
Тип события С заданной интенсивностью
Отображать метку true

Таблица В.14 - Настройки перехода Purchase

Основные
Действие main.StatePurchase++; moveTo( GetX + 195, getY() );
Условие get_Main().StateUsers < get_Main().slider_demand.getValue() + main.StateKilled
Переход по умолчанию false
Отображать метку true

Таблица В.15 - Настройки состояния ReadyToLaunch

Основные
Действие при выходе main.StateReadytoLaunch--;
Действие при входе oval_innovation.setFillColor( gold ); oval_innovation.setLineColor( gold ); main.StateReadytoLaunch++;
Цвет заливки gold
Отображать метку true

Таблица В.16 - Настройки состояния inMarket

Основные
Действие при выходе main.StateinMarket--;
Действие при входе if (isMoving()) { oval_innovation.setFillColor(transparent(orange, 0.3)); oval_innovation.setLineColor(white); }

<< | >>
Источник: Цветкова Надежда Андреевна. МОДЕЛИ И МЕТОД УПРАВЛЕНИЯ ПРОЦЕССОМ РАСПРОСТРАНЕНИЯ ИННОВАЦИЙ С УЧЕТОМ ИХ ВЗАИМНОГО ВЛИЯНИЯ В СОЦИАЛЬНО-ЭКОНОМИЧЕСКИХ СИСТЕМАХ. ДИССЕРТАЦИЯ на соискание ученой степени кандидата технических наук. Санкт-Петербург - 2018. 2018

Еще по теме Приложение В:

  1. Приложения Приложение 1 Нормативно-правовые акты, регламентирующие инвестиционную деятельность на территории Калининградской области
  2. Приложения Приложение 1 Налоговые последствия управления задолженностью
  3. Приложения Приложение 1 Теоретические основы
  4. Приложения Приложение 1 Гражданский кодекс Российской Федерации (часть вторая) Глава 34. Аренда § 6. Финансовая аренда (лизинг)
  5. Приложения
  6. Приложения
  7. Приложения
  8. Приложения
  9. Приложения
  10. Приложения
  11. Приложения
  12. Приложение
  13. Содержание и техника составления приложения к бухгалтерскому балансу
  14. Приложения
  15. Приложения
  16. Приложения
  17. Приложения