Với mảng giá trị Boolean 2D, tôi muốn tìm tất cả các mẫu bao gồm ít nhất 2 cột và ít nhất 2 hàng. Vấn đề là hơi gần với việc tìm kiếm cliques in a graph.Cách tìm các nhóm mẫu trong mảng boolean?
Trong ví dụ bên dưới, các ô màu xanh lá cây đại diện cho các bit "đúng", màu xám là "sai". Mẫu 1 chứa cols 1,3,4 và 5 và hàng 1 và 2. Mẫu 2 chỉ chứa các cột 2 và 4 và các hàng 2,3,4.
Ý tưởng kinh doanh đằng sau điều này là tìm mẫu tương tự giữa các nhóm người dùng mạng xã hội khác nhau. Trong số hàng thực tế có thể lên đến 3E7 và số lượng cột tối đa 300.
Không thể thực sự tìm ra giải pháp khác ngoài kết hợp lực lượng vũ phu.
Vui lòng tư vấn tên riêng của sự cố, vì vậy tôi có thể đọc thêm hoặc tư vấn giải pháp thanh lịch.
Trong trường hợp mảng là đối xứng, và tất cả các mục chéo là đúng, bạn phải tìm các mảng phụ hoàn toàn đối xứng tương ứng với các dòng trong biểu đồ, trong số các mảng khác. Kể từ khi xác định các clique lớn nhất (hoặc tập độc lập lớn nhất trong bổ sung) là NP-cứng, do đó, là vấn đề này. Điều đó không có nghĩa là nó không thể được thực hiện trong thực tế, nhưng nó cho thấy rằng bạn nên cung cấp thêm thông tin về các chi tiết cụ thể của các mảng thay vì hy vọng cho một thuật toán nhanh, nói chung. –
Chính xác một mẫu là gì? Nó vẫn không rõ ràng với tôi. –
@DouglasZare, cảm ơn bạn đã nhận xét. Mảng không đối xứng. Hàng đại diện cho người dùng và các bit được bật cho các thuộc tính độc lập thay đổi từ nghiên cứu đến nghiên cứu. I E. b1 "Có giáo dục đại học", b2 "Đã thích trang X", b3: trang ưa thích Y "v.v. JuanLopes theo" mẫu "tôi muốn đặt cột" trên ", nhiều hơn 2, áp dụng cho hơn 2 người dùng – Serge