グループ間の余白に私たちがこだわる理由
グループ化された2Dネスティング、境界問題、そしてPressria Bridgeの構築から学んだことについて。
ネスティングの簡単な半分
ギャンギング(付け合せ)ソフトウェアのデモを見たことがあるなら、標準的な宣伝文句をご存知でしょう。「1枚のシートに無駄なスペースなく大量のジョブを詰め込みます」。True-shape(実形状)ネスティングです。牛のステッカーを使ったテトリスのようなものです。
似たようなアイテムを密に詰め込むというその部分は、すでによく理解されています。何十年もの研究、何十ものオープンソースライブラリ、そして多くの商用実装が存在します。ヒューリスティックを選択し、アイテムを入力すれば、レイアウトが完成します。
問題は、その次に起こることです。
本当の問題:仕分け(Sorting)
シートが印刷機から出てカッターを通った後、誰かがその出力物を仕分けなければなりません。同じデザインは同じ袋へ。異なる注文は異なる箱へ。
True-shapeネスティングはシートの利用率を最大化しますが、結果はごちゃ混ぜになります。印刷機のオペレーターにとっては美しいですが、注文を発送する担当者にとっては悪夢です。
これに対する業界の対応は、分離セクション・ギャンギング(isolated-section ganging)でした。カット後の分離が簡単になるよう、各ジョブにシート上の独自の長方形ゾーンを割り当てるのです。
これは機能します。しかし、無駄も多いのです。
グループの連続性を維持するフローネスティング
現在のアプローチは、次のように機能します:
- 同一のデザインをスーパーアイテムにグループ化します。 同じデザインが整列し、同じ向きに配置された行を指します。
- フロー順にスーパーアイテムを配置します。 最大のグループから順に、シートの左から右、上から下へと流れるように配置します。
- 行の境界を越えてグループの連続性を維持します。 グループが複数行にまたがる場合でも、連続して配置されてから次のグループに移行します。
- 余白(ネガティブスペース)をシングルトンで埋めます。 すべてのスーパーアイテムが配置された後、グループに属さない単一のアイテムが隙間に詰め込まれます。
結果として、グループの連続性が保たれるため仕分けが容易になり、ゾーンによるデッドスペースがなくなり、グループ内の隙間はシングルトンで埋められるため高い利用率を達成します。
難しいのはグループの「内側」ではない
私たちが苦労して学んだことはこれです。グループ内を詰め込むのは簡単な半分です。難しい半分は、サイズや形状が異なるグループ間の境界なのです。