输出则包含两个部分:(1)一个由通用模块组装而成的内核,(2)残留外壳部分的金字塔分解块。
方法的核心计算问题是一个涉及到多个目标的耦合的分解优化问题,这些目标包括:通过最大化内核的体积,或者等价的,最小化残留外壳的体积,以降低3D打印过程的耗材与耗时;通过最小化残留外壳的体积,和进一步地将其进行金字塔块分解来减少支撑材料,来进一步降低3D打印过程的耗材和耗时;通过尽可能减少残留外壳的金字塔分解块的数目,来降低后期组装的难度。显然,上述的几个目标是互相冲突的。最大化内核的体积大小将产生一个过拟合的内核,随之导致复杂的残留外壳几何表面和过多的金字塔残留块。另一方面,最小化残留外壳的金字塔分解块数,有可能导致残留外壳部分的金字塔分解计算失败。此外,为了最终模型成形的美观考虑,我们还应避免在模型的显著局域进行切割操作。
其中,F为残留外壳部分的体积,W为残留外壳分解产生的残留块的数目,W为支撑材料的体积,a为权重参数。从概念上讲,当0接近于0的时候,目函数变成了简单地最大化内核的体积;当a,沒接近于无穷大的时候,目标则变成了完美的金字塔分解和最小化残留外壳的分解块数。
挑战。由于使用通用模块来组装内核的过程需遵循一个特定的网格结构,一个暴力求解上述目标函数的方法则是在所有不同的网格朝向和位置情况下,尝试所有不同的分解方案。然而,这显然将会导致计算复杂度的组合爆炸。此外,我们的问题中涉及到了两个分解问题:将物体分解成一个内核和一个残留外壳,以及将残留外壳分解成金字塔块。独立地考虑这两个问题的其中任意一个都将会使得优化求解的得到的方案是次优的,无法最好地平衡上述几个互相冲突的目标。
另外,我们的目标函数显然是高度非线性的,并且搜索空间极大,我们必须寻求一个高效的搜索策略来优化求解。最后,目标函数中的各个优化项的精确计算高度复杂,因为精确求解目标函数中的V和M将不得不对残留外壳执行金字塔分解,而金字塔分解的计算高度复杂。因此,我们需要对目标函数中各个项进行快速估计,以支持我们的迭代搜索优化算法。