5. Nội dung nghiên cứ u
1.6.1 Giới thiệu chương trình GAMS
GAMS được phát triển để giải quyết vấn đề tối ưu toán học lớn và có thể
giải quyết được nhiều bài toán tối ưu như [73]:
- Bài toán qui hoạch tuyến tính - LP (Linear Programming)
- Bài toán qui hoạch phi tuyến - NLP (Nonlinear Programming)
- Bài toán qui hoạch phi tuyến rời rạc - DNLP (Nonlinear Programming with Discontinuous derivatives)
- Bài toán qui hoạch nguyên thực hỗn hợp - MIP (Mixed Integer Programming), RMIP (Relaxed Mixed Integer Programming)
- Bài toán qui hoạch phi tuyến nguyên thực hỗn hợp - MINLP (Mixed Integer Nonlinear Programming), RMINLP (Relaxed Mixed Integer Nonlinear Programming)…
Cần phải nhấn mạnh rằng, GAMS không phải là một chương trình ứng dụng sẵn trong HTĐ như WASP-III, EMTP, PSS/E, PSS/ADEPT… mà là một
công cụ, một ngôn ngữ máy, để xây dựng các chương trình tính toán dựa trên sự
hiểu biết đầy đủ về HTĐ [32].
Qua quá trình phát triển, GAMS đã được ứng dụng rộng rãi trong nhiều lĩnh vực và rất thành công trong lĩnh vực tính toán qui hoạch, tối ưu HTĐ cũng như
HTCCĐ [61][70][82][124]. GAMS là chương trình cho phép lập các bài toán tối
ưu với những mô hình lớn và phức tạp. Mô hình được trình bày ngắn gọn và đơn giản, cho phép sử dụng những liên hệđại số và miêu tả mô hình độc lập với giải thuật tính toán. Hơn nữa, GAMS cung cấp một số thuật toán giải bài toán tối ưu qua các solver được xây dựng sẵn như trong bảng 1.2 [73].
Bảng 1.2 Modul các thuật toán giải trong GAMS
TT Loại bài toán Thuật toán giải (Solvers)
1 LP MINOS, ZOOM, MPSX, SCICONIC, OSL, XA, CPLEX, SNOPT, BDMLP 2 NLP MINOS, CONOPT, GRP, NPSOL, PATHNLP
3 DNLP MINOS, CONO, SNOPT
4 MIP, RMIP BDMLP, CPLEX, CPLEXPAR, OSL, XA, ZOOM 5 MILP ZOOM, MPSX, SCICONIC, OSL, XA
6 MINLP, RMINLP DICOPT, SBB, MINOS, BONMIN
Ø Cấu trúc chương trình
Cấu trúc chương trình lập trong GAMS gồm những thành phần cơ bản sau: i) Set (khai báo kích thước các mảng số liệu)
ii) Scalar, parameter, table (khai báo và nhập số liệu) iii) Variables (khai báo biến)
iv) Equations (khai báo và xây dựng các phương trình toán như hàm mục tiêu, ràng buộc, giới hạn…)
v) Model và Solver (xây dựng bài toán và gọi thuật toán giải) vi) Output (in kết quả)
Mọi bài toán tối ưu đều có thể lập trên GAMS bằng những thành phần cơ
bản trên. Phần nhập số liệu đầu vào có thể thực hiện đơn giản dưới dạng gán trực tiếp, dạng vector hoặc dưới dạng bảng. Giống như các ngôn ngữ lập trình khác, GAMS có thể sử dụng các lệnh chuẩn như IF-THEN, WHILE, LOOP…
Phần linh hoạt nhất trong GAMS là phần xây dựng bài toán MODEL với một MODEL bao gồm hàm mục tiêu và các phương trình ràng buộc. Người sử
dụng có thể lập nhiều MODEL bằng cách thay đổi số phương trình ràng buộc và hàm mục tiêu mà không phải thay đổi cấu trúc chương trình. Tính năng này rất hữu dụng khi cần giải quyết một vấn đề với nhiều ràng buộc khác nhau.
GAMS đã được ứng dụng rất nhiều trong lĩnh vực tính toán qui hoạch và tối
ưu HTĐ với một số bài toán nổi bật như: i) Qui hoạch nguồn và lưới điện
ii) Lựa chọn vị trí và công suất tối ưu của tụ điện, DG, hệ thống tích trữ
năng lượng và thiết bị FACTS iii) Vận hành tối ưu các nhà máy điện iv) Vận hành tối ưu HTĐ…