Выбран будет другой тип

Параметры

Тип агента может иметь параметры

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

Значения параметров можно изменять во время работы модели. При необходимости, вы можете задать действия, которые должны выполняться при изменении значения параметра, написав обработчик этого события.

Единицы измерения

Если ваш параметр задает время, скорость, длину, ускорение, интенсивность или площадь, вы можете создать параметр соответствующего типа и указать для него подходящие единицы измерения. Например, для задания скорости и времени поддерживаются следующие единицы измерения:

  • Время: миллисекунды, секунды, минуты, часы, дни, недели, месяцы, годы.
  • Скорость: м/с, км/ч, футы в секунду, футы в минуту, мили в час, узлы.

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

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

Типы параметров

Как и многие другие инструменты имитационного моделирования, AnyLogic поддерживает параметры простых типов: вещественные параметры (real), целочисленные (integer) и логические (boolean). Но только AnyLogic предоставляет уникальную возможность создания параметров любых Java классов.

Вы можете создать, например, параметр класса String, чтобы хранить строковые константы, или параметр класса ArrayList, который будет хранить динамический массив объектов. Вы можете создать параметр типа Object (базовый Java класс) и присвоить этому параметру в качестве значения объект любого Java класса. Позднее вам будет нужно проверить фактический тип значения этого параметра и привести параметр к его фактическому типу. Описание классов Java вы можете найти в документации по Java SDK, доступной по адресу http://docs.oracle.com/javase/8/docs/api/.

Вы также можете создавать параметры ваших собственных типов, созданных вами в рамках модели.

Поскольку все элементы модели AnyLogic заданы экземплярами классов Java, вы можете создать параметры соответствующих классов и использовать элементы модели в качестве параметров.

Создание параметра

  1. Перетащите элемент Параметр из палитры Агент на диаграмму типа агентов (или эксперимента).
  2. Перейдите в панель Свойства этого параметра.
  3. Введите имя параметра в поле Имя. По этому имени параметр будет доступен из кода.
  4. Если параметр задает время, скорость, длину, ускорение, интенсивность или площадь, выберите для него соответствующий Тип, а затем нужные Единицы измерения в списке ниже.
  5. Задайте тип параметра. Выберите один из наиболее часто используемых типов (int, double, boolean, String) или же, если вам нужно создать параметр другого Java класса — выберите опцию Другой и введите имя типа в расположенном справа поле.
  6. В поле Значение по умолчанию вы можете задать значение параметра по умолчанию. Это значение может быть впоследствии изменено во время работы модели с помощью функции set_имяПараметра(новое значение). Если значение не будет задано явно, то параметр будет проинициализирован в соответствии с правилами Java, то есть, например, параметр типа double будет равен 0, параметр типа boolean будет равен false.
  7. Если вы хотите использовать параметр как массивсистемной динамики, поставьте флажок для опцииМассив системной динамики, затем перейдите к таблице Размерностии выберите размерности для массива. Чтобы задать значения по умолчанию для элементов массива, щелкните кнопкуРедактировать…

Свойства

Задание действия, выполняемого при изменении значения параметра

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

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

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

  1. Выберите параметр в графическом редакторе или в панели Проекты.
  2. В секции Специфические панели Свойства введите код, который будет выполняться при изменении значения параметра, в поле Действие при изменении. Введенный здесь код будет вызываться при вызовах функции set_<имя параметра>() (при простом присваивании, таком, как parameter=5; он выполняться не будет). Этот обработчик также не будет выполняться, если новое значение, задаваемое методом set_<имя параметра>() будет равно текущему значению данного параметра. В этом коде доступна локальная переменная oldValue, которая хранит старое значение параметра (то значение, которое было у параметра до этого изменения значения).

См. также

Просмотр значений и графиков параметров

Изменение значений параметров

Источник

Поделиться:
Нет комментариев

Добавить комментарий

Ваш e-mail не будет опубликован. Все поля обязательны для заполнения.

×
Вам будет интересно