Tôi có vấn đề giống như vấn đề đồ thị con nối từ một dặm cao, nhưng hoàn toàn khác biệt ở chỗ nó không nằm dưới định nghĩa nghiêm ngặt.Thuật toán để xác định các biểu đồ con "được kết nối mờ"
Tôi phải đối mặt với biểu đồ có vài triệu nút và liên kết (không thể phân tích thủ công), trong số hàng triệu nút đó, có 2 hoặc 3 tập hợp.
Mỗi "bộ" bao gồm hàng trăm nghìn nút và hàng chục nghìn biểu đồ phụ, không được kết nối chặt chẽ. Mỗi bộ trong những bộ đó về mặt lý thuyết không được liên kết với các bộ khác ... nhưng có (guesstimation) một tá các liên kết sai lầm kết thúc việc kết nối các bộ đó.
Vấn đề là tìm các bộ đó và các liên kết sai, hoặc ít nhất có được danh sách các ứng viên liên kết sai có thể quản lý bằng tay có thể được xác minh thủ công.
"Ý tưởng tốt nhất" hiện tại của tôi là chọn ngẫu nhiên hai nút, tìm đường đi ngắn nhất giữa chúng, sau đó đánh dấu các liên kết trên đường đi ngắn nhất đó. Rửa sạch & lặp lại hàng triệu lần, và các liên kết sai lầm cuối cùng kết thúc như là những cái được đánh dấu nhất, vì chúng là "chokepoints" giữa các bộ.
Tuy nhiên, điều này khá chậm, và khi một bộ lớn hơn nhiều so với những người khác và có các điểm ngắt nội bộ, nó kết thúc thống trị danh sách "được đánh dấu nhiều nhất", làm cho nó vô nghĩa.
Are thuật toán có tốt hơn/cách tiếp cận cho rằng?
chỉnh sửa: tinh chỉnh đánh dấu đường dẫn là đánh dấu tỷ lệ tương ứng với chiều dài của đường dẫn, giúp với vấn đề "chokepoints nội bộ lớn", nhưng không loại bỏ hoàn toàn các "ngoại lệ" xa xôi, trong khi các bộ khác có nhiều nút được kết nối chặt chẽ (khoảng cách ngắn bên trong)
Không chạy thuật toán cắt nhỏ giữa hai nút ngẫu nhiên có hoạt động không? –