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:E→R+hàm chi phí cạnh. Sau đó,(E,I) với
I={F⊆E∣(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)=(maxe∈Ec(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
Để 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 F∈I, 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,F2∈I, |F1|>|F2| ngụ ý rằng có e∈F1∖F2 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.
Để 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.
- 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ố.
- Một khu rừng là một liên minh rời rạc của cây.
- 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.