AlexM, спасибо вроде так, только общая длина кратна палкам (6м); количество палок кратно 1 шт Напишите формулу округления в большую сторону кратно 6, а то ОКРУГЛТ() округляет по модулю
AlexM, спасибо вроде так, только общая длина кратна палкам (6м); количество палок кратно 1 шт Напишите формулу округления в большую сторону кратно 6, а то ОКРУГЛТ() округляет по модулютанбраун
Сообщение отредактировал танбраун - Пятница, 21.08.2015, 11:13
Например длина стойки 7м, а оптимизируем по длине 6м, соответственно стойка 7м не уберется в 6м. (и тогда бы в результате выводило ошибку "знач" или что то подобное)
Например длина стойки 7м, а оптимизируем по длине 6м, соответственно стойка 7м не уберется в 6м. (и тогда бы в результате выводило ошибку "знач" или что то подобное)танбраун
Это получилось минимальное количество. На самом деле потребуется не 11, а 13 полных 6 метровых ригелей. При этом останется 12 обрезков меньше метра и один 3,44 метра. Или резать ничего не надо?
Это получилось минимальное количество. На самом деле потребуется не 11, а 13 полных 6 метровых ригелей. При этом останется 12 обрезков меньше метра и один 3,44 метра. Или резать ничего не надо?Светлый
Программировать проще, чем писать стихи.
Сообщение отредактировал Светлый - Пятница, 21.08.2015, 13:25
Это можно сделать только программным путём. А просто набрать длину из последовательных кусков можно формулами. Сложность заключается в множителях. Пока формулы сырые. По остаткам формулы работают, осталось подсчитать количество "палок". Что-то не клеится. Мозги замылились. Красным формула неправильная, а остатки считает хорошо.
Это можно сделать только программным путём. А просто набрать длину из последовательных кусков можно формулами. Сложность заключается в множителях. Пока формулы сырые. По остаткам формулы работают, осталось подсчитать количество "палок". Что-то не клеится. Мозги замылились. Красным формула неправильная, а остатки считает хорошо.Светлый
Вроде бы победил. Проверяйте. Первый столбец - остаток очередной заготовки, во втором - сколько заготовок израсходовано на эту операцию. Оптимизировать остатки можно вручную. Надо вставлять короткие отрезки в те места, где они будут меньше остатка из первого столбца.
Вроде бы победил. Проверяйте. Первый столбец - остаток очередной заготовки, во втором - сколько заготовок израсходовано на эту операцию. Оптимизировать остатки можно вручную. Надо вставлять короткие отрезки в те места, где они будут меньше остатка из первого столбца.Светлый
нужно чтобы убралось в целые 6 метровые ригели. Плюс останутся обрезки не убирающиеся в длины ригилей
Если правильно понял вопрос, то это задача оптимизации линейного раскроя. Можно решать разными способами: 1. Полный перебор, как правило, не возможно реализовать в реальных условиях. 2. Самый эффективный способ - целочисленное линейное программирование. В качестве инструмента можно использовать Solver. Но здесь есть ряд ограничений - необходимо найти все варианты сложения исходных деталей, не превышающих размер заготовок (а вариантов может быть несколько тысяч или сотен тысяч). Ограничение Solver'a - 200 изменяемых ячеек. 3. "Жадный" алгоритм. У данного алгоритма есть вариации, основное достоинство - высокая скорость. Применим для быстрой оценки раскроя, либо когда скорость важнее оптимизации. 4. Решать как частный случай задачи о рюкзаке (сумма подмножеств) и выбор наилучшего варианта из имеющихся. 5. Генетический алгоритм и алгоритм муравьиной колонии. Ничего про эти алгоритмы сказать не могу, т.к. их не изучал.
Реализовал собственный алгоритм линейного раскроя, который основан на решении задачи о рюкзаке методом целочисленного динамического программирования. Производится генерация различных вариантов раскроя в зависимости от сортировки исходных деталей и заготовок и выбор наилучшего решения. К достоинству можно отнести - достаточно эффективный результат по сравнению с "жадным" алгоритмом, а также при сравнении с результатом программ CuttingLine и Optimize.
Примеры получаемых раскроев можно посмотреть здесь: https://yadi.sk/d/B_fg089lhsMk4 Если будет заинтересованность в алгоритме, то можете обратиться ко мне в личку.
нужно чтобы убралось в целые 6 метровые ригели. Плюс останутся обрезки не убирающиеся в длины ригилей
Если правильно понял вопрос, то это задача оптимизации линейного раскроя. Можно решать разными способами: 1. Полный перебор, как правило, не возможно реализовать в реальных условиях. 2. Самый эффективный способ - целочисленное линейное программирование. В качестве инструмента можно использовать Solver. Но здесь есть ряд ограничений - необходимо найти все варианты сложения исходных деталей, не превышающих размер заготовок (а вариантов может быть несколько тысяч или сотен тысяч). Ограничение Solver'a - 200 изменяемых ячеек. 3. "Жадный" алгоритм. У данного алгоритма есть вариации, основное достоинство - высокая скорость. Применим для быстрой оценки раскроя, либо когда скорость важнее оптимизации. 4. Решать как частный случай задачи о рюкзаке (сумма подмножеств) и выбор наилучшего варианта из имеющихся. 5. Генетический алгоритм и алгоритм муравьиной колонии. Ничего про эти алгоритмы сказать не могу, т.к. их не изучал.
Реализовал собственный алгоритм линейного раскроя, который основан на решении задачи о рюкзаке методом целочисленного динамического программирования. Производится генерация различных вариантов раскроя в зависимости от сортировки исходных деталей и заготовок и выбор наилучшего решения. К достоинству можно отнести - достаточно эффективный результат по сравнению с "жадным" алгоритмом, а также при сравнении с результатом программ CuttingLine и Optimize.
Примеры получаемых раскроев можно посмотреть здесь: https://yadi.sk/d/B_fg089lhsMk4 Если будет заинтересованность в алгоритме, то можете обратиться ко мне в личку.MCH