Tải bản đầy đủ (.doc) (21 trang)

Thuật toán Frank - Wolfe

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (179.6 KB, 21 trang )

Li m u
Tất cả các ngành, các lĩnh vực dù hoạt động ở phơng diện nào thì mục đích
cuối cùng cũng là giải các bài toán tối u của đơn vị mình. Việt Nam là một
minh chứng.
Trong xu thế hội nhập hiện nay, đặc biệt sau kí kết hiệp định thơng mại thế
giới WTO, Việt Nam đang đứng trớc nhiều thử thách mới. Và cạnh tranh trên
thơng trờng quốc tế là bài toán hàng đầu đối với các doanh nghiệp trong nớc.
Do tính cấp thiết của thực tế nên em đã quyết định chọn đề tài: Thuật toán
Frank-Wolfe- đây là thuật toán giải các bài toán quy hoạch lồi với các ràng
buộc tuyến tính. Em hi vọng nó có thể góp một phần làm phong phú hơn kho
tàng thuật toán giải các bài toán tối u.
Bi vit ca em gm 3 phn ln (ngoi phn mc lc v phn ti liu tham
kho):
Th nht : Li m u
Th hai : Ni dung
Th ba : Kt lun
Trong phn ni dung,em s trỡnh by 4 vn chớnh:
1. Tng quan v quy hoch phi tuyn
2. Thut toỏn Frank-Wolfe
3. Thớ d
4. Chng trỡnh Gamside
Cui cựng, em xin chõn thnh cm n cỏc thy giỏo,cụ giỏo khoa Toỏn
kinh t ó to mụi trng cho em c hc tp v rốn luyn. Em ht sc bit
n thy giỏo Ngụ Vn M ó giỳp em hon thnh ỏn mụn hc ny.
Ni dung:

1
1. Tổng quan về quy hoạch phi tuyến
1.1. Giới thiệu chung về QHFT
Bài toán QHFT sẽ nói ở dưới đây không phải là bài toán QHFT thực tổng
quát, mà ta chỉ xét lớp bài toán QHFT có hàm mục tiêu là hàm khả vi liên


tục( tới bậc tuỳ ý) trên tập mở bao tập phương án D; bản thân tập phương án
cũng được xác định bởi các hàm số trong các ràng buộc là các hàm khả vi
liên tục n biến. Cụ thể ta có bài toán tổng quát sau:



=≥=≤

),1(),;;)((
min(max))(
mibxg
xf
i
i
(1)
Trong đó:
( )
)(;,1, xfmiRbRx
i
n
=∈∈

( )
mixg
i
,1)( =
là các hàm n biến độc
lập. Ngoài ra: trong các hàm
)(xf


( )
mixg
i
,1)( =
phải có ít nhất một hàm
phi tuyến; luôn giả thiết các hàm
( )
mixg
i
,1)( =
là các hàm liên tục; hàm mục
tiêu
)(xf
khả vi liên tục trên tập mở bao tập phương án D.
Tuy bài toán QHFT đã được giới hạn như trên, nhưng tính phi tuyến của
bài toán luôn tạo ra những phức tạp đáng kể khi tiệm cận với nó. Với bài
toán QHFT người ta cũng sử dụng phương pháp tiệm cận giống như bài toán
cực trị có ràng buộc cổ điển trong giải tích-tức là tìm cách đưa bài toán cực
trị có ràng buộc về bài toán cực trị tự do rồi tìm cách đưa ra điều kiện Kunh-
Tucker. Víi mét nhãm ®iÒu kiÖn bæ sung ®ñ m¹nh th× ®iÒu kiÖn Kunh-Tucker
có thể trở thành điều kiện cần và đủ đối với lời giải của (1).
1.2. Bài toán QHFT
Bài toán tổng quát QHFT có dạng như (1); tuy nhiên đôi khi để thuận tiện
trong việc giải thích ý nghĩa kinh tế ta có thể biểu diễn các dạng cụ thể sau:

max)( →xf

2









0
)(
j
i
i
x
bxg

),1(
),1(
nj
mi
=
=
(1.1)

min)( →xf









0
)(
j
i
i
x
bxg

),1(
),1(
nj
mi
=
=
(1.2)
Về mặt hình thức thì ba bài toán (1),(1.1), (1.2) khác nhau, song cũng giống
như QHTT ta có thể dùng các phép biến đổi tương đương để đưa bài toán
này về bài toán kia. Cụ thể như sau:
a.
min)()(max)(
1
→−=⇔→ xfxfxf
b.
i
i
i
i
bxgbxg −≥−⇔≤ )()(
c.








⇔=
i
i
i
i
i
bxg
bxg
ixg
)(
)(
)(
d.




=+
⇔≤
0
)(
)(
i

ii
i
i
i
s
bsxg
bxg
e.




=−
⇔≥
0
)(
)(
i
ii
i
i
i
s
bsxg
bxg
1.3. Điều kiện Kuhn-Tucker
Trở lại bài toán tổng quát (1) ban đầu:




=≥=≤

),1(),;;)((
min(max))(
mibxg
xf
i
i
với các giả thiết đã có về
)(xf

( )
mixg
i
,1)( =
, nếu cả m ràng buộc của (1)
đều có dạng đẳng thức; m<n và các hàm
( )
mixg
i
,1)( =
là hệ hàm độc lập thì
bài toán (1) có thể xem là bài toán tìm cực trị tổng thể có ràng buộc đẳng
thức trong giải tích toán học. Giải tích đã giải quyÕt bài toán này bằng cách
đưa bài toán về bài toán cực trị tự do của hàm Lagrange có nghiệm luôn
được xem là điều kiện cần đối với cực trị địa phương có điều kiện của f(x).

3
Tuy vậy, thuật toán này đôi khi cũng không thể giải quyết được một bài toán
bất kỳ, trừ phi hàm f(x) có các tính chất giải tích bổ sung cần thiết. Đối với

bài toán (1), hai nhà toán học H. W.Kuhn và A. W.Tucker cũng sử dụng
cách tiệm cận tương tự và đã đưa ra một nhóm điều kiện gọi là điều kiện
Kuhn-Tucker.
Điều kiện Kuhn-Tucker được viết cho các bài toán :
min)( →xf







0
)(
j
i
i
x
bxg

),1(
),1(
nj
mi
=
=
(1.2)
Lập hàm Lagrange:

−+= )(()(),( xgbyxfyxL

i
ii

m
R;0 ∈≥ yy
( nhân tử Lagrange)
Khi đó điều kiện Kuhn-Tucker được thiết lập như sau:








=


≥≤


=


≥≥


0;0;0
0;0;0
i

ii
i
j
jj
j
y
L
yy
y
L
x
L
xx
x
L

),1(
),1(
mi
nj
=
=
Ngược lại nếu bài toán có dạng tổng quát như sau:
max)( →xf








0
)(
j
i
i
x
bxg

),1(
),1(
nj
ni
=
=
(1.1)
Thì điều kiện Kuhn-Tucker có dạng:







=


≥≥



=


≥≤


0;0;0
0;0;0
i
ii
i
j
jj
j
y
L
yy
y
L
x
L
xx
x
L

),1(
),1(
mi
nj
=

=

4
hoặc là chuyển bài toán dạng (1.1) về bài toán dạng (1.2) rồi viết giống như
với bài toán (1.2).
1.4. Các vấn đề cần giải quyết khi giải bài toán QHFT
Trước khi đi vào chi tiết, ta đề cập đến bản chất của các thuật toán giải các
bài toán QHFT nói chung. Bài toán tổng quát dạng:



∈∈

n
RDDx
xf
,
min)(
(*)
Với bài toán (*) tuỳ theo cấu trúc của nó mà người ta đưa ra các thuật toán
khác nhau. Cho tới thời điểm này, số phương pháp được đề xuất là rất lớn và
đa dạng. Song các phương pháp này đều có ý tưởng chung là thuật toán xiết
chặt dần. Tuỳ theo dãy điểm nằm trong hay nằm ngoài tập D mà được chia
thành hai nhóm phương pháp lớn là phương pháp điểm trong hay điểm ngoài
hoặc phối hợp cả hai phương pháp trên.
Ở đây ta xét kỹ phương pháp điểm trong. Người ta xuất phát từ một điểm
Dx
o

; khi đó

)(
0
xf∇
là hướng tăng nhanh nhất của f(x) tại x
0

(hay
)(
0
xf∇

còn được gọi là hướng tăng cục bộ của f(x) tại x
0
). Ta lại có ở phần trước tập
)(
0
xD
là tập hợp các hướng chấp nhận được tại x
0
và nếu lấy
)D(x
0
∈d
thì
có:
)),((),(
00
dxfdxf ∇=∂
là đạo hàm theo phương d của hàm f(x) tại x
0

, nó
cho biết mức thay đổi của hàm f(x) tại x
0
theo phương d. Rõ ràng:
Nếu
)D(xd
0


0)),((
0
>∇ dxf
thì d được gọi là hướng chấp nhận được tăng
của f(x) tại x
0
.
Nếu
)D(xd
0


0)),((
0
<∇ dxf
thì d được gọi là hướng chấp nhận được
giảm của f(x) tại x
0
.
Nếu
)D(xd

0


0)),((
0
=∇ dxf
thì d được gọi là hướng chấp nhận được
không đổi của f(x) tại x
0
.
Phương pháp xiết chặt dần trên dãy điểm trong có thể được mô tả như sau:

5
Chọn một điểm Dx
o
∈ và kiểm tra xem tại x
0
có hướng chấp nhận được
giảm của f(x) tại đó hay không? Trong trường hợp tại đó có hướng chấp
nhận được giảm của f(x) ta tìm cách điều chỉnh x
0
sang Dx ∈
1
sao cho:
).()(
01
xfxf ≤
Thuật toán cứ như vậy tiếp diễn trên một dãy phương án dạng:
,...,...,,
10 k

xxx
hay
}
{
,...1,0/ =kx
k
thoã mãn:
...)(...)()(
10
≥≥≥≥
k
xfxfxf
(**)
Dãy phương án
}
{
,...1,0/ =kx
k
thoã mãn (**) gọi là phương án xiết chặt dần.
Như vậy, thuật toán xiết chặt dần nêu trên là sự kết hợp hai khái niệm
Gradient và hướng chấp nhận được tại một phương án. Có rất nhiều phiên
bản thuật toán khác nhau được đưa ra cho các dạng bài toán khác nhau. Ta
gọi phương pháp loại này là phương pháp hướng có thể.
Khi đó các vấn đề cần giải quyết:
Vấn đề 1: Tìm phương án xuất phát x
0
như thế nào? Rõ ràng việc tìm
phương án xuất phát x
0
có liên quan tới vấn đề khảo sát xem tập phương án

∅=D
hay
∅≠D
. Đây là bài toán khó, thậm chí rất khó khi các ràng buộc
của bài toán có tính chất giải tích phức tạp.
Vấn đề 2: Với mộtđiểm Dx
k
∈ thì bằng cách nào xác định được tại đó không
có hướng chấp nhận được giảm của f(x); và nếu tại x
k
không có hướng chấp
nhận được giảm của f(x) thì x
k
có tính chất gì? Liệu x
k
có phải là lời giải của
bài toán hay không? Nếu tại x
k
có hướng chấp nhận được giảm của f(x) thì
việc điều chỉnh x
k
sang x
k+1
được thực hiện như thế nào?
Vấn đề 3: Nếu quá trình điều chỉnh trên diễn ra với dãy
}
{
,...1,0/ =kx
k
thì liệu

dãy
}
{
,...1,0/)( =kxf
k
có hội tụ không? Giả sử lim f(x
k
) tồn tại (
+∞→k
)
và hữu hạn thì giới hạn này có phải là trị tối ưu của f(x) trên D?
Cả ba vấn đề trên là hiện hữu và rất phức tạp. Với bài toán QHFT người ta
đã giải quyết được các vấn đề trên với nhiều lớp bài toán cụ thể, nhưng có

6
thể khẳng định chung là lược đồ điều chỉnh trên chỉ dẫn đến cực trị địa
phương của f(x) trên D và có thể không hội tụ.
Mặc dù điều kiện Kuhn-Tucker đã chỉ ra điều kiện tồn tại nghiệm của
bài toán quy hoạch lồi, nhưng không đưa ra một thuật toán cụ thể nào để giải
một bài toán. Có rất nhiều phương pháp khác nhau được áp dụng cho các bài
toán quy hoạch lồi với cấu trúc khác nhau. Một trong các thuật toán đó thì có
thuật toán Frank-Wolfe.
2. Giới thiệu thuật toán Frank-Wolfe
2.1. Mô hình toán
Bài toán tổng quát có dạng:







0
min)(
x
bAx
xf
(2.1)
Trong đó:
;;;))((
nm
n
x
m
j
i
RxRbaA ∈∈=

Khi đó tập phương án
{ }
0;/ ≥≥= xbAxxD
là tập lồi đa diện.
Thuật toán Frank-Wolfe là thuật toán dùng để giải bài toán QHL với các
ràng buộc tuyến tính.
Các giả thiết của thuật toán:
a. D giới nội tức là một đa diện lồi.
b. Hàm f(x) khả vi liên tục, lồi trên tập phương án.
Bổ sung khái niệm hàm lồi:

n
Rxxfy ∈= ),(

, xác định trên tập D lồi. Khi đó y=f(x) được gọi là
một hàm lồi nếu : với
10 ≤≤
λ
ta có:
[ ]
)()1()()1(
2121
xfxfxxf
λλλλ
−+≤−+
c. Đôi khi người ta thay điều kiện a. bằng điều kiện c. sau:

−∞>−∇ )),(( axxf

Dxa ∈∀ ,
, có nghĩa là tại
Aa
∈∀
đều không tồn tại hướng
chấp nhận được giảm vô hạn của f(x) tại a.

7
Với các giả thiết nêu trên thì bài toán (2.1) luôn có phương án tối ưu; nếu
f(x) lồi ngặt trên D thì phương án tối ưu là duy nhất.
2.2. Thuật toán
Bước 0: Chọn phương án
Dx ∈
0
có 2 cách:

Cách 1: do các bất phương trình là tuyến tính nên ta có thể tìm x
0
bằng cách
giải bài toán phụ P(x,x
g
) khi đó x
0
là phương án cực biên(PACB)
Cách 2: có thể tìm bằng cách mò ngẫu nhiên Dx ∈
0
, không nhất thiết là
đỉnh của D. Khi đó x
0
không phải là PACB.
Sau khi chọn được x
0
ta giải bài toán quy hoạch tối ưu thứ 0:
(1)







⇒−∇
0
min)),((
00
x

bAx
xxxf
Với giả thiết đã có bài toán thứ 0 luôn có phương án tối ưu. Gọi
0
ˆ
x

phương án tối ưu của bài toán (1). Khi đó có hai khả năng sau:
Th1: Nếu
0)
ˆ
),((
0
00
0
≥−∇= xxxf
σ
thì
0
ˆ
x
là phương án tối ưu. Thuật toán kết
thúc, x
0
là cực trị địa phương nhưng do f(x) là hàm lồi nên x
0
là cực trị địa
phương(phần chú ý 1)
Th2: Nếu
0)

ˆ
),((
0
00
0
<−∇= xxxf
σ
thì
0
ˆ
x
-
0
x
là hướng chấp nhận được giảm
của f(x) tại x
0
.
Khi đó trên đoạn
]
ˆ
,[
00
xx
xét phương trình:
)
ˆ
(
000
xxxx −+=

λ
với
]1,0[∈
λ
cần tìm ra điểm mà f(x) nhận giá trị nhỏ nhất. Tức là ta đi giải
bài toán:
min)
ˆ
(()(
000
0
⇒−+=Ψ xxxf
λλ
với
]1,0[∈
λ
(2)
)(
0
λ
Ψ
là hàm lồi theo
λ
, nên
)(
0
λ
Ψ
min


sẽ đạt tại một điểm duy nhất
0
λ

gọi
0
λ
là lời giải của (2) ta nhận được phương án mới:

8

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×