You are on page 1of 6

PHƯƠNG PHÁP ĐƠN HÌNH ( chính tắc và chuẩn tắc)

Cho bài toán sau:


(3) f(x) = 2x1 + 2x2 + 6x3 -10x4 - x5  max
1
(2) x1 + x2 + 2 x3 -x4 ≤ 5
x1 - 2x2 - 2x3 + 4x4 ≥ -20
-2x1 + 3x2 -x3 + 3x4 + x5 = 3
(1) xj ≥ 0 ∀ j=l,5
Yêu cầu: Giải bài toán bằng phương pháp đơn hình?

Để giải bài toán bằng phương pháp đơn hình, chúng ta cần làm các bước sau trước
khi giải:
Bước 1: Chuyển hàm mục tiêu về Min: ( bằng cách đổi dấu tất cả các hệ số cj
của biến số ở hàm mục tiêu). Còn đối với các bài toán ngay từ đầu đã có f(x) là Min thì
giữ nguyên.
f(x) = -2x1 – 2x2 - 6x3 + 10x4 + x5 -> Min
Bước 2: Kiểm tra vế phải (bi) của các ràng buộc đã là số ≥ 0 hay chưa, nếu
chưa thì phải nhân 2 vế với (-1) để đổi dấu bi.
Như vậy với bài trên thì ta có b2 = - 20 <0, vậy ta phải nhân 2 vế của ràng buộc
này với (-1), ta sẽ được ràng buộc sau:
-x1 + 2x2 + 2x3 – 4x4 ≤ 20
Bước 3: - Kiểm tra các ràng buộc đã có dạng chuẩn tắc hay chưa, nếu chưa thì ta
phải chuyển về chuẩn tắc.
Để chuyển về chuẩn tắc, thì trước hết phải kiểm tra các ràng buộc đã có dạng
chính tắc hay chưa, nếu chưa thì ta phải chuyển về chính tắc đã, sau đó mới từ chính tắc
chuyển về chuẩn tắc.
(Lưu ý: trường hợp chính tắc đồng thời là chuẩn tắc rồi thì giữ nguyên. Còn chính
tắc mà chưa đồng thời là chuẩn tắc thì phải chuyển về chuẩn tắc).
Ràng buộc ban đầu => chính tắc => chuẩn tắc.
* Dạng chính tắc:
Ràng buộc có dạng chính tắc tức là ràng buộc đó có dấu bằng.
Như vậy với bài toán trên ta có RÀNG BUỘC SỐ 3 đã có dạng chính tắc rồi. Còn
ràng buộc 1 và 2 ta phải chuyển về chính tắc, bằng cách:
Với ràng buộc 1: (x1 + x2 + 1/2x3 - x4 ≤ 5), ta thấy vế trái nhỏ hơn vế phải,
vậy để vế trái = vế phải thì ta cộng thêm cho vế trái 1 lượng là x6, x6 ≥ 0. Và x6 về bản
chất nó là ẨN PHỤ ( phụ thêm cho vế trái để vế trái = vế phải), ẨN PHỤ thì có hệ số =
0 ở hàm mục tiêu.
Với ràng buộc 2: (-x1 + 2x2 + 2x3 – 4x4 ≤ 20), cũng tương tự, ta cộng thêm cho
vế trái 1 lượng là x7, x7 ≥ 0. Và x7 về bản chất nó là ẨN PHỤ ( phụ thêm cho vế trái để
vế trái = vế phải), ẨN PHỤ thì có hệ số = 0 ở hàm mục tiêu.
Kết quả như sau:
Dạng chính tắc của Ràng buộc 1: x1 + x2 + 1/2x3 – x4 + x6 =5
Dạng chính tắc của Ràng buộc 2: -x1 + 2x2 + 2x3 – 4x4 + x7 = 20
Vậy chốt lại 3 ràng buộc đã có dạng chính tắc rồi. Hệ thống lại như sau:
x1 + x2 + 1/2x3 – x4 + x6 = 5 (x6 là ẨN CƠ BẢN)
-x1 + 2x2 + 2x3 – 4x4 + x7 = 20 ( x7 là ẨN CƠ BẢN)
-2x1 + 3x2 – x3 +3x4 + x5 = 3 ( x5 là ẨN CƠ BẢN)

* Dạng chuẩn tắc


Là dạng mà các ràng buộc có dấu bằng, và ràng buộc đó có 1 ẩn đóng vai trò làm
ẨN CƠ BẢN.
* ẨN CƠ BẢN là ẩn mà nó tồn tại ở ràng buộc nào thì hệ số của nó ở ràng buộc
đó = 1, các ràng buộc còn lại nó không tồn tại( ko xuất hiện).
Như vậy, với bài toán này, dạng chính tắc đồng thời là chuẩn tắc luôn, vì 3 ràng
buộc đều có dấu = và có ẨN CƠ BẢN rồi.

LÀM LẠI TỪ ĐẦU: ( KHI LÀM BÀI CÁC BẠN LÀM NHƯ DƯỚI ĐÂY LÀ
ĐƯỢC, KO CẦN DÀI DÒNG NHƯ Ở TRÊN), như sau:
Chuyển bài toán về dạng chính tắc:
(3)f(x) = -2x1 -2x2 -6x3 + 10x4 + x5 + 0x6 + 0x7 -> Min
(2) x1 + x2 + 1/2x3 – x4 + x6 =5
-x1 + 2x2 + 2x3 – 4x4 + x7 = 20
-2x1 + 3x2 – x3 + 3x4 + x5 =3
(1) xj ≥ 0, j = 1-> 7
Ta thấy dạng chính tắc của 3 ràng buộc trên đồng thời là dạng chuẩn tắc luôn, vì
mỗi ràng buộc đều có dấu = và có ẩn cơ bản ( x6, x7, x5).
Ví dụ thêm: Chuyển bài toán sau về dạng chuẩn tắc
Câu 1: Xét bài toán QHTT dạng Max:
(3) f(x) = 6x1 + 4x2 → Max
(2) Với các điều kiện ràng buộc:
2x1 + 3x2 ≤ 100
4x1 + 2x2 ≤ 120
(1) x1, x2 ≥ 0
Giải:
Chuyển bài toán về dạng chính tắc:
(3) f(x) = -6x1 – 4x2 + 0x3 + 0x4 -> Min
(2) 2x1 + 3x2 + x3 = 100 ( x3 là ẩn cơ bản)
4x1 + 2x2 + x4 = 120 ( x4 là ẩn cơ bản)
(1) xj ≥ 0, j = 1-> 4
Sau khi chuyển về chính tắc, ta thấy các ràng buộc đều có dấu = và có ẨN CƠ
BẢN, nên dạng chính tắc đồng thời là chuẩn tắc luôn.

* DẠNG CHÍNH TẮC NHƯNG CHƯA ĐỒNG THỜI LÀ CHUẨN TẮC


Ví dụ: chuyển bài toán sau đây về dạng chuẩn tắc
(3) f(x) = 2x1 – 5x2 – 4x3 + 2x4 -> min
(2) 2x1 + x3 – 3x4 ≥ 12
x2 + x3 + 2x4 = 14
4x1 + x3 – 9x4 ≤ 36
3x1 + 2x3 - 5x4 ≤ 23
xj ≥ 0, j = 1-> 4
Giải
Bước 1: Hàm f(x) là dang min rồi nên ta giữ nguyên.
Bước 2: Vế phải của các ràng buộc ( 12, 14, 36, 23) là những số ≥0, nên ta giữ
nguyên.
Bước 3: Chuyển các ràng buộc về dạng chuẩn tắc:
Trước hết, ta chuyển các ràng buộc về dạng chính tắc:
+ Ràng buộc 1 có dấu ≥, vậy để vế trái = vế phải thì ta phải lấy vế trái trừ 1
lượng là x5 để cho vế trái = vế phải, kết quả như sau:
2x1 + x3 – 3x4 - x5 = 12
+ Ràng buộc 2: có dấu =, tức là có dạng chính tắc rồi, ta giữ nguyên
+ Ràng buộc 3: có dấu ≤, vậy để vế trái = vế phải, thì ta phải cộng 1 lượng x6 cho
vế trái, kết quả như sau:
4x1 + x3 – 9x4 + x6 = 36

+ Ràng buộc 4: có dấu ≤, vậy để vế trái = vế phải, thì ta phải cộng 1 lượng x7 cho
vế trái, kết quả như sau:
3x1 + 2x3 - 5x4 + x7 = 23

Hệ thống lại như sau:


* Chuyển về chính tắc
(3) f(x) = 2x1 – 5x2 – 4x3 + 2x4 + 0x5 + 0x6 + 0x7-> min
(2) 2x1 + x3 – 3x4 - x5 = 12 (chính tắc nhưng chưa chuẩn tắc, vì
chưa có ẩn cơ bản).
x2 + x3 + 2x4 = 14 ( x2 là ẨN CƠ BẢN)
4x1 + x3 – 9x4 + x6 = 36 (x6 là ẨN CƠ BẢN)
3x1 + 2x3 - 5x4 + x7 = 23 (x7 là ẨN CƠ BẢN)
xj ≥ 0, j = 1-> 7
Về bản chất, x5, x6, x7 là ẩn phụ, ẩn phụ thì có hệ số = 0 ở hàm mục tiêu
Ràng buộc 2, 3, 4 đã có ẩn cơ bản rồi ( x2, x6, x7). Còn ràng buộc 1 chưa có dạng
chuẩn tắc, vì chưa có ẩn cơ bản, nên ta chuyển về chuẩn tắc như dưới đây, bằng cách
cộng thêm cho vế trái của ràng buộc 1 một lượng là x8, lúc này x8 đóng vai trò làm ẩn cơ
bản.

*Chuyển về chuẩn tắc


(3) f(x) = 2x1 – 5x2 – 4x3 + 2x4 + 0x5 + 0x6 + 0x7 + Mx8 -> min
(2) 2x1 + x3 – 3x4 - x5 + x8 = 12 (sau khi thêm x8 thì x8 làm ẩn cơ bản)
x2 + x3 + 2x4 = 14 (x2 là ẩn cơ bản)
4x1 + x3 – 9x4 + x6 = 36 (x6 là ẩn cơ bản)
3x1 + 2x3 - 5x4 + x7 = 23 (x7 là ẩn cơ bản)
Xj ≥ 0, j = 1-> 8

Như vậy ràng buộc 1 ta thêm x8. x8 ta thêm trong trạng thái là ràng buộc 1 đã có 2
vế bằng nhau rồi. như vậy x8 khi giải ra phải có kết quả = 0. x8 gọi là ẩn giả ( giả đò). ẩn
giả thì có hệ số là M ở hàm mục tiêu. M là số dương bất kỳ ( với bài toán Min), là số âm
bất kỳ với bài toán Max.
CHỐT LẠI:
Khi đã quen rồi, thì ràng buộc nào ta làm chuyển về chuẩn tắc dứt điểm cho ràng
buộc đó luôn, Như sau:
(3) f(x) = 2x1 – 5x2 – 4x3+ 2x4 + 0x5 + Mx6 + 0x7 + 0x8-> Min
(2) 2x1 + x3 -3x4 –x5 + x6 = 12 ( x6 là ẨN CƠ BẢN)
x2 + x3 + 2x4 = 14 ( x2 là ẨN CƠ BẢN)
4x1 + x3 -9x4 + x7 = 36 ( x7 là ẨN CƠ BẢN)
3x1 + 2x3 – 5x4 + x8 = 23 ( x8 là ẨN CƠ BẢN)
(1) xj ≥ 0, j = 1-> 8

*CHỐT LẠI CÁCH CHUYỂN VỀ CHUẨN TẮC CHO TẤT CẢ CÁC DẠNG
BÀI:
Chúng ta thống nhất theo cách làm này từ đây về sau. ( tức là ràng buộc nào thì
chuyển về chuẩn tắc dứt điểm cho ràng buộc đó luôn, rồi mới đến các ràng buộc tiếp
theo).

Nguyên tắc khi chuyển về chuẩn tắc là:


+ Ràng buộc có dấu = một số dương, và có ẩn cơ bản rồi thì giữ nguyên
+ Ràng buộc có dấu = một số dương, nhưng chưa có ẩn cơ bản, thì phải cộng thêm 1 biến
số cho vế trái để làm ẩn cơ bản, biến số này về bản chất nó là ẨN GIẢ, có hệ số M ở hàm
mục tiêu.
+ Ràng buộc có dấu ≤ một số dương, thì ta cộng cho vế trái 1 biến số, về bản chất, biến
số này là ẩn phụ, có hệ số =0 ở hàm mục tiêu, và biến số này đóng vai trò làm ẩn cơ bản
luôn.
+ Ràng buộc có dấu ≥ một số dương, thì ta lấy vế trái trừ 1 biến số, về bản chất, biến số
này là ẩn phụ, có hệ số = 0 ở hàm mục tiêu. Vì hệ số của nó là -1 nên không thể đóng vai
trò làm ẩn cơ bản được, nên ta phải cộng thêm cho vế trái 1 biến số nữa, biến số này về
bản chất là ẨN GIẢ, có hệ số là M ở hàm mục tiêu, và nó đóng vai trò làm ẩn cơ bản
luôn.
Ví dụ thêm:
Câu 9 sgk: chuyển bài toán sau về dạng chuẩn tắc:
f(x) = 3x1 + x2 +5x3 + 3x4 -> max
3x1 + x2 + 2x3 = 30
2x1 + x2 + 3x3 + x4 ≥ 15
2x2 + 3x4 ≤ 25
xj ≥ 0, j = 1-> 4
Giải:
Chuyển về chuẩn tắc như sau:
f(x) = -3x1 - x2 - 5x3 - 3x4 + Mx5 + 0x6 + Mx7 + 0x8 -> min
3x1 + x2 + 2x3 + x5 = 30 ( x5 là ẩn cơ bản )
2x1 + x2 + 3x3 + x4 - x6 + x7 = 15 ( x7 là ẩn cơ bản)
2x2 + 3x4 + x8 = 25 ( x8 là ẩn cơ bản)
xj ≥ 0, j = 1-> 8

-------------------//----------------------

You might also like