Страницы: 1
RSS
Доработать условия в поиске решения
 
Добрый день!
Прошу советов в решении задачи, с помощью поиска решений.
Суть такова: есть заказы определенного веса, нужно распределить их по рейсам.
Дробить заказы на части нельзя. Емкость рейсов фиксирована. Какие-то заказы могут не войти- это допустимо.
Вроде бы всё в ограничениях предусмотрела, но выходят нули.
Возможно как-то надо переделать целевую ячейку, но не могу понять как.
Заранее спасибо!
 
1. В U1 вместо =СЧЁТЕСЛИ( B3:Q5; ">0" )  записать: =СУММПРОИЗВ( B3:Q5>0 ) это всегда будеть равно нулю, но поиск решения попытается отработать задачу.
2. Добавить условие: U1 >= 1
3. В параметрах модели поставить флажок: "Линейная"
4. Условие U1 <= T1 удалить

Какое-то решение при этом найдется, насколько оно оптимально - трудно сказать
Изменено: ZVI - 01.10.2014 17:21:54
 
вот так работает у меня:
1) вместо расстановки веса заказов расставляем 1 или 0 - в какой рейс идет заказ
2) вместо количества заказов максимизируем загрузку (U6=T6-R6 - ищем минимум U6) при соблюдении ограничений на вес каждого рейса (рассчитываем вес через СУММПРОИЗВ)
3) Добавляем проверку на отсутствие дублирования заказов между машинами (суммы по столбикам заказов <=1)
Ограничения на U1 и T1 убираем (можно оставить их для справки)
Использовал эволюционный метод, размещено 65 из 66 тонн. Использовал метод ОПГ - размещено 66 из 66.
Изменено: Максим Зеленский - 01.10.2014 17:29:22
F1 творит чудеса
 
ZVI, спасибо за советы, но результат не совсем нужный.
один из заказов урезается- что не есть хорошо.
 
Максим, всё ок, спасибо большое!
только вопрос, зачем задавать отдельные ограничения: R3<=T3; R4<=T4; R5<=T5? Почему нельзя одно ограничение на диапазон R3:R5<=T3:T5?
 
А я не уверен был, что "поиск решения" его правильно поймет. Вот и продублировал на всякий случай. Предпочитаю быть уверенным :)
F1 творит чудеса
Страницы: 1
Наверх