2.4.12. Маршрутизация транспортных средств Одной из наиболее сложных разновидностей транспортных задач является задача маршрутизации транспортных средств с временными окнами VRPTW (Vehicle Routing Problem with Time Windows) в следующей постановке. Основные исходные данные: g - число узлов-потребителей продукта (k-й узел-потребитель отождествляется с k-м заказом); z - число узлов-источников продукта; т - число серверов (транспортных средств); w - общее число узлов; V- исходное расположение потребителей, источников и серверов в узлах транспортной сети; D - матрица расстояний между узлами; Т1i и Т2i - нижняя и верхняя границы временного окна для выполнения iго заказа; р - число типов продукта. Кроме того, для узлов-потребителей и узлов-источников заданы объемы соответственно заказанного и имеющегося продукта каждого типа, для серверов максимальный - объем перевозимого продукта, скорость движения, цена за единицу расстояния пробега, штрафы за нарушение временных ограничений (выход за пределы временных окон), причем штрафы зависят от цены единицы продукта каждого типа и от степени нарушения ограничений. Требуется найти график движения транспортных средств для выполнения всех заказов с минимальными затратами. Задача декомпозируется применяются правила для на подзадачи, следующих в частей каждой из подзадачи: которых 1) выбор заказа (узла - потребителя продукта); 2) выбор узла - источника продукта; 3) выбор сервера (не исключено, что конкретного заказа привлекается более чем по для выполнения одному источнику и/или серверу). Для первой части подзадач можно использовать правила S1 - S3, в которых выбирается потребитель: S 1 - с максимальным суммарным объемом заказанного продукта; S2- с максимальной ценой заказанного продукта; 53 - с минимальной верхней границей временного окна. Для второй части подзадач используются правила Ql и Q2 по отношению к источникам с запасом продукта хотя бы одного типа большим, чем заказанный объем. Если таких источников нет, то применяется эвристика Q1. В соответствии с этими правилами выбирается источник: Q1 - с минимальным расстоянием до выбранного в первой части узлапотребителя; Q2 - с минимальной суммой расстояний до узла-потребителя и до ближайшего узла, в котором имеется свободный сервер; Q3 - с минимальной величиной h = (L1+L2)U0/U, где L1 и L2 - расстояния соответственно до узла - потребителя и до ближайшего узла, в котором имеется свободный сервер, U0- суммарный объем заказанного продукта, Uсуммарный объем продукта в источнике. Для третьей части подзадач используются правила V1 – V3 , в которых выбирается сервер: V1 - с минимальным расстоянием до узла - потребителя; V2 - с минимальным временем освобождения от предыдущего обслуживания; V3 - с минимальным временем выполнения маршрута. Особенностью НСМ для данной задачи является переменное число генов в хромосоме, так как в НСМ очередной ген соответствует очередному акту выполнения заказа, а один заказ может потребовать нескольких актов. Первоначально известной оказывается только нижняя граница числа актов - она равна числу узлов - потребителей продуктов. Учет этой особенности наиболее просто реализуется заданием числа генов в хромосоме n ≥Y, где Y число актов выполнения всех заказов (отметим, что Y меняет свои значения в процессе поиска). Гарантированное выполнение этого неравенства приводит к завышенному числу генов, однако это несущественно увеличивает время решения.