Страницы: 1
RSS
Подбор груза для машины с условиями, Vba - задача в стиле рюкзака
 
Дано: модели товара, штуки, ширина и машина, в которую поместится ограниченное количество штук в зависимости от ширины (см вложение). Нужно собрать товар в машину исходя из условий : 1. Одинаковые модели лучше грузить вместе в одну машину. 2. Если на целую машину одной модели не хватает - нужно дополнить другой моделью той же ширины. 3. Если вариантов нет - любая ширина подойдет, при этом в машину помещаем не более 50 шт. Решение должно выглядеть как перечень номеров счетов с моделями и шт, помещенными в 1 машину. "Поиск решения" мне не помог, выразить такие условия в нем не удалось. Есть кто-нибудь просвещенный в таких задачах?
 
Доброе время суток.
С учётом ваших ограничений, не вижу цели оптимизации. Скорее всего банальный жадный алгоритм бери больше, кидай дальше. Только в даже таком случае - это не 15 минут. Может что Михаил MCH присоветует.
Updated
А это условие
Цитата
Tverskoy_92 написал:
3. Если вариантов нет - любая ширина подойдет, при этом в машину помещаем не более 50 шт.
так ещё и ухудшает минимум машин. Максимальный остаток для 120 - 49 штук, а для 100 - 59 штук. Имеем смешанное решение по условию 3. Тогда потребуется 3 машины 50, 49 + 1 и на 8 штук :) , вместо того чтобы отправить две не полные машины.
Изменено: Андрей VG - 15.07.2019 19:13:29
 
Добрый вечер, Андрей. Попробую сформулировать цель оптимизации: загрузить в 1 машину максимум товара используя  минимальное число моделей. Вопрос с неполной загрузкой можно опустить, допустим машины отправляются только загруженные полностью.
 
Вариант формулами с разбросом остатков жадным алгоритмом. Как видно, если дополнить две машины с рулонами по 100 до 60 штук в каждой, то в третьей остаётся 23 свободных места. Вот ту да то можно доложить из первой машины с рулонами по 120 те 23, останется 5, а их переложить во вторую. В данном случае возможно. Полные целочисленные номерами не обозначал. В общем есть что допиливать :)  
Может кому-то будет интересно написать макрос с учётом проверок на достаточность.
 
Спасибо, попробую взять за основу.
Страницы: 1
Наверх