1 TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN KINH TẾ VÀ QUẢN LÝ BÀI THU HOẠCH QUY HOẠCH VÀ PHÁT TRIỂN NĂNG LƯỢNG Tìm Hiểu Về LINDO Và EXCEL SOLVER 2010 Phân Tích Độ Nhạy 2 MỤC LỤC EXCEL SOLVER 2010 Trang 1[.]
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN KINH TẾ VÀ QUẢN LÝ
BÀI THU HOẠCH QUY HOẠCH VÀ PHÁT TRIỂN NĂNG LƯỢNG
Tìm Hiểu Về LINDO Và EXCEL SOLVER 2010
Phân Tích Độ Nhạy
Trang 2MỤC LỤC EXCEL SOLVER 2010……… Trang 1 Phần I: Excel Solver khả năng và giới hạn……… Trang 3 Phần II: Chẩn đoán kết quả Solver & báo cáo……… Trang 8 Phần III: Solver & bài toán quy hoạch tuyến tính……… Trang 11 Phần IV: Solver & bài toán quy hoạch phi tuyến……… Trang 18 LINDO
I Tìm hiểu về LINDO……… Trang 22
II Phân tích độ nhạy……… Trang 24
Bài tập ví dụ về phân tích độ nhạy……… Trang 28
Trang 3EXCEL SOLVER 2010
Lời nói đầu
Microsoft Excel là phần mềm rất quen thuộc và phổ biến, dễ tiếp cận, lập trình và
đã được tích hợp trong bộ office của Microsoft
Trong Microsoft Excel chứa nhiều công cụ hỗ trợ giải các bài toán phân tích, quản
lí hỗ trợ công tác nghiên cứu trên nhiều lĩnh vực khác nhau như kĩ thuật, tài chính,thống kê, logic
Stand Solver cũng là một công cụ giải bài toán tối ưu(Opitimizer) quy hoạch tuyếntính, phi tuyến(trơn tru), không trơn tru
Bài này sẽ giới thiệu về Excel Solver theo 4 nội dung chính sau:
Phần I: Excel Solver khả năng và giới hạn
Phần II: Chẩn đoán kết quả Solver & báo cáo
Phần III: Solver & bài toán quy hoạch tuyến tính
Phần IV: Solver & bài toán quy hoạch phi tuyến
Trang 4Phần I: Excel Solver khả năng và giới hạn
1.1 Những định nghĩa cơ bản trong Solver
a Hộp thoại Slover Parameters: là giao diện chính làm việc với Solver.
Kiểm tra trên thanh “data” xem có chứa solver chưa? Nếu chưa có ta làm như sau:Trong môi trường Excel, ta nhấp chuột vào File, chọn Opitions Khi đó hộp thoạiExcel Opitions xuất hiện như hình dưới đây
Tiếp đó chọn “add-ins”, nhấn vào” go ” hộp thoại add-ins xuất hiện, ta tích vào
“Solver add-in” và nhấp “OK”
Trang 5Để mở hộp thoại “Solver Parameters”, trong môi trường excel ta click vào thanh
“data” Click vào Solver Lúc đó hộp thoại “Solver Parameters” xuất hiện như hìnhdưới đây:
*Set Objective: ta nhập vào vị trí hàm mục tiêu đã thiết lập trong ô tính của
Trang 6*Subject to the Constraints: ta đưa các ràng buộc vào ô này.
*Select a Solving Method: chọn một công cụ Solver.
*Make Unconstrained Variables Non-Negative: ràng buộc không âm.
b Các lựa chọn trong hộp thoại “Solver opitions”
Max Time (Seconds): Thời gian tính lớn nhất theo giây Sovler sẽ chạy trước khi
dừng
Iterations: Số bước tính lặp.
Constraint Precision: Độ chính xác.
Convergence: Hội tụ.
Trang 7Use Automatic Scaling: Định tỉ lệ tự động.
Show Iteration Results: Hiển thị kết quả bước tính lặp.
Integer Opitimality(%): Tối ưu với số nguyên
Max Subproblems: bài toán phụ Max
Max Feasible Solutions: giải pháp khả thi nhất.
Derivaties: Đạo hàm
Forward: Sai phân theo hướng tiến về phía trước.
Central: sai phân trung tâm.
Population Size: Kích cỡ đám đông nghiệm.
Random Seed: Điểm ngẫu nhiên.
Require Bounds on Variables: Yêu cầu cận đặt trên biến.
Mutation Rate: Tỉ lệ sự biến đổi
Maximum Time without improvement: Thời gian tối đa không cải thiện.
1.2 Các công cụ trong Solver
Standard Solver gồm 3 công cụ:
a GRG Nonlinear: Sử dụng thuật toán Generalized Reduced Gradient(GRG)
để giải bài tập quy hoạch phi tuyến(trơn tru) Với quy mô lên tới 200biến(dicision variables), 100 ràng buộc(constraints), 400 ràng buộc cận đặttrên biến(Bounds on Variable)
b Simplex LP: Sử dụng thuật toán đơn hình để giải bài tập quy hoạc tuyếntính với quy mô lên tới 400 biến(dicision variables), 200 ràngbuộc(constraints), 800 ràng buộc cận đặt trên biến(Bounds on Variable)
c Evolutionary : sử dụng thuật toán “di truyền”(genetic algoriths) để bổ sungcho các thuật toán tuyến tính và phi tuyến tính kinh điển Chủ yếu sử dụnggiải bài toán không trơn tru, không liên tục
Trang 8Với các bài toán tối ưu có ràng buộc số nguyên sẽ có sử dụng thêm phươngpháp Nhánh & Cận(Branch & Bound method) kết họp với GRG Nonlinearhoặc Simplex LP để xử lí ràng buộc nguyên.
Evolutionary không sử dụng phương pháp Nhánh & Cận thay vào đó phát ranhiều điểm thử nghiệm và dùng phương pháp ”sửa chữa ràng buộc”(constraintrepair) để thỏa mãn ràng buộc số nguyên, có thể tìm được nghiệm tốt cho bàitoán có ràng buộc số nguyên, tuy nhiên không chắc đó đã là nghiệm tối ưu
Ta cần lưu ý rằng đối với bài toán tuyến tính( có dạng đường thẳng) có thể tìmđược nghiệm tối ưu toàn cục nếu nó tồn tại, bài toán vô nghiệm hay vô sốnghiệm Còn đối với bài toán có dạng hàm phi tuyến trơn tru( hiểu đơn giản làhàm có dạng đường thẳng hay cong không đứt đoạn, hàm này gọi tắt là hàmphi tuyến) có thể tìm được nghiệm toàn cục, nhưng đôi khi chỉ tìm đượcnghiệm cục bộ Đối với bài toán có dạng phi tuyến không trơn chu, không liêntục thì thời gian xử lí dữ liệu sẽ lâu nhất, và nghiệm thường chỉ hội tụ tới giá trịnào đó mà k thể tìm được nghiệm tối ưu toàn cục
1.3 Hàm của các biến quyết định
Trong quá trình tối ưu hóa, chỉ có các ô biến quyết định được thay đổi, các giá trịkhác giữ không đổi
Khi xem xét hàm mục tiêu(HMT) và ràng buộc phải xét tính tuyến tính, trơn tru,không trơn tru để chọn công cụ thích hợp
Ngay cả khi có đầy đủ công cụ Solver, ta vẫn nên cân nhắc xem sử dụng các hàmnào thân thiện với Solver để tìm được kết quả tốt hơn cho mô hình Ví dụ nhưSolver chấp nhận cho việc sắp xếp nhanh với các hàm như: SUM, PRODUCT,DOTPRODUCT, QUAPRODUCT, MMULT
Một số hàm không liên tục thường được sử dụng trong Excel như: IF, CHOOSE,LOOKUP,HLOOOKUP, VLOOKUP, COUNT
Một sô hàm không trơn tru thường được sử dụng trong Excel như: ABS, MIN,MAX, INT, ROUND,CEILING, FLOOOR
Phần II: Chẩn đoán kết quả Solver & báo cáo
2.1 Chẩn đoán kết quả Solver
Trang 9Khi qúa trình tìm nghiệm hoàn tất hộp thoại Solver Results xuất hiện, hiển thị cácthông báo kết quả.
Ta có thể lựa chọn một hoặc nhiều báo cáo, chọn một trong các lựa chọn “ keepsolver Solution” (giữ lại nghiệm của solver hoặc Restore Original Values( trả lạigiá trị ban đầu) và ghi lại giá trị các biến quyết định trong một kịch bản được đặttên “save scenario” Nhấn “OK” để báo cáo được lập ra, hoặc “ cancel” để hủy bỏnghiệm và các báo cáo
*Những thông báo kết quả của Solver
1.“Solver found a solution All constraints and optimality conditions are satisfied”: Solver đã tìm được một nghiệm Các điều kiện ràng buộc và tối ưu
2.”Solver has converged to the current solution All constraints are satisfied”:
Solver đã hội tụ đến nghiệm hiện hành Các điều kiện ràng buộc được thỏa mãn
Có nghĩa rằng solver đã tìm được một loạt các nghiệm tốt nhất thỏa mãn các ràngbuộc và rằng các giá trị HMT rất giống nhau, tuy nhiên không có nghiệm nào thỏamãn hoàn toàn trắc nghiệm của Solver cho tính tối ưu
3.”Solver cannot improve the current solution All constraints are satisfied”:
Solver không thể cải thiện nghiệm hiện hành Các ràng buộc được thỏa mãn
Điều này có nghĩa là Solver đã tìm được các nghiệm thỏa mãn các ràng buộc,nhưng nó không thể cải thiện HMT, ngay cả khi trắc nghiệm về tính tối ưu và sựhội tụ
Trang 104.”Stop chosen when the maximum iteration limit was reached”: Dừng lựa chọn
thiết mô hình tuyến tính không thỏa mãn
Thông báo này chỉ xuất hiện khi ta sử dụng công cụ Simplex LP, xem xét lại xemhàm mục tiêu và các ràng buộc xem các hàm hay phép tính tác động lên biếnquyết định có phải là phi tuyến
9.”The poblem is too large for Solver to handle”: Bài toán quá lớn để Solver xử
lý
Xem xét xem các biến quyết định, ràng buộc và số cận đặt trên biến có quá giớihạn của Solver hay không?
10.” Solver encountered an error value in a target or constraint cell”: Solver
gặp một giá trị sai trong ô HMT hoặc ràng buộc
Cần kiểm tra lại Hàm mục tiêu và các ràng buộc xem có giá trị nào báo lỗi dạng
#VALUE, #NUM!, #DIV/0 hoặc #NAME? Hay không?
11.”Stop chosen when the maximum time limit was reached”: Dừng chọn khi
đến giới hạn thời gian lớn nhất
Thông báo này xuất hiện khi Solver đã chạy hết giới hạn thời gian lớn nhất chophép trong khung Max time Ta có thể tăng giá trị trong ô Max time ở hộp thoạiSolver option hoặc nhấp chọn continue thay vì stop trong hộp thoại Show TrialSolution
Trang 1112.”There is not enough memory available to Solver the problem”: không đủ bộ
nhớ để giải bài toán
13.”Error in model Please verify that all cells and constraints are valid”: sai sót
trong mô hình Xin kiểm lại các ô và các ràng buộc cho hợp lệ
14.” Solver found an integer solution within tolerance All constraints are satisfied”: Solver đã tìm được một nghiệm nguyên trong phạm vi dung sai Các
ràng buộc đều thỏa mãn
15.”Stop chosen when the maximum number of feasible [integer] solutions was reached”: Dừng chọn khi đến giới hạn số nghiệm khả thi [nguyên] lớn nhất.
16.”Stop chosen when the maximum number of feasible [integer] subproblems was reached”: Dừng chọn khi đến giới hạn số bài toán phụ khả thi [nguyên] lớn
nhất
17 “All variales must have both upper and lower bounds”: Các biến quyết định
phải có cả cận trên và cận dưới
18.”Variable bounds conflict in binary or alldifferent constraint”: Cận của biến
quyết định xung đột trong ràng buộc nhị phân hoặc ràng buộc alldifferent
19.” Lower and upper bounds on variables allow no feasible solution”: Cận dưới
và cận trên của biến quyết định khiến hco không có nghiệm khả thi
2.2 Các báo cáo trong Solver
Answer(Báo cáo về nghiệm), Sensitivity(Báo cáo về độ nhạy cảm), Limits report(Báo cáo về giới hạn)
Khi Solver tìm được một nghiệm tối ưu của bài toán, ta có thể chọn một trong babáo cáo trên Cả ba báo cáo đều là bổ ích, nhưng ta nên tập trung vào báo cáo độnhạy cảm vì nó cho ta biết nhiều điều về mô hình và nghiệm của mô hình Ta cóthể xác định điều gì sẽ xảy ra nếu ta thay đổi mô hình theo nhiều cách khác nhau
mà không cần chạy lại Solver
Population Report (Báo cáo đám đông nghiệm)
Trang 12Báo cáo này dành riêng cho Evolutionary Solver Population Report cho biếtnhững thông tin tổng quát về toàn bộ đám đông ứng viên nghiệm mà EvolutionarySolver giữ lại tại thời điểm kết thúc quá trình tìm nghiệm.
Linear and Feasibility Reports (Báo cáo về tuyến tính và tính khả thi)
Linear report có thể xác định, và loại bỏ các hàm phi tuyến tính khỏi mô hình để
có thể giải bài toán bằng Solver tuyến tính nhanh hơn và tin cậy hơn
Feasibility report, ta có thể xác định các ràng buộc chồng chéo khiến cho mô hìnhkhông khả thi và sửa những chồng chéo này nếu cần thiết
Ta có thể yêu cầu báo cáo có định dạng( outlined report) Vì báo cáo là các tranglàm việc của Excel nên ta có thể sao chép, biên tập, thực hiện các phép tính trênnhững con số trong báo cáo hoặc vẽ đồ thị trực tiếp từ các dữ liệu trong báo cáo
Phần III: Solver & bài toán quy hoạch tuyến tính
3.1 Dạng tổng quát của một mô hình bài toán QHTT
MAX (hoặc MIN) c1X1+¿ 2X2+…+c n X n¿ (4-1)
Ngoài ra tùy bài toán còn có thể có ràng buộc cận trên hoặc cận dưới biến quyếtđịnh có dạng X1, X2… X n ≥ 0 hoặc X1, X2… X n ≤ 0
3.2 Mô hình hóa và giải bài toán QHTT trong một bảng Excel
Bước 1: Sắp xếp dữ liệu của mô hình trên bảng tính
Phải sắp xếp dữ liệu sao cho có ý nghĩa và mục đích càng rõ ràng càng tốt
Nên đặt các nhãn mô tả (labels) trong bảng tính để nhận biết các phần tử khácnhau của dữ liệu
Trang 13Bước 2: Dành các ô riêng biệt trong bảng tính để thể hiện từng biến quyết định trong mô hình đại số
Ta nên sắp xếp các ô thể hiện biến quyết định song song với cấu trúc dữ liệu Sẽhữu ích cho việc thiết lập các công thức cho HMT và các ràng buộc Nên dùngnhãn để mô tả nhận biết rõ ràng ý nghĩa của các ô nói trên
Bước 3: Tạo công thức trong một ô bảng tính tương ứng với HMT trong mô hình đại số
Công thức tương ứng với HMT được tạo ra bằng cách tham chiếu đến các ô dữliệu, ở đó các hệ số của HMT đã được nhập vào và tham chiếu đến các ô tươngứng thể hiện các biến quyết định
Bước 4: Tạo công thức vế trái của các ràng buộc
Với mỗi ràng buộc tạo ra một công thức trong một ô riêng biệt Công thức tươngứng với VT của ràng buộc được tạo ra bằng cách tham chiếu đến các ô dữ liệu, ở
đó các hệ số cho các ràng buộc này đã được nhập vào và tham chiếu đến các ôbiến quyết định thích hợp
Bước 5: Làm việc với Solver
Thực chất là đưa mô hình bảng tính vừa thiết lập vào khung hội thoại Solver
Như đã trình bày ở mục 1.1 ta mở được hộp thoại “Solver Parameters” và ta sẽđưa hàm mục tiêu, VT, VP, cùng dấu thể hiện tương quan VT, VP của các ràngbuộc này và các cận đặt trên biến(cận trên và dưới) vào mô hình
Vì ở đây chúng ta đang đề cập tới bài toán QHTT nên chỉ cần sử dụng công cụSimplex LP để giải bài toán Trên hộp thoại Solver Parameters ta nhấn vào tam
giác đen bên cạnh chữ “Select a Solving Method” và chọn Simplex LP.
Nếu các biến quyết định có ràng buộc không âm ta tích vào “Make Unconstrained Variables Non-Negative” trong hộp thoại Solver Parameters.
Sau đó click vào Solver, chúng ta sẽ nhận được kết quả
3.3 Giải bài tập QHTT đơn giản
Bài toán về “sản xuất & kinh doanh”
Trang 14Tổ hợp T & D chế tạo máy bơm Họ nhận được đơn đặt hàng trị giá &750,000 đểsản xuất ba loại máy bơm B1, B2, B3 với số lượng từng chủng loại theo yêu cầuđặt hàng Thời gian và nhân công để làm ra một sản phẩm theo bảng dưới đây:
Tiếc rằng T & D không đủ thời gian và nguồn nhân lực để hoàn thành đơn đặthàng theo đúng thời hạn Họ chỉ có 10,000 giờ và 5,000 công Tuy nhiên, họ cóthể ký hợp đồng phụ với công ty đối tác để giao một phần đơn đặt hàng cho đốitác Chi phí cho một đơn vị sản phẩm do T & D tự sản xuất và chi phí mua lại củađối tác như sau:
Tổ hợp T & D muốn xác định số lượng mỗi chủng loại bơm tự sản xuất và sốlượng mua lại của đối tác để hoàn thành đơn đặt hàng với chi phí ít nhất
Giải:
1 Thiết lập mô hình
*Xác định biến quyết định:
L1 = số lượng lượng bơm B1 tự làm
L2 = số lượng lượng bơm B2 tự làm
L3 = số lượng lượng bơm B3 tự làm
M1 = số lượng lượng bơm B1 mua lại của đối tác
M2 = số lượng lượng bơm B2 mua lại của đối tác
M3 = số lượng lượng bơm B3 mua lại của đối tác
*Xác định HMT
MIN: 50*L1+ 83*L2+130*L3+61*M1+97*M2+145*M3 (tổng chi phíđơn hàng)
*Xác định các ràng buộc
L1+M1 = 3000 (RB theo đơn hàng máy bơm B1)
L2+M2 = 2000(RB theo đơn hàng máy bơm B2)
Trang 15L3+M3 = 900(RB theo đơn hàng máy bơm B3)
L 1+2∗L2+ L3≤5000(RB nhân công)
L 1, L 2, L3,M 1, M 2, M 3≥ 0(RB không âm)
2 Làm việc với bảng tính Excel
Trong bảng này biến cần tìm là L1, L2, L3, M1, M2, M3 ứng với ô B2, C2,D2, B3, C3, C3
Các hệ số của hàm mục tiêu đưa vào dãy ô B6:D7 Ô chứa công thức tínhgiá trị HMT là E6
Các hệ số tính VT ràng buộc số giờ và nhân công vào dãy ô B12:D13;
Các ô chứa công thức tính giá trị VT ràng buộc thời gian và nhân công đưavào ô F12, F13 và VP ràng buộc tương ứng vào ô G12, G13
Các ô chứa công thức tính giá trị VT cho ràng buộc đủ số lượng bơm theođơn đặt hàng đưa vào dãy ô B9:D9; Giá trị VP tương ứng là B10:D10
- Công thức trong ô E6 tính giá trị HMT :
Trang 16- Công thức trong ô B9 là hình sau, các ô C9, D9 tương tự:
- Công thức trong ô F12 như hình sau, ô F13 tương tự:
3 Làm việc với hộp thoại Parameters
*Set Objective: ta nhập vào E6 ở phần “To” chọn Min
*By Changing Variable Cells: Nhập vào B2:D3
*Subject to the Constraints: ta click vào "add” Ở ô Cell “reference” nhập
vào B9:D9, kéo hình tam giác bên cạnh chọn dấu “=”, trong ô ”constraint”chọn ô B10:D10 Click add
Tiếp theo ở ô Cell “reference” nhập vào F12, F13, kéo hình tam giác bêncạnh chọn dấu “=”, trong ô ”constraint” chọn ô G12, G13 Click OK
*Select a Solving Method: chọn Simplex LP.
*Make Unconstrained Variables Non-Negative: tích vào ô vuông nhỏ.
Nhập xong trên hộp thoại có dạng:
Trang 17Cuối cùng click vào slover ta được bảng sau:
Ta thấy xuất hiện hôp thoại “Solver Results” với thông báo “Solver found a solution All constraints and optimality conditions are satisfied”( Solver đã tìm
được một nghiệm Các điều kiện ràng buộc và tối ưu được thỏa mãn)