Chương 4 Phương pháp Tham lam (Greedy Method)
Nội dung 1. Bài toán “Chọn hoạt động”   2. Phương pháp “Tham lam “ 3. Cơ sở lý thuyết của Tham lam
1. Bài toán “Chọn hoạt động” S = {a 1 ,a 2 ,..,a n } : tập các hoạt động muốn sử dụng tài nguyên  (ví dụ: một hội trường) Hoạt động a i  (i=1..n) chiếm tài nguyên:  [s i , f i ) ( s i : thời điểm bắt đầu,   f i : thời điểm kết thúc) Hai hoạt động  “tương thích”  lẫn nhau nếu [s i ,f i ) và [s i ,f j ) không chồng lên nhau Một tập {a i 1 ,a i 2 ,..,a i k } được gọi là  “tương thích”  nếu a i u  tương thích a i v ,   1  u,v  k, u  v Tìm tập tương thích lớn nhất
1. Bài toán “Chọn hoạt động” (2) {a 3 ,a 9 ,a 11 } là một tập tương thích nhưng không lớn nhất {a 1 ,a 4 ,a 8 ,a 11 } là tập tương thích lớn nhất {a 2 ,a 4 ,a 9 ,a 11 } cũng là một tập tương thích lớn nhất Ví dụ:  có 11 hoạt động  (được sắp xếp tăng dần theo thời điểm kết thúc) 13 2 10 7 5 4 8 3 5 9 5 6 10 6 7 11 8 8 14 12 11 12 6 5 4 f i 8 0 3 1 s i   9 3 2 1
1. Bài toán “Chọn hoạt động” (3) 1. Quy hoạch động 2. Tham lam 3. Đệ quy 3. Khử Đệ quy Chia bài toán lớn thành 2 bài toán con Chỉ cần sự lựa chọn Tham lam    Còn lại 1 bài toán con Xây dựng giải thuật  Đệ quy Chuyển Đệ quy    Lặp Các bước thực hiện:
1. Bài toán “Chọn hoạt động” (4) Tìm cấu trúc con tối ưu Gọi tập S ij  = {a k  S | f i  s k <f k  s j } Giả sử: f 0    f 1   …   f n     f n+1  (có thêm 2 hoạt động a o  và a n+1 ) Xét bài toán con khác rỗng S ij : Giả sử   a k , f i     s k     f k     s j .  Nếu chọn a k     2 bài toán con: S ik  và S kj    |S ij | = |S ik | + |S kj | + 1 Nhận xét: Nếu A ij  = MaxComp(S kj ) thì A ik  = MaxComp(S ik ) và A kj  = MaxComp(S kj ) Giải pháp: chia bài toán A ij  thành 2 bài toán con A ik  và A kj A ij  = A ik     {a k }    A kj Bài toán ban đầu: A 0,n+1 1. Quy hoạch động 2. Tham lam 3. Đệ quy 3. Khử Đệ quy
1. Bài toán “Chọn hoạt động” (5) Xây dựng giải pháp Đệ qui: Gọi c ij  = |A ij | Với S ij       , ta có công thức đệ quy: c ij  = c ik  + c kj  + 1 (k có thể nhận j-i-1 giá trị) Công thức đệ quy đầy đủ:  c ij  =  1. Quy hoạch động 2. Tham lam 3. Đệ quy 3. Khử Đệ quy 0    nếu S ij =    Max {c i k +c k j +1} nếu S ij  i+1     k     j-1
1. Bài toán “Chọn hoạt động” (6) S ij : bài toán khác rỗng. Nếu a m  S ij  mà f m =min {f k  | a k  S ij } thì: a m  được sử dụng trong tập con tương thích lớn nhất nào đó của S ij S im =      nếu chọn a m  thì chỉ còn duy nhất bài toán khác rỗng S mj 1. Quy hoạch động 2. Tham lam 3. Đệ quy 3. Khử Đệ quy Định lý: A ij A’ ij a k a m S ij
1. Bài toán “Chọn hoạt động” (7) RecusiveActivitySelector (s,f,i,j)  { m  i+1 while  (m<j) and (s m <f i )  do  m   m+1 if  (m<j)  then   return  {a m }  RecursiveActivitySelector (s,f,m,j) else   return    } 1. Quy hoạch động 2. Tham lam 3. Đệ quy 3. Khử Đệ quy Vào:  - 2 mảng s và f (thời điểm bắt đầu và kết thúc của các hoạt động) -2 chỉ số i và j biểu thị bài toán con S ij Ra:  Tập tương thích lớn nhất trong S ij Lời gọi ban đầu:  RecursiveActivitySelector (s, f, 0, n+1)
1. Bài toán “Chọn hoạt động” (8) GreedyAcrivitySelector (s,f)  { n  length(s) A   {a 1 } i   1 for  m   1  to  n  do if  s m >f i   then   { A   A  {a m } i   m } return  A } 1. Quy hoạch động 2. Tham lam 3. Đệ quy 3. Khử Đệ quy
1. Bài toán “Chọn hoạt động” (9) Minh họa: a 0 a 0 a 1 m=1 a 1 a 2 a 3 a 4 m=4 a 1 a 5 a 4 a 6 a 7 a 8 m=8 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 t k  s k   f k 0  -  0 1  1  4 2  3  5 3  0  6 4  5  7 5  3  8 6  5  9 7  6  10 8  8  11 a 1 a 4 a 8 a 11 RAS(s,f, 0,12) RAS(s,f, 1,12) RAS(s,f, 4,12) 12     -
2. Phương pháp “Tham lam” Tiến trình thực hiện phương pháp Tham lam Xác định cấu trúc con tối ưu Xây dựng giải pháp đệ quy Chứng minh: tại mỗi bước đệ qui,  lựa chọn Tham lam  là một trong những lựa chọn cho  kết quả tối ưu Chỉ ra: sau lỗi lựa chọn Tham lam, một trong những bài toán con sẽ rỗng Xây dựng giải pháp đệ quy cho chiến lược Tham lam Khử đệ quy
2. Phương pháp “Tham lam” (2) Một cách tổng quát, thực hiện phương pháp Tham lam qua các bước: Tìm lựa chọn sao cho các bước tiếp theo chỉ việc giải quyết một bài toán con Chứng minh: với sự lựa chọn Tham lam tại mỗi bước     luôn tìm được  1 giải pháp tối ưu  (cho bài toán ban đầu) Chỉ ra: với sự lựa chọn Tham lam tại mỗi bước    giải pháp tối ưu của bài toán con còn lại kết hợp với sự lựa chọn Tham lam này  sẽ đi đến  một giải pháp tối ưu  (cho bài toán ban đầu)
2. Phương pháp “Tham lam” (3) Hai đặc tính quan trọng của phương pháp Tham lam: Tính lựa chọn Tham lam   (Greedy Choice Property) :   Một bài toán có “tính lựa chọn Tham lam” nếu có thể tìm được 1  giải pháp tối ưu toàn cục bằng cách lựa chọn tối ưu cục bộ.  Nhiều sự lựa chọn    chọn phương án tốt nhất Tham lam (Top-Down)    Quy hoạch động (Bottom-Up) Cấu trúc con tối ưu   (Optimal Substructure):   Một bài toán có “cấu trúc con tối ưu” nếu giải pháp tối ưu cho bài toán này chứa các giải pháp tối ưu cho các bài toán con của nó.
3. Cơ sở lý thuyết Hasser Whitney (1907-1989) 1935: trong bài báo  “ On the abstract properties of linear dependence ” , ông đưa ra lý thuyết Matroid Lý thuyết matroid  không thể  áp dụng cho  tất cả  các trường hợp áp dụng phương pháp Tham lam  (như bài toán “Chọn hoạt động”, mã Huffman)
3. Cơ sở lý thuyết (2) Một  matroid  mà một bộ 2 có thứ tự M=(S,  ), thỏa mãn: S là một tập hữu hạn  khác rỗng  là một họ khác rỗng các tập con (độc lập) của S, thỏa mãn: nếu B    và A  B thì A    (ta nói   là  di truyền )  M thỏa mãn tính chất  trao đổi  (exchange) nếu A   , B    và |A|<|B| thì   x  B-A mà A  {x}   Định nghĩa 1: Ví dụ:   Matroid ma trận  M=(S,  ).  S  là tập các hàng của ma trận.    là họ các tập con của S mà các hàng trong mỗi tập con này độc lập tuyến tính. Matroid đồ thị  M G =(S G ,  G ). G=(V,E) là đồ thị vô hướng.  S G  là tập các cạnh của đồ thị G. A   G      A không chứa chu trình
3. Cơ sở lý thuyết (3) Chứng minh: S G =E là một tập hữu hạn khác rỗng  G  là di truyền vì một tập con của một rừng là một rừng Tính chất trao đổi? G A =(V,A), G B =(V,B) là rừng của G và |B|>|A|. Rừng G A  có |V|-|A| cây, rừng G B  có |V|-|B| cây. G B  có ít cây hơn G A  nên   cây T  G B  mà các đỉnh của T nằm ở 2 cây khác nhau trong G A .  T liên thông      (u,v)  T mà u và v nằm ở 2 cây kh ác nhau của G A  nên cạnh (u,v)  có thể thêm vào G A  mà không tạo thành chu trình    M G  thỏa mãn tính chất trao đổi. Nếu G=(V,E) là một đồ thị vô hướng thì M G =(S G ,  G ) là một  matroid . Định lý 1: G A G B 2 3 4 5 1 2 3 4 5 1
3. Cơ sở lý thuyết (4) Cho matroid M=(S,  ). x  A được gọi là  phần tử mở rộng  của A    nếu A  {x}   A là tập con độc lập của matroid M. Ta nói A  cực đại  nếu nó không có phần tử mở rộng nào. Mọi tập con cực đại trong một matroid có  cùng lực lượng . Định lý 2: Chứng minh: A là tập con cực đại trong M. Giả sử   B là tập con cực đại khác trong M mà |B|>|A|. Tính chất trao đổi    x=B-A là một phần tử mở rộng của A    trái với giả thiết A là tập con cực đại    đpcm Phần tử mở rộng:
3. Cơ sở lý thuyết (5) Matroid M=(S,  ) là  có trọng số  nếu    ánh xạ: w: S     R +   x  w(x) Với A  S, ta có: w(A) = sum x  A (w(x)) Matroid có trọng số: w(B) w(A)
3. Cơ sở lý thuyết (6) Nhiều bài toán sử dụng Tham lam để tim lời giải tối ưu tương đương việc tìm tập con cực đại có trọng số lớn nhất trong một matroid có trọng số. Ví dụ:  bài toán Cây khung nhỏ nhất Gọi matroid M G  với hàm trọng số w’: w’(e) = w 0 -w(e).  Trong đó w 0  = max{w(e)}+1 1 tập con A cực đại   1 cây khung của đồ thị w’(A) = (|V|-1)w 0  - w(A). w(A) là độ dài của cây khung. Cực đại hóa w’(A)    cực tiểu hóa w(A) tìm tập con tối ưu A    tìm cây khung nhỏ nhất  Phương pháp Tham lam áp dụng cho matroid có trọng số
3. Cơ sở lý thuyết (7) Greedy  (S,    , w) A  Sort(S)  {Sxếp S không tăng dần w} for  each x in S  do if   (A  {x}   )  then   A    A  {x} return  A Vào: Matroid có trọng số, đại diện bởi 3 thông số: S,   , w Ra: Tập con tối ưu A
3. Cơ sở lý thuyết (8) M=(S,  ) là một matroid có trọng số, với hàm trọng số w và tập S có thứ tự không tăng dần theo trọng số. x là phần tử đầu tiên của S mà {x} độc lập. Nếu   x thì    một tập con tối ưu A của S chứa x. Bổ đề 1: Matroid có tính lựa chọn tham lam y 3 y 1 y 5 y 4 Chứng minh: Không   x       là tập con độc lập duy nhất Gọi B là tập con tối ưu   x  B    đpcm x  B    xây dựng tập A (sử dụng tính chất trao đổi) B A x y 3 y 4 y 1 y 2 y 5
3. Cơ sở lý thuyết (9) Với matroid M=(S,  ). Nếu x  S là một mở rộng của tập con độc lập A nào đó của S thì x cũng là một mở rộng của   . Bổ đề 2: Chứng minh:  x là 1 mở rộng của A    A  {x} độc lập. l di truyền    {x} độc lập. Matroid M=(S,  ). Nếu x  S mà x không là mở rộng của    thì x không là mở rộng của bất kỳ tập con độc lập A nào  của S. Hệ quả 1: Nếu một phần tử không được chọn lúc ban đầu thì sau này cũng không được chọn!
3. Cơ sở lý thuyết (10) Gọi x là phần tử đầu tiên của S được chọn bởi hàm Greedy. Vấn đề còn lại của việc tìm một tập con độc lập có trọng số cực đại (chứa x) là tìm một tập con độc lập có trọng số cực đại của matroid có trọng số M’=(S’,  ’): S’ = {y  S | {x,y}   ,  ’  = {B  S-{x} | B  {x}  S}, Hàm trọng số cho M’ là hàm trọng số cho M nhưng giới hạn bởi S’ (gọi M’ là rút gọn của M bởi x) Bổ đề 3: (Matroid có tính cấu trúc con tối ưu)
3. Cơ sở lý thuyết (11) Chứng minh: Hệ quả 1    những phần tử bị bỏ lúc đầu không hữu dụng    sau này khôn cần xét lại chúng nữa Bổ đề 1    khi một phần tử đầu tiên x được chọn, Greedy đúng khi thêm x vào A vì luôn tồn tại một tập con tối ưu chứa x Bổ đề 3    bái toán còn lại là tìm tập con tối ưu trong matroid M’ (M’ là rút gọn của M bởi x) Nếu M=(S,  ) là một matroid có trọng số với hàm trọng số là w thì hàm Greedy(S,   ,w) trả về một tập con tối ưu. Định lý 3: (tính đúng của Tham lam áp dụng cho matroid)

More Related Content

PDF
Giải bài tập xác suất thống kê 1
PDF
Bo de toan roi rac (on thi cao hoc khmt)
PDF
ĐỀ TÀI : ĐIỂM DANH BẰNG NHẬN DIỆN KHUÔN MẶT. Giảng viên : PGS.TS. HUỲNH CÔNG ...
PDF
Giáo trình kiến trúc máy tính i chương 4 mạch logic số - tài liệu, ebook
PPT
Thuật toán K mean
PDF
Bai tap va loi giai sql
 
PDF
Hướng dẫn giải bài tập Đại Số Tuyến Tính
DOC
Đồng dư thức
Giải bài tập xác suất thống kê 1
Bo de toan roi rac (on thi cao hoc khmt)
ĐỀ TÀI : ĐIỂM DANH BẰNG NHẬN DIỆN KHUÔN MẶT. Giảng viên : PGS.TS. HUỲNH CÔNG ...
Giáo trình kiến trúc máy tính i chương 4 mạch logic số - tài liệu, ebook
Thuật toán K mean
Bai tap va loi giai sql
 
Hướng dẫn giải bài tập Đại Số Tuyến Tính
Đồng dư thức

What's hot (20)

DOC
Hệ thống thông tin
PPTX
Phương pháp tham lam giải bài toán lập lịch công việc
PDF
Báo cáo đồ án tốt nghiệp "Ứng dụng trí tuệ nhân tạo nhận dạng chữ viết tay xâ...
DOC
Cong thuc luong giac day du
DOCX
Báo Cáo Đồ Án 2 : Thiết Kế Web Bán Đồng Hồ
DOC
PHÂN TÍCH THIẾT KẾ HỆ THỐNG BÁN HÀNG QUA MẠNG
PPTX
Slide báo cáo đồ án tốt nghiệp "Website cửa hàng điện thoại trực tuyến"
PDF
Thiết kế mạng LAN cho công ty 2 tầng
PDF
Do an xay_dung_website_thuong_mai_dien_tu
PDF
Bảng Student
PDF
Xây dựng, thiết kế hệ thống mạng cục bộ (Thực tế) 2225926
PPT
Mạng neuron, trí tuệ nhân tạo
PPT
Quy hoạch động
DOC
Thuật giải di truyền
DOCX
Mẫu báo cáo bài tập lớn
PDF
Tài liệu tổng kểt môn mạng máy tính
PDF
Kỹ thuật siêu cao tần tài liệu, tai lieu
PDF
Phân tích và thiết kế hệ thống quản lý quán Internet
PPT
Xây Dựng Mạng LAN
Hệ thống thông tin
Phương pháp tham lam giải bài toán lập lịch công việc
Báo cáo đồ án tốt nghiệp "Ứng dụng trí tuệ nhân tạo nhận dạng chữ viết tay xâ...
Cong thuc luong giac day du
Báo Cáo Đồ Án 2 : Thiết Kế Web Bán Đồng Hồ
PHÂN TÍCH THIẾT KẾ HỆ THỐNG BÁN HÀNG QUA MẠNG
Slide báo cáo đồ án tốt nghiệp "Website cửa hàng điện thoại trực tuyến"
Thiết kế mạng LAN cho công ty 2 tầng
Do an xay_dung_website_thuong_mai_dien_tu
Bảng Student
Xây dựng, thiết kế hệ thống mạng cục bộ (Thực tế) 2225926
Mạng neuron, trí tuệ nhân tạo
Quy hoạch động
Thuật giải di truyền
Mẫu báo cáo bài tập lớn
Tài liệu tổng kểt môn mạng máy tính
Kỹ thuật siêu cao tần tài liệu, tai lieu
Phân tích và thiết kế hệ thống quản lý quán Internet
Xây Dựng Mạng LAN
Ad

Similar to Phương pháp tham lam (20)

PDF
Tiểu luận học phần Phân tích Thi ết kế thuật toán-Thuật toán tham lam (greedy...
PPT
Chap5 new
PPT
Giáo trình Phân tích và thiết kế giải thuật - CHAP 5
PPTX
Greedy Algorithms.pptxfffffffffffffffffffffffa
PPT
Chg4 tham lam
PPT
Quy Hoach Dong
PPT
ThiếT Kế Và đáNh Giá ThuậT ToáN
PDF
Toán cao-cấp-1
DOCX
12.ma trận và dịnh thức
PPTX
DSTT Lecture 1.pptx
PPT
Tuần 1_matrận_Phép toán_Bđsc,Đặng Văn Vinh.ppt
PDF
Mot so bai toan quy hoach dong
PDF
Quy hoạch động
PDF
ĐẠI SỐ TUYẾN TÍNH.pdf
PDF
PPT
Chuong 3
PPTX
Tuần 1_matrận_Phép toán_Bđsc.pptx
DOCX
Huong dan 8 o so
PDF
Ma trận - định thức và các ứng dụng trong kinh tế
PDF
Chương 2_Các pp số trong đại số tuyến tính.pdf
Tiểu luận học phần Phân tích Thi ết kế thuật toán-Thuật toán tham lam (greedy...
Chap5 new
Giáo trình Phân tích và thiết kế giải thuật - CHAP 5
Greedy Algorithms.pptxfffffffffffffffffffffffa
Chg4 tham lam
Quy Hoach Dong
ThiếT Kế Và đáNh Giá ThuậT ToáN
Toán cao-cấp-1
12.ma trận và dịnh thức
DSTT Lecture 1.pptx
Tuần 1_matrận_Phép toán_Bđsc,Đặng Văn Vinh.ppt
Mot so bai toan quy hoach dong
Quy hoạch động
ĐẠI SỐ TUYẾN TÍNH.pdf
Chuong 3
Tuần 1_matrận_Phép toán_Bđsc.pptx
Huong dan 8 o so
Ma trận - định thức và các ứng dụng trong kinh tế
Chương 2_Các pp số trong đại số tuyến tính.pdf
Ad

More from Hoàng Chí Dũng (20)

PPTX
Giaoan lythuyet mangmaytinhcb chuong1
PPT
Mang May Tinh
PPT
Baigiang Ns2
PPT
Csdl Nangcao
PPT
Seminar Ly Thuyet Chuan Hoa V1.2
PPT
Csdl Nangcao
PPT
Baocao Chuanhoa
PPT
Chuyen De 3 CSDL nang cao
PPT
Chuyen De 1 CSDL nang cao
PPT
Cd 2 CSDL nang cao
PPT
Chuyen De 3 Bo Sung CSDL nang cao
PPT
Chu trinh Haminton de quy
PPT
Chu trinh Haminton de quy
PPT
Bai toan du lich
PPT
Seminar Ly Thuyet Chuan Hoa V1.2
PPT
Baocao Chuanhoa
PPT
Csdl Nangcao
PPT
Data Warehouse
PPT
Quy hoạch động
PPT
bài tập quay lui
Giaoan lythuyet mangmaytinhcb chuong1
Mang May Tinh
Baigiang Ns2
Csdl Nangcao
Seminar Ly Thuyet Chuan Hoa V1.2
Csdl Nangcao
Baocao Chuanhoa
Chuyen De 3 CSDL nang cao
Chuyen De 1 CSDL nang cao
Cd 2 CSDL nang cao
Chuyen De 3 Bo Sung CSDL nang cao
Chu trinh Haminton de quy
Chu trinh Haminton de quy
Bai toan du lich
Seminar Ly Thuyet Chuan Hoa V1.2
Baocao Chuanhoa
Csdl Nangcao
Data Warehouse
Quy hoạch động
bài tập quay lui

Recently uploaded (20)

PDF
Bai giang tieng trung HSK4-BAI1 - zhenzhengdeaiqing
PDF
1. BỆNH VI NẤM CẠN do nhiễm ký sinh .pdf
PDF
NGÂN HÀNG CÂU HỎI TÁCH CHỌN LỌC THEO CHUYÊN ĐỀ TỪ ĐỀ THI THỬ TN THPT 2025 TIẾ...
PPT
CH4 1 Van bagggggggggggggggggggggggggggggn QH.ppt
DOCX
Sổ chỉ tiêu thực tập rhm hoàn chỉnh.docx
PDF
GIÁO TRÌNH ỨNG DỤNG CÔNG NGHỆ THÔNG TIN TRONG DẠY HỌC HÓA HỌC Ở TRƯỜNG PHỔ TH...
PDF
Giáo Dục Minh Triết: Tâm thế - Tâm thức bước vào kỷ nguyên mới
PPTX
THUÊ 2025 - CHƯƠNG 1 TỔNG QUANưqeqweqw.pptx
PDF
dfmnghjkdh hỳh fhtrydr. ỷey rỷtu dfyy ỳy rt y y ytyr t rty rt
PDF
Trạng nguyên Tiếng Việt lớp 2 năm 2025 - 2026 có đáp án
PDF
GIÁO ÁN KẾ HOẠCH BÀI DẠY THỂ DỤC 12 BÓNG RỔ - KẾT NỐI TRI THỨC CẢ NĂM THEO CÔ...
PPTX
Báo cáo Brucella sữa - trọng nghĩa..pptx
PPTX
Rung chuông vàng về kiến thức tổng quan về giáo dục
PPTX
Nhận thức chung về vi phạm pháp luật bảo vệ môi trường
PDF
Suy tim y khoa, dược, y học cổ truyền mới
PPTX
Bai giảng ngữ văn Trai nghiem de truong thanh.pptx
PDF
10 phương pháp rèn luyên tâm trí vững vàng • Sống Vững Vàng #1
PDF
TUYỂN CHỌN ĐỀ ÔN THI OLYMPIC 30 THÁNG 4 HÓA HỌC LỚP 10-11 CÁC NĂM 2006-2021 B...
PPTX
Mô tả tổng quan về mô mình hóa robot nhiều bậc tự do
PDF
BÀI GIẢNG POWERPOINT CHÍNH KHÓA THEO LESSON TIẾNG ANH 11 - HK1 - NĂM 2026 - G...
Bai giang tieng trung HSK4-BAI1 - zhenzhengdeaiqing
1. BỆNH VI NẤM CẠN do nhiễm ký sinh .pdf
NGÂN HÀNG CÂU HỎI TÁCH CHỌN LỌC THEO CHUYÊN ĐỀ TỪ ĐỀ THI THỬ TN THPT 2025 TIẾ...
CH4 1 Van bagggggggggggggggggggggggggggggn QH.ppt
Sổ chỉ tiêu thực tập rhm hoàn chỉnh.docx
GIÁO TRÌNH ỨNG DỤNG CÔNG NGHỆ THÔNG TIN TRONG DẠY HỌC HÓA HỌC Ở TRƯỜNG PHỔ TH...
Giáo Dục Minh Triết: Tâm thế - Tâm thức bước vào kỷ nguyên mới
THUÊ 2025 - CHƯƠNG 1 TỔNG QUANưqeqweqw.pptx
dfmnghjkdh hỳh fhtrydr. ỷey rỷtu dfyy ỳy rt y y ytyr t rty rt
Trạng nguyên Tiếng Việt lớp 2 năm 2025 - 2026 có đáp án
GIÁO ÁN KẾ HOẠCH BÀI DẠY THỂ DỤC 12 BÓNG RỔ - KẾT NỐI TRI THỨC CẢ NĂM THEO CÔ...
Báo cáo Brucella sữa - trọng nghĩa..pptx
Rung chuông vàng về kiến thức tổng quan về giáo dục
Nhận thức chung về vi phạm pháp luật bảo vệ môi trường
Suy tim y khoa, dược, y học cổ truyền mới
Bai giảng ngữ văn Trai nghiem de truong thanh.pptx
10 phương pháp rèn luyên tâm trí vững vàng • Sống Vững Vàng #1
TUYỂN CHỌN ĐỀ ÔN THI OLYMPIC 30 THÁNG 4 HÓA HỌC LỚP 10-11 CÁC NĂM 2006-2021 B...
Mô tả tổng quan về mô mình hóa robot nhiều bậc tự do
BÀI GIẢNG POWERPOINT CHÍNH KHÓA THEO LESSON TIẾNG ANH 11 - HK1 - NĂM 2026 - G...

Phương pháp tham lam

  • 1. Chương 4 Phương pháp Tham lam (Greedy Method)
  • 2. Nội dung 1. Bài toán “Chọn hoạt động” 2. Phương pháp “Tham lam “ 3. Cơ sở lý thuyết của Tham lam
  • 3. 1. Bài toán “Chọn hoạt động” S = {a 1 ,a 2 ,..,a n } : tập các hoạt động muốn sử dụng tài nguyên (ví dụ: một hội trường) Hoạt động a i (i=1..n) chiếm tài nguyên: [s i , f i ) ( s i : thời điểm bắt đầu, f i : thời điểm kết thúc) Hai hoạt động “tương thích” lẫn nhau nếu [s i ,f i ) và [s i ,f j ) không chồng lên nhau Một tập {a i 1 ,a i 2 ,..,a i k } được gọi là “tương thích” nếu a i u tương thích a i v ,  1  u,v  k, u  v Tìm tập tương thích lớn nhất
  • 4. 1. Bài toán “Chọn hoạt động” (2) {a 3 ,a 9 ,a 11 } là một tập tương thích nhưng không lớn nhất {a 1 ,a 4 ,a 8 ,a 11 } là tập tương thích lớn nhất {a 2 ,a 4 ,a 9 ,a 11 } cũng là một tập tương thích lớn nhất Ví dụ: có 11 hoạt động (được sắp xếp tăng dần theo thời điểm kết thúc) 13 2 10 7 5 4 8 3 5 9 5 6 10 6 7 11 8 8 14 12 11 12 6 5 4 f i 8 0 3 1 s i 9 3 2 1
  • 5. 1. Bài toán “Chọn hoạt động” (3) 1. Quy hoạch động 2. Tham lam 3. Đệ quy 3. Khử Đệ quy Chia bài toán lớn thành 2 bài toán con Chỉ cần sự lựa chọn Tham lam  Còn lại 1 bài toán con Xây dựng giải thuật Đệ quy Chuyển Đệ quy  Lặp Các bước thực hiện:
  • 6. 1. Bài toán “Chọn hoạt động” (4) Tìm cấu trúc con tối ưu Gọi tập S ij = {a k  S | f i  s k <f k  s j } Giả sử: f 0  f 1  …  f n  f n+1 (có thêm 2 hoạt động a o và a n+1 ) Xét bài toán con khác rỗng S ij : Giả sử  a k , f i  s k  f k  s j . Nếu chọn a k  2 bài toán con: S ik và S kj  |S ij | = |S ik | + |S kj | + 1 Nhận xét: Nếu A ij = MaxComp(S kj ) thì A ik = MaxComp(S ik ) và A kj = MaxComp(S kj ) Giải pháp: chia bài toán A ij thành 2 bài toán con A ik và A kj A ij = A ik  {a k }  A kj Bài toán ban đầu: A 0,n+1 1. Quy hoạch động 2. Tham lam 3. Đệ quy 3. Khử Đệ quy
  • 7. 1. Bài toán “Chọn hoạt động” (5) Xây dựng giải pháp Đệ qui: Gọi c ij = |A ij | Với S ij   , ta có công thức đệ quy: c ij = c ik + c kj + 1 (k có thể nhận j-i-1 giá trị) Công thức đệ quy đầy đủ: c ij = 1. Quy hoạch động 2. Tham lam 3. Đệ quy 3. Khử Đệ quy 0 nếu S ij =  Max {c i k +c k j +1} nếu S ij  i+1  k  j-1
  • 8. 1. Bài toán “Chọn hoạt động” (6) S ij : bài toán khác rỗng. Nếu a m  S ij mà f m =min {f k | a k  S ij } thì: a m được sử dụng trong tập con tương thích lớn nhất nào đó của S ij S im =   nếu chọn a m thì chỉ còn duy nhất bài toán khác rỗng S mj 1. Quy hoạch động 2. Tham lam 3. Đệ quy 3. Khử Đệ quy Định lý: A ij A’ ij a k a m S ij
  • 9. 1. Bài toán “Chọn hoạt động” (7) RecusiveActivitySelector (s,f,i,j) { m  i+1 while (m<j) and (s m <f i ) do m  m+1 if (m<j) then return {a m }  RecursiveActivitySelector (s,f,m,j) else return  } 1. Quy hoạch động 2. Tham lam 3. Đệ quy 3. Khử Đệ quy Vào: - 2 mảng s và f (thời điểm bắt đầu và kết thúc của các hoạt động) -2 chỉ số i và j biểu thị bài toán con S ij Ra: Tập tương thích lớn nhất trong S ij Lời gọi ban đầu: RecursiveActivitySelector (s, f, 0, n+1)
  • 10. 1. Bài toán “Chọn hoạt động” (8) GreedyAcrivitySelector (s,f) { n  length(s) A  {a 1 } i  1 for m  1 to n do if s m >f i then { A  A  {a m } i  m } return A } 1. Quy hoạch động 2. Tham lam 3. Đệ quy 3. Khử Đệ quy
  • 11. 1. Bài toán “Chọn hoạt động” (9) Minh họa: a 0 a 0 a 1 m=1 a 1 a 2 a 3 a 4 m=4 a 1 a 5 a 4 a 6 a 7 a 8 m=8 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 t k s k f k 0 - 0 1 1 4 2 3 5 3 0 6 4 5 7 5 3 8 6 5 9 7 6 10 8 8 11 a 1 a 4 a 8 a 11 RAS(s,f, 0,12) RAS(s,f, 1,12) RAS(s,f, 4,12) 12  -
  • 12. 2. Phương pháp “Tham lam” Tiến trình thực hiện phương pháp Tham lam Xác định cấu trúc con tối ưu Xây dựng giải pháp đệ quy Chứng minh: tại mỗi bước đệ qui, lựa chọn Tham lam là một trong những lựa chọn cho kết quả tối ưu Chỉ ra: sau lỗi lựa chọn Tham lam, một trong những bài toán con sẽ rỗng Xây dựng giải pháp đệ quy cho chiến lược Tham lam Khử đệ quy
  • 13. 2. Phương pháp “Tham lam” (2) Một cách tổng quát, thực hiện phương pháp Tham lam qua các bước: Tìm lựa chọn sao cho các bước tiếp theo chỉ việc giải quyết một bài toán con Chứng minh: với sự lựa chọn Tham lam tại mỗi bước  luôn tìm được 1 giải pháp tối ưu (cho bài toán ban đầu) Chỉ ra: với sự lựa chọn Tham lam tại mỗi bước  giải pháp tối ưu của bài toán con còn lại kết hợp với sự lựa chọn Tham lam này sẽ đi đến một giải pháp tối ưu (cho bài toán ban đầu)
  • 14. 2. Phương pháp “Tham lam” (3) Hai đặc tính quan trọng của phương pháp Tham lam: Tính lựa chọn Tham lam (Greedy Choice Property) : Một bài toán có “tính lựa chọn Tham lam” nếu có thể tìm được 1 giải pháp tối ưu toàn cục bằng cách lựa chọn tối ưu cục bộ. Nhiều sự lựa chọn  chọn phương án tốt nhất Tham lam (Top-Down)  Quy hoạch động (Bottom-Up) Cấu trúc con tối ưu (Optimal Substructure): Một bài toán có “cấu trúc con tối ưu” nếu giải pháp tối ưu cho bài toán này chứa các giải pháp tối ưu cho các bài toán con của nó.
  • 15. 3. Cơ sở lý thuyết Hasser Whitney (1907-1989) 1935: trong bài báo “ On the abstract properties of linear dependence ” , ông đưa ra lý thuyết Matroid Lý thuyết matroid không thể áp dụng cho tất cả các trường hợp áp dụng phương pháp Tham lam (như bài toán “Chọn hoạt động”, mã Huffman)
  • 16. 3. Cơ sở lý thuyết (2) Một matroid mà một bộ 2 có thứ tự M=(S,  ), thỏa mãn: S là một tập hữu hạn khác rỗng  là một họ khác rỗng các tập con (độc lập) của S, thỏa mãn: nếu B   và A  B thì A   (ta nói  là di truyền ) M thỏa mãn tính chất trao đổi (exchange) nếu A   , B   và |A|<|B| thì  x  B-A mà A  {x}   Định nghĩa 1: Ví dụ: Matroid ma trận M=(S,  ). S là tập các hàng của ma trận.   là họ các tập con của S mà các hàng trong mỗi tập con này độc lập tuyến tính. Matroid đồ thị M G =(S G ,  G ). G=(V,E) là đồ thị vô hướng. S G là tập các cạnh của đồ thị G. A   G   A không chứa chu trình
  • 17. 3. Cơ sở lý thuyết (3) Chứng minh: S G =E là một tập hữu hạn khác rỗng  G là di truyền vì một tập con của một rừng là một rừng Tính chất trao đổi? G A =(V,A), G B =(V,B) là rừng của G và |B|>|A|. Rừng G A có |V|-|A| cây, rừng G B có |V|-|B| cây. G B có ít cây hơn G A nên  cây T  G B mà các đỉnh của T nằm ở 2 cây khác nhau trong G A . T liên thông   (u,v)  T mà u và v nằm ở 2 cây kh ác nhau của G A nên cạnh (u,v) có thể thêm vào G A mà không tạo thành chu trình  M G thỏa mãn tính chất trao đổi. Nếu G=(V,E) là một đồ thị vô hướng thì M G =(S G ,  G ) là một matroid . Định lý 1: G A G B 2 3 4 5 1 2 3 4 5 1
  • 18. 3. Cơ sở lý thuyết (4) Cho matroid M=(S,  ). x  A được gọi là phần tử mở rộng của A   nếu A  {x}   A là tập con độc lập của matroid M. Ta nói A cực đại nếu nó không có phần tử mở rộng nào. Mọi tập con cực đại trong một matroid có cùng lực lượng . Định lý 2: Chứng minh: A là tập con cực đại trong M. Giả sử  B là tập con cực đại khác trong M mà |B|>|A|. Tính chất trao đổi  x=B-A là một phần tử mở rộng của A  trái với giả thiết A là tập con cực đại  đpcm Phần tử mở rộng:
  • 19. 3. Cơ sở lý thuyết (5) Matroid M=(S,  ) là có trọng số nếu  ánh xạ: w: S  R + x w(x) Với A  S, ta có: w(A) = sum x  A (w(x)) Matroid có trọng số: w(B) w(A)
  • 20. 3. Cơ sở lý thuyết (6) Nhiều bài toán sử dụng Tham lam để tim lời giải tối ưu tương đương việc tìm tập con cực đại có trọng số lớn nhất trong một matroid có trọng số. Ví dụ: bài toán Cây khung nhỏ nhất Gọi matroid M G với hàm trọng số w’: w’(e) = w 0 -w(e). Trong đó w 0 = max{w(e)}+1 1 tập con A cực đại  1 cây khung của đồ thị w’(A) = (|V|-1)w 0 - w(A). w(A) là độ dài của cây khung. Cực đại hóa w’(A)  cực tiểu hóa w(A) tìm tập con tối ưu A  tìm cây khung nhỏ nhất Phương pháp Tham lam áp dụng cho matroid có trọng số
  • 21. 3. Cơ sở lý thuyết (7) Greedy (S,  , w) A  Sort(S) {Sxếp S không tăng dần w} for each x in S do if (A  {x}   ) then A  A  {x} return A Vào: Matroid có trọng số, đại diện bởi 3 thông số: S,  , w Ra: Tập con tối ưu A
  • 22. 3. Cơ sở lý thuyết (8) M=(S,  ) là một matroid có trọng số, với hàm trọng số w và tập S có thứ tự không tăng dần theo trọng số. x là phần tử đầu tiên của S mà {x} độc lập. Nếu  x thì  một tập con tối ưu A của S chứa x. Bổ đề 1: Matroid có tính lựa chọn tham lam y 3 y 1 y 5 y 4 Chứng minh: Không  x   là tập con độc lập duy nhất Gọi B là tập con tối ưu  x  B  đpcm x  B  xây dựng tập A (sử dụng tính chất trao đổi) B A x y 3 y 4 y 1 y 2 y 5
  • 23. 3. Cơ sở lý thuyết (9) Với matroid M=(S,  ). Nếu x  S là một mở rộng của tập con độc lập A nào đó của S thì x cũng là một mở rộng của  . Bổ đề 2: Chứng minh: x là 1 mở rộng của A  A  {x} độc lập. l di truyền  {x} độc lập. Matroid M=(S,  ). Nếu x  S mà x không là mở rộng của  thì x không là mở rộng của bất kỳ tập con độc lập A nào của S. Hệ quả 1: Nếu một phần tử không được chọn lúc ban đầu thì sau này cũng không được chọn!
  • 24. 3. Cơ sở lý thuyết (10) Gọi x là phần tử đầu tiên của S được chọn bởi hàm Greedy. Vấn đề còn lại của việc tìm một tập con độc lập có trọng số cực đại (chứa x) là tìm một tập con độc lập có trọng số cực đại của matroid có trọng số M’=(S’,  ’): S’ = {y  S | {x,y}   ,  ’ = {B  S-{x} | B  {x}  S}, Hàm trọng số cho M’ là hàm trọng số cho M nhưng giới hạn bởi S’ (gọi M’ là rút gọn của M bởi x) Bổ đề 3: (Matroid có tính cấu trúc con tối ưu)
  • 25. 3. Cơ sở lý thuyết (11) Chứng minh: Hệ quả 1  những phần tử bị bỏ lúc đầu không hữu dụng  sau này khôn cần xét lại chúng nữa Bổ đề 1  khi một phần tử đầu tiên x được chọn, Greedy đúng khi thêm x vào A vì luôn tồn tại một tập con tối ưu chứa x Bổ đề 3  bái toán còn lại là tìm tập con tối ưu trong matroid M’ (M’ là rút gọn của M bởi x) Nếu M=(S,  ) là một matroid có trọng số với hàm trọng số là w thì hàm Greedy(S,  ,w) trả về một tập con tối ưu. Định lý 3: (tính đúng của Tham lam áp dụng cho matroid)