Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 44 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
44
Dung lượng
1,07 MB
Nội dung
1 Tr-ờng Đại học Vinh KHOA TON - - PHƯƠNG PHáP GIảI BàI TOáN QUI HOạCH LồI KhóA LUậN TốT NGHIệP đại học Vinh -2011 Tr-ờng §¹i häc Vinh KHOA TỐN - - PHƯƠNG PHáP GIảI BàI TOáN QUI HOạCH LồI KhóA LUậN TốT NGHIệP đại học Giáo viên hng dn:Th.S Nguyễn Thị Thanh Hiền Sinh viên thc hin: Ngô Thị Tâm Lp: 48B -To¸n –Tin øng dụng Vinh -2011 Mơc lơc Trang Lời nói đầu Ch-ơng Các kiến thức sở toán qui hoạch lồi 1.1 TËp låi vµ tÝnh chÊt cña tËp låi 1.2 Hµm låi vµ tÝnh chÊt cđa hµm låi 1.3 Bài toán tối -u 1.4 Bài toán qui hoạch lồi 1.5 Thuật toán giải toán qui hoạch lồi 12 Ch-ơng Giải toán qui hoạch lồi ngôn ngữ Visual Basic 19 2.1 Ngôn ngữ Visual Basic 19 2.2 Sử dụng ngôn ngữ VB để viết ch-ơng trình giải toán qui hoạch låi 24 2.3 øng dơng cđa phÇn mỊm “Qui Ho³ch Låi 36 KÕT LUËN 40 TàI LIệU THAM KHảO 41 Lời nói đầu Giải tích lồi đóng vai trò quan trọng việc nghiên cứu lý luận toán học nói chung, toán cực trị tìm ph-ơng án tối -u toán qui hoạch lồi nói riêng Hàm lồi kiến thức giải tích lồi Việc nghiên cứu, tìm hiểu hàm lồi quan trọng cần thiết giải tích lồi Bài toán qui hoạch lồi đà đ-ợc nghiên cứu gần nh- hoàn chỉnh Tuy nhiên việc ứng dụng tin học để giải toán qui hoạch lồi mẻ, đ-ợc nhiều ng-ời quan tâm Vì tác giả đà chọn đề tài Phương pháp giải toán qui hoạch lồi để nghiên cứu Mục đích khóa luận nêu lên số nội dung hàm lồi, gồm định lí, tính chất quan trọng hàm lồi, toán qui hoạch lồi thuật toán Frank-Wolfe để giải toán qui hoạch lồi Sau nhờ kiến thức đ-ợc học Visual Basic, tác giả đà ứng dụng để xây dựng nên ch-ơng trình giải toán qui hoạch lồi thuật toán Frank-Wolfe nhằm giúp giải toán qui hoạch lồi đ-ợc nhanh chóng xác Néi dung cđa khãa ln gåm hai ch-¬ng: Ch-¬ng 1: Các kiến thức sở toán qui hoạch lồi Trong ch-ơng tác giả chia làm phần: - Các kiến thức sở: Trong phần này, tác giả trình bày số khái niệm kết giải tích lồi, toán qui hoạch lồi dạng tổng quát, toán qui hoạch tuyến tính thuật toán đơn hình - Bài toán qui hoạch lồi ph-ơng pháp giải: Trong phần này, tác giả trình bày toán qui hoạch lồi, tính chất thuật toán Frank-Wolfe để giải Ch-ơng 2: Giải toán qui hoạch lồi ngôn ngữ Visual Basic Ch-ơng gồm phần: - Ngôn ngữ Visual Basic: Giới thiệu sơ l-ợc VB, nh- số hàm thủ tục th-ờng đ-ợc dùng VB - Sử dụng ngôn ngữ VB để viết ch-ơng trình giải toán qui hoạch lồi thuật toán Frank-Wolfe Khóa luận đ-ợc thực hoàn thành tr-ờng §¹i häc Vinh, d-íi sù h-íng dÉn khoa häc cđa ThS Nguyễn Thị Thanh Hiền Tác giả xin đ-ợc bày tỏ lòng biết ơn tới cô h-ớng dẫn tận tâm nhiệt tình giúp đỡ tác giả suốt thời gian học tập nghiên cứu Nhân dịp tác giả xin chân thành gửi lời cảm ơn tới PGS.TS Trần Xuân Sinh, ThS L-ơng Xuân Phú bạn bè đà quan tâm góp ý tạo điều kiện giúp đỡ tác giả hoàn thành khóa luận Trong trình hoàn thành, khóa luận chắn không tránh khỏi thiếu sót, tác giả mong thầy cô quí bạn đọc đóng góp ý kiến để luận văn đ-ợc hoàn chỉnh Vinh, tháng năm 2011 Tác giả Ch-ơng Các kiến thức sở toán qui hoạch lồi 1.1 Tập lồi tính chất tập lồi 1.1.1 Tập lồi Định nghĩa Tập M n đ-ợc gọi tập lồi với X, Y M [ 0,1] ta cã Z X ( )Y M Cho hệ số hữu hạn điểm X1, X2,,Xn ®ã víi k X i X i , i 0, i k i i , Ta nãi X lµ tỉ hợp lồi hệ điểm đà cho Khi k = 2, ta cã X1X2={ X ℝn : X = X1 + (1- )X2, 1}, X1X2 đ-ợc gọi đoạn thẳng nối điểm X1,X2 Nh- nói tập hợp M tập lồi đoạn thẳng nối điểm tập hợp nằm trọn tËp hỵp Trong tr-êng hỵp: X1X2={ X ℝn : X = X1 + (1- )X2, n }, Thì ta nói X1X2 đoạn thẳng nối điểm X1,X2 Tập hợp M n đ-ợc gọi đa tạp tuyến tính với X, Y M, ℝ, ta cã Z X ( )Y M Cho tËp hỵp lồi M n, điểm X M đ-ợc gọi điểm cực biên M X biểu diễn thành tổ hợp lồi thực điểm khác thuộc M Nghĩa tồn X1 vµ X2 thuéc M cho X X ( ) X , 1.1.2 TÝnh chÊt cña tËp låi TÝnh chÊt Giao cđa c¸c tËp låi lµ tËp låi TÝnh chÊt Cho D1 vµ D2 tập lồi Khi hiệu D = D1- D2 tổng D = D1+ D2 tập hợp lồi (hiệu tổng nghĩa hiệu tổng vecto t-ơng ứng thuộc tập hợp) Cho tập lồi M, tập đóng nhỏ chứa M đ-ợc gọi bao ®ãng cđa M KÝ hiƯu: M TÝnh chÊt Bao đóng tập lồi tập lồi Cho tập hợp M n, tập hợp tất điểm tổ hợp lồi điểm thuộc M đ-ợc gọi bao lồi M Kí hiệu: co(M) Tính chất co(M) tổ hợp lồi bé chứa M giao tất tập låi chøa M TÝnh chÊt Tỉ hỵp låi cđa tập lồi lồi Tính chất Tập M lồi tổ hợp lồi hữu hạn điểm thuộc M thuộc M Định nghĩa cho C n, , tập hợp điểm X thỏa mÃn điều kiện đ-ợc gọi siêu phẳng thuộc không gian n Tính chất Cho M Q tập hợp lồi thuộc n, M Q= , tồn siêu phẳng C, X = tách M Q, nghĩa tồn C n n cho: C, X , X M vµ C, X , Y Q n TÝnh chÊt TËp M ={X ℝ : aij x j bi , i , m } lµ tËp låi Trong n j tr-ờng hợp tập M đ-ợc gọi tập lồi đa diện thuộc không gian n NÕu ®iĨm X M thâa m·n: aij x j bi ta nói X thõa mÃn chặt điều kiƯn n j thø i cđa M Tính chất (Định lí biểu diễn tập lồi) Tập lồi đa diện M có hữu hạn điểm cực biên X1, X2,, Xk X M đ-ợc biểu diÔn k k i i X i X i i Z i , i Trong Z , (i=1, 2,,s) ph-ơng vô tËn cña M, k i , i , i i Định nghĩa Cho tËp låi ®a diƯn M, ®iĨm X ( x j ) M đ-ợc gọi bị chặn nÕu tån t¹i sè thùc L cho x j L , j = 1, 2, , n Tập lồi đa diện M đ-ợc gọi bị chặn X M bị chặn Tập lồi đa diện khác rỗng bị chặn đ-ợc gọi đa diƯn låi Nh- vËy ta cã hƯ qu¶ sau: TÝnh chất 10 (định lí biểu diễn đa diện lồi) Đa diện lồi có hữu hạn điểm cực biên X1,X2, Xk điểm thuộc đa diện lồi tổ hợp lồi điểm cực biên, nghĩa X M th× k k i i X i X i , i , i 1.2 Hàm lồi tính chất hàm lồi 1.2.1 Hàm lồi Định nghĩa Cho hàm lồi f xác định tập lồi M Hàm f đ-ợc gọi hàm lồi với X ,Y M vµ [ 0,1] ta cã f (X ( )Y ) f ( X ) ( ) f (Y ) NÕu có bất đẳng thức ng-ợc lại f (X ( )Y ) f ( X ) ( ) f (Y ) f hµm lâm Chó ý r»ng: nÕu f(X) lµ hµm låi hàm g(X)=- f(X) hàm lõm Ví dụ: + Hµm y= ax2 + bx + c lµ hµm låi + Hµm y=sin x, x , lµ hµm låi 1.2.2 TÝnh chÊt cđa hµm låi TÝnh chÊt Hµm tuyÕn tÝnh lµ hµm võa låi võa lâm Tính chất (Bất đẳng thức Jensen) Hàm f xác định tập lồi M, hàm lồi chØ k k i i f ( i X i ) i f ( X i ), X i M , ( ) k ®ã: i , i i Chứng minh Giả sử có bất đẳng thức (*) Khi với k = 2, theo định nghĩa f hàm lồi Ng-ợc lại, giả sử f(x) hàm lồi M, ta chứng minh bất đẳng thức (*) XÐt: k k i i X i X i , i , i Rõ ràng M lồi nên X M Để chứng minh (*), ta qui nạp theo k Với k=2, bất đẳng thức Giả sử bất ®¼ng thøc ®óng víi k-1, ta chøng minh ®øng víi k Ta cã k k i f ( X i ) i f ( X i ) k f ( X k ) i i Không tính tổng quát, giả sử 0< k= ") Me.lstKetQua.AddItem (" PATU lµ: (x, y) = (" + Trim(Format(x(i - 1), "##0.##0")) + ", " + Trim(Format(y(i - 1), "##0.##0")) + ")") Me.lstKetQua.AddItem (" Với giá trị HMT Fmin = " + Trim(Format(TinhHam(x(i - 1), y(i - 1)), "##0.##0"))) Me.lbKetQua.Caption = "NghiƯm lµ: (" + Trim(Format(x(i - 1), "##0.##0")) + ", " + Trim(Format(y(i - 1), "##0.##0")) + ")" GoTo Thoat End If If (solan >= Val(Me.txtSoLanLap.Text)) Then Me.lstKetQua.AddItem (" Do sè nghiƯm chän lµ " + Trim(Me.txtSoLanLap.Text)) Me.lstKetQua.AddItem (" PATU gần là: (x, y) = (" + Trim(Format(x(i - 1), "##0.##0")) + ", " + Trim(Format(y(i - 1), "##0.##0")) + ")") Me.lstKetQua.AddItem (" Với giá trị HMT F = " + Trim(Format(TinhHam(x(i - 1), y(i - 1)), "##0.##0"))) Me.lbKetQua.Caption = "Nghiệm gần là: (" + Trim(Format(x(i - 1), "##0.##0")) + ", " + Trim(Format(y(i - 1), "##0.##0")) + ")" GoTo Thoat End If Me.lstKetQua.AddItem (" Do = " + Trim(Format(Fx * (xmin - x(i - 1)) + Fy * (ymin - y(i - 1)), "##0.##0")) + " < ") Me.lstKetQua.AddItem (" Giải toán biến theo b") ax = x(i - 1) bx = xmin - x(i - 1) ay = y(i - 1) by = ymin - y(i - 1) c = C0 + C1X * ax + C2X * ax * ax + C1Y * ay + C2Y * ay * ay 38 b = C1X * bx + * C2X * ax * bx + C1Y * by + * C2Y * ay * by a = C2X * bx * bx + C2Y * by * by Me.lstKetQua.AddItem (" " + HamAlpha(a, b, c)) Dim nghiem, As Double If (a 0) Then nghiem = -b / / a If (nghiem >= 0) And (nghiem a * * + b * + c) Then nghiem = x(i) = ax + nghiem * bx y(i) = ay + nghiem * by End If Else nghiem = If (a * * + b * + c > a * * + b * + c) Then nghiem = x(i) = ax + nghiem * bx y(i) = ay + nghiem * by End If Me.lstKetQua.AddItem (" Cã nghiƯm lµ b = " + Trim(Format(nghiem, "##0.#0"))) Me.lstKetQua.AddItem ("") solan = solan + Loop Thoat: End Sub Sau đà xây dựng đ-ợc ch-ơng trình giải toán qui hoạch lồi ngôn ngữ Visual Basic, để bạn đọc sử dụng phần mềm tác giả đà thực đóng gói ch-ơng trình thành mét Setup Sau copy th- mơc Setup vỊ m¸y 39 thực cài đặt phần mềm, bạn đà giải toán qui hoạch lồi máy tính thông qua phần mềm cách nhanh chóng xác Tác giả đặt tên cho phần mềm giải toán qui hoạch lồi Qui Hoạch Lồi 2.3 ứng dụng phần mềm Qui Hoạch Lồi 2.3.1.Hướng dẫn ci đặt phần mềm Qui Hoạch Lồi Sau tải cài phần mềm máy (hoặc cài trực tiếp từ đĩa) bạn thực cài đặt ch-ơng trình theo b-ớc nh- sau (xem hình) B-ớc Click vào biểu tượng setup bé c¯i ®± t°i vỊ m²y B-íc Click v¯o nót “ok” (h×nh 7) H×nh B-íc Click vo biểu tượng máy tính (hình 8) Hình 40 B-íc Click v¯o nót “Continue” (h×nh 9) H×nh B-ớc Click vào nút Yes (hình 10) Hình 10 B-ớc Chờ liệu chạy giây lát Sau thông báo (hình 11), click vo nút Ok Hình 11 41 Qu trình ci đặt phÇn mỊm “Qui Ho³ch Låi” v¯o m²y vi tÝnh cđa bn đ hoàn thành Và cuối bạn vào Start -> Programs-> LTTU-> LTTU để chạy ch-ơng trình giải toán qui hoạch lồi 2.3.2 Một số nút lệnh ch-ơng trình Done: Thực ch-ơng trình Refresh: Làm ch-ơng trình About: Giới thiệu thuật toán Frank-Wofle Khi bạn click vào nút form giới thiệu thuật toán Frank-Wofle (hình 6) LoadFile: Mở file đà đ-ợc l-u hệ thống SaveFile: L-u lại file vừa nhập Close: đóng ch-ơng trình 2.3.3 Ví dụ minh họa Giải toán qui hoạch lồi sau f x x y | z ( x, y) M x y x y Víi ®iỊu kiƯn: x y x, y Lấy ph-ơng án xuất phát (x0, y0) = (4, 1) Trên giao diện phần mềm bạn thực nhập lần l-ợt hàm mục tiêu, điều kiện ràng buộc toán nhập số nghiệm (hình 12) 42 Hình 12 Nhập giả thiết toán Sau click vào nút done để thực giải toán Kết đ-ợc nhhình d-ới (hình 13) Hình 13 Kết toán bên cửa sổ kết cho ta thấy tóm tắt b-ớc giải nghiệm toán cần tìm Vậy ph-ơng án tối -u toán là: (x,y) = (1.5, 3.5) 43 KếT LUậN Kết luận văn bao gồm nội dung sau 1) Hệ thống đ-ợc kiến thức tập lồi, hàm lồi toán qui hoạch lồi, phục vụ cho nghiên cứu 2) Viết ch-ơng trình thuật toán Frank Wolfe giải toán qui hoạch lồi, ngôn ngữ Visual Basic 6.0 3) Ch-ơng trình có tính mở (nhập liệu từ bàn phím), đà đóng gói, chạy đĩa CD, tiện sử dụng cho đối t-ợng sinh viên 4) Thể chạy thử số, cho kết khả thi Vấn đề cần tiếp tục nghiên cứu: Ngoài việc tiếp tục nâng cao hoàn thiện ch-ơng trình giải toán qui hoạch lồi thuật toán Frank-Wolfe, h-ớng tới, tác giả cố gắng xây dựng ch-ơng trình giải toán qui hoạch lồi thuật toán Rosen Tuy nhiên ch-ơng trình nhiều nh-ợc điểm, thiếu sót cần đ-ợc hoàn thiện thời gian tới Em mong nhận đ-ợc góp ý thầy cô bạn quan tâm đến vấn đề 44 Tài liệu tham khảo [1] Hoàng Tụy (2003), LÝ thut tèi -u, ViƯn to¸n häc ViƯt Nam [2] Nguyễn Tiến - Đặng Xuân H-ờng - Nguyễn Văn Hoài Tr-ơng Ngọc Vân (1999), Bí lập trình Visual Basic 6.0, NXB Giáo dục, Hà Nội [3] Trần Xuân Sinh (2007), Bài giảng Lý thuyết tối -u, Đại học Vinh [4] Trần Xuân Sinh,(2003) Quy hoạch tuyến tính, NXB Đại học s- phạm Hà Nội [5] Tr-ơng Công Tuấn, Nguyễn Văn Long, Tự học lập trình Visual Basic 6.0, NXB Văn hoá thông tin [6] Tham khảo kiến thức Visual Basic mạng Internet ... kết giải tích lồi, toán qui hoạch lồi dạng tổng quát, toán qui hoạch tuyến tính thuật toán đơn hình - Bài toán qui hoạch lồi ph-ơng pháp giải: Trong phần này, tác giả trình bày toán qui hoạch lồi, ... luận toán học nói chung, toán cực trị tìm ph-ơng án tối -u toán qui hoạch lồi nói riêng Hàm lồi kiến thức giải tích lồi Việc nghiên cứu, tìm hiểu hàm lồi quan trọng cần thiết giải tích lồi Bài toán. .. trình giải toán qui hoạch lồi thuật toán Frank-Wolfe nhằm giúp giải toán qui hoạch lồi đ-ợc nhanh chóng xác Nội dung khóa luận gồm hai ch-ơng: Ch-ơng 1: Các kiến thức sở toán qui hoạch lồi Trong