c B, đượ gọi là nhân tử đơn hình, ũng đóng một vai trò quan trọng trong việ xá định giá trị đơn vị ủa á tài nguyên.
DISCLIMIT 4 MAXWASTE 0/
MAXWASTE 0/
Các câu lệnh trên khai báo sự tồn tại của hai tham số (PARAMETER) CC (A) với miền giá trị A và RHS (C) với miền giá trị C. Miền giá trị là một tập hợp mà trên đó một tham số, biến hoặc một biểu thức được định nghĩa. Phát biểu trên cũng cung cấp một nội dung văn bản cho mỗi tham số và gán giá trị của CC(A) và RHS (C). Bảng dưới đây sẽ định nghĩa toàn bộ các nhập liệu còn lại và là các hệ số trong các ràng buộc.
TABLE COEFF(C,A) Coefficients in constraints GOODS WASTE
PLANTCAP 2 -1
DISCLIMIT 0,4 0,8
MAXWASTE 2 – 1
Việc khai báo biến quyết định trong mô hình GAMS phải được thực hiện với lệnh VARIABLES. Mỗi biến được đặt bởi một tên, một miền giá trị nếu cần và một đoạn văn bản tùy ý. Câu lệnh khai báo biến cho ví dụ về sử lý nước thải như sau:
VARIABLES X(A) decision variables MAXBENEFIT
POSITIVE VARIBALES x;
GAMS là một ngôn ngữ mô hình hóa đại số cho phép một nhóm các phương trình hoặc bất phương trình của một mô hình được tạo ra đồng thời (không riêng lẻ). Ví dụ sau sẽ khải báo phương trình cho nhà máy xử lí nước thải.
EQUATIONS C1 plant capacity constraint C2 waste discharge limit constraint C3 no more waste constraint
Các ràng buộc được định nghĩa trong ví dụ 3.1.1 và hàm mục tiêu là tối đa hóa lợi nhuận.
Các phép tính tổng dựa trên tư tưởng rằng một phép tổng là một phép toán có hai gia số, SUM(chỉ số của tổng, số bị cộng), là chỉ số của phép tổng và số bị cộng. Như một ví dụ, ràng buộc về công suất của nhà máy xử lí nươc thải có dạng tổng quát jci,jxj là A COEFF (C, A) *X (A) trong đó
C là i, A là j, COEFF(C, A) là ci.j, X (A) là Xj và * là một phép toán nhân. Các thành phần của định nghĩa phương trình theo thứ tự là: 1) Tên của phương trình; 2) Miền giá trị; 3) Các điều kiện hạn chế miền giá trị tối ưu; 4) Các ký hiệu; 5) Biểu thức vế trái (LHS); 6) Các phép toán quan hệ (nhỏ hơn hoặc bằng =L=, lớn hơn hoặc bằng =G=, bằng =E-); 7) Biểu thức vế phải (RHS).
Một tập hợp hoàn chỉnh các ràng buộc được định nghĩa như sau: Ràng buộc công suất (i,ci,jxjbi) là
Cl. .SUM (A, COEFF ('PLANTCAP', A) *. X(A) =L= RHS ('PLANTCAP')
Như được định nghĩa ở trên thì RHS( ) định nghĩa vế phải (bi) của ràng buộc và ràng buộc này nhỏ hơn hoặc bằng ràng buộc. Tập hợp phức tạp của phương trình là:
Cl..SUM (A, COEFF ('PLANTCAP', A)*X(A) ..=L= RHS('PLANTCAP'); C2..SUM (A, COEFF ('DISCLIMIT', A)*X(A) =L=RHS('DISCLIMIT'); C3..SUM (A, COEFF ('MAXWASTE', A)*X(A) =G=RHS('MAXWASTE'); PROFIT..SUM (A, CC (A) * X(A)=E- MAXBENEFIT
GAMS không sử dụng một thành phần làm hàm mục tiêu. Một biến được sử dụng để chỉ định hàm sẽ được tối ưu hóa. Biến này không bị hạn chế về dấu và là giá trị vô hướng (không dùng miền giá trị) trong việc định nghĩa phương trình. Trong định nghĩa trên thì từ MAXBENEFIT được dùng để định nghĩa mục tiêu.
Các câu lệnh của mô hình, của phép giải và hiện thị đến đây sẽ được giải thích rõ. Trong mô hình GAMS từ khoá MODEL được sử dụng với đúng ý nghĩa của nó là một tập hợp các phương trình. MODEL được gán một tên trong câu lệnh khai báo bằng việc sử dụng từ khóa MODEL và theo sau là tên của mô hình, tiếp theo sau là danh sách tên các phương trình đặt trong cặp dấu “/ /”. Nếu tất cả các phương trình đã được định nghĩa trước đây được xét tới trong mô hình thì từ “/ALL/” được sử dụng để thay thế cho danh sách này. Đối với ví dụ về nhà máy sản xuất - xử lí nước thải, câu lệnh khai báo mô hình (MODEL) như sau: