Sự lựa chọn tham lam và matroids (greedoids)


7

Khi tôi đang xem qua các tài liệu về cách tiếp cận tham lam, tôi đã biết rằng một kiến ​​thức về matroids (greedoids) sẽ giúp tôi tiếp cận vấn đề một cách đúng đắn. Sau khi đọc về matroid tôi gần như đã hiểu matroids là gì. Nhưng làm thế nào để bạn sử dụng khái niệm matroid để giải quyết một vấn đề tối ưu hóa nhất định?

Lấy ví dụ, vấn đề lựa chọn hoạt động . Các bước để sử dụng lý thuyết matroid để giải quyết vấn đề là gì?


1
Hãy xem Cormen et al. cuốn sách . Có một chương về các thuật toán và matroid tham lam.
Juho

Tôi không chắc làm thế nào để đọc câu hỏi của bạn về vấn đề này, nhưng lưu ý rằng matroidgreedoids không giống nhau.
Raphael

Câu trả lời:


6

Kết nối là nếu bạn có thể biểu diễn cấu trúc bên dưới vấn đề tối ưu hóa của mình dưới dạng matroid, bạn có thể sử dụng thuật toán tham lam chính tắc để tối ưu hóa tổng của bất kỳ hàm trọng số dương nào. Nếu mục tiêu tối ưu hóa của bạn phù hợp với mô hình này, bạn có thể giải quyết vấn đề của mình bằng phương pháp tham lam.

Thí dụ

Xem xét vấn đề cây bao trùm tối thiểu với trọng số cạnh dương¹. Chúng tôi sẽ chỉ ra rằng có một matroid tương ứng với vấn đề đó, ngụ ý rằng nó có thể được giải quyết một cách tham lam, đó là bằng thuật toán tham lam kinh điển trên matroid đã nói.

Để cho G=(V,E,c) là một đồ thị vô hướng với c:ER+hàm chi phí cạnh. Sau đó,(E,I) với

I={FE(V|F,F) is a forest}²

là một con giáp Vì vậy, chúng ta có thể tìm thấy các yếu tố củaI tối đa hóa tổng trọng số cạnh c(e)=(maxeEc(e))c(e). Điều này xảy ra là một cây bao trùm tối thiểu. Lưu ý rằng thuật toán tham lam kinh điển được gọi là thuật toán của Kruskal trong bối cảnh này vì những lý do lịch sử.

Bằng chứng

  1. Để hiển thị: (E,I)là một con giáp Chúng tôi phải xác minh ba thuộc tính :

    • I - đồ thị trống là một khu rừng.
    • Nếu FI, mọi tập hợp con của F trong I- được cung cấp một rừng tùy ý, loại bỏ các cạnh không thể giới thiệu chu kỳ. Do đó, mỗi sơ đồ của một khu rừng là một khu rừng.
    • Cho mọi F1,F2I, |F1|>|F2| ngụ ý rằng có eF1F2 vậy nên F2{e}I - xem xét một khu rừng tùy ý F1 và một cái nhỏ hơn F2. Giả sử không có như vậye. Điều đó có nghĩa là tất cả các cạnh trongF1 nằm trong vết cắt gây ra bởi các cạnh trong F2³. Như chỉ có|F2| những vết cắt như vậy, ít nhất một cặp cạnh trong F1 cổ phiếu cắt giảm ; điều này mâu thuẫn với điều đóF1 là một khu rừng.
  2. Để hiển thị: bất kỳ yếu tố F với trọng lượng tối đa trong I là một cây bao trùm tối thiểu của G. Trước hết, rõ ràngF có trọng lượng tối đa theo c, theo định nghĩa của c, nó cũng có trọng lượng tối thiểu theoc. Bây giờ tất cả những gì chúng ta phải chỉ ra rằng đó là một cây bao trùm: nếu không, nó sẽ không tối đa theo nghĩa là chúng ta vẫn có thể thêm các cạnh (với trọng lượng dương), trái ngược với trọng lượng tối đa.


  1. Chúng ta có thể đối phó với các trọng số cạnh âm bằng cách thêm trọng lượng tối thiểu cộng với một cho tất cả các trọng số.
  2. Một khu rừng là một liên minh rời rạc của cây.
  3. Một biểu đồ chứa một chu kỳ khi và chỉ khi có một vết cắt có nhiều hơn một cạnh.
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.