言い換えれば、永続データ構造の多対多の関係を効率的にモデル化できますか?
一方向のマルチマップのペアが提案されました。ただし、これが永続データ構造での削除にどのように機能するかはわかりません。キー1..4から値"1".. "4"があり、それぞれが他のすべてを参照しているとすると、両方向で非常によく似た2つのマップがあります。
{1 => ["2"、 "3"、 "4"]、2 => ["1"、 "3"、 "4"]、...} {"1" => [2,3、 4]、 "2" => [1,3,4]、...}
次に、アイテム1をシステムから完全に削除します。これには、最初のマップで1つのノードを変更する必要がありますが、2番目のマップでn-1ノードを変更する必要があります。数千のnの場合(これを検討している場合は可能性が高いです)、それはかなり高価ではないでしょうか?または、マルチマップはそのタイプの変更を処理するために最適化されていますか?病的なケースですが、それでも...
四分木は魅力的なアイデアのようです。もう少し考えてみます。