MATROID YÀ TỐI ƯU TỔ HỢP

Một phần của tài liệu Khoá luận tốt nghiệp toán tìm hiểu về lý thuyết matroid (Trang 27)

HỢP

Ở chương này ta sẽ xem xét thuật toán tham lam thực hiện trên một matroid trọng số bất kỳ.

4.1. Thuật toán tham lam

Thuật toán tham lam nhận đầu vào là matroid M = (S,T) với một hàm trọng số dương từ T vào M+ và nó sẽ trả về tập con tối ưu A. Trong thuật toán ta sẽ biểu diễn các thành phần của M bởi S[M]7[M\ và hàm trọng số bởi Cở. Thuật toán được gọi là tham lam vì nó luôn chọn phương án tốt nhất ở mỗi bước, nó sẽ xem mỗi phần tử

X £ slần lượt được sắp xếp theo trọng số giảm dần đều và trực tiếp cộng nó vào A

nếu А u {x} là độc lập.

Thuật toán

1. Л <— 0.

2. Sắp xếp S [ M] theo thứ tự giảm dần của trọng số Cứ.

3. fo r mỗi X G S[M] lấy ra ở vị trí đầu tiên từ tập được sắp xếp giảm dần theo trọng số.

5. A <— A u {*}. 6. Đưa ra kết quả A.

Những phần tử thuộc s được sắp xếp theo thứ tự giảm dần theo trọng số. Nếu phần tử X được xét được thêm vào AA vẫn độc lập thì chọn X. Vì tập 0 là độc lập theo định nghĩa matroid và X được thêm vào A với điều kiện А и {jt} là độc lập, nên tập con A luôn độc lập theo quy nạp. Vì thuật toán luôn cho ra kết quả là tập độc lập và luôn chọn cạnh có trọng số lớn nhất thỏa mãn qua mỗi bước, nên A nhận được luôn là tập độc lập có tổng trọng số lớn nhất.Sau đây ta sẽ chứng minh thuật toán trả về một tập con tối ưu qua định lý sau.

Định lý 4.1.1. Giả sử rằng M = (s,t) là một matroid trọng số với hàm trọng số là Cỡ và s được sắp xếp theo thứ tự giảm dần của trọng số. Cho X là phần tử đầu tiên của s sao cho {*} là tập độc lập. Nếu X tồn tại thì tồn tại một tập con tối ưu A của

s chứa X.

Chứng minh

Nếu không tồn tại X như thế thì tập độc lập duy nhất là tập rỗng. Nói cách khác, cho В là một tập con tối ưu khác rỗng bất kỳ. Giả sử X ị в và cho А = B.

Không có phần tử nào của в có trọng số lớn hơn Cữ(x). Để thấy điều này, ta có

y G В, dẫn đến {у} độc lập. M ặt khác X không thỏa m ãn в Ujc là tập độc lập nên với mọi y G В.

Xây dựng tập A như sau, bắt đầu với A — {x}. Do cách chọn này nên A độc lập. Áp dụng tính chất trao đổi, lặp lại việc tìm một phần tử mới của в để thêm vào

A sao cho A vẫn độc lập, cho đến khi \A\ = |z?| trong khi A vẫn độc lập. Lúc đó

А = В — {>’} и {x} Vy G В. Suy ra

со(Л) = Cở(B) - œ( y ) + û)(jc) > (ứ(B)

AВ đều là tối ưu và Jt G A nên định lý được chứng minh. □

Ta thấy rằng việc tìm tập độc lập có tổng trọng số nhỏ nhất cũng áp dụng thuật toán tham lam tương tự như trên. Sau đây ta sẽ xem xét ví dụ cụ thể của thuật toán tham lam.

4.2. Ví dụ

Xét matroid vòng M(G), S(M) — E(G)7( M) — {X C E( G) , X không chứa chu trình.

Thuật toán Kruskal xây dựng tập cạnh A của cây khung nhỏ nhất H = (V, A) của đồ thị G có n đĩnh theo từng bước. Trước hết sắp xếp các cạnh của đồ thị G theo thứ tự không giảm của độ dài. Bắt đầu từ tập A = 0, ở mỗi bước ta sẽ lần lượt duyệt trong danh sách các cạnh đã sắp xếp, từ cạnh có độ dài nhỏ nhất đến lớn hơn để tìm ra cạnh mà việc bổ sung nó vào tập A không tạo thành chu trình trong tập này. Thuật toán sẽ kết thúc khi ta thu được tập An — 1 cạnh.

Thuật toán Kruskal

begin

A : =0.

while \A\ < ( n — 1) and (E Ỷ 0) begin (adsbygoogle = window.adsbygoogle || []).push({});

Chọn e là cạnh có độ dài nhỏ nhất trong E: E : = E - M ;

if (A u {e} e 7 ( M ) ) then A \ — A u {e};

end;

if (HI < n — 1) then Đồ thị không liên thông',

end; Ví dụ 4.2.2.

Tim cây khung nhỏ nhất của đồ thị được cho trong hình sau:

2 20 4

Bước Cạnh e A U { e } e ĩ ( M ) Ea (Oa 1 ^35 thỏa mãn {35} 4 2 ^46 thỏa mãn {35},{46} 4 + 8 3 ^45 thỏa mãn {35},{46},{45} 4 + 8 + 9 4 ^13 thỏa mãn {35},{46},{45},{13} 4 + 8 + 9 + 17 5 e2ĩ thỏa mãn {35},{46},{45},{13},{23} 4 + 8 + 9 + 1 7 + 23

Bảng 4.1: Các bước tìm cây khung nhỏ nhất. A = { (3 ,5 ),(4 ,6 ),(4 ,5 ),(1 ,3 ),(2 ,3 )}

KỀT LUẬN

Sau quá trình thực hiện đề tài này, so với mục đích đã đề ra, tôi đã tìm hiểu được những kiến thức cơ bản mở đầu cho lĩnh vực mới của Toán học. Cụ thể là những nội dung sau:

1. Khái niệm matroid và các tiên đề.

2. Sự liên hệ giữa matroid và lý thuyết đồ thị.

3. Sự liên hệ giữa matroid và transversal, cụ thể là khái niệm transversal và matroid transversal

4. Sự liên hệ giữa matroid và tối ưu tổ hợp, cụ thể là thuật toán tham lam. Đối với bản thân, lần đầu tiên thực hiện một đề tài nghiên cứu khoa học tôi thực sự cảm thấy cuốn hút. Càng tiếp xúc và tìm hiểu sâu tôi càng thấy muốn đi tiếp và không ngừng suy nghĩ về vấn đề mình chưa hiểu.

Đối với nội dung nghiên cứu, tôi thấy rằng matroid có thể hình dung đơn giản là một cấu trúc tổng quát cho các loại cấu trúc của toán học. Cụ thể trong đề tài này tôi đã thể hiện với cấu trúc tuyến tính và cấu trúc rời rạc, ngoài ra còn nhiều loại nữa mà matroid thể hiện rất hiệu quả nhưng tôi chưa có điều kiện nghiên cứu sâu.

Matroid là một lĩnh vực khá mới đối với toán học thế giới và đặc biệt là với ngành toán nước ta. Matroid chưa được giảng dạy ở các trường đại học và rất ít người đã tìm hiểu về nó. Vì vậy khi nghiên cứu về matroid gặp không ít khó khăn, nhất là về tài liệu. Tuy nhiên, với những khó khăn và sự mới mẻ đó, tôi mong rằng mọi người sẽ có hứng thú và nghiên cứu về matroid. Những bước đầu tiên, ta có thể tìm hiểu sâu hơn về mối liên hệ với lý thuyết đồ thị, matroid đối ngẫu, các thuật toán ứng dụng trong tối ưu tổ hợp và nhiều hướng đi khác.

Một phần của tài liệu Khoá luận tốt nghiệp toán tìm hiểu về lý thuyết matroid (Trang 27)