Другими словами, можем ли мы эффективно моделировать многие отношения в постоянной структуре данных?
Была предложена пара однонаправленных мультикарт. Тем не менее, я не уверен, как это будет хорошо работать для удаления в постоянной структуре данных. Давайте возьмем случай, когда у нас есть ключи 1..4 для значений «1» .. «4», и предположим, что каждый из них относится ко всем остальным, поэтому у нас есть две карты, которые очень похожи в обоих направлениях:
{1 => ["2", "3", "4"], 2 => ["1", "3", "4"], ...}
{"1" => [2,3,4], "2" => [1,3,4], ...}
Теперь мы хотим полностью удалить пункт 1 из системы. Это требует изменения одного узла в первой карте, но это требует изменения n-1 узлов во второй. Для n в тысячах (что, вероятно, в случае, я рассматриваю это для), не будет ли это довольно дорого? Или мультикарта оптимизирована для обработки изменений такого типа? Это патологический случай, но все же ...
Quadtrees кажется увлекательной идеей. Я собираюсь еще об этом подумать.