Phương pháp vượt khe hướng phân giác giải bài toán quy hoạch phi tuyến có ràng buộc
Trong bài báo này, dựa trên cơ sở nguyên lý vượt khe chúng tôi xây dựng thuật toán giải bài toán Quy hoạch phi tuyến có ràng buộc: Thuật toán vượt khe hướng phân giác. định lý hội tụ được nêu ra và chứng minh. Các ví dụ minh họa được trình bày.
Bạn đang xem tài liệu "Phương pháp vượt khe hướng phân giác giải bài toán quy hoạch phi tuyến có ràng buộc", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
Tóm tắt nội dung tài liệu: Phương pháp vượt khe hướng phân giác giải bài toán quy hoạch phi tuyến có ràng buộc
241 TẠP CHÍ KHOA HỌC, ðại học Huế, Số 65, 2011 PHƯƠNG PHÁP VƯỢT KHE HƯỚNG PHÂN GIÁC GIẢI BÀI TOÁN QUY HOẠCH PHI TUYẾN CÓ RÀNG BUỘC Bùi Minh Trí, Trường ðại học Bách khoa Hà Nội Nguyễn Vũ Tiến, ðại học Huế TÓM TẮT Trong bài báo này, dựa trên cơ sở nguyên lý vượt khe chúng tôi xây dựng thuật toán giải bài toán Quy hoạch phi tuyến có ràng buộc: Thuật toán vượt khe hướng phân giác. ðịnh lý hội tụ ñược nêu ra và chứng minh. Các ví dụ minh họa ñược trình bày. 1. Nguyên lý tối ưu hóa vượt khe và hướng tìm kiếm 1.1. Nguyên lý tối ưu hóa vượt khe [3] Xét bài toán cực tiểu hóa có ràng buộc: min{J(x)│ gi(x) ≤ 0; i = 1, ,m ; x ∈Rn} (1.1) trong ñó: J(x) là hàm mục tiêu bị chặn dưới và thỏa mãn ñiều kiện: ( )lim x J x →∞ = ∞ (1.2) các hàm gi (x) là các hàm lồi. Thuật toán tối ưu hóa phi tuyến giải bài toán (1.1) có phương trình lặp như sau: xk+1 = xk + αk+1 S k , k = 0, 1, (1.3) trong ñó: xk, xk+1 là ñiểm ñầu và ñiểm cuối của bước lặp thứ k+1; αk+1 là ñộ dài bước; Sk là vecto chỉ hướng thay ñổi các biến trong không gian Rn. Nếu αk+1 ñược xác ñịnh theo nguyên lý vượt khe thì ñược gọi là bước vượt khe, còn phương trình (1.3) gọi là thuật toán vượt khe [3]. Nguyên lý vượt khe phát biểu rằng ñiểm ñầu và ñiểm cuối của mỗi bước lặp tối ưu hóa luôn luôn nằm về hai phía ñiểm cực tiểu của hàm mục tiêu xét dọc theo hướng chuyển ñộng tại bước ñó. Nói cách khác, nếu tại ñiểm ñầu hàm mục tiêu thay ñổi theo chiều giảm, thì ñến ñiểm cuối nó phải có xu hướng tăng. Quỹ ñạo tìm kiếm tối ưu theo nguyên lý vượt khe tạo ra bức tranh hình học, tựa như ñiểm tìm kiếm tại mỗi lần lặp ñều bước vượt qua lòng khe của hàm mục tiêu. ðể cụ thể hóa nguyên lý vượt khe, ta xét hàm một biến sau ñối với mỗi bước lặp k+1: 242 h(α) = J(xk + αsk) (1.4) Giả sử sk là hướng giảm hàm mục tiêu tại ñiểm xk. Theo ñiều kiện (1.2) tồn tại một giá trị α* > 0 bé nhất sao cho h(α) ñạt cực tiểu: α* = 0 min ( )arg h α α > (1.5) Nếu h(α) khả vi liên tục, ta có ñịnh nghĩa bước vượt khe như sau: ( ) ( ) ( )' 0, 0= > ≤v vh h hα αα α (1.6) trong ñó, αv là bước vượt quá, tức là bước vượt khe. ðồ thị biến thiên của hàm h(α), khi quỹ ñạo tìm kiếm ñiểm tối ưu thay ñổi tử ñiểm ñầu xk ñến ñiểm cuối xk+1 thể hiện ở hình 1. Ta thấy rằng, khi giá trị α tăng dần từ 0 vượt qua ñiểm cực tiểu α* của h(α) tới giá trị αv, quỹ ñạo tối ưu hóa tương ứng tiến dọc theo hướng sk theo quan hệ xk+1 = xk + αsk, thực hiện một ñộ dài bước α = αv ≥ α*. ðồ thị này cũng chỉ ra rằng, xét theo hướng chuyển ñộng, thì hàm mục tiêu thay ñổi theo chiều giảm từ ñiểm xk, còn khi ñạt tới ñiểm xk+1 thì nó ñã chuyển sang xu hướng tăng. Trước ñây, người ta dùng phổ biến bước xác ñịnh theo ñiều kiện (1.5), nên ñiểm tìm kiếm thường bị rơi ngay vào lòng khe và thuật toán tối ưu hóa tương ứng bị tắc lại ở ñó. Còn ở ñây, quá trình tối ưu hoá theo ñiều kiện (1.6) không cho phép ñiểm tìm kiếm rơi vào lòng khe trước khi ñạt lời giải tối ưu, ñồng thời nó vẽ ra một quy ñạo luôn luôn vượt lòng khe. ðể quá trình lặp có hiệu quả hội tụ cao và ổn ñịnh, ñiều kiện (1.6) ñược thay bởi: αv > α* = 0 min ( )arg h α α > , h(αv) – h* ≤ λ[h0 – h*] (1.7) trong ñó, 0 < λ < 1 gọi là hệ số vượt; h* = h(α*); h0 = h(α0). h0 h (αv) h* 0 α* αv α Hình 1. Xác ñịnh bước vượt khe αv; h(α) = J(xk + αsk) Nếu thay h* trong (1.7) bởi ước lượng h ≈ h*, h > h* thì ta vẫn nhận ñược bước vượt khe theo ñịnh nghĩa. Vì vậy, ñể ñơn giản hóa việc lập trình nên lấy giá trị bé nhất 243 tính ñược của h một cách ñơn giản trong mỗi bước lặp tương ứng, mà không cần xác ñịnh chính xác h* . ðiều ñó ñồng thời làm giảm ñáng kể số lần tính giá trị hàm mục tiêu. Thuật toán xác ñịnh bước vượt khe α (xem[3]) Input: ñiểm x, hướng tìm kiếm s. Output: ñộ dài bước vượt khe α. Các tham số: a = 0.5, ñộ chính xác ε Bước 1: Giả sử β = a, tính h(β) = h(x + βs). Nếu h(β) ≥ h(0) thì α = 0, β = a, chuyển sang bước 2. Nếu không thì lặp α = β, β = 1.5β cho ñến khi h(α) ≤ h(β), rồi chuyển sang bước 2. Bước2: Nếu |β – α| ≤ ε, ε > 0, thì chuyển sang bước 3. Nếu không, ñặt θ = α + γ (β – α), trong ñó tham số γ có thể ñặt là 0,1. Nếu h (θ) ≤ h (α) thì ñặt α = θ và quay lại bước 2. Nếu không thì ñặt β = θ và quay lại bước 2. Bước 3: Gán bước vượt khe là β. 1.2. Hướng tìm kiếm Hướng tìm kiếm gọi là cải tiến ñược nếu chuyển dịch theo hướng ñó với ñộ dài nhất ñịnh dẫn ñến giảm giá trị hàm mục tiêu cần cực tiểu hóa (hay tăng hàm mục tiêu cần cực ñại hóa). Hầu hết các thuật toán tối ưu hóa hàm trơn xây dựng trên cơ sở ñiều kiện này, nghĩa là quá trình chuyển dịch luôn thỏa mãn ñiều kiện ñơn ñiệu của quá trình tìm kiếm tối ưu. Khi ||∇ J(x)|| ≠ 0, nếu véc tơ s ∈ Rn thoả mãn ñiều kiện ñơn ñiệu thì bất ñẳng thức sau ñược nghiệm ñúng: ( ),s J x∇ < 0 (1.8) ðiều kiện âm của tích vô hướng (1.8) giữa hai véc tơ chuyển ñộng s và gradien của hàm mục tiêu cho thấy rằng góc tạo bởi chúng là một góc tù (>900) hay nói cách khác, véc tơ hướng tìm kiếm luôn tạo với ñối gradient (anti-gradient) một góc nhọn khi xét bài toán cực tiểu hóa. Mặt khác ta biết rằng véc tơ gradient của hàm trơn tại ñiểm bất kỳ trong không gian biến số luôn luôn vuông góc với bề mặt mức tại ñiểm ñó. Vì vậy, hướng cải tiến ñược luôn luôn hướng vào phía trong của mặt mức này. ðó là hướng trên mỗi bước lặp cực tiểu hóa mà ñiểm tìm kiếm trượt theo. Sau ñây ta sẽ xét hướng chuyển ñộng cơ bản ñược sử dụng trong thuật toán vượt khe. 244 Hướng phân giác: giữa hai véc tơ a và b là hướng của véc tơ d cho bởi công thức: a b d a b = + (1.9) trong ñó, àa v b là ñộ dài của véc tơ a, b. Nhận xét: Nếu a, b không cùng phương thì véc tơ d tạo với a, b một góc nhọn. Do ñó nếu thay a, b bởi các véc tơ ñối gradient của hàm mục tiêu cực tiểu hóa thì véc tơ d sẽ luôn luôn là hướng cải tiến ñược. Trên cơ sở khái niệm hướng này ta có thể xây dựng thuật toán cực tiểu hóa ñơn giản, gọi là thuật toán phân giác vượt khe. Thuật toán này ñặc biệt thích hợp trong những hàm mục tiêu có dạng lòng khe dài. Trong nhiều trường hợp nhanh hơn hẳn thuật toán gradient kiểu hạ nhanh nhất. 2. Phương pháp vượt khe giải bài toán tối ưu phi tuyến có ràng buộc Sau ñây trình bày biến thể của các phương pháp vượt khe trong [1, 2] ñể giải bài toán tối ưu phi tuyến có ràng buộc min { J ( x ) | gi ( x ) ≤ 0; i = 1,, m; x∈ Rn } trong ñó , J(x) là hàm mục tiêu bị chặn dưới và thoả mãn ñiều kiện: lim ( ) x J x →∞ = ∞ các hàm gi ( x ) là các hàm lồi. 2.1. Sơ ñồ của phương pháp vượt khe cho bài toán tối ưu có ràng buộc Sự kết hợp qui tắc ñiều chỉnh bước theo nguyên lý vượt khe với hướng di chuyển phù hợp với ñặc trưng của hàm mục tiêu dạng lòng khe tạo thành phương pháp tối ưu hóa vượt khe. Trong trường hợp có ràng buộc, tại mỗi bước lặp nếu bước vượt khe ra khỏi miền ràng buộc thì ta ñiều chỉnh lại bước di chuyển sao cho phương án mới không vượt ra ngoài miền ràng buộc gọi là bước vượt khe hiệu chỉnh. Sự kết hợp quy tắc ñiều chỉnh bước theo nguyên lý vượt khe hiệu chỉnh và hướng di chuyển phù hợp với các hàm có dạng lòng khe tạo thành phương pháp vượt khe giải bài toán tối ưu có ràng buộc. Với các thông số khởi tạo như sau: γ = 0,1, a = 0,5 Bước lặp thứ 1: S0 = − ∇ J ( x0 ). Xác ñịnh bước vượt khe λ0 theo hướng di chuyển S0. Quá trình tối ưu lặp theo phương pháp vượt khe ở bước thứ k+1 gồm 2 giai ñoạn chính: Giai ñoạn 1. Tính gradient ∇ J (xk) và xác ñịnh hướng cải tiến ñược Sk (theo 245 hướng ñó hàm mục tiêu cực tiểu hóa giảm ). Ở ñây có hai khả năng: + Nếu xk là một ñiểm trong của miền ràng buộc thì ta di chuyển theo hướng phân giác; + Nếu xk là một ñiểm nằm trên biên của miền ràng buộc thì do ñiều kiện Karush - Kuhn - Tucker không ñược thỏa mãn nên hệ sau chắc chắn có nghiệm: ( ) ( ) ( ) , 0 , 0, k k k k k i J x S g x S i I x ∇ 〈 ∇ 〈 ∈ I ( xk ) = { i ∈{ 1,, m }| gi ( xk ) = 0 } (xem [3, 4]) Bằng việc giải hệ trên ta sẽ có hướng di chuyển cải tiến ñược Sk. Giai ñoạn 2. Thực hiện di chuyển ñiểm tìm kiếm theo hướng Sk cho ñến khi ñạt tới sườn dốc lên của khe. Khi ñó ñộ dài bước thoả mãn ñiều kiện (1.5) và (1.6). Nếu ñộ dài bước vượt khe vượt ra khỏi miền ràng buộc thì ñiều chỉnh về một ñiểm trên biên của miền ràng buộc với bước di chuyển ñiều chỉnh là αk+1. Kết thúc bước lặp k+1 ta nhận ñược phương án mới: xk+1 = xk + αk+1S k Quá trình lặp tiếp diễn cho ñến khi thoả mãn các ñiều kiện dừng ñã ñịnh trước. Với hàm mục tiêu trên ta có thể dùng một trong các ñiều kiện sau ñây: ðiều kiện Karush - Kuhn - Tucker: ( ) ( ) ( )1 2 3, ,+ +∇ ≤ − ≤ − ≤k k n k k n kJ x x x J x J xε ε ε Cần nhấn mạnh rằng chiến lược tìm kiếm tối ưu theo nguyên lý vượt khe tạo ra khả năng lớn cho các phương pháp vượt khe nghiên cứu tính chất hàm mục tiêu tại vùng khe của nó. Thuật toán tương ứng có ñược khả năng thích nghi xác ñịnh chiến lược hiệu quả nhất tiến nhanh ñến ñiểm tối ưu mà không bị rơi vào khe ở các bước trung gian. Qui tắc tìm bước vượt khe theo ñiều kiện (1.8) rất ñơn giản về mặt thực hiện, thậm chí có thể tính bằng tay và cho phép dễ dàng áp dụng cho quá trình tối ưu hóa tự ñộng trên hệ thống thời gian thực. 2.2. Thuật toán vượt khe hướng phân giác và tiêu chuẩn hội tụ 2.2.1. Thuật toán Gọi C = { x | gi ( x ) ≤ 0 }, int C ≠ ∅ . Giả sử ñã chọn ñược ñiểm x0 ∈ C, dãy ñiểm cực tiểu hóa xây dựng theo thuật toán vượt khe phân giác có dạng: xk+1 = xk + αk+1S k, k = 0,1, Trong ñó, αk+1 là bước vượt khe có ñiều chỉnh, Sk là véc tơ hướng chuyển ñộng của ñiểm tìm kiếm trên bước thứ k + 1. Hướng này ñược xác ñịnh theo qui tắc sau: 246 Hình 2. Sơ ñồ của các phương pháp vượt khe có ràng buộc Bắt ñầu 0),(, 00 =∈ kxJCx Kiểm tra ñiều kiện tối ưu Dừng Thỏa mãn Xác ñịnh hướng di chuyển Sk Hướng cải tiến ñược Xác ñịnh bước vượt khe vkk αα =−1 Kiểm tra các ràng buộc Thỏa mãn ðiều chỉnh bước di chuyển ñạt tới biên của miền ràng buộc Chuyển tới phương án mới kkkk S11 ++ += ααα Vi phạm 247 + Nếu xk+1 là một ñiểm trong của C, thì: k k kk SxJS 1 11 )( + ++ +−∇= β k ∈ I1 ∨ ( )( 1k kS J xγ += ∇ ; γ > 0 ) k ∈ I2 ∧ ( )( )1 , 0k kJ x S+∇ ≤ (2.1) k ∈ I2 ∧ ( )( 1 ,k kJ x S+∇ > 0 ) trong ñó, I1 là tập các chỉ số k = 0, r, 2r,, với r là số nguyên dương cho trước, gọi là chu kỳ khôi phục; I2 = { 0, 1, 2,} \ I1. + Nếu xk là một ñiểm trên biên của C, thì Sk ñược xác ñịnh từ các hệ thức: ( ) ( ) ( ) ( ) { } ( ){ } , 0 , 0, 1,..., 0 k k k k k i k k i J x S g x S i I x I x i m g x ∇ < ∇ < ∈ = ∈ = (2.2) Vì xk chưa là ñiểm tối ưu nên theo ñiều kiện Karush – Kuhn – Tucker hệ có nghiệm. ðể tăng ñộ bám khe của hàm mục tiêu, qua mỗi chu kì nhất ñịnh hướng chuyển ñộng ñược khởi tạo lại bằng cách cho hệ số lái bằng βk = 0. 2.2.2. Tiêu chuẩn hội tụ của thuật toán. Bổ ñề 1. (Hướng giảm) Giả sử ( ) 0kJ x∇ > khi ñó ta có: ( )0 à , 0> ∇ <k k kS v J x S . Chứng minh: 1. Nếu xk ∈ int C, giả sử ( ) 0kJ x∇ ≠ , ta cần chứng minh rằng Sk ≠ 0. Ta nhận thấy: a. Nếu 1,k I∈ hoặc ( )1k kS J xγ += ∇ thì ( )k kS J x= −∇ . Khi ñó: ( ) 2 , 0k k kS S J x= ∇ 〉 . Vậy Sk ≠ 0. ( ) ( ) ( ) 1 1 21 1 0 2 , + + + + ∇ = ∇ 〈∇ 〉 k k k k k k J x S J x J x S β 248 b. Trong trường hợp 2.k I∈ TH1: Nếu ( ) 1, 0k kJ x S −∇ ≤ , khi ñó, nếu Sk = 0, theo ñịnh nghĩa thuật toán, ta có: ( ) ( ) ( ) ( ) ( ) 2 1 10 , , , 0k k k k k k k kk kJ x S J x J x S J x J x Sβ β − −=− ∇ =− ∇ − + = ∇ − ∇ 〉 Mâu thuẫn, vậy 0kS ≠ . TH2: Nếu ( ) 1, 0k kJ x S −∇ 〉 , giả sử Sk = 0. Khi ñó: ( ) ( ) ( ) ( ) ( ) 2 1 10 , , ,k k k k k k k kk kJ x S J x J x S J x J x Sβ β − −=− ∇ =− ∇ −∇ + = ∇ − ∇ ( ) ( ) ( ) 22 2 1 1 ( ) , 0 22 , , − − ∇∇ = ∇ − ∇ = 〉 ∇ kk k k k k k J xJ x J x J x S J x S Mâu thuẫn, vậy 0kS ≠ . Từ các công thức trên, ta cũng luôn thấy rằng ( ) , 0k kJ x S∇ 〈 . Hay nói cách khác Sk luôn là hướng giảm của hàm ( )J x . 2. Nếu kx C∈∂ , thao ñịnh nghĩa của hướng Sk trong trường hợp này ta có: ( ), 0k kJ x S∇ < ( ), 0, ( )k k kig x S i I x∇ < ∈ { }{ }( ) 1,..., ( ) 0k kiI x i m g x= ∈ = Vậy hiển nhiên ta có ñiều phải chứng minh. Bổ ñề 2. (ðiều kiện vượt khe) Giả sử J(x) có ñạo hàm liên tục và bị chặn dưới và tập hợp M(x0) = { }0( ) ( )x j x j x≤ giới nội. Khi ñó ñiều kiện: ( ) 0 k k kd J x S d α α α α = + > (2.3) luôn luôn ñược thực hiện trong M(x0), M(x0) ⊃ { }( ) 0x J x∇ = . Chứng minh: Theo ñiều kiện của bổ ñề thì J(x), do ñó gk(α ) = J(xk+α Sk) bị chặn dưới và có ñạo hàm liên tục trong En, nên sẽ có ñiểm dừng thuộc M(x0). Giả sử ñiểm dừng ñó là α d. Ta giả thiết phản chứng rằng không tồn tại ñiều kiện (2.3) với α >α d tức là với dα α∀ ≥ ta ñều có bất ñẳng thức: 249 ( ) 0 dk d g d α α α α ≥ ≤ Có nghĩa là gk(α ) không tăng với dα α∀ ≥ . ðiều này dẫn ñến kêt quả là trên khoảng ( ,dα ∞ ) hàm số gk(α ) = J( k kx Sα+ )≤ J(xk)≤ J(x0). Như vậy, nửa ñường thẳng [ ,dα ∞ ) cũng phải thuộc tập hợp M(x 0). Vậy (2.3) tồn tại. Bổ ñề 3. (Tồn tại bước vượt khe) Nếu hàm J(x) có ñạo hàm liên tục, bị chặn dưới thì tồn tại ít nhất một giá trị α > 0 thỏa mãn: ( ) 0k k d J x S d α α + ≥ J( k kx Sα+ )≤ J( 1 k kx Sε+ ) với 1ε > 0 Chứng minh: Kí hiệu gk(α ) = J( k kx Sα+ ), theo yêu cầu của bổ ñề ta phải chứng minh: ( ) 0k d g d α α ≥ ; 1( ) ( )k kg gα ε≥ Do J(x) bị chặn dưới ta giả sử *kα là ñiểm dừng gần nhất của hàm một biến ( )kg α . Chọn 1ε ñủ bé *(0, )kα∈ sao cho: * 1(0) ( ) ( )k k k kg g gε α> > Ta có thể chọn ñược 1ε như vậy vì rằng: 2 1 1 1 1(0) ( ) ( ) ( ) ( ), 0( ) k k k k k k kg g J x J x S J x Sε ε ε ε− = − + = − ∇ + > 0 Do *kα là ñiểm dừng nên tồn tại ñoạn [ * kα , ** kα ] sao cho: * ** 1( ) ( ) ( )k k k k kg g gα α ε≤ ≤ Như vậy, trong ñoạn [ *kα , ** kα ] tồn tại ít nhất một ñoạn [ ],β γ ⊂ [ *kα , **kα ] mà trên ñó hàm ( )kg α không giảm. Vậy, trên ñoạn ñó ta có: ( ) 0k d g d α α ≥ ** 1( ) ( ) ( )k k k kg g gα α ε≤ ≤ ðịnh lý. (Hội tụ) Giả sử J(u) là hàm trơn bị chặn dưới trên C và ( )J u∇ thỏa mãn ñiều kiện Lipshits với hằng số L. Cho x0 C∈ là ñiểm tùy ý ñã chọn, khi ñó tồn tại dãy con của dãy ñiểm {xk} xây dựng theo thuật toán tựa phân giác, hội tụ tới ñiểm tối ưu ñịa phương của J(x), và ( )1lim ( ) ( ) 0k k k J x J x + →∞ − = . 250 Chứng minh: Theo thuật toán TPG và ñiều kiện chọn bước ta có: J(xk ) – J(xk+1 ) = 1 0 ( ),− ∇ +∫ k k kk kJ x t S S dtα α ðặt ( ) ( )k kg J x Sα α= + , theo hệ thức trong giải tích cổ ñiển 1 ' ' 0 ( ) (0) ( ) ( )− = = ∫g g g g t dtα θα α α ). Tiếp tục khảo sát vế phải ra có: 1 0 ( ),k k kk kJ x t S S dtα α− ∇ + =∫ 1 0 , ( ) , ( ) ( ),k k k k k k kk k k kS J x S J x J x t S S dtα α α α= − ∇ + ∇ − ∇ +∫ 1 0 , ( ) ( ) ( ),k k k k k kk k kS J x J x t S J x S dtα α α= − ∇ − ∇ + −∇∫ 1 0 , ( )k k k kk k kS J x L t S S dtα α α≥ − ∇ − ∫ 221 22 0 , ( ) , ( ) 2 k kk k k k k k k k L S S J x L S tdt S J x α α α α= − ∇ − =− ∇ −∫ 2 , ( ) 1 2 , ( ) k k k k k k k SL S J x S J x α α = − ∇ + ∇ sử dụng hệ thức ở TH2 Bổ ñề 1 ta có ( ), ( ) 1 2 , ( ) 1 2 = − ∇ − = − ∇ − k k k kk k k k L S J x S J x L α α α α 1 2 , ( ) 1k k L S J x L ε ε ≥ − ∇ − = + (vì 0 < 1ε ≤ α k≤ 21 ( )Lε + ), (xem [1]) 1 2 2 , ( ) 0k kS J x L ε ε ε = − ∇ > + Từ ñây, kết hợp với Bổ ñề 1 suy ra dãy số { ( )kJ x }, k →∞ ñơn ñiệu giảm. Nhưng vì inf ( ) k n k u E J x ∈ > −∞ nên theo ñịnh lý Bolzano - Weierstrass dãy { ( )kJ x } phải có một giới hạn J* nào ñó và tồn tại một dãy con của {xk} hội tụ ( )1lim ( ) ( ) 0k k k J x J x + →∞ − = . 251 2.2.3. Các ví dụ minh họa Ví dụ 1: 2 2 1 2 2 2 1 2 1 2 ( ) min ( 3) ( 2) 1 , 0 J x x x x x x x = + → − + − ≤ ≥ Phương án tối ưu là * 3( 13 1) 2( 13 1) , (2.167949,1.445299) 13 13 x − − = ≈ J(x*) = ( 13 1)− 2 6.78889≈ Phương án xuất phát: x0 = (3,1.1); J(x0) = 10.21 Bước lặp 1: Hướng di chuyển thoát biên S0 = 0 1.877753 ( ) 0.688509 J x − −∇ = − Bước vượt khe: 1 1.68834375λ = Bước di chuyển ñiều chỉnh : 1 0.112117α = Phương án mới: x1 = 2.7894728 1.0228067 , J(x1)=8.827292 Bước lặp 2: Hướng di chuyển thoát biên: S1 = 0.398322 0.597484 − Bước vượt khe: 2 1.1255625λ = Bước di chuyển ñiều chỉnh : 2 2 1.1255625α λ= = Phương án mới: x2 = 2.341135 1.6953128 , J(x2)=8.355000 Bước lặp 12 thì dừng và kết quả là x2 = 2.168201 1.445554 , J(x2)=6.7907219. Ví dụ 2: Xét bài toán tìm cực tiểu hàm Rosenbrock 2 2 2 1 2 1 2 2 1 2 2 ( ) (1 ) ( ) min 2 0 J x x x x x x x = − + − → + ≤ ≥ 252 ( ) 0.005kJ x∇ ≤ Phương án tối ưu là x* = (1,1) ; J(x*) = 0. Phương án xuất phát: x0 = (-1, 1) ; J(x0) = 4. Giả sử ñiều kiện dừng bước là : ( ) 0.005kJ x∇ ≤ Bước lặp 1: Hướng di chuyển thoát biên S0 = 0.25 0.25 − Bước vượt khe : 1 5.695597λ = Bước di chuyển ñiều chỉnh : 1 3.99915α = Phương án mới : x1 = 0.0002113 0.0002113 − , J(x1)=1.000423 Bước lặp 2: Hướng di chuyển thoát biên S1 = 0.500105 1 Bước vượt khe : 2 0.586139λ = Bước di chuyển ñiều chỉnh : 2 2 0.586139α λ= = Phương án mới : x2 = 0.292920 0.586350 , J(x2)=0.750510 Bước lặp 324: ta có 324 324 0.000965 ( ) 0.000550 ( ) 0.001 0.005 J x J x − −∇ = ∇ = ≤ Do ñó thuật toán dừng và kết quả là x324 = 0.999842 0.99967 , J(x324)=2.4910289E-8. 253 TÀI LIỆU THAM KHẢO [1]. Nguyễn Văn Mạnh, Bùi Minh Trí, Phương pháp tựa phân giác giải bài toán tối ưu hóa không ñiều kiện, Tạp chí Toán học, tập XV, số 4 (12/1987). [2]. Nguyễn Văn Mạnh, Bùi Minh Trí, Method of "clef-overstep" by perpendicular for solving the unconstraines nonlinear optimization problem, Acta Mathematica Vietnamica, vol. 15, N0 2/1990. [3]. Poliak B.T, Nhập môn Tối ưu hóa, Nxb Khoa học, Moskva, 1983 (Tiếng Nga). [4]. Stephen G. Nash, Ariela Sofer, The Linear and Non-linear Programming, The McGraw-Hill Companies, Inc. 1996. [5]. Bùi Minh Trí, Quy hoạch toán học, Nxb Khoa học và Kỹ thuật, Hà Nội, 2001. [6]. Hoàng Tụy, Lý thuyết tối ưu, Nxb Khoa học và Kỹ thuật, Hà Nội, 2003. THE ALGORITHM OF CLEFT OVERSTEP BY BISECTOR DIRECTION FOR SOLVING THE PROBLEM OF NON-LINEAR MATHEMATICAL PROGRAMMING WITH CONSTRAINS Bui Minh Tri Hanoi University of Science and Technology Nguyen Vu Tien, Hue University SUMMARY In this paper, based on the principe of “cleft – overstep” we establish an algorithm for solving the problem of non-linear mathematical programming with constrains: The algorithm of “cleft overstep” by bisector direction. The theorem of convergence is presented and proved. The illustrative examples are presented.
File đính kèm:
- phuong_phap_vuot_khe_huong_phan_giac_giai_bai_toan_quy_hoach.pdf