You are on page 1of 59

Chương 3:

GIẢI THUẬT ĐƠN HÌNH


MỤC TIÊU BÀI HỌC

q Tìm hiểu bản chất và lý do của việc sử dụng Phương pháp Đơn hình
q Đưa LP về dạng chuẩn
q Giải LP bằng phương pháp Simplex
q Giải LP bằng phương pháp M lớn
q Giải LP với Phương pháp hai pha
q Nhận biết các trường hợp đặc biệt

2
BẢN CHẤT VÀ LÝ DO CỦA PHƯƠNG PHÁP ĐƠN HÌNH

• Phương pháp hình học để giải các bài toán LP:

- Chỉ áp dụng đối với các vấn đề hai chiều, tức là các vấn đề có hai biến
- Nó đòi hỏi giải một hệ phương trình cho tất cả các điểm góc.

• Các bài toán tối ưu hóa trong đời thực:

- Có hàng nghìn biến và hàng nghìn ràng buộc


- Có vô số các điểm góc
- Làm cho kỹ thuật trên (phương pháp hình học) không thể thực hiện được ... ngay cả
trên siêu máy tính

3
BẢN CHẤT VÀ LÝ DO CỦA PHƯƠNG PHÁP ĐƠN HÌNH

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


George Dantzig
q Cung cấp một quy trình hiệu quả để giải Born: 8 Nov 1914 in
quyết những bài toán lớn Portland,Oregon, USA
q Nó sử dụng các phương pháp đại số tuyến
tính
- Nghiên cứu hệ phương trình tuyến tính
- Sử dụng ma trận
q Một trong 10 thuật toán hàng đầu của thế
kỷ XX

4
SƠ KHỞI VỀ GIẢI THUẬT ĐƠN HÌNH
Ý nghĩa hình học của phương pháp đơn hình

Maximize Z = 3x1 + 5x2


Subject to
x1 ≤4 (6,2)
2x2 ≤ 12 Z= 36
(6,0)
3x1 + 2x2 ≤ 18 Z= 30
x1 ≥0
x2 ≥ 0.
qBắt đầu ở bất kỳ điểm cực trị khả thi nào. (4,3)
Z= 27
qDi chuyển đến một điểm cực trị liền kề với giá
trị mục tiêu tốt hơn.
(4,0)
qTiếp tục cho đến khi không có điểm cực trị Z= 12
liền kề nào có giá trị mục tiêu tốt hơn. (0,0)
Z=0 5
Ý nghĩa đại số của Phương pháp đơn hình
Dạng chuẩn của LP:
1. Ràng buộc không âm cho tất cả các biến.
2. Tất cả các ràng buộc được biểu thị dưới dạng phương trình.
3. Vectơ bên vế phải là không âm.
Biến thiếu:
qĐược thêm vào vì các ràng buộc là bất phương trình (≤).

Biến thừa:
qĐược thêm vào vì các ràng buộc là bất phương trình ().

Chuyển đổi : Max. Z = - Min (- Z)


Ví dụ: Max Z = 5x1 + 3x2 có cùng lời giải với
Min (-Z) = - 5x1 - 3x2
6
Ý nghĩa đại số của Phương pháp đơn hình

Chuyển bất phương trình về phương trình


Before
After
x1 + 2x2 + x3 - x4  5 x1 + 2x2 + x3 - x4 +s1 = 5

s1  0
Đối với các ràng buộc “” s1 : Biến thiếu
-2x1 - 4x2 + x3 + x4  -1;
Bước 1. Giản lược RHS âm
2x1 + 4x2 - x3 - x4  1
Bước 2. Chuyển thành phương trình
2x1 + 4x2 - x3 - x4 – s2 = 1
s2  0
s2 : Biến thừa 7
Ý nghĩa đại số của Phương pháp đơn hình
Dạng gốc Sau chuyển đổi
Maximize Z = 3x1 + 5x2 Maximize Z = 3x1 + 5x2
Subject to Subject to
x1 ≤4 x1 + s1 =4
2x2 ≤ 12 2x2 + s2 = 12
3x1 + 2x2 ≤ 18 3x1 + 2x2 + s3 = 18
x1 ≥0
x2 ≥ 0. x1≥ 0, x2 ≥ 0, s1 ≥0, s2 ≥0, s3 ≥0.
m: số ràng buộc
n: số biến
n – m: số biến không cơ bản

m = 3; n = 5  Số biến không cơ bản = 2, Số biến cơ bản = 3.


8
Ý nghĩa đại số của Phương pháp đơn hình
x1 x2 s1 s2 s3 Lời giải Điểm Biến Biến cơ Lời giải khả
cơ bản? gốc? không bản thi cơ bản?
cơ bản
0 0 4 12 18 yes yes x1, x2 s1,s2,s3 yes

0 6 4 0 6 yes yes x1, s2 yes

2 6 2 0 0 yes yes s2 , s3 yes

Biến thiếu: không âm


Biến không cơ bản (NBV): Các biến được set tới 0 để tìm lời giải cơ bản
Biến cơ bản (BV): Các biến được giải ra
Lời giải khả thi cơ bản (BFS): Các biến cơ bản thỏa mãn ràng buộc không âm 9
THUẬT NGỮ

1. Biến vào: Hệ số hàm mục tiêu âm lớn nhất (dương lớn nhất) đối với maximize Z
(đối với minimize Z). Cột để nhận ra biến vào là cột quay (pivot column)

2. Biến ra: bằng cách chia số ở RHS bởi số tương ứng trong cột lựa chọn, chọn tỉ số
là số dương nhỏ nhất. Dòng này được gọi là dòng quay (pivot row), giao giữa cột
quay và dòng quay là tâm quay (pivot number).

3. Tất cả các hệ số trong phương trình Z là không âm đối Bài toán cực đại và không
dương đối với Bài toán cực tiểu, lúc này lời giải đã là tối ưu.

10
GIẢI THUẬT ĐƠN HÌNH

11
Bước 1: Chuyển Phương trình tuyến tính về dạng chuẩn

Dạng chuẩn Sau khi chuyển đổi

Maximize Z = 3x1 + 5x2 Maximize Z = 3x1 + 5x2


Subject to Subject to
x1 ≤4 x1 + s1 =4
2x2 ≤ 12 2x2 + s2 = 12
3x1 + 2x2 ≤ 18 3x1 + 2x2 + s3 = 18
x1 ≥0
x2 ≥ 0.
x1, x2, s1, s2, s3 ≥ 0

m = 3; n = 5  Số biến không cơ bản = 2, biến cơ bản = 3.

12
Bước 2: Tìm lời giải ban đầu

Lời giải ở bảng lúc đầu dựa vào điểm gốc tọa độ
Bảng đơn hình
Basic X1 X2 S1 S2 S3 RHS
variable
Z -3 -5 0 0 0 0
S1 1 0 1 0 0 4
S2 0 2 0 1 0 12
S3 3 2 0 0 1 18
Lời giải ban đầu:
x1 = x2 = 0: Biến không cơ bản =0
s1 = 4; s2 = 12; s3 = 18: biến cơ bản Is the current BFS Optimal?
Z=0 13
Bước 3: Xác định biến vào, biến ra, tâm quay (PP Gauss Jordan)
Biến vào

Iteration Basic X1 X2 S1 S2 S3 RHS Ratio


variable
Z -3 -5 0 0 0 0

S1 1 0 1 0 0 4
0
S2 0 2 0 1 0 12 12/2
S3 3 2 0 0 1 18 18/2

Biến ra dòng quay Tỉ số nhỏ


Cột quay
Tâm nhất
quay
Bước 4: Kiểm tra lời giải khả thi mới
(Dòng quay mới) = (Dòng quay cũ ) (Tâm quay)
Tất cả các Dòng khác bao gồm Z = Dòng cũ - (Hệ số tương ứng trên cột quay)* (Dòng quay mới)
Iteration Eq. Basic X1 X2 S1 S2 S3 RHS Ratio
variable
(0) Z -3 -5 0 0 0 0
(1) S1 1 0 1 0 0 4
0 (2) S2 0 2 0 1 0 12 12/2
(3) S3 3 2 0 0 1 18 18/2
(0) Z -3 0 0 5/2 0 30
1 (1) S1 1 0 1 0 0 4
(2) X2 0 1 0 1/2 0 6
(3) S3 3 0 0 -1 1 6

X2 trở thành biến cơ Các số còn lại trong cột quay Tâm quay phải bằng
bản thay vì S2 phải = 0 ở lần lặp kế tiếp 1 trong lần lặp kế
tiếp
Is the current BFS Optimal?
Bước 5: Lặp lại bước 3, 4 Is the current BFS Optimal?
Iteration Eq. Basic X1 X2 S1 S2 S3 RHS Ratio
variable
(0) Z -3 -5 0 0 0 0
(1) S1 1 0 1 0 0 4
0 (2) S2 0 2 0 1 0 12 12/2
(3) S3 3 2 0 0 1 18 18/2
(0) Z -3 0 0 5/2 0 30
1 (1) S1 1 0 1 0 0 4 4/1
(2) X2 0 1 0 1/2 0 6
(3) S3 3 0 0 -1 1 6 6/3
(0) Z 0 0 0 3/2 1 36
2 (1) S1 0 0 1 1/3 -1/3 2
(2) X2 0 1 0 1/2 0 6
(3) X1 1 0 0 -1/3 1/3 2

Tất cả hệ số trong phương trình Z là không âm, đã đạt đến giá trị tối ưu
Lời giải tối ưu : x1=2, x2=6, s1=2, Z=36
TÓM TẮT
1. Chuyển phương trình tuyến tính về dạng chuẩn
2. Kiểm tra tối ưu:
q Tìm lời giải khả thi cơ bản ban đầu (BFS)
q Kiểm tra lời giải khả thi cơ bản, nếu lời giải khả thi ban đầu là một lời giải tối ưu thì dừng.
Trường hợp khác:
q Xác định biến vào (Gía trị hệ số dương lớn nhất hoặc hệ số âm lớn nhất trong phương trình Z
cho bài toán cực đại hoặc cực tiểu tương ứng).
q Xác định biến ra (kiểm tra tỉ số nhỏ nhất).
q Tâm quay (pivot number) phải bằng 1 trong lần lặp kế tiếp.
q Những số còn lại trong cột quay phải bằng 0 trong lần lặp tiếp theo.
q Khi tất cả hệ số trong phương trình Z đều không âm với Bài toán cực đại và không dương
cho Bài toán cực tiểu thì ta đã đạt được lời giải tối ưu.

17
VÍ DỤ 2
Từ hệ phương trình trên ta xây dựng bảng đơn hình:

Biến cơ bản Z x1 x2 s1 s2 s3 s4 Lời giải Tỷ số

z 1 -5 -4 0 0 0 0 0

s1 0 6 4 1 0 0 0 24

s2 0 1 2 0 1 0 0 6

s3 0 -1 1 0 0 1 0 1

s4 0 0 1 0 0 0 1 2
Điều kiện tối ưu, biến vào, biến ra

Biến cơ bản x1 Lời giải Tỷ số


z -5 0
s1 6 24

s2 1 6

s3 -1 1

s4 0 2
Phép biến đổi Gauss Jordan

Biến CB Z x1 x2 s1 s2 s3 s4 Lời giải


z 1 -5 -4 0 0 0 0 0
s1 0 6 4 1 0 0 0 24
s2 0 1 2 0 1 0 0 6
s3 0 -1 1 0 0 1 0 1
s4 0 0 1 0 0 0 1 2
Kết quả của phép biến đổi, ta có bảng đơn hình mới

Biến cơ bản Z x1 x2 s1 s2 s3 s4 Lời giải Tỷ số

z 1 0 -2/3 5/6 0 0 0 20

x1 0 1 2/3 1/6 0 0 0 4

s2 0 0 4/3 -1/6 1 0 0 2

s3 0 0 5/3 1/6 0 1 0 5

s4 0 0 1 0 0 0 1 2
Tiếp tục biến đổi

Biến CB x2 Lời giải Tỷ số


x1 2/3 4

s2 4/3 2

s3 5/3 5

s4 1 2

24
Ta có bảng đơn hình mới sau:

Biến cơ bản Z x1 x2 s1 s2 s3 s4 Lời giải


z 1 0 0 3/4 1/2 0 0 21
x1 0 1 0 1/4 -1/2 0 0 3
x2 0 0 1 -1/8 3/4 0 0 3/2
s3 0 0 0 3/8 -5/4 1 0 5/2
s4 0 0 0 1/8 -3/4 0 1 1/2

Lời giải này là lời giải tối ưu vì tất cả các giá trị ở dòng z đều không âm.
Kết luận:
x1 = 3, x2 =3/2, Z = 21
Bài tập:

Xác định giải pháp tối ưu cho mỗi LP sau đây bằng cách liệt kê tất cả các
các lời giải cơ bản.
Bài tập a)

27
Bài tập b)

28
29
30
31
32
33
34
35
Phương pháp Big M

• Dạng chuẩn Phương trình tuyến tính :


• Cực đại (cực tiểu) Z:
có các :
• ràng buộc chức năng ở dạng (≤),(≥) bi
• ràng buộc không âm ở tất cả các biến
• bi≥0 đối với tất cả i = 1, 2, . . . , m.

• Chúng ta có thể giải “=” dạng đẳng thức của mô hình


phương trình tuyến tính như thế nào?

36
Các biến nhân tạo

§ Khi các ràng buộc là các đẳng thức hoặc bất phương
trình dạng ≥, các biến nhân tạo A1, A2 được thêm vào vế
trái và cả hàm mục tiêu với MA1 + MA2
Maximize Z = 3x1+ 5x2 +0 s1 +0 s2 – MA1 - MA2
subject to Lời giải khả thi ban đầu
x1 + s1 = 4 Biến không cơ bản:
2x2 + s2 =12 x1 = 0, x2 = 0
3x1 +2x2 + A1= 18 Biến cơ bản:
x3 -s3 + A2 = 5 s1 = 4, s2=12, A1 = 18.
x1 ≥ 0, x2 ≥ 0, s1 ≥ 0, s2 ≥ 0, A1 ≥0

Hệ số của biến thiếu hoặc thừa bằng 0


Hệ số của biến nhân tạo là M M: một con số dương cực lớn

38
Bước 1: Nhận một lời giải khả thi cơ bản ban đầu
Maximize Z = 3x1 +5x2 +0 s1 +0 s2 - 0S3 - MA1
Maximize Z = 3x1 +5x2 - MA2
subject to subject to
x1 ≤ 4 x1 + s1 = 4
2x2 ≤ 12 2x2 + s2 =12
3x1 +2x2 +A1= 18
3x1 +2x2 = 18 x3 -s3 +A2 = 17
x3 ≥ 17 x1 ≥ 0, x2 ≥ 0, s1 ≥ 0, s2 ≥ 0,
x1 ≥ 0, x2 ≥ 0

x1 = 0
x2 = 9
s1 = 4 Không phải lời giải khả thi ban đầu
s2 = -6 (vi phạm quy tắc)
x1 ≥ 0, x2 ≥ 0, s1 ≥ 0, s2 ≥ 0,
Bước 2 : Chuyển phương trình (0) thành dạng chuẩn
Maximize Z -3x1- 5x2 + MA1 =0 (0)
subject to
x1 + s1 = 4
2x2 + s2 =12
3x1 + 2x2+ A1= 18
x1 ≥ 0, x2 ≥ 0, s1 ≥ 0, s2 ≥ 0, A1 ≥0
Một biến cơ bản A1 có một hệ số khác 0 trong phương trình (0), vì thế A1
phải được loại bỏZ -3x -5x MA 0
1 2 1

+
-M x (3x1 +2x2 + A1 18)

Z -(3M+3) x1 -(5+2M) x2 -18M


Bước 3: Ứng dụng phương pháp đơn hình
Bảng đơn hình
Lần lặp Biến cơ Ptr x1 x2 s1 s2 A1 RHS
bản
Z (0) -3M - 3 -2M -5 0 0 0 -18M
s1 (1) 1 0 1 0 0 4
0 s2 (2) 0 2 0 1 0 12
A1 (3) 3 2 0 0 1 18

Iteration Basic Eq. x1 x2 s1 s2 A1 RHS


varibles
Z (0) 0 -2M-5 3M+3 0 0 -6M+12
X1 (1) 1 0 1 0 0 4
1
s2 (2) 0 2 0 1 0 12
A1 (3) 0 2 -3 0 1 6
Bước 3: Ứng dụng phương pháp đơn hình

Iteration Basic Eq. x1 x2 s1 s2 A1 RHS


varibles
Z (0) 0 0 -9/2 0 M+5/2 27
X1 (1) 1 0 1 0 0 4
2
s2 (2) 0 0 3 1 -1 6
X2 (3) 0 1 -3/2 0 1/2 3

Iteration Basic Eq. x1 x2 s1 s2 A1 RHS


varibles
Z (0) 0 0 0 3/2 M+1 36

3 x1 (1) 1 0 0 -1/3 1/3 2


s2 (2) 0 0 1 1/3 -1/3 2
x2 (3) 0 1 0 1/2 0 6
TÓM TẮT

qBiến nhân tạo được thêm vào dạng ràng buộc đẳng thức
và ≥
qHệ số của biến nhân tạo là M.
qHệ số của biến thiếu (thừa) là 0.
qBài toán LP: chuyển về dạng chuẩn trước khi dùng
phương pháp đơn hình.
Phương pháp 2 giai đoạn
Bảng đơn hình ban đầu:
Biến cơ x1 x2 x3 R1 R2 x4 Lời giải Tỷ số
bản
r 0 0 0 -1 -1 0 0
R1 3 1 0 1 0 0 3
R2 4 3 -1 0 1 0 6
x4 1 2 0 0 0 1 4

Dòng r mới = Dòng r cũ + (hệ số của R1x Dòng R1 + hệ số của R2 x Dòng R2)
Biến cơ x1 x2 x3 R1 R2 x4 Lời giải Tỷ số
bản
r -7 -4 1 0 0 0 -9
R1 3 1 0 1 0 0 3
R2 4 3 -1 0 1 0 6
x4 1 2 0 0 0 1 4
Bảng đơn hình ở vòng lặp cuối Pha 1:
Biến cơ x1 x2 x3 R1 R2 x4 Lời giải Tỷ số
bản
r 0 0 0 -1 -1 0 0
x1 1 0 1/5 3/5 -1/5 0 3/5
x2 0 1 -3/5 -4/5 3/5 0 6/5
x4 0 0 1 1 -1 1 1

Ta có lời giải cơ bản ban đầu: x1 = 3/5


x2 = 6/5
x4 = 1
47
• Pha 2: Sau khi xóa cột biến nhân tạo ta viết lại phương
trình:

Ta có bảng đơn hình:

Biến x1 x2 x3 x4 Lời Tỷ số
cơ bản giải

Z -4 -1 0 0 0
x1 1 0 1/5 0 3/5
x2 0 1 -3/5 0 6/5
x4 0 0 1 1 1
Hàng Z mới = Hàng Z cũ + (Hệ số của x1 * dòng x1 + Hệ số của x2 * dòng x2)

Lời giải tối ưu:


Biến x1 x2 x3 x4 Lời giải Tỷ số
cơ bản
Z 0 0 1/5 0 18/5
x1 1 0 1/5 0 3/5
x2 0 1 -3/5 0 6/5
x4 0 0 1 1 1
Ví dụ 2:
Big M :
• Min Z= 0.4x1 +0.5 x2
• st:
Min Z= 0.4x1 +0.5x2 + MA1 + MA2
• 0.3x1 + 0.1x2 ≤ 2.7 st:
• 0.5x1 + 0.5x2 = 6 0.3x1 + 0.1x2 + s1 = 2.7
• 0.6x1+ 0.4x2 ≥ 6
• x1,x2 ≥ 0
0.5x1 + 0.5x2 + A1 = 6
0.6x1 + 0.4x2 - s2 +A2 = 6
x1,x2,s1,s2,A1,A2≥0
Two phase method:
Phase 1: Phase 2:
min Z’ = A1+A2 Tiếp tục với lời min Z= 0.4x1 + 0.5x2
st: giải khả thi cơ bản st:
0.3x1 + 0.1x2 + s1=2.7 của giai đoạn 1 0.3x1 + 0.1x2 + s1 = 2.7
0.5x1 + 0.5x2 + A1= 6 0.5x1 + 0.5x2 = 6
0.6x1+ 0.4x2 - s2+A2 = 6 0.6x1 + 0.4x2 - s2 = 6
x1,x2,s1,s2,A1,A2≥0 x1,x2,s1,s2 ≥0
50
Giai đoạn 1

51
Chuẩn bị giai đoạn 2

52
Giai đoạn 2 cuối cùng

Lời giải tối ưu đạt được:


X1 = 7.5; X2 = 4.5; Z = 5.25
S1 = 0; S2 = 0.3

53
Hướng dẫn sử dụng phần mềm IBM CPLEX

• Link tải:
https://drive.google.com/file/d/1zZrqqp_b8nn9ANfRothXSwX-
idPuZ9Zi/view?fbclid=IwAR3P6dh6LkqopQd2biZEmT2LQCZDILcte
zgiBJknR4C1f9Xtyzw8WUdR2bI

54
Bài tập
Bài tập 1:

55
56
Bài tập 2:

57
58
Bài tập 3
Một công ty sản xuất 3 loại dụng cụ, T1, T2, T3. Các dụng cụ này dùng 2 loại vật liệu thô M1và M2, theo bảng
bên dưới

Số lượng vật liệu thô sẵn có hàng ngày là 2000 và 2400 chiếc tương ứng cho M1 và M2. Nghiên cứu thị trường
cho thấy nhu cầu hàng ngày đối với 3 loại dụng cụ ít nhất là 1000 chiếc. Bộ phận sản xuất có thể thỏa mãn nhu
cầu không? Nếu không thì công ty có thể sản xuất tốt nhất là như thế nào?
59

You might also like