Процитировано сообщение: Кузнецов Андрей от 11.10.2008 :: 23:27:03:Добрый вечер, уважаемые коллеги! Подскажите, пожалуйста, алгоритм решения следующей задачи. Имеется оптовый склад, порядка 500 клиентов, две транспортные единицы (грузоподъемность-20 т. каждая). Доставку груза клиентам планируем сами, т.е. работаем с остатками, а не по заявкам. У каждого клиента есть ограничение по max количеству товара (от 1 т. до 6,5 т.). Необходимо определить min пробег автотранспорта в теч. месяца, при условии, что у клиента на складе всегда джолжен находиться наш груз.
Давайте попробуем вместе подумать:
Для каждого клиента рассчитать текущую скорость ухода товара.
После этого по текущим остаткам и скорости ухода рассчитать критическую точку пополнения запасов - получим крайнюю дату пополнения запасов.
Далее вычтем время разгрузки и среднее время доставки и получим последнюю дату отгрузки с нашего склада.
На дату планирования рассчитаем таблицу
"Клиент" | "Координаты XY" | "Текущий остаток" | "Требуемое пополнение" (в тоннах) | "Последня дата отгрузки" | "Осталось дней до даты"
Для первого варианта сортируем таблицу
"Осталось дней до даты" ПО ВОЗРАСТАНИЮ, "Требуемое пополнение" ПО УБЫВАНИЮ
В таблицу добавим новую колонки "Планируемая дата отгрузки" и "Пробег транспорта"
В первую строчку в колонку "Планируемая дата отгрузки" вставляем дату начала развоза, для каждой следующей строки рассчитываем "Планируемую дату отгрузки" с учетом занятости машин на предыдущих маршрутах. Рассчитываем также для каждой строчки пробег транспорта из предыдущей строки.
Для каждой рассчитываемой строки в конец таблицы рассчета добавляем планируемую строку следующего пополнения запасов с учетом выполнения текущей строки.
Разбиваем строки по рейсам (машина + конкретный рейс) и учитываем это в пробеге.
В итоге получаем некую первую последовательность, которую и начинаем оптимизировать итерационным или любым другим алгоритмом (например, генетическим) для получения минимального количества рейсов, пробега транспорта и отсутствия строк где "Планируемая дата отгрузки" не превышает "Последня дата отгрузки"