| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Алгоритм линейного раскроя (финальный рывок) |
| Автор: AXS 4.2.2009, 14:04 | ||
| В общем решил написать алгоритм линейного раскроя методом полного перебора. Дано: N деталей разной длины и неограниченное количество заготовок длиной L Любая из деталей меньше L Требуется: Разместить все детали на заготовки, используя как можно меньше заготовок и при этом остаток от последней заготовки должен быть как можно бОльшим. Сделал алгоритм составляющий все возможные комбинации деталей, длиной меньше или равно L (длина заготовки). При чём в каждой комбинации любая из деталей используется только один раз (по условию) В аттаче скрин - результат работы алгоритма при 10 деталях разной длины и заготовках длиной 1000. Первые 10 полос - это сами детали (по сути тоже комбинации из одной детали) остальное - их комбинации. ------------------------------------------------------------------------ Теперь то, что я не могу осилить... мозг устал наверное Надо из этих комбинаций выбрать те которые отвечают условию:
|
| Автор: AXS 4.2.2009, 14:56 |
| Кстати, (для лучшего понимания) Вот такой результат даёт одна из коммерческих программ раскроя: |
| Автор: WaReZMEN 4.2.2009, 15:04 |
| Ждать устанешь полным перебором это очень долгий способ... |
| Автор: AXS 4.2.2009, 17:53 | ||
Ну а если невзирая на скорость..? Может мне всего 30-50 деталей надо использовать. Вопрос же не в этом, а в том как из уже полученных вариантов наполнения заготовок выбрать те, которые используют как можно меньше материала... Как в предыдущем моём посте. PS: Кстати, попробовал сделать раскрой своей программой, алгоритм которой, разрабатывал 2 года назад и считал неоптимальным... и результат удивил: Получается лучше чем платный конкурент! Причём алгоритм молниеносный по своей скорости... Но всё же хочется доработать нынешний алгоритм. |
| Автор: WaReZMEN 5.2.2009, 08:24 |
| Слушай а не профиль ли ты случаем хочешь раскроить? |
| Автор: AXS 5.2.2009, 11:15 | ||
Он самый. МДФ профиль. Даже программа, которой принадлежит последний скрин называется http://www.mak-ms.com/index.php?option=com_content&task=view&id=12&Itemid=32. Правда я использовал там "жадный" алгоритм, а он по-моему не очень оптимален для такой задачи. Кстати, какой алгоритм использовал ты? |
| Автор: WaReZMEN 5.2.2009, 11:30 |
| AXS, извини я работаю в кампаний разрабатывающие ПО для предприятий и фирм связных с изготовлением ПВХ конструкций поэтому коммерческая тайна.. скажу лишь что это наш собственный а тот что в книге был описан он не оптимальный его могу дать если интересно... |
| Автор: AXS 5.2.2009, 11:40 | ||
Жаль. Мне в принципе пофиг - софт фриварный, но хотелось бы качественный раскрой. Но от "того что в книге" не откажусь. Поковыряю мозг. |
| Автор: WaReZMEN 5.2.2009, 12:11 |
| Постараюсь вечерком залить... если не забуду... |
| Автор: AXS 9.2.2009, 09:25 | ||
Видимо забыл... WaReZMEN! Жду... |
| Автор: WaReZMEN 9.2.2009, 13:18 |
| Вылетело из головы... седня точно закину... |
| Автор: WaReZMEN 10.2.2009, 20:27 |
| Вот код |
| Автор: RuslanR 28.3.2013, 03:31 |
| Программа Optimize Ссылка для скачивания: http://fs-bud.at.ua/Programma/Optimize/Optimize_Setup.rar |