В горнодобывающем карьере функционирует парк из
Пусть
Минимизация суммарных затрат на транспортировку и простои:
Где:
-
$C_{ij}$ — себестоимость одного рейса от экскаватора$i$ самосвалом$j$ (зависит от расстояния$L_{ij}$ , расхода топлива$q_j$ и стоимости ГСМ). -
$C_{\text{idle}, i}$ — штраф за час простоя экскаватора$i$ в ожидании самосвала. -
$t_{\text{idle}, i}$ — расчетное время простоя.
-
Ограничение по производительности экскаватора:
$$\sum_{j=1}^{N} q_j \cdot x_{ij} \le Q_{\max, i} \quad \forall i \in {1, \dots, M}$$ (Суммарный объем погрузки не превышает техническую производительность экскаватора $i$ за смену). -
Ограничение по доступному парку самосвалов:
$$\sum_{i=1}^{M} x_{ij} \le K_j \quad \forall j \in {1, \dots, N}$$ (Количество работающих самосвалов не превышает число исправных машин на линии). -
Ограничение по вместимости и пропускной способности пунктов разгрузки:
$$\sum_{i \in S_k} \sum_{j=1}^{N} x_{ij} \le P_{\max, k} \quad \forall k \in \text{UnloadPoints}$$ -
Условие неотрицательности:
$$x_{ij} \ge 0$$
Реализовано с использованием библиотеки Apache Commons Math 3:
- Класс
LinearObjectiveFunctionзадает коэффициенты затрат. -
LinearConstraintSetформирует матрицу ограничений. - Решатель
SimplexSolver.optimize()находит глобальный оптимум$X^*$ , который передается вTripSchedulerдля выдачи сменно-суточных путевых листов.