Ta nhắc lại bài toán qui hoạch lồi: Cho∅ 6= D ⊆ Rn là tập lồi vàf: Rn → R. Bài toán được phát biểu như sau:
min{f(x) | x∈D}. (P)
Thuật toán đạo hàm (hướng giảm sâu nhất) cho trường hợp tậpDlà toàn không gian (bài toán không ràng buộc)
xk+1 := xk −λk∇f(xk),
trong đóλk > 0(độ dài bước) sao chof(xk+1) ≤f(xk). Có hai cách để tính độ dài bước.
a) Quy tắc chính xác:λk =argmin{f(xk+λdk) :λ ≥0}; b) Quy tắc Armijo: Lấy số tự nhiênmk nhỏ nhất của mthỏa mãn
f(xk −ξ/2mf(xk))−f(xk) ≤ −ξ/2mk∇f(xk)k2, (A)
trong đó0< <1, ξ >0cho trước. Thì ta lấyλk =ξ/2mk. Thuật toán dừng lại ở bước lặpknếu∇f(xk) = 0.
Định lí 2.1. (Định lý hội tụ)Giả sửf bị chặn trên và đạo hàm∇f của nó thỏa mãn điều kiện Lipschitz, tức là
∃L >0 : k∇f(x)− ∇f(y)k ≤ Lkx−yk ∀x, y.
khi đó thuật toán đạo hàm với quy tắc Armijo sẽ hội tụ theo nghĩa là ∇f(xk) → 0
khik →+∞.
Chứng minh. Cho dk = −∇f(xk). Theo Định lý giá trị trung bình x ∈ (xk, xk+1)
sao cho f(xk+1)−f(xk) =∇f(x), xk+1−xk. Do đó, từxk+1 =xk−λk∇f(xk), ta có f(xk+1)−f(xk) =λkdk,∇f(x) =−λk∇f(xk)[∇f(xk)− ∇f(xk) +∇f(x)] =−λkk∇f(xk)k2+λk∇f(xk)[∇f(x)− ∇f(xk)] ≤ −λkk∇f(xk)k2+λkk∇f(xk)kk∇f(xk)− ∇f(x)k. (2.3) Sử dụng tính liên tục Lipschitz của∇f vàx∈(xk, xk+1) ta có
k∇f(xk)− ∇f(x)k ≤ Lkxk−xk ≤Lkxk−xk+1k =λkLk∇f(xk)k. (2.4) Từ (2.3) và (2.4), ta cóλk = ξ 2t, do đó f(xk+1)−f(xk) ≤ −λkk∇f(xk)k2+ (λk)2Lk∇f(xk)k2 =−ξ/2tk∇f(xk)k2(1−ξL/2t), ∀t > 0. (2.5) Từ0< <1, ta luôn luôn chọn số tự nhiênt=mnhỏ nhất sao cho
Thì
f(xk+1)−f(xk) ≤ −ξ/2mk∇f(xk)k2, (A)
vớixk+1 =xk−ξ/2m∇f(xk). Do đó tồn tại số tự nhiênmnhỏ nhất thoả mãn (2.6). Chú ý rằng từmlà số tự nhiên nhỏ nhất, trong đó (2.6) được thỏa mãn, ta có
1−ξL/2m−1 < .
Vì vậy
ξ
2m > (1−) 2L .
Thay vào (2.5) ta được
f(xk+1)−f(xk) <−(1−)
2L k∇f(xk)k2. (2.7)
Do đó{f(xk)}là đơn điệu giảm. Theo giả thiếtf bị chặn trên,limf(xk) >−∞. Vì vậy
f(xk+1)−f(xk) →0.
Lấy giới hạn trong (2.7) khik → +∞ta thấy∇f(xk) →0.
Nhận xét 2.1. Ta có thể lấy độ dài bướcλk không phụ thuộck. Trong thực tế có một số tự nhiênm0 như vậy
(1−ξL/2m0) ≥. (2.8)
Thìλk = 1
2m0. Từ0< < 1nênm0luôn tồn tại.
f(xk+1)−f(xk) ≤ −ξ/2tk∇f(xk)k2(1−ξL/2t) ∀t > 0.
Vớit =m0 ta có
f(xk+1)−f(xk) ≤ −ξ/2m0k∇f(xk)k2(1−ξL/2m0). (2.9)
Vớixk+1 =−ξ/2m0∇f(xk). Từ (2.8) và (2.9) có
f(xk+1)−f(xk) ≤ −ξ/2m0k∇f(xk)k2≤ 0. (2.10)
Vì vậy dãy{f(xk)}đơn điệu giảm và do đólimf(xk+1)−f(xk) = 0(vìf bị chặn dưới). Từ (2.10) ta có∇f(xk) → 0.