SlideShare a Scribd company logo
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

DOC
Chuong 5.1 mang 4 cuc
PPTX
Phương pháp tham lam giải bài toán lập lịch công việc
PPT
chuong 5. do thi (phan 1)
PPT
Giáo trình Phân tích và thiết kế giải thuật - CHAP 5
PPT
ThiếT Kế Và đáNh Giá ThuậT ToáN
PPT
Phương pháp nhánh cận
PDF
Luận văn: Phép biến đổi phân tuyến tính, HAY, 9đ
Chuong 5.1 mang 4 cuc
Phương pháp tham lam giải bài toán lập lịch công việc
chuong 5. do thi (phan 1)
Giáo trình Phân tích và thiết kế giải thuật - CHAP 5
ThiếT Kế Và đáNh Giá ThuậT ToáN
Phương pháp nhánh cận
Luận văn: Phép biến đổi phân tuyến tính, HAY, 9đ

What's hot (20)

DOC
Xây dựng Website bán hàng giày dép qua mạng.doc
DOCX
Báo cáo phân tích thiết kế đồ án game
PPT
Giáo trình Phân tích và thiết kế giải thuật - CHAP 1
PDF
Đệ Quy, Quay Lui, Nhánh Cận
DOC
74774655 chuỗi-ham
PDF
Hd th sql server_tuan5_n_khanh
PDF
PDF
Hướng dẫn giải bài tập chuỗi - Toán cao cấp
PPTX
Slide Đồ Án Tốt Nghiệp Khoa CNTT Web Xem Phim Online Mới
PDF
Bài Tập Xử Lí Tín Hiệu Số
PDF
Beamer help
PDF
Thiết kế csdl quản lý nhân sự
PPT
Bài giảng Trí Tuệ Nhân Tạo
PDF
Trac nghiem dap an
PDF
Chuong5
PDF
Tính toán khoa học - Chương 7: Các phương pháp cực tiểu hóa không ràng buộc
PDF
Hướng dẫn sử dụng phần mềm TINA 7_133504.pdf
DOCX
Báo cáo bài tập lớn môn Cơ sở dữ liệu - Học viện công nghệ bưu chính viễn thông
PDF
Dãy số và giới hạn
PDF
Phân tích và thiết kế hệ thống quản lý bán hàng
Xây dựng Website bán hàng giày dép qua mạng.doc
Báo cáo phân tích thiết kế đồ án game
Giáo trình Phân tích và thiết kế giải thuật - CHAP 1
Đệ Quy, Quay Lui, Nhánh Cận
74774655 chuỗi-ham
Hd th sql server_tuan5_n_khanh
Hướng dẫn giải bài tập chuỗi - Toán cao cấp
Slide Đồ Án Tốt Nghiệp Khoa CNTT Web Xem Phim Online Mới
Bài Tập Xử Lí Tín Hiệu Số
Beamer help
Thiết kế csdl quản lý nhân sự
Bài giảng Trí Tuệ Nhân Tạo
Trac nghiem dap an
Chuong5
Tính toán khoa học - Chương 7: Các phương pháp cực tiểu hóa không ràng buộc
Hướng dẫn sử dụng phần mềm TINA 7_133504.pdf
Báo cáo bài tập lớn môn Cơ sở dữ liệu - Học viện công nghệ bưu chính viễn thông
Dãy số và giới hạn
Phân tích và thiết kế hệ thống quản lý bán hàng
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
PDF
9 phuong phap giai phuong trinh nghiem nguyen
PDF
9 phương pháp giải pt nghiệm nguyên
PDF
9 phương pháp giải phương trình nghiệm nguyên
DOC
Baitapmaygiat
PPT
MATMA - Chuong3 l tso
DOC
giai-tich-2_dang-van-vinh_giaitich2_2-co-dap-an---dap-an.doc
PDF
Luận văn: Phương pháp giải hệ phương trình trong toán THPT
PDF
Luận văn: Giải hệ phương trình trong chương trình toán THPT, HOT
DOC
Chuyen de giai he pt chua tham so
PDF
Topo daicuong1[1]
PPT
bai giang quy hoach dong chuong trinh day
PDF
Tuan1_GioiThieu.pdf
PDF
Một số dạng toán về đa thức qua các kỳ thi Olympic 6732069.pdf
PDF
Sáng kiến kinh nghiệm Kỹ thuật đọc bảng biến thiên, đồ thị xét tính đơn điệu ...
PDF
Bai giang-toan-kinh-te-tin-hoc
PDF
ĐGNL các dạng toán THPT.pdf
PDF
Bài giảng chi tiết giải tích 1 07 2013 bo môn toán
PDF
bo-de-kiem-tra-theo-bai-hoc-chuyen-de-nguyen-ham-tich-phan-va-ung-dung.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
9 phuong phap giai phuong trinh nghiem nguyen
9 phương pháp giải pt nghiệm nguyên
9 phương pháp giải phương trình nghiệm nguyên
Baitapmaygiat
MATMA - Chuong3 l tso
giai-tich-2_dang-van-vinh_giaitich2_2-co-dap-an---dap-an.doc
Luận văn: Phương pháp giải hệ phương trình trong toán THPT
Luận văn: Giải hệ phương trình trong chương trình toán THPT, HOT
Chuyen de giai he pt chua tham so
Topo daicuong1[1]
bai giang quy hoach dong chuong trinh day
Tuan1_GioiThieu.pdf
Một số dạng toán về đa thức qua các kỳ thi Olympic 6732069.pdf
Sáng kiến kinh nghiệm Kỹ thuật đọc bảng biến thiên, đồ thị xét tính đơn điệu ...
Bai giang-toan-kinh-te-tin-hoc
ĐGNL các dạng toán THPT.pdf
Bài giảng chi tiết giải tích 1 07 2013 bo môn toán
bo-de-kiem-tra-theo-bai-hoc-chuyen-de-nguyen-ham-tich-phan-va-ung-dung.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
Public economy và vai trò trong phân bổ nguồn lực, cung cấp hàng hóa công, đi...
PDF
CHUYÊN ĐỀ BỔ TRỢ NÂNG CAO DẠNG BÀI TẬP MỚI FORM 2025 - TIẾNG ANH 12 (TỜ RƠI Q...
PPTX
Chương 1 – Tổng quan về Cơ sở dữ liệu.pptx
PDF
CHƯƠNG 1-P2: ĐẢNG CỘNG SẢN VIỆT NAM RA ĐỜI VÀ LÃNH ĐẠO ĐẤU TRANH GIÀNH CHÍNH ...
PPTX
14. thoát vị bẹn nghẹt bệnh học ngoại khoa.pptx
DOCX
BÀI TIỂU LUẬN HẾT HỌC PHẦN TỔ CHỨC HOẠT ĐỘNG TRẢI NGHIỆM,HƯỚNG NGHIỆP Ở TRƯỜN...
PDF
12894-44864-1-CE-1037-1038_Văn bản của bài báo.pdf
PPTX
Xuất huyết tiêu hoá Đại học Y Hà Nội.pptx
PPTX
Bài giảng chương 3 phương pháp luận nghiên cứu khoa học_HQH.pptx
PDF
12894-44864-1-CE-1037-1038_Văn bản của bài báo.pdf
DOC
TẦM QUAN TRỌNG CỦA VIỆC TUÂN THỦ CÁC QUY TẮC AN TOÀN GIAO THÔNG ĐƯỜNG BỘ
PPTX
Vai trò vô cùng quan trọng để thuyết trình.pptx
PPT
SINH 8 TUYẾN YÊN TUYẾN GIÁP CÂU TẠO VÀ CHỨC NĂNG
PDF
PHÁT TRIỂN NĂNG LỰC KHÁM PHÁ TỰ NHIÊN CHO HỌC SINH TRONG DẠY HỌC CHỦ ĐỀ VẬT S...
PPTX
Chương 2 - Mô hình thực thể kết hợp.pptx
PPTX
Giáo án Lý Luận Chung về Hành chính Nhà nước cập nhật mới....
DOC
Chương 1 Tính tương đổi của chuyển động.doc
PDF
BÀI TẬP TEST FOR UNIT TIẾNG ANH LỚP 8 GLOBAL SUCCESS CẢ NĂM THEO TỪNG ĐƠN VỊ ...
DOCX
Luận văn group-Bài tiểu luận Ý thức - Giấc mơ.docx
PPTX
TIẾT 8, 9, 10. BÀI 32. DINH DƯỠNG VÀ TIÊU HÓA Ở NGƯỜI.pptx
Public economy và vai trò trong phân bổ nguồn lực, cung cấp hàng hóa công, đi...
CHUYÊN ĐỀ BỔ TRỢ NÂNG CAO DẠNG BÀI TẬP MỚI FORM 2025 - TIẾNG ANH 12 (TỜ RƠI Q...
Chương 1 – Tổng quan về Cơ sở dữ liệu.pptx
CHƯƠNG 1-P2: ĐẢNG CỘNG SẢN VIỆT NAM RA ĐỜI VÀ LÃNH ĐẠO ĐẤU TRANH GIÀNH CHÍNH ...
14. thoát vị bẹn nghẹt bệnh học ngoại khoa.pptx
BÀI TIỂU LUẬN HẾT HỌC PHẦN TỔ CHỨC HOẠT ĐỘNG TRẢI NGHIỆM,HƯỚNG NGHIỆP Ở TRƯỜN...
12894-44864-1-CE-1037-1038_Văn bản của bài báo.pdf
Xuất huyết tiêu hoá Đại học Y Hà Nội.pptx
Bài giảng chương 3 phương pháp luận nghiên cứu khoa học_HQH.pptx
12894-44864-1-CE-1037-1038_Văn bản của bài báo.pdf
TẦM QUAN TRỌNG CỦA VIỆC TUÂN THỦ CÁC QUY TẮC AN TOÀN GIAO THÔNG ĐƯỜNG BỘ
Vai trò vô cùng quan trọng để thuyết trình.pptx
SINH 8 TUYẾN YÊN TUYẾN GIÁP CÂU TẠO VÀ CHỨC NĂNG
PHÁT TRIỂN NĂNG LỰC KHÁM PHÁ TỰ NHIÊN CHO HỌC SINH TRONG DẠY HỌC CHỦ ĐỀ VẬT S...
Chương 2 - Mô hình thực thể kết hợp.pptx
Giáo án Lý Luận Chung về Hành chính Nhà nước cập nhật mới....
Chương 1 Tính tương đổi của chuyển động.doc
BÀI TẬP TEST FOR UNIT TIẾNG ANH LỚP 8 GLOBAL SUCCESS CẢ NĂM THEO TỪNG ĐƠN VỊ ...
Luận văn group-Bài tiểu luận Ý thức - Giấc mơ.docx
TIẾT 8, 9, 10. BÀI 32. DINH DƯỠNG VÀ TIÊU HÓA Ở NGƯỜI.pptx

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)