
在Dapper的全局优化过程中,在这个步骤中,输入为一个初始的金字塔块集合,输出为一个位于容器C中的排列堆。在描述的过程中,暂时假设算法是面向粉末型打印机的,并在随后描述如何调整全局目标函数的定义和局部优先级分数函数的定义,以适用于熔融沉积型打印机。最后,将详细描述在全局优化后,如何进行局部的微调优化,对金字塔体素块内的实际形状几何进行空间变换调整,使得排列堆更加紧凑。

在每一次的迭代中,我们会通过执行对接测试来产生一个候选操作集合。对于一个待排列的块和打印容器内的堆,对接测试的目的是寻找最佳的待排列块的几何变换,使其凸起(或凹陷)能够更好地匹配堆内的凹陷(或凸起)。对于每一个待排列块,我们允许的候选操作包括直接排列进打印堆,和先切割再排列。所有的切割操作都是轴对齐的,并且将会产生更小的金字塔子块。我们也可引入一些特定的有关于制造打印或者组装的约束条件,来约束搜索所有可能的切割操作。当待排列块需要在对接测试中进行旋转操作的时候,我们限制其旋转变换只能是90度或其整数倍。
在最后的局部微调步骤中,我们又通过一个连续的优化过程来优化各个块的刚体空间变换,以减少每个块之的空隙。为此引入一个局部优化过程,其目标函数包括多种目标项,及确保各个块在刚体运动过程中不发生相互碰撞的约束。