Biorąc pod uwagę tablicę 2D wartości logicznych, chcę znaleźć wszystkie wzorce, które składają się z co najmniej 2 kolumn i co najmniej 2 rzędów. Problem jest nieco bliski znalezienia cliques in a graph.Jak znaleźć grupy wzorów w tablicy boolowskiej?
W poniższym przykładzie zielone komórki reprezentują "prawdziwe" bity, szarości to "fałsz". Wzór 1 zawiera kols 1,3,4 i 5 oraz wiersze 1 i 2. Wzór 2 zawiera tylko kolumny 2 i 4 oraz wiersze 2,3,4.
firm Ideą jest znalezienie wzorów podobieństwa między różnymi grupami użytkowników sieci społecznych. W rzeczywistości liczba wierszy może wzrosnąć do 3E7, a liczba kolumn do 300.
Nie można znaleźć rozwiązania innego niż brutalne dopasowanie siły.
Proszę podać poprawną nazwę problemu, abym mógł przeczytać więcej lub doradzić eleganckie rozwiązanie.
Jeśli tablica jest symetryczna, a wszystkie pozycje przekątne są prawdziwe, należy znaleźć symetryczne, całkowicie prawdziwe pod-tablice, które odpowiadają między innymi klikom na wykresie. Ponieważ określenie największej kliki (lub największego niezależnego zbioru w dopełnieniu) jest NP-trudne, tak jest z tym problemem. To nie znaczy, że nie da się tego zrobić w praktyce, ale sugeruje, że powinieneś podać więcej informacji o specyfice tablic zamiast mieć nadzieję na szybki, ogólny algorytm. –
Co to jest dokładnie wzór? Wciąż nie jest dla mnie jasne. –
@DouglasZare, dziękuję za komentarz. Tablica nie jest symetryczna. Wiersz reprezentuje użytkownika, a bity są dla niezależnych właściwości, które różnią się od badań do badań. To znaczy. b1 "Ma wyższe wykształcenie", b2 "Podobała się strona X", b3: podobała się strona Y "itd. JuanLopes według" wzoru "mam na myśli zestaw" na "kolumnach, więcej niż 2, które dotyczą więcej niż 2 użytkowników – Serge