1. Trang chủ
  2. » Luận Văn - Báo Cáo

PHƯƠNG PHÁP NHÁNH cận GIẢI các bài TOÁN tối ưu tổ hợp

13 758 0

Đ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 13
Dung lượng 411,67 KB

Nội dung

Nếu minh họa bài toán xây d ưu như xây dựng cây tìm kiế định cận dưới đối với bài toán c hóa và chỉ cần phát triển các nhánh ti không thể chứa lời giải tối ưu, và phương án b n phát triể

Trang 1

PHƯƠNG PHÁP NHÁNH C

1 LÝ THUYẾT CHUNG

Xét bài toán tối ưu tổ hợp tổ

trong đó

D = {x= (x

A1, A2, , An là các tập hữu h

Ta gọi bộ n thành phần x= (x

đầy đủ của bài toán, bộ k<n thành ph

phận hay lời giải bộ phận Ta s

bộ phận, tức là sẽ phát triển d

Ký hiệu , … ,  là tập h

phương án bộ phận , … , 

triển tất cả các phương án bộ

tức là những phương án ,

ưu, và sẽ không phát triển các ph

chắc chắn không chứa lời gi

, … ,  là không tiềm nă

Ta gọi cận dưới của phương án b

điều kiện

, trong đó là hàm xác định trên m

Giả sử ̅ là phương án tốt nh

̅ Ta gọi là giá trị kỷ

suy ra

min

NG PHÁP NHÁNH CẬN GIẢI CÁC BÀI TOÁN TỐI Ư

T CHUNG

ổng quát sau:

Min{f(x): x D},

D = {x= (x1, x2, , xn) A1 A2 A3 An },

u hạn

x= (x1, x2, , xn) thuộc D là phương án đầy đủ k<n thành phần (x1, x2, , xk) với  ∈  là ph

n Ta sẽ xây dựng các phương án đầy đủ từ các ph

n dần các phương án bộ phận

p hợp tất cả các phương án đầy đủ có thể phát tri

 Để giảm thời gian tính toán chúng ta s

ộ phận mà chỉ phát triển những phương án ti , … ,  mà , … ,  có khả năng ch

n các phương án bộ phận , … ,  mà 

i giải tối ưu Vấn đề đặt ra là phải có dấu hiệ

m năng

ương án bộ phận , … ,  là số , … ,  , … ,   min  ,  ∈ , … , ,

nh trên mọi phương án bộ phận

t nhất trong số các phương án đầy đủ đã duy lục hiện thời Thế thì, nếu , … ,   min ,  ∈ , … ,  

I ƯU TỔ HỢP

ủ hay lời giải

là phương án bộ các phương án

phát triển từ

i gian tính toán chúng ta sẽ không phát

ng án tiềm năng,

ng chứa lời giải tối

, … , 

ệu đẻ phát hiện

 thỏa mãn

ã duyệt và 

  từ (1) ta

Trang 2

Vì thế, tập , … ,  không th

, … ,  không cần phát tri

Như vậy, để thực hiện tốt ý t

• Xác định được hàm cậ

bài toán tối ưu ở vế ph

• Xác định và cập nhật đư

Chú ý Khi bài toán tối ưu đ

phải xét hàm cận trên thỏa mãn

, Gọi là giá trị kỷ lục hiện th

các phương án đã duyệt Khi đ

max

Vì thế, tập , … ,  không th

, … ,  không cần phát tri

Nhận xét 1 Nếu minh họa bài toán xây d

ưu như xây dựng cây tìm kiế

định cận dưới đối với bài toán c

hóa và chỉ cần phát triển các nhánh ti

không thể chứa lời giải tối ưu, và phương án b

n phát triển tiếp

t ý tưởng trên cần:

ận dưới , … ,  một cách dễ dàng hơ phải của (1)

t được giá trị kỷ lục

ưu đặt ra là Max{f(x): x D} thì thay cho hàm c

a mãn , … ,   max  ,  ∈ , … , 

n thời tức là giá trị lớn nhất của hàm mục tiêu trong s

t Khi đó nếu , … ,   từ (2) suy ra max ,  ∈ , … ,  

không thể chứa lời giải tối ưu, và phương án b

n phát triển tiếp

a bài toán xây dựng lời giải (hay cấu hình/ph

ếm thì đối với mỗi nút (hay mỗi nhánh) c

i bài toán cực tiểu hóa hoặc cận trên đối với bài toán c

n các nhánh tiềm năng chứa lời giải tối ưu

ng án bộ phận

dàng hơn việc giải

thì thay cho hàm cận dưới ta

c tiêu trong số

ng án bộ phận

u hình/phương án) tối

i nhánh) của cây cần xác

i bài toán cực đại

Trang 3

Không gian tìm kiếm của phương pháp nhánh cận có thể được minh họa như sau

Nhận xét 2 Mỗi lời giải bộ phận có thể xem như một bài toán con về chi phí để

hoàn thiện lời giải này Trong ngữ cảnh bài toán cực tiểu hóa để loại bỏ bài toán con ta cần phải được tin rằng chi phí của nó lớn hơn chi phí của một lời giải đầy đủ

đã duyệt Thuật toán nhánh cận trong trường hợp này có thể được mô tả như sau:

Start with some problem P0

Let S  P, the set of active subproblems

Trang 4

bestsofar = ∞ (giá trị kỷ lục)

Repeat while S is nonempty:

choose a subproblem (partial solution) ! ∈ " and remove it from S; expand it into smaller subproblems !, !#, … , !

For each !$:

If !$ is a complete solution: update bestsofar else if lowerbound(!$) < bestsofar: add Pi to S return bestsofar

tức là

Bắt đầu bởi bài toán P0

Đặt S  P, tập các bài toán được kích hoạt

 ∞ (giá trị kỷ lục)

Lặp cho đến khi "  ∅:

chọn bài toán con ! ∈ " và loại nó ra khỏi ";

phân hoạch nó thành các bài toán con !, !#, … , ! đối với mỗi bài toán !$:

nếu !$ là lời giải đầy đủ: cập nhật giá trị kỷ lục nếu cận dưới của !$  : bổ sung Pi vào S

trả về

2 ỨNG DỤNG 1: TÌM CHU TRÌNH HAMILTON NGẮN NHẤT

Thí dụ áp dụng thuật toán này đối với bài toán người du lịch (TSP) trên đồ thị G=(V,E) Lời giải bộ phận là đường đi đơn ab qua một số đỉnh thuộc tập

SV , trong đó Schứa cả ab Ta ký hiệu lời giải bộ phận này là bộ ba

[ , , ]a S b Đỉnh a ta cố định và coi như là đỉnh xuất phát Bài toán con tương ứng là tìm phần bù tốt nhất, tức là đường đi ba qua các đỉnh VS Trên mỗi bước tìm một đỉnh xvà đường đi cập nhật là [ ,a S+ x x, ]

Cận dưới của lời giải bộ phận [ , , ]a S b có thể lấy như sau:

g a S b = a S b +d a VS +d b VS + span VS ,

trong đó:

• | [ , , ] |a S b là độ dài đường đi từ a đến b qua S

d a V( , −S), d b V( , −S) , tương ứng là độ dài từ đỉnh a và b đến tập đỉnh

V-S

• minspan V( −S) là độ dài cây khung bé nhất của V-S

Trang 5

Quá trình thực hiện thuật toán được biểu diễn bằng một cây, trong đó mỗi nút biểu diễn một lời giải bộ phận (đường đi từ đỉnh gốc tới đỉnh đó)

Đồ thị và đường đi tối ưu

Tìm kiếm theo nhánh cận thực hiện từ trái sang phải

Trang 6

Các số trong hộp là cận dưới của chi phí

3 ỨNG DỤNG 2: BÀI TOÁN NGƯỜI BÁN HÀNG RONG (TSP)

Bài toán: Cho & thành phố ', '#, … , '( Xuất phát từ một thành phố nào đó người bán hàng muốn đi qua tất cả các thành phố còn lại, mỗi thành phố một lần, rồi lại quay về thành phố xuất phát Biết )*, + chi phí đi từ thành phố '$ đến thành phố ', Tìm cách đi với tổng chi phí bé nhất

Giải: Cố định thành phố xuất phát là ' và ký hiệu #, … , ( là một hoán vị của tập 2, … , & Khi đó một hành trình đầy đủ có thể biểu diễn bởi chuỗi

' → '/0 → ⋯ → '/2 → '

Và tổng chi phí của hành trình này là

#, … , (  )1, # + )#, 5 + ⋯ + )(6, ( + )(, 1

Bài toán TSP được phát biểu dưới dạng bài toán tối ưu

7*& #, … , ( | #, … , ( ∈ ! , trong đó ! là tập tất cả các hoán vị của 2, … , &

Ký hiệu

)9$(  7*&)*, +| *, +  1, … , &

Xét phương án bộ phận 1, :#, … , :, trong đó (:#, … , :) là một tổ hơp ; phần tử của 2, … , & Phương án này tương ứng với hành trình

' → '<0 → ⋯ → '<=

và chi phí của nó là

"  )1, :# + ):#, :5 + ⋯ + ):6, :

Để phát triển hành trình bộ phận này thành hành trình đầy đủ người bán hàng còn phải đi qua & − ; thành phố còn lại, rồi quay về thành phố ', tức là còn phải đi qua & − ; + 1 đoạn đường nữa Do đó, chi phí cho đoạn đường còn lại này lớn hơn hoặc bằng & − ; + 1)9$( Vì thế, cận dưới của phương án bộ phận

1, :#, … , : là

:#, … , :  " + & − ; + 1)9$(

Thí dụ: Giải bài toán người bán hàng rong với ma trận chi phí sau

Trang 7

?

@

@

@

A 03 17 6 9

3 0 9 3 15

14 4 0 7 11

18 22 16 0 5

15 20 4 12 0

J K K K

L

Ta có )9$(  3 Quá trình xây dựng lời giải tối ưu được mô tả bởi cây tìm kiếm sau

Trang 8

4 ỨNG DỤNG 3: BÀI TOÁN CÁI TÚI TỔNG QUÁT

Bài toán: Có & loại đồ vật và số lượng mỗi loại đồ vật là không hạn chế Ký hiệu

trọng lượng của đồ vật + là M, và giá trị sử dụng là N, Cần chất các đồ vật vào túi

với trọng lượng là O sao cho tổng giá trị sử dụng của các đồ vật trong túi là lớn

nhất

Mô hình toán học:

P∑ M   ∑(,RN,, → 7M

,,  O,

( ,R , ∈ ST, +  1, … , &,U (3) trong đó , là số đồ vật loại +, ST là tập các số nguyên không âm

Ký hiệu  là tập các phương án của bài toán (3), tức là

  V  W,… , (,X: ∑ M( ,,  O, , ∈ ST, +  1, … , &

Không giảm tính tổng quát ta giả sử rằng các đồ vật được đánh số sao cho

[\ ]\  [0

]0  ⋯  [2

]2 (4)

Để xây dựng hàm cận dưới ta xét bài toán cái túi với các biến liên tục:

Tìm

∗ 7MV , ∑ M( ,,  O,

,R ,  0, +  1, … , & Z (5)

Mệnh đề 1: Phương án tối ưu của bài toán (5) là véc tơ ̅  ̅, … , ̅(  với

̅  MO

, ̅#  ⋯  ̅(  0

và giá trị tối ưu là

∗ NMO

 Chứng minh Từ (4) suy ra

N$$  MN$

$ ∗ M$$  MN

 ∗ M$$, *  1, … , &

Do đó,

  NTN## + ⋯ + N((  [\

] \∗ MT⋯TM((  [\

] \O  ̅

Điều đó có nghĩa ̅ là phương án tối ưu

Xây dựng hàm cận trên:

Trang 9

Giả sử đã có phương án bộ phận cấp k là :, … , : Khi đó giá trị của các đồ vật trong túi là

_  N: + ⋯ + N:

và trọng lượng còn lại của túi là

O  O − M: + ⋯ + M:

Ta có

7MV :  ∈ , ,  :,, +  1, … , ;Z

 7M `_ + a N,,:

( ,RT

a M,,  O; , ∈ ST, +  ; + 1, … , &

( ,RT

c

 _+ 7MV∑( N,,:

,RT ∑( M,,  O; , ∈ ST, +  ; + 1, … , &

 _ +[=d\ e =

]=d\ (theo Mệnh đề 1)

Do đó có thể tính cận trên cho phương án bộ phận :, … , : như sau:

:, … , :  _ +[=d\ e =

] =d\ Chú ý: Khi tiếp tục xây dựng thành phần thứ k+1 của lời giải các giá trị đề cử cho

T sẽ là

0,1, … , f e=

]=d\g

Thí dụ: Xét bài toán cái túi với các dữ kiện sau: b=8

Đồ vật Trọng lượng a Giá trị c

Trang 10

Quá trình xây dựng lời giải của bài toán có thể biểu diễn bởi cây sau:

Trong hình vẽ trên _ là giá trị của các đồ vật đã có trong túi, h là khả năng chứa

còn lại của túi và là cận trên của nút

5 ỨNG DỤNG 4: BÀI TOÁN CÁI TÚI 0-1

Bài toán: Có & đồ vật với trọng lượng là M, và giá trị sử dụng là N, +  1, … , & Cần chất các đồ vật vào túi với trọng lượng là O sao cho tổng giá trị sử dụng của

các đồ vật trong túi là lớn nhất

Mô hình toán học:

P∑ M   ∑(,RN,, → 7M

,,  O,

( ,R , ∈ 0,1, +  1, … , &,U (6) trong đó , là biến Boolean biểu thị sự lựa chọn đồ vật +,

,  i1 &ế: Nℎọ& đồ oậq +0 &ế: ;ℎáNU

Trang 11

Xét bài toán nới lỏng của bài toán trên, cụ thể là xét bài toán với các biến liên tục: ∗ 7MV , ∑ M( ,,  O,

,R 0  ,  1, +  1, … , & Z (7)

Mệnh đề 2 Giả sử

[\ ]\  [0

]0  ⋯  [2

]2

Khi đó lời giải tối ưu của bài toán nới lỏng là

̅  ⋯  ̅s  1

̅sT O − MM+ ⋯ + Ms

sT

̅sT#  ⋯  ̅(  0

với

M + ⋯ + Ms  O, M + ⋯ + Ms + MsT  O

0  e6]\ T⋯T]t

Giá trị tối ưu là

̅  N+ ⋯ + Ns +NMsT

sT Os, Os  O − M+ ⋯ + Ms

Xây dựng hàm cận trên:

Giả sử đã có phương án bộ phận cấp k là :, … , : Khi đó giá trị của các đồ vật trong túi là

_  N: + ⋯ + N:

và trọng lượng còn lại của túi là

O  O − M: + ⋯ + M:

Ta có

7MV :  ∈ , ,  :,, +  1, … , ;Z

 7M `_ + a N,,:

( ,RT

a M,,  O; , ∈ 0, 1, +  ; + 1, … , &

( ,RT

c

 _+ 7MV∑( N,,:

,RT ∑( M,,  O; 0  ,  1, +  ; + 1, … , &

Trang 12

 _ + NT + ⋯ + Ns +[td\ e t

] td\ , nếu MT + ⋯ + Ms  O, MT + ⋯ + Ms + MsT  O, Os  O − MT + ⋯ +

Ms

Do đó có thể tính cận trên cho phương án bộ phận :, … , : như sau:

:, … , :  _ + NT + ⋯ + Ns +[td\ e t

] td\

Thí dụ: Xét bài toán cái túi với các dữ kiện sau: b=6

Đồ vật Trọng lượng a Giá trị c c/a

Quá trình xây dựng lời giải của bài toán có thể biểu diễn bởi cây sau

Trong các nút lời giải bộ phận để trong dấu ngoặc đơn, thí dụ (1,0), σ là giá trị của các đồ vật đã có trong túi, h là khả năng còn lại của túi, và là cận trên của lời giải bộ phận

... chứa lời giải tối ưu, phương án b

n phát triển tiếp

a toán xây dựng lời giải (hay cấu hình/ph

ếm nút (hay nhánh) c

i tốn cực tiểu hóa cận toán c

n nhánh tiềm...

bài tốn tối ưu vế ph

• Xác định cập nhật đư

Chú ý Khi toán tối ưu đ

phải xét hàm cận thỏa mãn

, Gọi giá trị kỷ lục th

các phương. ..

Nhận xét Nếu minh họa toán xây d

ưu xây dựng tìm kiế

định cận tốn c

hóa cần phát triển nhánh ti

không thể chứa lời giải tối ưu, phương án b

n phát triển

Ngày đăng: 30/03/2015, 08:15

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w