Nigdy dotąd nie zagłębiałem się w tematy związane ze statystyką, Big Data itp. Zapewne ktoś już ten problem naukowo rozwiązał, więc nie chciałbym wynajdywać koła nowo.
Zagadnienie wygląda następująco:
Mam zbiór obiektów, które są opisane atrybutami. Każdy obiekt ma Id, powiedzmy że int32. Dla uproszczenia każdy atrybut też ma swoje Id w postaci int32. Obiekt może być opisany różnym zbiorem atrybutów. Przykładowo Obiekt1 jest opisany atrybutami (1, 2, 3), Obiekt2 (4, 5), Obiekt3 (2, 4, 3).
Z jakich struktur danych/algorytmów skorzystać, aby móc pogrupować obiekty według posiadanych atrybutów? Chodzi o to, że w następstwie pogrupowania, chciałbym mieć możliwość podania listy atrybutów do teoretycznej funkcji search(), tak aby uzyskać zbiór Id obiektów opisanych tymi atrybutami. Rozwiązania probabilistyczne dające przedziały lub false positive również są akceptowalne.
Natknąłem się na https://en.wikipedia.org/wiki/Hypergraph, które w teorii mogłyby się przydać do ręcznej implementacji rozwiązania. Mile widziany były jednak wskazówki, z jakich istniejących bibliotek, struktur, algorytmów warto skorzystać, by rozwiązać taki problem. :)