Có phải tất cả các cây bao trùm MST tối thiểu đều có thể tiếp cận được bởi Kruskal và Prim?


13

Tôi tin rằng điều này là đúng nhưng chưa thể có được bằng chứng chính thức cho một trong hai. Nhưng có đúng là có thể đạt được bất kỳ cây bao trùm tối thiểu nào bằng cách áp dụng thuật toán của Kruskal không? Tương tự, điều này có đúng với thuật toán của Prim không?

EDIT: Nói chính xác hơn, tôi muốn biết nếu được cung cấp MST cho biểu đồ có trọng số được kết nối, không bị chặn, có đảm bảo rằng có một chuỗi các bước sử dụng Kruskal hoặc Prim tạo ra MST này. Ví dụ: Có nhiều lựa chọn khác nhau cho Kruskal khi có nhiều cạnh có cùng trọng lượng. Tương tự cho Prim.


2
Câu trả lời có liên quan và thảo luận về một kết quả khác mà bạn có thể muốn sử dụng như một lemme.
Raphael

3
Phần đầu tiên trong câu trả lời của tôi đã chứng minh điều này cho thuật toán của Kruskal và tôi nghĩ rằng một đối số tương tự sẽ có hiệu quả với Prim's: stackoverflow.com/a/13779113/47984
j_random_hacker

Câu trả lời:


9

Như được chỉ ra bởi nhận xét của Raphaelbình luận của j_random_hacker , câu trả lời là tích cực. Trong thực tế, mọi MST đều có thể truy cập được bằng bất kỳ thuật toán MST nào với một số ngoại lệ nhỏ.

Đối với đồ thị , hai hàm trọng số trên tất cả các cạnh (với số thực) được định nghĩa là (tương đối yếu) tương thích (với nhau) nếu chúng ta có thể mở rộng thứ tự yếu nghiêm ngặt trên các cạnh do hàm trọng số gây ra cho cùng một mức nghiêm ngặt tổng đơn hàng. Nghĩa là, chúng ta có thể đưa ra các quy tắc phá vỡ nhất quán với từng hàm trọng số sao cho kết quả so sánh hai cạnh bất kỳ bằng một hàm trọng số và các quy tắc phá vỡ liên kết của nó giống như kết quả của hàm trọng số khác và hàm buộc của nó quy tắc phá.G

Bổ đề 1 : Gọi w 2 là hai hàm trọng số. Năm câu sau đây tương đương với nhau.w1w2

  1. w 2 tương thích với nhau.w1w2
  2. Trong bất kỳ tập hợp các cạnh, có một cạnh nhẹ nhất phổ biến bởi và bởi w 2 .w1w2
  3. Trong bất kỳ tập hợp các cạnh, có một cạnh nặng nhất phổ biến bởi và bởi w 2 .w1w2
  4. Tồn tại hàm trọng số gán các trọng số riêng biệt cho các cạnh riêng biệt sao cho w 3 tương thích so sánh với w 1 và với w 2 .w3w3w1w2
  5. đối với bất kỳ cạnh e 2 sao cho e 1 nhẹ hơn e 2 bởi một hàm trọng số, e 1 nhẹ hoặc nhẹ hơn e 2 bởi hàm trọng số khác.e1e2e1e2e1e2

Bằng chứng bổ đề 1 được để lại như một bài tập dễ dàng.

Bổ đề 2 : Đặt hai hàm trọng số w 2 sao cho nếu e 1 < w 1 e 2 , thì e 1 < w 2 e 2 . Sau đó, họ là so sánh-comptible.w1w2e1<w1e2e1<w2e2

(Gợi ý) Bằng chứng: Một cách tiếp cận là xác minh điều kiện 5 của bổ đề 1. Một cách tiếp cận khác là xác minh điều kiện 2 của bổ đề 1 bằng cách chỉ ra rằng trong bất kỳ tập hợp cạnh nào, cạnh nhẹ nhất của cũng là cạnh nhẹ nhất w 1 ,w2w1

Thuật toán dựa trên so sánh trên biểu đồ được định nghĩa là tương thích so sánh nếu với bất kỳ hai hàm trọng số tương thích (yếu) nào trên tất cả các cạnh, chúng ta có thể chạy thuật toán với một hàm trọng số theo cách có thể lặp lại mà không thay đổi với chức năng cân khác. Đặc biệt, hai lần chạy thuật toán đó sẽ có cùng một đầu ra.G

Xin lưu ý rằng hầu hết nếu không phải tất cả các thuật toán MST có thể được nêu trong hai hương vị. Hương vị đầu tiên giả định rằng các cạnh khác biệt của có trọng số riêng biệt, được sử dụng khi mối quan tâm chính là tìm một MST (trên thực tế cũng là MST duy nhất). Hương vị thứ hai cho phép các cạnh khác biệt của G có cùng trọng lượng. Tất nhiên trong câu trả lời này, nơi mối quan tâm chính là tìm tất cả các MST, chúng tôi sẽ chỉ quan tâm các thuật toán MST trong hương vị thứ hai.GG

Một thuật toán MST tương thích so sánh có thể tìm thấy tất cả các MST.

Để chứng minh đề xuất trên, chúng ta chỉ cần điều chỉnh một chút phần "Kruskal có thể tìm thấy mọi MST" trong tính toán số lượng MST . Đối với bất kỳ MST của G có hàm trọng số w 1 , hãy chọn trọng số dương nhẹ hơn chênh lệch tuyệt đối giữa bất kỳ cặp trọng số cạnh không bằng nhau nào. Nếu chúng ta trừ đi trọng lượng đó từ trọng lượng của mỗi cạnh tính bằng m mà không thay đổi trọng số của các cạnh khác, chúng ta sẽ có được hàm trọng số mới, giả sử, w 2 . Nếu cạnh e 1 nhẹ hơn e 2 bởi w 1 , thì e 1 phải nhẹ hơnmGw1mw2e1e2w1e1 bởi w 2 là tốt. Theo bổ đề 2, w 1 w 2 tương thích với nhau. Lưu ý rằng m là MST duy nhất có w 2 . (Một cách để thể hiện tính duy nhất này là chứng minh rằng bất cứ khi nào giảm trọng lượng của một cạnh MST, mọi MST có hàm trọng số mới đều phải chứa cạnh đó.) Vì vậy, bất kỳ lần chạy thuật toán nào trên w 2 đều sẽ tìm thấy m . Vì thuật toán tương thích so sánh, chúng tôi có thể chạy thuật toán theo cùng một cách với w 1 hoặc với w 2 . Vì lần chạy đó sẽ tìm thấy MST duy nhất, m vớie2w2w1w2mw2w2mw1w2m , nó sẽ tìm thấy m cũng với w 1 .w2mw1

Mọi thuật toán MST đều tương thích so sánh

Các đề xuất trên âm thanh quá mức. Vâng, theo mọi thuật toán MST, ý tôi là bất kỳ thuật toán MST dựa trên so sánh chung nào mà tôi đã thấy, ngoại trừ những thuật toán rõ ràng bệnh lý như sai hoặc có các bước không cần thiết. Vì thuật toán MST tương thích so sánh có thể tìm thấy tất cả MST, mọi thuật toán MST có thể tìm thấy tất cả MST. Cụ thể, mỗi trong số bốn thuật toán MST cổ điển , cụ thể là thuật toán Borůvka, Prim's, Kruskal và xóa ngược có thể tìm thấy tất cả các MST.

Dưới đây là ba thuật toán MST tương thích hơn.

  • thuật toán xóa cạnh nặng. Bắt đầu với tất cả các cạnh. Liên tục tìm một chu kỳ và loại bỏ một trong những cạnh nặng nhất của nó cho đến khi không còn chu kỳ nào.
  • thuật toán add-non-heavy-edge. Bắt đầu với bộ trống. Lặp lại qua tất cả các cạnh. Mỗi cạnh được thêm vào và, nếu một chu kỳ được hình thành, loại bỏ một trong những cạnh nặng nhất.
  • thuật toán thay thế cạnh nhẹ hơn. Bắt đầu với bất kỳ cây bao trùm . Tìm chu kỳ trong T cộng với một cạnh e không ở T . Nếu một cạnh t trong chu kỳ đó là nặng hơn e , loại bỏ t từ T và thêm e để T . Lặp lại cho đến khi chúng tôi không thể giảm trọng lượng của T nữa.TTeTtetTeTT

Thuật toán MST sau đây không tương thích.

  • thuật toán của Kruskal thiên vị độ, là thuật toán của Kruskal với sửa đổi sau. Giả sử khi chúng ta sẽ loại bỏ một cạnh có trọng số tối thiểu khỏi như trong mô tả của wikipedia về thuật toán của Kruskal , chúng ta có nhiều cạnh với trọng số tối thiểu để chọn. Cạnh mà chúng ta chọn loại bỏ sẽ là một cạnh có tổng độ của hai đỉnh của nó là lớn nhất trong số tất cả các lựa chọn. Thuật toán này không thể tương thích so sánh vì nó không tìm thấy MST { a b , b c , c d } của đồ thị với các đỉnh a , b , c và cạnh a bS{ab,bc,cd}a,b,cabtrọng lượng và các cạnh b c , c d , d b của trọng lượng 2 . Thuật toán này được coi là bệnh lý vì sự sửa đổi không cần thiết đó.1bc,cd,db2

Xin lưu ý rằng tất cả tám thuật toán MST được đề cập ở trên đều dựa trên so sánh.

Làm thế nào để hiển thị một thuật toán là tương thích so sánh?

Tôi sẽ sử dụng thuật toán của Kruskal làm ví dụ. Dưới đây là mô tả của Thuật toán Kruskal (trong hương vị giây) trên một đồ thị kết nối vô hướng có trọng .G

  • tạo đồ thị có cùng đỉnh với G nhưng không có cạnh. Vậy F là một rừng gồm các cây tách biệt của một đỉnh.FGF
  • tạo một tập chứa tất cả các cạnh trong biểu đồ.S
  • trong khi là không trống và F chưa kéo dài SF
    • chọn một cạnh với trọng lượng tối thiểu từ .S
    • loại bỏ cạnh từ .S
    • Nếu cạnh đó kết nối hai cây khác nhau thì thêm nó vào rừng , kết hợp hai cây thành một cây duy nhấtF
  • sản lượng .F

Hãy w 2 có hai chức năng cân so sánh tương thích trên G . Thuật toán của Kruskal chỉ liên quan đến hàm trọng số trong bước "chọn một cạnh có trọng số tối thiểu từ S ". Điều kiện 2 của bổ đề 1 cho chúng ta biết rằng chúng ta có thể chọn một cạnh nhẹ nhất trong bước này. Sau đó chúng ta có thể kiểm tra dễ dàng bằng cách cảm ứng rằng chúng ta có thể chạy tất cả các bước theo cùng một cách với w 1 và với w 2 . Vì vậy, thuật toán của Kruskal tương thích so sánh.w1w2GSw1w2

Một thuật toán tương thích so sánh nếu, theo thuật ngữ lỏng lẻo, nó có thể được mô tả theo ba loại bước.

  1. làm một cái gì đó không liên quan đến trọng lượng.
  2. chọn một cạnh có trọng lượng tối thiểu trong một tập hợp các cạnh đã cho
  3. chọn một cạnh có trọng lượng tối đa trong một tập hợp các cạnh đã cho

Điều kiện đủ này bao gồm thuật toán Borůvka, Prim's, Kruskal, xóa ngược, xóa cạnh nặng và bổ sung không nặng. Lưu ý rằng để phù hợp với điều kiện đủ này, chúng tôi có thể phải thay đổi một số mô tả nhất định về thuật toán mà không ảnh hưởng đến bộ MST có thể tiếp cận. Do ngoại lệ của thuật toán Kruskal thiên vị độ tương thích so sánh, tôi xin nhấn mạnh điều kiện đủ này được mô tả bằng thuật ngữ lỏng lẻo

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.