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

О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.РешитьМодель(Модель, ПараметрыПоиска);

См. также