exponenta event banner

Ограничения привязки

Нижняя и верхняя границы ограничивают компоненты решения x.

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

Укажите границы как векторы с той же длиной, что и x, или как матрицы с тем же числом элементов, что и x.

  • Если у конкретного компонента нет нижней границы, используйте –Inf в качестве связанного; аналогично, использовать Inf если компонент не имеет верхней границы.

  • При наличии только границ одного типа (верхнего или нижнего) запись другого типа не требуется. Например, если у вас нет верхних границ, не нужно указывать вектор Infs.

  • Если только первые m из n компонентов имеют границы, то нужно только предоставить вектор длины m, содержащий границы. Однако этот ярлык приводит к тому, что решатели выдают предупреждение.

Например, предположим, что границы:

x3 ≥ 8,
x2 ≤ 3.

Записать векторы ограничений как

l = [–Inf; –Inf; 8],
u = [Inf; 3] (выдает предупреждение) или u = [Inf; 3; Inf].

Совет

Чтобы уменьшить использование памяти и увеличить скорость решателя, используйте Inf или –Inf вместо большой, произвольной границы. Дополнительные сведения см. в разделе Использование INF вместо большой произвольной границы.

Нет необходимости задавать градиенты для ограничивающих ограничений; решатели вычисляют их автоматически. Границы не влияют на гессенов.

Более сложный пример границ см. в разделе Настройка линейной программы на основе решателя.

Связанные темы