You are on page 1of 25

5.

Phương pháp đơn hình


a. Cho bài toán QHTT min dạng chuẩn tắc
f (x)  C T x  min
Ax  B
xO

 a1i   x1   b1   c1 
 
Trong đó, A   A1 ... An  với Ai   ...  , x   ...  , B   ...   O , C   ...  .
   
a  x  b  c 
 mi   n  m  n

Hệ ràng buộc chung có dạng


x1 A1  x2 A2  ...  xn An  B .

Phương pháp.
Bước 1. Xác định phương án cực biên ban đầu với các ẩn cơ bản x j , x j ,..., x j . Trong 1 2 k

phương án cực biên, các ẩn cơ bản có giá trị dương, các ẩn không cơ bản bằng 0. Cột ma
trận tương ứng với ẩn cơ bản x j là Aj , u  1, k .
u u

0
 

Aju   1  số 1 nằm ở hàng k và ẩn cơ bản cũng nằm ở phương trình thứ k .
 

0
 

Lập bảng đơn hình


Viết lại bài toán vào bảng đơn hình: bảng gồm có 6 cột
Cột 1. Ghi các bước thực hiện
Cột 2. Ghi hệ số ẩn cơ bản, các hệ số này nằm ở hàng 1 ứng với ẩn cơ bản
Cột 3. Ghi tên ẩn cơ bản x j , x j ,..., x j .
1 2 m

Cột 4. Ghi phương án, chỉ ghi giá trị của các ẩn cơ bản.
Cột 5. Ghi hệ số của hệ ràng buộc chung.
Cột 6. Ghi tỉ lệ để tìm hàng quay (ứng với ẩn đưa ra) khi tìm patu khác.
Hàng 1. Ghi hệ số các ẩn của hàm mục tiêu.
Hàng 2. Ghi tất cả tên ẩn
m hàng còn lại ứng với m phương trình trong hệ ràng buộc chung.

Trang 14
Chú ý: Thứ tự ghi các cột như sau:
Ghi hàng 2 gồm tên tất cả các ẩn x1 ,..., xn

Ghi hệ số ứng với các ẩn c1 ,..., cn , các hệ số nằm ở hàm mục tiêu

Ghi đồng thời cột 5, cột 4, mỗi hàng là hệ số của một phương trình trong hệ ràng buộc
chung, có tất cả m hàng.
Ghi tên ẩn cơ bản, có thể nhìn vào các cột A1 ,..., An để xác định ẩn cơ bản, hàng chứa ẩn
cơ bản đó. Cột Aj ứng với ẩn cơ bản x j , cột này chỉ chứa đúng một chữ số 1, còn lại đều
bằng 0. Chữ số 1 nằm ở hàng k thì ẩn cơ bản thuộc hàng k .
Ghi hệ số ẩn cơ bản.
Tính hàng chứa lượng kiểm tra  j theo công thức  j  CT , ATj  c j . Trong đó, C T , ATj là
tích vô hướng của vector C T với vector ATj .

Bước Hs Acb Pa c1 c2 … cn
Acb x1 x2 … xn i
C x B A1 A2 … An
c j1 x j1 b1 a11 a12 a1n
1 … … … … … … …
c jm x jm bm am1 am 2 … amn
Lượng kiểm tra j
Bước 2. Kiểm tra tính tối ưu của phương án cực biên ban đầu.
TH1.  j  0, j  1, n thì phương án đang kiểm tra là patu. Có hai trường hợp sau:

 Nếu mọi ẩn không cơ bản x j đều có  j  0 thì patu đang kiểm tra là duy
nhất x1 .
 Nếu có ẩn không cơ bản x j mà  j  0 thì bài toán có patu khác. Tùy theo
0 0

yêu cầu bài toán, có tìm tất cả patu hay chỉ cần tìm 1 patu. Nếu tìm tập tất cả
phương án tối ưu thì ta tìm thêm một patu khác x2 , thuật toán ở bước 3. Khi
đó tập patu là các điểm thuộc đoạn thẳng nối x1 , x 2 dạng: x   x1  (1   ) x 2 .
Quá trình tìm patu x2 được thực hiện trên cột quay j0 theo thuật toán được
trình bày ở bước 3.
TH2. Có ít nhất một  j  0 . Ta lại xét hai trường hợp sau:

 Có (ít nhất một)  j  0 nào đó mà cột Aj tương ứng chứa mọi phần tử
0 0

aij0  0, i  1, n . Khi đó ta kết luận bài toán không có patu, bài toán kết thúc.

Trang 15
 Tất cả những  j  0 đều có cột Aj tương ứng chứa ít nhất một phần tử aij  0
. Khi đó, phương án cực biên đang xét không phải tối ưu mà patu (nếu có) là
một phương án cực biên khác. TH này ta thực hiện tiếp bước 3.
Bước 3. Tìm phương án tối ưu khác.
Quá trình sau đây là quá trình biến đổi tương đương hệ ràng buộc chung (hệ phương trình
tuyến tính) bằng các phép biến đổi sơ cấp trên hàng nhằm thay đổi ẩn cơ bản. Ta lập một
bảng đơn hình tiếp theo, thứ tự thực hiện như sau:
 Chọn cột quay. Cột quay là cột ứng với  k dương lớn nhất:  k  max  j  . Cột quay
 0 j

này ứng với ẩn đưa vào xk để biến đổi thành ẩn cơ bản mới. Đối với trường hợp
tìm thêm patu thì cột quay là cột có  j  0 với x j là ẩn không cơ bản, ẩn đưa vào
0 0

là x j .
0

 Chọn hàng quay. Lấy cột B chia cho cột Ak với aik  0, i  1, m (phép chia được hiểu
bi
là chia tương ứng phần tử của 2 ma trận , aik  0 ). Khi đó hàng quay là hàng thứ
aik
b b 
 ứng với  nhỏ nhất    min  i  . Hàng quay sẽ xác định ẩn đưa ra. Trường
ak aik  0  aik 

b  b 
hợp tìm thêm patu thì lấy cột B chia cho cột Aj và    min  i  . Ta xác định
0
aj0 aij0 0  aij0 
được ẩn đưa ra x .
 Viết lại bảng đơn hình (viết vào bước 2 trong cột 1)
o Viết ẩn đưa vào xk vào vị trí ẩn đưa ra x và viết hệ số của ẩn đưa vào ck vào
vị trí hệ số ẩn đưa ra c . Các ẩn cơ bản còn lại đều viết lại cùng hệ số tương
ứng.
o Tính toán để viết lại từ cột B đến cột An . Xem các hàng từ cột B đến cột An
như một ma trận cỡ m  n . Ta biến đổi sơ cấp trên ma trận này sao cho cột
quay Ak có phần tử giao của hàng quay và cột quay ak  1 các phần tử còn
lại trên cột k đều bằng 0. Gợi ý thực hiện như sau:
Chia tất phần tử của hàng quay  cho phần tử quay ak (phần tử quay là phần
tử giao của hàng quay và cột quay) để được ak  1. Dùng các phép biến đổi
sơ cấp hàng để được các phần tử khác trên cột quay đều bằng 0.
Ví dụ cho hệ ràng buộc chung có ma trận hệ số sau
 20 1 2 3 1 0 0 
 
 15 0 2 1 4 0 1  .
 40 0 3 2 0 1 0 
 

Trang 16
Ta dễ thấy phương án cực biên ban đầu là  20, 0,0,0, 40,15  và các ẩn cơ bản
là x1 , x5 , x6 .
Khi cần biến đổi để được x2 là ẩn cơ bản thay cho ẩn cơ bản x6 ta có thể thực
hiện các phép biến đổi sơ cấp sau:
 20 1 2 3 1 0 0   h2hh1 h1  5 1 0 4 5 0 1 
  3. 22  h3 h3  
 15 0 2 1 4 0 1  
1
h2 h2
  15 / 2 0 1 1/ 2 2 0 1/ 2 
 40 0 3 2 0 1 0  2  35 / 2 0 0 7 / 2 6 1 3 / 2 
   

 Tính lượng kiểm tra  j tương tự bước 1. Quá trình xét tính tối ưu của phương án
cực biên mới bắt đầu lại bước 2 của thuật toán. Thuật toán tiếp tục đến khi kết luận
được phương án tối ưu, hoặc kết luận không giải được.

Bước Hs Acb Pa c1 c2 … cn
Acb x1 x2 … xn i
C x B A1 A2 … An
c j1 x j1 b1 a11 a12 a1n
1 … … … … … … …
c jm x jm bm am1 am 2 … amn

Lượng kiểm tra j 1 2 … m

Lượng kiểm tra j


Chú ý.
i. Khi bài toán QHTT dạng chuẩn tắc f  x   max ta cần chuyển về min
g  x    f  x   min

ii. Một số bài toán QHTT chưa ở dạng chuẩn tắc nhưng có thể dùng các phép biến đổi để
đưa về dạng chuẩn tắc mà chưa cần dùng đến ẩn giả.
Ví dụ 1. Giải bài toán QHTT sau
f ( x)  4 x1  2 x2  x3  2 x4  x5  min

Trang 17
 x1  x2  3x3  x4  30

4 x1  3x2  x3  x5  15
Thỏa các ràng buộc 
2 x  2 x2  x3  x6  5
 1
 x  0, j  1, 4
 j

Trang 18
Ví dụ 2. Giải bài toán QHTT sau bằng phương pháp đơn hình

f ( x)  3 x1  5 x2  min

3x1  2 x2  x3  18
x  x  4
 1 4
Thỏa các ràng buộc 
x x 6
 2 5
 x  0, j  1, 5
 j

Trang 19
Ví dụ 3. Giải bài toán QHTT sau bằng phương pháp đơn hình

f ( x)  2 x2  x3  min

 x1  x2  2 x3  x4  7

Thỏa các ràng buộc 3x1  x2  2 x3  x5  3 ĐS: không tồn tại patu.

 x j  0, j  1,5

Trang 20
Ví dụ 4. Cho một bài toán QHTT dạng chuẩn
f ( x)  2 x1  5 x2  4 x3  x4  5 x5  3x6  min

 x1  2 x2  4 x3  3 x5  152

 4 x2  2 x3  x4  3 x5  60

3 x2  x5  x6  36
 x j  0 j

Trang 21
b. Cho bài toán QHTT dạng tổng quát.
Phương pháp.
Bài toán QHTT dạng tổng quát
f (x)  C T x  min (max)
Ax  B ( Ax  B, Ax  B )
xi  0 ( x j  0, x j  )

Bước 1. Đưa bài toán QHTT tổng quát về bài toán M.


Đưa bài toán QHTT dạng tổng quát về dạng chính tắc với B  0 , trong đó có phương trình
trong hệ ràng buộc chung chưa có ẩn cơ bản.
f (x)  C T x  min
Ax  B , B  0
x0

 a1i   x1   b1   c1 
 
A   A1 ... An  với Ai   ...  , x   ...  , B   ...   O , C   ... 
   
a  x  b  c 
 mi   n  m  n

Hệ ràng buộc chung gồm m phương trình, trong đó có k phương trình chưa có ẩn cơ bản
( 0  k  m ). Mỗi phương trình chưa có ẩn cơ bản ta cộng thêm một ẩn giả để làm ẩn cơ
bản. Như vậy, ta sẽ có k ẩn giả xn 1 , xn  2 ,..., xn  k  0 . Đồng thời ta cộng thêm một lượng vô
cùng lớn M  xn 1  xn  2  ...  xn  k  vào hàm mục tiêu để có bài toán M.

Bước 2. Lập bảng đơn hình tương tự bài toán QHTT dạng chuẩn tắc. Tuy nhiên, lượng
kiểm tra  j có dạng  j  Aj  B j .M . Việc xét tính âm, dương và so sánh  j được thực hiện
như sau:
 Xét tính âm, dương
Bj  0   j  0
Bj  0   j  0

B j  0 thì dấu của  j chính là dấu của Aj .

 So sánh
B j1  B j2   j1   j2
B j1  B j2 thì so sánh  j1 ,  j2 chính là so sánh Aj1 , Aj2 .

Trong bảng đơn hình dòng  j được chia thành hai dòng chứa Aj và B j .

Trang 22
Bước Hs Acb Pa c1 c2 … cn c n 1 … cn  k
Acb x1 x2 … xn xn 1 … xn  k i
C x B A1 A2 … An
c j1 x j1 b1 a11 a12 a1n
1 … … … … … … …
c jm x jm bm am1 am 2 … amn
Lượng kiểm tra j

Bước 3. Xét tính tối ưu của phương án cực biên ban đầu đối với bài toán M. Quá trình
được thực hiện đến khi kết luận được đối với bài toán M.
Bước 4. Kết luận đối với bài toán gốc. Ta có các TH sau:
TH1. Bài toán M không có patu thì bài toán gốc cũng không có patu.
TH2. Bài toán M có patu (  j  0, j ) thì có thể xảy ra ba kết quả sau:

 Bài toán M có patu mà hệ ẩn cơ bản không chứa ẩn giả thì bài toán gốc có patu.
Nếu bài toán M có patu mà hệ ẩn cơ bản còn ẩn giả thì ẩn giả phải bằng không.
Trương hợp này ta có cực biên suy biến. Patu của bài toán gốc thu được bằng cách
loại bỏ tất cả ẩn giả và ẩn phụ.
 Bài toán M có patu mà hệ ẩn cơ bản còn ít nhất một ẩn giả nhận giá trị dương thì
bài toán gốc không có patu.
Chú ý.
i. Khi ẩn giả ti là ẩn đưa ra thì ở bước sau ta không cần tính toán ở cột ẩn giả.

ii. Thông thường, giải bài toán M cần đưa ẩn giả ra khỏi hệ ẩn cơ bản. Do đó, ta nên hạn
chế số lượng ẩn giả đưa vào. Phương trình nào đã có ẩn cơ bản thì không cần cộng thêm
ẩn giả. Có thể thực hiện các phép biến đổi tương đương trên hệ ràng buộc chung để làm
xuất hiện thêm các ẩn cơ bản.
Chú ý. Trong một số trường hợp ta có thể sử dụng các phép biến đổi tương đương trên hệ
ràng buộc chung để xuất hiện một số ẩn cơ bản.
 2 1 1 1 1
 
Ví dụ: Hệ ràng buộc chung có ma trận hệ số  0 1 1 1 0  .
1 1 1 2 0
 

Hệ có 1 ẩn cơ bản x4 nằm ở hàng 1. Thực hiện các phép biến đổi sơ cấp trên hàng

Trang 23
 2 1 1 1 1 2 0 2 2 1  1 0 0 1 1 
   h2  h1 h1    h3  h1 h1  
 0 1 1 1 0  
 h2  h3  h3  0 1 1 1 0  
h3
 h2  h2
 1 / 2 1 0 1/ 2 0 
 1 1 1 2 0  1 0 2 3 0  h23 1 / 2 0 1 3 / 2 0 
     h3  
2

Từ ma trận hệ số ta có phương án cực biên ban đầu (½; ½; 0; 1). Các ẩn cơ bản x1 ở
phương trình 2; x2 ở phương trình 3; x4 ở phương trình 1.

Ví dụ 5. Giải bài toán QHTT sau: f  x   2 x1  x2  x4  min

 x1  x2  x3  x4  2

x1  x2  x3  0
Thỏa 
x  x  2 x3  1
 1 2
 x  0, j  1, 4
 j

Chú ý. Trong một số trường hợp ta có thể sử dụng các phép biến đổi tương đương trên hệ
ràng buộc chung để xuất hiện một số ẩn cơ bản.

Trang 24
2 1 1 1 1
Hệ ràng buộc chúng của ví dụ trên có ma trận hệ số  0 1 1 1 0  .
 1 1 1 2 0
 

Hệ có 1 ẩn cơ bản x4 nằm ở hàng 1. Thực hiện các phép biến đổi sơ cấp trên hàng

 2 1 1 1 1  2 0 2 2 1  1 0 0 1 1 
   h2  h1  h1    h3  h1 h1  
 0 1 1 1 0  
 h2  h3  h3
  0 1 1 1 0  
h3
 h2  h2
 1 / 2 1 0 1 / 2 0 
 1 1 1 2 0  1 0 2 3 0  h23 1 / 2 0 1 3 / 2 0 
     h3  
2

Từ ma trận hệ số ta có phương án cực biên ban đầu (½; ½; 0; 1). Các ẩn cơ bản x1 ở
phương trình 2; x2 ở phương trình 3; x4 ở phương trình 1.

Trang 25
Ví dụ 6. Giải bài tóa QHTT sau f ( x)  x1  2 x2  3 x3  min

2 x1  x2  3 x3  2

Thỏa mãn 2 x1  3x2  4 x3  1
 x , x , x  0.
 1 2 3

Trang 26

You might also like