Các mô hình trong biểu mẫu này thực sự được gọi là các vấn đề tối ưu hóa song tuyến. Cách tiếp cận điển hình cho các thuật ngữ tuyến tính bilinear là thông qua một cái gì đó gọi là phong bì McCormick.
Xem xét các biến x và y, trong đó bạn muốn x*y
trong mục tiêu của vấn đề tối đa hóa của bạn. Nếu chúng ta giả sử x và y được bao bọc bởi xL <= x <= xU
và yL <= y <= yU
, sau đó chúng ta có thể thay thế x*y
với w
, một giới hạn trên cho số lượng, với những hạn chế sau đây (bạn sẽ nhìn thấy nguồn gốc here):
w <= xU*y + x*yL - xU*yL
w <= x*yU + xL*y - xL*yU
xL <= x <= xU
yL <= y <= yL
Lưu ý rằng những ràng buộc này là tất cả tuyến tính trong các biến quyết định. Có giới hạn dưới tương ứng trong phong bì McCormick, nhưng vì bạn đang tối đa hóa chúng không quan trọng trong trường hợp của bạn.
Nếu bạn muốn giới hạn chặt chẽ hơn trên x*y
, bạn có thể chia khoảng thời gian trên một trong các biến (tôi sẽ sử dụng x ở đây) thành các phạm vi [xL1, xU1], [xL2, xU2], ..., [xLn, xUn], giới thiệu các biến liên tục phụ trợ {x1, x2, ..., xn} và {w1, w2, ..., wn} cũng như các biến nhị phân phụ trợ {z1, z2, ..., zn} , sẽ cho biết phạm vi giá trị x nào đã được chọn. Những hạn chế trên có thể được thay thế bằng (Tôi sẽ chỉ cho trường hợp chỉ số 1, nhưng bạn sẽ cần những cho tất cả các chỉ số n):
w1 <= xU1*y + x1*yL - xU1*yL*z1
w1 <= x1*yU + xL1*y - xL1*yU*z1
xL*z1 <= x1 <= xU*z1
Về cơ bản, bạn sẽ có x1 = 0 và W1 < = 0 khi z1 = 0 (hay còn gọi là phần này không được chọn), và bạn sẽ có phong bì McCormick bình thường nếu z1 = 1 (hay còn gọi là phần này của phạm vi được chọn).
Bước cuối cùng là tạo x và w trong số các phiên bản cụ thể theo phạm vi của các biến này. Điều này có thể được thực hiện với:
x = x1 + x2 + ... + xn
w = w1 + w2 + ... + wn
Lớn hơn bạn thực hiện n, chính xác hơn ước tính bạn sẽ có cho thuật ngữ song tuyến. Tuy nhiên giá trị lớn của n sẽ ảnh hưởng đến khả năng giải quyết của mô hình của bạn.
Một lưu ý cuối cùng - bạn chỉ ra rằng một trong các biến của bạn không bị chặn, nhưng phong bì McCormick yêu cầu giới hạn trên cả hai biến. Bạn nên sửa các giới hạn, giải quyết và nếu giá trị tối ưu của bạn ở ranh giới thì bạn nên giải quyết lại với một ranh giới khác.
Nếu bạn có sản phẩm của ba biến, hãy nói 'w = x * y * z'? – thefoxrocks
@ McLean25 Vâng, bạn có thể ước tính 'w = x * y' và xấp xỉ' k = w * z', cả hai đều sử dụng phong bì McCormick. Sau đó, 'k' sẽ là xấp xỉ của bạn. – josliber
Tất nhiên ... cảm ơn ngài. – thefoxrocks