Optimization
Vietnamese Notes

     PHAM Hoai Vu
   phvu225@gmail.com

Ngày 10 tháng 10 năm 2011
1 Introduction
1.1 Mathematical Programming, Optimization và Operational
    Research
George Dantzig (1914 - 2005), cùng v i Leonid Kantorovich và John von Neumann, đư c
coi là cha đ c a các chương trình tuy n tính (Linear Programming ). B n thân Dantzig cũng
có vài "truy n kì" hay ho, nhưng thôi t t đ sau h ng k .
   Tr l i v i Linear Programming, ch programming đây không nên nh m l n v i chương
trình máy tính ngày nay. Linear Programming nói m t cách đơn gi n, là lĩnh v c nghiên
c u các phương pháp toán h c đ tìm k t qu t t nh t trong m t mô hình toán h c cho
trư c, trong đó mô hình và các ràng bu c đư c bi u di n b ng các hàm tuy n tính. Trong
trư ng h p t ng quát v i hàm m c tiêu và các ràng bu c b t kì, lĩnh v c này đư c g i
chung là Mathematical Programming (vào th i c a Dantzig, chương trình máy tính đư c
g i là codes).
   B t đ u t nh ng năm 1930, đ n th chi n th 2 thì nh ng nghiên c u này ch ph c v
ch y u trong quân đ i. Sau khi chi n tranh k t thúc, các ngành công nghi p cũng b t đ u
quan tâm và ng d ng r ng rãi các kĩ thu t này.
   Ngày nay, ta g i nó là Optimization. Nói r ng hơn, lĩnh v c nghiên c u c u hình t i ưu
cho các h th ng ph c t p, trong đi u ki n tài nguyên h n ch , đư c g i là Operational
Research. Như v y Mathematical Programming (hay ngày nay g i là Optimization) là m t
lĩnh v c nh trong Operational Research. Operational Research đư c ng d ng r ng rãi trong
kinh t , qu c phòng... ch không ch gói g n trong khoa h c máy tính. Ch ng h n bài toán
t i ưu l ch trình giao hàng đ n đ i lí là m t ví d tiêu bi u cho Operational Research.
   Nói chung các v n đ trong Operational Research đ u có chung "vòng đ i" g m các bư c
như sau:
   R t nhi u phương pháp optimization khác nhau đã đư c phát tri n đ áp d ng trong bư c
2 và 3 c a vòng đ i này. Ta s l n lư t nghiên c u chúng.


Algorithm 1.1 Vòng đ i c a các v n đ trong Operational Research
1. Đ nh nghĩa bài toán
2. Mô hình hóa b ng toán h c, đ nh nghĩa các bi n, hàm m c tiêu và các ràng bu c, thông
thư ng bài toán s có d ng min f (x) s.t. x ∈ X.
3. T i ưu mô hình, s d ng phương pháp thích h p.
4. Ki m tra (validate) mô hình, xem l i gi i c a bư c 3 có đúng không. N u sai thì s a mô
hình và gi i l i.
5. Cài đ t, ng d ng mô hình




                                           2
1.2 D ng t ng quát c a bài toán t i ưu
Có r t nhi u cách phát bi u d ng chung c a m     t bài toán t i ưu, tuy nhiên ta s s d ng
d ng sau:
                      
                       min
                       x∈Rn        f (x)        Objective function
                      
                      
                        subject to: h (x) = 0    Equality contraints
                      
                 (P )
                      
                      
                                   g (x) ≤ 0    Inequality contraints
                      
                                    x∈X          Variable domain
                      

  Trong đó:
  x ∈ Rn là bi n c n t i ưu, f : Rn → R, h : Rn → Rm , g : Rn → Rl , X ⊆ Rn .
  Thông thư ng các hàm f , g và h ph i kh vi và "mư t" (theo tiêu chu n Lipschitz ch ng
h n) đ đ m b o các tính ch t t t c a các thu t toán t i ưu.
  Ngoài ra, đương nhiên
                               max f (x) = − min −f (x)
                                  n              n
                               x∈R              x∈R

nghĩa là tìm x sao cho f (x) c c đ i cũng chính là tìm x đ −f (x) c c ti u. Do đó trong
d ng chu n c a bài toán t i ưu, ta s ch xét bài toán tìm c c ti u.
  Ta còn có th bi u di n tương đương d ng chung c a bài toán t i ưu theo cách sau:

                                  (P ) min {f (x) |x ∈ Ω}
                                       x

  v i Ω = {x ∈ X |h (x) = 0, g (x) ≤ 0} g i là feasible set.
  Các cách bi u di n này là tương đương nhau, và ta s s d ng d ng th 2 trong su t bài
này.


1.3 Phân lo i các bài toán t i ưu
Tùy theo d ng hàm m c tiêu và các ràng bu c, và tùy theo tiêu chí, có r t nhi u cách phân
lo i các bài toán t i ưu. S dĩ ph i phân lo i bài toán t i ưu là vì các phương pháp t i ưu
hi n có ch làm vi c t t trên m t d ng bài toán nh t đ nh. Do đó vi c phân lo i là c n thi t
đ ch n phương pháp gi i thích h p cho m i bài toán. đây ta s phân lo i theo 2 tiêu chí
là d a vào tính ch t c a đáp án và d a vào cách mô hình hóa bài toán.
   D a vào đáp án c a bài toán t i ưu, ta có th chia làm 4 lo i như sau:

  1. Bài toán có l i gi i t i ưu: đó là khi t p giá tr c a f (x) v i x thu c feasible set
     {f (x) |x ∈ Ω}b ch n dư i.
     Ví d xét bài toán minx f (x) = x2 + x2 |x ≥ 0 . V i x ≥ 0 thì f (x) = x2 + x2 ≥ 0
                                          1    2                              1    2
     nên bài toán có l i gi i t i ưu là f (x) = 0 khi x1 = x2 = 0.

  2. Bài toán b t kh thi (infeasible problem): khi feasible set Ω là t p r ng.
     Xét bài toán minx f (x) = x2 + x2 |x1 + x2 ≤ −1, x ≥ 0 , rõ ràng khi x ≥ 0 thì
                                   1     2




                                            3
x1 + x2 luôn l n hơn 0, do đó feasible set trong trư ng h p này là t p r ng, bài toán
     không có l i gi i.

  3. Unbounded problem: khi t p {f (x) |x ∈ Ω} không b ch n dư i.
     Xét bài toán minx f (x) = −x2 − x2 |x ≥ 0 . Rõ ràng vì x ≥ 0 nên x càng l n thì
                                    1    2
     f (x) = −x2 − x2 càng nh , t p giá tr c a f (x) vì th không b ch n dư i, do đó
                1     2
     m c dù feasible set không r ng nhưng bài toán này không có l i gi i h u h n.

  4. T n t i ít nh t m t đi m t i ưu toàn c c: đi u này đư c đ m b o n u f là hàm liên
     t c và Ω là t p compact.

Tuy nhiên m t cách phân lo i ph bi n hơn là d a vào cách mô hình hóa bài toán, vì theo
đó ta có th ch n phương pháp t i ưu phù h p. Theo đó có th chia thành các d ng bài
toán t i ưu sau:

  1. Linear programming
                                    (P ) min cT x|x ∈ Ω
                                          x

                              Ω = {x ∈ Rn |Ax = b, l ≤ x ≤ u}
     Trong d ng này, c hàm f (x) và ràng bu c Ax = b đ u có d ng tuy n tính, do đó m i
     có tên là chương trình tuy n tính. Đây chính là d ng đ u tiên mà Dantzig đã công b
     nh ng năm 1930, 1940.

  2. Linear Network Flow Problem

                                    (P ) min cT x|x ∈ Ω
                                          x

            Ω = {x ∈ Rn |Ax = b, l ≤ x ≤ u, A is the arc-node matrix of a graph}
     Gi ng trư ng h p trên, nhưng khi A là ma tr n bi u di n m t đ th nào đó, thì nh
     m t s tính ch t c a đ th , ta có th có nh ng phương pháp gi i t t hơn nhi u. Các
     bài toán đư ng đi ng n nh t, lát c t c c ti u v.v... trong đ th thu c lo i này, và đã
     đư c nghiên c u nhi u trong Lí thuy t đ th .

  3. Linear Mixed Integer Programming

                                                      x
                              (P ) min cT x + dT y|       ∈Ω
                                   x                  y

                                                                 x
                   Ω=     x ∈ Rnx , y ∈ Zny |Ax + T y = b, l ≤       ≤u
                                                                 y
     Trong trư ng h p này, t p xác đ nh c a x và y khác nhau nên ta g i là mixed, ngoài
     ra do y thu c không gian Zn nên g i là integer. Cu i cùng, hàm m c tiêu và đi u ki n
     c a bài toán đ u là hàm tuy n tính nên g i linear.




                                              4
4. Nonlinear unconstrainted
                                          (P ) min f (x)
                                                  n
                                              x∈R

     Trư ng h p t ng quát, hàm m c tiêu f (x) không ph i là tuy n tính thì ta g i là
     nonlinear programming. Trong trư ng h p này không có c đi u ki n ràng bu c nên
     g i là unconstrainted.

  5. Nonlinear with Simple Bounds

                                  (P ) min {f (x) |l ≤ x ≤ u}
                                          x

     Hàm m c tiêu t ng quát, bi n b ch n trên và ch n dư i.

  6. Nonlinear with linear constraints

                  (P ) min {f (x) |x ∈ X } ; X = {x ∈ Rn |Ax = b, l ≤ x ≤ u}
                        x

     Hàm m c tiêu t ng quát, bi n b ch n và ràng bu c b ng h phương trình tuy n tính.

  7. Nonlinear with general constraints

                 (P ) min {f (x) |x ∈ X } ; X = {x ∈ Rn |h (x) = 0, g (x) ≤ 0}
                        x

     Đây chính là trư ng h p t ng quát, c hàm m c tiêu và ràng bu c đ u không tuy n
     tính.


1.4 M t s kĩ thu t bi n đ i
Bài toán t i ưu trong th c t thư ng không có d ng chu n m c như đã nói ph n trên,
tuy nhiên b ng m t s bi n đ i khéo léo, ta có th đưa chúng v d ng chu n m c. Sau đây
là m t s kĩ thu t như v y.

1.4.1 Đ ng th c -> B t đ ng th c
Ta có th chuy n m t ràng bu c d ng đ ng th c thành 2 ràng bu c b t đ ng th c, và bài
toán t i ưu m i v n tương đương v i bài toán ban đ u.
  Ví d ràng bu c

                                   2x1 + 3x2 − x3 = 5
  là tương đương v i:

                                   2x1 + 3x2 − x3 ≤ 5


                                   2x1 + 3x2 − x3 ≥ 5



                                              5
1.4.2 B t đ ng th c -> đ ng th c
Cũng có th th c hi n theo chi u ngư c l i b ng cách s d ng thêm bi n ph .
  Ví d ràng bu c

                                  2x1 + 3x2 − x3 ≤ 5
  là tương đương v i

                               2x1 + 3x2 − x3 + w1 = 5


                                        w1 ≥ 0
   M i w1 như th g i là m t bi n l ng (slack variable), v i m i đ ng th c ta s thêm m t
bi n như th , và bài toán m i s v n tương đương v i bài toán ban đ u.

1.4.3 Bi n t do -> bi n ràng bu c
Gi s trong bài toán t i ưu có m t bi n t do (không b ràng bu c b i b t kì đ ng th c/b t
đ ng th c nào), ta v n có th vi t ràng bu c cho chúng b ng cách thêm bi n ph .
   Gi s y1 là bi n t do (giá tr c a nó bi n thiên trong kho ng −∞ đ n ∞), ta có th
vi t:

                                     y1 = y2 − y3


                                       y2 , y3 ≥ 0

1.4.4 C c đ i (Mamimize) -> c c ti u (minimize)
D ng chu n m c ch quan tâm đ n tìm c c ti u, nhưng ta bi t r ng max f (x) = − min −f (x),
do đó có th chuy n 1 bài toán t i ưu c c đ i thành c c ti u m t cách d dàng.
   Ch ng h n đ tìm max 6x1 + 5x2 − 3x3 , ta tìm y = min −6x1 − 5x2 + 3x3 , sau đó giá
tr c c đ i s là −y.


1.5 T i ưu toàn c c và t i ưu c c b

1.6 Modelling language: AMPL

1.7 Conclusion




                                           6
2 Unconstrained Nonlinear Optimization -
  Thu t toán Line search
Cho m t bài toán t i ưu phi tuy n không ràng bu c (Unconstrained Nonlinear Optimization
Problem - UNOP)

                                       min f (x)
                                       x∈Rn
                                               ∞
  tư tư ng chung là ta s phát sinh dãy xk k=0 sao cho nó h i t v l i gi i t i ưu x∗ .
Theo đó, thu t toán t ng quát là:
  Như v y có 3 v n đ c n làm rõ trong thu t toán này là:

   • Stopping criterium nào là phù h p, nghĩa là ph i nghĩ ra đi u ki n đ quy t đ nh lúc
     nào thì nên d ng thu t toán,

   • Tìm descent direction như th nào, và cu i cùng

   • Tìm steplength như th nào.

Bư c kh i t o cũng r t quan tr ng, vì nó có th quy t đ nh k t qu cu i cùng c a thu t
toán. Tuy nhiên thông thư ng không có cách nào đ bi t kh i t o như th nào là t t, do
đó ngư i ta s th c hi n thu t toán nhi u l n v i các đi m kh i t o khác nhau, và ch n k t
qu t t nh t.
  Ba ph n còn l i c a bài s tương ng v i 3 v n đ đã nêu trên.


Algorithm 2.1 Thu t toán t ng quát cho UNOP
  1. Kh i t o xk ∈ X = Rn , k = 0.

  2. N u xk tho đi u ki n d ng (stopping criterium) nào đó thì gán x∗ = xk và d ng.

  3. N u xk không th a đi u ki n trên thì t nh ti n xk đ n m t đi m m i t t hơn (th a
     mãn hàm m c tiêu t t hơn đi m hi n t i). C th ta s :
       a) Tìm hư ng gi m (descent direction) dk .
       b) Tìm đ dài bư c (steplength) αk .
       c) C p nh t xk+1 := xk + αk dk , k := k + 1. Quay l i bư c 2.




                                           7
2.1 Stopping criterium
Có 3 đi u ki n sau:

   • Đi u ki n c n c a đ o hàm b c nh t:
     N u x∗ là đi m t i ưu c c b và f (x) kh vi liên t c trên m t lân c n m c a x∗ thì
      f (x∗ ) = 0.

   • Đi u ki n c n c a đ o hàm b c 2:
     N u x∗ là đi m t i ưu c c b , f (x) và 2 f (x) kh vi liên t c trên m t lân c n m
     c a x∗ thì f (x∗ ) = 0 và ma tr n Hessian 2 f (x∗ ) là ma tr n positive semidefinite.

   • Đi u ki n đ c a đ o hàm b c 2:
     Gi s       2 f (x) liên t c trên m t lân c n m c a x∗ và f (x∗ ) = 0 và ma tr n Hessian
       2 f (x∗ ) là positive definite. Khi đó x∗ là đi m t i ưu ch t (strict local minimizer )

     c a f (x).

Nói m t cách ng n g n (b qua các đi u ki n):

   • N u    f (x∗ ) = 0 thì x∗ là t i ưu c c b .

   • N u    f (x∗ ) = 0 và   2f   (x∗ ) là positive semidefinite thì x∗ là t i ưu c c b .

   • N u    f (x∗ ) = 0 và   2f   (x∗ ) là positive definite thì x∗ là t i ưu c c b ch t.

   Trong các đi u ki n d ng ta ch xét đ n t i ưu c c b . Trong trư ng h p đ c bi t n u
f (x) là hàm l i (convex) thì m i đi m t i uu c c b đ u là t i ưu toàn c c. Hơn n a n u
mf (x) v a l i v a kh vi thì m i đi m x∗ làm đ o hàm b c nh t b ng 0 đ u là đi m t i ưu
toàn c c.
   V lí thuy t, đ xét 1 hàm có l i hay không, ta xét tính ch t c a ma tr n Hessian (đ o
hàm b c 2) trên toàn mi n xác đ nh. Theo đó f (x):

   • là hàm l i (convex) n u ma tr n Hessian là positive semidefinite t i m i đi m trên
     mi n xác đ nh.

   • là hàm l i ch t (strict convex) n u ma tr n Hessian là positive definite t i m i đi m
     trên mi n xác đ nh.

   • là hàm lõm (concave) n u −f (x) là hàm l i.

   • là hàm lõm ch t (strict concave) n u −f (x) là hàm l i ch t.

Rõ ràng vi c ki m tra trên toàn mi n xác đ nh là b t kh thi, tr vài trư ng h p đơn gi n
như các hàm b c 2 thì s có Hessian là h ng v.v...
   Trong trư ng h p t ng quát, khi vi c tính đ o hàm b c nh t và b c 2 g p khó khăn vì
không tìm đư c công th c đ o hàm tư ng minh, ho c do gi i h n đ chính xác c a máy
tính... thì các đi u ki n trên tr nên khó ki m tra. Khi đó ta ph i dùng m t s đi u ki n
th c t . Thu t toán s d ng n u:




                                               8
Algorithm 2.2 Nh c l i v tr riêng.
Nh c l i r ng ma tr n vuông M ∈ Rn×n g i là:

   • negative-semidefinite n u z T M z ≤ 0 v i m i vector z ∈ Rn khác 0.

   • negative-definite n u z T M z < 0 v i m i vector z ∈ Rn khác 0.

   • positive-definite n u z T M z > 0 v i m i vector z ∈ Rn khác 0.

   • positive-semidefinite n u z T M z ≥ 0 v i m i vector z ∈ Rn khác 0.

   • indefinite n u nó không ph i negative-semidefinite cũng không ph i positive-
     semidefinite.

Nhân ti n cũng nh c l i m i quan h gi a ma tr n Hermitian (là các ma tr n có chuy n v
liên h p b ng chính nó M = M ∗ ) và tr riêng. Ma tr n Hermitian M là:

   • negative-semidefinite khi và ch khi các tr riêng đ u không dương λi ≤ 0.

   • negative-definite khi và ch khi các tr riêng đ u âm λi < 0.

   • positive-definite khi và ch khi các tr riêng đ u dương λi > 0.

   • positive-semidefinite khi và ch khi các tr riêng đ u không âm λi ≥ 0.



   • đ l n tương đ i c a đ o hàm b c nh t t i xk đ nh

                                    max xk , 1
                                            i                            1
                            max                        f xk           ≤ ε3
                           1≤i≤n   max {|f (xk )| , 1}            i


     ho c xk thay đ i m t kho ng đ nh

                                           xk+1 − xk
                                            i      i          2
                                   max                    ≤ ε3
                                   1≤i≤n   max   xk , 1
                                                  i


v i ε là đ chính xác c a máy (hàm eps trong MATLAB).


2.2 Descent direction
Đ nh nghĩa:
  dk ∈ Rn là m t hư ng gi m (descent direction) c a m t bài toán UNOP t i xk n u:

                     ∃¯ ∈ R+ |∀α ∈ [0, α] : f xk + αdk < f xk
                      α                ¯




                                            9
Hình 2.1: Descent direction


   Ý tư ng c a đ nh nghĩa này đư c minh ho trong hình trên. V i hàm f (x) như trong hình,
t i v trí xk , khi đi theo hư ng dk thì giá tr c a f (x (α)) s gi m d n. M c dù đ n m t lúc
nào đó thì giá tr c a f (x (α)) l i tăng, và còn có th l n hơn f (x), nhưng vì ta có th tìm
đư c α theo như đ nh nghĩa nên dk là hư ng gi m c a f (x) t i xk .
      ¯
   Đ nh nghĩa này rõ ràng r t khó áp d ng do có các toán t t n t i và v i m i. Trong th c
t , ta dùng các đi u ki n đơn gi n hơn đ xét dk có ph i là descent direction hay không,
theo đó n u:

   •   f (x) d < 0 thì d là hư ng gi m (descent direction) c a f (x) t i x,

   •   f (x) d > 0 thì d là hư ng tăng (ascent direction) c a f (x) t i x,

   •   f (x) d = 0 thì tùy thu c vào ma tr n Hessian c a f (x) t i x.

Như v y ta ch c n xét tích vô hư ng c a đ o hàm b c nh t t i x v i vector d đ ki m tra
đi u ki n trên. Ý tư ng này đư c minh h a trong hình sau. Hàm f (x) v i đi m t i ưu t i
x∗ đư c kh o sát. T i x = (0, 0)T , các mũi tên màu đ là các hư ng tăng, màu xanh lá
là hư ng gi m. Tinh ý thì ta s th y r ng do f (x) d là tích vô hư ng nên n u góc gi a
  f (x) và d l n hơn π thì tích vô hư ng âm, d là hư ng gi m. Đây là nh n xét quan tr ng,
                     2
s có d p ta tr l i v i nó.
   Như v y cho trư c m t vector d, ta đã có cách đ ki m tra nó có ph i là descent direction
không. Nhưng v n đ là t i đi m xk b t kì, làm sao đ tìm hư ng gi m dk ? Ta có các
phương pháp sau:

   • S d ng đ o hàm b c nh t:
        – Steepest descent (còn g i là gradient method ): dk = − f xk .
        – Conjugate Gradient: dk = − f xk + β k dk−1 .



                                            10
Hình 2.2: Descent direction: đi u ki n đ


        – Quasi-Newton: dk = −Bk f xk , trong đó các Bk là ma tr n đ i x ng, positive
          definite.
   • S d ng đ o hàm b c 2:
                                                       −1
        – Phương pháp Newton: dk = −         2f   xk        f xk

Tính ch t c a m i phương pháp s đư c trình bày chi ti t sau.


2.3 Steplength: Thu t toán line search
Như v y t i đi m xk ta xác đ nh đư c hư ng gi m dk , do đó xk+1 ph i n m trên n a đư ng
th ng x (α) = xk + αdk , (α > 0). V n đ là ta ph i xác đ nh xem ta c n đi xa bao nhiêu
trên n a đư ng th ng này, nghĩa là ph i xác đ nh đ dài bư c t t nh t α∗ .
   Line search là thu t toán th c hi n vi c này, và rõ ràng b n thân line search cũng là m t
bài toán t i ưu:

                            α∗ = arg min {f (x + αd) |α ≤ 0}
  S dĩ ta c c ti u f (x + αd) là vì không nh ng ta mu n tìm α t t nh t, mà còn mu n
thu t toán k t thúc nhanh nh t có th .
  Ta có th gi i chính xác bài toán line search (g i là exact line search) b ng cách l y đ o
hàm c a f (x (α)) đ tìm giá tr c a α t i đi m c c tr .
  Ch ng h n xét l i ví d trong hình 2:

                    minx∈Rn f (x) = 0.875x2 + 0.8x2 − 350x1 − 300x2
                                          1       2




                                            11
Algorithm 2.3 Thu t toán backtracking line search
  1. Đ nh nghĩa tiêu chu n ch p nh n (acceptability ) cho αk .

  2. Đ t α := αmax , bư c th đ u cho α.

  3. L p cho đ n khi α th a tiêu chu n ch p nh n
       a) B ng cách nào đó (chia đôi, gi m d n, n i suy...) tìm bư c th m i cho α sao
          cho α < αmax .

  4. 4. Đ t αk := α.



T i x = (0, 0)T , hư ng gi m (tính theo steepest descent) là d = − f (x) = (350, 300)T .
Ta có th ki m tra f (x) d < 0 nên d là hư ng gi m c a f (x) t i x. Ta có:
   f (x (α)) = f (x + αd) = 179187.5α2 − 212500α, và
   ∂f (x(α))
      ∂α     = 0 ⇔ α∗ = 0.5939
   Như v y ta đã ch n đư c αk và có th ti p t c bư c 3.c trong 2.1.
   Tuy nhiên trong nhi u trư ng h p, vi c tính đ o hàm c a f (x (α)) là b t kh thi nên ta
c n cách khác đ tìm α∗ , và đó chính là n i dung c a thu t toán inexact line search. M c
tiêu c a line search là xác đ nh x p x αk ≈ arg min f xk + αdk |α ≥ 0 sao cho nó làm
gi m đ l n c a f (x), ti n g n hơn v c c ti u, đ ng th i không t n quá nhi u chi phí tính
toán.
   Trong bư c 3, đ tìm bư c th m i cho α, ta có th :

   • Chia α cho m t h ng s k nào đó, như v y các giá tr c a α l n lư t là αmax , αmax , αmax · · ·
                                                                                  k      k2
     Đ n khi nào th a đi u ki n thì ng ng.

   • Tr d n α cho m t h ng s c nào đó, các giá tr c a α l n lư t là αmax , αmax −
     c, αmax − 2c · · ·

   • Dùng m t hàm nào đó đ n i suy giá tr c a α. Thông thư ng ta s dùng m t hàm
     b c 2 g (α) = aα2 + bα + c. Nh n xét r ng
                             
                             g (0)
                                         = f xk
                                g (0)     = f xk dk
                             
                                g (αmax ) = f xk + αmax dk
                             


     ta có 3 phương trình đ tìm các h s a, b và c c a g (α). Sau khi có công th c hàm
     g (α) thì có th ch n α b t kì trong đo n [0, αmax ]. M t ví d cu i bài s minh h a
     cách làm này.

M nh ghép cu i cùng còn thi u c a thu t toán là tiêu chu n ch p nh n trong 2.3. Ngư i ta
hay dùng tiêu chu n Wolfe, còn g i là tiêu chu n Armijo-Goldstein. Tiêu chu n này g m 2
b t phương trình sau:



                                             12
Hình 2.3: Minh h a tiêu chu n Armijo-Goldstein



                     f xk + αdk ≤ f xk + c1 f xk dk .α


                            f xk + αdk dk ≥ c2 f xk dk

   v i c1 , c2 là các h ng s th a 0 < c1 < c2 < 1.
   Hình 3 minh h a các tiêu chu n này. Đ th c a hàm Φ (α) = f xk + αdk (v trái c a
đi u ki n th nh t) đư c v trong hình. G c t a đ là t i v trí α = 0. Đư ng màu cam là
đ th v bên ph i c a đi u ki n th nh t. Do đó ý nghĩa c a tiêu chu n th nh t là ch
nh ng α n m trong đo n màu cam đư c ch n. Tương t ch nh ng α n m trong đo n màu
vàng m i đư c ch n theo tiêu chu n th 2. Cu i cùng ph n giao s là nh ng α th a c 2
tiêu chu n trên.
   Ta s làm rõ line search b ng m t ví d .


2.4 Ví d
Cho hàm f (x) = x3 + x1 x2 + 2x21 .
                 1            x
  1. T i đi m xk = [1 1]T , ki m tra dk = [0 − 1]T có ph i là hư ng gi m c a f (x)
không. N u không hãy tìm m t hư ng gi m th a đi u ki n.
  Ta có f (x) = 3x2 + x2 + x2
                     1
                                 2
                                     x1 − 2x21 ⇒ f xk = 6 −1
                                           x    2
                                 0
  Vì   f xk dk =     6 −1            = 1 > 0 nên dk là hư ng tăng c a f (x) t i xk (ch
                                −1
không ph i hư ng gi m).
                                                             T                               −1
  Có th ch n hư ng gi m c a f (x) t i xk là dk =    −1   0       vì   f xk dk =   6 −1   .        =
                                                                                             0
−6 < 0




                                           13
2. Th c hi n bư c đ u tiên c a thu t toán line search t i xk theo hư ng dk b ng
phương pháp n i suy b c 2, các tham s αmax = 1, c1 = 0.01, c2 = 0.5.
                                T                  T
  Line search t i xk = 1 1        v i dk = −1 0      , αmax = 1, c1 = 0.01, c2 =
0.5.
  Ta có:
  f xk = 4,        f xk = 6 −1 ,
                                               0
     f xk dk = −6, f xk + αmax dk = f              = 0.
                                               1
  N i suy b c 2: hàm b c 2 c a α có d ng g (α) = aα2 + bα + c và th a:
                                                     
                     g (0)
                                 = f xk              c = 4
                                                      
                       g (0)      = f x   k dk     ⇔ b = −6
                                                     
                       g (αmax ) = f xk + αmax dk       a =2
                                                     
                                                           3
  V y g (α) = 2α2 − 6α + 4 và g (αg ) = 4αg − 6 = 0 ⇔ αg = 2 .
  Ta có th ch n αg = min 3 , αmax = 1.
                            2
  Ki m tra tiêu chu n Armijo-Goldstein v i αg b ng MATLAB:
f u n c t i o n [ f ] = prob6_func ( x )
    f = x ( 1 ) ^ 3 + x ( 1 ) ∗ x ( 2 ) + 2∗ x ( 1 ) / x ( 2 ) ;
end

f u n c t i o n [ g ] = prob6_grad ( x )
    g = zeros (1 , 2);
    g ( 1 , 1 ) = 3∗ x ( 1 ) ^ 2 + x ( 2 ) + 2/ x ( 2 ) ;
    g ( 1 , 2 ) = x ( 1 ) − 2∗ x ( 1 ) / ( x ( 2 ) ^ 2 ) ;
end

>>   xk = [ 1 ; 1 ] ; dk = [ −1; 0 ] ;
>>   alpha_g = 1 ;
>>   c1 = 0 . 0 1 ; c2 = 0 . 5 ;
>>   l 1 = prob6_func ( xk+alpha_g ∗ dk ) ;
>>   r 1 = prob6_func ( xk)+alpha_g ∗ c1 ∗ ( prob6_grad ( xk ) ∗ dk ) ;
>>   l 1 <= r 1
     ans =
     1

>> l 2 = prob6_grad ( xk+alpha_g ∗ dk ) ∗ dk ;
>> r 2 = c2 ∗ ( prob6_grad ( xk ) ∗ dk ) ;
>> l 2 >= r 2
   ans =
   1
  V y αg = 1 th a tiêu chu n A-G.



                                                   14
2.5 K t lu n
Bài này t ng quan v các bài toán t i ưu phi tuy n không ràng bu c, đ ng th i làm rõ thu t
toán line search như m t bư c quan tr ng trong thu t toán chung.
   Tuy nhiên bài này chưa trình bày rõ các phương pháp ch n hư ng gi m như Steepest
Descent hay Conjugate Gradient. Đ có th đánh giá, l a ch n gi a các phương pháp này,
ta c n bi t cách đánh giá m c đ h i t c a m t thu t toán t i ưu. Bài ti p theo trong
series Optimization s nói v h i t c c b , h i t toàn c c, đ nh lí Zoutendijk, h i t tuy n
tính, siêu tuy n tính... Đây s là cơ s đ đánh giá các phương pháp ch n hư ng gi m mà
ta đã nh c t i trong bài này.




                                           15

Notes for Optimization Chapter 1 and 2

  • 1.
    Optimization Vietnamese Notes PHAM Hoai Vu phvu225@gmail.com Ngày 10 tháng 10 năm 2011
  • 2.
    1 Introduction 1.1 MathematicalProgramming, Optimization và Operational Research George Dantzig (1914 - 2005), cùng v i Leonid Kantorovich và John von Neumann, đư c coi là cha đ c a các chương trình tuy n tính (Linear Programming ). B n thân Dantzig cũng có vài "truy n kì" hay ho, nhưng thôi t t đ sau h ng k . Tr l i v i Linear Programming, ch programming đây không nên nh m l n v i chương trình máy tính ngày nay. Linear Programming nói m t cách đơn gi n, là lĩnh v c nghiên c u các phương pháp toán h c đ tìm k t qu t t nh t trong m t mô hình toán h c cho trư c, trong đó mô hình và các ràng bu c đư c bi u di n b ng các hàm tuy n tính. Trong trư ng h p t ng quát v i hàm m c tiêu và các ràng bu c b t kì, lĩnh v c này đư c g i chung là Mathematical Programming (vào th i c a Dantzig, chương trình máy tính đư c g i là codes). B t đ u t nh ng năm 1930, đ n th chi n th 2 thì nh ng nghiên c u này ch ph c v ch y u trong quân đ i. Sau khi chi n tranh k t thúc, các ngành công nghi p cũng b t đ u quan tâm và ng d ng r ng rãi các kĩ thu t này. Ngày nay, ta g i nó là Optimization. Nói r ng hơn, lĩnh v c nghiên c u c u hình t i ưu cho các h th ng ph c t p, trong đi u ki n tài nguyên h n ch , đư c g i là Operational Research. Như v y Mathematical Programming (hay ngày nay g i là Optimization) là m t lĩnh v c nh trong Operational Research. Operational Research đư c ng d ng r ng rãi trong kinh t , qu c phòng... ch không ch gói g n trong khoa h c máy tính. Ch ng h n bài toán t i ưu l ch trình giao hàng đ n đ i lí là m t ví d tiêu bi u cho Operational Research. Nói chung các v n đ trong Operational Research đ u có chung "vòng đ i" g m các bư c như sau: R t nhi u phương pháp optimization khác nhau đã đư c phát tri n đ áp d ng trong bư c 2 và 3 c a vòng đ i này. Ta s l n lư t nghiên c u chúng. Algorithm 1.1 Vòng đ i c a các v n đ trong Operational Research 1. Đ nh nghĩa bài toán 2. Mô hình hóa b ng toán h c, đ nh nghĩa các bi n, hàm m c tiêu và các ràng bu c, thông thư ng bài toán s có d ng min f (x) s.t. x ∈ X. 3. T i ưu mô hình, s d ng phương pháp thích h p. 4. Ki m tra (validate) mô hình, xem l i gi i c a bư c 3 có đúng không. N u sai thì s a mô hình và gi i l i. 5. Cài đ t, ng d ng mô hình 2
  • 3.
    1.2 D ngt ng quát c a bài toán t i ưu Có r t nhi u cách phát bi u d ng chung c a m t bài toán t i ưu, tuy nhiên ta s s d ng d ng sau:   min  x∈Rn f (x) Objective function   subject to: h (x) = 0 Equality contraints  (P )    g (x) ≤ 0 Inequality contraints  x∈X Variable domain  Trong đó: x ∈ Rn là bi n c n t i ưu, f : Rn → R, h : Rn → Rm , g : Rn → Rl , X ⊆ Rn . Thông thư ng các hàm f , g và h ph i kh vi và "mư t" (theo tiêu chu n Lipschitz ch ng h n) đ đ m b o các tính ch t t t c a các thu t toán t i ưu. Ngoài ra, đương nhiên max f (x) = − min −f (x) n n x∈R x∈R nghĩa là tìm x sao cho f (x) c c đ i cũng chính là tìm x đ −f (x) c c ti u. Do đó trong d ng chu n c a bài toán t i ưu, ta s ch xét bài toán tìm c c ti u. Ta còn có th bi u di n tương đương d ng chung c a bài toán t i ưu theo cách sau: (P ) min {f (x) |x ∈ Ω} x v i Ω = {x ∈ X |h (x) = 0, g (x) ≤ 0} g i là feasible set. Các cách bi u di n này là tương đương nhau, và ta s s d ng d ng th 2 trong su t bài này. 1.3 Phân lo i các bài toán t i ưu Tùy theo d ng hàm m c tiêu và các ràng bu c, và tùy theo tiêu chí, có r t nhi u cách phân lo i các bài toán t i ưu. S dĩ ph i phân lo i bài toán t i ưu là vì các phương pháp t i ưu hi n có ch làm vi c t t trên m t d ng bài toán nh t đ nh. Do đó vi c phân lo i là c n thi t đ ch n phương pháp gi i thích h p cho m i bài toán. đây ta s phân lo i theo 2 tiêu chí là d a vào tính ch t c a đáp án và d a vào cách mô hình hóa bài toán. D a vào đáp án c a bài toán t i ưu, ta có th chia làm 4 lo i như sau: 1. Bài toán có l i gi i t i ưu: đó là khi t p giá tr c a f (x) v i x thu c feasible set {f (x) |x ∈ Ω}b ch n dư i. Ví d xét bài toán minx f (x) = x2 + x2 |x ≥ 0 . V i x ≥ 0 thì f (x) = x2 + x2 ≥ 0 1 2 1 2 nên bài toán có l i gi i t i ưu là f (x) = 0 khi x1 = x2 = 0. 2. Bài toán b t kh thi (infeasible problem): khi feasible set Ω là t p r ng. Xét bài toán minx f (x) = x2 + x2 |x1 + x2 ≤ −1, x ≥ 0 , rõ ràng khi x ≥ 0 thì 1 2 3
  • 4.
    x1 + x2luôn l n hơn 0, do đó feasible set trong trư ng h p này là t p r ng, bài toán không có l i gi i. 3. Unbounded problem: khi t p {f (x) |x ∈ Ω} không b ch n dư i. Xét bài toán minx f (x) = −x2 − x2 |x ≥ 0 . Rõ ràng vì x ≥ 0 nên x càng l n thì 1 2 f (x) = −x2 − x2 càng nh , t p giá tr c a f (x) vì th không b ch n dư i, do đó 1 2 m c dù feasible set không r ng nhưng bài toán này không có l i gi i h u h n. 4. T n t i ít nh t m t đi m t i ưu toàn c c: đi u này đư c đ m b o n u f là hàm liên t c và Ω là t p compact. Tuy nhiên m t cách phân lo i ph bi n hơn là d a vào cách mô hình hóa bài toán, vì theo đó ta có th ch n phương pháp t i ưu phù h p. Theo đó có th chia thành các d ng bài toán t i ưu sau: 1. Linear programming (P ) min cT x|x ∈ Ω x Ω = {x ∈ Rn |Ax = b, l ≤ x ≤ u} Trong d ng này, c hàm f (x) và ràng bu c Ax = b đ u có d ng tuy n tính, do đó m i có tên là chương trình tuy n tính. Đây chính là d ng đ u tiên mà Dantzig đã công b nh ng năm 1930, 1940. 2. Linear Network Flow Problem (P ) min cT x|x ∈ Ω x Ω = {x ∈ Rn |Ax = b, l ≤ x ≤ u, A is the arc-node matrix of a graph} Gi ng trư ng h p trên, nhưng khi A là ma tr n bi u di n m t đ th nào đó, thì nh m t s tính ch t c a đ th , ta có th có nh ng phương pháp gi i t t hơn nhi u. Các bài toán đư ng đi ng n nh t, lát c t c c ti u v.v... trong đ th thu c lo i này, và đã đư c nghiên c u nhi u trong Lí thuy t đ th . 3. Linear Mixed Integer Programming x (P ) min cT x + dT y| ∈Ω x y x Ω= x ∈ Rnx , y ∈ Zny |Ax + T y = b, l ≤ ≤u y Trong trư ng h p này, t p xác đ nh c a x và y khác nhau nên ta g i là mixed, ngoài ra do y thu c không gian Zn nên g i là integer. Cu i cùng, hàm m c tiêu và đi u ki n c a bài toán đ u là hàm tuy n tính nên g i linear. 4
  • 5.
    4. Nonlinear unconstrainted (P ) min f (x) n x∈R Trư ng h p t ng quát, hàm m c tiêu f (x) không ph i là tuy n tính thì ta g i là nonlinear programming. Trong trư ng h p này không có c đi u ki n ràng bu c nên g i là unconstrainted. 5. Nonlinear with Simple Bounds (P ) min {f (x) |l ≤ x ≤ u} x Hàm m c tiêu t ng quát, bi n b ch n trên và ch n dư i. 6. Nonlinear with linear constraints (P ) min {f (x) |x ∈ X } ; X = {x ∈ Rn |Ax = b, l ≤ x ≤ u} x Hàm m c tiêu t ng quát, bi n b ch n và ràng bu c b ng h phương trình tuy n tính. 7. Nonlinear with general constraints (P ) min {f (x) |x ∈ X } ; X = {x ∈ Rn |h (x) = 0, g (x) ≤ 0} x Đây chính là trư ng h p t ng quát, c hàm m c tiêu và ràng bu c đ u không tuy n tính. 1.4 M t s kĩ thu t bi n đ i Bài toán t i ưu trong th c t thư ng không có d ng chu n m c như đã nói ph n trên, tuy nhiên b ng m t s bi n đ i khéo léo, ta có th đưa chúng v d ng chu n m c. Sau đây là m t s kĩ thu t như v y. 1.4.1 Đ ng th c -> B t đ ng th c Ta có th chuy n m t ràng bu c d ng đ ng th c thành 2 ràng bu c b t đ ng th c, và bài toán t i ưu m i v n tương đương v i bài toán ban đ u. Ví d ràng bu c 2x1 + 3x2 − x3 = 5 là tương đương v i: 2x1 + 3x2 − x3 ≤ 5 2x1 + 3x2 − x3 ≥ 5 5
  • 6.
    1.4.2 B tđ ng th c -> đ ng th c Cũng có th th c hi n theo chi u ngư c l i b ng cách s d ng thêm bi n ph . Ví d ràng bu c 2x1 + 3x2 − x3 ≤ 5 là tương đương v i 2x1 + 3x2 − x3 + w1 = 5 w1 ≥ 0 M i w1 như th g i là m t bi n l ng (slack variable), v i m i đ ng th c ta s thêm m t bi n như th , và bài toán m i s v n tương đương v i bài toán ban đ u. 1.4.3 Bi n t do -> bi n ràng bu c Gi s trong bài toán t i ưu có m t bi n t do (không b ràng bu c b i b t kì đ ng th c/b t đ ng th c nào), ta v n có th vi t ràng bu c cho chúng b ng cách thêm bi n ph . Gi s y1 là bi n t do (giá tr c a nó bi n thiên trong kho ng −∞ đ n ∞), ta có th vi t: y1 = y2 − y3 y2 , y3 ≥ 0 1.4.4 C c đ i (Mamimize) -> c c ti u (minimize) D ng chu n m c ch quan tâm đ n tìm c c ti u, nhưng ta bi t r ng max f (x) = − min −f (x), do đó có th chuy n 1 bài toán t i ưu c c đ i thành c c ti u m t cách d dàng. Ch ng h n đ tìm max 6x1 + 5x2 − 3x3 , ta tìm y = min −6x1 − 5x2 + 3x3 , sau đó giá tr c c đ i s là −y. 1.5 T i ưu toàn c c và t i ưu c c b 1.6 Modelling language: AMPL 1.7 Conclusion 6
  • 7.
    2 Unconstrained NonlinearOptimization - Thu t toán Line search Cho m t bài toán t i ưu phi tuy n không ràng bu c (Unconstrained Nonlinear Optimization Problem - UNOP) min f (x) x∈Rn ∞ tư tư ng chung là ta s phát sinh dãy xk k=0 sao cho nó h i t v l i gi i t i ưu x∗ . Theo đó, thu t toán t ng quát là: Như v y có 3 v n đ c n làm rõ trong thu t toán này là: • Stopping criterium nào là phù h p, nghĩa là ph i nghĩ ra đi u ki n đ quy t đ nh lúc nào thì nên d ng thu t toán, • Tìm descent direction như th nào, và cu i cùng • Tìm steplength như th nào. Bư c kh i t o cũng r t quan tr ng, vì nó có th quy t đ nh k t qu cu i cùng c a thu t toán. Tuy nhiên thông thư ng không có cách nào đ bi t kh i t o như th nào là t t, do đó ngư i ta s th c hi n thu t toán nhi u l n v i các đi m kh i t o khác nhau, và ch n k t qu t t nh t. Ba ph n còn l i c a bài s tương ng v i 3 v n đ đã nêu trên. Algorithm 2.1 Thu t toán t ng quát cho UNOP 1. Kh i t o xk ∈ X = Rn , k = 0. 2. N u xk tho đi u ki n d ng (stopping criterium) nào đó thì gán x∗ = xk và d ng. 3. N u xk không th a đi u ki n trên thì t nh ti n xk đ n m t đi m m i t t hơn (th a mãn hàm m c tiêu t t hơn đi m hi n t i). C th ta s : a) Tìm hư ng gi m (descent direction) dk . b) Tìm đ dài bư c (steplength) αk . c) C p nh t xk+1 := xk + αk dk , k := k + 1. Quay l i bư c 2. 7
  • 8.
    2.1 Stopping criterium Có3 đi u ki n sau: • Đi u ki n c n c a đ o hàm b c nh t: N u x∗ là đi m t i ưu c c b và f (x) kh vi liên t c trên m t lân c n m c a x∗ thì f (x∗ ) = 0. • Đi u ki n c n c a đ o hàm b c 2: N u x∗ là đi m t i ưu c c b , f (x) và 2 f (x) kh vi liên t c trên m t lân c n m c a x∗ thì f (x∗ ) = 0 và ma tr n Hessian 2 f (x∗ ) là ma tr n positive semidefinite. • Đi u ki n đ c a đ o hàm b c 2: Gi s 2 f (x) liên t c trên m t lân c n m c a x∗ và f (x∗ ) = 0 và ma tr n Hessian 2 f (x∗ ) là positive definite. Khi đó x∗ là đi m t i ưu ch t (strict local minimizer ) c a f (x). Nói m t cách ng n g n (b qua các đi u ki n): • N u f (x∗ ) = 0 thì x∗ là t i ưu c c b . • N u f (x∗ ) = 0 và 2f (x∗ ) là positive semidefinite thì x∗ là t i ưu c c b . • N u f (x∗ ) = 0 và 2f (x∗ ) là positive definite thì x∗ là t i ưu c c b ch t. Trong các đi u ki n d ng ta ch xét đ n t i ưu c c b . Trong trư ng h p đ c bi t n u f (x) là hàm l i (convex) thì m i đi m t i uu c c b đ u là t i ưu toàn c c. Hơn n a n u mf (x) v a l i v a kh vi thì m i đi m x∗ làm đ o hàm b c nh t b ng 0 đ u là đi m t i ưu toàn c c. V lí thuy t, đ xét 1 hàm có l i hay không, ta xét tính ch t c a ma tr n Hessian (đ o hàm b c 2) trên toàn mi n xác đ nh. Theo đó f (x): • là hàm l i (convex) n u ma tr n Hessian là positive semidefinite t i m i đi m trên mi n xác đ nh. • là hàm l i ch t (strict convex) n u ma tr n Hessian là positive definite t i m i đi m trên mi n xác đ nh. • là hàm lõm (concave) n u −f (x) là hàm l i. • là hàm lõm ch t (strict concave) n u −f (x) là hàm l i ch t. Rõ ràng vi c ki m tra trên toàn mi n xác đ nh là b t kh thi, tr vài trư ng h p đơn gi n như các hàm b c 2 thì s có Hessian là h ng v.v... Trong trư ng h p t ng quát, khi vi c tính đ o hàm b c nh t và b c 2 g p khó khăn vì không tìm đư c công th c đ o hàm tư ng minh, ho c do gi i h n đ chính xác c a máy tính... thì các đi u ki n trên tr nên khó ki m tra. Khi đó ta ph i dùng m t s đi u ki n th c t . Thu t toán s d ng n u: 8
  • 9.
    Algorithm 2.2 Nhc l i v tr riêng. Nh c l i r ng ma tr n vuông M ∈ Rn×n g i là: • negative-semidefinite n u z T M z ≤ 0 v i m i vector z ∈ Rn khác 0. • negative-definite n u z T M z < 0 v i m i vector z ∈ Rn khác 0. • positive-definite n u z T M z > 0 v i m i vector z ∈ Rn khác 0. • positive-semidefinite n u z T M z ≥ 0 v i m i vector z ∈ Rn khác 0. • indefinite n u nó không ph i negative-semidefinite cũng không ph i positive- semidefinite. Nhân ti n cũng nh c l i m i quan h gi a ma tr n Hermitian (là các ma tr n có chuy n v liên h p b ng chính nó M = M ∗ ) và tr riêng. Ma tr n Hermitian M là: • negative-semidefinite khi và ch khi các tr riêng đ u không dương λi ≤ 0. • negative-definite khi và ch khi các tr riêng đ u âm λi < 0. • positive-definite khi và ch khi các tr riêng đ u dương λi > 0. • positive-semidefinite khi và ch khi các tr riêng đ u không âm λi ≥ 0. • đ l n tương đ i c a đ o hàm b c nh t t i xk đ nh max xk , 1 i 1 max f xk ≤ ε3 1≤i≤n max {|f (xk )| , 1} i ho c xk thay đ i m t kho ng đ nh xk+1 − xk i i 2 max ≤ ε3 1≤i≤n max xk , 1 i v i ε là đ chính xác c a máy (hàm eps trong MATLAB). 2.2 Descent direction Đ nh nghĩa: dk ∈ Rn là m t hư ng gi m (descent direction) c a m t bài toán UNOP t i xk n u: ∃¯ ∈ R+ |∀α ∈ [0, α] : f xk + αdk < f xk α ¯ 9
  • 10.
    Hình 2.1: Descentdirection Ý tư ng c a đ nh nghĩa này đư c minh ho trong hình trên. V i hàm f (x) như trong hình, t i v trí xk , khi đi theo hư ng dk thì giá tr c a f (x (α)) s gi m d n. M c dù đ n m t lúc nào đó thì giá tr c a f (x (α)) l i tăng, và còn có th l n hơn f (x), nhưng vì ta có th tìm đư c α theo như đ nh nghĩa nên dk là hư ng gi m c a f (x) t i xk . ¯ Đ nh nghĩa này rõ ràng r t khó áp d ng do có các toán t t n t i và v i m i. Trong th c t , ta dùng các đi u ki n đơn gi n hơn đ xét dk có ph i là descent direction hay không, theo đó n u: • f (x) d < 0 thì d là hư ng gi m (descent direction) c a f (x) t i x, • f (x) d > 0 thì d là hư ng tăng (ascent direction) c a f (x) t i x, • f (x) d = 0 thì tùy thu c vào ma tr n Hessian c a f (x) t i x. Như v y ta ch c n xét tích vô hư ng c a đ o hàm b c nh t t i x v i vector d đ ki m tra đi u ki n trên. Ý tư ng này đư c minh h a trong hình sau. Hàm f (x) v i đi m t i ưu t i x∗ đư c kh o sát. T i x = (0, 0)T , các mũi tên màu đ là các hư ng tăng, màu xanh lá là hư ng gi m. Tinh ý thì ta s th y r ng do f (x) d là tích vô hư ng nên n u góc gi a f (x) và d l n hơn π thì tích vô hư ng âm, d là hư ng gi m. Đây là nh n xét quan tr ng, 2 s có d p ta tr l i v i nó. Như v y cho trư c m t vector d, ta đã có cách đ ki m tra nó có ph i là descent direction không. Nhưng v n đ là t i đi m xk b t kì, làm sao đ tìm hư ng gi m dk ? Ta có các phương pháp sau: • S d ng đ o hàm b c nh t: – Steepest descent (còn g i là gradient method ): dk = − f xk . – Conjugate Gradient: dk = − f xk + β k dk−1 . 10
  • 11.
    Hình 2.2: Descentdirection: đi u ki n đ – Quasi-Newton: dk = −Bk f xk , trong đó các Bk là ma tr n đ i x ng, positive definite. • S d ng đ o hàm b c 2: −1 – Phương pháp Newton: dk = − 2f xk f xk Tính ch t c a m i phương pháp s đư c trình bày chi ti t sau. 2.3 Steplength: Thu t toán line search Như v y t i đi m xk ta xác đ nh đư c hư ng gi m dk , do đó xk+1 ph i n m trên n a đư ng th ng x (α) = xk + αdk , (α > 0). V n đ là ta ph i xác đ nh xem ta c n đi xa bao nhiêu trên n a đư ng th ng này, nghĩa là ph i xác đ nh đ dài bư c t t nh t α∗ . Line search là thu t toán th c hi n vi c này, và rõ ràng b n thân line search cũng là m t bài toán t i ưu: α∗ = arg min {f (x + αd) |α ≤ 0} S dĩ ta c c ti u f (x + αd) là vì không nh ng ta mu n tìm α t t nh t, mà còn mu n thu t toán k t thúc nhanh nh t có th . Ta có th gi i chính xác bài toán line search (g i là exact line search) b ng cách l y đ o hàm c a f (x (α)) đ tìm giá tr c a α t i đi m c c tr . Ch ng h n xét l i ví d trong hình 2: minx∈Rn f (x) = 0.875x2 + 0.8x2 − 350x1 − 300x2 1 2 11
  • 12.
    Algorithm 2.3 Thut toán backtracking line search 1. Đ nh nghĩa tiêu chu n ch p nh n (acceptability ) cho αk . 2. Đ t α := αmax , bư c th đ u cho α. 3. L p cho đ n khi α th a tiêu chu n ch p nh n a) B ng cách nào đó (chia đôi, gi m d n, n i suy...) tìm bư c th m i cho α sao cho α < αmax . 4. 4. Đ t αk := α. T i x = (0, 0)T , hư ng gi m (tính theo steepest descent) là d = − f (x) = (350, 300)T . Ta có th ki m tra f (x) d < 0 nên d là hư ng gi m c a f (x) t i x. Ta có: f (x (α)) = f (x + αd) = 179187.5α2 − 212500α, và ∂f (x(α)) ∂α = 0 ⇔ α∗ = 0.5939 Như v y ta đã ch n đư c αk và có th ti p t c bư c 3.c trong 2.1. Tuy nhiên trong nhi u trư ng h p, vi c tính đ o hàm c a f (x (α)) là b t kh thi nên ta c n cách khác đ tìm α∗ , và đó chính là n i dung c a thu t toán inexact line search. M c tiêu c a line search là xác đ nh x p x αk ≈ arg min f xk + αdk |α ≥ 0 sao cho nó làm gi m đ l n c a f (x), ti n g n hơn v c c ti u, đ ng th i không t n quá nhi u chi phí tính toán. Trong bư c 3, đ tìm bư c th m i cho α, ta có th : • Chia α cho m t h ng s k nào đó, như v y các giá tr c a α l n lư t là αmax , αmax , αmax · · · k k2 Đ n khi nào th a đi u ki n thì ng ng. • Tr d n α cho m t h ng s c nào đó, các giá tr c a α l n lư t là αmax , αmax − c, αmax − 2c · · · • Dùng m t hàm nào đó đ n i suy giá tr c a α. Thông thư ng ta s dùng m t hàm b c 2 g (α) = aα2 + bα + c. Nh n xét r ng  g (0)  = f xk g (0) = f xk dk  g (αmax ) = f xk + αmax dk  ta có 3 phương trình đ tìm các h s a, b và c c a g (α). Sau khi có công th c hàm g (α) thì có th ch n α b t kì trong đo n [0, αmax ]. M t ví d cu i bài s minh h a cách làm này. M nh ghép cu i cùng còn thi u c a thu t toán là tiêu chu n ch p nh n trong 2.3. Ngư i ta hay dùng tiêu chu n Wolfe, còn g i là tiêu chu n Armijo-Goldstein. Tiêu chu n này g m 2 b t phương trình sau: 12
  • 13.
    Hình 2.3: Minhh a tiêu chu n Armijo-Goldstein f xk + αdk ≤ f xk + c1 f xk dk .α f xk + αdk dk ≥ c2 f xk dk v i c1 , c2 là các h ng s th a 0 < c1 < c2 < 1. Hình 3 minh h a các tiêu chu n này. Đ th c a hàm Φ (α) = f xk + αdk (v trái c a đi u ki n th nh t) đư c v trong hình. G c t a đ là t i v trí α = 0. Đư ng màu cam là đ th v bên ph i c a đi u ki n th nh t. Do đó ý nghĩa c a tiêu chu n th nh t là ch nh ng α n m trong đo n màu cam đư c ch n. Tương t ch nh ng α n m trong đo n màu vàng m i đư c ch n theo tiêu chu n th 2. Cu i cùng ph n giao s là nh ng α th a c 2 tiêu chu n trên. Ta s làm rõ line search b ng m t ví d . 2.4 Ví d Cho hàm f (x) = x3 + x1 x2 + 2x21 . 1 x 1. T i đi m xk = [1 1]T , ki m tra dk = [0 − 1]T có ph i là hư ng gi m c a f (x) không. N u không hãy tìm m t hư ng gi m th a đi u ki n. Ta có f (x) = 3x2 + x2 + x2 1 2 x1 − 2x21 ⇒ f xk = 6 −1 x 2 0 Vì f xk dk = 6 −1 = 1 > 0 nên dk là hư ng tăng c a f (x) t i xk (ch −1 không ph i hư ng gi m). T −1 Có th ch n hư ng gi m c a f (x) t i xk là dk = −1 0 vì f xk dk = 6 −1 . = 0 −6 < 0 13
  • 14.
    2. Th chi n bư c đ u tiên c a thu t toán line search t i xk theo hư ng dk b ng phương pháp n i suy b c 2, các tham s αmax = 1, c1 = 0.01, c2 = 0.5. T T Line search t i xk = 1 1 v i dk = −1 0 , αmax = 1, c1 = 0.01, c2 = 0.5. Ta có: f xk = 4, f xk = 6 −1 , 0 f xk dk = −6, f xk + αmax dk = f = 0. 1 N i suy b c 2: hàm b c 2 c a α có d ng g (α) = aα2 + bα + c và th a:   g (0)  = f xk c = 4  g (0) = f x k dk ⇔ b = −6   g (αmax ) = f xk + αmax dk a =2   3 V y g (α) = 2α2 − 6α + 4 và g (αg ) = 4αg − 6 = 0 ⇔ αg = 2 . Ta có th ch n αg = min 3 , αmax = 1. 2 Ki m tra tiêu chu n Armijo-Goldstein v i αg b ng MATLAB: f u n c t i o n [ f ] = prob6_func ( x ) f = x ( 1 ) ^ 3 + x ( 1 ) ∗ x ( 2 ) + 2∗ x ( 1 ) / x ( 2 ) ; end f u n c t i o n [ g ] = prob6_grad ( x ) g = zeros (1 , 2); g ( 1 , 1 ) = 3∗ x ( 1 ) ^ 2 + x ( 2 ) + 2/ x ( 2 ) ; g ( 1 , 2 ) = x ( 1 ) − 2∗ x ( 1 ) / ( x ( 2 ) ^ 2 ) ; end >> xk = [ 1 ; 1 ] ; dk = [ −1; 0 ] ; >> alpha_g = 1 ; >> c1 = 0 . 0 1 ; c2 = 0 . 5 ; >> l 1 = prob6_func ( xk+alpha_g ∗ dk ) ; >> r 1 = prob6_func ( xk)+alpha_g ∗ c1 ∗ ( prob6_grad ( xk ) ∗ dk ) ; >> l 1 <= r 1 ans = 1 >> l 2 = prob6_grad ( xk+alpha_g ∗ dk ) ∗ dk ; >> r 2 = c2 ∗ ( prob6_grad ( xk ) ∗ dk ) ; >> l 2 >= r 2 ans = 1 V y αg = 1 th a tiêu chu n A-G. 14
  • 15.
    2.5 K tlu n Bài này t ng quan v các bài toán t i ưu phi tuy n không ràng bu c, đ ng th i làm rõ thu t toán line search như m t bư c quan tr ng trong thu t toán chung. Tuy nhiên bài này chưa trình bày rõ các phương pháp ch n hư ng gi m như Steepest Descent hay Conjugate Gradient. Đ có th đánh giá, l a ch n gi a các phương pháp này, ta c n bi t cách đánh giá m c đ h i t c a m t thu t toán t i ưu. Bài ti p theo trong series Optimization s nói v h i t c c b , h i t toàn c c, đ nh lí Zoutendijk, h i t tuy n tính, siêu tuy n tính... Đây s là cơ s đ đánh giá các phương pháp ch n hư ng gi m mà ta đã nh c t i trong bài này. 15