Нижняя и верхняя границы ограничивают компоненты x решения.
Если вы знаете границы расположения оптимума, можно получить более быстрые и надежные решения, явно включив эти границы в свою формулировку задачи.
Задайте границы как векторы с той же длиной, что и x, или как матрицы с таким же количеством элементов, как и x.
Если конкретный компонент не имеет нижней границы, используйте –Inf
как граница; точно так же используйте Inf
если компонент не имеет верхней границы.
Если у вас есть только границы одного типа (верхний или нижний), вам не нужно записывать другой тип. Для примера, если у вас нет верхних границ, вам не нужно задавать вектор Inf
с.
Если только первый m из n компонентов имеет границы, то вам нужно только задать вектор длины m содержащий границы. Однако этот ярлык заставляет решатели выдавать предупреждение.
Например, предположим, что ваши границы:
<reservedrangesplaceholder0> 3 8,
<reservedrangesplaceholder0> 2 3.
l = [–Inf; –Inf; 8]
,
u = [Inf; 3]
(выдает предупреждение) или u = [Inf; 3; Inf]
.
Совет
Чтобы уменьшить использование памяти и увеличить скорость решателя, используйте Inf
или –Inf
вместо большой, произвольной границы. Для получения дополнительной информации см. «Использование Inf вместо большой, произвольной границы».
Вы не должны давать градиенты для связанных ограничений; решатели вычисляют их автоматически. Границы не влияют на Гессианов.
Более сложный пример границ см. в разделе Настройка линейной программы, основанная на решателе.