Tôi đang tìm một số gợi ý ở đây vì tôi không biết bắt đầu nghiên cứu cái này ở đâu.Sắp xếp ma trận 2D nhị phân?
Tôi có một ma trận 2D với 0 hoặc 1 trong mỗi tế bào, chẳng hạn như:
1 2 3 4
A 0 1 1 0
B 1 1 1 0
C 0 1 0 0
D 1 1 0 0
Và tôi muốn sắp xếp nó để nó là như "tam giác trên" càng tốt, như vậy:
4 3 1 2
B 0 1 1 1
A 0 1 0 1
D 0 0 1 1
C 0 0 0 1
Hàng và cột phải giữ nguyên vẹn, tức là các phần tử không thể di chuyển riêng lẻ và chỉ có thể hoán đổi "toàn bộ".
Tôi hiểu rằng chắc chắn sẽ có những trường hợp bệnh lý mà một ma trận có nhiều khả năng kết quả sắp xếp (tức là cùng một hình dạng, nhưng khác nhau về danh tính của "bản gốc" hàng/cột.)
Vì vậy, có thể bất cứ ai đề nghị nơi tôi có thể tìm thấy một số điểm khởi đầu cho điều này? Một thư viện/thuật toán hiện có sẽ rất tuyệt, nhưng tôi sẽ giải quyết để biết tên của vấn đề mà tôi đang cố giải quyết!
Tôi nghi ngờ đó là vấn đề đại số tuyến tính như vậy và có thể có một số loại kỹ thuật xử lý hình ảnh có thể áp dụng.
Bất kỳ ý tưởng nào khác, dự đoán ban đầu của tôi là viết một loại chèn đơn giản trên các hàng, sau đó các cột và lặp lại cho đến khi nó ổn định (và hy vọng phát hiện các trường hợp bệnh lý không quá khó.)
Chi tiết khác: Một số thông tin khác về những gì tôi đang cố gắng làm có thể giúp làm rõ. Mỗi hàng đại diện cho một đối thủ cạnh tranh, mỗi cột đại diện cho một thách thức. Mỗi 1 hoặc 0 đại diện cho "thành công" cho đối thủ cạnh tranh về một thách thức cụ thể. Bằng cách phân loại ma trận sao cho tất cả 1 đều ở trên cùng bên phải, tôi hy vọng sẽ cung cấp xếp hạng về độ khó nội tại của mỗi thử thách và xếp hạng của đối thủ cạnh tranh (điều này sẽ tính đến độ khó của những thách thức mà họ gặp phải.). thành công, không chỉ là số lần thành công.)
Lưu ý về câu trả lời được chấp nhận: Tôi đã chấp nhận Mô phỏng ủ là "câu trả lời" với lời nhắc rằng câu hỏi này không có câu trả lời đúng. Nó có vẻ như là một cách tiếp cận tốt, mặc dù tôi đã không thực sự quản lý để đến với một chức năng chấm điểm mà làm việc cho vấn đề của tôi.
câu hỏi: (1) Lưu ý rằng không có gì bạn có thể làm với một ma trận của tất cả các 1s là: là bạn tốt với điều đó? (2) Khi không có số 0 bên dưới đường chéo, bạn có quan tâm đến nơi các điểm 1 nằm trên đường chéo không? (3) Giảm thiểu số lượng 1s dưới đường chéo có đủ tiêu chuẩn không? Làm thế nào về chỉ đơn giản là giảm thiểu số hàng có (ít nhất) một số 1 dưới đường chéo? – ShreevatsaR
Trả lời 1) Vâng, tất cả các số không hoặc tất cả sẽ không bao giờ xảy ra, và nếu có, chúng sẽ được định nghĩa là tương đương, vì vậy việc phân loại chúng thành một số hoán vị khác sẽ không thành vấn đề. – Tom
Trả lời 2 + 3) Có, tôi muốn số 1 càng gần đầu mỗi cột càng tốt, tức là càng nhiều càng tốt số 1 ở góc trên cùng bên phải. Lưu ý rằng có thể có 1s dưới đường chéo và 0 ở trên nó, nó không phải là một ma trận tam giác. – Tom