IOSO оптимизация





в палитре на схеме

Описание

Блок IOSO оптимизации параметров модели предназначен для подбора таких параметров оптимизации, которые бы удовлетворяли необходимым значениям критериев оптимизации.

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

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

Работа с блоком IOSO оптимизации

На вход блока подается вектор критериев оптимизации. На основании их значений, используя методы оптимизации, происходит подбор значения вектора параметров оптимизации так, чтобы значения критериев начали удовлетворять необходимым условиям. Использование блока во многом аналогично блоку Оптимизатор. С примерами настроек и использования при решении различных задач оптимизации можно ознакомиться в демонстрационных примерах в директории программы SimInTech\Demo\Оптимизация.

Входные порты

Имя Описание Тип линии связи
InPort Порт входа для критериев оптимизации Математическая

Выходные порты

Имя Описание Тип линии связи
OutPort Порт выхода вектора значений варьируемых переменных Математическая

Свойства

Название Имя Описание По умолчанию Тип данных
Режим оптимизации параметров optmode Выбор между изменением оптимизируемых параметров:
  • "По полному переходному процессу" − в результате полного переходного процесса;
  • "В динамике с остановкой" − динамически;
  • "В динамике непрерывно" − несколько раз в течение одного цикла моделирования
По полному переходному процессу Перечисление
Периодичность анализа критериев оптимизации при расчете в динамике, сек optstep

Периодичность пересчета оптимизируемых параметров при динамическом режиме оптимизации.

Опция имеет смысл только когда "Режим оптимизации параметров" имеет значение "В динамике непрерывно" либо "В динамике с остановкой"

1 Вещественное
Выдача информации о процессе оптимизации printoptinfo При включении опции, после каждого шага оптимизационного расчета, в окне сообщений выводится информация о значениях X и Y, где X – вектор значений варьируемых параметров, а Y – вектор значений критериев оптимизации Да Двоичное
Максимальное количество итераций поиска kitmax Максимальное число циклов оптимального расчета в ходе которых алгоритм будет пытаться подобрать оптимальные параметры. Если по окончании указанного числа расчетов, не были найдены значения параметров, удовлетворяющие критериям оптимизации, то расчет прерывается 10 Целое
Количество повторов вызова функции nrepeat Число повторов вызова функции 1 Целое
Число варьируемых переменных nva

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

Ограничение по количеству составляет "20" переменных

1 Целое
Число откликов nrs

Количество критериев оптимизации, значение которых оценивается при изменении значений варьируемых переменных.

Ограничение составляет до "10" критериев и до "100" нелинейных ограничений типа "Неравенство"

1 Целое
Заданное количество Парето–оптимальных решений npz

Желаемое количество Парето-оптимальных решений, равномерно распределенных в пространстве критериев.

Предельная величина этого параметра зависит от размерности задачи. Рекомендуемый диапазон значений от "10" до "100"

10 Целое
Точность оптимизации epsop

Условная точность решения задачи. Используется для вычисления stop-критерия при решении однокритериальных задач.

Для многокритериальных задач данный параметр играет вспомогательную роль и должен иметь значение в диапазоне от "10-6" до "10-3"

0.0001 Вещественное
Точность соблюдения ограничений epsogr Ограничение считается нарушенным, если превышает предельное значение на величину, большую, чем заданная точность. Опция имеет смысл, когда "Код отклика" включает в себя ограничение 0.0001 Вещественное
Диапазоны варьируемых переменных [min(1), max(1)....min(NVA), max(NVA)] vardes Диапазон изменения варьируемых переменных. Задается в виде массива перечисления минимального и максимального значений каждой переменной [1 , 20] Массив
Код отклика irsdes Описывает способ контроль критериев оптимизации:
  • "Не контролируем";
  • "Целевая функция, минимизируемая, без ограничений";
  • "Целевая функция, максимизируемая, без ограничений";
  • "Целевая функция, минимизируемая, есть нижняя граница";
  • "Целевая функция, максимизируемая, есть нижняя граница";
  • "Целевая функция, минимизируемая, есть верхняя граница";
  • "Целевая функция, максимизируемая, есть верхняя граница";
  • "Целевая функция, минимизируемая, значение ограничено с двух сторон";
  • "Целевая функция, максимизируемая, значение ограничено с двух сторон";
  • "Ограничиваемый параметр, ограничение снизу";
  • "Ограничиваемый параметр, ограничение сверху";
  • "Ограничиваемый параметр, ограничение с двух сторон"
Целевая функция, минимизируемая, без ограничений Множество
Значения для откликов [min(1), max(1), w(1)....min(NRS), max(NRS), w(NRS)] rsdes Массив значений для критериев оптимизации − перечисляются минимальное, максимальное значения, а также параметр значимости данного критерия (величина от 1 до 2) [0 , 100 , 1] Массив
Флаг запуска задачи на продолжение klpr
Принимает значения:
  • "Да" − продолжать расчет;
  • "Нет" − начинать заново.

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

Нет Двоичное
Флаг записи лога решения задачи (все вызовы модели) kllog В случае включения флага, в окне сообщений проекта будет выводиться лог решения задачи Нет Двоичное
Флаг записи файла плана (нужен для запуска задачи на продолжение) klplan

записывать или нет файл продолжения расчета, указанный в свойстве "Имя файла плана"

Нет Двоичное
Ограничение по времени решения задачи [сутки, часы, минуты] itimemax Максимальная продолжительность решения задачи оптимизации [0 , 3 , 0] Целый массив
Количество начальных точек num_ini

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

Ограничение по количеству точек составляет "20".

Информация о начальных точках должна находиться в свойствах "Коды состояния начальных точек" и "Массив начальных точек, размерность NUM_INI*(NVA+NRS)"

0 Целое
Коды состояния начальных точек ipini

Массив состояний каждой начальной точки, может состоять из нулей и единиц, где 0 – код соответствующий отсутствию откликов для данной точки и говорящий о том, что их нужно рассчитывать, 1 — для данной точки есть отклики, значение можно брать из свойства "Массив начальных точек".

Принимает значения:
  • "Нет откликов для точки, рассчитываем их по модели":
  • "Есть отклики, не вызываем модель, доверяемся FINI"
Множество
Массив начальных точек, размерность NUM_INI*(NVA+NRS) fini массив начальных значений варьируемых переменных и критериев оптимизации; [] Массив
Имя файла плана planfilename имя бинарного файла, используемого для продолжения расчета. Строка

Параметры

Блок не имеет параметров.

Примеры

Блок не имеет примеров.