Родион Альметов,
1) Сортируем по первому параметру, который "не суть" + по толщине
2) Проходим циклом по отсортированному массиву, высчитывая для каждого прямоугольника ближайших соседей, НЕ удовлетворяющих условию соседства. Допустим для прямоугольника №5 это будут №2 и №7, значит прямоугольник можно соединить только с номерами 3, 4, и 6.
Имея эту информацию начинаем наполнять пачки начиная с самых толстых. Как только произошло превышение толщины, ищем для каждого прямоугольника детали ближайших более тонких соседей, которыми можно заменить их так, чтобы пачка была
а) Нужной толщины
б) С минимальной разницей между толщиной пачки и максимальной толщиной.