空白の量が最小限になるように、JavaScript を使用して Web サイト ページに画像を最適にレイアウトする必要があります。
最適化問題は、基本的に以下を最小化することです。
(rightmost x-coordinate of an image - leftmost x-coordinate of an image) +
(bottommost y-coordinate of an image - topmost y-coordinate of an image)
ただし、画像を重ねることはできないため、各画像の制約は次のとおりです。
for i in images
for j in each other image
(topmost coordinate of i > bottommost coordinate of j) ||
(bottommost coordinate of i < topmost coordinate of j) ||
(leftmost coordinate of i > rightmost coordinate of j) ||
(rightmost coordinate of i < leftmost coordinate of j)
さらに、画像の右端の座標をページの幅より大きくすることはできず、画像の左端の座標は > 0 でなければならないという制約があります。
最初は線形計画問題として定式化することを考えていましたが、私が見た JavaScript 用の線形計画ライブラリはすべて、そのような複雑な制約を許可していないため、これは線形問題ではない可能性があると思います。
それから私はこれを動的プログラミングの問題と考え始めましたが、レイアウトのすべての組み合わせを試してみないと解決する方法がわかりません。
この種の問題を効率的に解決する方法を知っている人はいますか?