1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Lecture 13, 14 branch and bound

41 69 0
Tài liệu được quét OCR, nội dung có thể không chính xác

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 41
Dung lượng 5,9 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Giới thiệu Phương pháp quay lui, vét cạn có thể giải các bài toán tối ưu, bằng cách lựa chọn phương án tối ưu trong tất cả các lời giải tìm được.. Nhưng nhiều bài toán không gian các lời

Trang 1

Phân tích và Thiét kê

THUAT TOAN

Ha Đại Dương duonghd@mta.edu.vn Web: fit.mta.edu.vn/~duonghd

Trang 2

Bai 13 - Phuong phap nhánh

can (Branch and Bound)

PHAN TICH VA THIET KE THUA TOAN

Trang 4

| Giới thiệu

Phương pháp quay lui, vét cạn có thể giải các bài toán tối ưu, bằng cách lựa chọn phương án tối ưu trong tất cả các lời giải tìm được Nhưng nhiều bài toán

không gian các lời giải là quá lớn, nên áp dụng phương pháp pháp quay lui khó

đảm bảo về thời gian cũng như kỹ thuật Cho nên ta cần phải cải tiến thuật toán

quay lui để hạn chế bớt việc duyệt các phương án Có nhiều cách cải tiến, trong đó

có phương pháp nhánh cận.

Trang 5

| Giới thiệu

Phương pháp nhánh cận là một cải tiến của phương pháp quay lui, dùng để

tìm lời giải tối ưu của bài toán Ý tưởng chính của nó như sau :

Trong quá trình duyệt ta luôn giữ lại một phương án mẫu ( có thể xem là lời

giải tối ưu cục bộ — chẳng hạn có giá nhỏ nhất tại thời điểm đó ) Đánh giá nhánh

cận là phương pháp tính giá của phương án ngay trong quá trình xây dựng các

thành phần của phương án theo hướng đang xây dựng có thể tốt hơn phương án mẫu

hay không Nếu không ta lựa chọn theo hướng khác.

Trang 6

II Lược đô chung

Giả sử bài toán tối ưu cho là :

Nghiệm của bài toán nếu có sẽ được biểu diễn dưới dạng :x = (XỊ Xn)

Trong quá trình liệt kê theo phương pháp quay lui, ta xây dựng dân các

thành phần của nghiệm

Trang 7

II Lược đô chung

Một bộ phận 1 thanh phần (xị, , Xị) sẽ gọi là một lời giải (phương án) bộ

phận cấp ¡ Ta gọi X; là tập các lời giải bộ phận cấp ¡, V¿= ln

Đánh giá cận là tìm một hàm g xác định trên các X; sao cho :

Bất đẳng thức này có nghĩa là giá trị ø(x,,::-,x,) không lớn hơn giá trị của

các phương án mở rộng từ lời giải bộ phận (x,.: ,x,)

Sau khi tìm được hàm đánh giá cận ø, ta dùng ø để giảm bớt chi phí duyệt

các phương án theo phương pháp quay ]uI.

Trang 8

II Lược đô chung

Giả sử x* là lời giải tốt nhất hiện có (phương án mâu), còn f* là gid tri tốt nhất tương ứng f* = f(x*)

Nếu g(x,.: ,x.) > f* thì : [*Š < a(x, hy KG J = Mim{ƒ (4) -a= (a,,"*+,d, ) C X,x, — q,, Vĩ — l,i}

Nên chắc rằng các lời giải mở rộng từ (x,,: ,x,)sẽ không tốt hơn phương

án mâu, do đó có thể bỏ đi không cần phát triển lời giải bộ phận (x,,: , x,) để tìm

lời giải tối ưu của bài toán

Trang 9

Thủ tục quay lui sửa lại thành

Try (i+1);

}

// Tra bài toán về trạng thái cũ

Trang 10

II Lược đô chung

Thực chất của phương pháp nhánh cận là tìm kiếm theo chiều sâu trên cây liệt kê lời giải như phương pháp quay lui, chỉ khác có một điều là khi tim duce x;

mà đánh giá cận ø(x,.:::,x,)> f* thì ta cắt bổ các nhánh con từ x¡ đi xuống, mà quay lên ngay cha của nó là x¡_¡

Vấn đề là xác định hàm đánh giá cận như thế nào ?

Trang 11

III Bài toán áp dung

| Bài toán người du lịch

1 Bai toán

Một người du lịch muốn tham quan n thành phố Tị, , Tạ Xuất phát từ một

thành phố nào đó, người du lịch muốn đi qua tất cả các thành phố còn lại, mỗi thành phố đi qua đúng 1 lần rối quay trở lại thành phố xuất phát

Gọi Cụ là chi phí đi từ thành phố T; đến T; Hãy tìm một hành trình thỏa yêu cầu bài toán sao cho chỉ phí là nhỏ nhất

Trang 12

III Bài toán áp dung

| Bài toán người du lịch

Trang 13

|II Bài toán áp dụng

| Bài toán người du lịch

2 Y tưởng

Bài toán chuyển về dạng :

Tim Min{f(ao, , a, ) : (ao, , a, ) la hodn vi cua {2, n}}

VỚI f(ad,,°7°.4,) =Cyy + Cg g te tC, +C, ,

Cách giải bài toán sẽ kết hợp đánh giá nhánh cận trong quá trình liệt kê

ai m7—Ï oly

phương án của thuật toán quay lui.

Trang 14

Output -x* =(X, ,.X,) / Hành trình tối ưu

-f* =f(x*) // Giá tri tối ưu

Trang 15

III Bài toán áp dung

3 Thiết kế

e Nếu ta cố định xuất phát tử T¡, ta duyệt vòng lặp từ j =2

sec Đánh giá nhánh cận :

Dat: CMin = Min{Cj:1,) € {1, ,n}

Giả sử vào bước ¡ ta tìm được lời giả bộ phận cấp ¡ là (x¡ x; ), tức là đã đi qua đoạn đường TÏ¡ —> Ta -> .->Ï;¡, tương ứng với chị phí :

B= Cy, ĐC, tot Cy

Trang 16

III Bài toán áp dung

| Bài toán người du lịch

3 Thiết kế

Để phát triển hành trình bộ phận này thành một hành trình đầy đủ, ta còn

phải đi qua n-i+l đoạn đường nữa, gồm n-i thành phố còn lại và đoạn quay lai T)

Do chi phi mỗi một trong n-i+l đoạn còn lại không nhỏ hơn CMIin, nên hàm

đánh giá cận có thể xác định như sau :

øŒ\.:::,X,)=ð, +t(n—ï+T)CMn

Trang 17

III Bài tốn áp dung

| Bài tốn người du lịch

3 Thiết kế

e_ Diều kiện chấp nhận được của J là thành phố T; chưa đi qua

Ta dùng một mảng lòic Daxet[] để biểu dién trang thai nay

1:7, đã được đi qua

Daxet| j| =

JÌ lu chưa được đi qua

Máng Daxet[ ] phải được bằng 0 tất cả.

Trang 18

III Bài toán áp dung

| Bài toán người du lịch

3 Thiết kế

e_ Xác định x¡ theo J bằng câu lệnh gán : x¡ =]

Cap nhật trạng thái mới : Daxet|j] = 1

Trang 19

III Bài toán áp dung

| Bài toán người du lịch

Trang 20

III Bài toán áp dung

| Bài toán người du lịch

3 Thiết kế

e Thao tac huy bo trang thai : Daxet[j] =0

Trả lại chỉ phí cũ: S=§- C,_ X;

Trang 23

III Bài toán áp dung

| Bài toán người du lịch

Trang 25

f= 164+6=22 Hanh tinh mt :

l—>3—->3->5->4

Trang 26

III Bài toán áp dung

II Bài toán cái túi

1 Bài toán

Có n loại đồ vật, mỗi loại có số lượng không hạn chế Đồ vật loại ¡, đặc

trưng bởi trọng lượng Wï va gid trị sử dụng Vĩ, với mọi ¡ e {I n}

Cần chọn các vật này đặt vào một chiếc túi xách có giới hạn trọng lượng m, sao cho tong giá trị sử dụng các vật được chọn là lớn nhất.

Trang 27

III Bài toán áp dung

II Bài toán cái túi

Trang 28

II Bài toán cái túi

3 Thiết kế thuật toán

Trang 29

III Bài toán áp dung

II Bài toán cái túi

3 Thiết kế thuật toán

Ta chọn vật theo đơn giá giảm dân

Không mất tính tổng quát, ta giả sử các loại vật cho theo thứ tư øiim dân | = : : 7

“ "so

của đơn giá.

Trang 30

III Bài toán áp dung

II Bài toán cái túi

3 Thiết kế thuật toán

e Danh gia can tren:

Giả sử đã tìm được lời giải bộ phận : (x,„ -,x,) Khi đó :

Trang 31

-III Bài toán áp dung

ll Bai toan cai tui Max) su =(u,,-+-,u,) € Dyu ; =X, VJ= L,i}=

Do đó, cận trên cho các lời giải bộ phận cấp ¡ có thể xác định bởi :

g(x, )=S+y,, | “

Wis

Trang 32

III Bài toán áp dung

II Bài toán cái túi

3 Thiết kế thuật toán

Trang 33

III Bài toán áp dung

II Bài toán cái túi

3 Thiết kế thuật toán

e Vi vay, thao tac trả lại trạng thái cũ cho bài toán :

3= h— AV]

T= T- XiW¡

e Cap nhat lời giải tối ưu :

Khi tìm được một lời giải, ta so sánh lời giải này với lời giải mà ta coi là tốt

nhất vào thời điểm hiện tại để chọn lời giải tối ưu.

Trang 34

III Bài toán áp dung

II Bài toán cái túi

3 Thiết kế thuật toán

e Cac khdi tao giá trị ban đầu :

- f# =f(x*) =0: // Giá tri tối ưu

Trang 35

S =S +v(1]*x[1|; //Gia tri thu duoc TI = TI - w[i]*x[il:

If(IE=n) [jap nhat to1 uu S =S -Vv[I]*x[H]:

j

Trang 37

II Bài toán cái túi

Trang 39

TL=8;

x™ =(1,1,0.0)) r= 15

Trang 40

IV Bai tap

1 Cài đặt thuật toán giải bài toán người du lịch (dựa trên thuật toán

liệt kê các hoán vị) theo phương pháp nhánh cận Đánh giá độ phức

tạp thuật toán bằng lý thuyết, bằng thực nghiệm và so sánh

2 2 Cài đặt thuật toán giải bài toán cái túi (dựa trên thuật toán liệt

day nhi phan do dài N) theo phương pháp nhánh cận Đánh giá độ

phức tạp thuật toán bằng lý thuyết, bằng thực nghiệm và so sánh.

Ngày đăng: 03/11/2019, 18:09

TỪ KHÓA LIÊN QUAN

w