Tải bản đầy đủ (.pdf) (74 trang)

Bài giảng Toán tối ưu hóa - bài toán vận tải - Đại Học Ngân Hàng Thành Phố Hồ Chí Minh

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (930.44 KB, 74 trang )

TRƯỜNG ĐẠI HỌC KINH TẾ TP.HCM
ThS. PHẠM TRÍ CAO

www37.websamba.com/phamtricao HOẶC www.phamtricao.web1000.com

2005


LỜI NÓI ĐẦU

Bạn đọc thân mến.
Tập bài giảng này biên soạn dành cho sinh viên hệ chính quy, học viên luyện thi cao học của
trường đại học Kinh tế Tp.HCM.
Bài giảng này là sự đúc kết kinh nghiệm nhiều năm trong quá trình giảng dạy môn Tối ưu hóa
(Quy hoạch tuyến tính).
Bài giảng được biên soạn dựa trên các đề thi học kỳ, đề thi tuyển sinh cao học của trường đại học
Kinh tế Tp.HCM. Bài giảng được biên soạn dựa trên các thắc mắc, câu hỏi của sinh viên trong quá
trình giảng dạy.
Trong bài giảng chủ yếu trình bày các mô hình toán kinh tế và thuật toán, phương pháp giải mà
không đi sâu vào cơ sở lý thuyết. Nếu muốn tìm hiểu sâu hơn về mặt lý thuyết và các dạng toán
mở rộng – nâng cao, các bạn cần xem thêm các tài liệu chuyên ngành toán kinh tế.
Bài giảng được biên soạn trên tinh thần “Đơn giản–Tự học“ và với tiêu chí là “Dừa–Đủ–Xoài“
Mong rằng khi đọc xong tập bài giảng này thì bạn sẽ cảm thấy tâm hồn nhẹ nhàng, thư thái; tinh
thần thoải mái khi bước vào phòng thi !!!
Mọi góp ý về sai sót của bài giảng xin gởi về địa chỉ mail: phamtricao@ ueh.edu.vn

Tp.HCM, tháng 10 năm 2005


CHƯƠNG TRÌNH HỌC (45 tiết)
Chương 1: Bài toán Quy hoạch tuyến tính


-Các khái niệm và định nghóa về bài toán QHTT
−Bài toán QHTT tổng quát
−Bài toán QHTT dạng chính tắc
−Bài toán QHTT dạng chuẩn tắc
-Phương pháp hình học giải bài toán QHTT 2 biến
-Phương pháp đơn hình giải bài toán QHTT (dạng chuẩn, minf)
-Thuật toán đơn hình và đơn vị đo của biến
-Phương án cực biên suy biến, hiện tượng xoay vòng
-Vấn đề về phương án cực biên ban đầu − Bài toán (M)
-Phương pháp đơn hình giải bài toán QHTT (dạng chuẩn, maxf)
-Giải bài toán QHTT tổng quát
-Vấn đề về phương án tối ưu duy nhất
Chương 2: Bài toán Quy hoạch tuyến tính đối ngẫu
-Cách thành lập bài toán QHTT đối ngẫu
-Các định lý đối ngẫu
-Các ví dụ dùng định lý đối ngẫu (định lý độ lệch bù) để giải bài toán đối ngẫu
Chương 3: Bài toán vận tải
-Các khái niệm về bài toán vận tải cân bằng thu phát (BT vận tải cổ điển)
-Thuật toán thế vị giải BTVT (Cân bằng thu phát, f min)
-Trường hợp có pa cực biên không suy biến
-Trường hợp gặp pa cực biên suy biến
-BTVT không cân bằng thu phát
−Bài toán có tổng phát < tổng thu
−Bài toán có tổng phát > tổng thu
-BTVT có ô cấm
-BT dạng vận tải có f max
-Vấn đề về phương án tối ưu duy nhất
-BT xe không



GIÁO TRÌNH THAM KHẢO
1) Chủ biên: Bùi Phúc Trung
Giáo trình Tối ưu hóa (Quy hoạch tuyến tính) – Trường ĐHKT
2) Trần Gia Tùng – Vũ Thị Bích Liên – Hoàng Đức Hải
Toán kinh tế –Trường ĐH TCKT
3) Nguyễn Thành Cả
Toán kinh tế * Phần QHTT – Trường ĐHKT
4) Bùi Thế Tâm –Trần Vũ Thiệu
Các phương pháp tối ưu hóa – NXB GTVT
5) Bùi Minh Trí
Quy hoạch toán học – NXB KHKT
6) Phan Quốc Khánh
Quy hoạch tuyến tính – NXB GD
7) Trần Túc
Bài tập quy hoạch tuyến tính – NXB KHKT
8) Đặng Văn Uyên
Quy hoạch tuyến tính – NXB GD
9) Lê Văn Hợp
Giáo trình quy hoạch tuyến tính – ĐH Tổng hợp Tp.HCM
10) Chủ biên: Hoàng Ngọc Nhậm
Tài liệu ôn thi Cao học kinh tế: Môn toán kinh tế  Trường ĐHKT
11) Lê Khánh Luận
Lý thuyết, bài tập, bài giải Quy hoạch tuyến tính (Tối ưu hóa)  NXB Lao Động 2006


Tối ưu hóa * Chương 1: Bài toán Quy hoạch tuyến tính

CHƯƠNG I: BÀI TOÁN QUY HOẠCH TUYẾN TÍNH
I) CÁC KHÁI NIỆM:
1) Các ví dụ dẫn đến bài toán QHTT

VD1.1: Lập kế hoạch sản xuất
Một XN có 3 loại nguyên liệu khác nhau: A, B, C với lượng dự trữ tối đa là 10, 16, 20 tấn. Người ta
dùng để sản xuất 4 loại sản phẩm I, II, III, IV. Định mức kỹ thuật về từng loại nguyên liệu để sản
xuất ra 1 tấn sản phẩm và tiền lãi của mỗi loại sản phẩm cho trong bảng sau:
Loại nguyên
Dự trữ
liệu

Định mức kỹ thuật
I
II
III
IV

A (tấn)
10
B (tấn)
16
C (tấn)
20
Lãi (triệu đ/tấn)

1
2
3
4

2
1
1

5

2
1
2
6

3
2
2
4

Hãy lập kế hoạch sản xuất các loại sản phẩm sao cho thỏa mãn yêu cầu hạn chế về nguyên liệu,
đồng thời tổng số tiền lãi thu được lớn nhất
HD:
Gọi xj là số tấn sp loại j cần sản xuất, j =1,4
Bài toán là: Tìm véc tơ x=(x1, x2, x3, x4) sao cho:
max
f(x) = f(x1, x2, x3, x4) = 4x1+5x2+6x3+4x4
x1 + 2x2+ 2x3+ 3x4 <=10
2x1 + x2+ x3+ 2x4 <=16
3x1 + x2+ 2x3+ 2x4 <=20
xj >= 0 , j=1,4
Đây là bài toán cực trị có điều kiện của hàm nhiều biến. Ta không dùng kiến thức giải
tích−toán cao cấp để giải mà sẽ đưa ra phương pháp giải đặc trưng cho dạng toán này.
Giải bài toán trên ta được kết quả x= (5, 0, 5/2 , 0)

và fmax = 35

VD1.2: Định khẩu phần thức ăn

Để nuôi 1 loại gia súc, một đội sản xuất dùng 3 loại thức ăn T1, T2, T3. Trong 3 loại thức ăn đó có
chứa 3 loại chất dinh dưỡng A, B, C. Số đơn vị chất dinh dưỡng (g) có trong 1 đơn vị thức ăn (kg)
như sau:
Chất dd
A
B
C

Số đv chất dd có trong 1 đv thức ăn
T1
T2
T3
1
2
3
2
1
2
1
1
1

Nhu cầu tối thiểu trong khẩu phần hàng ngày của gia súc là: 10, 12, 14 đv chất A, B, C.
Giá thức ăn mỗi loại là 3, 5, 7 (ngàn đ/kg). Hãy xác định lượng thức ăn mỗi loại cần có trong khẩu
phần ăn hàng ngày để đảm bảo yêu cầu về chất dinh dưỡng, đồng thời tổng số tiền mua thức ăn
hàng ngày là nhỏ nhất
HD:
Gọi xj là số đơn vị thức ăn (kg) loại Tj cần cho ăn hàng ngày, j=1,3.
Bài toán là:
Tìm x =(x1, x2, x3) sao cho:

min
f(x) = f(x1,x2,x3) = 3x1+5x2+7x3

1


www37.websamba.com/phamtricao ThS. Phạm Trí Cao * 2005 www.phamtricao.web1000.com

x1+2x2+3x3 >=10
2x1+ x2+2x3 >=12
x1+ x2+ x3 >=14
xj >= 0 , j=1,3
Giải bài toán trên ta được x =(14, 0, 0) và fmin = 42
VD 1.3: Bài toán phân bổ vốn đầu tư
Một người có 70 triệu đồng muốn cho vay theo các loại hình sau:
-Tiết kiệm không kỳ hạn với lãi suất 5%
-Tiết kiệm có kỳ hạn với lãi suất 8%
-Mua tín phiếu với lãi suất 10%
Thời gian đáo hạn cho là như nhau. Để giảm rủi ro, người này cho vay theo chỉ dẫn tư vấn như sau:
-Mua tín phiếu và tiết kiệm có kỳ hạn ít nhất 70% vốn
-Số tiền mua tín phiếu không vượt quá 2 loại hình còn lại
-Cho vay toàn bộ số tiền
Cho biết kế hoạch đầu tư sao cho lợi nhuận tối đa
HD:
Gọi x1 , x2 , x3 (triệu đ) lần lượt là số tiền đầu tư vào: TK có kỳ hạn, tín phiếu, TK không kỳ hạn
Bài toán là: Tìm x=(x1, x2, x3) sao cho:
f(x) = 0,08x1 +0,1x2 +0,05x3
max
>= 49
x1 +x2

x1 –x2 +x3 >= 0 ⇔ x2 <= x1 +x3
x1 +x2 +x3 = 70
xj >= 0 , j=1,3
Giải bài toán trên ta được x= (35, 35, 0) và fmax = 6,3
2) Bài toán QHTT tổng quát
Tìm x = (x1,x2,...,xn) sao cho:
f(x) =

n



cj xj

min (max)

(1)

j =1

(*)

n



aij xj ( <= , = , >= ) bi

, i =1,m


(2)

j =1

xj

( >=0 , <=0 , tùy ý ) ,

j=1,n

(3)

– Các bi gọi là các hệ số tự do.
– Các cj gọi là các hệ số hàm mục tiêu
– aij gọi là hệ số các ràng buộc chung
-f(x) gọi là hàm mục tiêu
-Hệ (*) gọi là hệ ràng buộc: (2) gọi là ràng buộc chung
(3) gọi là ràng buộc biến
-Véc tơ x gọi là 1 phương án (PA) nếu x thỏa (*)
-Tập hợp tất cả các PA gọi là miền ràng buộc. Ký hiệu D, X, Y,…
-Một PA làm cho hàm mục tiêu đạt cực tiểu (ứng với BT minf) hoặc cực đại (ứng với BT maxf) gọi
là phương án tối ưu (patư). Ký hiệu x* hoặc x0pt
Nghóa là:
BT min: ∀x∈D: f(x) >= f(x*)
BT max: ∀x∈D: f(x) <= f(x*)
-Bài toán QHTT có patư gọi là bài toán giải được
-Giải bài toán QHTT là tìm các patư của nó (nếu có)
-Hai bài toán QHTT gọi là tương đương nhau nếu chúng có chung tập patư

2



Tối ưu hóa * Chương 1: Bài toán Quy hoạch tuyến tính
Câu hỏi: Tại sao trong hệ ràng buộc (*) ta chỉ xét dấu ≥ hoặc dấu ≤ mà không xét
dấu > hoặc <
Chuyển bài toán max về bài toán min:
f(x)
max

g(x)= −f(x)
min
x∈D
x∈D

Câu hỏi: Chứng minh 2 bài toán là tương đương nhau
Phương án cực biên (pa cơ bản) của BT QHTT tổng quát


Một ràng buộc gọi là chặt đối với pa x nếu xãy ra dấu bằng, thí dụ

n



aij xj = bi

j =1

Một ràng buộc gọi là lỏng đối với pa x nếu xãy ra dấu bất đẳng thức thực sự, thí dụ


n



aij xj > bi

j =1

Khái niệm chặt, lỏng xét cho cả ràng buộc chung và ràng buộc biến.
• Một pa có n ràng buộc chặt độc lập tuyến tính gọi là pacb.
− Một pacb có đúng n ràng buộc chặt gọi là pacb không suy biến
− Một pacb có nhiều hơn n ràng buộc chặt gọi là pacb suy biến
• Một pa có ít hơn n ràng buộc chặt độc lập tuyến tính gọi là pa không cực biên.
Lưu ý: Số ràng buộc chặt đltt <= n (số biến)
số ràng buộc chặt đltt <= số ràng buộc chặt
HD cách làm:
B1) Kiểm tra x là pa của bài toán: kiểm tra x thỏa các điều kiện ràng buộc. Xác định các ràng
buộc chặt, lỏng.
B2) Kiểm tra x là pacb:
số ràng buộc chặt đltt = n (số biến)?
B21) Nếu đúng: x là pacb.
kiểm tra có suy biến hay không:
Số ràng buộc chặt đltt = số ràng buộc chặt?
B21.1) Nếu đúng: x là pacbksb
B21.2) Nếu sai: x là pacbsb
B22) Nếu sai: x là pa không cb (x không là pacb)
Ví dụ 1: f=3x1+4x2−6x3+7x4 −−> min
2x1+x2+x3 −x4 <=3
−x1+x2−x3+2x4 >=−1
x1>=0, x2>=0, x3>=0, x4<=0

1) x=(0,1,2,0) laø pacbksb?
2) x=(0,3,0,0) laø pacbksb?
3) x=(0,0,0,0) laø pacbksb?
4) x=(0,1,1,0) là pakcb?
Ví dụ 2: f=3x1+4x2−6x3+7x4 −−> min
2x1+ x2+ x3 −x4 <=3
−x1+ x2− x3+2x4 >=−1
x1+4x2−2x3+ x4 =0
x1>=0, x2>=0, x3>=0, x4<=0
x=(0,1,2,0) laø pacbsb?

3


www37.websamba.com/phamtricao ThS. Phạm Trí Cao * 2005 www.phamtricao.web1000.com

3) Dạng chính tắc của bài toán QHTT
f(x) =

n



cj xj

min (max)

(1)

j =1

n



aij xj = bi

, i=1,m

(2)

j =1

xj >= 0 , j=1,n
Đặt:
A=

a11 a12 .... a1n
a21 a22 .... a2n
............................
am1 am2 ...... amn

(3)

b1
b2
....
bm

b=


Ta viết bài toán (1)-(3) dưới dạng ma trận:
f(x) = <c,x>
min (max)
Ax = b
x >= 0
Với quy ước: (x1,x2,...,xn) >= (y1,y2,...yn) ⇔

x=

x1
x2
.....
xn

c = (c1,c2,....,cn)

xj >= yj , j=1,n

Bất kỳ bài toán QHTT tổng quát nào cũng có thể đưa về dạng chính tắc bằng các phép biến đổi
tuyến tính sau:
* Ràng buộc biến: Nếu xj <=0 thì ta đặt x’j = −xj >=0
Nếu xj bất kỳ thì ta đặt xj = xj+ − xj−
, xj+ , xj− >=0
* Ràng buộc chung:
n



aij xj <= bi Thêm biến phụ yi >=0:


j =1
n



j =1

n



aij xj +yi = bi

j =1

aij xj >= bi Thêm biến phụ yi >=0:

n



aij xj – yi = bi

j =1

Ví dụ 1.4:
Bài toán (P)
f(x) = x1+x2+2x3
min
x1 +4x2 +x3 <=10

3x1 +x2 +x3 =12
2x1+3x2 +x3 >=16
xj >=0 , j=1,3
HD: Đưa (P) về dạng chính tắc (P*)
⇔ f(x) = x1+x2+2x3
f(x) = x1+x2+2x3 +0.x4 +0.x5 min
=10
x1 +4x2 +x3 +x4
3x1 + x2 +x3
=12
–x5 =16
2x1 +3x2 +x3
xj >= 0 , j=1,5
x4 ,x5 là biến phụ

min

Câu hỏi: tại sao các hệ số ở hàm mục tiêu của biến phụ phải bằng 0?
Quan hệ giữa (P) và (P*)
-(P*) không có PATƯ thì (P) không có PATƯ
-(P*) có PATƯ là (x1*, x2*,..., x5*) thì (x1*, x2*, x3*) là patư của (P), fmin = f(x1*, x2*, x3*)

4


Tối ưu hóa * Chương 1: Bài toán Quy hoạch tuyến tính
Ví dụ1.5: Bài toán (P)
f(x) = x1+2x2+5x3
min
x1+ x2 +x3 =2

2x1+3x2 +x3 =5
x1 <=0 , x2 tùy ý , x3 >=0
HD: Đưa (P) về dạng chính tắc (P*)
;
x2 = y2 −y3 , y2 , y3 >=0
Đặt y1 = −x1 >=0
min
f = -y1 +2(y2-y3 )+5x3
-y1+( y2-y3 )+x3 =2
-2y1+3(y2-y3)+x3 =5
y1 , y2 , y3 , x3 >=0
Quan hệ giữa (P) và (P*)
-(P*) không có PATƯ thì (P) không có PATƯ
-(P*) có PATƯ là (y1*, y2*, y3*, x3*) thì (−y1*, y2*−y3*, x3*) là patư của (P),
fmin = f(-y1*, y2*-y3*, x3*)
VD 1.6: Bài toán (P)
f= x1 +2x2 +x3
max
x1 +x2 –x3 <=2
2x1 +x2 +x3 = 3
x1 <=0 , x2 >=0 , x3 >=0
HD: Đưa (P) về dạng chính tắc (P*)
Đặt y1 = -x1 >=0
max
f= -y1 +2x2 +x3
-y1 +x2 –x3 +x4 =2
-2y1 +x2 +x3
=3
y1 >=0 , x2 >=0 , x3 >=0 ; x4 >=0 (biến phụ)
Quan hệ giữa (P) và (P*):

-(P*) không có patư thì (P) không có patư
-(P*) có patư là (y1*, x2*, x3*, x4*) thì (-y1*, x2*, x3*) là patư của (P). fmax= f(-y1*, x2*, x3*)
Vậy ta có kết quả sau:
-(P) có pa
⇔ (P*) có pa
-(P) có patư ⇔ (P*) có patư
PHƯƠNG PHÁP HÌNH HỌC GIẢI BÀI TOÁN QHTT: đọc thêm –không thi
Với bài toán QHTT 2 biến bất kỳ người ta có thể dùng phương pháp hình học để giải, với các
tương ứng sau:
-Miền ràng buộc D là một tập lồi đa diện (giới nội hoặc không giới nội) trong hệ trục tọa độ
vuông góc Đề các, nếu D giới nội thì ta gọi là 1 đa giác lồi. D có đỉnh hoặc không có đỉnh. D
cũng có thể là tập rỗng (nếu các ràng buộc không tương thích nhau). D có hữu hạn đỉnh.
-Giá trị của hàm mục tiêu f(x) gọi là đường mức. Ta cho đường mức di chuyển trong D thì f(x) có
thể giới nội (bị chặn) trong D hoặc không.
Bài toán minf: Nếu f(x) giới nội dưới trong D thì ta tìm được patư, nếu f(x) không giới nội dưới thì
bài toán không có patư.
Bài toán maxf: Nếu f(x) giới nội trên trong D thì ta tìm được patư, nếu f(x) không giới nội trên thì
bài toán không có patư.
Ta có 1 số trường hợp sau:
-D giới nội: bài toán luôn có patư là 1 đỉnh của D (gọi là pa cực biên tối ưu). Nếu bài toán có
patư đạt được tại 2 đỉnh trở lên thì bài toán có vô số patư.

5


www37.websamba.com/phamtricao ThS. Phạm Trí Cao * 2005 www.phamtricao.web1000.com
-D không giới nội nhưng có đỉnh: bài toán có patư hoặc không. Nếu có patư thì patư cũng đạt
được trên đỉnh.
-D không giới nội và không có đỉnh: bài toán có patư hoặc không. Nếu có patư thì patư không
đạt được trên đỉnh.

Nếu bài toán QHTT có dạng chính tắc thì luôn có pa là 1 đỉnh của D (gọi là pa cực biên).

Các kết quả sử dụng để giải BT theo pp hình học:
Đường thẳng ax+by=c chia mặt phẳng Oxy thành 2 miền: miền có ax+by>c và miền có
ax+byr
• Đường thẳng (D) ax+by=c gọi là đường đẳng mức, có pháp véc tơ là n =(a,b).
r
* Nếu di chuyển (D) theo cùng chiều n thì giá trị c tăng lên.
r
* Nếu di chuyển (D) theo ngược chiều n thì giá trị c giảm xuống.


Ví dụ 1: f(x)=x1+x2 −−> max
−x1+2x2<=2
3x1− x2<=3
x1>=0, x2>=0
1) cmr x=(0,0), x=(1,0), x=(0,1), x=(8/5, 9/5) là các pacbksb?
2) Cmr fmax =17/5
Ví dụ 2: f(x)= −2x1+x2 −−> min
x1− x2>=−2
−x1+2x2>=−2
x1>=0, x2>=0
1) cmr x=(0,0), x=(2,0), x=(0,2) là các pacbksb?
2) Cmr f−−> −∞
Ý tưởng của pp hình học là từ 1 đỉnh ban đầu của D ta đi đến các đỉnh “kề” có giá trị hàm mục
tiêu tốt hơn cho đến khi được 1 đỉnh tối ưu hoặc hàm mục tiêu không bị chặn. Nếu có đỉnh tối ưu
thì có patư, nếu hàm mục tiêu không bị chặn dưới (trên) thì bài toán minf (maxf) không có patư.
Vì số đỉnh của D là hữu hạn nên sau 1 số bước đi thì ta kết thúc.
Dựa vào những ý tưởng từ pp hình học người ta đưa ra phương pháp đơn hình để giải bài toán

QHTT.

II) PHƯƠNG PHÁP ĐƠN HÌNH:
1) Các khái niệm và định nghóa:
f(x) = <c,x>
min (max)
Ax = b
x >= 0

(1)
(2)
(3)

Ký hiệu: Aj , j=1,n là các véc tơ cột của ma trận A
Ta có: Ax = b ⇔ x1A1+x2A2+....+xnAn = b
• x = (x1,x2,...,xj,..,xn) là pa của BT (1)-(3). Đặt J(x) ={j / xj > 0}
x là phương án cực biên (pacb) ⇔ hệ véc tơ cột tương ứng với các thành phần dương của x độc
lập tuyến tính
Nghóa là: x=(x1,x2,...,xj,..,xn) là pacb ⇔ {Aj / j∈ J(x)} độc lập tt
• x là pacb. Ta có: |J(x)| <= r(A)
* Nếu |J(x)| = r(A) thì ta nói x là pacb không suy biến
* Nếu |J(x)| < r(A) thì ta nói x là pacb suy bieán

6


Tối ưu hóa * Chương 1: Bài toán Quy hoạch tuyến tính
Ví dụ 1.7:
min
f = x1-2x2+x3

x1+x2+2x3 =7
x1+x2+ x3 =5
xj >=0 ,j=1,3
cmr x=(3,0,2) laø pacbksb?
HD:
x=(3,0,2) laø pa. J(x)={1,3}
A3 = 2
A1 = 1
1
1
Hệ A1, A3 độc lập tt nên x là pacb
|J(x)| = 2 = r(A) nên x là pacb không suy biến
Ví dụ 1.8:
max
f = x1+4x2+x3
x1+2x2 -x3 = −2
-x1 -x2 +x3 = 2
xj >=0, j=1,3
cmr x=(2,0,4) không là pacb?
HD:
x=(2,0,4) là pa. J(x ) = {1,3}
A3 = -1
A1 = 1
-1
1
Heä A1, A3 phụ thuộc tt nên x không là pacb
Ví dụ1.9:
max
f = x1+4x2+x3
x1 +x2 -x3 = 3

-x1 +2x2 +x3 = 6
xj >=0, j=1,3
cmr x=(0,3,0) là pacbsb?
HD:
x=(0,3,0) là pa. J(x)= {2}
A2 = 1
2
Hệ A2 độc lập tt nên x là pacb
|J(x)| = 1 < r(A) =2 nên x là pacb suy biến
Ta có các kết quả sau:
• Nếu bài toán có pa thì nó có pacb
• Bài toán QHTT có mọi pacb đều không suy biến gọi là bài toán không suy biến. Nếu có ít
nhất 1 pacb suy biến thì gọi là bài toán suy biến.
• Nếu bài toán có pa và hàm mục tiêu bị chận dưới thì BT có patư (BT minf)
Nếu bài toán có pa và hàm mục tiêu bị chận trên thì BT có patư (BT maxf)
• Nếu BT có patư thì BT có pacbtư
BT có vô số
• Nếu BT có 2 patư x1, x2 , x1 ≠ x2 thì α.x1 +(1-α).x2 ,∀α∈[0,1] cũng là patư
patư
• x là pacb. Nếu x chưa tối ưu thì có pacb x' tốt hơn x . Nghóa là:
BT minf: f(x') <= f(x)
BT maxf: f(x’) >= f(x)
• Số pacb của bài toán QHTT là hữu hạn

7


www37.websamba.com/phamtricao ThS. Phạm Trí Cao * 2005 www.phamtricao.web1000.com

2) Bài toán QHTT dạng chuẩn tắc:

Bài toán dạng chuẩn tắc là bài toán QHTT dạng chính tắc thỏa các điều kiện sau:
-Các bi bên vế phải của các ràng buộc chung >=0
-Mỗi ràng buộc chung có biến cơ sở tương ứng
Biến cơ sở là biến có hệ số là 1 ở một ràng buộc chung và có hệ số là 0 ở các ràng buộc chung
còn lại.
Các biến còn lại gọi là biến tự do.
Ví dụ 1.10:
min
f= x1+2x2+x3 -x4
x1 + x2 - x3
=7
2x2 +x3 +x4 =5
xj >= 0 , j=1,4
Xeùt xem BT có chuẩn tắc không, tìm 1 pacb của BT?
HD:
x1, x4 là biến cơ sở
x2, x3 là biến tự do
Nhận xét: Cho x2, x3 =0 (các biến tự do) thì ta coù:
x1 = 7, x4 = 5 ,
A1 = 1
A4 = 0
0
1
x = (7, 0, 0, 5) là pacb
Hệ véc tơ cột A1, A4 độc lập tt
Ngoài ra: |J(x)| = 2 = r(A) nên x là pacb không suy biến
Vậy: Bài toán QHTT dạng chuẩn tắc luôn cho ta pacb ban đầu
VD1.10.1:
f(x) = x1+x2–x3 ––> max
+x3 +x4 =4

x1
−x2+2x3
=7
xj >=0, j=1,4
Xét xem BT có chuẩn tắc không?
HD:
Ràng buộc chung thứ 2 không có biến cơ sở tương ứng nên BT không chuẩn tắc.
Lưu ý: Bài toán QHTT dạng chuẩn tắc có thể viết dưới dạng ma trận như sau:
f(x) = <c,x>
min (max)
A.x <= b , b >= 0
x >= 0

3) Thuật toán đơn hình (dạng chuẩn, f
Quy tắc hệ số lớn nhất của Dantzig

min)

Tư tưởng chính của PPĐH là: xác định pacb ban đầu x (dễ dàng do BT có dạng chuẩn) và tìm
cách đánh giá nó. Nếu x là tối ưu thì dừng lại. Nếu x chưa tối ưu thì tìm pacb x’ tốt hơn x, và ta
đánh giá x’ . Quá trình trên sẽ kết thúc sau 1 số hữu hạn bước (vì số pacb là hữu hạn) với nhận
định: pacb đang xét là tối ưu hoặc BT không có patư (vì hàm mục tiêu không bị chặn dưới)

Bước 1: Lập bảng đơn hình xuất phát
Xác định pacb ban đầu xuất phát: x = (x1, x2 , ... , xn)
Xác định J(x) = {j / xj >0}
Xác định hệ véc tơ cơ sở {Aj / j∈ J(x)}
Lập bảng đơn hình xuất phát sau:

8



Tối ưu hóa * Chương 1: Bài toán Quy hoạch tuyến tính

Cơ sở

c1
A1

c2
A2

cj

xj

zj1

zj2

zjn

f
Trong đó: f =

PA

Aj

J∈J(x)


cj

∆1

∆2

∆n



.....
.....

cn
An

cj xj = f(x) : giá trị hàm mục tiêu ứng với x

j∈J ( x )

∆k =



( f = coät cj * coät PA )

cj zjk –ck : hệ số ước lượng của biến xk , k=1,n

j∈J ( x )


( ∆k = coät cj * cột Ak –ck )

LƯU Ý:

∆k =0 , k∈J(x) (ứng với các biến cơ sở)

Ví dụ 1.11:
min
f(x) = x1-2x2+2x3-x4+x5-2x6
2x1 - x2 -5x3 +x4
=5
x1 -2x2+2x3 +x5 =4
+x6 =2
-4x1+ x2+ x3
xj >=0 , j=1,6
HD:
Ta có: c = (1, -2, 2, -1, 1, -2)
Các biến cơ sở là x4, x5, x6
Các biến tự do laø x1, x2, x3

x =(0, 0, 0, 5, 4, 2) , J(x) ={4, 5, 6}
2
-1
1
A2 = -2
A1 =
-4
1


A4 =

1
0
0

. Tương tự cho các Aj còn lại

Các véc tơ cơ sở là A4, A5, A6

Cơ sở
A4
A5
A6

cj
-1
1
-2

PA
5
4
2
-5

1
A1
(2)
1

-4
(6)

-2
A2
-1
-2
1
-1

2
A3
-5
2
1
3

-1
A4
1
0
0
0

1
A1
1
1
–1


1
A2
0
1
0

1
A3
1
–2
–4

–1
A4
1
0
0

VD 1.11.1:
f=x1+x2+x3–x4 ––> min
+x3 +x4 =2
x1
=1
x1+x2–2x3
xj >=0, j=1,4

Cơ sở
A4
A2


cj
-1
1

PA
2
1
–1

9

1
A5
0
1
0
0

-2
A6
0
0
1
0


www37.websamba.com/phamtricao ThS. Phạm Trí Cao * 2005 www.phamtricao.web1000.com

Bước 2: Xét dấu hiệu tối ưu
Xem dòng ghi ∆1, ∆2 ,..., ∆n

-Nếu có ∆k <=0, ∀k : pa đang xét là patư.
Thuật toán kết thúc
-Nếu không: bước 3
Bước 3: Xét dấu hiệu không tối ưu
Xét xem có cột ∆k sao cho ∆k >0 và mọi phần tử thuộc cột này (ở bước lặp đang xét) đều <=0
không?
-Nếu có: BT không có patư (hàm mục tiêu f không bị chận dưới). Thuật toán kết thúc
-Nếu không: bước 4
Bước 4: Cải tiến pa (Tìm pacb mới tốt hơn)
Tìm pacb x’ =(x1’ ,….,xn’) tốt hơn pacb x: f(x’) <= f(x)
Lập bảng đơn hình mới từ bảng đơn hình cũ như sau:
a) Chọn cột chủ yếu: Choïn s sao cho ∆s = max{∆k / ∆k >0}
Choïn cột có ∆ dương lớn nhất

b) Chọn dòng chủ yếu: Choïn r sao cho
λ = xr / zrs = min{(xj / zjs ) / j∈J(x) vaø zjs >0} . λ gọi là tỷ số đơn hình
Câu hỏi: Tại sao chọn λ = min{(xj / zjs ) / j∈J(x) vaø zjs >0}
Xét cột PA và cột As , tính tỷ số xj /zjs (hai phần tử cùng nằm trên 1 dòng) với zjs >0 .Trong
các tỷ số đã tính chọn cái nhỏ nhất
Hoặc λ = min{(cột pa/ cột chủ yếu ) / với các thành phần dương của cột chủ yếu}

Phần tử chủ yếu là zrs
Giá trị hàm mục tiêu giảm 1 lượng là λ.∆s : f(x’) = f(x) –λ.∆s

Sau khi chọn xong cột và dòng, các phần còn lại tính như sau:
c) Trên cột cơ sở:
Trên cột cj :

Thay Ar bởi As , giữ nguyên các phần tử còn lại
Thay cr bởi cs , giữ nguyên các phần tử còn lại


d) Phần còn lại:
-Trên dòng tương ứng với As (mới) : các phần tử có được bằng cách lấy các phần tử nằm trên dòng
tương ứng với Ar (cũ) chia cho zrs
-Trên cột As : phần tử nằm trên dòng ứng với As (mới) bằng 1, các phần tử còn lại bằng 0, ∆s = 0
-Các phần tử còn lại tính theo quy tắc hình chữ nhật:
cột k
dòng r

cột s

zrk

chia

zrs chủ yếu
z'jk = zjk - (zrk * zjs) / zrs

nhân
dòng j

zjk ?

zjs

10


Tối ưu hóa * Chương 1: Bài toán Quy hoạch tuyến tính


zrs

zrs

zrs

zrs

Quay lại bước 2.
Ví dụ 1.11:
B2) ∆1 , ∆3 >0: pa đang xét x không tối ưu
B3) Xem cột A1 , A3 có cột nào có tất cả các phần tử <=0 ? Không có
B4)
a) Chọn cột: ∆1 =max{∆1, ∆3 } s =1
b) Chọn dòng: λ = min{(cột pa/ cột A1 ) / với các thành phần dương của coät A1 }
r =4
λ= min{(x4 / z41 ) , (x5 / z51)} = min{5/2 , 4/1}= 5/2
c) Cột cơ sở: thay A4 bởi A1
Cột cj : thay c4 = -1 bởi c1 =1
d) Cột A5,A6 giữ nguyên
Lập bảng đơn hình mới:
Cơ sở
A1
A5
A6

cj
1
1
-2


PA
5/2
3/2
12
-20

1
A1
1
0
0
0

-2
A2
-1/2
-3/2
-1
2

2
A3
-5/2
9/2
-9
18

-1
A4

1/2
-1/2
2
-3

1
A5
0
1
0
0

-2
A6
0
0
1
0

Ta có: ∆2 >0 và zj2 <0, ∀j ∈{1,5,6}
Vậy BT không có patư
Lúc này f(x) = −20−2x2−18x3+3x4 → −∞

khi x2 → +∞

Lưu ý: Tính các hệ số như sau:
5
(2)
4
1

x'5 = 4-5(1)/2=3/2

5
(2)
2
-4
x'6 = 2-5(-4)/2=12

5
(2)
-5
6
f' = -5-5(6)/2= -20

(2)
-1
1
-2
z'52 = -2-1(-1)/2==-3/2

(2)
-1
-4
1
z'62 = 1-(-4)(-1)/2=-1

(2)
-1
6
-1

∆'2 = -1-6(-1)/2=2

Chú ý: trong bảng đơn hình mới này thì:
-Biến cơ sở x1, x5, x6
-Biến tự do x2, x3, x4
-Véc tơ cơ sở A1, A5, A6

Ví dụ 1.12:
f(x) = x1+4x2-x3-x4+x5+3x6
min
2x1 - x2+5x3+x4
=1
+x5 =2
2x1+4x2-2x3
x1+2x2+ x3
+x6 =5
xj >= 0 , j=1,6

11


www37.websamba.com/phamtricao ThS. Phạm Trí Cao * 2005 www.phamtricao.web1000.com

HD:
Cơ sở
A4
*A5
A6

Cj

-1
1
3

*A4
A2
A6

-1
4
3

A3
A2
A6

-1
4
3

PA
1
2
5
16
3/2
1/2
4
25/2
1/3

2/3
10/3
37/3

1
A1
2
2
1
2
5/2
1/2
0
-3/2
5/9
7/9
-10/9
-16/9

4
A2
-1
(4)
2
(7)
0
1
0
0
0

1
0
0

-1
A3
5
-2
1
-3
(9/2)
-1/2
2
(½)
1
0
0
0

-1
A4
1
0
0
0
1
0
0
0
2/9

1/9
-4/9
-1/9

1
A5
0
1
0
0
1/4
1/4
-1/2
-7/4
1/18
5/18
-11/18
-16/9

3
A6
0
0
1
0
0
0
1
0
0

0
1
0

Ta có: ∆k <=0, ∀k : pa đang xét tối ưu.
Vậy bài toán có patư là x* = (0, 2/3 , 1/3 , 0 , 0 , 10/3)
fmin = f(x*) = 37/3
Luùc naøy f(x) = 37/3 +16/9x1+1/9x4+32/18x5 → 37/3 khi x1, x4, x5 → 0
Chú ý: patư và giá trị tối ưu là một cặp không thể tách rời, chia lìa; sống chết có nhau.
Tất cả các pa có từ các bảng đơn hình đều là pacb. Pa có từ bảng đơn hình tối ưu (là bảng có
∆k<=0, ∀k) là pacbtư.
Lưu ý: fmin còn có thể tính như sau: fmin = 0 + 4(2/3) - (1/3) – 0 + 0 + 3(10/3) = 37/3

LƯU Ý: Đọc thêm
Ta cũng có thuật toán chuyển từ bảng đơn hình cũ sang bảng mới như sau:
Cột As gọi là cột quay (xoay) , véc tơ As được đưa vào cơ sở
Dòng Ar gọi là dòng quay, véc tơ Ar bị đưa ra khỏi cơ sở
Phần tử zrs >0 là giao của cột quay và dòng quay gọi là phần tử chính (trục) của phép quay. Các
phần tử zjs , j ≠ r gọi là phần tử quay
Bảng đơn hình mới được suy từ bảng cũ bằng cách:
1) Thay cr , Ar trong dòng quay bằng cs , As
2) Sau đó thực hiện các phép biến đổi sau:
a) Chia mỗi phần tử ở dòng quay cho phần tử chính (được số 1 ở vị trí của zrs cũ –phần tử
chính ). Kết quả thu được gọi là dòng chính
z’j k = zrk / zrs , nếu j = r
b) Lấy mỗi dòng khác trừ đi tích của dòng chính nhân với phần tử quay tương ứng (được số 0 ở
mọi vị trí còn lại của cột quay)
Dòng mới = dòng cũ tương ứng – dòng chính * phần tử quay
z’jk = zjk – (zrk / zrs ) . zjs , neáu j ≠ r


12


Tối ưu hóa * Chương 1: Bài toán Quy hoạch tuyến tính
3) ∆’k =



z’jk cj – c k

,



f’ =

j∈J '

c’j x’j

, với

J’ = J \ {r} ∪ {s}

j∈J '

Dòng ∆’k , f’ cũng có thể được tính theo cách:
Dòng mới = dòng cũ tương ứng –dòng chính * phần tử quay
f’ = f –(xr / zrs ). ∆s = f –λ.∆s


,

∆’k = ∆k –(zrk / zrs ).∆s

Lưu ý rằng sau phép quay thì ở vị trí ∆s ta thu được số 0 vì lúc này As trở thành véc tơ đơn
vị cơ sở, nghóa là ta đã làm mất số dương lớn nhất ở dòng cuối của bảng cũ
Toàn thể phép biến đổi trên gọi là phép quay xung quanh phần tử chính zrs . Sau khi thực
hiện phép quay ta có 1 pa mới và 1 cơ sở mới. Nếu chưa đạt yêu cầu, nghóa là còn ∆k >0 thì ta
lại tiếp tục quá trình

VD 1.13:
f(x) = 3x1+x2+2x3+3x4+2x5+4x6
2x1
+x3 +x4 +2x6 = 4
+x6 = 10
3x1 +x2 +2x4
x1
+2x4 +x5 –x6 = 6
xj >= 0, j=1,6

min

Cách 1: Giải bình thường
3
A1
4
(2)
10
3
6

1
30
(6)
2
1
4
0
4
0
18
0
2/3 1
8/3 0
8/3 0
38/3 0

cơ sở cj pa
A3
A2
A5
B1
A1
A2
A5
B2
A1
A2
A4
B3


2
1
2
3
1
2
3
1
3

1
A2
0
1
0
0
0
1
0
0
0
1
0
0

2
A3
1
0
0

0
½
-3/2

-3
2/3
-4/3
-1/3
-7/3

3
A4
1
2
2
5
½
½
(3/2)
(2)
0
0
1
0

Bài toán có patư là x=(2/3, 8/3, 0, 8/3, 0, 0)

2
A5
0

0
1
0
0
0
1
0
- 1/3
-1/3
2/3
-4/3

4
A6
2
1
-1
-1
1
-2
−2
-7
5/3
-4/3
−4/3
-13/3

f= 38/3

Cách 2:

Qua mỗi bước lặp, giá trị hàm mục tiêu giảm 1 lượng là λ.∆s , f(x’)=f(x)– λ.∆s . Vậy ta có thể đưa
ra cách 2: tìm lượng giảm lớn nhất của f(x) qua mỗi bước lặp.

13


www37.websamba.com/phamtricao ThS. Phạm Trí Cao * 2005 www.phamtricao.web1000.com

cơ sở

cj

pa

A3
A2
A5
B1
A3
A2
A4
B2
A1
A2
A4
B3

2
1
2


4
10
6
30
1
4
3
15
2/3
8/3
8/3
38/3

2
1
3
3
1
3

3
A1
(2)
3
1
(6)
(3/2)
2
½

(7/2)
1
0
0
0

1
A2
0
1
0
0
0
1
0
0
0
1
0
0

2
A3
1
0
0
0
1
0
0

0
2/3
-4/3
-1/3
-7/3

3
A4
1
2
(2)
(5)
0
0
1
0
0
0
1
0

2
A5
0
0
1
0

-1
½

-5/2
- 1/3
-1/3
2/3
-4/3

4
A6
2
1
-1
-1
(5/2)
2

(3/2)
5/3
-4/3
-4/3
-13/3

Bảng 1: chọn cột A1 thì f(x) giảm 1 lượng là (4/2).6 = 12
chọn cột A4 thì f(x) giảm 1 lượng là (6/2).5 = 15
nên chọn cột A4
Bảng 2: chọn cột A1 thì f(x) giảm 1 lượng là (2/3).(7/2) = 7/3
chọn cột A6 thì f(x) giảm 1 lượng là (2/5).(3/2) = 3/5
nên chọn cột A1
Bài toán có patư là x=(2/3, 8/3, 0, 8/3, 0, 0)

f= 38/3


Ta nhận thấy qua 2 cách thì số bước lặp là như nhau, trong thực tế với các bài toán QHTT cỡ nhỏ
(số ràng buộc biến, số ràng buộc chung nhỏ) thì số bước lặp ở cách 1 so với cách 2 không lớn hơn
bao nhiêu. Tuy nhiên khi làm cách 1 thì ta ít tính toán và kiểm tra hơn cách 2. Vậy từ đây trở đi
thì ta quy ước là làm theo cách 1.
THUẬT TOÁN ĐƠN HÌNH VÀ ĐƠN VỊ ĐO CỦA BIẾN: Đọc theâm
VD 1.14:
min
f(x) = –100x1 –10x2 –x3
x1
+x4
=1
20x1 +x2
+x5
= 100
200x1+20x2 +x3
+x6 = 10000
xj >= 0, j=1,6
Nếu áp dụng thuật toán đơn hình (Dantzig) với hệ véc tơ cơ sở của bảng đơn hình xuất phát là
A4 , A5 , A6 thì người ta chứng minh được với dạng toán này phải qua 7 bước lặp mới có nghiệm
tối ưu x = (0, 0, 10000, 1, 100, 0) f= –10000
Tuy nhiên, nếu ta thay đổi đơn vị đo của các biến như sau:
y1 = x1 , y2 =0,01x2 , y3 = 0,0001x3 , y4 =x4 , y5 =x5 , y6 = x6 thì bài toán trở thành
VD 1.15:
min
f(y) = –100y1 –1000y2 –10000y3
y1
+y4
=1
20y1 +100y2

+y5
= 100
200y1+2000y2+10000y3
+y6 = 10000
yj >= 0, j=1,6

14


Tối ưu hóa * Chương 1: Bài toán Quy hoạch tuyến tính
cơ sở

Cj

pa

A4
A5
A6
B1
A4
A5
A3
B2

0
0
0

1

100
10000
0
1
100
1
-10000

0
0
-10000

-100
A1
1
20
200
100
1
20
0,02
-100

-1000
A2
0
100
2000
1000
0

100
0,2
-1000

Bài toán có patư là y = (0, 0, 1, 1, 100, 0)

-10000
A3
0
0
(10000)
(10000)
0
0
1
0

0
A4
1
0
0
0
1
0
0
0

0
A5

0
1
0
0
0
0
1
0

0
A6
0
0
1
0
0
0
0,0001
-1

f = -10000

Vậy phương pháp đơn hình chưa tốt ở chổ nó phụ thuộc vào đơn vị đo của biến chứ không chỉ
phụ thuộc vào cấu trúc bản chất của bài toán.
Lưu ý: Nếu áp dụng thuật toán đơn hình (Dantzig) cho VD1.14 với hệ véc tơ cơ sở của bảng đơn
hình xuất phát là A4 , A5 , A3 thì ta sẽ có ngay nghiệm tối ưu x = (0, 0, 10000, 1, 100, 0)
f= –10000 (điều mà ta không thể biết trước được !!!)
PHƯƠNG ÁN CỰC BIÊN SUY BIẾN, HIỆN TƯNG XOAY VÒNG : Nên đọc thêm
VD 1.16:
min

f(x) = x1 –x2
x1 –2x2 +x3
=2
-3x1
+x4
=6
-2x1
+x5 = 0
xj >= 0, j=1,5

cơ sở
A3
A4
A5

cj
0
0
0

pa
2
6
0
0

1
A1
1
-3

-2
-1

-1
A2
-2
0
0
1

0
A3
1
0
0
0

0
A4
0
1
0
0

0
A5
0
0
1
0


Ta có pacb suy biến x = (0, 0, 2, 6, 0)
Bài toán không có patư
VD 1.17:
Bây giờ ta sửa lại VD1.16 như sau: ràng buộc chung thứ 1 có hệ số của x2 là 2
cơ sở
A3
A4
A5
B1
A2
A4
A5
B2

cj
0
0
0
-1
0
0

pa
2
6
0
0
1
6

0
-1

1
A1
1
-3
-2
-1
½
-3
-2
- 3/2

-1
A2
(2)
0
0
(1)
1
0
0
0

0
A3
1
0
0

0
½
0
0


0
A4
0
1
0
0
0
1
0
0

0
A5
0
0
1
0
0
0
1
0

Bảng 1: ta có pacb suy biến x= (0, 0, 2, 6, 0)
Bảng 2: Bài toán có patư là x= (0, 1, 0, 6, 0) f= -1

Vậy khi bài toán có pacb suy biến thì có thể có patư hoặc không.

15


www37.websamba.com/phamtricao ThS. Phạm Trí Cao * 2005 www.phamtricao.web1000.com
VD 1.18:
f(x) = -10x1 +57x2 +9x3 +2x4
min
0,5x1 –5,5x2 –2,5x3+9x4+x5
=0
0,5x1 –1,5x2 –0,5x3 +x4 +x6
=0
x1
+x7 = 1
xj >= 0, j=1,7
Bây giờ ta giải VD này như sau:
* Chọn cột có ∆ dương lớn nhất
* Nếu có nhiều dòng để chọn thì chọn dòng có chỉ số nhỏ nhất
cơ sở

cj

pa

A5
A6
A7
B1
A1

A6
A7
B2
A1
A2
A7
B3
A3
A2
A7
B4
A3
A4
A7
B5
A5
A4
A7

0
0
0

0
0
1
0
0
0
1

0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
1
0

B6

-10
0
0
-10
57
0
9
57
0
9

24
0
0
24
0

-10
A1
(0,5)
0,5
1
(10)
1
0
0
0
1
0
0
0
2
-1
1
-29
-2
-0,5
1
-20
-4
(0,5)

1
(22)

57
A2
-5,5
-1,5
0
-57
-11
(4)
11
(53)
0
1
0
0
0
1
0
0
4
0,5
0
-9
8
-1,5
0
-93


9
A3
-2,5
-0,5
0
-9
-5
2
5
41
(0,5)
0,5
-0,5
(14,5)
1
0
0
0
1
0
0
0
2
-0,5
0
-21

24
A4
9

1
0
-24
18
-8
-18
-204
-4
-2
4
-98
-8
(2)
0
(18)
0
1
0
0
0
1
0
0

0
A5
1
0
0
0

2
-1
-2
-20
-0,75
-0,25
0,75
-6,75
-1,5
0,5
0
15
(0,5)
0,25
0
(10,5)
1
0
0
0

0
A6
0
1
0
0
0
1
0

0
2,75
0,25
-2,75
-13,25
5,5
-2,5
0
-93
-4,5
-1,25
0
-70,5
-9
(1)
0
(24)

0
A7
0
0
1
0
0
0
1
0
0
0

1
0
0
0
1
0
0
0
1
0
0
0
1
0

Ta thấy ở bảng 6: thay A4 bởi A6 thì ta quay trở lại bảng 1. Đây là hiện tượng xoay vòng.
Nếu gặp trường hợp pacb suy biến thì có thể sau 1 số bước lặp ta quay trở về pa ban đầu với hệ
véc tơ cơ sở ban đầu, bài toán sẽ lặp vô hạn và ta không giải được. Để tránh hiện tượng này ta
áp dụng Quy tắc chỉ số bé nhất của R.G.Bland đề xuất:
• Trong các cột có ∆ dương thì ta chọn cột có chỉ số nhỏ nhất.
• Nếu có nhiều dòng để chọn thì chọn dòng có chỉ số nhỏ nhất

Trong VD này, ở bảng 6 ta không chọn cột A6 mà ta chọn cột A1 (quy tắc chỉ số bé nhất của
Bland), ta sẽ được patư:

16


Tối ưu hóa * Chương 1: Bài toán Quy hoạch tuyến tính


cơ sở

cj

Pa

A5
A1
A7
B7
A5
A1
A3
B8

0
-10
0

0
0
1
0
2
1
1
-1

0
-10

9

-10
A1
0
1
0
0
0
1
0
0

57
A2
-4
-3
3
-27
2
0
3
-30

9
A3
-2
-1
(1)
(1)

0
0
1
0

Bài toán có patư là x=(1, 0, 1, 0, 2, 0, 0)

24
A4
8
2
-2
-44
4
0
-2
-42

0
A5
1
0
0
0
1
0
0
0

0

A6
-1
2
-2
-20
-5
0
-2
-18

0
A7
0
0
1
0
2
1
1
-1

f =–1

Lưu ý: Nếu ở bảng 1 ta thay A6 bởi A1 thì sau 2 bảng ta sẽ được patư. Nhưng có điều là ta
không biết trước chọn cái nào tốt hơn !!!
Ta có kết quả sau:
• Nếu bài toán không suy biến (không thoái hóa) thì đối với mỗi phương án cơ sở xuất phát
thuật toán đơn hình sẽ kết thúc sau 1 số hữu hạn bước lặp.
• Nếu bài toán suy biến thì thuật toán có thể xoay vòng hoặc không. Có 1 dấu hiệu để không
xãy ra xoay vòng là:

Giả sử ở 1 lần lặp của pp đơn hình, tập hợp

K={k|

xj
xk
= min { | z js > 0} }
z ks j∈J ( x ) z js

chứa quá 1

phần tử, giá trị xk với k∈K, k ≠r∈K sau phép xoay đơn hình bằng
x’k = xk – (xr /zrs) zks = xk – (xk /zks) zks = 0 thì pacb mới sẽ suy biến. Ngược lại, nếu ở mỗi bước
lặp |K| = 1 thì không có hiện tượng xoay vòng và thuật toán là hữu hạn.
Trong chương trình học, khi thi ta không xét bài toán có hiện tượng xoay vòng. Do đó ta có
lưu ý sau.
Lưu ý:
• Nếu có nhiều cột có cùng ∆ dương lớn nhất thì ta chọn cột nào cũng được ( thường chọn cột
có chỉ số nhỏ nhất).
• Nếu có nhiều dòng để chọn thì ta chọn dòng nào cũng được ( thường chọn dòng có chỉ số
nhỏ nhất)

4) Bài toán (M) : Vấn đề tìm pacb ban đầu – Phương pháp đánh thuế
Nếu BT (dạng chính tắc, các hệ số vế phải ràng buộc chung bi >= 0) không có ngay pacb ban đầu
thì ta thêm một số biến giả vào có ngay pacb ban đầu. Bài toán có biến giả gọi là bài toán (M)
Ví dụ 1.19: BT gốc (P)
f= x1-2x2+3x3+x4
min
4x1 +x2+2x3+2x4 =1
x1-2x2+5x3 -4x4 =6

xj >=0 , j=1,4
Viết bài toán (M) tương ứng?
HD:
Ta giải BT(M) tương ứng:
f= x1-2x2+3x3+x4 +Mx5 +Mx6
4x1 +x2+2x3+2x4 +x5 = 1
+x6 = 6
x1-2x2+5x3 -4x4
xj >=0 , j=1,6

min

17


www37.websamba.com/phamtricao ThS. Phạm Trí Cao * 2005 www.phamtricao.web1000.com

Trong đó: x5, x6 là biến giả

.

M>0 (rất lớn)

Coi M là 1 số rất lớn (M > 0) chẳng khác nào ta đánh thuế rất nặng vào các biến giả
khiến cho trong patư ta phải có các biến giả bằng 0
VD 1.20
f=x1+x2–x3+2x4 +3x5 ––> min
x1 –x3+2x4 +x5 =1
–x4 +x5 = 3
x2

–2x5 = 2
x3
xj >=0, j=1,5
Viết bài toán (M) tương ứng?
HD:
f=x1+x2–x3+2x4+3x5 +Mx6 ––> min
=1
x1 –x3+2x4 +x5
–x4 +x5
=3
x2
–2x5 +x6 = 2
x3
xj >=0, j=1,6
Số biến giả sử dụng = số ràng buộc chung–số biến cơ sở đã có (mỗi rb chung chỉ có 1 biến cơ sở)
Định lý:
1) (M) không có patư
(P) không có patư
2) (M) có patư:
a) Nếu tất cả các thành phần tương ứng với biến giả trong patư của (M) đều bằng 0 thì (P) có
patư, chính là patư của (M) mà loại ra các thành phần ứng với biến giả
b) Nếu trong patư của (M) có thành phần ứng với biến giả ≠0 thì (P) không có patư
Câu hỏi:
–Mục đích thêm biến giả là gì?
–Tại sao trong patư của (M): biến giả phải bằng 0 thì (P) mới có patư?
CHÚ Ý: M>0 (rất lớn)
* ∆k = ak M+bk
ak >0
∆k >0 ⇔
ak =0 vaø bk >0

∆k <0 ⇔

ak <0
ak =0 vaø bk <0

* ∆k = ak M+bk

,

∆j = aj M+bj

∆k > ∆j ⇔

ak > aj
ak = aj vaø bk > bj

18


Tối ưu hóa * Chương 1: Bài toán Quy hoạch tuyến tính
Ví dụ 1.19:
Cơ sở

Cj

PA

*A5
A6
B1

A3
A6
B2

M
M

1
6
7M
½
7/2
(7/2)M+
(3/2)

3
M

1
A1
4
1
5M-1
2
-9
-9M+5

-2
A2
1

-2
-M+2
½
-9/2
(-9/2)M
+(7/2)

3
A3
(2)
5
(7M-3)
1
0
0

Ta có ∆k <=0, ∀k
x*(M) = (0 , 0 , ½ , 0 , 0 , 7/2) có x6 = 7/2 ≠ 0 (biến giả)

1
A4
2
-4
-2M-1
1
-9
-9M+2

M
A5

1
0
0
1/2
-5/2
(-7/2M)
+(3/2)

M
A6
0
1
0
0
1
0

(P) không có patư

Câu hỏi: chứng minh hệ sau vô nghiệm
4x1 +x2+2x3+2x4 =1
x1-2x2+5x3 -4x4 =6
xj >=0 , j=1,4
HD:
Biến đổi thành x2 = –23/9+2x3–2x4 , x1=8/9–x3 ; xj >=0, j=1,4
Chú ý: Khi giải BT(M) nếu đưa 1 biến giả ra khỏi cơ sở thì ta không cần xét đến các tham số
tương ứng với biến giả đó ở các bảng sau.
Trong ví dụ này ở bảng 2 ta có thể không xét cột A5 vì ta đã đưa A5 (ứng với biến giả x5) ra khỏi cơ
sở (từ bảng 1 sang bảng 2).
Một số sách bỏ luôn cột ứng với biến giả.

Ví dụ 1.20:
Cơ sở cj
A1
A2
A6
A1
A2
A3

PA

1
A1
1
1
1
0
3
1
0
M 2
2M+4 0
1
3
1
1
3
0
–1 2
0

4
0

Ta có ∆k <=0 , ∀k
x*(M) = (3, 3, 2, 0, 0, 0)

1
A2
0
1
0
0
0
1
0
0

–1
A3
–1
0
(1)
(M)
0
0
1
0

2
A4

2
–1
0
–1
2
–1
0
–1

3
A5
1
1
–2
–2M–1
–1
1
–2
–1

x*(P) = (3, 3, 2, 0,0) , fmin = f(x*(P)) = 4

5) Baøi toán dạng chuẩn, f

max

Cách 1 (gián tiếp):
(BT1)

f max

x∈D



g=–f
x∈D

min

(BT2)

x* là patư của (BT1) ⇔ x* là patư của (BT2)
fmax = f(x*) = – gmin = – g(x*)

19


www37.websamba.com/phamtricao ThS. Phạm Trí Cao * 2005 www.phamtricao.web1000.com

Cách 2 (trực tiếp):
Thuật toán giống thuật toán dạng chuẩn, f min. Chỉ thay đổi:
B2) ∆k >=0, ∀k : pa đang xét là patư
B3) Xét xem cột ∆s có ∆s <0 và mọi phần tử thuộc cột này đều <=0 không? : Nếu có: BT không có
patư (f không bị chận trên)
B4) Chọn cột chủ yếu: ∆s = min{∆k / ∆k <0}
Cột chủ yếu là cột có ∆ âm bé nhất.
Câu hỏi: Tại sao hàm mục tiêu đổi dấu thì chỉ ảnh hưởng đến các phần ở trên mà thôi?
Ví dụ 1.21
f= -x1+4x2+2x3-x4
max

2x1 -x2+x3 = 4
(I)
3x1+x2 +x4 = 7
xj >=0 , j=1,4
HD:
Caùch 1:
min
g= -f = x1-4x2-2x3+x4
2x1 -x2+x3 =4
(II)
3x1+x2 +x4 =7
xj >=0 , j=1,4
Cô sở

cj

PA

A3
*A4

-2
1

A3
A2

-2
-4


4
7
-1
11
7
-50

1
A1
2
3
-2
5
3
-23

-4
A2
-1
(1)
(7)
0
1
0

-2
A3
1
0
0

1
0
0

1
A4
0
1
0
1
1
-7

2
A3
1
0
0
1
0
0

-1
A4
0
1
0
1
1
7


Ta có : ∆k <=0, ∀k : pa đang xét tối ưu
x*(II) = (0 , 7 , 11 , 0)
, gmin = -50
x*(I) = ( 0 , 7 , 11 , 0) , fmax = 50
Cách 2:
Cơ sở

cj

PA

A3
*A4

2
-1

A3
A2

2
4

4
7
1
11
7
50


-1
A1
2
3
2
5
3
23

4
A2
-1
(1)
(-7)
0
1
0

Ta có : ∆k >=0, ∀k : pa đang xét tối ưu
x* =(0 , 7 , 11 , 0 ) là patư của (I) , fmax = 50
Lúc này f(x) = 50−23x1−7x4 → 50 khi x1, x4 → 0

20


Tối ưu hóa * Chương 1: Bài toán Quy hoạch tuyến tính

Câu hỏi: So sánh 2 bảng đơn hình ở 2 cách giải, nhận xét?
VD 1.21.1

f(x)=–x1+x2+x3+2x5 ––> max
–x4
=6
2x1–x2
3x1
–x4 +x5+x6 =10
=4
x3–2x4+2x5
xj >=0, j=1,6
HD:
Bài toán (M) là
f(x)=–x1+x2+x3+2x5 –Mx7 ––> max
–x4
+x7 =6
2x1–x2
–x4 +x5+x6
=10
3x1
=4
x3–2x4+2x5
xj >=0, j=1,7
với M>0 (rất lớn).

Cơ sở Cj
A7
A6
A3
A1
A6
A3

A1
A4
A3

Pa

–1
A1
(2)
–M 6
3
10
0
0
4
1
–6M+4 (–2M+1)
–1 3
1
0
1
0
1
4
0
1
0
–1 4
1
0

2
0
1
8
0
4
0

1
A2
–1
0
0
M–1
–1/2
3/2
0
–1/2
1
3
6
4

1
A3
0
0
1
0
0

0
1
0
0
0
1
0

0
A4
–1
–1
–2
M–2
–1/2
(1/2)
–2
(–3/2)
0
1
0
0

2
A5
0
1
2
0
0

1
2
0
1
2
6
3

X*(M) = (4,0,8,2,0,0,0) ––> x* =(4,0,8,2,0,0) , fmax =4
Lưu ý: Qua mỗi bước lặp hàm mục tiêu tăng 1 lượng là −λ.∆s , f(x’)=f(x) –λ.∆s
6) Giải bài toán QHTT tổng quát (bất kỳ):
Phương pháp giải:
* Đưa bài toán tổng quát về dạng chính tắc
* Biến đổi sao cho các hệ số vế phải của các ràng buộc chung bi >=0
* Nếu chưa có pacb ban đầu (chưa là dạng chuẩn) thì thêm biến giả
Lưu ý: Khi giải xong nhớ chuyển về patư của bài toán ban đầu.

21

BT(M)

0
A6
0
1
0
0
0
1
0

0
1
2
4
3


×