Перейти к основному содержимому

О2.СоздатьПараметрыПоиска

Формирует и возвращает структуру параметров поиска решения. Структура передаётся методу О2.РешитьМодель вторым аргументом и управляет выбором сервиса решателя, настройками ограничения поиска и параметрами лицензирования.

Синтаксис​

О2.СоздатьПараметрыПоиска(Сервис, НастройкиРешателя, ПараметрыЛицензирования)

Параметры​

  • Сервис — Структура, Неопределено — Настройки подключения к сервису решателя. Если не указаны, используется локальный сервис. Формируется одним из методов модуля Сервисы:
  • НастройкиРешателя — Структура, Неопределено — Ограничения поиска, передаваемые решателю. Формируется методом СоздатьНастройкиРешателя. Поля структуры:
    • ТипРешателя — ПеречислениеСсылка.О2_ТипыРешателей, Неопределено — явно выбираемый решатель. Если не указан, решатель выбирается автоматически по типу модели.
    • ЛимитВремени — Число, Неопределено — допустимое число секунд на поиск решения. Значение 0 или Неопределено означает отсутствие лимита.
    • КоличествоПотоков — Число, Неопределено — максимальное количество потоков. Значение 0 или Неопределено означает использование всех доступных ядер процессора.
    • ДополнительныеНастройки — Соответствие — дополнительные настройки конкретного типа решателя:
      • Ключ — Строка — имя настройки;
      • Значение — Строка — значение настройки.
  • ПараметрыЛицензирования — Структура, Неопределено — Параметры использования коммерческой лицензии. Формируется методом СоздатьПараметрыЛицензирования. Поля структуры:
    • КодЛицензиата — Строка, Неопределено — код получателя лицензии, указанный в лицензионном файле в поле customerCode. Если не указан, применяются лимиты свободной лицензии.

Возвращаемое значение​

  • Структура — структура параметров поиска с полями:
    • Сервис — Структура, Неопределено — переданный параметр;
    • НастройкиРешателя — Структура, Неопределено — переданный параметр;
    • ПараметрыЛицензирования — Структура, Неопределено — переданный параметр.

Описание​

Метод используется для явного указания параметров решения. Если никакие параметры не требуются, вызов О2.РешитьМодель можно выполнять без второго аргумента — в этом случае применяются настройки по умолчанию.

Значения параметров ЛимитВремени и КоличествоПотоков могут ограничиваться типом используемой лицензии — явно заданные более высокие значения будут автоматически снижены до допустимых.

Рекомендация

Для прикладных задач, чувствительных к отклику, всегда задавайте ЛимитВремени явно. Решатель вернёт лучшее найденное решение к моменту истечения лимита.

Пример​

Полный набор параметров:

Сервис = О2.Сервисы().ВебСлужба(
Новый HTTPСоединение("solver.local", 4762)
);

Настройки = О2.СоздатьНастройкиРешателя(
60, // <-- ЛимитВремени
8, // <-- КоличествоПотоков
О2.ТипыРешателей().CLP() // <-- ТипРешателя
);

Лицензия = О2.СоздатьПараметрыЛицензирования("CUST-0001");

ПараметрыПоиска = О2.СоздатьПараметрыПоиска(Сервис, Настройки, Лицензия);

Решение = О2.РешитьМодель(Модель, ПараметрыПоиска);

Минимальный вариант — только лимит времени:

ПараметрыПоиска = О2.СоздатьПараметрыПоиска(
, // <-- Сервис по умолчанию (локальный)
О2.СоздатьНастройкиРешателя(30) // <-- лимит 30 секунд
);

Решение = О2.РешитьМодель(Модель, ПараметрыПоиска);

См. также​