3.3.1. Cấu trúc ma trận của bài toán thƣờng gặp.
Cấu trúc ma trận của một bài toán tối ưu thường gặp được mô tả trong bảng 3-1 như sau:
Bảng 3-1: Cấu trúc ma trận của bài toán thƣờng gặp
Cấu trúc biến Giá trị biến Dấu RHS Cân bằng sản phẩm và bán sản phẩm Ràng buộc khống chế chất lượng Các ràng buộc đặc biệt
Ràng buộc về khả năng sản xuất, lưu trữ HÀM KINH TẾ (MỤC TIÊU)
Cấu trúc biến và giá trị biến đặt theo các cột khác nhau, mỗi cột tương ứng với một biến với giá trị tương ứng nằm ngay ở hàng bên dưới mỗi cột.
Các hàng bên dưới liên quan đến ràng buộc: ràng buộc bán sản phẩm, sản phẩm nội bộ, ràng buộc liên quan đến chất lượng sản phẩm, ràng buộc đặc biệt liên quan đến tiêu thụ năng lượng của từng phân xưởng cũng như ràng buộc về khả năng sản xuất, lưu trữ.
GVHD: ThS. Nguyễn Quang Thái 49 SVTH: Lâm Hoàng Biết Hàng cuối cùng là hàm mục tiêu.
Dấu và giá trị RHS (Right hand side) được đặt ở cột cuối cùng sau khi đã xác định hết tất cả các biến.
Cột “dấu” sẽ nhận giá trị “=”, “≤”, “≥” tương ứng với từng ràng buộc khác nhau, cũng như tương ứng với giá trị RHS của mỗi ràng buộc. Cụ thể là:
+ Đối với ràng buộc bán sản phẩm: “dấu” sẽ nhận giá trị “=” và “RHS” nhận giá trị tương ứng với nhu cầu của mỗi sản phẩm.
+ Đối với các ràng buộc liên quan đến tiêu chuẩn chất lượng sản phẩm cần lưu ý đến bài toán phối liệu theo phương pháp cộng tính. Mỗi tiêu chuẩn có một công thức phối trộn cộng tính khác nhau, có thể là cộng tính thể tích (RON, tỷ trọng, hàm lượng aromatique), cộng tính khối lượng (hàm lượng lưu huỳnh, khối lượng phân tử) hay cộng tính phần mol (áp suất hơi Reid RVP).
3.3.2. Xác định các hệ số cho bảng ma trận
Việc xác định hệ số cho bảng ma trận quyết định gần như toàn bộ bài toán tối ưu. Nguyên tắc chung của việc xác định như sau:
Đối với biến là nguyên liệu cho một phân xưởng bất kỳ hoặc là nguồn phối liệu cho một sản phẩm bất kỳ sẽ nhận giá trị âm, thông thường là giá trị “- 1” cho các ràng buộc bán sản phẩm và ràng buộc sản phẩm.
Đối với các biến là sản phẩm cuối hay là sản phẩm của một phân xưởng (bán sản phẩm của nhà máy) thì các hệ số thường mang giá trị dương với tỷ lệ tương ứng với hiệu suất thu hồi của chính bán sản phẩm đó trong mỗi phân xưởng sản xuất nó.
Các hệ số không liên quan sẽ mang giá trị bằng 0.
Liên quan đến các hệ số khác không trong bảng ma trận chúng ta sẽ dựa vào sơ đồ công nghệ và bảng cân bằng vật chất (CBVC) của toàn bộ nhà máy [13] để tính toán giá trị hiệu suất thu hồi của các sản phẩm tương ứng với công nghệ của từng phân xưởng. Ở đây cần lưu ý hai chế độ vận hành khác nhau của phân xưởng
GVHD: ThS. Nguyễn Quang Thái 50 SVTH: Lâm Hoàng Biết RFCC max propylene và max gasoline sẽ cho giá trị hệ số ma trận tương ứng khác nhau (tham khảo phụ lục số 3).
Đối với các hệ số trong phần năng lượng nội bộ, do nhà máy chưa đi vào hoạt động nên các số liệu tính toán thiết kế về năng lượng của nhà máy rất phức tạp. Do đó, phần năng lượng nội bộ của một số phân xưởng cơ bản như: CDU, HDS, FCC, CCR được tham khảo từ tài liệu thiết kế nhà máy lọc dầu.[13]
Các hệ số trong phần ràng buộc về chất lượng sản phẩm dựa vào các quy tắc trộn lẫn ở mục 3.1.4.3, dựa vào tài liệu liên quan đến tính chất của bán sản phẩm và sản phẩm tại bảng phụ lục 1 và bảng phụ lục 2.
Giá và nhu cầu của các sản phẩm được đưa trong bảng phụ lục 3.
3.4. Phƣơng pháp khai báo và liên kết dữ liệu với Excel
Sau khi hoàn thành ma trận của bài toán trên bảng tính excel ta tiến hành khai báo trên phần mềm Lingo và liên kết dữ liệu với excel.
Thuật toán khai báo trên Lingo được viết như sau: MODEL: SETS: BAN_SP : ZERO; SP_NB : NHU_CAU; RB_MAX : GT_MAX; RB_MIN: GT_MIN; TEN_BIEN :GT_BIEN,CHI_PHI; LINKS1(BAN_SP,TEN_BIEN) :VOLUME1; LINKS2(SP_NB,TEN_BIEN) :VOLUME2; LINKS3(RB_MAX,TEN_BIEN) :VOLUME3; LINKS4(RB_MIN,TEN_BIEN) :VOLUME4; ENDSETS Min=@SUM(TEN_BIEN(J):GT_BIEN(J)*CHI_PHI(J));
GVHD: ThS. Nguyễn Quang Thái 51 SVTH: Lâm Hoàng Biết @FOR(BAN_SP(I): @SUM(TEN_BIEN(J): VOLUME1(I,J)*GT_BIEN(J))=ZERO(I)); @FOR(SP_NB(K): @SUM(TEN_BIEN(J): VOLUME2(K,J)*GT_BIEN(J))=NHU_CAU(K)); @FOR(RB_MAX(L): @SUM(TEN_BIEN(J): VOLUME3(L,J)*GT_BIEN(J))<=GT_MAX(L)); @FOR(RB_MIN(M): @SUM(TEN_BIEN(J): VOLUME4(M,J)*GT_BIEN(J))>=GT_MIN(M)); DATA: BAN_SP,ZERO,SP_NB,NHU_CAU,RB_MAX,GT_MAX,RB_MIN,GT_MIN,TE N_BIEN,CHI_PHI,VOLUME1,VOLUME2,VOLUME3,VOLUME4
=@OLE("D:\HOC TAP\LUAN VAN\Max Propylen\Max Propylene 95.xlsx",'BAN_SP','ZERO','SP_NB','NHU_CAU','RB_MAX','GT_MAX','RB_MIN ','GT_MIN','TEN_BIEN',
'CHI_PHI','VOLUME1','VOLUME2','VOLUME3','VOLUME4');
@OLE("D:\HOC TAP\LUAN VAN\Max Propylen\Max Propylene 95.xlsx",'GT_BIEN')=GT_BIEN;
ENDDATA END
3.5. Giải tối ƣu bằng Lingo và trao đổi kết quả.
Sau khi chạy phần mềm Lingo, phần mềm sẽ tìm ra một giá trị tối ưu kèm theo các thông số khác giúp ta phân tích các kết quả tìm được, đồng thời phần mềm cũng sẽ trao đổi kết quả với bảng tính Excel cho ta các hệ số tại các ô giá trị biến và giá trị của hàm mục tiêu.
GVHD: ThS. Nguyễn Quang Thái 52 SVTH: Lâm Hoàng Biết : . . : . . . : . . : . . . .
GVHD: ThS. Nguyễn Quang Thái 53 SVTH: Lâm Hoàng Biết
CHƢƠNG 4: KẾT QUẢ TỐI ƢU TỪ LINGO – PHÂN TÍCH VÀ NHẬN XÉT
4.1. Ý nghĩa các giá trị hiển thị từ phần mêm Lingo
4.1.1. Ý nghĩa các giá trị “Variable, Value, Reduce Cost”
Global optimal solution found at step: 21 Objective value: 0.1118087E+08
Export Summary Report ---
Transfer Method: OLE BASED
Spreadsheet: D:\HOC TAP\LUAN VAN\Max Propylen\Max Propylene 95.xlsx
Ranges Specified: 1 GT_BIEN
Ranges Found: 1 Range Size Mismatches: 0 Values Transferred: 83
Variable Value Reduced Cost ZERO( CDU_NAPH) 0.0000000 0.0000000 ZERO( CDU_KERO) 0.0000000 0.0000000 ZERO( CDU_GO) 0.0000000 0.0000000 ZERO( CDU_RA) 0.0000000 0.0000000 ZERO( LPGRU_NAPH) 0.0000000 0.0000000 ZERO( LPGRU_LPG) 0.0000000 0.0000000 Hình phụ lục 1: Bảng Reduced Cost
Variable: Tên biến.
Value: Giá trị biến.
Reduced Cost: Trong báo cáo kết quả của bảng tính Lingo ta sẽ thấy một con số Reduced Cost ứng với mỗi biến số. Giá trị này có 2 ý nghĩa tương đương như sau:
Thứ nhất, có thể hiểu Reduced Costnhư là số lượng mà hệ số hàm mục tiêu của biến số phải cải thiện trước khi nó trở nên có lợi cho biến số đang đề cập một giá trị dương trong kết quả tối ưu. Ví dụ: Nếu một biến có giá trị Reduced Cost là 10, thì hệ số hàm mục tiêu của biến số đó cần tăng lên 10 đơn vị trong trường hợp bài toán Max, và cần phải giảm 10 đơn vị trong
GVHD: ThS. Nguyễn Quang Thái 54 SVTH: Lâm Hoàng Biết bài toán Min để biến số đó trở thành một lựa chọn hấp dẫn để đi tới giải pháp.
Thứ hai, có thể hiểu Reduced Costlà số tiền phạt cần phải trả để đưa một đơn vị của biến số này đi đến giải pháp. Ví dụ, nếu giá trị Reduced Cost là 10, có nghĩa là cần phải trả tiền phạt là 10 đơn vị để đưa biến số đến giải pháp. Nói cách khác giá trị của hàm mục tiêu sẽ giảm 10 đơn vị trong bài toán Max và sẽ tăng 10 đơn vị trong bài toán Min.
Một biến số đạt được giá trị trong giải pháp tối ưu, như trong trường hợp STANDARD hoặc TURBO, sẽ tự động có giá trị Reduced Cost bằng 0. Reduced Cost chỉ có giá trị trong một phạm vi nhất định.
4.1.2. Slack or Surplus
Row Slack or Surplus Dual Price 1 0.1118087E+08 1.000000 2 0.0000000 -572.7269 3 0.0000000 -580.2865 4 0.0000000 -503.8827 5 0.0000000 -501.2386 6 0.0000000 -667.8118 7 0.0000000 -485.9540
Hình phụ lục 2: Bảng Slack or Surplus, Dual Price
Cột Slack or Sulplus trong bảng báo cáo kết quả của Lingo cho biết bạn đã gần đáp ứng các ràng buộc về tính cân bằng như thế nào. Nếu giá trị này nhỏ hơn hoặc bằng (≤) các ràng buộc thì ta gọi là slack, còn nếu giá trị này lớn hơn hoặc bằng (≥) các ràng buộc thì gọi là surplus.
Nếu một ràng buộc thõa mãn chính xác về tính cân bằng thì giá trị slack or surphus sẽ bằng không. Nếu ràng buộc này bị vi phạm, được hiểu như giải pháp bất khả thi, thì giá trị slack or surphus sẽ âm. Hiểu được điều này có thể giúp bạn tìm ra những ràng buộc vi phạm trong mô hình không thể giải được, trong mô hình này không tồn tại một tập hợp giá trị biến số mà những biến số này đồng thời thỏa mãn tất cả các ràng buộc. Những ràng buộc Nonbinding (những ràng buộc với giá trị slack or surplus lớn hơn 0) sẽ có giá trị dương, khác không trong cột này.
GVHD: ThS. Nguyễn Quang Thái 55 SVTH: Lâm Hoàng Biết
4.1.3. Dual price
Trong bản báo cáo kết quả của Lingo cũng đưa ra một giá trị dual price với mỗi ràng buộc. Bạn có thể hiểu dual price như là số lượng mà hàm mục tiêu cần phải thay đổi khi giá trị RHS (Right Hand Side) của ràng buộc bị tăng thêm một đơn vị.
Chú ý rằng “thay đổi” là một khái niệm tương đối. Trong bài toán Max, thay đổi nghĩa là giá trị của hàm mục tiêu sẽ tăng, trong bài toán Min, giá trị của hàm mục tiêu sẽ giảm nếu bạn tăng RHS của ràng buộc với một dual price dương.
Dual price đôi khi được gọi là shadow prices, bởi vì nó cho bạn biết bạn cần trả thêm bao nhiêu đơn vị.
4.1.4. Lingo/Range
Ranges in which the basis is unchanged: Objective Coefficient Ranges
Current Allowable Allowable
Variable Coefficient Increase Decrease GT_BIEN( KW_CR) 395.0000 119.0285 INFINITY GT_BIEN( CDU_NAPH) 0.0 629.1145 INFINITY GT_BIEN( NHT_OFFGAS) 0.0 63535.73 109056.5 GT_BIEN( KHDS_OFFGAS) 0.0 301918.8 INFINITY GT_BIEN( GOHDS_NAPH) 0.0 16756.92 3763.948
Hình phụ lục 3: Bảng Range Report
Sử dụng câu lệnh Range để xuất hiện bảng Range Report (hình phụ lục 3) bảng báo cáo này thể hiện phạm vi bạn có thể:
Thay đổi một hệ số trong hàm mục tiêu mà không gây ra thay đổi của bất kỳ giá trị tối ưu của biến số quyết định.
Thay đổi hệ số của RHS mà không gây ra thay đổi của bất kỳ giá trị tối ưu của Dual Price hoặc Reduced Cost.
Trong phần đầu tiên của bảng báo cáo là tiêu đề « Objective Coefficient Ranges », trong đó:
GVHD: ThS. Nguyễn Quang Thái 56 SVTH: Lâm Hoàng Biết Cột tiếp theo « Current Coefficient », liệt kê các hệ số hiện tại của biến số trong hàng mục tiêu.
Cột tiếp theo « Allowable Increase », liệt kê khoảng cho phép mà chúng ta có thể tăng hệ số của hàm mục tiêu mà không thay đổi những giá trị tối ưu của biến số.
Cột cuối cùng, Allowable Decrease, liệt kê khoảng cho phép mà hệ số hàm mục tiêu của biến số có thể giảm trước khi giá trị tối ưu của các biến số thay đổi.
Phần thứ hai của bản báo cáo có tiêu đề Righthand Side Ranges (hình phụ lục 4), trong đó:
Cột đầu tiên « Row », liệt kê tên của tất cả các hàng tối ưu, hoặc các ràng buộc, trong mô hình.
Cột thứ hai, « Current RHS », là giá trị hiện tại ở cột RHS cho mỗi hàng. Cột tiếp theo « Allowable Increase » và « Allowable Decrease », cho chúng ta biết chúng ta có thể tăng hoặc giảm giá trị RHS một lượng bao nhiêu mà hoàn toàn không làm thay đổi những giá trị tối ưu của Dual Price và Reduced.
GVHD: ThS. Nguyễn Quang Thái 57 SVTH: Lâm Hoàng Biết
4.2. Phân tích kết quả
4.2.1. Kết quả tối ƣu khi phối trộn xăng MG92/95
Hình 4.1 : Kết quả chạy tối ƣu trƣờng hợp Max Propylene phối trộn tạo MG92/95.
Khi chạy được kết quả tối ưu, phần mềm Lingo sẽ báo “Global Optimum”, tức là đã chạy được tối ưu. Còn khi chạy ra kết quả, phần mềm báo “ Infeasible”, tức là phương án tối ưu không khả thi.
Ngoài kết quả về giá trị tối thiểu của hàm kinh tế, trong bản báo cáo kết quả của Lingo cũng đưa ra một giá trị dual price với mỗi ràng buộc, phân tích kết quả ta thấy rằng:
Global optimal solution found.
Objective value: 0.1118087E+08
Tức là chi phí tối thiểu để nhà máy sản xuất ra các sản phẩm LPG, Xăng MG92/95, JETA1, AU.DO, IN.DO, FO, Benzene, Paraxylene, Poly-propylene, Sulphur đáp ứng tất cả các ràng buộc của bài toán là 11,180,873 USD/ngày.
GVHD: ThS. Nguyễn Quang Thái 58 SVTH: Lâm Hoàng Biết
Khi nhu cầu tăng thêm một tấn LPG/ngày
Row Slack or Surplus Dual Price 49 LPG 0.0000000 -512.0000
Ta thấy rằng nếu nhu cầu tăng thêm một tấn LPG/ngày thì hàm kinh tế sẽ tăng lên 512 USD, hay nói cách khác chi phí tối thiểu cần phải trả thêm của hàm mục tiêu để sản xuất thêm 1 tấn LPG/ngày là 512 USD.
Chạy lại kết quả tối ưu cho ta thấy rõ điều đó:
Global optimal solution found.
Objective value: 11,181,385 Khi nhu cầu cần tăng thêm một tấn xăng MG95/ngày
Row Slack or Surplus Dual Price 50 MG95 0.0000000 -574.7300
Chạy lại kết quả tối ưu cho ta thấy rõ điều đó:
Global optimal solution found.
Objective value: 11,181,448 Khi nhu cầu cần tăng thêm một tấn xăng MG92/ngày
Row Slack or Surplus Dual Price 51 MG92 0.0000000 -574.7300
Chạy lại kết quả tối ưu cho ta thấy rõ điều đó:
Global optimal solution found.
Objective value: 11,181,448 Khi nhu cầu tăng thêm một tấn JetA1/ngày
Row Slack or Surplus Dual Price 52 JETA1 0.0000000 -587.8500
GVHD: ThS. Nguyễn Quang Thái 59 SVTH: Lâm Hoàng Biết Chạy lại kết quả tối ưu cho ta thấy rõ điều đó:
Global optimal solution found.
Objective value: 11,181,461 Khi nhu cầu cần tăng thêm một tấn AU-DO/ngày
Row Slack or Surplus Dual Price 53 AU-DO 0.0000000 -527.5653
Chạy lại kết quả tối ưu cho ta thấy rõ điều đó:
Global optimal solution found.
Objective value: 11,181,401 Khi nhu cầu cần tăng thêm một tấn IN.DO/ngày
Row Slack or Surplus Dual Price 54 IN-DO 0.0000000 -526.1300
Chạy lại kết quả tối ưu cho ta thấy rõ điều đó:
Global optimal solution found.
Objective value: 11,181,399 Khi nhu cầu tăng thêm một tấn FO/ngày
Row Slack or Surplus Dual Price 55 FO 0.0000000 -324.2000
Chạy lại kết quả tối ưu cho ta thấy rõ điều đó:
Global optimal solution found.
Objective value: 11,181,197 Khi nhu cầu cần tăng thêm một tấn Benzene/ngày
GVHD: ThS. Nguyễn Quang Thái 60 SVTH: Lâm Hoàng Biết
56 BENZEN 0.0000000 -747.0000
Chạy lại kết quả tối ưu cho ta thấy rõ điều đó:
Global optimal solution found.
Objective value: 11,181,620 Khi nhu cầu cần tăng thêm một tấn Sulphur/ngày
Row Slack or Surplus Dual Price 57 SULPHUR 0.0000000 -37.0000
Chạy lại kết quả tối ưu cho ta thấy rõ điều đó:
Global optimal solution found.
Objective value: 11,180,910 Khi nhu cầu cần tăng thêm một tấn Para-xylene /ngày
Row Slack or Surplus Dual Price 58 PARAXYLENE 0.0000000 -891.000
Chạy lại kết quả tối ưu cho ta thấy rõ điều đó:
Global optimal solution found.
Objective value: 11,181,764. Khi nhu cầu cần tăng thêm một tấn Poly-propylene/ngày
Row Slack or Surplus Dual Price
59 POLY.PRO 0.0000000 -1026.00000
Chạy lại kết quả tối ưu cho ta thấy rõ điều đó:
Global optimal solution found.
GVHD: ThS. Nguyễn Quang Thái 61 SVTH: Lâm Hoàng Biết 4.2.1.1. Phạm vi thay đổi giá trị các hệ số của hàm mục tiêu mà không làm thay đổi bất kì giá trị tối ưu của biến số quyết định.
- Phạm vi thay đổi giá của dầu thô Kuwait:
Ranges in which the basis is unchanged: Objective Coefficient Ranges
Current Allowable Allowable
Variable Coefficient Increase Decrease
GT_BIEN(KW_CR) 395.0000 119.0285 INFINITY
Giá trị biến của dầu thô Kuwait tại thời điểm khảo sát là 395 USD/tấn, sau khi chạy kết quả tối ưu bằng phần mềm Lingo cho ta được kết quả biến thiên về giá của dầu thô Kuwait được phép tăng 119.0285USD và giảm đến vô cùng mà giá trị tối ưu của biến số cũng như phương án sản xuất vẫn không thay đổi.
- Phạm vi thay đổi giá nhập của LPG:
Ranges in which the basis is unchanged: Objective Coefficient Ranges
Current Allowable Allowable
Variable Coefficient Increase Decrease
GT_BIEN(LPGIMP) 513.1800 INFINITY 1.180000
- Phạm vi thay đổi giá nhập MG92
Objective Coefficient Ranges
Current Allowable Allowable
Variable Coefficient Increase Decrease
GVHD: ThS. Nguyễn Quang Thái 62 SVTH: Lâm Hoàng Biết - Phạm vi thay đổi giá nhập MG95
Objective Coefficient Ranges
Current Allowable Allowable
Variable Coefficient Increase Decrease
GT_BIEN(MG95IPM) 582.6000 INFINITY 7.870000
- Phạm vi thay đổi giá nhập JetA1