Оптимизационные параметры

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

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

Оптимизационным параметром может быть только параметр агента верхнего уровня эксперимента. Если вам нужно оптимизировать параметры вложенных агентов, то вам будет нужно воспользоваться механизмом связывания параметров. (Из этого вытекает и другое требование - чтобы проводить оптимизационные эксперименты, агент верхнего уровня этого эксперимента должен содержать хотя бы один параметр).

Вы можете задать неограниченное количество оптимизационных параметров для одного эксперимента.

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

Типы оптимизационных параметров

В процессе оптимизации оптимизационный параметр принимает значения из заданного интервала допустимых значений по правилам, принятым для данного типа параметра. AnyLogic поддерживает три типа оптимизационных параметров:

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

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

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

Набор значений представляет собой конечный набор дискретных значений. Эти значения считаются так же, как и для дискретного параметра – первое допустимое значение равно заданной нижней границе интервала, следующее равно сумме первого значения и заданного шага и т.д. Но в отличие от дискретного параметра, значения такого параметра не зависят друг от друга, этот параметр используется не для задания количественных характеристик, а для задания набора альтернативных значений, которые может принимать параметр. Порядок, в котором заданы значения, не имеет никакого значения. С помощью набора значений вы можете, например, промоделировать выбор варианта из каталога, записи в котором расположены в произвольном порядке. А параметр - набор значений, принимающий значения 0 или 1 (минимум=0, максимум=1, шаг=1), может, например, определять, присутствует ли в модели какой-то элемент.

Задание оптимизационных параметров

Оптимизационные параметры задаются в таблице Параметры в соответствующей секции свойств оптимизационного эксперимента. Каждый параметр задается в отдельной строке таблицы.

 Чтобы сделать параметр эксперимента оптимизационным
  1. Выберите оптимизационный эксперимент в панели Проекты.
  2. В секции Параметры панели Свойства, перейдите к той строке таблицы Параметры, которая содержит параметр, который вы хотите сделать оптимизационным.
  3. Щелкните мышью в ячейке Тип и выберите тип оптимизационного параметра, отличный от значения фиксированный. Список возможных значений будет меняться в зависимости от типа параметра: набор значений, intдискретный для целочисленных параметров типа intнепрерывный и дискретный для вещественных параметров типа double и т.д. 
  4. Задайте диапазон допустимых значений параметра. Введите нижнюю границу диапазона в ячейке Мин и верхнюю - в ячейке Макс
  5. Для параметров набор значений и дискретный нужно также указать в ячейке Шаг величину шага (инкремента), с помощью которого будут определяться допустимые значения данного параметра (первое допустимое значение равно заданной нижней границе интервала, следующее равно сумме первого значения и заданного шага и т.д.).