和集合、交点、差で構成される集合計算は、多くの場合、さまざまな方法で表現できます。与えられた答えに到達するために必要な計算量を最小限に抑えようとする理論や具体的な実装はありますか?
たとえば、非晶質材料のシミュレーションで原子を隣接シェルに分解しようとしたときに、これの実用的なアプリケーションに最初に出会いました。最初のシェルは、特定の元の原子のすぐ隣にあり、2 番目のシェルは隣接している原子です。最初のシェルにもその前のシェルにもない最初のシェル:
nth 0 = singleton i
nth 1 = neighbors i
nth n = reduce union (map neighbors (nth(n-1))) - nth(n-1) - nth(n-2)
これを解決するには、さまざまな方法があります。結果を構成しながら各セットのメンバーシップを段階的にテストするか、3 つの隣接するシェルの結合を計算し、交差を使用して前の 2 つのシェルを削除し、最も外側のシェルを残すことができます。実際には、大きな中間セットの構築を必要とするソリューションは遅くなります。
おそらく、インテリジェントなセットの実装は、評価される式を構成し、それを評価する前に (中間セットのサイズを縮小するために) 最適化して、パフォーマンスを向上させることができます。そのようなセットの実装は存在しますか?