Мне нужно оптимально выложить изображения с помощью Javascript на странице сайта, чтобы количество пробелов было минимизировано.Оптимизация макета изображения с помощью Javascript
Задача оптимизации заключается в основном свести к минимуму следующее:
(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.
Firs Я думал о том, чтобы сформулировать его как проблему линейного программирования, но все библиотеки линейного программирования, которые я видел для Javascript, не допускают таких сложных ограничений, поэтому я думаю, что это может быть не линейная проблема.
Тогда я начал думать об этом как о проблеме динамического программирования, но я не уверен, как его решить, не пытаясь использовать каждую комбинацию макетов, которая была бы безумно медленной.
Кто-нибудь есть идеи, как эффективно решить эту проблему?