Bạn có thể thêm một biến và một đẳng thức tuyến tính cho một số . Sau đó, vấn đề ban đầu tương đương với tối đa hóa trong hệ thống mới.yy=cTx+c0c0y
Ngoại trừ điều kiện . Đó là nơi xuất hiện. Chúng ta cần làm cho đủ lớn để một số khả thi (đó là và giữ) chúng ta có . Trong trường hợp đó, không có vấn đề gì là không tiêu cực cắt đi các phần của không gian khả thi. Giá trị tối ưu vẫn như cũ.y≥0c0c0xAx=bx≥0cTx+c0≥0
Vậy làm thế nào để chọn ? Tôi không phải là một chuyên gia về tối ưu hóa tuyến tính. Việc tìm kiếm một số khả thi dễ hơn tìm kiếm tối đa hóa chức năng mục tiêu không? Nếu vậy, chúng ta có thể lấy thành .c0x0c0−cTx0
Nếu các hệ số đã cho là hợp lý, có một cách khác. Trước tiên, chúng ta hãy xác định rằng đa giác của khả thi có các đỉnh (trừ khi nó trống): Gọi là một điểm trong một ô ranh giới chiều tối thiểu của đa giác đã nói. Đối với mâu thuẫn, giả sử rằng kích thước của ô này là . Sau đó, có một điểm khác nhau trong cùng một ô. Vì ô có kích thước tối thiểu, nó không bị chặn, do đó, các điểm có dạng nằm trong cùng một ô và do đó trong đa giác. Vì , một số như vậy có tọa độ âm, mâu thuẫn với điều kiện đa giác .xp≥1qr=p+t(q−p)q−p≠0rr≥0
Bây giờ, tạo tất cả các hệ số của số nguyên và bằng cách nhân với mẫu số chung. Đặt là thứ nguyên (chiều dài của vectơ ) và gọi là giá trị tuyệt đối lớn nhất của bất kỳ hệ số nào của , hoặc . Sau đó, chúng ta có thể ràng buộc tọa độ của bất kỳ đỉnh nào của đa giác khả thi bằng . Do đó, chọn .AbncMAbcn!⋅Mnc0:=n⋅n!⋅Mn+1
[BIÊN TẬP]
Tuy nhiên, một cách tiếp cận khác, trong trường hợp bạn sẵn sàng gọi nhà tiên tri nhiều lần: Đầu tiên, hãy thử cách trên với . Nếu bạn nhận được một giải pháp hoặc câu trả lời "không giới hạn", bạn vẫn ổn. Nếu câu trả lời là "không thể giải quyết", bạn cần tìm hiểu xem có giải pháp nào có chức năng mục tiêu tiêu cực không. Do đó, đặt và tối đa hóa thay thế. Nếu bạn nhận được giải pháp, bạn có thể sử dụng nó dưới dạng . Nếu bạn nhận được "không thể giải quyết" một lần nữa, bạn cũng đã hoàn thành. Trường hợp cuối cùng là câu trả lời "không giới hạn". Sau đó, bạn cần dùng thử lớn hơn bao giờ hết (đối với một vài cuộc gọi tiên tri, hãy sử dụng chức năng phát triển nhanh; chức năng Ackermann có thể làm) cho đến khi bạn nhận được giải pháp.c0=0z=−cTzx0c0