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

Phương pháp điểm trong giải quy hoạch tuyến tính

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 (641.68 KB, 68 trang )

ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC KHOA HỌC
NGUYỄN THỊ HỒNG LÊ
PHƯƠNG PHÁP ĐIỂM TRONG
GIẢI QUI HOẠCH TUYẾN TÍNH
LUẬN VĂN THẠC SĨ TOÁN HỌC
Thái Nguyên - Năm 2011
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC KHOA HỌC
NGUYỄN THỊ HỒNG LÊ
PHƯƠNG PHÁP ĐIỂM TRONG
GIẢI QUI HOẠCH TUYẾN TÍNH
Chuyên ngành: TOÁN ỨNG DỤNG
Mã số : 60.46.36
LUẬN VĂN THẠC SĨ TOÁN HỌC
NGƯỜI HƯỚNG DẪN KHOA HỌC
GS.TS. TRẦN VŨ THIỆU
Thái Nguyên - Năm 2011
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
i
Mục lục
Mục lục . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . i
LỜI NÓI ĐẦU 1
Nội dung 5
1 KIẾN THỨC CHUẨN BỊ 5
1.1 Qui hoạch tuyến tính và qui hoạch đối ngẫu . . . . . . . . 5
1.2 Phương pháp đơn hình và đơn hình đối ngẫu . . . . . . . . 9
1.3 Độ phức tạp của thuật toán . . . . . . . . . . . . . . . . . 12
1.4 Ví dụ Klee-Minty về độ phức tạp mũ . . . . . . . . . . . . . 15
2 PHƯƠNG PHÁP ELLIPSOID 19


2.1 Về hệ bất phương trình đại số tuyến tính . . . . . . . . . . 20
2.2 Kỹ thuật ellipsoid . . . . . . . . . . . . . . . . . . . . . . . 23
2.3 Thuật toán Khachian . . . . . . . . . . . . . . . . . . . . . 26
2.4 Áp dụng vào giải qui hoạch tuyến tính . . . . . . . . . . . . 29
3 PHƯƠNG PHÁP ĐIỂM TRONG 30
3.1 Tâm giải tích . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.2 Đường trung tâm . . . . . . . . . . . . . . . . . . . . . . . 34
3.2.1 Đường trung tâm đối ngẫu . . . . . . . . . . . . . . 37
3.2.2 Đường trung tâm gốc-đối ngẫu . . . . . . . . . . . 40
3.3 Chiến thuật giải . . . . . . . . . . . . . . . . . . . . . . . . 41
3.3.1 Phương pháp hàm chắn gốc . . . . . . . . . . . . . . 43
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
i
3.3.2 Phương pháp bám đường gốc- đối ngẫu . . . . . . . 45
3.3.3 Phương pháp hàm thế gốc- đối ngẫu . . . . . . . . . 48
3.3.4 Độ phức tạp của mỗi vòng lặp . . . . . . . . . . . . 51
3.4 Vấn đề khởi sự và kết thúc thuật toán . . . . . . . . . . . . 52
3.4.1 Khởi sự thuật toán . . . . . . . . . . . . . . . . . . 53
3.4.2 Kết thúc thuật toán . . . . . . . . . . . . . . . . . 54
3.4.3 Thuật toán HSD . . . . . . . . . . . . . . . . . . . 56
Kết luận 61
Tài liệu tham khảo 64
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
1
LỜI NÓI ĐẦU
Nhiều bài toán thực tế trong kinh tế, tài chính, công nghiệp và kỹ thuật
có thể diễn đạt như bài toán qui hoạch tuyến tính, tức là dưới dạng bài
toán tìm cực đại (hay cực tiểu) của một hàm tuyến tính với các ràng buộc
đẳng thức hay bất đẳng thức tuyến tính.
Phương pháp đơn hình do Dantzig đề xuất từ năm 1947, đến nay vẫn

còn được sử dụng rộng rãi để giải các bài toán qui hoạch tuyến tính. Cách
tiếp này chỉ cần xét các đỉnh của tập đa diện ràng buộc và mỗi lần lặp đi
từ một đỉnh tới một đỉnh kề với nó, thường là tốt hơn đỉnh trước đó (cải
tiến được giá trị của hàm mục tiêu). Cuối cùng, nó đạt tới đỉnh mà từ đó
không thể cải tiến hàm mục tiêu được nữa, đỉnh đó chính là lời giải cần
tìm của bài toán.
Mặc dầu nó rất hiệu quả trong thực tiễn (số lần lặp thường nhỏ hơn
m+n, trong đó m là số ràng buộc tuyến tính và n là số biến của bài toán).
Tuy nhiên, V.Klee và G.Minty(1972) đã đưa ra một bài toán qui hoạch
tuyến tính đặc biệt mà để giải nó cần một thời gian tỉ lệ với hàm mũ của
n. Điều này chứng tỏ về mặt lý thuyết thuật toán đơn hình không phải là
một thuật toán thời gian đa thức.
Vào những năm 1950, người ta đã đề cao tới các phương pháp điểm
trong (đi từ phía trong miền ràng buộc). Tuy nhiên, chúng chưa thành đạt
như phương pháp đơn hình. Năm 1979 [4] Khachian là người đầu tiên đã
chứng minh được rằng có thể giải bài toán qui hoạch tuyến tính trong thời
gian đa thức, bằng cách sử dụng thuật toán điểm trong thích hợp. Mặc
dầu thuật toán Khachian chưa đủ hiệu quả trong thực tiễn, nhưng thành
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
2
tựu này của Khachian đã làm khởi sắc sự quan tâm trở lại tới các phương
pháp điểm trong giải qui hoạch tuyến tính.
Tiếp đó, năm 1984 [3] Karmarkar đã đề xuất một phương pháp điểm
trong mới giải qui hoạch tuyến tính. Phương pháp này có độ phức tạp đa
thức và nó có hiệu năng thực tiễn cao, đặc biệt đối với các bài toán tuyến
tính cỡ lớn.
Các công trình nghiên cứu của Khachian và Karmarkar là điểm khởi
đầu cho nhiều nghiên cứu về các phương pháp điểm trong giải qui hoạch
tuyến tính. Đó cũng là chủ đề chính của luận văn này. Cách tiếp cận mới
khác cơ bản với phương pháp đơn hình . Thay cho đi trên các cạnh của tập

ràng buộc từ đỉnh này tới đỉnh khác, các điểm lặp (xấp xỉ) đi men theo
“ đường trung tâm” để tới tập lời giải. Có nhiều dạng phương pháp điểm
trong , tiêu biểu nhất là phương pháp chắn gốc, phương pháp bám đường
gốc-đối ngẫu tạo ra lời giải cho cả hai bài toán gốc và đối ngẫu của qui
hoạch tuyến tính, phương pháp hàm thế , Trong nhiều năm kể từ 1984,
các thuật toán và phần mềm giải qui hoạch tuyến tính đã trở nên hoàn
toàn tinh xảo và có thể nói rằng đến nay các phương pháp điểm trong đã
thực sự chiếm ưu thế.
Cũng đã có nhiều mở rộng của phương pháp điểm trong để giải các bài
toán tối ưu phi tuyến; qui hoạch lồi toàn phương, qui hoạch nón . Chẳng
hạn, Nesterov và Nemirovsky (1994) [6] đã xây dựng cơ sở lý thuyết các
phương pháp điểm trong cho tối ưu hóa lồi.
Luận văn này đề cập tới các phương pháp điểm trong giải qui hoạch
tuyến tính do Khachian và Karmarkar đề xuất. Việc tìm hiểu và nghiên
cứu chủ đề này là rất cần thiết và hữu ích giúp hiểu được các mở rộng và
ứng dụng của phương pháp điểm trong vào các bài toán tối ưu khác. Nội
dung luận văn được chia thành ba chương:
Chương 1“ Kiến thức chuẩn bị” nhắc lại tóm tắt một số kiến thức cơ
bản cần thiết về bài toán qui hoạch tuyến tính và lý thuyết đối ngẫu trong
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
3
qui hoạch tuyến tính, về phương pháp đơn hình và đơn hình đối ngẫu giải
bài toán qui hoạch tuyến tính .Tiếp đó nêu khái niệm độ phức tạp của
thuật toán, thuật toán thời gian đa thức và nêu ví dụ của Klee- Minty về
phương pháp đơn hình có độ phức tạp mũ. Các kiến thức này sẽ cần đến
ở các chương sau .
Chương 2 “Phương pháp Khachian” giới thiệu thuật toán ellipsoid
do Khachian đề xuất. Về thực chất, thuật toán Khachian qui việc tìm
nghiệm tối ưu của cặp bài toán đối ngẫu của qui hoạch tuyến tính về việc
tìm nghiệm của một hệ bất phương trình tuyến tính.Nhiều khái niệm và

sự kiện trình bày ở chương này được minh họa qua các ví dụ và hình vẽ
cụ thể.
Chương 3 “ Phương pháp điểm trong ” trình bày các khái niệm cơ
bản về tâm giải tích, đường trung tâm gốc và đối ngẫu; những nội dung
chính của phương pháp gốc-đối ngẫu, từ ý tưởng phương pháp (đi men
theo đường trung tâm) đến thuật toán cụ thể (thuật toán bám đường).
Phương pháp này được đánh giá là phương pháp điểm trong hiệu quả nhất
giải qui hoạch tuyến tính. Tiếp đó, giới thiệu hai thuật toán bám đường
tiêu biểu: thuật toán dự báo và thuật toán hiệu chỉnh. Vấn đề khởi sự và
kết thúc thuật toán cũng được đề cập tới.
Do thời gian và kiến thức còn hạn chế nên luận văn này mới chỉ đề cập
tới những nội dung cơ bản của phương pháp điểm trong giải qui hoạch
tuyến tính, chưa đi sâu vào các chi tiết thực thi thuật toán. Trong quá
trình viết luận văn cũng như trong xử lý văn bản chắc chắn không tránh
khỏi những sai sót nhất định. Tác giả luận văn rất mong nhận được sự góp
ý của các thầy cô và các bạn đồng nghiệp để luận văn được hoàn thiện
hơn.
Nhân dịp này, tác giả xin bày tỏ lòng biết ơn sâu sắc đến thầy hướng
dẫn GS-TS Trần Vũ Thiệu đã tận tình giúp đỡ trong suốt quá trình làm
luận văn.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
4
Tác giả xin trân trọng cảm ơn các thầy, cô giáo Trường Đại học Khoa
học- Đại học Thái Nguyên, Viện Toán học-Viện Khoa học và Công nghệ
Việt Nam, đã giảng dạy và tạo mọi điều kiện thuận lợi trong quá trình tác
giả học tập và nghiên cứu.
Tác giả cũng xin chân thành cảm ơn Ban giám hiệu, tổ toán –tin Trường
THPT Ngô Quyền –Thái Nguyên và tập thể bạn bè đồng nghiệp cùng gia
đình đã quan tâm giúp đỡ, động viên tác giả hoàn thành tốt luận văn này.
Thái Nguyên, tháng 09 năm 2011.

Người thực hiện
Nguyễn Thị Hồng Lê
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
5
Chương 1
KIẾN THỨC CHUẨN BỊ
Chương này nhắc lại các kết quả cơ bản về lý thuyết qui hoạch tuyến
tính và phương pháp đơn hình giải qui hoạch tuyến tính, đồng thời nêu
khái niệm độ phức tạp của thuật toán và dẫn ra ví dụ của V. Klee và
G. Minty cho thấy thuật toán đơn hình là thuật toán thời gian mũ (chứ
không phải thuật toán thời gian đa thức!). Nội dung của chương chủ yếu
dựa trên các tài liệu [1], [2], [5] và [7].
1.1 Qui hoạch tuyến tính và qui hoạch đối ngẫu
Qui hoạch tuyến tính là bài toán tìm cực tiểu (cực đại) của một hàm
tuyến tính f(x) trên một tập lồi đa diện D ⊂ R
n
. Bài toán thường được
viết ở hai dạng:
• Dạng chuẩn (standard form):
min{f(x) = c
T
x : Ax ≥ 0, x ≥ 0}.
với A ∈ R
m×n
(ma trận m hàng, n cột),b ∈ R
m
, c, x ∈ R
n
, x ≥ 0, tức là
x ∈ R

n
+
.
T là ký hiệu chuyển vị véctơ, D = {x ∈ R
n
: Ax ≥ b, x ≥ 0} là một tập
lồi đa diện.
• Dạng chính tắc (canonical form):
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
6
min

f (x) = c
T
x : Ax = b, x ≥ 0

,
trong đó các ký hiệu A ∈ R
m×n
, b ∈ R
m
, c, x ∈ R
n
như ở trên. Trong bài
toán này, tập D = {x ∈ R
n
: Ax = b, x ≥ 0} cũng là một tập lồi đa diện.
Trong hai dạng trên, f gọi là hàm mục tiêu, D gọi là tập ràng buộc
hay miền chấp nhận được. Điểm x = (x
1

, . . . , x
n
)
T
∈ D gọi là một
lời giải (điểm, nghiệm)chấp nhận được hay một phương án của bài
toán. Một phương án đạt cực tiểu (cực đại) của hàm mục tiêu gọi là một
lời giải (điểm, nghiệm) tối ưu hay một phương án tối ưu. Bài toán
max

c
T
x : x ∈ D

= −min

−c
T
x : x ∈ D

.
Với mỗi bài toán qui hoạch tuyến tính, chỉ xảy ra một trong ba khả
năng:
a) Bài toán không có lời giải chấp nhận được (tập ràng buộc D rỗng).
b) Bài toán có lời giải chấp nhận được, nhưng không có lời giải tối ưu.
c) Bài toán có lời giải tối ưu (hữu hạn).
Định lý sau nêu điều kiện để một qui hoạch tuyến tính có lời giải tối
ưu.
Định lý 1.1. Nếu một qui hoạch tuyến tính có lời giải chấp nhận được và
hàm mục tiêu bị chặn dưới trong miền chấp nhận được (đối với bài toán

min) thì qui hoạch đó chắc chắn có lời giải tối ưu. 
Định nghĩa 1.1. Một lời giải chấp nhận được x ∈ D mà đồng thời là
đỉnh của D gọi là một lời giải cơ sở, nghĩa là x không thể biểu diễn dưới
dạng một tổ hợp lồi của bất cứ hai lời giải chấp nhận được khác của D.
Nói một cách khác, hễ x = λx
1
+ (1 −λ) x
2
với 0 < λ < 1 và x
1
, x
2
∈ D
thì phải có x = x
1
= x
2
.
Định lý sau nêu một tính chất đặc trưng cho lời giải cơ sở của qui hoạch
tuyến tính chính tắc với giả thiết m ≤ n và rank(A) = m.
Định lý 1.2. Để một lời giải chấp nhận được
x = {x
1
, x
2
, . . . , x
n
} của qui
hoạch tuyến tính chính tắc là lời giải cơ sở, thì cần và đủ là các véctơ cột
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

7
A
j
của ma trận A ứng với các thành phần x
j
> 0 là độc lập tuyến tính. 
Từ định lý 1.2 dễ dàng suy ra các hệ quả sau đây:
Hệ quả 1.1. Số lời giải cơ sở của qui hoạch tuyến tính chính tắc là hữu
hạn.
Hệ quả 1.2. Số thành phần dương trong mỗi lời giải cơ sở của qui hoạch
tuyến tính chính tắc tối đa bằng m (m là số hàng của ma trận A).
Mỗi qui hoạch tuyến tính đã cho (qui hoạch gốc) được gắn với một
qui hoạch tuyến tính khác (qui hoạch đối ngẫu) và hai qui hoạch này
có quan hệ chặt chẽ với nhau. Sau đây là hai dạng cặp bài toán đối ngẫu
thường gặp.
• Đối ngẫu của qui hoạch tuyến tính dạng chuẩn (qui hoạch gốc):
(P ) min

f (x) = c
T
x : Ax ≥ b, x ≥ 0

là qui hoạch tuyến tính (qui hoạch đối ngẫu):
(Q)
m
ax

g (y) = b
T
y : A

T
y ≤ c, y ≥ 0

(A
T
là ma trận chuyển vị của ma trận A).
• Đối ngẫu của qui hoạch tuyến tính dạng chính tắc
min

f (x) = c
T
x : Ax = b, x ≥ 0

là quy hoạch tuyến tính max

g (y) = b
T
y : A
T
y ≤ c

(biến đối ngẫu y
dấu tùy ý).
Định lý 1.3. (Đối ngẫu yếu). Nếu x là một lời giải chấp nhận được của
bài toán gốc (P) và y là một lời giải chấp nhận được của bài toán đối ngẫu
(Q) thì
f (x) = c
1
x
1

+ c
2
x
2
+ . . . + c
n
x
n
≥ g (y) = b
1
y
1
+ b
2
y
2
+ . . . + b
m
y
m
.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
8
Từ định lý đối ngẫu yếu ta suy ra ngay các kết luận trong hệ quả sau.
Hệ quả 1.3.
a) Giá trị mục tiêu của một lời giải đối ngẫu chấp nhận được là một
cận dưới cho giá trị mục tiêu đối với mọi lời giải của bài toán gốc.
b) Nếu hàm mục tiêu của bài toán gốc không bị chặn dưới trên tập ràng
buộc của nó thì bài toán đối ngẫu không có bất kỳ lời giải chấp nhận được

nào.
c) Nếu hàm mục tiêu của bài toán đối ngẫu không bị chặn trên trên tập
ràng buộc của nó thì bài toán gốc không có bất kỳ lời giải chấp nhận được
nào.
d) Nếu x

là một lời giải chấp nhận được của bài toán gốc, y

là một lời
giải chấp nhận được của bài toán đối ngẫu và f(x*) = g(y*) thì x

là lời
giải tối ưu của bài toán gốc và y

là lời giải tối ưu của bài toán đối ngẫu.
Định lý 1.4. (Đối ngẫu mạnh). Nếu một qui hoạch có lời giải tối ưu thì
qui hoạch đối ngẫu của nó cũng có lời giải tối ưu và các trị tối ưu bằng
nhau. 
Các kết quả trên cho thấy quan hệ sau giữa hai qui hoạch gốc và đối
ngẫu.
Định lý 1.5. (Định lý đối ngẫu cơ bản). Đối với mỗi cặp qui hoạch tuyến
tính đối ngẫu nhau chỉ có một trong ba khả năng loại trừ nhau sau đây:
a) Cả hai bài toán đều không có lời giải chấp nhận được.
b) Cả hai bài toán đều có lời giải chấp nhận được. Khi đó, cả hai đều
có lời giải tối ưu và giá trị tối ưu của hai hàm mục tiêu bằng nhau.
c) Một bài toán có lời giải chấp nhận được và bài toán kia không có lời
giải chấp nhận được. Khi đó, bài toán có lời giải chấp nhận được sẽ có giá
trị tối ưu vô cực (+∞ hay −∞ tuỳ theo bài toán max hay min ). 
Định lý 1.6. (Định lý độ lệch bù). Một cặp lời giải chấp nhận được x, y
của hai qui hoạch đối ngẫu (P) và (Q) là cặp lời giải tối ưu khi và chỉ khi

chúng nghiệm đúng các hệ thức:
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
9
y
i


n

j=1
a
ij
x
j
− b
i


= 0 với mọi i = 1, 2, . . . , m,
x
j

c
j

m

i=1
a
ij

y
i

= 0 với mọi j = 1, 2, . . . , n.
Định lý 1.7. (Định lý độ lệch bù chặt). Nếu cặp bài toán đối ngẫu
(P) và (Q) có lời giải chấp nhận được thì tồn tại cặp lời giải tối ưu x

, y

nghiệm đúng
y

+ (Ax

− b) > 0và x

+

c −A
T
y


> 0.
1.2 Phương pháp đơn hình và đơn hình đối ngẫu
Bằng cách thực hiện một số phép biến đổi đơn giản, ta có thể đưa bài
toán qui hoạch tuyến tính từ dạng này sang dạng khác. Vì thế khi giải ta
chỉ cần chọn một dạng thuận tiện để xét mà không làm giảm tính tổng
quát của phương pháp.
Xét qui hoạch tuyến tính chính tắc (m ràng buộc đẳng thức, n biến):

min

c
T
x : Ax = b, x ≥ 0

với A là ma trận m × n, b ∈ R
m
,cvà x ∈ R
n
. Ta giả thiết : m ≤ n và
rank (A) = m.
Bài toán qui hoạch tuyến tính được gọi là không suy biến nếu tất cả
các lời giải cơ sở của nó đều không suy biến, tức là đều có số thành phần
dương bằng m. Bài toán gọi là suy biến nếu có dù chỉ một lời giải cơ sở
suy biến.
• Thuật toán đơn hình gốc
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
10
Giả thiết đã biết một lời giải cơ sở chấp nhận được không suy biến x.
Không giảm tổng quát, có thể giả thiết x có dạng (đánh số lại các biến
nếu cần):
x = (x
1
, x
2
, . . . , x
m
, 0, . . . , 0) với x
j

> 0 (j = 1, 2, . . . , m) .
Ký hiệu
J = {j : x
j
> 0} = {1, 2, . . . , m}.
Các vectơ {A
j
, j ∈ J} là độc lập tuyến tính (Định lý 1.2) và |J| = m
(do x không suy biến). Hệ vectơ {A
j
, j ∈ J} gọi là cơ sở của lời giải x.
Để cho tiện, đôi khi ta cũng gọi J (với các tính chất trên) là cơ sở của
x. Các vectơ A
j
và các biến x
j
với j ∈ J được gọi là các vectơ cơ sở và
biến cơ sở tương ứng với x . Còn các vectơ A
j
và các biến x
j
với j /∈ J
gọi là các vectơ và biến ngoài cơ sở.
Ký hiệu B là ma trận lập nên từ các vectơ cơ sở đang xét:
B = {A
1
, A
2
, . . . , A
m

} và đặt N ≡ {A
k
: k /∈ J}. Khi đó, rank (B) = m
và tồn tại ma trận nghịch đảo B
−1
.
Mỗi vectơ cột A
k
(k = 1, 2, . . . , n) của ma trận A được biểu diễn qua
các vectơ cơ sở A
j
, j ∈ J như sau:
A
k
=

j∈J
z
jk
A
j
= z
1k
A
1
+ z
2k
A
2
+ . . . + z

mk
A
m
vớik = 1, . . . , n (1.1)
Ký hiệu các vectơ cột z
k
= (z
1k
, z
2k
, . . . , z
mk
)
T
, x
B
= (x
1
, x
2
, . . . , x
m
)
T
,
vectơ hàng c
B
= (c
1
, c

2
, . . . , c
m
). Hệ thức (1.1) viết lại thành A
k
= Bz
k
.
Từ đó z
k
= B
−1
A
k
. Mặt khác, ta có
Ax = Bx
B
= b ⇒ x
B
= B
−1
b.
Giá trị hàm mục tiêu tại x bằng
c
T
x = c
B
x
B
= c

1
x
1
+ c
2
x
2
+ . . . + c
m
x
m
= c
B
B
−1
b. (1.2)
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
11
Với mỗi k = 1, 2, . . . , n ta tính số sau đây, gọi là ước lượng của biến x
k
:

k
= c
B
z
k
− c
k
= c

1
z
1k
+ c
2
z
2k
+ . . . + c
m
z
mk
− c
k
, k = 1, . . . , n (1.3)
Theo phương trình Ax = b, tức là Bx
B
+Nx
N
= b với x
B
= (x
j
: j ∈ J)
T
và x
N
= (x
j
: j /∈ J)
T

, ta có x
B
= B
−1
(b −Nx
N
) ( nói riêng x
B
= B
−1
b
do x
N
= 0 ) , suy ra công thức biểu diễn các biến ngoài cơ sở theo các
biến cơ sở:
x
B
= x
B
− B
−1
Nx
N
.
Từ đó, giá trị hàm mục tiêu tại x bằng
c
T
x = c
B
x

B
+ c
N
x
N
= c
B
x
B
− c
B
B
−1
Nx
N
+ c
N
x
N
= c
B
x
B


c
B
B
−1
N −c

N

x
N
(1.4)
Chú ý là
B
−1
N =

B
−1
A
k
: k /∈ J

= {z
k
, k /∈ J}
thì vectơ ∆
N
= c
B
B
−1
N − c
N
= {c
B
z

k
− c
k
, k /∈ J}. Theo (1.2)-(1.3),
công thức (1.4) viết lại thành
c
T
x = c
T
x −

k /∈J

k
x
k
(1.5)
Công thức này cho thấy x là lời giải tối ưu nếu ∆
k
≤ 0 với mọi k /∈ J.
Còn nếu ∆
N
có các thành phần âm, chẳng hạn ∆
s
< 0 với một s /∈ J
nào đó, thì công thức (1.5) cho thấy rằng có thể giảm c
T
x , nghĩa là đưa
biến ngoài cơ sở mới ứng với cơ sở mới J’ ( thay cho cơ sở cũ J) nói chung
tốt hơn (hay ít ra không kém). Đó là ý tưởng chính của phương pháp đơn

hình để giải qui hoạch tuyến tính. Ta có
Định lý 1.8. (Dấu hiệu tối ưu). Nếu với lời giải cơ sở x của bài toán ta
có các hệ thức ∆
k
≤ 0 với mọi k /∈ J thì x là một lời giải (cơ sở) tối ưu
của bài toán.
Định lý 1.9. (Dấu hiệu bài toán có trị tối ưu vô cực). Nếu đối với lời giải
cơ sở x tồn tại chỉ số k /∈ J sao cho ước lượng ∆
k
> 0 và z
jk
≤ 0 với
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
12
mọi j ∈ J thì bài toán đã cho có trị tối ưu vô cực (−∞ đối với bài toán
min).
Có thể chứng minh được rằng nếu bài toán qui hoạch tuyến tính có lời
giải chấp nhận được và không suy biến thì thuật toán đơn hình sẽ cho lời
giải tối ưu (hữu hạn hay vô cực) sau một số hữu hạn lần thay đổi lời giải
cơ sở.
• Thuật toán đơn hình đối ngẫu.
Như đã thấy thuật toán đơn hình gốc xuất phát từ một lời giải cơ sở chấp
nhận được tương ứng với ma trận cơ sở B và luôn giữ cho B
−1
b ≥ 0.
Cơ sở B được biến đổi cho tới khi đạt lời giải tối ưu (∆
k
≤ 0 với mọi
k = 1, 2, . . . , n) hoặc khi phát hiện bài toán có giá trị tối ưu vô cực (có


k
> 0 và mọi z
jk
≤ 0,j = 1, 2, . . . , m). Khác với thuật toán đơn hình gốc,
thuật toán đơn hình đối ngẫu bắt đầu từ một lời giải cơ sở đối ngẫu chấp
nhận được, tức là một lời giải tương ứng với ma trận cơ sở B gồm m vectơ
độc lập tuyến tính của A sao cho ∆ = c
B
B
−1
A − c ≤ 0 và luôn giữ cho
∆ ≤ 0. Cơ sở B được biến đổi cho tới khi đạt lời giải tối ưu (B
−1
b ≥ 0)
hoặc phát hiện bài toán không có phương án (có

B
−1
b

i < 0 và mọi
z
ik
≥ 0, k = 1, 2, . . . , n ).
1.3 Độ phức tạp của thuật toán
Lý thuyết độ phức tạp là cơ sở để phân tích các thuật toán máy tính.
Lý thuyết này nhằm hai mục đích: xây dựng các tiêu chuẩn để đo hiệu quả
của các thuật toán khác nhau (do đó có thể so sánh các thuật toán dựa
vào những tiêu chuẩn này) và đánh giá khó khăn vốn có của các loại bài
toán khác nhau.

Từ ngữ độ phức tạp ám chỉ số lượng nguồn lực (bộ nhớ, thời gian) mà
máy tính đòi hỏi. Mục này tập trung vào nguồn lực đặc biệt, đó là thời
gian tính toán. Tuy nhiên trong lý thuyết độ phức tạp, người ta không
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
13
quan tâm tới thời gian thực hiện một chương trình máy tính viết bằng
một ngôn ngữ chương trình cụ thể, chạy trên một máy tính cụ thể với một
bộ dữ liệu đầu vào cụ thể. Thời gian tính toán phụ thuộc nhiều yếu tố
ngẫu nhiên. Thay vào đó, ta muốn gắn kết thuật toán với thước đo phản
ánh được bản chất của những đòi hỏi về thời gian tính.
Nói nôm na, để làm việc này ta cần xác định:
• Khái niệm kích thước đầu vào (input size),
• Tập các phép toán cơ bản (basic operations) và
• Chi phí cho mỗi phép toán cơ bản.
Hai đại lượng sau cho phép gắn kết với chi phí của một tính toán (cost
of a computation). Nếu x là một bộ dữ liệu đầu vào bất kỳ thì chi phí
C(x) của tính toán với đầu vào x là tổng các chi phí của mọi phép toán cơ
bản cần thực hiện trong tính toán đó.
Giả sử A là một thuật toán và I
n
là tập tất cả các đầu vào kích thước
n. Hàm chi phí trong trường hợp xấu nhất (worst-case cost function) của
thuật toán A là hàm T
w
A
(n) xác định bởi
T
w
A
(n) = sup

x∈I
n
C (x)
Nếu biết phân bố xác suất trên tập I
n
thì có thể xác định được hàm
chi phí trung bình T
tb
A
(n) theo
T
tb
A
(n) = E
n
(C (x)) ,
trong đó E
n
là kỳ vọng tính trên tập I
n
. Tuy nhiên, tìm chi phí trung bình
thường khó hơn chi phí xấu nhất, nên tất nhiên nảy ra câu hỏi là dùng
phân bố xác suất nào.
Bây giờ ta bàn cách chọn các đối tượng trong ba mục kể trên. Việc chọn
tập các phép toán cơ bản nói chung là dễ. Đối với các thuật toán ta thường
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
14
chọn tập {+, −, ×, /, ≤} của bốn phép toán số học và phép so sánh. Lựa
chọn khái niệm về kích thước đầu vào và chi phí của các phép toán số học
cơ bản phụ thuộc vào loại dữ liệu thuật toán cần xử lý. Có loại dữ liệu

được miêu tả không quá số lượng cố định về bộ nhớ của máy tính; một số
loại khác lại đòi hỏi một số lượng thay đổi.
Ví dụ về loại thứ nhất là các số thực dấu phẩy động có độ chính xác
cố định được lưu trữ trong một lượng bộ nhớ cố định (thường là 32 hoặc
64 bit). Với loại dữ liệu này kích thước của mỗi số được lấy là 1 và do đó
mỗi số có kích thước đơn vị (unit size).
Ví dụ về loại thứ hai là các số nguyên đòi hỏi một số bít xấp xỉ bằng
logarit (cơ số 2) của giá trị tuyệt đối của chúng. Số logarit này thường
được gọi là kích thước bit (bit size) của số nguyên. Ý tưởng tương tự cũng
được áp dụng cho các số hữu tỉ.
Giả sử B là một loại dữ liệu nào đó và x = (x
1
, . . . , x
n
) ∈ B
n
. Nếu
B thuộc loại thứ nhất kể trên thì ta định nghĩa size (x) = n. Trái lại,
size(x)=tổng kích thước bit của các x
i
(i = 1, . . . , n) .
Chi phí của mỗi phép toán trên hai số kích thước đơn vị được lấy là 1
và được gọi chi phí đơn vị (unit cost). Trong trường hợp kích thước bit,
chi phí của phép toán trên hai số là tích hai kích thước bit của chúng (đối
với phép nhân và phép chia) hoặc bằng số lớn nhất trong hai kích thước
ấy (đối với phép cộng, phép trừ và phép so sánh).
Việc xét các dữ liệu nguyên và hữu tỉ với kích thước bit của chúng và
xét chi phí bit cho các phép toán số học thường được gọi là mô hình tính
toán Turing (Turing model of computation). Việc xét các số thực lý tưởng
hóa với kích thước đơn vị và chi phí đơn vị được gọi là mô hình số học

các số thực (real number arithmetic model). Khi so sánh các thuật toán
ta cần làm rõ mô hình tính toán nào được dùng để nhận được đánh giá về
độ phức tạp.
Khái niệm cơ bản liên quan tới cả hai mô hình tính toán là khái niệm
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
15
thời gian đa thức(polynomial time). Một thuật toán A được gọi là thuật
toán thời gian đa thức nếu T
w
A
(n) bị chặn trên bởi một đa thức. Một bài
toán có thể giải trong thời gian đa thức nếu có một thuật toán thời gian đa
thức để giải bài toán đó. Khái niệm thời gian đa thức trung bình (average
polynomial time) được hiểu theo nghĩa tương tự, bằng cách thay T
w
A
(n)
bởi T
tb
A
(n).
Khái niệm thời gian đa thức thường được dùng để hình thức hóa hiệu
quả của thuật toán trong lý thuyết độ phức tạp.
1.4 Ví dụ Klee-Minty về độ phức tạp mũ
Khi dùng phương pháp đơn hình giải qui hoạch tuyến tính chính tắc
với ma trận hệ số A ∈ R
m×n
, b ∈ R
m
, c ∈ R

n
, số lần lặp đơn hình để giải
bài toán, bắt đầu từ một lời giải cơ sở chấp nhận được, là một bội số nhỏ
của m, thường là giữa 2m và 3m. Trên thực tế, Dantzig đã quan sát thấy
rằng đối với các bài toán có số ràng buộc m ≤ 50, số biến n ≤ 200 thì số
lần lặp đơn hình nói chung nhỏ hơn 1, 5m.
Có lúc các nhà nghiên cứu đã tin và thử tìm chứng minh rằng thuật
toán đơn hình (hay biến thể nào đó của nó) luôn đòi hỏi số lần lặp bị chặn
bởi một đa thức theo kích thước bài toán. Mãi cho đến khi Victor Klee và
George Minty đưa ra lớp bài toán qui hoạch tuyến tính mà mỗi bài trong
số đó đòi hỏi số lần lặp là hàm mũ, khi bài toán được giải theo phương
pháp đơn hình quen thuộc.
Để tiện tham khảo, sau đây nêu một dạng ví dụ của V.Klee và G.Minty.
n

j=1
10
n−j
x
j
→ max (KM)
với điều kiện
2
i−1

j=1
10
i−j
x
j

+ x
i
≤ 100
i−1
, i = 1, . . . , n,
x
j
≥ 0, j = 1, . . . , n.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
16
Dễ dàng đưa bài toán trên về dạng bài toán qui hoạch tuyến tính chính
tắc.
Trường hợp riêng khi n = 3 là bài toán:
100x
1
+ 10x
2
+ x
3
→ max
với điều kiện
x
1
≤ 1,
20x
1
+ x
2
≤ 100,
200x

1
+ 20x
2
+ x
3
≤ 10000,
x
1
≥ 0, x
2
≥ 0, x
3
≥ 0
Trong trường hợp này bài toán có ba ràng buộc bất đẳng thức và ba biến
(với các biến có ràng buộc không âm). Sau khi thêm vào các biến bù (để
đưa các ràng buộc bất đẳng thức về ràng buộc đẳng thức) bài toán có dạng
chính tắc. Hệ ràng buộc có m = 3 phương trình và n = 6 biến không âm.
Có thể kiểm tra lại rằng (bằng cách lập bảng đơn hình và giải theo thuật
toán đơn hình) cần 2
3
−1 = 7 lần biến đổi bảng đơn hình để giải bài toán (ở
mỗi lần lặp ta chọn cột xoay là cột có ước lượng âm nhỏ nhất, vì đây là bài
toán tìm cực đại). Kết quả giải ví dụ này được ghi lại ở bảng 1.1 với phương
án tối ưu tìm được là: x
opt
= (0, 0, 10000, 1, 100, 0)
T
, f
max
= 10000.

Bài toán (KM) tổng quát cần 2
n
−1 lần lặp theo đơn hình gốc và thực
tế đó là số đỉnh của đa thức ràng buộc trừ đi một. Để hình dung điều này
tồi tệ như thế nào, ta xét trường hợp n = 50. Ta có 2
50
−1 ≈ 10
15
. Trong
một năm với 365 ngày, có khoảng 3 × 10
7
giây. Nếu một máy tính chạy
liên tục và thực hiện được một triệu phép lặp đơn hình trong một giây thì
cũng phải cần một thời gian khoảng
10
15
3 ×10
7
× 10
6
≈ 33năm(!)
để giải bài toán thuộc lớp (KM) này, nhờ dùng qui tắc chọn cột xoay "tham
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
17
lam" nói ở trên.
Đối ngẫu của bài toán(KM) là bài toán dạng chuẩn:
n

j=1
100

j−1
y
j
→ min (MK)
với điều kiện
2
n

i=j+1
10
i−j
y
i
+ y
j
≥ 10
n−j
, j = 1, . . . , n
y
i
≥ 0, i = 1, . . . , n
Để giải bài toán (MK) tổng quát cũng cần 2
n
− 1 lần lặp theo thuật
toán đơn hình đối ngẫu.
Tóm lại, chương này đã trình bày tóm tắt về bài toán qui hoạch tuyến
tính, bài toán qui hoạch tuyến tính đối ngẫu, tính chất của lời giải cơ sở,
ý tưởng của phương pháp đơn hình và đơn hình đối ngẫu giải qui hoạch
tuyến tính. Có thể tìm thấy chứng minh các định lý trong tài liệu tham
khảo[1]. Nêu khái niệm độ phức tạp của thuật toán, thuật toán thời gian

đa thức và nêu ví dụ của Klee-Minty về phương pháp đơn hình có độ phức
tạp mũ. Những kiến thức giới thiệu trong chương này sẽ cần đến ở chương
sau.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
18
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
19
Chương 2
PHƯƠNG PHÁP ELLIPSOID
Chương này trình bày những nội dung cơ bản của phương pháp ellipsoid
do Khachian đề xuất năm 1979, cho phép giải qui hoạch tuyến tính trong
thời gian đa thức. Nội dung của chương chủ yếu tham khảo từ các tài liệu
[2], [4].
Ý tưởng chính của phương pháp ellipsoid bắt nguồn từ các nghiên cứu
trong những năm 60-70 của thế kỷ trước, chủ yếu ở Liên Xô (trước đây),
do những tác giả khác, trước Khachian thực hiện. Về thực chất, ý tưởng
là đặt miền ta quan tâm (chứa lời giải tối ưu ) vào trong các ellipsoid có
thể tích ngày càng nhỏ dần.
Đóng góp quan trọng của Khachian là đã chứng minh được rằng với
những giả thiết nhất định phương pháp ellipsoid tạo ra một thuật toán đa
thức giải qui hoạch tuyến tính.
Một dạng phương pháp ellipsoid đề cập tới ở chương này thực ra nhằm
mục đích tìm một điểm của tập lồi đa diện X cho bởi một hệ bất phương
trình tuyến tính:
X =

x ∈ R
n
: a
i

x ≤ b
i
, i = 1, . . . , m

,
trong đó a
i
= (a
i1
, . . . , a
in
) ∈ R
n
. Như sẽ thấy, tìm một điểm thuộc Ω
tương đương với giải một qui hoạch tuyến tính. Chẳng hạn, min {ex : x ∈ X}
với e = (1, . . . , 1) ∈ R
n
.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
20
2.1 Về hệ bất phương trình đại số tuyến tính
Xét một hệ gồm m bất phương trình tuyến tính của n biến độc lập
x
1
, . . . , x
n
a
i
x ≡ a
i1

x
1
+ a
i2
x
2
+ . . . + a
in
x
n
≤ b
i
, i = 1, . . . , m (m ≥ 2) (2.1)
với các hệ số nguyên. Cho C là một cận trên của |a
ij
|, |b
i
|, tức là
C ≥ max x
i,j
{|a
ij
|, |b
i
|}.
Bổ đề 2.1. Nếu (2.1) có nghiệm thì phải có một nghiệm thỏa mãn điều
kiện
|x
j
| ≤ C

n
.n!, ∀j = 1, . . . , n.
Hình 2.1: Minh họa Bổ đề 2.1
Chứng minh
Ký hiệu X là tập nghiệm của (2.1). Theo giả thiết X = ∅. Nếu mọi
a
ij
= 0 thì X = R
n
và hiển nhiên bổ đề đúng. Nếu trái lại ta xét tập
X ∩

a
1
x = b
1

. Nếu tập này rỗng, nghĩa là siêu phẳng

a
1
x = b
1

không
cắt X thì bất đẳng thức thứ nhất trong (2.1) là thừa và có thể bỏ đi mà
không làm thay đổi X. Nếu trái lại, ta thay bất đẳng thức thứ nhất trong
(2.1) bằng đẳng thức. Trong cả hai trường hợp ta thu được một hệ phương
trình và bất phương trình với tập nghiệm không rỗng X
1

⊆ X, trong đó
toàn bộ số phương trình và bất phương trình không tăng, nhưng số bất
phương trình giảm đi một. Tiếp đó ta xét X
1


a
2
x = b
2

.v.v. . . Sau m
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
21
bước ta nhận được hệ phương trình tương thích mà mỗi nghiệm của hệ đều
là một nghiệm của (2.1) (Hệ này khác rỗng vì a
ij
≡ 0) . Xét các phương
trình độc lập tuyến tính trong hệ, không giảm tổng quát ta có thể giả thiết
đó là k phương trình đầu
a
i1
x
1
+ . . . + a
in
x
n
= b
i

, i = 1, . . . , k (2.2)
và định thức D = det a
ij

k
i,j=1
= 0. Vì a
i
j nguyên nên |D| ≥ 1. Cho
x
j
= 0 với j > k rồi giải (2.2) ta thu được nghiệm
x
j
=
k

s=1
D
js
D
, j = 1, . . . , k, (2.3)
trong đó D
js
là tử thức của D. Vậy |D
js
| ≤ (k − 1)!C
k−1
và |x
j

| ≤ C
k
k!.
Từ đó suy ra kết luận của bổ đề. 
Bổ đề 2.2 Nếu hệ
a
i
x ≤ b
i
+ ε, i = 1, . . . , m (2.4)
có nghiệm và
0 ≤ ε ≤
1
3nC
n
n!
(2.5)
thì (2.1) cũng có nghiệm.
Chứng minh
Bằng cách như đã làm trong Bổ đề 2.1, ta tìm một nghiệm của hệ (2.4)
(xem công thức (2.3)). Thay nghiệm tìm được vào (2.4) ta có
1
D
k

j=1
k

s=1
a

ij
D
js
b
s
+
ε
D
k

j=1
k

s=1
a
ij
D
js
≤ b
i
+ ε, i = 1, . . . , m (2.6)
Ta sẽ chứng tỏ rằng
1
D
k

j=1
k

s=1

a
ij
D
js
b
s
≤ b
i
+ ε, i = 1, . . . , m (2.7)
và từ đó suy ra kết luận của bổ đề.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

×