Quy hoạch tuyến tính là một trong những lớp bài toán tối ưu được nghiên cứutrọng vẹn cả về phương diện lý thuyết lẫn thực hành, Bài toán vận tải là một dạngđặc biệt của QHTT.. Nếu trong
Trang 1BÀI TOÁN QUY HOẠCH TUYẾN TÍNH
Trong việc nghiên cứu các bài toán tối ưu nói chung, giải tích lồi giữ một vaitrò rất quan trọng Nó được sử dụng làm cơ sở toán học trong việc xây dựng cácthuật toán
Quy hoạch tuyến tính là một trong những lớp bài toán tối ưu được nghiên cứutrọng vẹn cả về phương diện lý thuyết lẫn thực hành, Bài toán vận tải là một dạngđặc biệt của QHTT Do đó chương này nhằm giới thiệu một số khái niệm và kiếnthức cơ bản về giải tích lồi và QHTT
1.1 Một số khái niệm về giải tích lồi
1.1.1 Không gian Euclude
Một vector n chiều trên trường số thực là một bộ được sắp thứ tự gồm n sốthực x=(x1, x2, , xn) Các xi, i =1, , n gọi là các thành phần hay toạ độ củavector Ví dụ x=(4,5,10,20)
Hai vectơ x và y gọi là bằng nhau x=y, nếu xi=yi, ∀i =1, , n
Xét hai phép toán trên các vector:
Phép cộng: x+y=(x1+y1, x2+y2, , xn+yn)
Phép nhân: αx=(αx1, αx2, , αxn), ∀α∈ R
Khi đó tập hợp tất cả các vector n chiều trong đó xác định phép cộng cácvector, nhân một số thực với vector như trên tạo thành không gian tuyến tính nchiều trên trường số thực R, ký hiệu Rn
m i
Các vector x(i) ∈Rn, i =1, , m được gọi là độc lậptuyến tính nếu:
Trang 2) α với ít nhất một αi ≠ 0 thì x gọi là tổ hợp tuyến tính của các
x(i), i =1, , m Hơn nữa nếu αi > 0, i =1, , m và
∑
=
=
m i
i
1 1 α thì x gọi là tổ hợp lồicủa các x(i), i =1, , m
Trong Rn có n vector độc lập tuyến tính lập thành cơ sở của nó
Giả sử e(1), e(2), , e(n) là một cơ sở của Rn thì bất kỳ một vector x ∈ Rn đều là
tổ hợp tuyến tính của các vector e(1), e(2), , e(n) Ta gọi tích vô hướng của hai vectorx=(x1, x2, , xn) và y=(y1, y2, , yn), ký hiệu, <x,y>, là một số bằng
3 <λx,y> = λ<x,y> ∀x,y ∈ Rn
4 <x,x> ≥ 0, ∀x∈ Rn dấu bằng xẩy ra khi và chỉ khi x= 0
x x
x x
1
2 ,
Độ dài của vector x=(x1, x2, , xn) là một số xác địnhbởi
x y x y
x y
x
1
2 ,
Trang 3* Nếu tập A⊂Rn chứa cùng với điểm x một lân cận của nó thì x gọi là điểmtrong của A Nếu trong lân cận bất kỳ của x ∈ A có các điểm của A và các điểmkhông thuộc A thì x gọi là điểm biên của tập hợp A.
* Một tập A⊂Rn gọi là giới nội nếu nó được chứa trong một hình cầu tâm Onào đó, tức là tồn tại số ρ đủ lớn sao cho với mọi x∈A,x≤ ρ Một dãy {x(k)} hội
tụ thì bao giờ cũng giới nội
* Một tập hợp G⊂Rn được gọi là mở nếu với mọi x∈G đều tồn tại một hìnhcầu tâm x nằm gọn trong G Một tập F⊂Rn được gọi là đóng nếu với mọi dãy hộitụ{x(k)}⊂ F ta đều có:
lim
Một tập chứa mọi điểm biên của nó là tập đóng
* Tập C được gọi là tập Compact nếu từ mọi dãy vô hạn {x(k)} thuộc C đều cóthể trích ra một dãy con {x(ki)} hội tụ tới phần tử thuộc C Tập C là Compact khi vàchỉ khi C đóng và giới nội Tập Compact M của tập đóng C cũng đóng trong C.Tập con đóng M của tập Compact cũng Compact
Hàm f(x) liên tục trên tập Compact C thì sẽ đạt cực trị trên tập ấy
1.1.3 Tập lồi
Cho hai điểm a, b ∈Rn Ta gọi đường thẳng qua a, b là tập điểm có dạng
x∈Rn : x = λa + (1-λ)b, λ∈ R
k → ∞
Trang 4Đoạn thẳng nối hai điểm a, b là tập lồi các điểm có dạng
x∈Rn :x = λx + (1-λ)y, 0 ≤λ≤ 1
* Một tập M⊂Rn được gọi là một đa tạp affine nếu với hai điểm bất kỳ
x, y ∈M thì toàn bộ đường thẳng đi qua hai điểm đó cũng thuộc M
Tức là λx + (1-λ)y ∈M : ∀x,y ∈M, ∀λ∈R
* Một siêu phẳng trong không gian Rn là tập hợp tất cả các điểm
x=(x1, x2, , xn) ∈Rn thỏa mãn phương trình tuyến tính
* Tập X⊂Rn được gọi là tập lồi nếu cùng với việc chứa hai điểm x, y nó chứa
cả đoạn thẳng chứa hai điểm ấy, tức là chứa tất cả các điểm có dạng:
λx + (1-λ)y, 0 ≤λ≤ 1
Ví dụ về các tập lồi: Không gian Euclide, các nửa không gian, mặt phẳng, nửamặt phẳng, hình chữ nhật, hình vuông, hình elip, hình hộp, hình cầu
* Một tập hợp là giao của một số hữu hạn các nửa không gian đóng được gọi
là tập lồi đa diện
Mệnh đề: Giao của hai tập lồi là một tập lồi.
.
.
1
2 2
2 22 1
21
1 1
2 12 1
+ +
≤ +
+ +
≤ +
+ +
n n nn n
n
n n
n n
b x a x
a x
a
b x a x
a x
a
b x a x
a x
Trang 5là một tập lồi (đa diện lồi) Một tập lồi đa diện giới nội gọi là một đa diện.
Giao của tất cả các tập lồi chứa tập X gọi là bao lồi của nó, ký hiệu [X]
* Hàm f(x) được gọi là hàm lõm (lõm chặt) nếu - f(x) là hàm lồi (lồi chặt)
* Hàm f(x) xác định trên C đạt cực tiểu tuyệt đối tại x* ∈C nếu
f(x*) ≤ f(x):∀ x∈C
* Hàm f(x) đạt cực tiểu địa phương tại x*∈ C nếu tồn tại lân cận mở U của x*sao cho f(x*) ≤ f(x):∀ x∈C ∩U
Mệnh đề 1: Bất kỳ điểm cực tiểu địa phương nào của hàm lồi trên tập lồi cũng
là điểm cực tiểu tuyệt đối
Hệ quả: Bất kỳ điểm cực đại địa phương nào của hàm lõm cũng là cực đại
tuyệt đối
Mệnh đề 2: Cực đại của một hàm lồi (nếu có) trên một tập lồi có điểm cực
biên bao giờ cũng đạt tại một điểm cực biên
1.2 Bài toán Quy hoạch tuyến tính
QHTT bắt nguồn từ những nghiên cứu của nhà toán học Nga nổi tiếng, Viện
sỹ L.V Kantorovich trong một loạt các công trình về bài toán kế hoạch hoá sảnxuất, công bố năm 1938 Năm 1947 nhà toán học Mỹ G.B Dantzig đã nghiên cứu
và đề xuất phương pháp đơn hình (Simplex method) để giải bài toán QHTT Năm
1952 phương pháp đơn hình đã được chạy trên máy tính điện tử của Mỹ
1.2.1 Bài toán quy hoạch tuyến tính
Bài toán tổng quát
Trang 6( )1 1 max
1 ,
0
2 1 ,
, 1 , , , 1
n j
x
m i
b x
a
j
i n
Ký hiệu: A=(aij)mxn là ma trận với các phần tử aij
(1.1) gọi là hàm mục tiêu, (1.2) là các rằng buộc
Nếu gặp bài toán Min, tức là
( )
D x
x c x
( )
D x
x c x
j j
Thì giữ nguyên ràng buộc và đưa về bài toán Max bằngcách
Nếu bài toán Max có phương án tối ưu là x* thì bài toán min cũng có phương
án là x* và f min=-f max
Thật vậy, vì x* là phương án tối ưu của bài toán Max nên ta có:
Trang 7D x x
c x
c
hay D x x
c x
c f
n j j j n
j j j
j n j j n
j j j
1 1
*
1 1
* max
Chứng tỏ x* là phương án tối ưu của bài toán Min và
* min
Dạng chuẩn và dạng chính tắc
Người ta thường xét bài toán quy hoạch tuyến tính dưới hai dạng sau:-Dạng chuẩn:
n j
x
m i
b x
a
x c
j
i n
, , 1 ,
0
, , 1 , max
x
m i
b x
a
x c
j
i n
j n
j
j
, , 1 , 0
,
1 , max
Trang 8 Đưa bài toán QHTT về dạng chuẩn hoặc dạng chính tắc.
Bất kỳ QHTT nào cũng có thể đưa về một trong hai dạng chuẩn hoặc chínhtắc nhờ các phép biến đổi tuyến tính sau:
n
j a ij x ≤ −b
−∑ = 1
' '
b x
∑
= 1
i n
j j ij i
−
j j
j j
Trang 9Có thể đưa về ràng buộc đẳng thức bằng cách đưa vào biến phụ yi ≥ 0:
i n
b y x
Giải bài toán QHTT bằng phương pháp hình học
=
→ +
2 , 1 ,
0
, , 1 ,
max 2
1 1 1
2 2 1 1
j x
m i
b x a x a
D
x c x c
j
i i
c1x1+c2x2=α khi α thay đổi sẽ xác định trên mặt phẳng các đường thẳng song song
với nhau mà ta sẽ gọi là các đường mức (với giá trị mức α) Mỗi điểm
∈D sẽ nằm trên một đường mức với mức
Bài toán đặt ra có thể phát biểu theo ngôn ngữ hình học như sau: trong số cácđường mức cắt tập D, hãy tìm đường mức với gía trị lớn nhất
(c1,c2)
n =
Nếu dịch chuyển song song các đường mức theo hướng vectorpháp tuyến của
Trang 10chúng thì giá trị mức sẽ tăng, nếu dịch chuyển theo hướng ngược lại thìgiá trị mức sẽ giảm Vì vậy để giải bài toán đặt ra, ta có thể tiến hành như sau.Bắt đầu từ một đường mức cắt D, ta dịch chuyển song song các đường mứctheo hướng vector pháp tuyến (c1,c2) cho đến khi việc dịch chuyển tiếp theo làm
cho đường mức không còn cắt D nữa thì dừng Điểm của D (có thể nhiều điểm)
nằm trên đường mức cuối cùng này sẽ là lời giải tối ưu cần tìm, còn giá trị của hàmmục tiêu tại đó chính là giá trị tối ưu của bài toán
Ví dụ: Xét bài toán:
0 ,
0
3
7 2
8 2
2 1
2
2 1
2 1
≤ +
x x
Trang 11
và x* là một đỉnh của D Qua phương pháp hình học ta thấy rằng:
- Nếu quy hoạch tuyến tính có phương án tối ưu thì có ít nhất một đỉnh là tối
ưu Sở dĩ nói ít nhất vì có trường hợp đường mức ở vị trí giới hạn trùng với mộtcạnh của D thì tất cả các điểm trên cạnh này là phương án tối ưu, trong đó có haiđỉnh
- Nếu miền ràng buộc D giới nội và khác rỗng thì chắc chắn có phương án tốiưu
- Nếu miền ràng buộc không giới nội nhưng hàm mục tiêu bị chặn trên ở trênmiền ràng buộc thì cũng chắc chắn có phương án tối ưu
1.2.2 Một số tính chất chung
Mệnh đề 1: Tập hợp tất cả các phương án của một bài toán QHTT là tập lồi.
Tập lồi D các phương án của một bài toán QHTT xác định bởi toàn bộ cácràng buộc (1.2) và (1.3) Tập D có thể là rỗng, hoặc là một đa diện lồi hoặc là mộttập lồi đa diện không giới nội
Nếu D là một đa diện lồi thì bài toán có phương án, hơn nữa giá trị tối ưu củahàm mục tiêu trên đa diện lồi là hữu hạn và việc tìm phương án tối ưu đưa đến việcchọn các điểm của đa diện D có số đỉnh (điểm cực biên hay phương án cực biên)hữu hạn
Mệnh đề 2: Hàm mục tiêu của bài toán QHTT sẽ đạt Max tại điểm cực biên
của tập D Nếu hàm mục tiêu không chỉ nhận Max tại một điểm cực biên của tậplồi D mà tại nhiều điểm cực biên thì nó sẽ đạt giá trị cực đại tại những điểm là tổhợp lồi của các điểm đó
Ký hiệu Aj, j=1, , n là các vector cột của ma trận A
Khi ấy hệ ràng buộc Ax =b có thể viết:
x1A1 + x2A2 + + xnAn = b (1.4)
Mệnh đề 3: Nếu các vector A1, A2, , Ak là độc lập tuyến tính và thoả mãn
x 1A1+x2A2+ +xnAn=b
Trang 12trong đó x j > 0, j=1, k thì điểm
x=(x1,x2, ,xk,0, ,0)
là điểm cực biên của tập lồi đa diện D
Mệnh đề 4: Nếu x =(x1,x2, ,xn) là điểm cực biên của tập lồi đa diện D thì các
vector A j trong biểu diễn (1.4) ứng với các thành phần xj > 0 lập thành hệ độc lậptuyến tính Vì ma trận A có m dòng nên từ đây suy ra rằng điểm cực biên không cóquá m thành phần dương
Các mệnh đề 3 và mệnh đề 4 có thể gộp lại thành một mệnh đề sau:
Mệnh đề 5: Để x =(x1,x2 ,xn) là phương án cực biên của QHTT dưới dạng
chính tắc thì cần và đủ là các vector cột A j của ma trận A ứng với các thành phần
xj > 0 là độc lập tuyến tính
1.2.3 Phương pháp đơn hình giải bài toán QHTT
( )1 5 , ,
1 ,
0 ,
1 1
n j
Mà tập hợp các điểm x∈Rn thoả mãn các ràng buộc trên là một đơn hình trongkhông gian n chiều
Đường lối chung và cơ sở của thuật toán
i) Đường lối chung
Phương pháp đơn hình dựa trên hai nhận xét sau: nếu bài toán QHTT cóphương án tối ưu, đa diện lồi D có một số hữu hạn đỉnh Như vậy phải tồn tại thuậttoán hữu hạn Thuật toán gồm hai giai đoạn:
- Giai đoạn 1: Tìm một phương án cực biên (một đỉnh).
Trang 13- Giai đoạn 2: Kiểm tra điều kiện tối ưu đối phương án tìm được ở giai đoạn
1 Nếu điểu kiện tối ưu được thoả mãn thì phương án đó là tối ưu Nếu không, tachuyển sang phương án cực biên mới sao cho cải tiến giá trị hàm mục tiêu Tiếptheo lại kiểm tra điều kiện tối ưu đối với phương án mới
Người ta thực hiện một dãy các thủ tục như vậy cho đến khi nhận đượcphương án tối ưu, hoặc đến tình huống bài toán không có phương án tối ưu
ii) Cơ sở của thuật toán
Xét bài toán QHTT dưới dạng chính tắc:
< c, x >→ max (1.6)
Ax= b (1.7)
x ≥ 0 (1.8)
Trong đó A là ma trận kích thước mxn và giả sử rằng hạng của ma trận A là
m (điều này không làm mất tính tổng quát) x là một vector.
Giả sử x là một phương án cực biên nào đó Ta ký hiệu:
Ta chọn một hệ thống m vector độc lập tuyến tính {Aj, j ∈ J}sao cho J ⊇ J*
Hệ thống đó gọi là cơ sở của x, các vector {Aj, j ∈ J} và các biến {xj, j ∈ J} đượcgọi là các vector và các biến cơ sở tương ứng Các vector và các biến Aj, xj, j∉ Jgọi là các vector và các biến phi cơ sở tương ứng
Nếu x không thoái hoá thì tồn tại một cơ sở duy nhất, đó là J=J*
Trang 141 ,i m a
1 ,
0 ,
1
m j
x b A
j j jk k
Trang 15Định lý 1.1: (Tiêu chuẩn tối ưu) Nếu đối với phương án cực biên
x=(x1,x2, ,xm,0 0) các điều kiện sau được thỏa mãn
(1 16), ,
2 , 1 ,
0 j J c
•Người ta có thể chứng minh rằng nếu bài toán không thoái hoá thì (1.16) cũng
là điều kiện cần của tối ưu
Định lý 1.2: Nếu tồn tại một chỉ số k sao cho ∆k < 0 thì người ta có thể tìmđược ít nhất một phương án x’ mà đối với nó Z’ > Z0
) 19 1 (
m
A A
Nhân (1.10) với θ nào đó ta có:
1
b A A
−
∑
=
θ θ
Lấy (1.12)trừ đi (1.19) từng vế ta có:
Trang 16) 21 1 ( ' Z0 k
Z = − θ ∆
Nếu các hệ số củacác vector Aj, j=1, ,m và Ak trong (1.20) không âm, khi đó ta có một phương ánmới x’ mà đối với nó hàm mục tiêu f có giá trị
Trong (1.12) tất cả các biến xj, j=1, ,m đều dương Vì vậy có thể tìm được
θ> 0 sao cho
(1 23)0
min
0
rk
r jk
jk
j J
x z
1 , 0 :
x j = j − θ jk ≥ =
( 3 29 )
, , 1 , 0 : x z j m
Như vậy ta nhận được phương án mới x’ với cơ sở Aj, j∈J\ {r}∪{k}=J’
Nếu zjk ≤ 0, ∀j∈ J thì tất cả các thành phần xj- θ zjk trong (1.22) sẽ không âm
∀θ>0, nghĩa là ta luôn có phương án ∀θ>0, nhưng từ (1.21) ta dễ thấy giá trị hàmmục tiêu tiến tới +∞ khi θ tiến tới +∞
thoả mãn:
Trang 17(1 25),
0 min
rs
r js
js
j s
z
x J j z
Ta có phương án cực biên mới x’ mà các thành phần của nó có dạng:
, /
'
rs r
js rs r j j
z x
z z x x
và cơ sở của nó làTrên cơ sở lý thuyết đã nhận được, ta chuyển sang xét thuật toán đơn hình
Thuật toán đơn hình
Bước 1: Xây dựng bảng đơn hình xuất phát Tìm một phương án cực biên
xuất phát x và cơ sở của nó Aj, j∈J
•
k j J
A A
Trang 18k j J
j
j x c
Z0
Tính giá trị hàm mục tiêu
Bước 2: Kiểm tra tối ưu.
Nếu ∆k ≥ 0, ∀k ∉ J thì x là phương án tối ưu, dừng thuật toán Trái lại, chuyểnsang bước 3
Bước 3: Tìm vector đưa vào cơ sở Có hai khả năng xảy ra:
•Tồn tại k∉J sao cho ∆k< 0 và zjk ≤ 0, ∀j∈J thì bài toán QHTT không có lờigiải tối ưu (Z không bị chặn trên) Dừng thuật toán
•∆s = min{∆k ∆k < 0}
Đối với mỗi k∉J sao cho
∆k< 0 đều tồn tại j ∈ J: zjk> 0 Khi đó chọn chỉ số s theo tiêu chuẩn:
Đưa vector As vào cơ sở
rs
r js
rs
j s
z
x z
loại khỏi cơ sở Xác định
Và đưa vector Ar ra khỏi cơ sở
Bước 5: Chuyển sang phương án cực biên mới và cơ sở mới Cơ sở mới là
{Aj,j ∈J’} với J’= J\{r} ∪ z{s} Phương án cực biên mới x’ được tính theo (1.26),khai
{〈c,x〉 Ax=b, x≥ 0}
triển của các véc tơ Ak theo các cơ sở mới được tính theocông thức (1.28) Quay lên bước 2
Trang 19{ k k k J}
thì tiêu chuẩn tối ưu là ∆k≤ 0 (∀k) và vector As được chọn đưa vào cơ sở theo côngthức:
Công thức đổi cơ sở và bảng đơn hình
Ta xét các công thức chuyển từ phương án cực biên x với cơ sở J sangphương án cực biên x’ với cơ sở J’
s rs
r
J
j
j js s
A z A
z
A
A z A
, 1
Ta đã có công thức(1.26) để tính các thành phần của x’ Bây giờ ta thiết lập công thức tính các số z’jk
j J
A
, ,
Mặt khác
s rs
rk j r
j J
rk jk r
j J j
j js s
rs
rk r
i J
j
j jk
z
z A z
z z A
z A
z
z A z
Đây là công thức biểu diễn Ak qua cơ sở mới J’ =J\{r}∪{s} Bởi vậy ta có:
(1 28), ,
/
, /
js rs rk jk jk
z z
z z z z
z
nếu j≠r
Trang 20
(1 29)'
Ph án
c 1 c j c r c m c k c s c n
A a A j A r A m A k A s A n
c 1
c j
c r
A m
x 1
x j
x r
x m
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
z 1k
z jk
z rk
z mk
z 1s
z js
z rs
Nếu dòng cuối (không kể f ) có những số âm thì xem thử
có cột nào cắt dòng cuối ở một số âm mà mọi số trong cột đó đều âm hay không.Nếu có cột nào như thế thì bài toán không có phương án tối ưu Nếu trái lại thìchọn cột sao cho
Rồi chọn ( trong số các dòng cắt cột s ở những số dương ) dòng r sao cho:
r
z
x z
x
θ
Trang 21Cột s gọi là cột quay Vector Ar được đưa vào cơ sở Dòng r gọi là dòng quay.Vector 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 củaphép quay Các phần tử zjs, j ≠ r gọi là phần tử quay
Các công thức (1.26), (1.29) gọi là các công thức đổi cơ sở Bảng đơn hìnhmới suy được từ bảng cũ bằng cách thay cr, Ar trong dòng quay bằng cs, As Sau đóthực hiện các phép biến đổi dưới đây:
i) Chia mỗi phần tử ở dòng quay cho phần tử chính được số 1 ở vị trí của zrs
cũ Kết quả thu được là dòng chính
ii) 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 x phần tử quay
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 vector đơn vị cơ sở, nghĩa là ta đã làm mất số âm nhỏ nhất ở dòng cuối củabả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ó một phương án mới và một cơ sở mới Nếu chưađạt yêu cầ nghĩa là còn ∆k <1 thì ta lại tiếp tục quá trình
Chú ý: Trong bảng đơn hình ở bảng 1.1, không giảm tổng quát ta coi các
vector cơ sở được đánh số A1, A2, , Am, nghĩa là J = {1,2, , m}