О2_Routing_МенеджерОграничений.РесурсВТочкеМаршрутаНеБолее
Устанавливает верхнюю границу значения ресурса в указанной точке маршрута. Основной способ вызова: Модель.Ограничения().РесурсВТочкеМаршрутаНеБолее(Ресурс, ТочкаМаршрута, Значение, Условия).
Синтаксис
Модель.Ограничения().РесурсВТочкеМаршрутаНеБолее(
Ресурс,
ТочкаМаршрута,
Значение,
Условия = Неопределено
)
Параметры
- Ресурс — ФиксированнаяСтруктура, Строка, Число — ресурс модели: объект, имя или индекс (с нуля).
- ТочкаМаршрута — ФиксированнаяСтруктура — точка маршрута, в которой задаётся ограничение. Получается через методы менеджера ТочкиМаршрута.
- Значение — Число — максимальное допустимое значение ресурса в точке.
- Условия — Массив, Неопределено — массив булевых выражений, при которых ограничение действует.
Неопределено— ограничение действует всегда.
Возвращаемое значение
- ФиксированнаяСтруктура — зарегистрированное ограничение.
Описание
Метод задаёт жёсткую верхнюю границу: значение ресурса в указанной точке маршрута не должно превышать Значение. Нарушение делает решение недопустимым.
Точка маршрута адресуется через объект ТочкаМаршрута (а не через узел), что корректно работает при shared depot — когда несколько ТС стартуют из одного узла-Депо.
Для задания временного окна используйте пару методов совместно:
РесурсВТочкеМаршрутаНеМенее— ранняя граница (начало окна);РесурсВТочкеМаршрутаНеБолее— поздняя граница (конец окна).
Пример
Клиент1 = Модель.Узлы().Получить("Клиент1");
ТочкаКлиента1 = Модель.ТочкиМаршрута().ПолучитьПоУзлу(Клиент1);
// Временное окно у Клиент1: с 09:00 до 11:00 (в минутах от полуночи)
Модель.Ограничения().РесурсВТочкеМаршрутаНеМенее("Время", ТочкаКлиента1, 540);
Модель.Ограничения().РесурсВТочкеМаршрутаНеБолее("Время", ТочкаКлиента1, 660);