Sử dụng Excel Solver trong các bài toán tối ưu

Vấn đề tối ưu hóa là những vấn đề trong quá trình làm bài tập, giải bài tập hay làm luận văn, tiểu luận mà chúng ta gặp phải trong nhiều môn học thuộc kỹ thuật, khoa học, kinh tế.  Quá trình tối ưu hoá là tìm ra phương pháp hiệu quả nhất, sử dụng các nguồn lực hạn chế để đạt được mục tiêu của tình huống. Các vấn đề tối đa hóa lợi nhuận, tối ưu danh mục đầu tư như trong môn học Quản trị Danh Mục Đầu tư; Giảm thiểu chi phí, giảm thiểu tổng quãng đường đã đi như trong môn học Quản trị chuỗi cung ứng; Thiết kế mạng lưới cung ứng....

Một số ví dụ về bài toán tối ưu mà các bạn thường gặp như sau:

a) Đầu tư:  Tối ưu hóa danh mục đầu tư - Mô hình Markowitz: Phân bổ tiền vào cổ phiếu để giảm thiểu rủi ro cho tỷ lệ hoàn vốn mục tiêu - với phương sai và hiệp phương sai đã biết hoặc được tính toán.
b) Sản xuất sản phẩm: Xác định số lượng sản phẩm của từng loại để lắp ráp từ các bộ phận nhất định để tối đa hóa lợi nhuận trong khi không vượt quá số lượng bộ phận có sẵn trong kho.
c) Mô hình vận chuyển trong môn Quản trị chuỗi cung ứng: Xác định có bao nhiêu sản phẩm để vận chuyển từ mỗi nhà máy đến từng kho, hoặc từ mỗi nhà máy đến từng kho và trực tiếp đến từng khách hàng cuối, để giảm thiểu chi phí vận chuyển trong khi đáp ứng nhu cầu kho và không vượt quá nguồn cung của nhà máy.

Phương pháp chung để giải quyết bài toán tối ưu

Đối với bài toán đã cho, chúng ta sẽ xây dựng một mô tả toán học gọi là mô hình toán học để biểu diễn tình huống. Mô hình để tối ưu bao gồm các thành phần sau:

Đặt tên biến quyết định: Các biến được biểu diễn bằng các ký hiệu như X1, X2, X3, ..Xn. Các biến này đại diện cho số lượng không xác định (số lượng mặt hàng để sản xuất, số tiền để đầu tư và vv).
• Hàm mục tiêu: Mục tiêu của bài toán được biểu thị dưới dạng biểu thức toán học trong các biến quyết định. Mục tiêu có thể là tối đa hóa lợi nhuận, giảm thiểu chi phí, khoảng cách, thời gian, v.v.
• Các hàm ràng buộc: Các hạn chế hoặc yêu cầu của vấn đề được thể hiện dưới dạng bất đẳng thức hoặc phương trình trong các biến quyết định.Nếu mô hình bao gồm hàm mục tiêu tuyến tính và các ràng buộc tuyến tính trong các biến quyết định, thì nó được gọi là mô hình tối ưu tuyến tính. Như vậy tối ưu tuyến tính là  tối ưu mô hình với hàm mục tiêu tuyến tính và các ràng buộc tuyến tính. Thuật toán Simplex được phát triển bởi Dantzig (1963) được sử dụng để giải quyết các vấn đề tối ưu tuyến tính. 

Một số ví dụ sử dụng Excel Solver

Trong bài viết này, Hocthue.net trình bày cách sử dụng mô hình hóa bảng tính và Excel Solver để giải quyết các vấn đề tối ưu tuyến tính. Bây giờ Hocthue.net trình bày cách sử dụng mô hình hóa sử dụng Excel để tìm giải pháp tối ưu cho các vấn đề tối ưu hóa.

Ở mức đơn giản, nếu mô hình có hai biến, phương pháp đồ thị có thể được sử dụng để giải mô hình. Rất ít vấn đề trong thế giới thực chỉ liên quan đến hai biến. Đối với các vấn đề có nhiều hơn hai biến, chúng ta cần sử dụng các kỹ thuật phức tạp để tìm ra giải pháp tối ưu. Cách tiếp cận bảng tính và Solver làm cho việc giải các bài toán tối ưu hóa trở thành một nhiệm vụ đơn giản cho những sinh viên trong quá trình làm bài tập, làm tiểu luận liên quan đến tình huống tối ưu tuyến tính.

Bước đầu tiên là tổ chức bảng tính để đại diện cho mô hình. Học Thuê.net sử dụng các ô riêng biệt để biểu diễn các biến quyết định, tạo công thức trong một ô để biểu diễn hàm mục tiêu và tạo công thức trong một ô cho mỗi ràng buộc bên trái. Khi mô hình được triển khai trong bảng tính, bước tiếp theo là sử dụng Solver để tìm giải pháp. Trong Solver, chúng ta cần xác định vị trí (ô) của hàm mục tiêu, các biến quyết định, bản chất của hàm mục tiêu (tối đa hóa / tối thiểu hóa) và các ràng buộc.

Ví dụ 1: Bài toàn vận tải đơn giản:

Bài toán được mô tả với dữ liệu đơn giản ở các bảng  ở hình bên dưới như sau:

Ở Bảng 1:Dữ liệu gồm có : Bên cung gồm 4 đơn vị là A, B, C, D với lượng hàng tương ứng 200... 500. Bên Cầu gồm có 6 khách hàng KH1..KH5. 

Ở Bảng 2: Kết quả tối ưu dựa trên sử dụng Solver của Excel với các điều kiện sau:

Hàm mục tiêu (objective: Tối thiểu hoá chi phí ở I32 (hàng cuối cùng trong hình bên dưới).

Ô thay đổi: Các ô màu vàng bên dưới.

Hàm ràng buộc: 

- Bên gửi <=Bên cung

- Bên nhận = Bên gửi.

Bài toán vận tải đơn giản
Bảng bài toán vận tải tối ưu với chi phí thấp nhất.

 

Ví dụ 2: Tối ưu hoá danh mục đầu tư sử dụng Solver theo phương pháp Markowitz.

Bài toán ở đây là nhà đầu tư muốn đầu tư 5 mã chứng khoán với kỳ vọng lợi nhuận đã có. Tuy nhiên câu hỏi đặt ra là tỷ lệ mỗi mã cổ phiếu bao nhiêu cho ít rủi ro nhất. Rủi ro ở đây được đo lường bằng phương sai nhé. 

Tối ưu tuyến tính

1) Các biến là phân bổ tỷ lệ phần trăm của các quỹ của hoc thue.net để đầu tư vào mỗi cổ phiếu. Trong bảng tính này, các biến là các ô từ B6 đến F6. Tổng phân bổ tỷ lệ phần trăm (phải là 100%) được tính trong ô H6.
2) Các ràng buộc rất đơn giản. Đầu tiên là các ràng buộc logic:
B6: F6> = 0 
H6 = 1
Sau đó, có một ràng buộc là lợi nhuận của danh mục đầu tư phải có ít nhất một giá trị mục tiêu nhất định (9% trong ví dụ này). Lợi nhuận này được tính trong ô I19, là tổng của lợi nhuận cổ phiếu có trọng số: I19> = 0,09
3) Mục tiêu là để giảm thiểu phương sai danh mục đầu tư, được tính từ phương sai cổ phiếu riêng lẻ và hiệp phương sai theo phương pháp Markowitz trong ô I17.

Nhận xét
Phương sai chứng khoán và hiệp phương sai được tính trong các ô B11: F15 từ dữ liệu giá lịch sử trong các ô B23: F32. Sử dụng dữ liệu giá trong quá khứ để tính toán ước tính lợi nhuận chứng khoán, phương sai và hiệp phương sai chỉ là bước đầu tiên trong kế hoạch đầu tư. Lợi nhuận chứng khoán, cũng như phương sai và hiệp phương sai, thay đổi theo thời gian.