由并集、交集和差组成的集合计算通常可以用许多不同的方式表示。是否有任何理论或具体实现试图最小化达到给定答案所需的计算量?
例如,当我试图在模拟无定形材料中将原子分解为相邻壳时,我第一次遇到了这个的实际应用,其中第一个壳是某个给定原始原子的直接邻居,第二个壳是那些相邻的原子第一个外壳不在第一个外壳或在它之前的外壳中:
nth 0 = singleton i
nth 1 = neighbors i
nth n = reduce union (map neighbors (nth(n-1))) - nth(n-1) - nth(n-2)
有很多不同的方法可以解决这个问题。您可以在组成结果的同时逐步测试每个集合中的成员资格,或者您可以计算三个相邻壳的并集并使用交集删除前两个壳,留下最外层的壳。在实践中,需要构建大型中间集的解决方案速度较慢。
据推测,智能集实现可以组成要评估的表达式,然后在评估它之前对其进行优化(例如,减少中间集的大小)以提高性能。是否存在这样的集合实现?