О2_Routing_МенеджерЦелевойФункции.УстановитьКоэффициентТранзита
Задаёт коэффициент стоимости, пропорциональной приращению транзита на каждом переезде — то есть основной механизм описания стоимости дуг маршрута. Основной способ вызова: Модель.ЦелеваяФункция().УстановитьКоэффициентТранзита(Транзит, Коэффициент, ТранспортноеСредство).
Синтаксис
Модель.ЦелеваяФункция().УстановитьКоэффициентТранзита(
Транзит,
Коэффициент,
ТранспортноеСредство
)
Параметры
- Транзит — ФиксированнаяСтруктура, Строка, Число — транзит модели:
- ФиксированнаяСтруктура — объект транзита;
- Строка — имя транзита, ищется в реестре модели;
- Число — индекс транзита (0-based).
- Коэффициент — Число — коэффициент стоимости; по умолчанию
1. - ТранспортноеСредство — ФиксированнаяСтруктура, Строка, Число, Неопределено — если задано, коэффициент применяется только к указанному ТС;
Неопределено(по умолчанию) — применяется ко всем транспортным средствам.
Возвращаемое значение
- ОбработкаОбъект.О2_Routing_МенеджерЦелевойФункции — текущий менеджер; позволяет строить цепочки вызовов.
Описание
Метод Модель.ЦелеваяФункция().УстановитьКоэффициентТранзита(...) добавляет в целевую функцию слагаемое вида Коэффициент × Σ Транзит(i → j) по всем дугам маршрута. Это базовый способ описать стоимость перемещений: чем больше суммарное приращение транзита (например, расстояние или время в пути), тем выше итоговая стоимость маршрута, которую решатель стремится минимизировать.
Для неоднородного парка транспортных средств с разными удельными стоимостями (разные ставки за км) метод вызывается несколько раз с указанием конкретного ТС.
Пример
Модель = О2
.Модели()
.МодельМаршрутизации()
.СоздатьМодель();
// Коэффициент 1 для всех ТС — классическая минимизация пробега
Модель.ЦелеваяФункция().УстановитьКоэффициентТранзита("расстояние");
// Разные ставки для разных ТС
Модель
.ЦелеваяФункция()
.УстановитьКоэффициентТранзита("расстояние", 2, "Грузовик")
.УстановитьКоэффициентТранзита("расстояние", 1, "Легковая");