@lightsuner

Алгоритм для транспортной задачи?

Подскажите как/каким алгоритмом решать следующую задачу:
1) Есть город
2) В городе есть "Покупатели Б/У товары"
3) В городе есть "Продавцы Б/У товары"
4) Есть парк машин, которые могут доставлять товар от "продавцов" -> "покупателям"

Существует ряд ограничений:
1)Разный обьем машин
2)Разная грузоподъемность машин
3)Время работы машины(водителя и грузчиков) - (к примеру с 9 до 16)
4)Время в которое "Продавец" может отдать товар "Машине" (например: с 7 до 12)
5)Время в которое можно доставить товар "Покупателю" (например с 14 до 19)

Пример задачи:
Продавец Вася продает Старый телевизор (61х100х40 20кг), может отдать товар с 7 до 13
Продавец Петя продает Холодильник (56, 185, 43 30кг), может отдать товар с 8 до 12

Покупатель Миша покупает "Старый телевизор", время доставки с 12 до 15
Покупатель Дима покупает "Холодильник", время доставки с 13 до 18

Парк машин:
Машина 1 - Грузоподъемность 2000 кг, габариты 200х190х150
Машина 2 - Грузоподъемность 2000 кг, габариты 200х190х150

Должно учитываться время на:
1) Переезд между точками(местами загрузки и разгрузки тавара)
2) на загрузку и разгрузку товара

Пример ручного решения:
10.00 - "Машина 1" у Пети, загружают холодильник
11.00 - "Машина 1" у Васи, загружают телевизор
12.00 - "Машина 1" у Миши, выгружают телевизор
13.00 - "Машина 1" у Дима, выгружают Холодильник

В задачи нет единого "склада".

Нужно составить график для водителей - какой товар и у кого они забирают и кому отвозят, при этом минимизировать количество используемых машин.

На данном этапе более важен точный результат, чем скорость подсчета.
  • Вопрос задан
  • 2897 просмотров
Пригласить эксперта
Ответы на вопрос 3
Для небольшого количества машин и событий решается динамическим программированием на графе событий.
Для большого количества - точного решения нет, но очень неплохо зарекомендовали генетические алгоритмы (результат субоптимален с ошибкой не более 3% от оптимального).
Ответ написан
SnowLion
@SnowLion
Как вариант: посмотрите в сторону задачи о ранце.
Ответ написан
Комментировать
@xseven
Если я правильно помню, то данная задачу относится к задачам линейного программирования (вроде поддкласс теории оптимизации, но могу путать).

Скорее всего подобная задача будет решаться чем-то похожим на симплекс метод
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы