You are on page 1of 58

LÊ HUỲNH TUYẾT ANH

Tháng 3 ­ 2008
QUY HOẠCH TUYẾN TÍNH
PHÁT BIỂU BÀI TOÁN QUY HOẠCH TUYẾN TÍNH

ymax = max c1x1 + c2x2 + ... + cnxn


ymin = min c1x1 + c2x2 + ... + cnxn
Ràng buộc
a11x1 + a12x2 + ... + a1nxn (≤, =, ≥) b1
a21x1 + a22x2 + ... + a2nxn (≤, =, ≥) b2
:
am1x1 + am2x2 + ... + amnxn (≤, =, ≥) bm
Bài toán quy hoạch tuyến tính thuộc loại bài toán
tối ưu thực định
ĐIỀU KIỆN ĐỂ BÀI TOÁN TỐI ƯU THUỘC DẠNG 
BÀI TOÁN QUY HOẠCH TUYẾN TÍNH

HÀM MỤC TIÊU là hàm bậc nhất đối với các biến

CÁC ĐIỀU KIỆN RÀNG BUỘC

phải được thể hiện qua


các hàm toán học bậc nhất tuyến tính
PHƯƠNG PHÁP ĐỒ THỊ
BÀI TOÁN

Thời gian làm việc Đất sét Doanh thu


Sản phẩm (giờ/đơn vị) (kg/đơn vị) (1000$/đơn vị)

Tô 1 4 40
Bình 2 3 50

Trong một xưởng mỗi ngày, có tối đa 40 giờ làm việc và 120 kg
đất sét để sản xuất tô và bình.

Với
x1 = số tô được sản xuất trong ngày
x2 = số bình được sản xuất trong ngày
PHÁT BIỂU BÀI TOÁN TỐI ƯU

ymax = Max 40 x1 + 50 x2

Điều kiện ràng buộc

x1 + 2x2 ≤ 40 (ràng buộc về giờ làm việc)


4x1 + 3x2 ≤ 120 (ràng buộc về đất sét)
x1 , x2 ≥ 0
GIẢI BẰNG PHƯƠNG PHÁP ĐỒ THỊ

Vẽ hệ trục tọa độ x1Ox2

Xác định miền giới hạn của bài toán trên hình vẽ

Vẽ hàm mục tiêu sao cho đi qua trục tọa độ

Tịnh tiến đường thẳng này trong miền giới hạn bài toán

Xác định nghiệm tối ưu bài toán trên biên miền xác định
ĐỊNH LÝ VỀ ĐIỂM CỰC BIÊN

Đối với bài toán quy hoạch tuyến tính thì 
cực trị nằm trên biên của miền xác định và 
thường nằm trên đỉnh gọi là các điểm cực biên 
GIẢI BẰNG PHƯƠNG PHÁP ĐỒ THỊ
x2
50 –

40 – 4 x1 + 3 x2 = 120
30 –

20 – 4 x1 + 3 x2 < 120
10 –
4 x1 + 3 x2 > 120
0–

| | | | | |
10 20 30 40 50 60 x1
GIẢI BẰNG PHƯƠNG PHÁP ĐỒ THỊ

x2
50 –

40 –

30 – 4 x1 + 3 x2 ≤ 120
20 –
Miền xác định
10 –

0– x1 + 2 x2 ≤ 40
| | | | | |
10 20 30 40 50 60 x1
TÍNH GIÁ TRỊ TỐI ƯU

x2
40 –

30 –
Miền xác định OABC
20 –
A
10 –
B
0–
8
| | 24 | | x1
10 20 30 C 40
TÍNH GIÁ TRỊ TỐI ƯU

x2 x1 + 2x2 = 40
40 – 4x1 + 3x2 = 120
4 x1 + 3 x2 ≤ 120
30 – 4x1 + 8x2 = 160

20 –
-4x1 - 3x2 = -120
5x2 = 40
10 –
x1 + 2 x2 ≤ 40 x2 = 8
0–
8
| | 24 | | x1 x1 + 2(8) = 40
10 20 30 40
x1 = 24
y = 40(24) + 50(8) = 1,360
TÍNH TOÁN ĐIỂM CỰC BIÊN

x1 = 0
x2 x1 = 24
x2 = 20
x2 = 8
40 – y = 1,000 x1 = 30
y = 1,360
x2 = 0
30 –
y = 1,200
20 – A

10 – B
| | | C|
0–
10 20 30 40 x1
PHƯƠNG PHÁP ĐỒ THỊ

BÀI TOÁN

A B Điều kiện lưu trữ


Dầu thô (tấn) (tấn) (tấn)
Xăng 0.2 0.4 1200
DO 0.2 0.2 1200
FO 0.4 0.4 1400

Hiệu quả kinh tế 140 150


(USD/tấn)
Một nhà máy lọc dầu xử lý hai loại dầu thô 1 và 2 để sản xuất
xăng, DO, FO.
Với: x1 = số lượng dầu thô A cần xử lý
x2 = số lượng dầu thô B cần xử lý
PHÁT BIỂU BÀI TOÁN TỐI ƯU

ymax = Max 140 x1 + 150 x2

Điều kiện ràng buộc

0.2x1 +0.4x2 ≤ 1200 (ràng buộc về xăng) (1)


0.4x1 +0.2x2 ≤ 1200 (ràng buộc về DO) (2)
0.4x1 +0.4x2 ≤  1400 (ràng buộc về FO) (3)
x1 , x2 ≥ 0 (4)
5. Giaûi baøi toaùn baèng
phöông phaùp ñoà thò:
0.
4

A(2,3 B(8,0
x1

D
+

x2 0.
4x) )
0.

(2)
2x

1 +
C(4,6)
0. D(8,8
2

4x
=

C (4)
)
12

2 =
14
00

B
(1 A (3 00
) ) 0.2
x1 +
A C
0.4
x2 =
120
0
Z=0 B
O D
x1
Zmin
5. Giaûi baøi toaùn baèng
phöông phaùp ñoà thò:
0.
4x

A(2,3 B(8,0
1
+

D
x2 0.
0.

4x) )
2x

(2) 1 +
D(8,8
2

0.
C(4,6)
=

4x
C A(4) Miền
= xác định OABCD
12

(0,3000)
14 )
2
00

B 0
(1 (3
B (1000,2500) 0
) ) 0.2x
A C
+01
.4x
2 =
C (2500,1000) 120
0
Z=0 B
D (3000,0)

O x1
Zmin
PHÁT BIỂU BÀI TOÁN TỐI ƯU

Tại điểm B, hàm mục tiêu đạt giá trị cao


nhất.
Giá trị lớn nhất tại B(1000,2500) :
ymax = 1000x140 + 2500x150 =
515000

Kết luận:
Ta cần xử lý 1000 tấn dầu thô A và
PHÁT BIỂU BÀI TOÁN TỐI ƯU
Lập phương án phân bổ lượng chất thải hàng ngày
từ 4 bệnh viện A1, A2, A3, A4 đến 4 bãi rác B1, B2, B3, B4.
Biết rằng:
Lượng chất thải hàng ngày ai (kg/ngày) được thải
ra từ bệnh viện Ai là: a1 = 160, a2 = 150, a3 = 190, a4 = 100.
Lượng chất thải hàng ngày bj (kg/ngày) được nhận
vào ở bãi rác Bj là: b1 = 120, b2 = 175, b3 = 155, b4 = 150.
Chi phí vận chuyển 1kg chất thải từ Ai đến Bj là cij
(ngàn đồng) được cho theo bảng sau:
BTTƯ được đặt ra là tìm đường đi giữa các điểm
cho các xe sao cho chi phí vận chuyển là tối thiểu.
XÁC ĐỊNH ĐẠI LƯỢNG

Chi phí vận chuyển 1 kg chất thải từ Ai đến Bj: cij


Lượng chất thải vận chuyển từ Ai đến Bj: xij
Lượng chất thải ở từng bệnh viện : aj
Khả năng nhận chất thải của mỗi bãi rác: bi

Tổng chi phí vận chuyển tất cả lượng chất


thải y
BẢNG CHI PHÍ VẬN CHUYỂN 
1KG CHẤT THẢI TỪ Ai ĐẾN Bj
Bãi rác 1 Bãi rác 2 Bãi rác 3 Bãi rác 4 Cung
(kg/ngày)
Bệnh viện A 31 19 25 25 160

Bệnh viện B 25 13 18 22 150

Bệnh viện C 37 29 27 20 190

Bệnh viện D 13 24 30 18 100

Cầu 120 175 155 150 600


(kg/ngày)
PHÁT BIỂU BÀI TOÁN TỐI ƯU

Đốitượng công nghệ: Hệ thống vận


chuyển rác từ bệnh viện đến bãi rác.
4 4
Hàm mục tiêu: y = ∑∑ cij xij
i =1 j =1

Với: xij (kg/ngày) là lượng chất thải


cần chuyển từ Ai đến Bj.
PHÁT BIỂU BÀI TOÁN TỐI ƯU
4

Các ràng buộc: ∑xij = a; i =1,4


j =1
4

∑xij =b; j =1,4


i =1
4 4

∑ai =∑bi
i =1 j =1

xij ≥0

Bài toán trên thuộc loại bài toán vận tải.


PHƯƠNG PHÁP THẾ VỊ

THUẬT GIẢI
BƯỚC 1: Xây dựng phương án đầu
tiên (điểm xuât phát X0)
BƯỚC 2: Xác định hệ thế vị (ui,vj)
BƯỚC 3: Kiểm tra tiêu chuẩn tối ưu
Lặp lại quá trình cho đến
khi thu được nghiệm tối ưu
XÂY DỰNG PHƯƠNG ÁN ĐẦU TIÊN

1. Phương pháp góc Tây Bắc

2. Phương pháp phần tử nhỏ nhất

3. Phương pháp Vogel


PHƯƠNG PHÁP GÓC TÂY BẮC

Điền dần phương án vận chuyển vào ma trận


vận chuyển, bắt đầu từ ô bên trái phía trên.

Đặt x11 = min (a1; b1)


Nếu a1 > b1 : ta đặt x12 = min (a1 – b1; b2)
Nếu a1 < b1 : ta đặt x21 = min (b1 – a1; a2)

Theo cách trên ta tiếp tục điền vào các ô của


ma trận vận chuyển cho đến khi không còn
hàng ở các điểm phát hàng và thoả mãn
nhu cầu ở các điểm nhận hàng.
PHƯƠNG PHÁP PHẦN TỬ NHỎ NHẤT

Chọn ô cij có giá trị nhỏ nhất trong bảng chi phí
vận chuyển.
Tính và điền vào ô đó giá trị xij = min (ai, bj).
Sau đó, ta không xét hàng hoặc cột có dự trữ
đã hết hay nhu cầu đã thoả mãn.
Nếu ai = bj thì không xét đồng thời cả cột Bj lẫn
hàng Ai.
Từ phần còn lại của bảng ta lại chọn ô có giá trị
nhỏ nhất và quá trình phân phối tiếp tục cho
đến khi thoả mãn nhu cầu ở các điểm tiêu thụ.
PHƯƠNG PHÁP VOGEL

B1: Tính độ lệch của các hàng và cột.


Độ lệch của mỗi hàng (cột) = chi phí
thấp thứ nhì trong hàng (cột) – chi phí thấp
nhất trong hàng (cột) ấy.

B2: Chọn hàng (cột) có độ lệch lớn nhất để


ưu tiên phân phối trước. Trong hàng (cột) ấy
ưu tiên phân phối tối đa cho ô nào có chi phí
nhỏ nhất.
PHƯƠNG PHÁP VOGEL
B3: Nếu có nhiều hàng (cột) có cùng độ
lệch lớn nhất thì ta xác định ô trũng.
Ô trũng là ô có chi phí nhỏ nhất nằm
giữa giao của một hàng và một cột đang
xét để ưu tiên phân phối cho ô nào có chi phí
nhỏ nhất trong tất cả các hàng và cột đang
xét.
B4: Sau mỗi lần phân phối ta xoá hàng (cột)
tương ứng với nó. Ta có một bảng mới, tính
lại độ lệch của các cột trong bảng này, sửa
lại lượng hàng.
B5: Với bảng còn lại tiếp tục các bước 2 và 3
cho tới khi kết thúc.
PP GÓC TÂY BẮC
Điền phương án vận chuyển, bắt đầu từ ô bên trái phía trên.
Đặt x11 = min (a1; b1) = min (160; 120) = 120.
Nhu cầu ở B1 được thỏa mãn nên ta bỏ cột B1.
Vì a1 > b1 nên phần dư (a1 – b1) = 40 được chuyển từ A1 đến
B2 nên x12 = min (a1 – b1; b2) = min (40; 175) = 40.
Lúc này, nhu cầu ở A1 đã thỏa nên ta bỏ hàng A1. Nhu cầu ở
B2 chưa đáp ứng được là: 175 – 40 = 135 nên phải chuyển từ
A2 đến B2 một lượng x22 = min (135; 150) = 135.
Quá trình trên được tiếp tục với kết quả được trình bày ở
bảng sau:
Bãi rác Bãi rác 2 Bãi rác 3 Bãi rác 4 Cung
1 (kg/ngày)

Bệnh viện A 31 19 25 25 160


120 40 160-120=40

Bệnh viện B 25 13 18 22 150


135 15 150-135=15

Bệnh viện C 37 29 27 20 190


140 50 190-140=50

Bệnh viện D 13 24 30 18 100


100
Cầu 120 175 155 150 600
175-40=135 155-15=140
(kg/ngày)
Bãi rác Bãi rác 2 Bãi rác 3 Bãi rác 4 Cung
1 (kg/ngày)

Bệnh viện A 31 19 25 25 160


120 40
Bệnh viện B 25 13 18 22 150
135 15
Bệnh viện C 37 29 27 20 190
140 50
Bệnh viện D 13 24 30 18 100
100
Cầu 120 175 155 150 600
(kg/ngày)
XÂY DỰNG PHƯƠNG ÁN ĐẦU TIÊN – 
PP GÓC TÂY BẮC

Với phương án trên tổng chi phí vận chuyển là:


Z = 31x120 + 19x40 + 13x135 + 18x15 + 27x40
+ 20x50 + 18x100 = 13.085 (ngàn đồng)
XÁC ĐỊNH HỆ THẾ VỊ (ui,vj)

Từ phương án tựa ban đầu, xác định hệ số thế


vị (ui, vj). Hệ thế vị được tính từ các ô cơ sở:
ui + vj = cij

* Ô cơ sở là những ô có điền giá trị của biến


số khác 0.
* Ô tự do là những ô còn lại.
* Chọn một ẩn cho giá trị bằng 0, sau đó xác
định các ẩn còn lại.
XÁC ĐỊNH HỆ SỐ THẾ VỊ
Hệ thế vị được tính từ các ô cơ sở:
ui + vj = cij

u1 + v1 = 31 ; u1 + v2 = 19 ;
u2 + v2 = 13 ; u2 + v3 = 18 ;
u3 + v3 = 27 ; u3 + v4 = 20 ;
u4 + v4 = 18.

Cho u1 = 0 v1 = 31 ; v2 = 19 ; v3 = 24 ; v4 = 17;
u2 = – 6 ; u3 = 3 ; u4 = 1.
KIỂM TRA
Kiểm tra tiêu chuẩn tối ưu ở các ô tự do.
* Nếu các ô tự do thỏa ui + vj ≤ cij thì phương
án tối ưu.
* Nếu ở một ô tự do bất kỳ có ui + vj > cij thì
phương án chưa tối ưu, ta phải cải thiện
phương án vận chuyển.
* Chọn ô tự do có Δij = max (ui + vj – cij) > 0 và
tìm một chu trình tính đổi ứng với ô tự do ấy.
* Chu trình là một đường gãy khép kín, các
chỗ gãy vuông góc với nhau, có một đỉnh là ô
tự do, các đỉnh còn lại là các ô cơ sở.
KIỂM TRA
Kiểm tra tiêu chuẩn tối ưu:
u1 + v3 = 24 < c13 ; u3 + v1 = 34 < c31 ;
u1 + v4 = 17 < c14 ; u3 + v2 = 22 < c32 ;
u2 + v1 = 25 = c21 ; u4 + v1 = 32 > c41 ;
u2 + v4 = 11 < c24 ; u4 + v2 = 20 < c42 ;
u4 + v3 = 25 < c43 ;
Ở ô tự do u4 + v1 = 32 > c41 = 13 => Phương án
chưa tối ưu.
Chọn ∆41 = u4 + v1 – c41 = 32 – 13 = 19
Ta xác định chu trình vận chuyển như bảng
sau:
Bãi rác 1 Bãi rác 2 Bãi rác 3 Bãi rác 4 Cung
(kg/ngày)
v1 = 31 v2 = 19 v3 = 24 v4 = 17

Bệnh viện A 31 19 25 25 160


u1 = 0 120 40
Bệnh viện B 25 13 18 22 150
u2 = – 6 135 15

Bệnh viện C 37 29 27 20 190


u3 = 3 140 50
Bệnh viện D 13 24 30 18 100
u4 = 1 100

Cầu 120 175 155 150 600


(kg/ngày)
Bãi rác 1 Bãi rác 2 Bãi rác 3 Bãi rác 4 Cung
(kg/ngày)
v1 = 31 v2 = 19 v3 = 24 v4 = 17

Bệnh viện A 31 19 25 25 160


u1 = 0 20 140
Bệnh viện B 25 13 18 22 150
u2 = – 6 35 115

Bệnh viện C 37 29 27 20 190


u3 = 3 40 150
Bệnh viện D 13 24 30 18 100
u4 = 1 100 0

Cầu 120 175 155 150 600


(kg/ngày)
XÁC ĐỊNH HỆ SỐ THẾ VỊ
Sau khi xác định được phương án mới, ta lặp
lại các bước (a) và (b) để kiểm tra xem
phương án đã tối ưu hay chưa?
u1 + v1 = 31 ; u1 + v2 = 19 ;
u2 + v2 = 13 ; u2 + v3 = 18 ;
u3 + v3 = 27 ; u3 + v4 = 20 ;
u4 + v1 = 13.
Cho u1 = 0 v1 = 31 ; v2 = 19 ; v3 = 24 ; v4 = 17;
u2 = – 6 ; u3 = 3 ; u4 = – 18.
KIỂM TRA
Kiểm tra tiêu chuẩn tối ưu:

u1 + v3 = 24 < c13 ; u3 + v1 = 34 < c31 ;


u1 + v4 = 17 < c14 ; u3 + v2 = 22 < c32 ;
u2 + v1 = 25 = c21 ; u4 + v2 = 1 > c42 ;
u2 + v4 = 11 < c24 ; u4 + v3 = 6 < c43 ;
u4 + v4 = -1 < c44 ;

Ở tất cả các ô tự do ui + vj < cij => Phương án


đã tối ưu.
Bãi rác 1 Bãi rác 2 Bãi rác 3 Bãi rác 4 Cung
v1 = 31 v2 = 19 v3 = 24 v4 = 17 (kg/ngày)
Bệnh viện A 31 19 25 25 160
u1 = 0 20 140
Bệnh viện B 25 13 18 22 150
u2 = – 6 35 115
Bệnh viện C 37 29 27 20 190
u3 = 3 40 150
Bệnh viện D 13 24 30 18 100
u4 = – 18 100
Cầu 120 175 155 150 600
(kg/ngày)
KIỂM TRA BẰNG PP THẾ VỊ

Với phương án trên tổng chi phí vận chuyển là:


Z = 31x20 + 19x140 + 13x35 + 18x115 + 27x40
+ 20x150 + 13x100 = 11.185 (ngàn đồng)
PHƯƠNG PHÁP VOGEL

B1: Tính độ lệch của các hàng và cột.

B2: Chọn hàng (cột) có độ lệch lớn nhất để


ưu tiên phân phối trước, ưu tiên phân phối tối
đa cho ô nào có chi phí nhỏ nhất.
PHƯƠNG PHÁP VOGEL
B3: Nếu có nhiều hàng (cột) có cùng độ
lệch lớn nhất thì ta xác định ô trũng (ô có chi
phí nhỏ nhất nằm giữa giao của một hàng
và một cột)

B4: Sau mỗi lần phân phối:


-Xoá hàng (cột) tương ứng với nó.
-Tính lại độ lệch
-Lặp lại quy trình phân phối
BẢNG CHI PHÍ VẬN CHUYỂN
HÀNG HÓA TỪ Ai ĐẾN Bj

Cung
B1 B2 B3 B4 B5
(kg/ngày)

A1 10 6 5 8 9
55

A2 6 7 8 6 5
20

A3 8 6 10 8 6
32

A4 7 5 4 6 7
29
Cầu
19 30 38 14 35
(kg/ngày)
Độ
1 1 1 0 1 Cung
lệch Δ

1 10 6 5 8 9 55

1 6 7 8 6 5 20

0 8 6 10 8 6 32

1 7 5 4 6 7
29

19 30 9 14 35
Cầu
38-29
Độ lệch
Δ 2 0 3 2 1 Cung

1 10 6 5 8 9 46
55-9
9

1 6 7 8 6 5 20

2 8 6 10 8 6 32

19 30 0 14 35
Cầu
9-9
Độ lệch
Δ 2 0 2 1 Cung

2 10 6 8 9 16
46-30
30

1 6 7 6 5 20

0 8 6 8 6 32

Cầu 19 0 14 35
30-30
Độ lệch
Δ 2 2 1 Cung

1 10 8 9 16

1 6 6 5 6
20-14
14

0 8 8 6 32

19 0 35
Cầu
14-14
B1 B2 B3 B4 B5 Cung

10 6 5 8 9
A1 16 30 9 55

6 7 8 6 5
A2 3 14 3 20

8 6 10 8 6
A3 32 32

7 5 4 6 7
A4 29 29

Cầu 19 30 38 14 35

You might also like