Я потратил некоторое время на изучение алгоритма упаковки 2d бинов.У меня нет большого опыта в алгоритме, особенно в продвинутой математике, но я могу кодировать:)
Прекрасный пример того, чего мне нужно достичь, продемонстрирован здесь http://www.cutlistoptimizer.com. Это работает, но я не могу понятькакой алгоритм он использует.
Я пробовал много подходов, некоторые из них очень просты, например https://codeincomplete.com/posts/bin-packing/ DEMO здесь , но он не поддерживает вращение, что очень важно.
Самым многообещающим для меня был https://ssbothwell.github.io/greedypacker-react/ Не уверен, что я что-то не так делаю, но это не подходит для меня.Я пробовал разные комбинации с разными алгоритмами.
ДЕМО ДАННЫЕ: Размер листа: ш: 2655, ч: 2100
{ w: 900, h: 320 },
{ w: 320, h: 900 },
{ w: 900, h: 320 },
{ w: 900, h: 320 },
{ w: 900, h: 320 },
{ w: 900, h: 320 },
{ w: 900, h: 320 },
{ w: 900, h: 320 },
{ w: 900, h: 320 },
{ w: 386, h: 310},
{ w: 386, h: 310},
{ w: 386, h: 310},
{ w: 386, h: 310},
{ w: 386, h: 310},
{ w: 860, h: 320},
{ w: 860, h: 320},
{ w: 564, h: 310 },
{ w: 452, h: 293},
{ w: 720, h: 530},
{ w: 720, h: 530},
{ w: 696, h: 530},
{ w: 696, h: 100 }
Эти детали должны умещаться в одном листе.
Контрольное изображение
После некоторого времени исследований я понял, что, вероятно, мне следует использовать генетический алгоритм для развития этих эвристических подходов.Имеет ли это какой-то смысл?