You are on page 1of 189

Mục lục

Chương 1 . Bài toán tối ưu . . . . . . . . . . . . . . . . . . . 1


Chương 2 . Một số khái niệm và kết quả cơ bản của Giải tích lồi 3
Chương 3 . Qui hoạch tuyến tính
(Linear Programming) . . . . . . . . . . . . . . . . . . . . . 5
Chương 4 . Qui hoạch phi tuyến
(Nonlinear Programming) . . . . . . . . . . . . . . . . . . . 7
4.1 Hàm lồi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
4.1.1 Định nghĩa . . . . . . . . . . . . . . . . . . . . . . . . . 7
4.1.2 Các phép toán về hàm lồi . . . . . . . . . . . . . . . . . 11
4.1.3 Tính liên tục của hàm lồi . . . . . . . . . . . . . . . . . 12
4.1.4 Đạo hàm theo hướng của hàm lồi . . . . . . . . . . . . . 12
4.1.5 Tiêu chuẩn nhận biết hàm lồi khả vi . . . . . . . . . . . 15
4.1.6 Cực trị của hàm lồi . . . . . . . . . . . . . . . . . . . . . 16
4.2 Bài toán quy hoạch phi tuyến không ràng buộc . . . . . . . . . 19
4.2.1 Điều kiện tối ưu . . . . . . . . . . . . . . . . . . . . . . . 19
4.2.2 Phương pháp hướng giảm . . . . . . . . . . . . . . . . . 22
4.2.3 Phương pháp gradient . . . . . . . . . . . . . . . . . . . 29
4.2.4 Phương pháp Newton . . . . . . . . . . . . . . . . . . . 34
4.2.5 Cực tiểu hàm một biến . . . . . . . . . . . . . . . . . . . 42
4.2.6 Phương pháp tìm kiếm trực tiếp . . . . . . . . . . . . . . 45
4.3 Bài toán quy hoạch phi tuyến có ràng buộc . . . . . . . . . . . . 50
4.3.1 Điều kiện tối ưu . . . . . . . . . . . . . . . . . . . . . . . 50
4.3.2 Phương pháp nhân tử Lagrange . . . . . . . . . . . . . . 60
4.3.3 Phương pháp tuyến tính hóa giải quy hoạch lồi . . . . . 67
4.3.4 Phương pháp hướng có thể giải bài toán cực tiểu hàm trơn
với ràng buộc tuyến tính . . . . . . . . . . . . . . . . . . 73
4.3.5 Phương pháp Frank-Wolfe giải bài toán quy hoạch lồi với
ràng buộc tuyến tính . . . . . . . . . . . . . . . . . . . . 76
4.3.6 Phương pháp hàm phạt . . . . . . . . . . . . . . . . . . 79

i
ii

Chương 5 . Tính chất của tập nghiệm,


điều kiện tối ưu và đối ngẫu . . . . . . . . . . . . . . . . . . 89
Chương 6 . Qui hoạch toàn cục . . . . . . . . . . . . . . . . . 91
Chương 1

Bài toán tối ưu

1.1 Bài toán tối ưu và các khái niệm cơ bản


Xét bài toán tối ưu

min f (x) v.đ.k. x ∈ D, (P1 )


trong đó:

D ⊆ Rn - tập nghiệm chấp nhận được hay tập ràng buộc


f : D → R - hàm mục tiêu
x ∈ D - nghiệm chấp nhận được hay một phương án chấp nhận được (có
thể gọi tắt là một phương án)

Định nghĩa 1.

i) Điểm x∗ ∈ Rn được gọi là nghiệm tối ưu của bài toán (P1 ) nếu

x∗ ∈ D;
f (x∗ ) ≤ f (x) ∀x ∈ D.

ii) Điểm x∗ ∈ Rn được gọi là nghiệm tối ưu chặt của bài toán (P1 ) nếu

x∗ ∈ D;
f (x∗ ) < f (x) ∀x ∈ D.

iii) Ký hiệu Argmin(P1 ) ( hoặc Argmin{f (x) : x ∈ D} - tập nghiệm tối ưu

1
2

Định nghĩa 2. Ta gọi t0 = inf f (D) là giá trị tối ưu của bài toán (P1 ), tức:

hoặc

f (x) ≥ t0 ∀x ∈ D;
∃{xk } ⊂ D sao cho limk→∞ f (xk ) = t0 .

hoặc
∀ε > 0, tồn tại x̄ ∈ D sao cho f (x̄) < t0 + ε.

Nếu Argmin(P1 ) ̸= ∅ thì giá trị tối ưu t0 = f (x∗ ), trong đó x∗ ∈ Argmin(P1 ).


Khi đó, giá trị tối ưu có thể được ký hiệu là

min{f (x) : x ∈ D}.

Định nghĩa 3.

i) Điểm x∗ ∈ Rn được gọi là nghiệm tối ưu địa phương của bài toán (P1 )
nếu:

x∗ ∈ D;
∃ lân cận U (x∗ ) sao cho f (x∗ ) ≤ f (x) ∀x ∈ U (x∗ ) ∩ D.

iii) Điểm x∗ ∈ Rn được gọi là nghiệm tối ưu địa phương chặt của bài toán
(P1 ) nếu:

x∗ ∈ D;
∃ lân cận U (x∗ ) sao cho f (x∗ ) ≤ f (x) ∀x ∈ U (x∗ ) ∩ D.

Chú ý 1.
x∗ ∈ Argmin{f (x) : x ∈ D} ⇒ x∗ là nghiệm tối ưu địa phương
x∗ ∈ Argmin{f (x) : x ∈ D} : x∗ là nghiệm tối ưu địa phương

Chú ý 2.

Argmin{f (x) : x ∈ D} = Argmax{−f (x) : x ∈ D}



min{f (x) : x ∈ D} = − max{−f (x) : x ∈ D}.
3

1.2 Điều kiện tồn tại nghiệm

Định lý 1.1. Cho D ⊂ Rn là tập compac khác rỗng. Khi đó,


i) Nếu hàm f nửa liên tục dưới trên D thì Argmin{f (x) : x ∈ D} ̸= ∅;
ii) Nếu hàm f nửa liên tục trên trên D thì Argmax{f (x) : x ∈ D} ̸= ∅.

Hệ quả 1.1. (Định lý Weierstrass) Nếu D ⊂ Rn là tập compac khác rỗng và


hàm f liên tục trên D thì

Argmin{f (x) : x ∈ D} ̸= ∅ và Argmax{f (x) : x ∈ D} =


̸ ∅.

Định lý 1.2. Cho tập đóng khác rỗng D ⊆ Rn . Nếu hàm f nửa liên tục dưới
trên D và thỏa mãn điều kiện bức (coercive) trên D,

f (x) → +∞ khi x ∈ D, và ∥x∥ → +∞

thì bài toán min{f (x) : x ∈ D} có nghiệm tối ưu.

Bài tập

1. Giải bài toán sau

max{x21 + x22 | 3x1 + x2 ≤ 15, 2x1 − 3x2 ≤ 6, x2 ≤ 10, x1 , x2 ≥ 0}.

2. Xét bài toán min {f (x) | x ∈ Z}, trong đó Z là tập các số nguyên. Chứng
minh rằng mỗi điểm x ∈ Z đều là nghiệm cực tiểu địa phương.

3. Cho X = [a, b] ⊂ R và f là hàm thực xác định trên X. Xét bài toán

min f (x) v.đ.k. x ∈ X. (V D1 )

Chứng minh rằng:

i) Nếu x = a là nghiệm tối ưu địa phương của bài toán (V D1 ) và tồn


tại f+ ′ (a) thì f+′ (a) ≥ 0.
4

ii) Nếu x = b là nghiệm tối ưu địa phương của bài toán (V D1 ) và tồn
tại f−′ (b) thì f−′ (b) ≤ 0.

4. Điểm (0, 0)T có phải là nghiệm cực tiểu địa phương, nghiệm cực tiểu toàn
cục của bài toán min{f (x)|x ∈ R2 } không, trong đó:

i) f (x1 , x2 ) = x21 + x22 .
ii) f (x1 , x2 ) = x21 + x22 (2 − x1 )3 .

Giải thích?

5. Cho h(x) = x21 + 2x22 + 3x23 + · · · + nx2n và siêu phẳng

Q = {x ∈ Rn |⟨v, x⟩ = α, v ∈ Rn \ {0}, α ∈ R}.

Bài toán min{h(x)|x ∈ Q} có nghiệm tối ưu không? Vì sao?


Chương 2

Một số khái niệm và kết quả cơ


bản của Giải tích lồi

2.1 Tập afin

Cho x1 , x2 là hai điểm trong Rn . Đường thẳng qua x1 và x2 là tập

Γ(a, b) = {x ∈ R2 : x = λx1 + (1 − λ)x2 , λ ∈ R}


= {x ∈ R2 : x = x2 + λ(x1 − x2 ), λ ∈ R}

Tập M ⊆ Rn được gọi là tập afin (affine set) nếu M chứa trọn cả đường
thẳng đi qua hai điểm bất kỳ của M , nghĩa là

∀x1 , x2 ∈ M, λ ∈ R ⇒ λx1 + (1 − λ)x2 ∈ M.

⋄ Cho k điểm x1 , x2 , . . . , xk ∈ Rn . Điểm


k ∑
k
x= λi xi với λ1 , . . . , λk ∈ R và λi = 1
i=1 i=1

được gọi là tổ hợp afin của các điểm x1 , x2 , . . . , xk ∈ Rn .

5
6

Mệnh đề 2.1. Tập M ⊆ Rn là tập afin khi và chỉ khi

M = x0 + L = {x0 + v | v ∈ L}, (2.1)

trong đó x0 ∈ M và L là không gian con của Rn .

Chú ý 1. Ta gọi L trong (2.1) là không gian con song song với M vì:

i) Không gian con L trong (2.1) không phụ thuộc vào cách chọn x0 ∈ M .
ii) Không gian con L này xác định duy nhất.

Thứ nguyên (dimension) hay số chiều của tập afin M , ký hiệu là dimM , là
thứ nguyên của không gian con song song với nó.

Ví dụ 2.1. Cho A là ma trận cấp m × n và véc tơ b ∈ Rm và

M = {x ∈ Rn : Ax = b}.

Chứng minh M là tập afin.

Chứng minh. Lấy tùy ý hai điểm x1 , x2 ∈ M và số thực bất kỳ λ ∈ R. Ta sẽ


chứng minh
x0 = λx1 + (1 − λ)x2 ∈ M.
Thật vậy, do x1 , x2 ∈ M nên

A(λx1 + (1 − λ)x2 ) = λAx1 + (1 − λ)Ax2


= λb + (1 − λ)b
= b.

Suy ra x0 ∈ M . Theo định nghĩa, M là một tập afin. Dễ thấy

M = x0 + L, x0 ∈ M, L = KerA := {x ∈ Rn | Ax = 0}.

Vì vậy,
dimM = dimKerA = n − rankA,
trong đó rankA là hạng của ma trận A.
7

Bao afin (affine hull) của một tập E ⊆ Rn , ký hiệu là affE, là giao của tất
cả các tập afin chứa E. Đó là tập afin nhỏ nhất chứa E.

Ví dụ 2.2.

i) E1 = {x1 , x2 } ⇒ aff E1 = {x ∈ R3 | x = λx1 + (1 − λ)x2 , λ ∈ R}.

ii) E2 = {x ∈ R3 | − 1 ≤ x1 ≤ 1, −1 ≤ x2 ≤ 1, x3 = 0}
⇒ affE2 = {x ∈ R3 | x3 = 0}.

iii) E3 = {x ∈ Rn | ∥x∥ ≤ 3} ⇒ affE3 = Rn .

iv) E4 = {x ∈ Rn | ∥x∥ = 5} ⇒ affE4 = Rn .

2.2 Số chiều và điểm trong tương đối


Cho tập tùy ý E ⊂ Rn . Ta định nghĩa
dimE = dim(affE).

Cho tập M ⊂ Rn có dimM < n. Một điểm a ∈ M được gọi là điểm trong
tương đối (relative interior point) của M nếu
( )
∃B(a, ε) : B(a, ε) ∩ affM ⊂ M.

Phần trong tương đối của tập M , kí hiệu là riM , là tập tất cả các điểm trong
tương đối của M .

Một tập M ⊆ Rn được gọi là có thứ nguyên đầy đủ nếu dimM = n.

Chú ý.
intM ̸= ∅ ⇒ dimM = n.
intM ̸= ∅ : dimM = n.
8

Ví dụ 2.3. Cho
E1 = {a, b} ⊂ R3 , E2 = {x ∈ R3 | 0 ≤ xi ≤ 1, i = 1, 2 x3 = 0}
E3 = {x ∈ R3 | ∥x∥ ≤ 1}, E4 = {x ∈ R3 | ∥x∥ = 1}.
Ta có:

i) intE1 = ∅, riE1 = ∅, dimE1 = 1.

ii) intE2 = ∅, riE2 = {x ∈ R3 |0 < x1 < 1, 0 < x2 < 1, x3 = 0} và dimE2 = 2.

iii) intE3 = {x ∈ R3 | ∥x∥ < 1}, dimE3 = 3, tức là E3 có thứ nguyên đầy đủ.

iv) intE4 = ∅, dimE4 = 3, tức là E4 có thứ nguyên đầy đủ.

2.3 Tập lồi


Cho hai điểm x1 và x2 thuộc Rn . Đoạn thẳng nối x1 và x2 là

[x1 , x2 ] = {x ∈ R2 : x = λx1 + (1 − λ)x2 , λ ∈ [0, 1]}


= {x ∈ R2 : x = x2 + λ(x1 − x2 ), λ ∈ [0, 1]}

Tập M ⊆ Rn được gọi là tập lồi (convex set) nếu

∀x1 , x2 ∈ M, ⇒ [x1 , x2 ] ⊂ M

tức

∀x1 , x2 ∈ M, ∀λ ∈ [0, 1] ⇒ λx1 + (1 − λ)x2 ∈ M.

Chú ý: Lược đồ chung để chứng minh một tập Q ⊂ Rn là tập lồi:

⋄ Lấy tùy ý q 1 , q 2 ∈ Q và số thực bất kỳ t ∈ [0, 1].


⋄ Ta sẽ chứng minh q̄ = tq 1 + (1 − t)q 2 ∈ K.
⋄ Thật vậy, ...
9

Ví dụ 2.4. Cho A là ma trận cấp m × n và véc tơ b ∈ Rm và

M = {x ∈ Rn : Ax ≤ b, x ≥ 0}.

Giả sử M ̸= ∅. Chứng minh M là tập lồi.

Chứng minh. Lấy tùy ý hai điểm x1 , x2 ∈ M và số thực bất kỳ λ ∈ [0, 1]. Ta sẽ
chứng minh
x0 = λx1 + (1 − λ)x2 ∈ M.

Thật vậy, do x1 , x2 ∈ M nên

Ax1 ≤ b, Ax2 ≤ b, x1 ≥ 0 và x2 ≥ 0.

Ta có
A(λx1 + (1 − λ)x2 ) = λAx1 + (1 − λ)Ax2 ≤ b (2.2)


x0 = λx1 + (1 − λ)x2 ≥ 0. (2.3)

Kết hợp (2.2) và (2.3) suy ra x0 ∈ M . Theo định nghĩa, M là một tập lồi. 

Mệnh đề 2.2. Cho hai tập lồi M1 , M2 ⊂ Rn và số thực α ∈ R. Khi đó, các
tập sau đây là tập lồi:

i) M1 ∩ M2 ;

ii) αM1 = {y | y = αx, x ∈ M1 };

iii) M1 + M2 = {x | x = x1 + x2 , x1 ∈ M1 , x2 ∈ M2 };

iv) M1 − M2 = {x | x = x1 − x2 , x1 ∈ M1 , x2 ∈ M2 }.

Chú ý. Hợp của các tập lồi chưa chắc là tập lồi.
10

Tổ hợp lồi
⋄ Điểm x được gọi là tổ hợp lồi của x1 , x2 , . . . , xk ∈ Rn nếu

k ∑
k
x= λi x với λ1 , . . . , λk ≥ 0 và
i
λi = 1.
i=1 i=1

⋄ Điểm x được gọi là tổ hợp lồi chặt của x1 , x2 , . . . , xk ∈ Rn nếu



k ∑
k
i
x= λi x với λ1 , . . . , λk > 0 và λi = 1.
i=1 i=1

Mệnh đề 2.3. Một tập M ⊆ Rn là lồi khi và chỉ khi nó chứa tất cả các tổ hợp
lồi của những phần tử thuộc nó.

Bao lồi Bao lồi (convex hull) của tập E ⊂ Rn là giao của tất cả các tập lồi
chứa E và được ký hiệu là convE. Đó là tập lồi nhỏ nhất chứa E.

convE
E

convE

Mệnh đề 2.4. Bao lồi của tập E ⊂ Rn chứa tất cả các tổ hợp lồi của các phần
tử thuộc nó.

Định lý 2.1. (Carathéodory) Giả sử E ⊂ Rn là tập con của một tập afin k
chiều với k ≤ n. Khi đó, mỗi điểm x ∈ convE đều có thể biểu diễn bởi một tổ
hợp lồi của không quá k + 1 phần tử thuộc E.
11

2.4 Điểm cực biên

Cho tập lồi M ⊂ Rn . Một điểm x ∈ M được gọi là điểm cực biên (extreme
point) của M nếu

̸ ∃y, z ∈ M, y ̸= z sao cho x = λy + (1 − λ)z với 0 < λ < 1,

tức

x = λy + (1 − λ)z, y, z ∈ M và 0 < λ < 1 ⇒ x = y = z.

(a) (b)

(a) − Hình vuông có 4 điểm cực biên; (b) − Hình tròn có vô số điểm cực biên

Chú ý. Khi tập lồi có hữu hạn điểm cực biên thì chúng thường được gọi là các
đỉnh.

x là điểm cực biên của M ⇒ x là điểm biên của M

x là điểm cực biên của M : x là điểm biên của M

Mệnh đề 2.5. Một tập lồi đóng khác rỗng M ⊂ Rn có điểm cực biên khi và
chỉ khi nó không chứa trọn một đường thẳng nào.

Định lý 2.2. (Krein-Milman) Một tập lồi compac M ⊂ Rn là bao lồi của các
điểm cực biên của nó.
12

2.5 Diện
Cho tập lồi khác rỗng M ⊂ Rn . Một tập con lồi khác rỗng F của M được gọi là
một diện của M nếu hễ F chứa một điểm trong tương đối của một đoạn thẳng
nào đó thuộc M thì F chứa trọn cả đoạn thẳng đó, nghĩa là

y ∈ P, z ∈ P, x = λy + (1 − λ)z ∈ F với 0 < λ < 1 ⇒ y ∈ F, z ∈ F.

Mệnh đề 2.6. Cho tập lồi khác rỗng D ⊂ Rn và véc tơ v ∈ Rn \ {0}. Giả sử

Argmin{g(x) = ⟨v, x⟩ : x ∈ D} ̸= ∅. (P0 )

Khi đó Argmin(P0 ) là một diện của D.

Chứng minh. Lấy y, z ∈ D, x ∈ Argmin(P0 ) với

x = λy + (1 − λ)z, 0 < λ < 1.

Ta phải chứng minh y ∈ Argmin(P0 ) và z ∈ Argmin(P0 ).

Thật vậy, giả sử ⟨c, y⟩ ≥ ⟨c, z⟩. Khi đó

⟨c, x⟩ = λ⟨c, y⟩ + (1 − λ)⟨c, z⟩ ≥ λ⟨c, z⟩ + (1 − λ)⟨c, z⟩ = ⟨c, z⟩. (2.4)

Vì z ∈ D và x ∈ Argmin(P0 ), nên

⟨c, x⟩ ≤ ⟨c, z⟩. (2.5)

Từ (2.4) và (2.5) suy ra

⟨c, x⟩ = ⟨c, z⟩ ⇒ z ∈ Argmin(P0 ).

Hơn nữa ta có

⟨c, x⟩ = λ⟨c, y⟩ + (1 − λ)⟨c, z⟩ = λ⟨c, y⟩ + (1 − λ)⟨c, x⟩.


Do đó

⟨c, y⟩ = ⟨c, x⟩ ⇒ y ∈ Argmin(P0 ).


Theo định nghĩa, Argmin(P0 ) là một diện của D. 
13

2.6 Siêu phẳng, nửa không gian

• Siêu phẳng Tập H ⊂ Rn là một siêu phẳng nếu

H := {x ∈ Rn | ⟨a, x⟩ = α},

trong đó a ∈ Rn \ {0} và α ∈ R. Như vậy

⋄ Siêu phẳng H là một tập afin có dimH = n − 1.

⋄ Siêu phẳng H là một mặt mức của hàm tuyến tính φ(x) = ⟨a, x⟩.

Véc tơ a được gọi là véc tơ pháp tuyến của siêu phẳng H.

⟨a, x⟩ = α a

x0

• Nửa không gian Cho a ∈ Rn \ {0} và α ∈ R. Khi đó

⋄ Tập
{x ∈ Rn | ⟨a, x⟩ ≤ α} (hoặc {x ∈ Rn | ⟨a, x⟩ ≥ α})
được gọi là nửa không gian đóng xác định bởi siêu phẳng

{x ∈ Rn | ⟨a, x⟩ = α}.

⋄ Tập
{x ∈ Rn | ⟨a, x⟩ < α} (hoặc {x ∈ Rn | ⟨a, x⟩ > α})
được gọi là nửa không gian mở xác định bởi siêu phẳng

{x ∈ Rn | ⟨a, x⟩ = α}.
14

x0
⟨a, x⟩ ≥ α
⟨a, x⟩ ≤ α

• Siêu phẳng tựa


Cho tập M ⊂ Rn , véc tơ a ∈ Rn \{0} và số thực α. Ta gọi siêu phẳng

H = {x ∈ Rn |⟨a, x⟩ = α}

là siêu phẳng tựa (supporting hyperplane) của M tại x0 ∈ M

x0 ∈ H

⟨a, x0 ⟩ = α và ⟨a, x⟩ ≤ α với mọi x ∈ M.

Tập {x ∈ Rn | ⟨a, x⟩ ≤ ⟨a, x0 ⟩} được gọi là nửa không gian tựa của M tại
x0 .

a
0
x

Định lý 2.3. Qua mỗi điểm biên x0 của tập lồi M ⊂ Rn tồn tại ít nhất một
siêu phẳng tựa của M tại x0 .

Định lý 2.4. Một tập lồi đóng khác rỗng M ⊂ Rn là giao của họ các nửa không
gian tựa của nó.
15

2.7 Nón
Tập M ⊂ Rn được gọi là nón (cone) nếu
x ∈ M ⇒ λx ∈ M ∀ λ ≥ 0.
Một nón luôn chứa điểm gốc 0 ∈ Rn .

Tập M ⊂ Rn được gọi là nón lồi nếu M vừa là nón vừa là tập lồi.
Mệnh đề 2.7. Tập M ⊆ Rn là nón lồi khi và chỉ khi

i) M + M ⊂ M ,
ii) αM ⊂ M, ∀α ≥ 0.

0 0

(a) − Nón lồi; (b) − Nón không lồi

Mệnh đề 2.8. Tập M ⊂ Rn là nón lồi khi và chỉ khi nó chứa tất cả các tổ hợp
tuyến tính không âm của các phần tử của nó.

Cho k vec tơ v 1 , . . . , v k ∈ Rn . Tập



k
cone{v 1 , . . . , v k } := {v ∈ Rn | v = λi v i , λi ≥ 0, i = 1, . . . , k}
i=1

được gọi là nón sinh bởi các véc tơ v 1 , . . . , v k .

Véc tơ v h ∈ {v 1 , . . . , v k } là không thiết yếu (non essential) nếu


cone{v 1 , . . . , v h−1 , v h+1 , . . . , v k } = cone{v 1 , . . . , v k }.
16

v1 v1
v2

v3 v2 v3
0 0
(a) (b)
(a) − Véc tơ v 2 là không thiết yếu vì cone{v 1 , v 2 , v 3 } = cone{v 1 , v 3 };
(b) − Hoặc véc tơ v 2 , hoặc véc tơ v 3 là không thiết yếu vì
cone{v 1 , v 2 , v 3 } = cone{v 1 , v 3 } = cone{v 1 , v 2 }

Cho tập khác rỗng K ⊂ Rn . Nón sinh bởi K, ký hiệu bởi coneK, được định
nghĩa bởi
coneK := {v ∈ Rn |v = tx, x ∈ K, t ≥ 0}.
Dễ thấy rằng, coneK là nón nhỏ nhất chứa K.

2.8 Phương lùi xa, phương cực biên

• Cho tập lồi khác rỗng D ⊆ Rn . Véc tơ d ̸= 0 được gọi là phương lùi xa
(recession direction) của D nếu

{x + λd | λ ≥ 0} ⊂ D với mỗi x ∈ D.

⇒ Mọi nửa đường thẳng song song với một phương lùi xa d xuất phát từ một
điểm bất kỳ của D đều nằm trọn trong D.

Ký hiệu

recD = {Tất cả các phương lùi xa của tập lồi D} ∪ {0}.

⇒ recD là nón lồi và được gọi là nón lùi xa của tập D.

Mệnh đề 2.9. Tập đóng D ⊆ Rn không bị chặn khi và chỉ khi recD ̸= {0}.
17

• Ta nói hai phương d1 và d2 là khác biệt (distinct) nếu

̸ ∃α > 0 : d1 = αd2 .

Ví dụ.

⋄ v 1 = (2, 5)T và v 2 = (4, 10)T cùng phương;


⋄ v 3 = (1, 2)T và v 4 = (2, 1)T là khác biệt.

• Phương lùi xa d của tập D được gọi là phương cực biên (extreme direction)
của D nếu không tồn tại các phương lùi xa khác biệt d1 và d2 của D sao cho

d = λ1 d1 + λ2 d2 , λ1 , λ2 > 0.

Ví dụ 2.5. Xét tập

D := {x ∈ R2 | − x1 + x2 ≤ 5, x1 + 2x2 ≥ 10, x1 ≥ 0, x2 ≥ 3}.

−x1 + x2 = 5
x2

3
d1 d3 x2 = 3

d2 x1 + 2x2 = 10 10 x1 m
recD
Tập D có:

⋄ 02 đỉnh là v 1 = (0, 5)T và v 2 = (4, 3)T ,


⋄ 02 phương cực biên là d1 = (1, 1)T và d2 = (1, 0)T ;
⋄ recD = cone{(1, 1)T , (1, 0)T },
⋄ d3 = (2, 1)T ∈ recD nhưng d3 không phải là phương cực biên của D.
18

2.9 Tập lồi đa diện

Tập P ⊂ Rn được gọi là tập lồi đa diện nếu là giao của một số hữu hạn nửa
không gian đóng, tức P là tập nghiệm của hệ

⟨ai , x⟩ ≥ bi , i = 1, . . . , ℓ, (2.6)

trong đó ai ∈ Rn , bi ∈ R với mọi i = 1, . . . , ℓ.

⋄ Mỗi bất đẳng thức trong hệ (2.6) được gọi là một ràng buộc của P .

⋄ Ràng buộc k ∈ {1, . . . , ℓ} là thừa nếu

{x | ⟨ai , x⟩ ≥ bi , i = 1, . . . , ℓ} = {x | ⟨ai , x⟩ ≥ bi , i ∈ {1, . . . , ℓ} \ {k}}.

⋄ Tập lồi đa diện là một tập lồi, đóng. Một tập lồi đa diện bị chặn được gọi
là đa diện lồi hay gọi tắt là đa diện.

a2
a1
a3
5
a
a4
19

Ký hiệu

Ma trận A ∈ R{ ℓ × n với các hàng là a1 , . . . , aℓ ;

Véc tơ b = (b1 , . . . , bℓ )T ∈ Rℓ .

Véc tơ x = (x1 , . . . , xn )T ∈ Rn .

Khi đó
(2.6) ⇔ Ax ≥ b.

Mệnh đề 2.10. Cho tập lồi đa diện P xác định bởi hệ (2.6). Khi đó, tập con
lồi khác rỗng F ⊆ P là một diện của P khi và chỉ khi tồn tại một tập chỉ số
I ⊆ {1, 2, . . . , ℓ} sao cho F là tập nghiệm của hệ
{
⟨ai , x⟩ = bi , i ∈ I
⟨aj , x⟩ ≥ bj , j ∈ {1, 2, . . . , ℓ}\I.

Hơn nữa, ta có dimF = n − rank{ai , i ∈ I}.

Chú ý.

⋄ Đỉnh của tập lồi đa diện P là một diện có thứ nguyên bằng 0.

⋄ Cạnh của P là một diện có thứ nguyên bằng 1.

⋄ Mỗi cạnh vô hạn của tập lồi đa diện P tương ứng với một phương cực biên
của nó.
20

Cho x0 ∈ P . Tập

I(x0 ) := {i ∈ {1, 2, . . . , ℓ} | ⟨ai , x0 ⟩ = bi }

được gọi là tập hợp các chỉ số của những ràng buộc thỏa mãn chặt tại x0 ∈ P .

Hệ quả 2.1. Cho tập lồi đa diện P xác định bởi hệ (2.6).

i) Điểm x0 ∈ P là đỉnh của P khi và chỉ x0 thỏa mãn chặt n ràng buộc độc
lập tuyến tính của hệ (2.6).

ii) Một đoạn thẳng (hoặc nửa đường thẳng, hoặc đường thẳng) Γ ⊂ P là một
cạnh của P khi và chỉ khi nó là tập các điểm của P thỏa mãn chặt (n − 1)
ràng buộc độc lập tuyến tính của hệ (2.6).

Chú ý.

⋄ Mỗi tập lồi đa diện chỉ có một số hữu hạn đỉnh hoặc cạnh.

⋄ Một diện của tập lồi đa diện P cũng là một tập lồi đa diện.

⋄ Mỗi đỉnh của một diện của P cũng là một đỉnh của P .

Định nghĩa. Cho x0 là một đỉnh của tập lồi đa diện P xác định bởi hệ (2.6).

⋄ Đỉnh x0 được gọi là đỉnh không suy biến nếu |I(x0 )| = n.

⋄ Đỉnh x0 là đỉnh suy biến nếu |I(x0 )| > n.

⋄ Hai đỉnh x1 và x2 được gọi là kề nhau nếu đoạn thẳng nối chúng là một
cạnh.
21

Đỉnh suy biến x3 x3


Đỉnh suy biến

1 1
Đỉnh không
suy biến
P

0 x2 0 x2
1 1

1 1
(a) (b) (c)
x1 x1

Đỉnh suy biến và không suy biến


22

Định lý 2.5. (Định lý biểu diễn tập lồi đa diện) Giả sử tập lồi đa diện P có
tập đỉnh là
{v 1 , . . . , v N }
và tập các phương cực biên là
{d1 , . . . , dM }.
Khi đó, mỗi điểm x ∈ P đều có thể biểu diễn dưới dạng

N ∑
M
x= λi v i + µj dj , (2.7)
i=1 j=1


N
λi ≥ 0, i = 1, . . . , N, µj ≥ 0, j = 1, . . . , M và λi = 1.
i=1

Nhận xét 2.1. Nếu P là đa diện lồi thì trong (2.7) chỉ còn lại tổng thứ nhất,
tức là mỗi điểm của P đều được biểu diễn bằng tổ hợp lồi của các đỉnh của nó.

Ví dụ 2.6. Xét bài toán

min f (x) = ⟨c, x⟩ v.đ.k. x ∈ D, (V D1 )


trong đó c ∈ Rn \ {0} và D ⊂ Rn là đa diện khác rỗng. Khi đó, bài toán (V D1 )
đạt nghiệm tối ưu tại ít nhất một đỉnh của X.

Chứng minh. Vì f (x) là hàm liên tục và D là tập compact khác rỗng nên
Argmin(V D1 ) ̸= ∅. Giả đa diện có tập đỉnh là {v 1 , . . . , v k }.
Lấy tùy ý điểm x ∈ D. Theo Định lý biểu diễn tập lồi đa diện,

k ∑
k
x= λi v λi ≥ 0, i = 1, . . . , k,
i
λi = 1.
i=1 i=1

Ta có

k ∑
k ∑
k
⟨c, x⟩ = ⟨c, λi v i ⟩ = λi ⟨c, v i ⟩ ≥ λi ⟨c, v i0 ⟩ = λi ⟨c, v i0 ⟩,
i=1 i=1 i=1

trong đó
v i0 ∈ {v 1 , . . . , v k } thỏa mãn ⟨c, v i0 ⟩ = min{⟨c, v i ⟩, i = 1, . . . , k}.
Vì phương án được chọn tùy ý nên ta có
⟨c, x⟩ ≥ ⟨c, v i0 ⟩ ∀ x ∈ D.
Ta có điều phải chứng minh. 
23

Ta nói k + 1 điểm (hay véc tơ) v 0 , v 1 , . . . , v k ∈ Rn là độc lập afin (affinely


independent) nếu k véc tơ v 1 − v 0 , . . . , v k − v 0 là độc lập tuyến tính. Bao lồi của
k + 1 điểm độc lập afin trong Rn được gọi là đơn hình k chiều hay k−đơn hình.
Tập
∑ n
S = {x ∈ R |n
xj ≤ 1, xj ≥ 0, j = 1, . . . , n}
j=1

được gọi là đơn hình chuẩn trong Rn .

1−đơn hình 2−đơn hình


0−đơn hình
3−đơn hình

Hình 2.13. Các đơn hình trong R3

Ví dụ 2.7. Một điểm là 0−đơn hình, đoạn thẳng là 1−đơn hình, tam giác là
2−đơn hình và tứ diện là 3−đơn hình (xem Hình 2.13). Đơn hình chuẩn trong
R3 là tứ diện với bốn đỉnh là (0, 0, 0)T , (1, 0, 0)T , (0, 1, 0)T và (0, 0, 1)T .

Bài tập Chương 2

1. Cho tập E ⊆ Rn . Chứng minh rằng:


k ∑
k
x ∈ affE ⇔ x= λi x ; x , x , . . . , x ∈ E,
i 1 2 k
λi = 1.
i=1 i=1

2. Chứng minh rằng không gian con song song với tập afin M là xác định
duy nhất.

3. Chứng minh rằng:

i) Giao của một họ hữu hạn các tập lồi là tập lồi.
ii) Hợp của hai tập lồi chưa chắc đã là tập lồi, cho ví dụ cụ thể.

4. Chứng minh rằng tập M = {x ∈ Rn |Ax = b, x ≥ 0} là tập lồi, trong đó


A là ma trận cấp m × n và b ∈ Rm .
24

5. Cho {d1 , . . . , dk } là các hướng lùi xa của tập

D = {x ∈ Rn | Ax = b, x ≥ 0},

với A là ma trận cấp m × n và b ∈ Rm . Chứng minh rằng véc tơ


k
0 ̸= d = αi di với αi ≥ 0
i=1

cũng là một hướng lùi xa của D.


6. Cho P = {x ∈ Rn |Ax = b, x ≥ 0}. Chứng minh rằng nếu d ̸= 0 thỏa mãn

Ad = 0 và d ≥ 0

khi và chỉ khi d là một hướng lùi xa của tập P .


7. Cho p ̸= 0 là một hướng lùi xa của tập

D = {x ∈ Rn | Ax = b, x ≥ 0},

với A là ma trận cấp m × n và b ∈ Rm . Chứng minh rằng −p không thể


là một hướng lùi xa của D.
8. Cho tập M = {x ∈ R2 | x1 + x2 ≥ 1; −x1 + x2 ≤ 2; x1 , x2 ≥ 0}. Tìm các
phương cực biên của M và xác định nón lùi xa recM .
9. Chứng minh rằng tập D = {x ∈ Rn |Ax < b} không có một điểm cực biên
nào. Cho ví dụ về một tập lồi có hữu hạn điểm cực biên và một tập lồi có
vô hạn điểm cực biên.
10. Cho tập lồi đa diện P = {x ∈ R6 |Ax = b, x ≥ 0}, trong đó
   
1 4 7 1 0 0 12
 
A = 2 5 8 0 1 0 và b =  15 .
3 6 9 0 0 1 18

Điểm x = (1, 1, 1, 0, 0, 0)T có phải là điểm cực biên của P không? Giải
thích.
11. Cho tập P = {x ∈ R2 | − 3x1 + 2x2 ≤ 30, −2x1 + x2 ≤ 12, x1 , x2 ≥ 0}.

i) Vẽ tập P .
ii) Xác định các điểm cực biên và chỉ ra hai hướng lùi xa độc lập tuyến
tính của P .
25

12. Hãy biểu diễn điểm (2, 2)T như một tổ hợp lồi của ba điểm (0, 0)T , (1, 4)T
và (3, 1)T .
13. Vẽ bao lồi của tập các điểm sau: (0, 0)T , (1, 0)T , (−1, 2)T , (3, 1)T ,
(2, 6)T , (−2, 1)T , (−3, −2)T , (3, 3)T . Chỉ rõ các điểm cực biên và các
điểm trong của bao lồi này.
14. Hãy xác định siêu phẳng đi qua các điểm (1, 1, 1, 1)T , (2, 0, 1, 0)T ,
(0, 2, 0, 1)T và (1, 1, −1, 0)T thuộc R4 .
15. Cho C1 và C2 là hai tập lồi trong Rn . Chứng minh rằng tồn tại một siêu
phẳng tách chặt C1 và C2 khi và chỉ khi

inf{∥x − y∥ |x ∈ C1 , y ∈ C2 } > 0.

16. Cho A là ma trận cấp m × n và c ∈ Rm \ {0}. Chứng minh rằng có một


và chỉ một hệ phương trình trong hai hệ phương trình sau có nghiệm:
i) Ax = c.
ii) AT y = 0, ⟨c, y⟩ = 1.
17. Cho ma trận A cấp m × n, véc tơ b ∈ Rm , b ≥ 0. Chứng minh rằng x0 = 0
là một đỉnh của tập lồi đa diện

D = {x ∈ Rn | Ax ≤ b, x ≥ 0}.
26
Chương 3

Qui hoạch tuyến tính


(Linear Programming)

"Một trong các thành tựu vĩ đại của thế kỷ XX là


đã phát minh và phát triển lý thuyết quy hoạch tuyến tính".

∼ Bản tin của Liên đoàn Toán học thế giới 1/2005 ∼

• Năm 1939: Leonid Vitaliyevich Kantorovich đã công bố công thức toán


học của các vấn đề kinh tế cơ bản, phác thảo về phương pháp giải và
thảo luận về ý nghĩa kinh tế của nó. Thực chất, công trình đó chứa đựng
những ý tưởng chính về lý thuyết và thuật toán giải quy hoạch tuyến tính,
phương Tây đã không biết đến công trình này trong nhiều năm.

• Năm 1947: Geogre Bernard Dantzig cùng các cộng sự phát hiện lại mô hình
quy hoạch tuyến tính khi nghiên cứu bài toán lập kế hoạch cho không quân
Mỹ và công bố thuật toán đơn hình (simplex algorithm) nổi tiếng để giải
bài toán quy hoạch tuyến tính.

• Năm 1975: L. V. Kantorovich và T. C. Koopmans được trao giải thưởng


giải thưởng Nobel dành cho khoa học kinh tế về những đóng góp quan
trọng trong việc ứng dụng quy hoạch tuyến tính giải quyết các bài toán
trong kinh tế .

27
28

3.1 Mô hình toán học

Bài toán quy hoạch tuyến tính tổng quát:

min{f (x) = ⟨c, x⟩ | x ∈ D}, (LP )

trong đó c = (c1 , c2 , . . . , cn )T ∈ Rn và D ⊂ Rn là tập lồi đa diện.


Khi nghiên cứu quy hoạch tuyến tính cũng như khi áp dụng nó, người ta
thường dùng hai dạng đặc thù sau:

3.1.1 Dạng chuẩn tắc

min f (x) = ⟨c, x⟩ = c1 x1 + · · · + cn xn (LPct∗ )


v.đ.k. ⟨ai , x⟩ ≥ bi , i = 1, . . . , m
xj ≥ 0, j = 1, . . . , n,

trong đó c, a1 , . . . , am ∈ Rn , số thực bi ∈ R với mọi i = 1, . . . , m.

• Với mỗi i ∈ {1, . . . , m}, bất đẳng thức

⟨ai , x⟩ ≥ bi

được gọi là một ràng buộc chính.

• Với mỗi j ∈ {1, . . . , n}, ràng buộc xj ≥ 0 được gọi là ràng buộc dấu.

• Kí hiệu A ∈ Rm×n với các hàng ai i = 1, . . . , m và véc tơ

b = (b1 , . . . , bm )T ∈ Rm .

Bài toán LPct∗ ) được viết lại dưới dạng ma trận như sau:

min f (x) =⟨c, x⟩


v.đ.k. Ax ≥ b
x ≥ 0.
29

3.1.2 Dạng chính tắc

min f (x) = ⟨c, x⟩ = c1 x1 + · · · + cn xn (LPct )


v.đ.k. ⟨a , x⟩ = bi , i = 1, . . . , m
i

xj ≥ 0, j = 1, . . . , n,
trong đó c, a1 , . . . , am ∈ Rn , số thực bi ≥ 0 với mọi i = 1, . . . , m.
• Với mỗi i ∈ {1, . . . , m}, bất đẳng thức
⟨ai , x⟩ = bi
được gọi là một ràng buộc chính.
• Với mỗi j ∈ {1, . . . , n}, ràng buộc xj ≥ 0 được gọi là ràng buộc dấu.
• Kí hiệu A ∈ Rm×n với các hàng ai i = 1, . . . , m và véc tơ
b = (b1 , . . . , bm )T ∈ Rm
+.

Bài toán LPct ) được viết lại dưới dạng ma trận như sau:
min f (x) =⟨c, x⟩
v.đ.k. Ax = b
x ≥ 0.

Chú ý. Trong bài toán quy hoạch tuyến tính dạng chính tắc,
bi ≥ 0, ∀ i = 1, . . . , m.
Ví dụ 3.1. Bài toán
min f (x) = 7x1 + 6x2 − 8x3
v.đ.k 2x1 − 5x2 + 4x3 = 8
2x1 + 9x2 − 5x3 = 15
x1 , x2 , x3 ≥ 0
là một bài toán quy hoạch tuyến tính chính tắc, trong đó
   
x1 7 ( ) ( )
2 −5 4 8
x =  x2  , c =  6  , A = , b= .
2 9 −5 15
x3 −8

Bài toán này có n = 3 biến và m = 2 ràng buộc chính.


30

Chú ý. Kí hiệu tập nghiệm của bài toán (LPct∗ ) là

D∗ = {x : Ax ≥ b, x ≥ 0}

và tập nghiệm của bài toán (LPct ) là

D = {x : Ax = b, x ≥ 0}.

Dễ thấy
D∗ ⊂ Rn+ và D ⊂ Rn+ .
Do đó
D∗ ̸= ∅ ⇒ D∗ có đỉnh,
D ̸= ∅ ⇒ D có đỉnh.

3.1.3 Chuyển bài toán quy hoạch tuyến tính bất kỳ về dạng chuẩn
tắc hay chính tắc
Mọi bài toán quy hoạch tuyến tính đều có thể đưa về bài toán quy hoạch tuyến
tính dạng chính tắc hoặc chuẩn tắc bằng các phép biến đổi sơ cấp sau:

⋄ Nếu xj không bị ràng buộc dấu thì đặt

xj = x̄j − x̄¯j với x̄j ≥ 0, x̄¯j ≥ 0.

⋄ Nếu xj ≤ 0 đổi biến


x̄j = −xj ≥ 0.

⋄ Mỗi ràng buộc bất đẳng thức



aij xj ≤ bi

có thể chuyển về ràng buộc đẳng thức nhờ đưa thêm vào một biến phụ
xn+i ≥ 0, ∑
aij xj + xn+i = bi .

⋄ Mỗi ràng buộc bất đẳng thức



⟨ai , x⟩ = aij xj ≥ bi

có thể chuyển về ràng buộc đẳng thức nhờ đưa thêm vào một biến phụ
xn+i ≥ 0, ∑
aij xj − xn+i = bi .
31

⋄ Mỗi ràng buộc


⟨ai , x⟩ = aij xj ≤ bi

có thể viết lại thành


⟨−ai , x⟩ = − aij xj ≥ −bi .

⋄ Mỗi ràng buộc đẳng thức


⟨ai , x⟩ = aij xj = bi

có thể thay bằng hai ràng buộc bất đẳng thức

∑ ∑
⟨ai , x⟩ = aij xj ≥ bi và ⟨−ai , x⟩ = − aij xj ≥ −bi .
32

Ví dụ 3.2. Xét bài toán quy hoạch tuyến tính


min f (x) = 3x1 + 5x2 − 4x3
v.đ.k. 3x1 − 5x2 + 3x3 ≤5
2x1 + 4x2 + 6x3 =8
−4x1 − 9x2 + 4x3 ≤ −4
x1 ≥ −2, 0 ≤ x2 ≤ 4, x3 ∈ R.
Để chuyển bài toán quy hoạch tuyến tính này về dạng chính tắc, trước hết thực
hiện:
− Nhân hai vế của ràng buộc chính thứ ba với −1 ta được
4x1 + 9x2 − 4x3 ≥ 4;
− Đổi biến x1 thành x̄1 với
x̄1 := x1 + 2 ≥ 0 ⇒ x1 = x̄1 − 2;
− Ràng buộc cận trên của biến thứ hai x2 ≤ 4 được xem như ràng buộc
chính thứ tư;
− Biến thứ ba được đổi thành
x3 = x̄3 − x̄¯3 với x̄3 ≥ 0, x̄¯3 ≥ 0.
Sau khi thay thế các biến đổi trên vào bài toán ban đầu ta nhận được bài toán:

min z = 3x̄1 + 5x2 −4x̄3 + 4x̄¯3 − 6


v.đ.k. 3x̄1 − 5x2 +3x̄3 − 3x̄¯3 ≤ 11
2x̄1 + 4x2 +6x̄3 − 6x̄¯3 = 12
4x̄1 + 9x2 −4x̄3 + 4x̄¯3 ≥ 12
x2 ≤ 4
x̄1 , x2 , x̄3 , x̄¯3 ≥ 0.
Cuối cùng, sau khi bỏ hằng số −6 ở hàm mục tiêu và thêm các biến phụ
x4 , x5 , x6 ≥ 0 lần lượt vào các ràng buộc chính thứ nhất, thứ ba, thứ tư của
bài toán này, ta nhận được bài toán quy hoạch tuyến tính dạng chính tắc sau:
min f ′ (x) = 3x̄1 + 5x2 − 4x̄3 + 4x̄¯3
v.đ.k. 3x̄1 − 5x2 + 3x̄3 − 3x̄¯3 + x4 = 11
2x̄1 + 4x2 + 6x̄3 − 6x̄¯3 = 12
4x̄1 + 9x2 − 4x̄3 + 4x̄3 − x5
¯ = 12
x2 + x6 = 4
x̄1 , x2 , x̄3 , x̄¯3 , x4 , x5 , x6 ≥ 0.
33

Giả sử (x̄∗1 , x∗2 , x̄∗3 , x̄¯∗3 , x∗4 , x∗5 , x∗6 )T là nghiệm tối ưu của bài toán quy
hoạch tuyến tính chính tắc này. Khi đó nghiệm tối ưu của bài toán ban đầu là
1 , x2 , x3 ) và giá trị tối ưu là f (x ) = 3x1 + 5x2 − 4x3 , trong
xopt = (xopt opt opt T opt opt opt opt

đó x1 = x̄∗1 − 2, xopt = x∗2 và x3 = x̄∗3 − x̄¯∗3 .


opt opt
34

3.2 Điều kiện tồn tại nghiệm và tính chất tập nghiệm
của bài toán quy hoạch tuyến tính

Xét bài toán quy hoạch tuyến tính tổng quát

min f (x) = ⟨c, x⟩ v.đ.k. x ∈ D, (LP )

trong đó c ∈ Rn và D ⊂ Rn là tập lồi đa diện.

3.2.1 Điều kiện tồn tại nghiệm

Trường hợp 1. D = ∅ ⇒ Arg min{f (x) : x ∈ D} = ∅.


Trường hợp 2.

Định lý 3.1. Nếu D∅ bị chặn thì Arg min{f (x) : x ∈ D} ̸= ∅

Chứng minh. Nhắc lại, tập lồi đa diện là tập đóng. Theo giả thiết, D khác
rỗng và bị chặn. Suy ra

D là tập compac, khác rỗng. (1)

Vì hàm mục tiêu f là hàm tuyến tính, nên

f là hàm liên tục trên Rn . (2)

Do (1) và (2), theo Định lý Weierstrass, ta có

Arg min{f (x) : x ∈ D} =


̸ ∅


35

Trường hợp 3.
Định lý 3.2. Nếu D khác rỗng và f (x) = ⟨c, x⟩ bị chặn dưới trên D, tức

∃α ∈ R : f (x) ≥ α ∀ x ∈ D
thì Arg min{f (x) : x ∈ D} =
̸ ∅.

Chứng minh. Vì mọi quy hoạch tuyến tính đều có thể chuyển về dạng chuẩn
tắc hoặc chính tắc nên không giảm tổng quát ta giả thiết tập D có đỉnh. Giả
sử D có tập đỉnh {v 1 , . . . , v N } và tập các phương cực biên là {d1 , . . . , dM }.
Lấy tùy ý x ∈ D. Theo Định lý biểu diễn tập lồi đa diện,


N ∑
M
i
x= λi v + µj dj , (3)
i=1 j=1


N
λi ≥ 0, i = 1, . . . , N, µj ≥ 0, j = 1, . . . , M, λi = 1.
i=1

Do hàm mục tiêu f (x) = ⟨c, x⟩ bị chặn dưới trên D nên


⟨c, dj ⟩ ≥ 0 ∀dj , j = 1, . . . , M. (4)
Thật vậy, giả sử tồn tại phương cực biên dj0 ∈ {d1 , . . . , dM } sao cho
⟨c, dj0 ⟩ < 0.
Vì dj0 là một phương cực biên nên
x + tdj0 ∈ D ∀x ∈ D, ∀t ≥ 0

⟨c, x + tdj0 ⟩ = ⟨c, x⟩ + t⟨c, dj0 ⟩ −→ −∞ khi t → +∞.
Điều này mâu thuẫn với tính bị chặn dưới của hàm f (x) = ⟨c, x⟩ và chứng tỏ
khẳng định (4) là đúng.
Chọn một đỉnh v i0 của D sao cho
⟨c, v i0 ⟩ = min{⟨c, v i ⟩ | i = 1, . . . , N }.
Theo (3) và (4), với bất kỳ x ∈ D, ta có

(3) ∑
N ∑
M
(4) ∑
N ∑
N
⟨c, x⟩ = λi ⟨c, v ⟩ +
i
µj ⟨c, d ⟩ ≥
j
λi ⟨c, v ⟩ ≥
i
λi ⟨c, v i0 ⟩ = ⟨c, v i0 ⟩.
i=1 j=1 i=1 i=1

Suy ra v i0 là nghiệm tối ưu của bài toán (LP ). 


36

Chú ý 3.1. Kết luận của Định lý 3.2 nói chung không còn đúng đối với bài
toán quy hoạch phi tuyến. Ví dụ:

i) Bài toán

inf{f (x) = x2 | x ∈ D},

trong đó D = {x ∈ R2 | x1 x2 ≥ 1, x1 , x2 ≥ 0}, có hàm mục tiêu là tuyến


tính và bị chặn dưới bởi 0. Tập nghiệm chấp nhận được D là tập lồi khác
rỗng nhưng không phải tập lồi đa diện. Đây không phải là bài toán quy
hoạch tuyến tính và dễ thấy, x = (x1 , 0)T ̸∈ D với mọi x1 ≥ 0. Vì thế bài
toán này không có nghiệm tối ưu (xem Hình 3.1(a)) và inff (D) = 0.

ii) Bài toán

min{f (x) = ex | x ∈ D},

trong đó D = {x ∈ R | x ≤ 0}, có tập chấp nhận được là tập lồi đa diện


nhưng hàm mục tiêu là phi tuyến và cũng bị chặn dưới bởi 0. Rõ ràng
cũng không tồn tại một điểm x ∈ D để ex = 0 và bài toán này không có
nghiệm tối ưu (xem Hình 3.1(b)), giá trị tối ưu inff (D) = 0.

f (x) = ex
x2 y

D
1 1

0 1 x1 x
D
(a) (b)

Hình 3.1
37

3.2.2 Tính chất tập nghiệm

Định lý 3.3. Nếu bài toán quy hoạch tuyến tính (LP ) có nghiệm tối ưu thì
tập nghiệm tối ưu của nó là một diện của tập lồi đa diện chấp nhận được.

Chứng minh. Đây là trường hợp riêng của Định lý:

Cho tập lồi khác rỗng D ⊂ Rn và véc tơ v ∈ Rn \ {0}. Giả sử

Argmin{g(x) = ⟨v, x⟩ : x ∈ D} ̸= ∅. (P0 )

Khi đó Argmin(P0 ) là một diện của D.

Hệ quả 3.1. i) Tập nghiệm của bài toán qui hoạch tuyến tính là một tập lồi
đa diện.

ii) Nếu một quy hoạch tuyến tính có nghiệm tối ưu và tập lồi đa diện ràng
buộc có đỉnh thì nghiệm tối ưu phải đạt tại ít nhất một đỉnh, tức đạt tại ít nhất
một phương án cực biên.

Chứng minh. Theo định nghĩa, phương án cực biên chính là một đỉnh của tập
lồi đa diện chấp nhận được của bài toán quy hoạch tuyến tính. Hệ quả được
suy trực tiếp từ Định lý 3.3 và sự kiện là đỉnh của một diện của một tập lồi đa
diện cũng chính là đỉnh của tập lồi đa diện đó (Hệ quả 2.3). 
38

Định lý 3.4. Nếu x∗ là nghiệm tối ưu địa phương của bài toán quy hoạch
tuyến tính (LP) thì x∗ cũng là nghiệm tối ưu toàn cục.
Chứng minh. Giả sử x∗ ∈ D là nghiệm tối ưu địa phương của bài toán (LP ).
Theo định nghĩa, tồn tại một hình cầu mở B(x∗ , ε) sao cho

⟨c, x∗ ⟩ ≤ ⟨c, x⟩ ∀x ∈ B(x∗ , ε) ∩ D.

Lấy tùy ý phương án chấp nhận được x ∈ D. Do D là tập lồi đa diện

[x∗ , x] ⊂ D.

Lấy điểm ) ( )
x0 ∈ ([x∗ , x] ∩ B(x∗ , ε ⊂ D ∩ B(x∗ , ε

⇒ x0 = λx∗ + (1 − λ)x với 0 < λ < 1.


Do x∗ là nghiệm tối ưu địa phương và x0 ∈ B(x∗ , ε) ∩ D nên

⟨c, x0 ⟩ = λ⟨c, x∗ ⟩ + (1 − λ)⟨c, x⟩ ≥ ⟨c, x∗ ⟩.

⇒ (1 − λ)⟨c, x⟩ ≥ (1 − λ)⟨c, x∗ ⟩

⇒ ⟨c, x⟩ ≥ ⟨c, x∗ ⟩.
Vì x ∈ D được lấy tùy ý nên

⟨c, x⟩ ≥ ⟨c, x∗ ⟩ ∀x ∈ D ⇒ x∗ ∈ Argmin{g(x) = ⟨v, x⟩ : x ∈ D}.

3.3 Giải bài toán quy hoạch tuyến tính hai biến bằng
phương pháp hình học
Xét bài toán quy hoạch tuyến tính hai biến

min f (x) = ⟨c, x⟩ v.đ.k. x ∈ D, (LP 2b )

hoặc bài toán


max f (x) = ⟨c, x⟩ v.đ.k. x ∈ D, (LP∗2b )
trong đó c = (c1 , c2 )T ∈ R2 \ {0} và D ⊂ R2 là tập lồi đa diện.
39

Có sở lý thuyết

i) Qua mỗi điểm x̄ = (x̄1 , x̄2 )T ∈ R2 chỉ có duy nhất một đường mức

L(α, f ) = {x ∈ R2 | ⟨c, x⟩ = α}

của hàm f (x) = ⟨c, x⟩ với mức α = ⟨c, x̄⟩.

ii) ∇f (x) = c tại mọi điểm x ∈ Rn . Do đó véc tơ hàm mục tiêu c là véc tơ
pháp tuyến của mọi đường mức.

iii) Các đường mức của hàm f (x) = ⟨c, x⟩ song song với nhau.

iv) Giá trị hàm f (x) = ⟨c, x⟩ tăng theo hướng véc tơ gradient ∇f (x) = c và
giảm theo hướng ngược véc tơ c.

Ví dụ Xét hàm f (x) = 2x1 + 3x2 . Ta có

∇f (x) = (fx′ 1 , fx′ 2 )T = (2, 3)T

là véc tơ pháp tuyến của mọi đường mức

L(α, f ) = {x ∈ R2 : 2x1 + 3x2 = α}, với α ∈ R

.
Lấy tùy ý α1 ̸= α2 , ta có L(α1 , f )//L(α2 , f ). Chẳng hạn

L(6, f ) = {x ∈ R2 : 2x1 + 3x2 = 6}//L(12, f ) = {x ∈ R2 : 2x1 + 3x2 = 12}.

• Phát biểu theo ngôn ngữ hình học:

⋄ Bài toán min{f (x) : x ∈ D}: Trong số các đường mức cắt tập D, hãy tìm
đường mức có giá trị mức nhỏ nhất.

⋄ Bài toán max{f (x) : x ∈ D}: Trong số các đường mức cắt tập D, hãy tìm
đường mức có giá trị mức lớn nhất.
40

Thuật toán.

Bước 1. Vẽ:

- Tập chấp nhận được D;

- Véc tơ hàm mục tiêu c;

- Đường mức L(0, f ) = {x ∈ R2 | ⟨c, x⟩ = 0} đi qua điểm gốc 0


và vuông góc với c.

Bước 2.

- Lấy một điểm bất kỳ x̄ ∈ D.

- Vẽ đường thẳng L đi qua x̄ và song song với đường mức L(0, f ).


Đường thẳng L là đường mức

{x ∈ R2 | ⟨c, x⟩ = ⟨c, x̄⟩}

Bước 3.

⋄ Bài toán min{f (x) : x ∈ D}:


Dịch chuyển song song đường mức L theo hướng ngược với hướng
véc tơ c đế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. Các điểm của D nằm trên đường mức cuối cùng này
là các nghiệm tối ưu của bài toán (LP 2b ), còn giá trị mức này chính là giá
trị tối ưu của bài toán.

⋄ Bài toán max{f (x) : x ∈ D}:


Dịch chuyển song song đường mức L theo hướng hướng véc tơ c đế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. Các điểm của D nằm trên đường mức cuối cùng này là các nghiệm
tối ưu của bài toán (LP 2b ), còn giá trị mức này chính là giá trị tối ưu của
bài toán.
41

Cách trình bày bài làm giải bài toán qui hoạch tuyến tính bằng thuật
toán hình học

Ví dụ Xét bài toán quy hoạch tuyến tính:

min f (x) = −20x1 + 10x2


v.đ.k. − x1 + 2x2 ≤4
x1 + x2 ≤5
x1 ≤4
x1 , x2 ≥ 0.

Lời giải.

⋄ Tập chấp nhận được D, hướng của véc tơ hàm mục tiêu c = (−20, 10)T ,
đường mức
L0 = {x ∈ R2 : ⟨c, x⟩ = 0}
và đường mức đi qua điểm x̄ ∈ D

L = {x ∈ R2 : ⟨v, x⟩ = ⟨c, x̄⟩}

được minh họa như hình vẽ.

⋄ ∗ Bài toán min{f (x) : x ∈ D}:


Vì bài toán tìm cực tiểu hàm f (x) = ⟨v, x⟩ trên D nên tịnh tiến
đường mức L theo hướng ngược hướng véc tơ c.

∗ Bài toán max{f (x) : x ∈ D}:


Vì bài toán tìm cực đại hàm f (x) = ⟨v, x⟩ trên D nên tịnh tiến
đường mức L theo hướng véc tơ c.
⋄ Theo thuật toán hình học, bài toán có nghiệm tối ưu là .... và giá trị tối
ưu là .... (hoặc bài toán không có nghiêm tối ưu)

Chú ý. Trong trường hợp 0 ∈ D thì có thể bỏ qua câu:


"đường mức đi qua điểm x̄ ∈ D

L = {x ∈ R2 : ⟨v, x⟩ = ⟨c, x̄⟩}”.


42

Nếu thay hàm mục tiêu của bài toán này bởi f ′ (x) = 10x1 − 20x2 thì ta
nhận được tập nghiệm tối ưu là cả cạnh [(0, 2)T , (2, 3)T ]. Trường hợp này, bài
toán có vô số nghiệm. Ta có thể lấy một nghiệm tối ưu đại diện là đỉnh (0, 2)T .

x2 x2

5
5
T L
(2, 3)
x̄ L0
2 2
c D
x̄ D
0 4 5 x1 0 4 5 x1
L0 c
L
(a) (b)

(a) − Bài toán có duy nhất nghiệm; (b) − Bài toán có vô số nghiệm
43

Ví dụ 3.3. Xét bài toán quy hoạch tuyến tính:


min f (x) = x1 + x2
v.đ.k. x1 + 2x2 ≥2
−x1 + 2x2 ≤4
x1 , x2 ≥ 0.

Các thông tin về bài toán này như tập chấp nhận được, hướng của véc tơ
mục tiêu c = (1, 1)T , đường mức L0 và đường mức L đi qua điểm x̄ ∈ D được
minh họa ở Hình 3.3(a). Tập chấp nhận được của bài toán là không bị chặn.
Theo Thuật toán 3.1, ta thấy bài toán có nghiệm tối ưu duy nhất là x∗ = (0, 1)T .
Nếu thay hàm mục tiêu của bài toán này bởi f ′ (x) = −x1 − x2 thì bài toán
vô nghiệm, hàm mục tiêu giảm vô hạn trên tập phương án (xem Hình 3.3(b)).

Ví dụ 3.4. Xét bài toán quy hoạch tuyến tính:


min f (x) = 2x1 − 3x2
v.đ.k. −2x1 + 3x2 ≤ 6
2x1 − 3x2 ≤ 6.

Tập nghiệm tối ưu của bài toán là cả đường thẳng (xem Hình 3.4(a)) xác
định bởi phương trình
−2x1 + 3x2 = 6.

Nếu thay hàm mục tiêu của bài toán này bởi f ′ (x) = x1 + x2 thì bài toán vô
nghiệm, hàm mục tiêu giảm vô hạn trên tập phương án (xem Hình 3.4(b)).

x2 x2

D 2
2
1 x̄ 1 x̄
c
0 2 x1 0 2 x1
c
L L
L0 L0
(a) (b)
Hình 3.3. (a) − Bài toán có duy nhất nghiệm; (b) − Bài toán vô nghiệm
44

x2 x2

L
2 x̄ L0 2
c
−3
c 3 x1 −3 3 x1
−2 x̄
−2 L0
L

(a) (b)

Hình 3.4. (a) - Tập nghiệm tối ưu là cả đường thẳng; (b) - Bài toán vô nghiệm

Nhận xét 3.1. Qua các ví dụ trên ta thấy:

i) Nếu tập chấp nhận được khác rỗng và bị chặn thì chắc chắn quy hoạch
tuyến tính có nghiệm tối ưu;

ii) Nếu quy hoạch tuyến tính có nghiệm tối ưu và tập chấp nhận được D có
đỉnh thì nghiệm tối ưu đạt trên ít nhất một đỉnh của D (Ví dụ 3.3 và 3.4);

iii) Trường hợp bài toán không có nghiệm tối ưu và tập chấp nhận được khác
rỗng, ta có hàm mục tiêu không bị chặn dưới trên D (Ví dụ 3.4);

iv) Nếu tập chấp nhận được D không có đỉnh thì quy hoạch tuyến tính có thể
không có nghiệm hoặc có nghiệm. Trường hợp có nghiệm thì nghiệm tối
ưu không phải là đỉnh (Ví dụ 3.5).
45

3.4 Phương pháp đơn hình giải bài toán quy hoạch tuyến
tính chính tắc

Xét bài toán quy hoạch tuyến tính chính tắc:

min f (x) = ⟨c, x⟩ v.đ.k. x ∈ D, (LP ct )

trong đó c ∈ Rn \ {0} và D ⊂ Rn là tập lồi đa diện xác định bởi

Ax = b, x ≥ 0, (3.5)

với A là ma trận cấp m × n, m < n và b = (b1 , . . . , bm )T ≥ 0.

Giả thiết.
rankA = m và m < n.

Định lý 3.5. Cho tập lồi đa diện khác rỗng D = {x | Ax = b, x ≥ 0}, trong
đó A là ma trận cấp m × n với các hàng a1 , . . . , am . Giả sử rằng rankA = k < m
và các hàng ai1 , . . . , aik độc lập tuyến tính. Khi đó D = D′ , trong đó D′ là tập
lồi đa diện xác định bởi

D′ = {x | ⟨ai1 , x⟩ = bi1 , . . . , ⟨aik , x⟩ = bik , x ≥ 0}.

Phương pháp đơn hình của Dantzig giải bài toán quy hoạch tuyến tính dựa
trên hai tính chất sau:

i) Nếu bài toán (LP ct ) có nghiệm tối ưu thì nghiệm tối ưu phải đạt trên ít
nhất một đỉnh của tập lồi đa diện chấp nhận được D (Hệ quả 3.1).

ii) Nghiệm tối ưu địa phương của bài toán (LP ct ) là nghiệm tối ưu toàn cục
(Định lý 3.4).
46

3.4.1 Mô tả hình học của phương pháp đơn hình

Thuật toán đơn hình xuất phát từ một đỉnh x0 ∈ D. Tại đỉnh x0 chỉ có một
trong ba trường hợp sau xảy ra:

i) Trên mọi cạnh của tập nghiệm chấp nhận được xuất phát từ x0 , giá trị
hàm mục tiêu đều không giảm. Khi đó x0 là nghiệm tối ưu toàn cục của
(LP ct ) (Bài tập) (xem Hình 3.5(a));

ii) Mọi cạnh xuất phát từ x0 , theo đó giá trị hàm mục tiêu giảm, đều là cạnh
hữu hạn. Đi theo một cạnh như thế, ta sẽ đến một đỉnh x1 kề với x0 mà

⟨c, x1 ⟩ < ⟨c, x0 ⟩.

Gán x0 := x1 và lặp lại quá trình tính toán với đỉnh x0 mới (xem Hình
3.5(b));

iii) Có một cạnh vô hạn xuất phát từ x0 , theo đó giá trị hàm mục tiêu giảm.
Khi đó giá trị hàm mục tiêu sẽ tiến đến −∞ theo cạnh này và bài toán
không có nghiệm tối ưu (xem Hình 3.5(c)).

c x0
c

x0 x0 c
x1
(a) (b) (c)

Hình 3.5
47

3.4.2 Cơ sở lý thuyết của phương pháp đơn hình

a. Phương án cực biên

Xét bài toán quy hoạch tuyến tính chính tắc:

min f (x) = ⟨c, x⟩ v.đ.k. x ∈ D, (LP ct )

trong đó c ∈ Rn \ {0} và D ⊂ Rn là tập lồi đa diện xác định bởi

Ax = b, x ≥ 0, (3.5)

với A là ma trận cấp m × n, m < n và b = (b1 , . . . , bm )T ≥ 0.

Ký hiệu Aj là cột thứ j của ma trận A, j = 1, . . . , n. Khi đó hệ (3.5) được


viết dưới dạng véc tơ như sau:

A1 x1 + A2 x2 + · · · + An xn = b, xj ≥ 0, j = 1, . . . , n. (3.6)

Xét một phương án chấp nhận được x0 = (x01 , x02 , . . . , x0n )T ∈ D, tức x0 thoả
mãn (3.6). Ký hiệu

J(x0 ) := {j ∈ {1, . . . , n} | x0j > 0}.

Ví dụ.

x1 = (0, 5, 0, 6, 8, 0)T ⇒ J(x1 ) = {2, 4, 5}.

x2 = (4, 0, 0, 3, 0, 1)T ⇒ J(x2 ) = {1, 4, 6}.

Định lý 3.6. Cho phương án chấp nhận được x0 ∈ D. Khi đó,

x0 là phương án cực biên ⇔ {Aj | j ∈ J(x0 )} độc lập tuyến tính.


48

Chứng minh. Không giảm tổng quát, có thể giả thiết rằng J(x0 ) = {1, . . . , k},
tức x0 = (x01 , . . . , x0k , 0, . . . , 0)T với x0j > 0 với mọi j = 1, . . . , k.

(⇒) Giả sử x0 ∈ D là phương án cực biên. Ta có


n ∑
k
x0j Aj = x0j Aj = b. (3.7)
j=1 j=1

Giả thiết phản chứng rằng {A1 , . . . , Ak } phụ thuộc tuyến tính, tức tồn tại các
số thực dj ∈ R với j = 1, . . . , k và có ít nhất một hệ số dj ̸= 0 sao cho

d1 A1 + · · · + dk Ak = 0 ⇔ td1 A1 + · · · + tdk Ak = 0, ∀t > 0. (3.8)

Từ (3.7) và (3.8) suy ra

(x01 − td1 )A1 + · · · + (x0k − tdk )Ak = b,

(x01 + td1 )A1 + · · · + (x0k + tdk )Ak = b

hay
Ay = b và Az = b,

trong đó
y = (x01 − td1 , . . . , x0k − tdk , 0, . . . , 0)T ∈ Rn ,

z = (x01 + td1 , . . . , x0k + tdk , 0, . . . , 0)T ∈ Rn .

Vì x0j > 0 với mọi j = 1, . . . , k nên có thể chọn t > 0 đủ nhỏ sao cho

yj ≥ 0, zj ≥ 0, j = 1, . . . , n ⇒ y ≥ 0, z ≥ 0.

⇒ y, z ∈ D y ̸= z.

Ta có
1 1
x0 = y + z.
2 2
Điều này mâu thuẫn với giả thiết x0 là phương án cực biên của D.
Suy ra A1 , . . . , Ak phải độc lập tuyến tính.
49

(⇐ ) Giả sử các véc tơ A1 , . . . , Ak độc lập tuyến tính. Giả thiết phản chứng
rằng x0 không phải pacb, tức tồn tại y, z ∈ D, y ̸= z sao cho

x0 = λy + (1 − λ)z, 0 < λ < 1. (3.9)

x0j = λyj + (1 − λ)zj , 0 < λ < 1, ∀ j = 1, . . . , n. (3.9)


λ > 0, (1 − λ) > 0, x0j = 0, , ∀i = k + 1, . . . , n

nên
yj = 0, zj = 0, ∀i = k + 1, . . . , n.

Vì y, z ∈ D nên

y1 A1 + · · · + yk Ak = b,

z1 A1 + · · · + zk Ak = b.

Do {A1 , . . . , Ak } độc lập tuyến tính nên chỉ có duy nhất một biểu diễn của
b qua chúng, tức

yj = zj ∀ j = 1, . . . , k ⇒ y = z.

Điều này mâu thuẫn với giả thiết phản chứng là y ̸= z và chứng tỏ x0 phải
là phương án cực biên. 

Theo Định lý 3.6, một véc tơ x0 ∈ Rn là phương án cực biên của bài toán
quy hoạch tuyến tính (LP ct ) nếu nó thỏa mãn đồng thời hai điều kiện sau:

i) x0 ∈ D (tức x0 có thoả mãn hệ (3.6));


ii) Các véc tơ {Aj | j ∈ J(x0 )} độc lập tuyến tính.
50

Ví dụ 3.5. Cho bài toán quy hoạch tuyến tính dạng chính tắc với tập ràng
buộc được xác định bởi hệ

x1 + 2x2 − x3 =2
−x1 + 2x2 + x4 =4
x1 + x5 =5
x1 , x2 , . . . , x5 ≥0

và các véc tơ x1 = (0, 2, 2, 0, 5)T , x2 = (1, 1, 1, 3, 4)T và x3 = (2, 0, 0, 6, 5)T . Xác


định xem các véc tơ đó có phải là phương án cực biên của bài toán đã cho
không?

Giải.

⋄ Xét x1 = (0, 2, 2, 0, 5)T . Dễ thấy x1 là một phương án chấp nhận được vì


nó thỏa mãn mọi ràng buộc của bài toán. Ta có

J(x1 ) = {j ∈ {1, . . . , 5} | x1j > 0} = {2, 3, 5}

và ba véc tơ
     
2 −1 0
     
A2 =  2 , A3 =  0  , A5 =  0
0 0 1

độc lập tuyến tính. Vậy x1 là một phương án cực biên của bài toán đang
xét.

⋄ Xét x2 = (1, 1, 1, 3, 4)T . Ta cũng có x2 là một phương án chấp nhận được


với J(x2 ) = {1, 2, 3, 4, 5}. Nhưng hiển nhiên là năm véc tơ A1 , . . . , A5 ∈ R3
phụ thuộc tuyến tính. Vậy x2 không phải là phương án cực biên của bài
toán.

⋄ Xét x3 = (2, 0, 0, 6, 5)T . Vì x3 vi phạm ràng buộc chính thứ ba của bài
toán nên nó không là phương án chấp nhận được. Do đó x3 cũng không
phải là phương án cực biên của bài toán.
51

Sau đây là các hệ quả trực tiếp của Định lý 3.6.

Hệ quả 3.2. Số thành phần dương trong mỗi phương án cực biên của bài toán
quy hoạch tuyến tính chính tắc không vượt quá m.

Chứng minh. Vì A là ma trận cấp m × n và rankA = m nên số véc tơ cột độc


lập tuyến tính của A không thể vượt quá m. Kết luận của Hệ quả được suy ra
trực tiếp từ Định lý 3.6. 

Hệ quả 3.3. Số phương án cực biên của bài toán quy hoạch tuyến tính dạng
chính tắc là hữu hạn.

Chứng minh. Theo Định lý 3.6, mỗi phương án cực biên của bài toán tương
ứng với k ≤ m véc tơ độc lập tuyến tính của A và k véc tơ độc lập tuyến tính
của A xác định nhiều nhất một phương án cực biên. Vì ma trận A có n cột nên
số hệ gồm k véc
∑tơ cột của A là Cnk . Vậy số phương án cực biên của bài toán
n
không lớn hơn k=0 Cnk = 2n . 

Định nghĩa. Cho phương án chấp nhận được x0 ∈ D.

• Nếu |J(x0 )| = m thì x0 là phương án cực biên không suy biến x0 của bài
toán quy hoạch tuyến tính chính tắc (LP ct ).

• Nếu |J(x0 )| < m thì x0 là phương án cực biên suy biến x0 của bài toán
quy hoạch tuyến tính chính tắc (LP ct ).

• Nếu tất cả các phương án cực biên của tập chấp nhận được là không suy
biến thì Bài toán quy hoạch tuyến tính (LP ct )là bài toán qhtt không suy biến

• Nếu có ít nhất một phương án cực biên suy biến thì Bài toán quy hoạch
tuyến tính (LP ct )là bài toán qhtt suy biến.
52

Ví dụ 3.6. Xét quy hoạch tuyến tính có tập chấp nhận được là tập nghiệm
của hệ sau

3x1 + 4x2 + 10x3 = 10


x1 − x2 + x3 = 1
xj ≥ 0, j = 1,2, 3.

Ta có n = 3 và m = 2. Dễ thấy v 1 = (2, 1, 0)T và v 2 = (0, 0, 1)T là hai phương


án cực biên của bài toán này. Vì

J(v 1 ) = {j ∈ {1, 2, 3} | vj1 > 0} = {1, 2}

có số phần tử |J(v 1 )| = 2 = m nên v 1 là phương án cực biên không suy biến.


Còn v 2 là phương án cực biên suy biến do

J(v 2 ) = {j ∈ {1, 2, 3} | vj2 > 0} = {3}

có số phần tử |J(v 2 )| = 1 < m. Vì vậy, bài toán này là bài toán quy hoạch tuyến
tính suy biến.
Nhận xét 3.2. Theo Định lý 3.6, ta có thể dễ dàng xác định được tất cả các
phương án cực biên của bài toán quy hoạch tuyến tính chính tắc trong trường
hợp số ràng buộc m và số biến n đủ nhỏ. Vì nghiệm tối ưu của bài toán quy
hoạch tuyến tính đạt tại ít nhất một phương án cực biên (Hệ quả 3.1) nên nếu
thêm giả thiết là tập chấp nhận được bị chặn, tức nó là đa diện lồi, thì ta có
thể tìm nghiệm tối ưu của bài toán bằng cách so sánh giá trị của hàm mục tiêu
tại các phương án cực biên.
Ví dụ 3.7. Xác định tất cả các phương án cực biên của bài toán quy hoạch
tuyến tính với tập chấp nhận được xác định bởi hệ:

x1 + 4x2 − x3 = 3
5x1 + 2x2 + 3x3 = 4
xj ≥ 0, j = 1,2, 3.

Giải. Bài toán này có n = 3 biến và m = 2 ràng buộc chính.

⋄ Xác định các phương án cực biên không suy biến: Theo định nghĩa, một
phương án cực biên không suy biến có đúng m = 2 thành phần dương. Vì
vậy, từ hệ trên ta có:
( 13 5 )T
− Nếu x1 = 0 thì x2 = 13
14
, x3 = 5
7
và x1 = 0, 14 , 7 là một phương
án chấp nhận được;
53

− Nếu x2 = 0 thì hệ trên vô nghiệm;

(5 )T
− Nếu x3 = 0 thì x1 = 95 , x2 = 11
18
và x2 = , 11 , 0
9 18
là một phương
án chấp nhận được.

Vì J(x1 ) = {2, 3} và hai véc tơ A2 = (4, 2)T và A3 = (−1, 3)T độc lập
tuyến tính nên x1 là phương án cực biên không suy biến. Tương tự, x2
cũng là phương án cực biên không suy biến vì J(x2 ) = {1, 2} và hai véc
tơ A1 = (1, 5)T ; A2 = (4, 2)T độc lập tuyến tính.

⋄ Xác định các phương án cực biên suy biến: Một phương án cực biên suy
biến có ít hơn m = 2 thành phần dương, tức nó phải có ít nhất n−m+1 = 2
thành phần bằng 0. Dễ thấy bài toán này không có phương án cực biên
suy biến. Vì vậy, nó là bài toán quy hoạch tuyến tính không suy biến.
54

b. Điều kiện tối ưu


Xét bài toán quy hoạch tuyến tính chính tắc

min f (x) = ⟨c, x⟩ v.đ.k. x ∈ D, (LP ct )

trong đó c ∈ Rn \ {0} và tập chấp nhận được

D = {x ∈ Rn | Ax = b, x ≥ 0},

trong đó b = (b1 , . . . , bm )T ≥ 0, A là ma trận cấp m × n với các cột A1 , . . . , An ,


rankA = m và m < n.

Định nghĩa. Một bộ gồm m véc tơ cột độc lập tuyến tính B = {Aj1 , Aj2 , . . . , Ajm }
của ma trận A cấp m × n có rankA = m được gọi là một cơ sở của ma trận A.

Cho x0 = (x01 , . . . , x0n )T là một phương án cực biên của bài toán (LP ct ). Theo
Định lý 3.6, các véc tơ {Aj | j ∈ J(x0 )} độc lập tuyến tính. Vì rankA = m nên:

⋄ Nếu x0 là phương án cực biên không suy biến, tức |J(x0 )| = m, thì B =
{Aj | j ∈ J(x0 )} là cơ sở duy nhất của A tương ứng với x0 .

⋄ Nếu x0 là phương án cực biên suy biến, tức |J(x0 )| < m, thì ta bổ sung
thêm các véc tơ cột của A thuộc tập {Aj | j ∈ / J(x0 )} vào bộ véc tơ
{Aj | j ∈ J(x0 )} để nhận được bộ m véc tơ độc lập tuyến tính {Aj | j ∈ J}
với J ⊃ J(x0 ) và |J| = m. Khi đó, B̄ = {Aj | j ∈ J} là một cơ sở của ma
trận A.

Ví dụ 3.8. Xét quy hoạch tuyến tính như ở Ví dụ 3.8. Ta đã biết v 1 = (2, 1, 0)T ,
với J(v 1 ) = {1, 2}, là phương án cực biên
{ không suy biến } nên có duy nhất một
cơ sở tương ứng với nó là {A1 , A2 } = (3, 1) , (4, −1) .
T T

Phương án cực biên suy biến v 2 = (0, 0, 1)T có tập J(v 2 ) = {3} chỉ có một
phần tử (1 < m = 2) nên ta bổ sung thêm một véc tơ cột của A để nhận được
cơ sở của A tương ứng với v 2 . Dễ thấy tương ứng với v 2 có hai cơ sở là:
{
i) Cơ sở B̄ = {A1 , A3 } = (3, 1)T , (10, 1)T } ;
1
{
ii) Cơ sở B̄ = {A2 , A3 } = (4, −1)T , (10, 1)T } .
2
55

Từ đây, để đơn giản, ta xét bài toán quy hoạch tuyến tính chính tắc (LP ct )
với giả thiết thêm rằng: Bài toán (LP ct ) là không suy biến và biết trước một
phương án cực biên của bài toán này.
Giả sử ta đã biết phương án cực biên không suy biến x0 = (x01 , x02 , . . . , x0n )T
có |J(x0 )| = m. Hệ các véc tơ độc lập tuyến tính {Aj | j ∈ J(x0 )} là cơ sở duy
nhất của ma trận A tương ứng với x0 . Ta gọi:
J(x0 ) = {j | x0j > 0} là tập chỉ số cơ sở,
{1, . . . , n} \ J(x0 ) là tập chỉ số phi cơ sở,
{xj | j ∈ J(x0 )} là các biến cơ sở,
{Aj | j ∈ J(x0 )} là các véc tơ cơ sở,
{xj | j ∈
/ J(x0 )} là các biến phi cơ sở,
{Aj | j ̸∈ J(x0 )} là các véc tơ phi cơ sở.

Do {Aj |j ∈ J(x0 )} là cơ sở của ma trận A nên mỗi véc tơ cột Ak , k ∈


{1, 2, . . . , n}, được biểu diễn dưới dạng

Ak = zjk Aj , (3.10)
j∈J(x0 )

tức ∑
aij zjk = aik , i = 1, . . . , m
j∈J(x0 )

và bộ số thực zjk , j ∈ J(x0 ) được xác định duy nhất. Vì x0j = 0 với mọi
j ̸∈ J(x0 ) nên ∑
x0j Aj = b. (3.11)
j∈J(x0 )

Giá trị hàm mục tiêu tại x0 là



n ∑
f (x ) = ⟨c, x ⟩ =
0 0
x0j cj = x0j cj . (3.12)
j=1 j∈J(x0 )

Đại lượng ∑
∆k = zjk cj − ck , k ∈ {1, 2, . . . , n}, (3.13)
j∈J(x0 )

được gọi là ước lượng của biến xk .

Sau đây là điều kiện đủ để phương án cực biên x0 là phương án tối ưu của
bài toán (LP ct ).
56

Định lý 3.7. Nếu phương án cực biên x0 thỏa mãn

∆k ≤ 0 với mọi k ̸∈ J(x0 )

thì x0 là một phương án tối ưu của bài toán quy hoạch tuyến tính chính tắc
(LP ct ).

Chứng minh. Vì phương án cực biên x0 = (x01 , . . . , x0n )T có x0k = 0 với mọi
k ̸∈ J(x0 ) nên

f (x0 ) = ⟨c, x0 ⟩ = cj x0j
j∈J(x0 )



b= x0j Aj . (3.14)
j∈J(x0 )

Để chứng tỏ x0 là phương án tối ưu, với phương án chấp nhận được bất kỳ
y ∈ D, ta sẽ chứng minh rằng

f (x) = ⟨c, x0 ⟩ ≤ f (y) = ⟨c, y⟩.

Thật vậy, vì y ∈ D nên


n ∑ ∑
b= yj A j = yj Aj + yk Ak
j=1 j∈J(x0 ) k̸∈J(x0 )
(3.10) ∑ ∑ ( ∑ )
= yj A j + yk zjk Aj
j∈J(x0 ) k̸∈J(x0 ) j∈J(x0 )
∑ ( ∑ )
= yj + yk zjk Aj . (3.15)
j∈J(x0 ) k̸∈J(x0 )

Do phép biểu diễn b qua cơ sở là duy nhất nên từ (3.14) và (3.15) ta có



x0j = yj + yk zjk , ∀j ∈ J(x0 ).
k̸∈J(x0 )

Suy ra

yj = x0j − yk zjk , ∀j ∈ J(x0 ) (3.16)
k̸∈J(x0 )
57


∑ ∑
f (y) = ⟨c, y⟩ = cj yj + ck yk
j∈J(x0 ) k̸∈J(x0 )
(3.16) ∑ ( ∑ ) ∑
= cj x0j − yk zjk + ck yk
j∈J(x0 ) k̸∈J(x0 ) k̸∈J(x0 )
∑ ∑ ( ∑ )
= cj x0j − cj zjk − ck yk
j∈J(x0 ) k̸∈J(x0 ) j∈J(x0 )
(3.13) ∑
= f (x0 ) − ∆k yk . (3.17)
k̸∈J(x0 )

Theo giả thiết, ∆k ≤ 0 với mọi k ̸∈ J(x0 ) và yk ≥ 0 với mọi k = 1, . . . , n nên



k̸∈J(x0 ) ∆k yk ≤ 0. Do đó f (y) ≥ f (x ). Ta có điều phải chứng minh. 
0

Hệ quả 3.4. Giả sử x0 là phương án cực biên tối ưu của bài toán quy hoạch
tuyến tính (LP ct ). Nếu ∆k < 0 với mọi k ̸∈ J(x0 ) thì x0 là phương án tối ưu
duy nhất. Ngược lại, nếu tồn tại k ̸∈ J(x0 ) sao cho ∆k = 0 thì x0 không phải là
phương án tối ưu duy nhất.
Chứng minh. Giả sử x0 là phương án tối ưu thỏa mãn ∆k < 0 với mọi k ̸∈ J(x0 ).
Khi đó x0 là phương án tối ưu duy nhất của bài toán (LP ct ). Thật vậy, giả thiết
phản chứng rằng x0 không phải phương án tối ưu duy nhất, tức bài toán (LP ct )
có thêm ít nhất một phương án tối ưu x1 ̸= x0 . Ta có
f (x1 ) = f (x0 ). (3.18)
Theo (3.17) trong chứng minh Định lý 3.7, vì x1 là phương án chấp nhận được
nên ∑
f (x1 ) = f (x0 ) − ∆k x1k . (3.19)
k̸∈J(x0 )

Kết hợp (3.18) và (3.19) suy ra



∆k x1k = 0.
k̸∈J(x0 )

Do ∆k < 0 và x1k ≥ 0 với mọi k ̸∈ J(x0 ) nên phải có x1k = 0 với mọi k ̸∈ J(x0 ).
Vì x0 và x1 đều là các phương án chấp nhận được nên

n ∑
n ∑ ∑
x0j Aj = x1j Aj hay x0j Aj = x1j Aj .
j=1 j=1 j∈J(x0 ) j∈J(x0 )

Do {Aj , j ∈ J(x0 )} là cơ sở nên phải có x0j = x1j với mọi j ∈ J(x0 ). Vậy, x1j = x0j
với mọi j = 1, . . . , n hay x0 = x1 . Điều ngược lại là hiển nhiên. 
58

Định lý 3.8. Cho x0 là một phương án cực biên của bài toán quy hoạch tuyến
tính chính tắc (LP ct ). Khi đó,

i) Nếu tồn tại k ∈


/ J(x0 ) sao cho

∆k > 0 và zjk ≤ 0 ∀j ∈ J(x0 )

thì hàm mục tiêu giảm vô hạn trên tập chấp nhận được và bài toán không
có nghiệm tối ưu;
ii) Nếu tồn tại k ∈
/ J(x0 ) sao cho

∆k > 0 và ∃j ∈ J(x0 ) sao cho zjk > 0 (3.20)

thì ta có thể chuyển được tới phương án cực biên x1 tốt hơn phương án cực
biên x0 , nghĩa là ⟨c, x1 ⟩ < ⟨c, x0 ⟩.

Chứng minh. Giả sử tồn tại chỉ số k ∈


/ J(x0 ) sao cho ∆k > 0. Ta có

n ∑
x0j Aj = x0j Aj = b (3.21)
j=1 j∈J(x0 )

và ∑ ∑
zjk Aj = Ak ⇒ θzjk Aj = θAk với θ > 0. (3.22)
j∈J(x0 ) j∈J(x0 )

Trừ (3.21) cho (3.22) và chuyển vế θAk , ta được



(x0j − θzjk )Aj + θAk = b. (3.23)
j∈J(x0 )

Đặt z k = (z1k , . . . , znk )T , với



 − zjk ,
 ∀j ∈ J(x0 )
k
zj = 0, j ̸∈ J(x0 ) và j ̸= k (3.24)


1, j=k


x̄(θ) = x0 + θz k .
Khi đó (3.23) có thể viết được dưới dạng

Ax̄(θ) = b. (3.25)

Ta xét hai trường hợp:


59

• Trường hợp 1: Có zjk ≤ 0 với mọi j ∈ J(x0 ). Trong trường hợp này:
x̄(θ) = x0 + θz k ≥ 0, ∀θ ≥ 0. (3.26)
Hệ thức (3.25) và (3.26) chứng tỏ tất cả các điểm x̄(θ), với θ ≥ 0, nằm trên tia
xuất phát từ x0 theo hướng z k đều thuộc tập chấp nhận được. Do ∆k > 0, tính
toán trực tiếp ta có

f (x̄(θ)) = (x0j − θzjk )cj + θck
j∈J(x0 )
∑ ( ∑ )
= x0j cj −θ zjk cj − ck
j∈J(x0 ) j∈J(x0 )

= ⟨c, x0 ⟩ − θ∆k = f (x0 ) − θ∆k → −∞ khi θ → +∞,


tức giá trị hàm mục tiêu giảm vô hạn trên tập phương án. Bài toán không có
nghiệm tối ưu.
• Trường hợp 2: Tồn tại zjk > 0 với ít nhất một j ∈ J(x0 ). Rõ ràng rằng, trong
trường hợp này ta không có x̄(θ) ≥ 0 với mọi θ > 0. Tuy nhiên, ta vẫn có hệ
thức (3.25) và ∆k > 0 nên
f (x̄(θ)) = f (x0 ) − θ∆k < f (x0 ) với mỗi θ > 0. (3.27)
Vấn đề là cần chọn số θ0 > 0 để x̄(θ0 ) ≥ 0, tức x̄(θ0 ) là phương án chấp nhận
được, và hơn nữa, nó còn phải là phương án cực biên kề với x0 theo hướng z k .
Đặt
{ 0 }
xj x0
θ0 = min zjk > 0, j ∈ J(x ) = r với r ∈ J(x0 ).
0
(3.28)
zjk zrk
Vì x̄(θ) = x0 + θz k nên x̄(θ) ≥ 0 với 0 ≤ θ ≤ θ0 . Kết hợp sự kiện này với
(3.25) ta có các véc tơ x̄(θ) với 0 ≤ θ ≤ θ0 là các phương án chấp nhận được của
bài toán (LP ct ). Cụ thể, chúng thuộc cạnh hữu hạn của tập chấp nhận được
xuất phát từ x0 theo hướng z k . Đặt x1 := x̄(θ0 ). Các tọa độ của x1 được xác
định bởi  0
 xj − θ0 zjk ,
 ∀j ∈ J(x0 )
x1j = 0, ∀j ̸∈ J(x0 ) và j ̸= k


θ0 , j = k.
Kết hợp công thức trên và (3.28) ta có
x1r = x0r − θ0 zrk = 0 và x1k = θ0 > 0.
Ký hiệu J(x1 ) = {j ∈ {1, . . . , n} | x1j > 0}. Dễ thấy J(x1 ) = (J(x0 ) \ {r}) ∪ {k}
và |J(x1 )| = |J(x0 )| = m. Có thể kiểm tra được hệ {Aj | j ∈ J(x1 )} độc lập
tuyến tính. Theo Định lý 3.6, ta có x1 là phương án cực biên với bộ chỉ số cơ
sở J(x1 ). 
60

Chú ý 3.2.
i) Nếu tồn tại chỉ số k ̸∈ J(x0 ) sao cho
∆k > 0 và ∃j ∈ J(x0 ) sao cho zjk > 0
thì ta có thể chuyển được đến phương án cực biên mới x1 tốt hơn x0 . Ta có

⟨c, x1 ⟩ = ⟨c, x0 ⟩ − θ0 ∆k < ⟨c, x0 ⟩



J(x1 ) = (J(x0 ) \ {r}) ∪ {k},
trong đó, chỉ số r được xác định bởi
{ 0 }
xj x0r
θ0 = min zjs > 0, j ∈ J(x ) =
0
với r ∈ J(x0 ).
zjs zrs
Khi đó:
⋄ Biến xk (biến phi cơ sở đối với x0 ) trở thành biến cơ sở đối với x1 ;
⋄ Biến xr (biến cơ sở đối với x0 ) trở thành biến phi cơ sở đối với x1 .
⋄ Hai phương án cực biên x0 và x1 kề nhau nếu cơ sở của chúng chỉ sai khác
nhau đúng một véc tơ.
ii) Nếu có nhiều chỉ số k ̸∈ J(x0 ) cùng thỏa mãn
∆k > 0 và ∃j ∈ J(x0 ) sao cho zjk > 0
thì ta chọn chỉ số k = s với s là chỉ số thỏa mãn
∆s = max{∆k | ∆k > 0}.
Ta gọi s là chỉ số của véc tơ đưa vào cơ sở mới.
Khi đó, đưa véc tơ As vào cơ sở và đưa Ar ra khỏi cơ sở, với chỉ số r (chỉ số
của véc tơ đưa ra khỏi cơ sở cũ) được xác định bởi
{ 0 }
xj x0
θ0 = min zjs > 0, j ∈ J(x ) = r với r ∈ J(x0 )
0
(3.29)
zjs zrs
và nhận được phương án cực biên mới x1 = (x11 , x12 , . . . , x1n )T với


 x0r

 x0
− zjs , ∀j ∈ J(x0 ) (trong đó x1r = 0)


j
z rs
x1j = 0, ∀j ̸∈ J(x0 ) và j ̸= s (3.30)



 x0r

 , j = s.
zrs
61

3.4.3 Thuật toán đơn hình


giải bài toán qui hoạch tuyến tính chính tắc

Xét bài toán quy hoạch tuyến tính dạng chính tắc

min f (x) = ⟨c, x⟩} v.đ.k. x ∈ D, (LP ct )

trong đó c = (c1 , c2 , . . . , cn )T ∈ Rn \ {0},

D = {xinRn | Ax = b, x ≥ 0},

A là ma trận cấp m × n và véc tơ b = (b1 , . . . , bm )T ≥ 0 với các giả thiết:

i) rankA = m,

ii) m < n;

iii) Bài toán quy hoạch tuyến tính (LP ct ) không suy biến;

iv) Biết trước một phương án cực biên x0 .

Cho phương án cực biên x0 ∈ D. Khi đó:

• Nếu ∆k ≤ 0 ∀ k ̸∈ J(x0 ) thì x0 ∈ Argmin(LP ct ).

• Nếu tồn tại k ∈


/ J(x0 ) sao cho

∆k > 0 và zjk ≤ 0 ∀j ∈ J(x0 )

thì Argmin(LP ct ) = ∅ và giá trị tối ưu là −∞.


62

• Nếu tồn tại chỉ số k ̸∈ J(x0 ) sao cho


∆k > 0 và ∃j ∈ J(x0 ) sao cho zjk > 0
thì ta có thể chuyển được đến phương án cực biên mới x1 tốt hơn x0 . Ta có

⟨c, x1 ⟩ = ⟨c, x0 ⟩ − θ0 ∆k < ⟨c, x0 ⟩



J(x1 ) = (J(x0 ) \ {r}) ∪ {k},
trong đó, chỉ số r được xác định bởi
{ 0 }
xj x0
θ0 = min zjs > 0, j ∈ J(x ) = r với r ∈ J(x0 ).
0
zjs zrs
Khi đó:
⋄ Biến xk (biến phi cơ sở đối với x0 ) trở thành biến cơ sở đối với x1 ;
⋄ Biến xr (biến cơ sở đối với x0 ) trở thành biến phi cơ sở đối với x1 .
⋄ Hai phương án cực biên x0 và x1 kề nhau nếu cơ sở của chúng chỉ sai khác
nhau đúng một véc tơ.
• Nếu có nhiều chỉ số k ̸∈ J(x0 ) cùng thỏa mãn
∆k > 0 và ∃j ∈ J(x0 ) sao cho zjk > 0
thì ta chọn chỉ số k = s với s là chỉ số thỏa mãn
∆s = max{∆k | ∆k > 0}.
Ta gọi s là chỉ số của véc tơ đưa vào cơ sở mới.

Khi đó, đưa véc tơ As vào cơ sở và đưa Ar ra khỏi cơ sở, với chỉ số r (chỉ số
của véc tơ đưa ra khỏi cơ sở cũ) được xác định bởi
{ 0 }
xj x0
θ0 = min zjs > 0, j ∈ J(x ) = r với r ∈ J(x0 )
0
(3.29)
zjs zrs
và nhận được phương án cực biên mới x1 = (x11 , x12 , . . . , x1n )T với


 x0r

 x0
− zjs , ∀j ∈ J(x0 ) (trong đó x1r = 0)


j
z rs
x1j = 0, ∀j ̸∈ J(x0 ) và j ̸= s (3.30)



 x0r

 , j = s.
zrs
63

Thuật toán 3.2.


Bước khởi tạo. Xuất phát từ một pacbn x0 và cơ sở {Aj , j ∈ J(x0 )}.
Bước 1. Tính giá trị hàm mục tiêu

f (x0 ) = cj x0j .
j∈J(x0 )

Bước 2. Với mỗi k ̸∈ J(x0 ), xác định các số zjk bằng việc giải hệ

zjk Aj = Ak
j∈J(x0 )

và tính các ước lượng ∑


∆k = zjk cj − ck .
j∈J(x0 )

Bước 3. (Kiểm tra điều kiện tối ưu).


If ∆k ≤ 0 ∀k ∈/ J(x0 ) Then STOP (x0 là nghiệm tối ưu)
Bước 4. (Kiểm tra bài toán không có lời giải)
If ∃k ∈/ J(x0 ) sao cho ∆k > 0 và zjk ≤ 0∀j ∈ J(x0 )

Then STOP (Argmin(LP ct ) = ∅ và fopt = −∞)


Bước 5. (Xây dựng phương án cực biên mới)

⋄ Tìm véc tơ As để đưa vào cơ sở mới, trong đó chỉ số s thỏa mãn

∆s = max{∆k | ∆k > 0}.

⋄ Tìm véc tơ Ar để đưa ra khỏi cơ sở cũ với chỉ số r thỏa mãn


{ x0 } x0
j
θ0 = min zjs > 0 = r .
zjs zrs

⋄ Xây dựng phương án cực biên mới là x1 theo công thức (3.30) với tập chỉ
số cơ sở mới là J(x1 ) = (J(x0 ) \ {r}) ∪ {s}.

⋄ Đặt x0 := x1 và quay lại Bước 1.


64

3.4.4 Thuật toán đơn hình dạng bảng


a. Bảng đơn hình
Giả sử x0 = (x01 , x02 , . . . , x0n )T là phương án cực biên tương ứng với bộ chỉ số
cơ sở JB = J(x0 ) = {j1 , . . . , jm } và cơ sở đơn vị B = {Aj1 , . . . , Ajm }.

Bảng 3.1
Hệ số Cơ sở Phương c1 ... ck ... cn
CB B án A1 ... Ak ... An θ
cj1 Aj1 x0j1 zj1 1 ... z j1 k ... zj1 n θj1
.. .. .. .. .. .. ..
. . . . . . .
cj Aj x0j zj1 ... zjk ... zjn θj
.. .. .. .. .. .. ..
. . . . . . .
cjm Ajm x0jm zjm 1 ... zjm k ... zjm n θjm

f (x0 ) ∆1 ... ∆k ... ∆n

Bảng đơn hình gồm n + 4 cột và m + 2 dòng.


Cột 1. (Hệ số CB ) Ghi giá trị hệ số hàm mục tiêu tương ứng với biến cơ sở.
Cột 2. (Cơ sở B) Ghi tên các véc tơ cơ sở. Chú ý: tên các véc tơ này phải được
ghi theo thứ tự Aj1 , . . . , Ajm sao cho ma trận B = (Aj1 , . . . , Ajm ) ≡ Im .
Cột 3. (Pacb) Ghi giá trị của các biến cơ sở của phương án cực biên đang xét.
n cột tiếp theo. Cột thứ 3 + k ứng với tên véc tơ Ak , k = 1, . . . , n. Phía trên
tên mỗi cột Ak ghi giá trị ck tương ứng. Trong cột Ak , ghi giá trị các hệ số
zjk , j ∈ JB là nghiệm của hệ

zjk Aj = Ak , k = 1, . . . , n.
j∈JB

Cột cuối cùng. Dành để ghi tỷ số θj , j ∈ JB (xem Bước 3 − Thuật toán 3.3).
Dòng cuối cùng. Tại vị trí dưới cột thứ ba, ghi giá trị

f (x0 ) = cj x0j .
j∈JB

Tại vị trí dưới cột ứng với véc tơ Ak , k ∈ {1, . . . , n}, ghi ước lượng

∆k = zjk cj − ck .
j∈JB

Ta có ∆j = 0 với mọi j ∈ JB .
65

b. Thuật toán đơn hình dạng bảng

Thuật toán 3.3.


Bước 0. (Chuẩn bị) Xây dựng bảng đơn hình xuất phát tương ứng với pacb x0 .

Bước 1. (Kiểm tra điều kiện tối ưu) Xét dòng cuối của bảng.
If ∆k ≤ 0 với mọi k = 1, . . . , n Then Dừng thuật toán
(Nghiệm tối ưu là phương án cực biên tương ứng với bảng này)

Bước 2. (Kiểm tra bài toán không có lời giải)


If Tồn tại k ∈
/ JB sao cho ∆k > 0 và zjk ≤ 0 với mọi j ∈ JB
Then Dừng thuật toán (Bài toán không có lời giải, giá trị tối ưu là −∞)

Bước 3. Thực hiện:

⋄ Tìm cột quay. Xác định véc tơ As để đưa vào cơ sở mới với chỉ số s thỏa
mãn ∆s = max{∆k | ∆k > 0}. Cột tương ứng với véc tơ As được gọi là
cột quay.

⋄ Tìm dòng quay. Tính các θj , j ∈ JB , như sau:

 0

 xj nếu zjs > 0, j ∈ JB
θj = zjs

 + ∞ nếu z ≤ 0, j ∈ J
js B

và xác định

θr = min {θj | j ∈ JB }.

Dòng r được gọi là dòng quay. Phần tử zrs nằm trên giao của dòng quay và
cột quay được gọi là phần tử chính của phép quay. Các phần tử zjs (j ̸= r)
được gọi là các phần tử quay.
66

Bước 4. (Chuyển bảng mới tương ứng với phương án cực biên mới) Thực hiện:

⋄ Trong cột thứ nhất (cột hệ số CB ) thay giá trị cr bởi cs . Trong cột thứ hai
(cột tên các véc tơ cơ sở), thay tên Ar bởi As .

⋄ Chia các phần tử của dòng quay cho phần tử chính, ta được dòng mới (có
số 1 tại vị trí của zrs cũ) gọi là dòng chính, tức ta có quy tắc là

Dòng quay (cũ)


Dòng chính (mới) := .
phần tử chính

⋄ Biến đổi mỗi dòng còn lại theo quy tắc

Dòng mới := ( - Phần tử quay t. ứng) × Dòng chính + Dòng cũ t. ứng.

Ta được số 0 ở mọi vị trí còn lại của cột quay cũ (sau phép quay thì trong
bảng mới ta có ∆s = 0 vì lúc này s là chỉ số cơ sở của phương án cực biên
mới và As trở thành véc tơ đơn vị cơ sở).

⋄ Quay lại Bước 1 với bảng mới.


67

3.5 Tìm phương án cực biên xuất phát và cơ sở xuất


phát
3.5.1 Trường hợp bài toán có dạng chuẩn tắc
Xét bài toán quy hoạch tuyến tính dạng chuẩn tắc

min f (x) = ⟨c, x⟩ v.đ.k x ∈ D, (P0 )

trong đó c ∈ Rn \ {0} và D = {x ∈ Rn | Ax ≤ b, x ≥ 0}, véc tơ b ∈ Rm + và


A là ma trận cấp m × n.
Bài toán quy hoạch tuyến tính chính tắc tương ứng với bài toán (P0 ) là

min f¯(x) = ⟨d, x⟩ v.đ.k x ∈ D̄, (P1 )

trong đó d = (c, 0) = (c1 , . . . , cn , 0, ..., 0)T ∈ Rn+m và

D̄ = {v = (x, u) ∈ Rn+m | Ax + u = b, x, u ≥ 0}.

Dễ thấy, v 0 = (0, b) là phương án cực biên không suy biến của bài toán quy
hoạch tuyến tính dạng chính tắc (P1 ) tương ứng với cơ sở đơn vị.

3.5.2 Trường hợp bài toán có dạng chính tắc


Xét bài toán quy hoạch tuyến tính dạng chính tắc

min {⟨c, x⟩ | x ∈ D}, (LP ct )

trong đó tập lồi đa diện D ⊂ Rn xác định bởi D = {x ∈ Rn | Ax = b, x ≥ 0},


với A là ma trận cấp m × n, b ∈ Rm và b ≥ 0.

a. Trường hợp đặc biệt


Nếu mỗi ràng buộc chính đều có một biến số với hệ số bằng 1 đồng thời biến
số này không có mặt trong các phương trình khác (gọi là biến số cô lập với hệ
số bằng 1) thì ta có ngay một phương án cực biên với cơ sở đơn vị. Chẳng hạn,
tập chấp nhận được của quy hoạch tuyến tính đang xét là tập nghiệm của hệ
x1 + a1 m+1 xm+1 + a1 m+2 xm+2 + · · · + a1n xn = b1
x2 + a2 m+1 xm+1 + a2 m+2 xm+2 + · · · + a2n xn = b2
.........
xm + am m+1 xm+1 + am m+2 xm+2 + · · · + amn xn = bm
x1 , x2 , . . . , xn ≥ 0,
trong đó bi ≥ 0 với mọi i = 1, . . . , m. Trong trường hợp may mắn này, ta có ngay
một phương án cực biên với cơ sở đơn vị, cụ thể x0 = (b1 , . . . , bm , 0, 0, . . . , 0)T
ứng với cơ sở {A1 , A2 , . . . , Am } = Im ..
68

b. Trường hợp tổng quát


Đưa thêm u = (u1 , . . . , um )T ≥ 0 và xét tập lồi đa diện
D′ = {(x, u) ∈ Rn+m | Ax + u = b, (x, u) ≥ 0}.
Mệnh đề 3.1. Điểm x0 là phương án cực biên của D khi và chỉ khi (x0 , 0) là
phương án cực biên của D′ .

• Xét bài toán quy hoạch tuyến tính phụ


min g(x, u) = u1 + u2 + · · · + um (LP∗ct )
v.đ.k. (x, u) ∈ D′ .

- Các biến u1 , . . . , um được gọi là các biến giả;


- Các véc tơ cột của ma trận ràng buộc tương ứng với các biến giả được gọi
là các véc tơ giả.

Nhận xét 3.3.

i) Dễ thấy (x, u) = (0, b) ∈ D′ nên D′ ̸= ∅. Hàm mục tiêu g(x, u) ≥ 0 với


mọi (x, u) ∈ D′ ⊂ Rn+m . Vì vậy Argmin(LP∗ct ) ̸= ∅ ;
ii) Dễ thấy, (0, b) là phương án cực biên không suy biến tương ứng với cơ sở
đơn vị {e1 , . . . , em }. Vì vậy có thể áp dụng ngay Thuật toán đơn hình để
giải bài toán (LP∗ct ).

Định lý 3.9. Giả sử (x0 , u0 ) là phương án cực biên tối ưu của bài toán phụ
(LP∗ct ). Khi đó,
i) Nếu g(x0 , u0 ) > 0 thì D = ∅.
ii) Nếu g(x0 , u0 ) = 0 thì x0 là phương án cực biên của bài toán ban đầu
(LP ct ).
Chứng minh.

i) Giả sử phản chứng rằng giá trị tối ưu của bài toán phụ là g(x0 , u0 ) > 0
nhưng D ̸= ∅, tức
∃ x′ ∈ D.

Theo định nghĩa, (x′ , 0) ∈ D′ . Giá trị hàm mục tiêu của bài toán phụ
(LP∗ct ) tại (x′ , 0) là g(x′ , 0) = 0 nhỏ hơn giá trị tối ưu. Điều mâu thuẫn
này chứng tỏ D = ∅.

ii) Do u0 ≥ 0 nên g(x0 , u0 ) = 0 khi và chỉ khi u0 = 0. Vậy trong trường hợp
này, phương án cực biên tối ưu của bài toán phụ có dạng (x0 , 0). Theo
Mệnh đề 3.1, ta có ngay điều phải chứng minh. 
69

Thuật toán đơn hình hai pha


Pha 1. (Tìm phương án cực biên xuất phát cho thuật toán đơn hình giải (LP ct ))
Giải bài toán quy hoạch tuyến tính phụ (LP∗ct )

min {g(x, u) | Ax + u = b, (x, u) ≥ 0},

nhận được phương án cực biên tối ưu (x0 , u0 ).


If g(x0 , u0 ) > 0 Then D = ∅, Dừng thuật toán
Else (x0 là phương án cực biên của bài toán (LP ct )). Chuyển sang Pha 2.
Pha 2. Giải bài toán (LP ct ) đang xét bằng phương pháp đơn hình xuất phát
từ phương án cực biên x0 với chú ý rằng bảng đơn hình đầu tiên của Pha 2 là
bảng đơn hình cuối cùng ở Pha 1 nhưng với một số sửa đổi như sau:

⋄ Xóa tất cả các cột tương ứng với các biến giả.
⋄ Thay cột CB bởi hệ số mục tiêu cơ sở tương ứng của bài toán gốc.
⋄ Thay các hệ số mục tiêu của bài toán phụ ở dòng 1 bằng hệ số mục tiêu
của bài toán gốc.
⋄ Nếu trong cơ sở tương ứng với phương án tối ưu của bài toán phụ (LP∗ct )
không có véc tơ giả thì cơ sở ứng với phương án này cũng chính là cơ sở
tương ứng với x0 . Để có bảng đơn hình xuất phát cho bài toán ban đầu,
ta chỉ cần tính lại giá trị hàm mục tiêu tại x0 và tính lại các ước lượng
theo công thức
∑ ∑
f (x0 ) = cj x0j và ∆k = zjk cj − ck .
j∈J(x0 ) j∈J(x0 )

Xem Ví dụ 3.17.
⋄ Nếu trong cơ sở của phương án cực biên tối ưu của bài toán phụ (LP∗ct ) có
ít nhất một véc tơ giả thì ta nhận được
{ một phương án cực biên } suy biến

của bài toán ban đầu, tức |J(x0 )| = j ∈ {1, . . . , n}| x0j > 0 < m. Khi
đó, để đẩy hết biến giả ra khỏi cơ sở, ta thực hiện thêm một vài bước lặp
đơn hình nữa như sau: chọn cột quay là cột ứng với véc tơ phi cơ sở Ak
với k ≤ n (tức Ak không phải véc tơ giả) mà nó có phần tử khác 0 ở dòng
tương ứng với véc tơ giả và dòng này được chọn là dòng quay. Chú ý, phần
tử chính lúc này có thể dương hoặc âm (khác 0). Do giả thiết rankA = m
nên nếu có biến giả trong cơ sở thì chắc chắn sẽ tìm được cột quay như
thế. Sau khi bổ sung véc tơ để nhận được cơ sở B = {Aj , j ∈ J} với
J ⊃ J(x0 ), ta bỏ các cột tương ứng với biến giả rồi tiếp tục thuật toán
(xem Ví dụ 3.18).
70

Chú ý 3.3.

i) Khi xây dựng bài toán phụ, ta chỉ cộng thêm biến giả vào những phương
trình cần thiết để tạo ra ma trận m cột là các véc tơ đơn vị khác nhau.
Hàm mục tiêu là tổng các biến giả.

ii) Khi một véc tơ giả bị loại ra khỏi cơ sở thì cột tương ứng với nó không
cần tính ở các bước tiếp theo.

iii) Để tiện trong việc tính toán, ta đặt tên biến giả thứ i là xgn+i thay vì ui
và gọi véc tơ tương ứng với biến giả này là véc tơ giả Agn+i .

Ví dụ 3.9. Giải bài toán sau bằng thuật toán đơn hình hai pha:

min f (x) = x1 − 2x2 + x3


v.đ.k. x1 + x2 + x3 = 1
x1 + 2x2 + 3x3 = 6
x1 , x2 , x3 ≥ 0.

Giải. Quá trình tính toán như sau:

Pha 1. Giải bài toán quy hoạch tuyến tính phụ:

min f p (x) = xg4 + xg5


v.đ.k. x1 + x2 + x3 + xg4 = 1
g
x1 + 2x2 + 3x3 + x5 = 6
x1 , x2 , x3 , x4 , xg5 ≥ 0.
g

Dễ thấy x0 = (0, 0, 0, 1, 6)T là một phương án cực biên của bài toán phụ
tương ứng với cơ sở đơn vị {Ag4 , Ag5 } = {e1 , e2 }. Xuất phát từ x0 , kết quả tính
toán giải bài toán quy hoạch tuyến tính phụ theo thuật toán đơn hình được ghi
ở Bảng 3.9.
p
Bài toán phụ có giá trị tối ưu là fmin = 3 > 0. Vì vậy, theo Định lý 3.9, bài
toán quy hoạch tuyến tính ban đầu có tập chấp nhận được bằng rỗng.

Bảng 3.9
71

Hệ số Cơ sở Phương 0 0 0 1 1 θ
CB B án A1 A2 A3 Ag4 Ag5

1 Ag4 1 1 1 [1] 1 0 1

1 Ag5 6 1 2 3 0 1 2

Bảng 1 7 2 3 4 0 0

0 A3 1 1 1 1 1 0

1 Ag5 3 −2 −1 0 −3 1

Bảng 2 3 −2 −1 0 −4 0

Ví dụ 3.10. Giải bài toán sau bằng thuật toán đơn hình hai pha:
min f (x) = 2x1 + 3x2
v.đ.k. 2x1 − 4x2 ≥2
4x1 + 3x2 ≤ 19
3x1 + 2x2 = 14
x1 , x2 ≥ 0.
Giải. Trước hết, ta đưa bài toán này về dạng chính tắc sau:
min f (x) = 2x1 +3x2
v.đ.k. 2x1 −4x2 − x3 =2
4x1 +3x2 + x4 = 19
3x1 +2x2 = 14
x1 , x2 , x3 , x4 ≥ 0.
Pha 1. Để ý rằng, ràng buộc chính thứ hai của bài toán dạng chính tắc có
biến x4 với hệ số bằng 1 và biến x4 không xuất hiện trong hai ràng buộc chính
còn lại nên ta chỉ cần thêm hai biến giả xg5 và xg6 trong bài toán phụ. Sau đây
là bài toán phụ tương ứng với bài toán đang xét
min f p (x) = xg5 + xg6
v.đ.k. 2x1 − 4x2 − x3 + xg5 = 2
4x1 + 3x2 + x4 = 19
g
3x1 + 2x2 + x6 = 14
x1 , x2 , x3 , x4 , xg5 , xg6 ≥ 0.
72

Bảng 3.10

Hệ số Cơ sở Phương 0 0 0 0 1 1 θ
CB B án A1 A2 A3 A4 Ag5 Ag6

1 Ag5 2 [2] −4 −1 0 1 0 1
19
0 A4 19 4 3 0 1 0 0 4

1 Ag6 14 3 2 0 0 0 1 14
3

Bảng 1 16 5 −2 −1 0 0 0

0 A1 1 1 −2 − 21 0 0 ∞
15
0 A4 15 0 [11] 2 1 0 11

1 Ag6 11 0 8 3
2
0 1 11
8

3
Bảng 2 11 0 8 2
0 0

0 A1 41
11
1 0 − 22
3 2
11
0 ∞
15 2 1 15
0 A2 11
0 1 11 11
0 2

1 Ag6 1
11
0 0 1
[ 22 ] − 11
8
1 2

Bảng 3 1
11
0 0 1
22
− 11
8
0

0 A1 4 1 0 0 −2

0 A2 1 0 1 0 3

0 A3 2 0 0 1 −16

Bảng 4 0 0 0 0 0
73

Quá trình tính toán giải bài toán phụ theo Pha 1, xuất phát từ phương án
cực biên x0 = (0, 0, 0, 19, 2, 14)T tương ứng với cơ sở {Ag5 , A4 , Ag6 }, được ghi
ở Bảng 3.10.
p
Bài toán phụ có giá trị tối ưu fmin = 0. Không có các biến giả trong cơ sở
của phương án cực biên tối ưu x = (4, 1, 2, 0)T . Ta chuyển sang Pha 2.
0

Pha 2. Xuất phát từ phương án cực biên không suy biến x0 tương ứng với cơ
sở đơn vị {A1 , A2 , A3 }, quá trình tính được trình bày ở Bảng 3.11.
Chú ý rằng bảng xuất phát ở Pha 2 (bảng đơn hình đầu tiên của Bảng 3.11)
chỉ khác bảng cuối cùng của Pha 1 (bảng đơn hình cuối cùng của Bảng 3.10) ở
cột hệ số hàm mục tiêu, dòng 1 (được thay bằng hệ số hàm mục tiêu của bài
toán ban đầu) và dòng ước lượng (dòng cuối cùng).
Bảng đơn hình cuối cùng của Bảng 3.11 tương ứng với phương án cực biên
tối ưu duy nhất x∗ = ( 14
3
, 0, 22
3
, 13 )T của bài toán ban đầu vì ước lượng tương
ứng với biến phi cơ sở duy nhất ∆2 = − 53 < 0.

Bảng 3.11
Hệ số Cơ sở Phương 2 3 0 0 θ
CB B án A1 A2 A3 A4

2 A1 4 1 0 0 −2 ∞
1
3 A2 1 0 1 0 [3] 3

0 A3 2 0 0 1 −16 ∞

Bảng 1 11 0 0 0 5

14 2
2 A1 3
1 3
0 0
1 1
0 A4 3
0 3
0 1
22 16
0 A3 3
0 3
1 0

Bảng 2 28
3
0 − 53 0 0
74

Ví dụ 3.11. (Bảng cuối của Pha 1 còn véc tơ giả trong cơ sở) Giải bài toán
quy hoạch tuyến tính sau bằng thuật toán đơn hình hai pha:
1
min f (x) = 2x1 + 4x2 + x3 − 3x4
2
v.đ.k. 2x1 + 2x2 + 3x3 + 3x4 + x5 = 50
4x1 + 8x2 + 2x3 + 3x4 = 80
4x1 + 4x2 + x3 + 2x4 = 40
x1 , x2 , x3 , x4 , x5 ≥ 0.

Giải.
Pha 1. Bài toán phụ tương ứng với bài toán này là:
min f p (x) = xg6 + xg7
v.đ.k. 2x1 + 2x2 + 3x3 + 3x4 + x5 = 50
g
4x1 + 8x2 + 2x3 + 3x4 + x6 = 80
g
4x1 + 4x2 + x3 + 2x4 + x7 = 40
x1 , x2 , x3 , x4 , x5 , x6 , x7 ≥ 0.
g g

Quá trình tính toán giải bài toán phụ xuất phát từ phương án cực biên
(0, 0, 0, 0, 50, 80, 40)T
được trình bày ở Bảng 3.12. Sau một bước biến đổi đơn hình, ta nhận được
phương án tối ưu (0, 10, 0, 0, 30, 0, 0)T nhưng trong cơ sở của phương án này
còn véc tơ giả Ag6 (bảng thứ hai). Để loại véc tơ giả Ag6 ra khỏi cơ sở, ta đưa véc
tơ phi cơ sở A1 vào cơ sở (vì z61 = −4 ̸= 0) và thực hiện một bước biến đổi đơn
hình chuyển sang bảng cuối cùng của Bảng 3.12. Bảng cuối cùng này không còn
véc tơ giả trong cơ sở của phương án cực biên tương ứng vì vậy ta chuyển sang
Pha 2.
Pha 2. Trong bảng cuối cùng của Pha 1, ta loại bỏ cột ứng với véc tơ giả
Ag6 . Thay cột hệ số CB , thay dòng đầu tiên bởi các hệ số mục tiêu của bài
toán gốc, tính lại các ước lượng, ta nhận được bảng xuất phát của Pha 2. Sau
hai bước biến đổi đơn hình, ta nhận được phương án cực biên suy biến tối ưu
x∗ = (0, 7, 12, 0, 0)T và giá trị tối ưu fmin = 34 (xem bảng cuối cùng của
Bảng 3.13).
Ta để ý rằng, bảng đơn hình thứ nhất của Bảng 3.13 tương ứng với phương
án cực biên suy biến (0, 10, 0, 0, 30)T có cơ sở là {A5 , A1 , A2 } và giá trị
hàm mục tiêu tại đây bằng 40. Ta chọn véc tơ A1 đưa ra cơ sở tương ứng với
θ1 = min{15, 0, 40} = 0 nên bảng đơn hình thứ hai vẫn tương ứng với phương
án này nhưng với cơ sở thứ hai của nó là {A5 , A4 , A2 }, còn giá trị hàm mục tiêu
hiển nhiên là không đổi.
75

Bảng 3.12

Hệ số Cơ sở Phương 0 0 0 0 0 1 1 θ
CB B án A1 A2 A3 A4 A5 Ag6 Ag7

0 A5 50 2 2 3 3 1 0 0 25

1 Ag6 80 4 8 2 3 0 1 0 10

1 Ag7 40 4 [4] 1 2 0 0 1 10

Bảng 1 120 8 12 3 5 0 0 0

5
0 A5 30 0 0 2
2 1 0

1 Ag6 0 [−4] 0 0 -1 0 1
1 1
0 A2 10 1 1 4 2
0 0

Bảng 2 0 -4 0 0 -1 0 0

5
0 A5 30 0 0 2
2 1
1
0 A1 0 1 0 0 4
0
1 1
0 A2 10 0 1 4 4
0

Bảng 3 0 0 0 0 0 0
76

Bảng 3.13

Hệ số Cơ sở Phương 2 4 1/2 -3 0 θ
CB B án A1 A2 A3 A4 A5

5
0 A5 30 0 0 2
2 1 15

2 A1 0 1 0 0 [ 14 ] 0 0
1 1
4 A2 10 0 1 4 4
0 40

1 9
Bảng 1 40 0 0 2 2
0

0 A5 30 −8 0 [ 52 ] 0 1 12

-3 A4 0 4 0 0 1 0 ∞
1
4 A2 10 -1 1 4
0 0 40

Bảng 2 40 −18 0 1
2
0 0

1/2 A3 12 − 16
5
0 1 0 2
5

-3 A4 0 4 0 0 1 0

4 A2 7 − 15 1 0 0 − 10
1

Bảng 3 34 − 82
5
0 0 0 − 15

3.5.3 Phương pháp đánh thuế hay phương pháp bài toán (M)
Trong thuật toán đơn hình hai pha, ta phải thực hiện thuật toán đơn hình hai
lần: một lần để giải bài toán quy hoạch tuyến tính phụ (LP∗ct ) và một lần để
giải bài toán quy hoạch tuyến tính gốc (nếu tập nghiệm chấp nhận được của nó
khác rỗng). Phương pháp đánh thuế cho phép kết hợp cả hai pha này lại.
Xét bài toán quy hoạch tuyến tính dạng chính tắc:
min{⟨c, x⟩ | Ax = b, x ≥ 0}, (LP ct )
với ma trận A cấp m × n, véc tơ b ∈ Rm và b ≥ 0.
77

Để giải bài toán (LP ct ), ta xét bài toán mở rộng sau đây (thường gọi là bài
toán (M)):
min F (x, u) = c1 x1 + · · · + cn xn + M (u1 + · · · + um ) (M )
v.đ.k. Ax + u = b
(x, u) ≥ 0,
trong đó M là một hằng số dương đủ lớn (lớn hơn bất cứ số cụ thể nào mà ta
cần so sánh với nó). Về trực quan, có thể thấy rằng cách làm này giống như
"đánh thuế" rất nặng vào các biến giả u1 , . . . , um khiến cho nếu bài toán chính
(LP ct ) có phương án chấp nhận được thì phương án tối ưu (x∗ , u∗ ) của bài toán
(M ) phải có u∗ = 0 và x∗ là phương án tối ưu của bài toán chính.
Bài toán (M ) có m ràng buộc chính và n + m biến. Dễ thấy (0, b) là một
phương án cực biên của bài toán này với cơ sở tương ứng là cơ sở đơn vị. Do
đó ta có thể xây dựng được ngay bảng đơn hình xuất phát và giải bài toán này
bằng Thuật toán 3.3. Tuy nhiên, để ý rằng, do hàm mục tiêu F phụ thuộc tuyến
tính vào M nên các ước lượng ∆k của các biến xk cũng phụ thuộc tuyến tính
vào M . Do đó, ta có thể viết

F = α0 + β0 M và ∆k = αk + βk M, k = 1, . . . , n + m.

Khi giải bài toán (M ) theo Thuật toán 3.3, ta không cần xác định giá trị cụ
thể của số M mà chỉ cần tách dòng ước lượng (dòng cuối cùng của mỗi bảng
đơn hình) thành hai dòng: dòng đầu ghi các hệ số αk , dòng sau ghi các hệ số
βk , k = 0, 1, . . . , n + m. Vì M là hằng số dương đủ lớn nên:
⋄ Với mỗi k ∈ {1, . . . , n} ta có:
∆k > 0 nếu βk > 0 và αk bất kỳ (hoặc βk = 0 và αk > 0);
⋄ Với cặp i, j ∈ {1, . . . , n}, i ̸= j, ta có:
∆i > ∆j nếu βi > βj và αi , αj bất kỳ (hoặc βi = βj và
αi > αj ).
Khi thuật toán kết thúc:

i) Nếu bài toán (M ) có phương án tối ưu là (x∗ , u∗ ) với u∗ ̸= 0 thì bài toán
gốc (LP ct ) không có phương án chấp nhận được;

ii) Nếu bài toán (LP M ) có phương án tối ưu là (x∗ , 0) thì x∗ là phương án
tối ưu của bài toán gốc (LP ct );

iii) Nếu bài toán (LP M ) không có phương án tối ưu thì bài toán gốc (LP ct )
cũng không có phương án tối ưu (giá trị hàm mục tiêu giảm vô hạn).
78

Ví dụ 3.12. Xét lại bài toán quy hoạch tuyến tính chính tắc như ở Ví dụ 3.17:

min f (x) = 2x1 +3x2


v.đ.k. 2x1 −4x2 − x3 =2
4x1 +3x2 + x4 = 19
3x1 +2x2 = 14
x1 , x2 , x3 , x4 ≥ 0.

Cũng lập luận tương tự như khi giải Ví dụ 3.17, ta chỉ cần thêm hai biến giả
xg5 và xg6 trong bài toán mở rộng. Sau đây là bài toán (M ) tương ứng:

min F (x, xg ) = 2x1 + 3x2 + (xg5 + xg6 )M


v.đ.k. 2x1 − 4x2 − x3 + xg5 = 2
4x1 + 3x2 + x4 = 19
g
3x1 + 2x2 + x6 = 14
x1 , x2 , x3 , x4 , x5 , x6 ≥ 0.
g g

Quá trình tính toán giải bài toán này theo Thuật toán 3.3, xuất phát từ
phương án cực biên ban đầu x0 = (0, 0, 0, 19, 2, 14)T tương ứng với cơ sở đơn
vị {Ag5 , A4 , Ag6 } được trình bày ở Bảng 3.14. Như sẽ thấy, bảng đơn hình cuối
cùng của Bảng 3.14 cho ta phương án cực biên tối ưu ( 14 3
, 0, 22
3
, 13 , 0, 0)T . Do
đó, phương án cực biên tối ưu của bài toán ban đầu là x∗ = ( 14 3
, 0, 22 3
, 13 )T . Ta
có kết quả trùng hợp với kết quả nhận được khi giải bài toán này bằng thuật
toán đơn hình hai pha ở Ví dụ 3.17.

Bảng 3.14
Hệ số Cơ sở Phương 2 3 0 0 M M θ
CB B án A1 A2 A3 A4 A5 A6

M Ag5 2 [2] -4 -1 0 1 0 1
19
0 A4 19 4 3 0 1 0 0 4

M Ag6 14 3 2 0 0 0 1 14
3

α 0 -2 -3 0 0 0 0

Bảng 1 β 16 5 -2 -1 0 0 0
79

Hệ số Cơ sở Phương 2 3 0 0 M M θ
CB B án A1 A2 A3 A4 A5 A6

2 A1 1 1 -2 − 21 0 1
2
0 ∞
15
0 A4 15 0 [11] 2 1 -2 0 11

M Ag6 11 0 8 3
2
0 − 32 1 11
8

α 2 0 -7 -1 0 1 0

Bảng 2 β 11 0 8 3
2
0 − 52 0

2 A1 41
11
1 0 − 22
3 2
11
3
22
0 ∞

3 A2 15
11
0 1 2
11
1
11
− 11
2
0 15
2

M Ag6 1
11
0 0 1
[ 22 ] − 11
8
− 22
1
1 2

α 127
11
0 0 3
11
7
11
− 11
3
0

Bảng 3 β 1
11
0 0 1
22
− 11
8
− 23
22
0

2 A1 4 1 0 0 -2 0 3 ∞
1
3 A2 1 0 1 0 [3] 0 -4 3

0 A3 2 0 0 1 - 16 -1 22 ∞
α 11 0 0 0 5 0 -6
Bảng 4 β 0 0 0 0 0 -1 -1

14 2 1
2 A1 3
1 3
0 0 0 3

0 A4 1
3
0 1
3
0 1 0 − 43
22 16 2
0 A3 3
0 3
1 0 -1 3

α 28
3
0 − 53 0 0 0 2
3

Bảng 5 β 0 0 0 0 0 -1 -1
80

3.6 Tính hữu hạn của thuật toán đơn hình

Định nghĩa. Thuật toán giải một bài toán tối ưu được gọi là hữu hạn nếu
như nó cho phép tìm được phương án tối ưu của bài toán sau một số hữu hạn
phép tính.

Định lý 3.10. Giả sử một bài toán quy hoạch tuyến tính không thoái hóa và
có phương án tối ưu. Khi đó, với mọi phương án cực biên xuất phát, thuật toán
đơn hình là hữu hạn.

Chứng minh. Giả sử bài toán quy hoạch tuyến tính chính tắc (LP ct ) có phương
án cực biên x0 tương ứng với cơ sở B0 . Xuất phát từ x0 , quá trình thực hiện
thuật toán đơn hình để giải bài toán này sẽ sinh ra một dãy các phương án cực
biên xk và dãy cơ sở tương ứng Bk , k = 1, 2, . . . Do bài toán không suy biến
nên tất cả các phương án cực biên đều không suy biến và khi chuyển từ xk sang
xk+1 thì giá trị hàm mục tiêu giảm thực sự (xem công thức (3.27)). Ta có:

(3.12′ ) (3.11′ )
f (xk ) = CBk XBk = CBk Bk−1 b.

Do đó trong quá trình thực hiện thuật toán, không có một ma trận cơ sở nào
bị lặp lại. Mặt khác, số cơ sở của ma trận A không vượt quá Cnm nên sau một
số hữu hạn bước lặp, ta sẽ nhận được một phương án cực biên thỏa mãn điều
kiện dừng của thuật toán. 

Nhận xét 3.4. Trong trường hợp một bài toán thoái hóa thì tính hữu hạn của
thuật toán đơn hình không đảm bảo nữa. Người ta gọi đó là hiện tượng xoay
vòng.

3.7 Hiện tượng xoay vòng

Hiện tượng xoay vòng là hiện tượng sau một số phép biến đổi đơn hình, ta lại
quay lại phương án cực biên suy biến trước đó với cơ sở tương ứng đã gặp.
Trong trường hợp này, thuật toán đơn hình không thể kết thúc. Ví dụ đầu tiên
về hiện tượng xoay vòng do Hoffman [12] đưa ra năm 1953. Năm 1969, Marshall
và Suurballe [30] chứng minh rằng một bài toán quy hoạch tuyến tính dạng
chính tắc xoay vòng thì phải có ít nhất sáu biến và ba ràng buộc. Sau đây là ví
dụ bài toán quy hoạch tuyến tính xoay vòng do GS. Trần Vũ Thiệu [39] (Viện
81

Toán học) đưa ra năm 1964:

min f (x) = 4x1 − 6x5 − 5x6 + 64x7


1
v.đ.k. x1 + x4 − 2x5 − x6 + 12x7 = 0
3
1 1 2
x2 + + x4 − x5 − x6 + x7 = 0
2 6 3
x3 + x5 + x6 − 9x7 = 2
x1 , x2 , x3 , x4 , x5 , x6 , x7 ≥ 0.

Giải bài toán này theo thuật toán đơn hình xuất phát từ phương án cực biên
suy biến (0, 0, 2, 0, 0, 0, 0)T với quy tắc là: tại một bảng đơn hình nào đó,
nếu có nhiều véc tơ cùng đạt tiêu chuẩn ra khỏi cơ sở đang xét thì ta chọn để
đưa ra khỏi cơ sở véc tơ có chỉ số nhỏ nhất. Kết quả là bảng đơn hình ở bước
lặp thứ bảy trùng với bảng đơn hình ở bước đầu tiên. Như vậy, nếu cứ tiếp tục
tính ta sẽ lâm vào tình trạng xoay vòng.

Sau hơn nửa thế kỷ áp dụng phương pháp đơn hình giải quy hoạch tuyến
tính, người ta thấy rằng hiện tượng xoay vòng rất ít xảy ra đến mức các chương
trình phần mềm giải quy hoạch tuyến tính đều không chú ý đến phòng ngừa
xoay vòng. Tuy nhiên, về mặt lý thuyết, người ta vẫn phải đưa ra các biện pháp
để tránh hiện tượng xoay vòng như: quy tắc R.G. Bland, phương pháp từ điển,
phương pháp nhiễu loạn. Bạn đọc quan tâm đến các phương pháp này có thể
tham khảo trong [2], [8], [19], [34], [40] hoặc [42].
82

3.8 Đối ngẫu

3.8.1 Cặp bài toán quy hoạch tuyến tính đối ngẫu
Cho A là ma trận cấp m × n và véc tơ b = (b1 , . . . , bm )T ∈ Rm . Ký hiệu
ai , i = 1, . . . , m, là các hàng của ma trận A;
Aj , j = 1, . . . , n, là các cột của ma trận A.
• Đối ngẫu của bài toán quy hoạch tuyến tính tổng quát

Bảng 3.15
Gốc (P) min ⟨c, x⟩ max ⟨b, y⟩ Đối ngẫu (D)

⟨ai , x⟩ = bi , i ∈ M1 yi ∈ R , i ∈ M1

Ràng buộc ⟨ai , x⟩ ≤ bi , i ∈ M2 yi ≤ 0, i ∈ M2 Ràng buộc


chính dấu
⟨ai , x⟩ ≥ bi , i ∈ M3 yi ≥ 0, i ∈ M3

xj ≥ 0, j ∈ N1 ⟨Aj , y⟩ ≤ cj , j ∈ N1

Ràng buộc xj ≤ 0, j ∈ N2 ⟨Aj , y⟩ ≥ cj , j ∈ N2 Ràng buộc


dấu chính
xj ∈ R, j ∈ N3 ⟨Aj , y⟩ = cj , j ∈ N3

(|M1 | + |M2 | + |M3 | = m, |N1 | + |N2 | + |N3 | = n)

Nhận xét 3.5.

• Số ràng buộc chính của bài toán quy hoạch tuyến tính gốc (P ) bằng số
biến (hay số ràng buộc dấu) của bài toán quy hoạch tuyến tính đối ngẫu
(D).

• Số biến của bài toán (P ) bằng số ràng buộc chính của bài toán (D).

• Các biến của bài toán (D) được gọi là các biến đối ngẫu. Các biến đối
ngẫu tương ứng 1-1 với các ràng buộc chính của bài toán gốc (P ).

• Các ràng buộc chính của bài toán (D) tương ứng 1-1 với các biến của bài
toán (P ). Tính chất này được sử dụng rất nhiều khi nghiên cứu các bài
toán quy hoạch tuyến tính thông qua các bài toán đối ngẫu của chúng.
83

• Đối ngẫu của bài toán quy hoạch tuyến tính chuẩn tắc

min z = ⟨c, x⟩ max w = ⟨b, y⟩


v.đ.k. Ax ≥ b v.đ.k. AT y ≤ c
x≥0 y ≥ 0.

• Đối ngẫu của bài toán quy hoạch tuyến tính chính tắc

min z = ⟨c, x⟩ max w = ⟨b, y⟩


v.đ.k. Ax = b v.đ.k. AT y ≤ c
x≥0 y ∈ R.

Mệnh đề 3.2. Bài toán đối ngẫu của bài toán đối ngẫu là bài toán gốc.

Chứng minh. Không giảm tổng quát, ta xét bài toán gốc (P ) là bài toán quy
hoạch tuyến tính dạng chuẩn tắc. Ta có cặp bài toán đối ngẫu sau:

min z = ⟨c, x⟩ (P ) max w = ⟨b, y⟩ (D)


v.đ.k. Ax ≥ b v.đ.k. AT y ≤ c
x≥0 y ≥ 0.

Bài toán (D) tương đương với bài toán:

min w′ = −⟨b, y⟩ (D′ )


v.đ.k. − AT y ≥ −c
y ≥ 0.

Bài toán đối ngẫu của (D′ ) là:

max z ′ = −⟨c, x⟩ (P ′ ) min z = ⟨c, x⟩ (P )


v.đ.k. −Ax ≤ −b ⇔ v.đ.k. Ax ≥ b
x≥0 x ≥ 0.

Mệnh đề đã được chứng minh. 


84

3.8.2 Các định lý về đối ngẫu


Không giảm tổng quát, xét cặp bài toán đối ngẫu dạng chuẩn tắc

min z(x) = ⟨c, x⟩ (P ) max w(y) = ⟨b, y⟩ (D)


v.đ.k. Ax ≥ b v.đ.k. AT y ≤ c
x≥0 y ≥ 0.
Ký hiệu:

X là tập chấp nhận được của bài toán gốc P ;


Y là tập chấp nhận được của bài toán đối ngẫu (D).

Định lý 3.11. (Đối ngẫu yếu) Nếu x∗ là phương án chấp nhận được bất kỳ
của bài toán gốc (P ) và y ∗ là phương án chấp nhận được bất kỳ của bài toán đối
ngẫu (D) thì
⟨b, y ∗ ⟩ ≤ ⟨c, x∗ ⟩.
Chứng minh. Lấy tùy ý x∗ ∈ X và y ∗ ∈ Y . Theo định nghĩa,

Ax∗ ≥ b, x∗ ≥ 0

AT y ∗ ≤ c, y ∗ ≥ 0.
Ta có:

⟨b, y ∗ ⟩ ≤ ⟨Ax∗ , y⟩ = ⟨x∗ , AT y ∗ ⟩ ≤ ⟨x∗ , c⟩ = ⟨c, x⟩.



Hệ quả 3.5.

i) Nếu hàm z(x) = ⟨c, x⟩ không bị chặn dưới trên X thì bài toán (D) không
chấp nhận được, tức Y = ∅;
ii) Nếu hàm max w(y) = ⟨b, y⟩ bị chặn trên trên Y thì bài toán (P) không
chấp nhận được, tức X = ∅.

Chứng minh. i) Giả sử phản chứng là tồn tại y 0 ∈ Y . Theo Định lý 3.11 ta có

⟨b, y 0 ⟩ ≤ ⟨c, x⟩ ∀ x ∈ X,

tức ⟨c, x⟩ bị chặn dưới trên X ⇒ Mâu thuẫn với giả thiết ⇒ Y = ∅. 
85

Hệ quả 3.6. Giả sử x̄ ∈ X, ȳ ∈ Y và

⟨b, ȳ⟩ = ⟨c, x̄⟩.

Khi đó
x̄ ∈ Argmin(P ) vàȳArgmax(D).

Chứng minh. Lấy tùy ý x ∈ X và y ∈ Y . Theo Định lý 3.11 ta có

⟨b, y⟩ ≤ ⟨c, x̄⟩ = ⟨b, ȳ⟩ ≤ ⟨c, x⟩.

Ta có điều phải chứng minh. 

Định lý 3.12. (Đối ngẫu mạnh) Nếu một bài toán quy hoạch tuyến tính có
phương án tối ưu thì bài toán đối ngẫu của nó cũng có phương án tối ưu và giá
trị tối ưu của hai bài toán này bằng nhau.

Hệ quả 3.7. Điều kiện cần và đủ để cặp phương án chấp nhận được {x̄, ȳ}
của bài toán (P) và (D) là phương án tối ưu là

⟨c, x̄⟩ = ⟨b, ȳ⟩.

Định lý 3.13. (Định lý tồn tại) Xét một cặp quy hoạch tuyến tính đối ngẫu
(P) và (D). Khi đó chỉ xảy ra một trong bốn trường hợp sau:

i) X = ∅ và Y = ∅.

ii) X ̸= ∅ và Y ̸= ∅. Khi đó

Argmin(P ) ̸= ∅, Argmax(D) ̸= ∅


min{⟨c, x⟩ | x ∈ X} = max{⟨b, y⟩ | y ∈ Y }.

iii) X ̸= ∅ và Y = ∅. Khi đó:


f (x) = ⟨c, x⟩ không bị chặn dưới trên X.

iv) X = ∅ và Y ̸= ∅. Khi đó
g(y) = ⟨b, y⟩ không bị chặn trên trên Y .
86

Sau đây là một số ví dụ minh họa cho bốn trường hợp đã nêu trong Định lý
3.13.

Ví dụ 3.13. (Bài toán gốc và bài toán đối ngẫu đều không có phương án chấp
nhận được)

min f (x) = 2x1 + x2 max g(y) = 5y1 + 3y2


v.đ.k. x1 + x2 = 5 v.đ.k. y1 − y2 = 2
−x1 − x2 = 3 y1 − y2 = 1
x1 , x 2 ∈ R y1 , y2 ∈ R.

Ví dụ 3.14. (Bài toán gốc và bài toán đối ngẫu đều có phương án chấp nhận
được)

min f (x) = 6x1 + 5x2 max g(y) = 4y1 + 10y2


v.đ.k. x1 + 2x2 ≥ 4 v.đ.k. y1 + 2y2 ≤ 6
2x1 + x2 ≤ 10 2y1 + y2 ≤ 5
x1 ≥ 0, x2 ≥ 0 y1 ≥ 0, y2 ≤ 0.

Ví dụ 3.15. (Bài toán gốc không có phương án chấp nhận được và giá trị hàm
mục tiêu của bài toán đối ngẫu tăng vô hạn trong miền ràng buộc)

min f (x) = 2x1 + x2 max g(y) = 5y1 + 2y2


v.đ.k. x1 − x2 = 5 v.đ.k. y1 + y2 ≤ 2
x1 + x2 = 2 −y1 + y2 ≤ 1
x1 , x 2 ≥ 0 y1 , y2 ∈ R.

Ví dụ 3.16. (Giá trị hàm mục tiêu của bài toán gốc giảm vô hạn trong miền
ràng buộc và bài toán đối ngẫu không có phương án chấp nhận được)

min f (x) = −x1 − x2 max g(y) = 2y1 + 3y2


v.đ.k. −2x1 + x2 ≤ 2 v.đ.k. −2y1 + y2 ≤ −1
x1 − 3x2 ≤ 3 y1 − 3y2 ≤ −1
x1 , x2 ≥ 0 y1 , y 2 ≤ 0 .
87

3.8.3 Định lý về độ lệch bù (complementary slackness)

Xét cặp bài toán qui hoạch tuyến tính đối ngẫu

min z(x) = ⟨c, x⟩ (P ) max w(y) = ⟨b, y⟩ (D)


v.đ.k. Ax ≥ b v.đ.k. AT y ≤ c
x≥0 y ≥ 0.
Ký hiệu:

X là tập chấp nhận được của bài toán gốc P ;

Y là tập chấp nhận được của bài toán đối ngẫu (D);

a1 , . . . , am là các véc tơ hàng của ma trận A cấp m × n;

A1 , . . . , An là các véc tơ cột của ma trận A cấp m × n;

Véc tơ b = (b1 , . . . , bm )T ∈ Rm .

Định lý 3.14. (Định lý về độ lệch bù) Giả sử x∗ ∈ X và y ∗ ∈ Y . Khi đó

x∗ ∈ Argmin(P ), và y ∗ ∈ Argmax(D)

khi và chỉ khi


{
⟨Ax∗ − b, y ∗ ⟩ = 0 (3.36)
⟨c − AT y ∗ , x∗ ⟩ = 0. (3.37)

Chứng minh. Từ (3.36) và (3.37) ta viết được

⟨b, y ∗ ⟩ = ⟨Ax∗ , y ∗ ⟩ và ⟨c, x∗ ⟩ = ⟨AT y ∗ , x∗ ⟩ = ⟨y ∗ , Ax∗ ⟩.

Do đó
⟨b, y ∗ ⟩ = ⟨c, x∗ ⟩.

Theo Hệ quả 3.7, ta có điều phải chứng minh. 


88

Định lý 3.15. (Định lý về độ lệch bù) Giả sử x∗ ∈ X và y ∗ ∈ Y . Khi đó

x∗ ∈ Argmin(P ), và y ∗ ∈ Argmax(D)

khi và chỉ khi


{
⟨Ax∗ − b, y ∗ ⟩ = 0 (3.36)
⟨c − AT y ∗ , x∗ ⟩ = 0. (3.37)

Chú ý.
i) Vì x∗ ∈ X nên
Ax∗ − b ≥ 0 và x∗ ≥ 0.

ii) Vì y ∗ ∈ Y nên
c − AT y ∗ ≥ 0 và y ∗ ≥ 0.

iii) Vì
m (
∑ )
∗ ∗
⟨Ax − b, y ⟩ = ⟨a , x ⟩ − bi yi∗
i ∗

i=1

nên
[
( ) Nếu yi∗ > 0 thì ⟨ai , x∗ ⟩ = bi ,
(3.36) ⇔ ⟨ai , x∗ ⟩ − bi yi∗ = 0 ∀i ⇔
Nếu ⟨ai , x∗ ⟩ > bi thì yi∗ = 0.

iv) Vì
n (
∑ )
⟨c − AT y ∗ , x∗ ⟩ = cj − ⟨Aj , y ∗ ⟩ x∗j
j=1

[

Nếu x∗j > 0 thì ⟨Aj , y ∗ ⟩ = cj ,
(3.37) ⇔ (cj − ⟨Aj , y ⟩) x∗j = 0 ∀j ⇔
Nếu ⟨y ∗ , Aj ⟩ < cj thì x∗j = 0.

Điều đó có nghĩa là nếu ràng buộc "lệch" khỏi thỏa mãn chặt thì biến
phải bằng 0 (tức "bù lại") để "không lệch" khỏi thỏa mãn chặt và
ngược lại.
89

Nhận xét 3.6.

i) Nếu bài toán gốc có dạng chính tắc

min{⟨c, x⟩ | Ax = b, x ≥ 0}, (P )

thì (3.36) luôn thỏa mãn với mọi phương án chấp nhận được nên điều kiện
độ lệch bù cho bài toán quy hoạch tuyến tính chính tắc là điều kiện (3.37).

ii) Điều kiện độ lệch bù có thể cho ta ngay nghiệm tối ưu của quy hoạch
tuyến tính khi biết nghiệm tối ưu của bài toán đối ngẫu của nó.

Nhận xét 3.7. Trường hợp bài toán suy biến thì điều kiện độ lệch bù giúp rất
ít cho việc xác định nghiệm tối ưu của bài toán quy hoạch tuyến tính.

3.8.4 Một số ứng dụng của lý thuyết đối ngẫu

a. Tìm nghiệm không âm của hệ phương trình tuyến tính


Ta có thể sử dụng Pha 1 của thuật toán đơn hình hai pha để tìm nghiệm không
âm của hệ phương trình tuyến tính Ax = b, tức tìm nghiệm của hệ

Ax = b, x ≥ 0, (3.38)

trong đó A là ma trận cấp m × n và véc tơ b ∈ Rm , b ≥ 0. Cụ thể giải bài toán


quy hoạch tuyến tính (xem Mục 3.5.2(b))
min g(x, u) = u1 + · · · + um
v.đ.k. Ax + u = b
(x, u) ≥ 0,
được nghiệm tối ưu (x , u ). Nếu u = 0 thì x∗ là nghiệm của hệ (3.38), còn nếu
∗ ∗ ∗

u∗ ̸= 0 thì hệ (3.38) vô nghiệm.


Ngược lại, ta cũng có thể đưa việc giải bài toán quy hoạch tuyến tính về việc
tìm nghiệm không âm của một hệ phương trình tuyến tính. Thật vậy, không
giảm tổng quát, ta xét bài toán quy hoạch tuyến tính dạng chuẩn tắc và bài
toán đối ngẫu của nó
min z = ⟨c, x⟩ max w = ⟨b, y⟩
v.đ.k. Ax ≥ b v.đ.k. AT y ≤ c
x≥0 y ≥ 0.
Theo Hệ quả 3.7, phương án chấp nhận được x là phương án tối ưu của bài
toán gốc và phương án chấp nhận được y là phương án tối ưu của bài toán đối
ngẫu khi và chỉ khi
⟨c, x⟩ = ⟨b, y⟩.
90

Điều đó có nghĩa là cặp nghiệm tối ưu x∗ và y ∗ nghiệm đúng hệ phương trình,


bất phương trình sau 
 ⟨c, x⟩ = ⟨b, y⟩

Ax ≥ b, x ≥ 0

 T
A y ≤ c, y ≥ 0 .
Bằng cách đưa thêm biến phụ u ≥ 0, v ≥ 0, hệ trên được viết lại dưới dạng


 ⟨c, x⟩ = ⟨b, y⟩
Ax − u = b, AT y + v = c,


x ≥ 0, y ≥ 0, u ≥ 0, v ≥ 0 .

Do đó mọi thuật toán tìm nghiệm không âm của một hệ phương trình tuyến
tính đều có thể áp dụng trực tiếp vào việc giải bài toán quy hoạch tuyến tính.

b. Chứng minh Bổ đề Farkas


Bổ đề Farkas là một kết quả cơ bản của giải tích lồi và có nhiều ứng dụng trong
quy hoạch toán học.
Bổ đề Farkas. Cho véc tơ a ∈ Rn và ma trận A cấp m × n. Khi đó ⟨a, x⟩ ≥ 0
với mọi x thỏa mãn Ax ≥ 0 khi và chỉ khi tồn tại véc tơ y ≥ 0 thuộc Rm sao
cho a = AT y.

Chứng minh.
(⇐) Điều kiện đủ là hiển nhiên. Thật vậy, giả sử tồn tại véc tơ y ∈ Rm , y ≥ 0 và
a = AT y. Suy ra ⟨a, x⟩ = ⟨AT y, x⟩ = ⟨y, Ax⟩ ≥ 0 với mọi x thỏa mãn Ax ≥ 0.
(⇒) Xét quy hoạch tuyến tính
min φ(x)⟨a, x⟩ v.đ.k.x ∈ M, (P )
trong đó
M = {x ∈ Rn | Ax ≥ 0}.
Dễ thấy 0 ∈ M , tức M ̸= ∅ và
φ(x) = ⟨a, x⟩ ≥ 0 ∀x ∈ M.
Suy ra bài toán (P ) có nghiệm tối ưu. Vậy bài toán đối ngẫu của nó là
max{⟨0, y⟩ | AT y = a, y ≥ 0}
cũng có nghiệm tối ưu (Định lý 3.13) và tập chấp nhận được của bài toán đối
ngẫu khác rỗng, tức
∃ y ≥ 0 sao cho AT y = a.

91

c. Ý nghĩa kinh tế của cặp bài toán đối ngẫu


Ta trình bày vấn đề này thông qua một bài toán thực tế: Người ta dự định sản
xuất m loại sản phẩm bằng n phương pháp khác nhau. Biết rằng nhu cầu của
xã hội về từng loại sản phẩm i là bi , i = 1, . . . , m. Nếu sử dụng một đơn vị
thời gian theo phương pháp j thì thu được aij đơn vị sản phẩm loại i và phải
trả một chi phí bằng cj . Bài toán đặt ra là xác định thời gian tj sử dụng mỗi
phương pháp j, j = 1, . . . , n, sao cho số sản phẩm loại i sản xuất được không
ít hơn nhu cầu bi , i = 1, . . . , m đồng thời tổng chi phí sản xuất là thấp nhất.
Sau đây là mô hình toán học của bài toán:

min f (x) = c1 t1 + · · · + cn tn
∑n
v.đ.k. aij tj ≥ bi , i = 1, . . . , m,
j=1

tj ≥ 0, j = 1, . . . , n.

Bài toán đối ngẫu của bài toán này là:

max g(z) = b1 z1 + · · · + bm zm
∑m
v.đ.k. aij zi ≤ cj , j = 1, . . . , n,
i=1
zi ≥ 0, i = 1, . . . , m.

Nếu gọi zi , i = 1, . . . , m là giá trị (quy ước) của một đơn vị sản phẩm loại i thì
hàm mục tiêu của bài toán đối ngẫu là hàm tổng giá trị toàn bộ sản phẩm theo
yêu cầu của xã hội. Ràng buộc chính thứ j của bài toán đối ngẫu có nghĩa là:
tổng giá trị m loại sản phẩm được sản xuất theo phương pháp thứ j trong một
đơn vị thời gian không vượt quá chi phí sản xuất cj , j = 1, . . . , n. Mục đích của
bài toán đối ngẫu là xác định giá trị zi cho mỗi đơn vị sản phẩm loại i sao cho
tổng giá trị toàn bộ sản phẩm theo yêu cầu của xã hội là lớn nhất.
Ta có thể phân tích một số ý nghĩa kinh tế của cặp bài toán đối ngẫu trên
như sau: Gọi t∗ là phương án sản xuất tối ưu của bài toán gốc và z ∗ là phương
án định giá trị tối ưu của bài toán đối ngẫu. Từ Định lý về độ lệch bù (Định lý
3.14), ta suy ra:

i) Nếu phương pháp thứ j được áp dụng (tức t∗j > 0) thì tổng giá trị m loại
sản phẩm được sản xuất theo phương pháp này phải vừa đúng bằng chi
phí
∑m
aij zi∗ = cj
i=1
92

hoặc phương pháp thứ j sẽ không được áp dụng (tức t∗j = 0) nếu tổng giá
trị m loại sản phẩm được sản xuất theo phương pháp đó thấp hơn chi phí

m
aij zi∗ < cj .
i=1

ii) Nếu sản phẩm loại i có giá trị zi∗ > 0 thì tổng số sản phẩm loại đó sản
xuất được phải vừa đúng bằng nhu cầu xã hội

n
aij t∗j = bi
j=1

hoặc sản phẩm loại i không có giá trị (tức zi∗ = 0) nếu tổng số sản phẩm
loại đó sản xuất được lại vượt quá nhu cầu xã hội

n
aij t∗j > bi .
j=1

Bài tập Chương 3

1. Chuyển bài toán quy hoạch tuyến tính sau về dạng chính tắc:

max z = 3x1 + 5x2 − 4x3


v.đ.k. 7x1 − 2x2 − 3x3 ≥4
2x1 − 4x2 − 8x3 =3
5x1 − 3x2 − 2x3 ≤9
x1 ≥ 1, x2 ≤ 7, x3 ≥ 0.

2. Chuyển bài toán quy hoạch tuyến tính sau về dạng chính tắc:

max z = 5x1 − x2 − 7x3


v.đ.k 7x1 + 4x2 − 11x3 ≥ 12
x1 − 3x2 − 9x3 = −5
6x1 + 5x2 + 2x3 ≤ 10
x1 ≥ −2, x2 tự do, x3 ≥ 0.

3. Khi nào bài toán quy hoạch tuyến tính min{⟨c, x⟩|x ∈ M } có nghiệm?
Cấu trúc của tập nghiệm của bài toán này?
93

4. Giả sử rằng một quy hoạch tuyến tính với tập chấp nhận được bị chặn có
ℓ phương án cực biên tối ưu v 1 , . . . , v ℓ . Chứng minh rằng một phương án
là tối ưu khi và chỉ khi nó là tổ hợp lồi của v 1 , . . . , v ℓ .
5. Cho x1 , x2 là hai phương án tối ưu của bài toán min{⟨c, x⟩ | Ax = b, x ≥ 0}
và x0 là tổ hợp lồi của x1 , x2 . Chứng minh rằng x0 cũng là nghiệm của bài
toán này.
6. Giải bài toán quy hoạch tuyến tính sau bằng phương pháp hình học:
i)
min z = 3x1 + x2
v.đ.k. x1 − x2 ≤1
3x1 + 2x2 ≤ 12
2x1 + 3x2 ≤3
−2x1 + 3x2 ≥9
x 1 , x2 ≥ 0.
ii)
min z = x1 + 2x2
v.đ.k. 2x1 + x2 ≥ 12
x1 + x2 ≥5
−x1 + 3x2 ≤3
6x1 − x2 ≥ 12
x 1 , x2 ≥ 0.

7. Tìm các phương án cực biên không suy biến của bài toán quy hoạch tuyến
tính sau đây và trả lời xem các bài toán này có nghiệm không? Vì sao?
i)
min f (x) = 2x1 + 4x2 − 3x3
v.đ.k. x1 − x2 − x3 = 1
x1 + x2 + x3 = 3
x1 , x2 , x3 ≥ 0.
ii)
max f (x) = 3x1 − 6x2 + x3 − 3x4
v.đ.k. x1 + x2 + x3 + x4 = 10
2x2 + x3 − x4 = 6
x1 , x2 , x3 , x4 ≥ 0.
94

8. Xét bài toán:

min z = 2x1 + 9x2 + 3x3


v.đ.k. − 2x1 + 2x2 + x3 ≥ 1
x1 + 4x2 − 3x3 ≥ 1
x1 , x2 , x3 ≥ 0.

i) Viết bài toán đối ngẫu của bài toán này và giải nó bằng phương pháp
hình học.
ii) Sử dụng điều kiện độ lệch bù để tìm nghiệm tối ưu của bài toán ban
đầu.

9. Xét bài toán min{z = ⟨c, x⟩| Ax = b, x ≥ 0}. Giả sử bài toán này và bài
toán đối ngẫu của nó đều chấp nhận được. Cho x∗ là một nghiệm tối ưu
của bài toán gốc với giá trị tối ưu tương ứng là z∗ và y ∗ là một nghiệm tối
ưu của bài toán đối ngẫu. Chứng minh rằng:

z∗ = y ∗ T Ax∗ .

10. Cho bài toán quy hoạch tuyến tính

max z = 6x1 + 2x2 + 4x3


v.đ.k. 2x1 + 4x2 + 2x3 ≤ 8
x1 + 2x2 + 3x3 ≤ 7
x1 , x2 , x3 ≥ 0.

i) Bài toán này có nghiệm không? Vì sao? Tìm một bài toán thực tế có
thể mô tả bởi quy hoạch tuyến tính này.
ii) Chứng minh rằng tập nghiệm của bài toán quy hoạch tuyến tính là
tập lồi.

11. Cho bài toán quy hoạch tuyến tính:

min f (x) = −2x1 − x2 + 3x3 + x4 − 4x5


v.đ.k x1 − x2 + 4x3 − 2x5 − x6 = −4
3x1 + 2x2 − x3 + x4 + x7 = 24
5x1 + 3x2 + x3 + 2x4 − x5 = 46
x1 , . . . , x7 ≥ 0.

i) Chứng minh rằng x∗ = (0, 2, 0, 20, 0, 2, 0)T là phương án cực biên


không suy biến.
95

ii) Xuất phát từ x∗ , giải bài toán trên bằng phương pháp đơn hình.
iii) Tìm một phương án chấp nhận được x̄ có f (x̄) = −87.

12. Cho bài toán quy hoạch tuyến tính:

min z = x1 − 4x2 + α.x3 + 3x5


2x1 + x2 + x3 =3
−x1 + 2x3 + x4 =2
3x1 + 2x3 + x5 =4
x1 , x2 , x3 , x4 , x5 ≥ 0.

i) Lập bảng đơn hình tương ứng với phương án cực biên x0 = (0, 3, 0, 2, 4)T .
ii) Tìm điều kiện của tham số α để phương án trên là tối ưu.

13. Chứng minh rằng nếu bài toán min{⟨c, x⟩ | Ax = b, x ≥ 0} có phương án


tối ưu thì các bài toán min{⟨c, x⟩ | Ax = b̄, x ≥ 0} cũng có phương án
tối ưu, trong đó b̄ là véc tơ vế phải bất kỳ miễn là tập chấp nhận được
{x ∈ Rn | Ax = b̄, x ≥ 0} khác rỗng.

14. Cho bài toán quy hoạch tuyến tính:

max z = −4x1 + 3x2 − x3 − 2x4


v.đ.k. x1 + 2x2 + x3 =1
4x2 − 2x3 ≤4
− 3x2 + x4 =5
x1 , x2 , x3 , x4 ≥ 0.

i) Viết bài toán đối ngẫu của bài toán trên.


ii) Dùng đối ngẫu kiểm tra xem x∗ = (0, 0, 1, 5)T có phải là phương án
tối ưu của bài toán trên không?

15. Giải bài toán quy hoạch tuyến tính sau bằng thuật toán đơn hình hai pha:
i)

min z = −4x1 − 2x2


v.đ.k. 3x1 − 2x2 ≥ 4
−2x1 + x2 = 2
x1 , x2 ≥ 0.
96

ii)
min z = − x1 − 3x2
v.đ.k. x1 + x2 ≥3
−x1 + x2 ≤ −1
x1 + 2x2 ≤4
x 1 , x2 ≥ 0.

16. Một xưởng sản xuất may gia công hai kiểu mũ. Thời gian lao động để làm
ra một mũ kiểu thứ nhất nhiều gấp hai lần thời gian để làm xong một mũ
kiểu thứ hai. Nếu sản xuất toàn mũ kiểu thứ hai thì họ làm được 500 mũ
một ngày. Thị trường tiêu thụ được trong mỗi ngày không quá 200 mũ
kiểu thứ nhất và 300 mũ kiểu thứ hai. Tiền lãi một mũ kiểu thứ nhất là
50000 đồng và một mũ kiểu thứ hai là 30000 đồng. Xưởng sản xuất này
cần gia công mỗi kiểu mũ bao nhiêu chiếc trong một ngày để tổng tiền lãi
là lớn nhất?
17. Hãng hàng không Universal Aviation quyết định đầu tư 4000000 $ để mua
ba loại máy bay A, B, C để thực hiện hợp đồng chuyên chở hàng cho tập
đoàn RIO. Biết rằng:
Loại A giá 80000 $, có tải trọng 10 tấn, tốc độ 350 km/h và có thể bay
18 h trong một ngày.
Loại B giá 130000 $, có tải trọng 20 tấn và tốc độ 300 km/h và có thể bay
18 h trong một ngày .
Loại C giá 150000 $, có tải trọng 18 tấn và tốc độ 300 km/h và có thể bay
21 h trong một ngày .
Máy bay loại A và loại C có thể bay 3 ca một ngày. Máy bay loại B có thể
bay 6 ca một ngày.
Hãng hàng không chỉ có thể thực hiện bay nhiều nhất là 150 ca trong một
ngày, và hãng chỉ mua tối đa 30 máy bay.
Số tiền thu được từ mỗi máy bay loại A, B, C khi chúng chuyên chở 1 tấn
hàng và bay quãng đường 1 km (gọi tắt là 1 tấn - km) lần lượt là 5 $, 8 $
và 12 $.
Mỗi ngày, hãng hàng không phải thực hiện hợp đồng chuyên chở cho tập
đoàn RIO là 3500000 tấn - km. Nếu máy bay của hãng Universal Aviation
không hoàn thành hợp đồng với tập đoàn RIO thì hãng hàng không này
có thể thuê một hãng hàng không khác chở hàng mà vẫn lãi 0.2 $ trên 1
tấn - km. Bài toán đặt ra là cần mua bao nhiêu máy bay mỗi loại sao cho
hãng hàng không có thể thu được số tiền lớn nhất mỗi ngày? Hãy thiết
lập mô hình quy hoạch tuyến tính cho bài toán này.
97

18. Mỗi tháng công ty Hoàng Anh cần 90000 m3 gỗ xẻ đã sấy khô để đóng đồ
gia dụng. Công ty mua gỗ xẻ theo hai cách sau:
Cách 1 : Mua hai loại gỗ đã được xẻ sẵn (chưa sấy) của các công ty khác
rồi đem sấy. Biết rằng gỗ đã xẻ loại thứ nhất giá 300000 đồng/m3 và sau
khi sấy khô 1 m3 chỉ còn 0.7 m3 , loại thứ hai giá 700000 đồng/m3 và sau
khi sấy khô 1 m3 chỉ còn 0.9 m3 . Mỗi tháng, công ty có thể mua nhiều
nhất 40000 m3 gỗ xẻ loại thứ nhất và 60000 m3 gỗ xẻ loại thứ hai.
Cách 2 : Mua gỗ hộp (chưa xẻ) sau đó xẻ tại xưởng cưa của công ty và đem
sấy, chi phí vận chuyển 1 m3 gỗ hộp đến nhà máy cưa mất 25000 đồng.
Tiền mua và xẻ 1 m3 gỗ hộp là 60000 đồng và 1 m3 gỗ này chỉ còn 0.8 m3
sau khi sấy khô. Phân xưởng cưa có thể cưa 35000 m3 gỗ trong 1 tháng.
Chi phí để sấy gỗ xẻ là 40000 đồng/m3 . Tổng thời gian làm khô gỗ tối đa
là 40 giờ, trong đó thời gian làm khô 1 m3 gỗ loại thứ nhất (gỗ xẻ sẵn) là
2 phút, loại thứ hai (gỗ xẻ sẵn) là 0.8 phút và loại gỗ hộp là 1.3 phút.
Hãy xây dựng mô hình bài toán quy hoạch tuyến tính để giúp công ty có
thể cực tiểu chi phí mua nguyên liệu hàng tháng.
98
Chương 4

Qui hoạch phi tuyến


(Nonlinear Programming)

4.1 Hàm lồi


4.1.1 Định nghĩa
Cho tập lồi khác rỗng X ⊆ Rn và hàm số f : X → R. Khi đó,

⋄ f được gọi là hàm lồi (convex function) nếu

f (λx1 + (1 − λ)x2 ) ≤ λf (x1 ) + (1 − λ)f (x2 )

với bất kỳ x1 , x2 ∈ X và số thực λ ∈ [0, 1].


⋄ f được gọi là hàm lồi chặt (strictly convex function) nếu

f (λx1 + (1 − λ)x2 ) < λf (x1 ) + (1 − λ)f (x2 )

với bất kỳ x1 , x2 ∈ X, x1 ̸= x2 và 0 < λ < 1.


⋄ Miền xác định hữu hiệu của hàm f là

domf := {x ∈ X| f (x) < +∞}.

⋄ Epigraph của hàm f , ký hiệu là epi(f ) được định nghĩa như sau:

epi(f ) := {(x, ξ) ∈ X × R | ξ ≥ f (x)} ⊂ Rn+1

⋄ Hypograph của hàm f , lý hiệu là hypo(f )), xác định bởi

hypo(f ) := {(x, ζ) ∈ X × R | ζ ≤ f (x)} ⊂ Rn+1 .

99
100

⋄ Hàm lồi f : X → R ∪ {+∞} có thể được mở rộng thành một hàm lồi trên
toàn không gian Rn bằng cách đặt f (x) = +∞ nếu x ̸∈ domf . Vì vậy, để
đơn giản, ta thường xét f là hàm lồi trên Rn .

⋄ f được gọi là hàm lõm (concave function) trên tập lồi X nếu −f là hàm
lồi.

⋄ f được gọi là hàm lõm chặt (strictly concave function)) trên tập lồi X nếu
−f là hàm lồi chặt.

f (λx1 + (1 − λ)x2 )

f (x2 )
λf (x1 ) + (1 − λ)f (x2 ) f (x2 )
f (x1 )
f (x1 )
λf (x1 ) + (1 − λ)f (x2 )
f (λx1 + (1 − λ)x2 )

x1 λx1 + (1 − λ)x2 x2 x1 λx1 + (1 − λ)x2 x2


(a) (b)

Hình 6.1 (a) − Hàm lồi; (b) − Hàm lõm

Chú ý. Cho tập lồi khác rỗng X ⊆ Rn và hàm số f : X → R. Khi đó f là hàm


lồi khi và chỉ khi với mỗi điểm x0 ∈ X và mỗi hướng v ∈ Rn , hàm một biến
φ(t) := f (x0 + tv) là hàm lồi trên tập lồi {t ∈ R | x0 + tv ∈ X} ⊆ R.
101

(a) (b)

Hình 6.2. (a) − Epigraph của một hàm lồi (b) − Hypograph của một hàm lõm

Lược đồ chứng minh hàm lồi Cho hàm số f : X → R, trong đó X ⊆ Rn .


Câu hỏi: f có phải là hàm lồi (trên X) không ?

Bước 1 Kiểm tra X là tập lồi?


If X là tập lồi Then Chuyển Bước 2
Else Dừng. Kết luận: f không phải là hàm lồi trên X.

Bước 2

Cách 1. Lấy tùy ý x1 , x2 ∈ X và lấy tùy ý số thực λ ∈ [0, 1]. Kiểm tra

f (λx1 + (1 − λ)x2 ) ≤ λf (x1 ) + (1 − λ)f (x2 ). (1)

If (1) đúng Then Dừng. Kết luận: f là hàm lồi trên X


Else Dừng. Kết luận: f không phải là hàm lồi trên X.
Cách 2. . . .
Cách 3. . . .
102

Mệnh đề 4.1. Cho hàm f xác định trên tập lồi khác rỗng X ⊆ Rn . Khi đó,

i) Hàm f là hàm lồi khi và chỉ khi epi(f) là tập lồi.


ii) Hàm f là hàm lõm khi và chỉ khi hypo(f) là tập lồi.

Chứng minh: Do tính tương tự, ta chỉ cần chứng minh khẳng định i).
(⇒) Giả sử f là hàm lồi trên tập lồi X. Lấy hai điểm bất kỳ (x1 , ξ1 ) và (x2 , ξ2 )
thuộc epi(f ) và số thực λ ∈ [0, 1]. Ta sẽ chứng minh

λ(x1 , ξ1 ) + (1 − λ)(x2 , ξ2 ) ∈ epi(f ).

Thật vậy, theo định nghĩa

ξ1 ≥ f (x1 ) và ξ2 ≥ f (x2 ). (6.1)

Ta có

f (λx1 + (1 − λ)x2 ) ≤ λf (x1 ) + (1 − λ)f (x2 ) (do f là hàm lồi)


≤ λξ1 + (1 − λ)ξ2 (do (6.1)).

Suy ra
( )
λx1 + (1 − λ)x2 , λξ1 + (1 − λ)ξ2 = λ(x1 , ξ1 ) + (1 − λ)(x2 , ξ2 ) ∈ epi(f ).

(⇐) Ngược lại, giả sử epi(f ) là tập lồi. Lấy tùy ý x1 , x2 ∈ X và số thực λ ∈ [0, 1].
Ta sẽ chứng minh

f (λx1 + (1 − λ)x2 ) ≤ λf (x1 ) + (1 − λ)f (x2 ).

Thật vậy, vì
(x1 , f (x1 )), (x2 , f (x2 )) ∈ epi(f )
nên ( ) ( )
λ x , f (x ) + (1 − λ) x , f (x ) =
1 1 2 2

( )
= λx1 + (1 − λ)x2 , λf (x1 ) + (1 − λ)f (x2 ) ∈ epi(f ).

Theo định nghĩa ta có

f (λx1 + (1 − λ)x2 ) ≤ λf (x1 ) + (1 − λ)f (x2 ) ∀ 0 ≤ λ ≤ 1.

Điều đó chứng tỏ f là hàm lồi. 


103

Mệnh đề 4.2.
i) Nếu hàm số f xác định trên tập lồi X ⊆ Rn là hàm lồi thì tập mức dưới
Lα (f ) := {x ∈ X | f (x) ≤ α} là tập lồi với mọi α ∈ R.
ii) Nếu g là hàm lõm xác định trên tập lồi khác rỗng X ⊆ Rn thì tập mức
trên Lα (g) := {x ∈ X | g(x) ≥ α} là tập lồi với mọi α ∈ R.

Chứng minh: Ta chỉ cần chứng minh i). Lấy bất kỳ x1 , x2 ∈ Lα (f ) và 0 ≤ λ ≤ 1.


Khi đó
f (λx1 + (1 − λ)x2 ) ≤ λf (x1 ) + (1 − λ)f (x2 ) (do f là hàm lồi)
≤ λα + (1 − λ)α (do x1 , x2 ∈ Lα (f ))
= α.

Suy ra λx1 + (1 − λ)x2 ∈ Lα (f ). Vậy Lα (f ) là một tập lồi. 

Chú ý 4.1. Mệnh đề 6.2 chỉ là điều kiện cần, không phải là điều kiện đủ. Cụ
thể, xét hàm số f : X → R, trong đó X ⊂ Rn là tập lồi khác rỗng.
⋄ Nếu tập mức dưới Lα (f ) của hàm f là tập lồi với mọi α ∈ R thì hàm f
chưa chắc đã là hàm lồi.
⋄ Nếu tập mức trên Lα (f ) của hàm f là tập lồi với mọi α ∈ R thì hàm f
chưa chắc đã là hàm lõm.
⋄ Một hàm mà mọi tập mức dưới là tập lồi được gọi là một hàm tựa lồi
(quasiconvex function).
⋄ Tương tự, một hàm mà mọi tập mức trên là tập lồi được gọi là một hàm
tựa lõm (quasiconcave function).

4.1.2 Các phép toán về hàm lồi


Cho hàm lồi f1 xác định trên tập lồi X1 ⊆ Rn , hàm lồi f2 xác định trên tập lồi
X2 ⊆ Rn và số thực λ ≥ 0. Các phép toán λf1 , f1 + f2 , max{f1 , f2 } được định
nghĩa như sau:
(λf1 )(x) := λf1 (x), x ∈ X1 ;
(f1 + f2 )(x) := f1 (x) + f2 (x), x ∈ X1 ∩ X2 ;
max{f1 , f2 }(x) := max{f1 (x), f2 (x)}, x ∈ X1 ∩ X2 .
Kết quả sau dễ dàng suy ra từ định nghĩa.
Mệnh đề 4.3. Cho f1 là hàm lồi trên tập lồi X1 , f2 là hàm lồi trên tập lồi X2
và các số thực α > 0, β > 0. Khi đó các hàm αf1 + βf2 và max{f1 , f2 } là lồi
trên X1 ∩ X2 .
104

4.1.3 Tính liên tục của hàm lồi

Định lý 4.1. Nếu f là hàm lồi xác định trên tập lồi mở X ⊆ Rn thì f liên tục
trên tập X.

Nhận xét 4.1. Sự gián đoạn của hàm lồi chỉ có thể xảy ra tại biên của tập
xác định.

4.1.4 Đạo hàm theo hướng của hàm lồi

Định nghĩa. Cho hàm f : Rn → R, véc tơ d ∈ Rn \ {0}. Nếu tồn tại giới hạn

f (x0 + td) − f (x0 )


lim ,
t→0+ t

(hữu hạn hoặc vô cùng), thì giới hạn đó được gọi là đạo hàm theo hướng d của
hàm f tại điểm x0 ∈ Rn và ký hiệu là f ′ (x0 , d),tức

f (x0 + td) − f (x0 )


f ′ (x0 , d) = lim+ .
t→0 t

Ví dụ.

⋄ Cho hàm f : Rn → R, véc tơ d = ei , trong đó ei = (0, . . . , |{z}


1 , . . . , 0)T .
i
Khi đó
∂f (x0 ) f (x0 + tei ) − f (x0 )
= lim+ = f ′ (x0 , ei ).
∂xi t→0 t

⋄ Cho hàm f : R → R, điểm x0 ∈ R, d = 1. Khi đó

f (x0 + t) − f (x0 )
f ′ (x0 , 1) = lim+ = f+′ (x0 ),
t→0 t

trong đó f+′ (x0 ) là đạo hàm phải của f tại x0

⋄ Cho hàm f : R → R, điểm x0 ∈ R, d = −1. Khi đó

f (x0 + t.(−1)) − f (x0 ) f (x0 + t) − f (x0 )


f ′ (x0 , −1) = lim+ = lim− = −f−′ (x0 ),
t→0 t t→0 −t

với f−′ (x0 ) là đạo hàm trái của f tại x0 .


105

Mệnh đề 4.4. Cho hàm f xác định trên Rn và điểm x0 ∈ Rn . Nếu f khả vi tại
x0 thì

f ′ (x0 , d) = ⟨∇f (x0 ), d⟩ ∀ d ∈ Rn \ {0}.

Chứng minh. Giả sử f khả vi tại x0 . Theo định nghĩa, với mọi v ∈ Rn \ {0} và
∥v∥ đủ nhỏ, ta có

f (x0 + v) = f (x0 ) + ⟨∇f (x0 ), v⟩ + o(∥v∥).

Vì vậy, với mọi d ∈ Rn \ {0} ta có

f (x0 + td) − f (x0 ) − ⟨∇f (x0 ), td⟩


lim+ = 0.
t→0 t∥d∥

Do đó

f ′ (x0 , d) − ⟨∇f (x0 ), d⟩


=0
∥d∥

và ta nhận được điều phải chứng minh. 


106

Nhận xét 4.2. Đặt φ(t) := f (x0 + td). Khi đó, theo định nghĩa ta có

dφ(t) φ(t) − φ(0) f (x0 + td) − f (x0 )


φ′ (0) = |t=0 = lim = lim+ = f ′ (x0 , d).
dt t→0 t t→0 t

⋄ Đạo hàm theo hướng của hàm f tại x0 phản ánh tốc độ biến thiên của
hàm f tại x0 theo hướng đó.

⋄ Theo Mệnh đề 4.4, ta có

f ′ (x0 , d) = ⟨∇f (x0 ), d⟩.

. Theo bất đẳng thức Cauchy-Bunjakowski-Schwarz, trong tất cả các hướng


d ∈ Rn có ∥d∥ = 1, ta có

|⟨∇f (x0 ), d⟩| ≤ ∥∇f (x0 )∥∥d∥ = ∥∇f (x0 )∥

⇒ −∥∇f (x0 )∥ ≤ ⟨∇f (x0 ), d⟩ ≤ ∥∇f (x0 )∥.

Suy ra:
- Đạo hàm theo hướng của hàm f tại điểm x0 đã cho là lớn nhất khi hướng

∇f (x0 )
d= ,
∥∇f (x0 )∥

tức giá trị hàm tăng nhanh nhất theo hướng gradient.

- Đạo hàm theo hướng của hàm f tại điểm x0 đã cho là nhỏ nhất khi

∇f (x0 )
d=− ,
∥∇f (x0 )∥

giá trị hàm giảm nhanh nhất theo hướng ngược với gradient.
107

Tính đặc thù của đạo hàm theo hướng của hàm lồi được mô tả ở định lý
sau.
Định lý 4.2. Nếu f : X → R ∪ {+∞} là một hàm lồi xác định trên tập lồi
X ⊆ Rn thì nó có đạo hàm theo mọi hướng d ∈ Rn \{0} tại mọi điểm x0 ∈ domf

f ′ (x0 , d) ≤ f (x0 + d) − f (x0 ).

Hệ quả 4.1. Nếu f là hàm lồi khả vi xác định trên tập lồi mở X thì f có đạo
hàm theo mọi hướng d ∈ Rn \ {0} tại mọi điểm x0 ∈ domf và
⟨∇f (x0 ), d⟩ = f ′ (x0 , d) ≤ f (x0 + d) − f (x0 ).

4.1.5 Tiêu chuẩn nhận biết hàm lồi khả vi


Định lý 4.3. Cho f là hàm khả vi trên tập lồi mở X ⊆ Rn . Khi đó:
i) Hàm f là hàm lồi trên X khi và chỉ khi
⟨ ⟩
f (y) − f (x) ≥ ∇f (x), y − x ∀ x, y ∈ X;

ii) Hàm f là hàm lõm trên X khi và chỉ khi


⟨ ⟩
f (y) − f (x) ≤ ∇f (x), y − x ∀ x, y ∈ X.

Định lý 4.4. Cho f là hàm khả vi hai lần trên tập lồi mở X ⊆ Rn . Khi đó,

i) Hàm f là hàm lồi trên X khi và chỉ khi ma trận Hesse ∇2 f (x) là nửa xác
định dương trên X, tức với mỗi x ∈ X,
y T ∇2 f (x)y ≥ 0 ∀y ∈ Rn .
Hàm f là hàm lồi chặt trên X nếu ∇2 f (x) xác định dương trên X, tức với
mỗi x ∈ X,
y T ∇2 f (x)y > 0 ∀y ∈ Rn \ {0}.

ii) Hàm f là hàm lõm trên X khi và chỉ khi ma trận Hesse ∇2 f (x) là nửa
xác định âm trên X, tức với mỗi x ∈ X,
y T ∇2 f (x)y ≤ 0 ∀y ∈ Rn .
Hàm f là hàm lõm chặt trên X nếu ∇2 f (x) xác định âm trên X, tức với
mỗi x ∈ X,
y T ∇2 f (x)y < 0 ∀y ∈ Rn \ {0}.
108

Hệ quả 4.2. Cho hàm toàn phương


1
f (x) = ⟨x, Qx⟩ + ⟨x, a⟩ + α,
2
trong đó Q là ma trận đối xứng cấp n × n. Khi đó:

i) f là hàm lồi (t.ư., lồi chặt) trên Rn nếu Q là ma trận nửa xác định dương
(t.ư., xác định dương);
ii) f là lõm (t.ư., lõm chặt) trên Rn nếu Q là ma trận nửa xác định âm (t.ư.,
xác định âm).

4.1.6 Cực trị của hàm lồi


Mệnh đề 4.5. Cho hàm lồi f : Rn → R và tập lồi khác rỗng D ⊆ Rn . Giả sử
x∗ là một nghiệm tối ưu địa phương của bài toán

min{f (x) | x ∈ D}. (P )

Khi đó:

i) Ta có x∗ cũng là nghiệm tối ưu toàn cục.


ii) Nếu x∗ là nghiệm tối ưu địa phương chặt hoặc f là hàm lồi chặt thì x∗ là
nghiệm tối ưu toàn cục duy nhất của bài toán.

Chứng minh.
i) Giả sử x∗ ∈ D là một nghiệm tối ưu địa phương của bài toán (P ). Theo
định nghĩa, tồn tại một ϵ-lân cận B(x∗ , ϵ) của điểm x∗ ∈ D sao cho

f (x∗ ) ≤ f (x) ∀x ∈ B(x∗ , ϵ) ∩ D.

Giả sử phản chứng rằng x∗ ̸∈ Argmin(P ), tức

∃x̄ ∈ D sao cho f (x̄) < f (x∗ ). (4.2)

Chọn số thực λ ∈ (0, 1) và λ đủ nhỏ sao cho

x0 = λx̄ + (1 − λ)x∗ = x∗ + λ(x̄ − x∗ ) ∈ B(x∗ , ϵ) ∩ D.

Do x∗ là nghiệm cực tiểu địa phương, hàm f là hàm lồi và (4.2) nên

f (x∗ ) ≤ f (x0 ) ≤ λf (x̄) + (1 − λ)f (x∗ ) < f (x∗ ).

Điều mâu thuẫn này chứng tỏ x∗ ∈ Argmin(P ).


109

ii) Giả sử x∗ là nghiệm tối ưu địa phương chặt. Theo i), x∗ ∈ Argmin(P ).

Bây giờ, ta giả thiết phản chứng rằng

x̄ ∈ D, x̄ ̸= x∗ và f (x̄) = f (x∗ ).

Ký hiệu

xλ = λx̄ + (1 − λ)x∗ , 0 ≤ λ ≤ 1.

Vì D là tập lồi và f là hàm lồi trên D nên

xλ ∈ D và f (xλ ) ≤ λf (x̄) + (1 − λ)f (x∗ ) = f (x∗ ) với mọi 0 ≤ λ ≤ 1. (4.3)

Cho λ → 0+ . Ta có thể chọn được xλ ∈ B(x∗ , ε) ∩ D với một ε > 0. Điều này
và (4.3) mâu thuẫn với giả thiết x∗ là nghiệm tối ưu địa phương chặt. Vì vậy
x∗ phải là nghiệm tối ưu toàn cục duy nhất.

• Giả sử rằng x∗ là nghiệm tối ưu địa phương và hàm mục tiêu f là lồi chặt.
Từ i) ta có x∗ Argmin(P ).
Giả thiết phản chứng rằng

x̄ ∈ D, x̄ ̸= x∗ và f (x̄) = f (x∗ ).

Do D là tập lồi nên


1 1
x0 = ( x̄ + x∗ ) ∈ D
2 2

Do f là hàm lồi chặt nên

(1 1 ∗) 1 1
f (x ) = f x̄ + x < f (x̄) + f (x∗ ) = f (x∗ ).
0
2 2 2 2

Điều này mâu thuẫn với giả thiết x∗ ∈ Argmin(P ), chứng tỏ x∗ là nghiệm tối
ưu toàn cục duy nhất. 
110

Mệnh đề 4.6. Cho hàm lồi f xác định trên Rn và tập lồi khác rỗng D ⊆ Rn .
Nếu
x∗ ∈ Argmax{f (x) | x ∈ D} vàx∗ ∈ riD

thì f (x) = f (x∗ ) với mọi x ∈ D.

Chứng minh. Lấy tùy ý x ∈ D. Vì x∗ ∈ riD nên tồn tại y ∈ D sao cho

x∗ = λx + (1 − λ)y, 0 < λ < 1.

Giả sử rằng f (x) ≤ f (y). Do f là hàm lồi nên

f (x∗ ) ≤ λf (x) + (1 − λ)f (y) ≤ max{f (x), f (y)} = f (y).

Kết hợp điều này với giả thiết x∗ ∈ Argmax{f (x) | x ∈ D} suy ra f (x∗ ) = f (y).
Do đó,

f (x∗ ) ≤ λf (x) + (1 − λ)f (y) = λf (x) + (1 − λ)f (x∗ ) ⇒ f (x∗ ) ≤ f (x).

Lập luận tương tự như trên, ta có f (x) = f (x∗ ). Mệnh đề đã được chứng minh.


Nhận xét
Cho tập lồi khác rỗng D ⊆ Rn và hàm số f : D → R.

⋄ Nếu f là hàm lõm và

x∗ ∈ Argmin{f (x) | x ∈ D} vàx∗ ∈ riD

thì f (x) = f (x∗ ) với mọi x ∈ D.

⋄ Không cần xét bài toán max{f (x) | x ∈ Rn } nếu f là hàm lồi.

⋄ Không cần xét bài toán min{f (x) | x ∈ Rn } nếu f là hàm lõm.
111

4.2 Bài toán quy hoạch phi tuyến không ràng buộc

min f (x) v.đ.k. x ∈ Rn , (P krb )

trong đó f : Rn → R là hàm phi tuyến.

Chú ý: Không cần xét bài toán (P krb ) trong trường hợp f là hàm lõm.

4.2.1 Điều kiện tối ưu

Định lý 4.5. (Điều kiện bậc nhất) Cho hàm f xác định, khả vi trên Rn . Nếu
x∗ ∈ Rn là nghiệm tối ưu địa phương của bài toán (P krb ) thì ∇f (x∗ ) = 0.

Chứng minh. Do f khả vi trên Rn và x∗ là nghiệm cực tiểu địa phương nên

′ ∗ f (x∗ + td) − f (x∗ )


f (x , d) = lim+ = ⟨∇f (x∗ ), d⟩ ≥ 0 ∀d ∈ Rn .
t→0 t

Suy ra ∇f (x∗ ) = 0. 

đồ thị hàm số
y = f (x)
112

Chú ý.

⋄ Nếu ∇f (x∗ ) = 0 thì x∗ ∈ Rn được gọi điểm dừng của hàm f .


⋄ x∗ là nghiệm tối ưu địa phương của bài toán (P krb ) ⇒ ∇f (x∗ ) = 0
x∗ là nghiệm tối ưu địa phương của bài toán (P krb ) ̸⇒ ∇f (x∗ ) = 0
⋄ Nghiệm cực tiểu địa phương (t.ư., nghiệm cực tiểu hoặc nghiệm cực tiểu
toàn cục) của bài toán (P krb ) còn được gọi là điểm cực tiểu địa phương
(t.ư., điểm cực tiểu hoặc điểm cực tiểu toàn cục) của hàm f trên Rn .

Định lý 4.6. Giả sử f là hàm lồi khả vi trên Rn . Khi đó

x∗ ∈ Argmin(P krb ) ⇔ ∇f (x∗ ) = 0.

Chứng minh.
(⇒) Theo Định lý 4.5, ta nhận được điều kiện cần của Định lý.

(⇐) Giả sử ∇f (x∗ ) = 0. Ta sẽ chứng minh x∗ là nghiệm cực tiểu toàn cục
của bài toán (P krb ). Thật vậy, do f là hàm lồi khả vi trên Rn nên nó có đạo
hàm theo mọi hướng d ∈ Rn \ {0} tại x∗ và

⟨∇f (x∗ ), d⟩ = f ′ (x∗ , d) ≤ f (x∗ + d) − f (x∗ ), ∀d ∈ Rn \ {0}.

Lấy tùy ý x ∈ Rn , x ̸= x∗ . Đặt , d = x − x∗ . Ta có

0 = ⟨∇f (x∗ ), x − x∗ ⟩ ≤ f (x∗ + (x − x∗ )) − f (x∗ ) = f (x) − f (x∗ ).

Suy ra
f (x∗ ) ≤ f (x) ∀x ∈ Rn ,
tức x∗ là điểm cực tiểu của f trên Rn . 
Nhận xét 4.3. Cho hàm toàn phương
1
f (x) = xT Ax − bT x + c,
2
trong đó A là ma trận cấp n × n đối xứng, nửa xác định dương, b ∈ Rn và c ∈ R.
Khi đó, việc giải bài toán

min{f (x) | x ∈ Rn }

tương đương với việc tìm nghiệm của một hệ phương trình tuyến tính

Ax = b.
113

Định lý 4.7. (Điều kiện bậc hai) Giả sử hàm số f khả vi liên tục hai lần trên
Rn . Khi đó:

i) Nếu x∗ ∈ Rn là điểm cực tiểu địa phương của f trên Rn thì

∇f (x∗ ) = 0 và
∇2 f (x∗ ) nửa xác định dương;

ii) Ngược lại, nếu


∇f (x∗ ) = 0 và
∇2 f (x∗ ) xác định dương

thì x∗ là điểm cực tiểu địa phương chặt của f trên Rn .

Chứng minh. Tự đọc:


- Trang 210, Giáo trình in năm 2014
- Trang 223, Giáo trình in năm 2008.

Nhận xét 4.4. Vì hai bài toán min{f (x) | x ∈ Rn } và max{−f (x) | x ∈ Rn }
tương đương với nhau theo nghĩa tập nghiệm của hai bài toán trùng nhau và
giá trị tối ưu ngược dấu nên

i) Nếu x∗ ∈ Rn là điểm cực đại địa phương của f trên Rn thì

∇f (x∗ ) = 0 và
∇2 f (x∗ ) nửa xác định âm;

ii) Ngược lại, nếu


∇f (x∗ ) = 0 và
∇2 f (x∗ ) xác định âm

thì x∗ là điểm cực đại địa phương chặt của f trên Rn .


114

4.2.2 Phương pháp hướng giảm


Xét bài toán quy hoạch không ràng buộc

min f (x) v.đ.k. x ∈ Rn , (P krb )

trong đó f : Rn → R là hàm phi tuyến, khả vi trên Rn .

Mục đích. Tìm điểm dừng của hàm f trên Rn , tức tìm điểm x∗ ∈ Rn thỏa mãn
∇f (x∗ ) = 0.

Y tưởng: Xuất phát một điểm bất kỳ x0 ∈ Rn , ta xây dựng một dãy điểm
x1 , x2 , . . . , xk , . . . sao cho

f (x0 ) > f (x1 ) > f (x2 ) > · · ·

và dãy {xk } hội tụ đến điểm dừng x∗ ∈ Rn của hàm f , tức ∇f (x∗ ) = 0.

Chú ý. Nếu f là hàm lồi và ∇f (x∗ ) = 0 thì x∗ ∈ Argmin(P krb ).

a. Lược đồ chung
Bước khởi đầu. Xuất phát từ một điểm tùy ý x0 ∈ Rn , ∇f (x0 ) ̸= 0.
Gán k := 0.
Bước lặp k. (k = 0, 1, 2, . . . )

(k1 ) Xác định xk+1 := xk + tk dk sao cho f (xk+1 ) < f (xk ).

(k2 ) If xk+1 thỏa mãn điều kiện dừng Then STOP (x∗ = xk+1 là điểm dừng)
Else Gán k := k + 1; Quay lại Bước lặp k.

Chú ý.

⋄ Thông thường, điều kiện dừng của thuật toán là

∇f (xk ) ≈ 0 hoặc ∥xk − xk−1 ∥ đủ nhỏ.

⋄ Trong công thức xác định xk+1 ,

xk+1 := xk + tk dk sao cho f (xk+1 ) < f (xk ),

Véc tơ dk ∈ Rn là hướng giảm của f tại xk ;


Số thực tk > 0 là độ dài bước.
115

⋄ Tại điểm xk ∈ Rn , mỗi cách lựa chọn hướng dịch chuyển dk và độ dài bước
tk khác nhau cho ta các thuật toán cụ thể tương ứng với các phương pháp
hướng giảm khác nhau.

b. Hướng giảm

Định nghĩa. Cho x0 ∈ Rn . Ta gọi d ∈ Rn \ {0} là hướng giảm của hàm f tại
x0 nếu

∃ ε > 0 sao cho f (x0 + td) < f (x0 ) ∀ t ∈ (0, ε).

Mệnh đề 4.7. (Điều kiện đủ ) Cho hàm f ∈ C(Rn ), điểm x0 ∈ Rn và hướng


d ∈ Rn \ {0}. Nếu ⟨∇f (x0 ), d⟩ < 0 thì d là hướng giảm của f tại x0 .

Chứng minh. Theo giả thiết ta có

f (x0 + td) − f (x0 )


f ′ (x0 , d) = lim+ = ⟨∇f (x0 ), d⟩ < 0.
t→0 t

Do đó, f (x0 + td) − f (x0 ) < 0 với t đủ nhỏ. Mệnh đề đã được chứng minh. 

Chú ý. Nếu d là hướng giảm của hàm f tại x0 thì chưa chắc ⟨∇f (x0 ), d⟩ < 0.

Ý nghĩa hình học: Cho véc tơ d ∈ Rn \ {0}. Ký hiệu α là góc giữa hai véc tơ d
và ∇f (x0 ). Ta có

⟨∇f (x0 ), d⟩ = ∥∇f (x0 )∥ ∥d∥ cos α.

Như vậy, nếu α là góc tù thì d là hướng giảm của hàm f tại x0 .
116

∇f (x0 )
α
d

các mặt mức


của hàm f (x)

Hướng giảm của hàm f tại x0

Mệnh đề 4.8. Cho hàm lồi f khả vi trên Rn , điểm x0 ∈ Rn và hướng


d ∈ R \ {0}. Khi đó, ⟨∇f (x0 ), d⟩ < 0 khi và chỉ khi d là hướng giảm của f tại
n

x0 .
Chứng minh. Do đã có Mệnh đề 4.7, ta chỉ cần chứng minh điều kiện cần.
Giả sử d ∈ Rn \ {0} là hướng giảm của hàm f tại x0 , tức

∃ε > 0 sao cho f (x0 + td) < f (x0 ) ∀ t : 0 < t < ε. (4.5)

Vì hàm f lồi khả vi trên Rn nên hàm f có đạo hàm theo mọi hướng d tại mọi
điểm x0 ∈ Rn và

f (x0 + td) − f (x0 ) ≥ f ′ (x0 , td) = ⟨∇f (x0 ), td⟩ = t⟨∇f (x0 ), d⟩.

Kết hợp điều này và (4.5), với 0 < t < ε ta có

f (x0 + td) − f (x0 )


⟨∇f (x0 ), d⟩ ≤ < 0. 
t

Sau đây là hệ quả trực tiếp của Mệnh đề 4.7.


Hệ quả 4.3. Cho hàm f khả vi trên Rn và điểm x0 ∈ Rn . Nếu ∇f (x0 ) ̸= 0 thì
d = −∇f (x0 ) là một hướng giảm của f tại x0 .

Nhắc lại
117

Mệnh đề 4.9. Giả sử hàm f khả vi trên Rn và ∇f (x0 ) ̸= 0. Trong các hướng
giảm d của hàm f tại x0 có ∥d∥ = 1 thì hàm f giảm nhanh nhất theo hướng
∇f (x0 )
d = − ∥∇f (x0 )∥
.

c. Xác định độ dài bước


Giả sử ta đã biết hướng giảm dk của hàm f tại điểm xk . Cần xác định

xk+1 := xk + tk dk ,

với tk là một số thực dương sao cho

f (xk+1 ) < f (xk ).

Thông thường, có hai cách lựa chọn độ dài bước tk tương ứng với hai thủ
tục khác nhau là thủ tục tìm chính xác theo tia (Exact line search) và thủ tục
quay lui (Backtracking).

• Thủ tục tìm chính xác theo tia


Cho điểm xk ∈ Rn và hướng giảm dk của hàm f tại xk .
Đặt
φk (t) := f (xk + tdk )
và tk là nghiệm tối ưu của bài toán

min φk (t) v.đ.k. t ≥ 0. (P1 )

Thủ tục này chọn độ dài bước chính xác tk > 0 là nghiệm cực tiểu của hàm
f theo tia {xk + tdk , t ≥ 0}.
Chú ý.

⋄ Một số thuật toán giải bài toán (P1 ) được giới thiệu ở Mục 6.2.5 (tự đọc).
′ ′′
⋄ Trường hợp đơn giản, có thể dùng đánh giá φk (t) và φk (t) như đã biết để
tìm cực tiểu hàm một biến.

⋄ Đặc biệt, nếu hàm mục tiêu f (x) là hàm toàn phương lồi chặt thì với mọi
hướng giảm dk của hàm f tại xk , ta có công thức tường minh để xác định
tk .
118

Mệnh đề 4.10. Cho hàm toàn phương lồi chặt


1
f (x) = xT Ax − bT x + c,
2
trong đó A là ma trận cấp n × n, đối xứng, xác định dương, véc tơ b ∈ Rn và
c ∈ R. Cho xk ∈ Rn và hướng giảm dk của hàm f tại xk . Khi đó, độ dài bước
chính xác tk được xác định bởi
(Axk − b)T dk
tk = − > 0.
(dk )T Adk

Chứng minh. Vì f : Rn → là hàm lồi nên φk (t) = f (xk + tdk ) là hàm lồi một
biến. Nếu tk là điểm cực tiểu của hàm φk (t) thì
′ dφk (t) φk (tk + t) − φk (tk )
φk (t)|t=tk = |t=tk = lim
dt t→0 t
f (xk + (tk + t)dk ) − f (xk + tk dk )
= lim+
t→0 t
f ((x + tk d ) + tdk ) − f (xk + tk dk )
k k
= lim+
t→0 t
′ k
= f (x + tk d , d ) = ⟨∇f (xk+1 ), dk ⟩ = 0.
k k
(4.6)
| {z }
xk+1

Vì ∇f (x) = Ax − b nên
⟨∇f (xk+1 ), dk ⟩ = ⟨A(xk + tk dk ) − b, dk ⟩
= ⟨Axk − b, dk ⟩ + tk ⟨Adk , dk ⟩ = 0.
Do dk là hướng giảm của hàm f tại xk và f (x) là hàm lồi nên
⟨∇f (xk ), dk ⟩ = ⟨Axk − b, dk ⟩ < 0.
Hơn nữa, vì ma trận A xác định dương nên
(Axk − b)T dk
⟨Adk , dk ⟩ = (dk )T Adk > 0 ⇒ tk = − > 0. 
(dk )T Adk

• Thủ tục quay lui


Trong nhiều trường hợp, việc giải bài toán cực tiểu hàm một biến để xác định
độ dài bước theo thủ tục tìm chính xác theo tia cũng không dễ dàng và chi phí
tính toán cao. Trong thực tế tính toán, người ta thường sử dụng thủ tục quay
lui.
Mệnh đề sau là cơ sở của thủ tục quay lui xác định điểm xk+1 khi đã biết
hướng giảm dk của hàm f tại xk .
119

Mệnh đề 4.11. Cho hàm f khả vi trên Rn , điểm xk ∈ Rn và véc tơ dk ∈ Rn \{0}


thỏa mãn ⟨∇f (xk ), dk ⟩ < 0. Cho số thực m1 ∈ (0, 1). Khi đó
∃t0 > 0 sao cho f (xk + tdk ) ≤ f (xk ) + m1 t⟨∇f (xk ), dk ⟩ ∀t ∈ (0, t0 ].

Chứng minh. Vì ⟨∇f (xk ), dk ⟩ < 0 nên dk là hướng giảm của f tại xk .
Theo định nghĩa và vì f khả vi nên
f (xk + tdk ) − f (xk )
f ′ (xk , dk ) = lim+ = ⟨∇f (xk ), dk ⟩.
t→0 t
Do đó
f (xk + tdk ) − f (xk )
lim+ = 1 > m1 .
t→0 t⟨∇f (xk ), dk ⟩
Suy ra, tồn tại số thực t0 > 0 đủ nhỏ sao cho với mọi t ∈ (0, t0 ] ta có
f (xk + tdk ) − f (xk )
≥ m1 .
t⟨∇f (xk ), dk ⟩

Kết hợp điều này với giả thiết ⟨∇f (xk ), dk ⟩ < 0, ta có điều phải chứng minh. 

Điều kiện
f (xk + tk dk ) ≤ f (xk ) + m1 tk ⟨∇f (xk ), dk ⟩ với m1 ∈ (0, 1) và tk > 0
được gọi là điều kiện Armijo. Mệnh đề 6.11 đã chỉ ra rằng điều kiện này được
thỏa mãn với tk đủ nhỏ.
Thủ tục quay lui sau đây cho phép xác định điểm lặp tiếp theo xk+1 sao cho
điều kiện Armijo thỏa mãn nhưng độ dài bước tk không quá bé.

Thủ tục quay lui (Quy tắc Armijo)


⋄ Đầu vào: điểm xk ∈ Rn và hướng giảm dk của hàm f tại xk .
⋄ Đầu ra: điểm xk+1 trên tia {xk + tdk | t > 0} thỏa mãn f (xk+1 ) < f (xk ).
Bước 1. Tùy chọn m1 ∈ (0, 1) và α ∈ (0, 1) (chẳng hạn, α = 12 ). Đặt tk := 1.
Bước 2. Tính xk+1 := xk + tk dk và f (xk+1 ).
Bước 3. If f (xk+1 ) ≤ f (xk ) + m1 tk ⟨∇f (xk ), dk ⟩
Then Dừng thủ tục (ta có xk+1 )
Else tk := αtk và quay về Bước 2.

Nhận xét rằng, trong thủ tục quay lui, để xác định điểm tiếp theo, ta không
cần phải giải bài toán cực tiểu hàm một biến.
120

d. Tốc độ hội tụ
Với các thuật toán sử dụng chiến lược xây dựng một dãy điểm tiến dần đến
nghiệm, người ta thường phải trả lời hai câu hỏi:

− Thuật toán có hội tụ không? (tức dãy điểm do thuật toán sinh ra có hội
tụ đến nghiệm cần tìm không?)

− Nếu thuật toán hội tụ thì hội tụ nhanh hay chậm thế nào?

Định nghĩa. Cho dãy {xk } ⊂ Rn hội tụ đến x∗ ∈ Rn . Dãy {xk } được gọi là:

− Hội tụ đến x∗ với tốc độ tuyến tính (linear) nếu

∃0 ≤ γ < 1, ∃k0 sao cho ∀k > k0 : ∥xk+1 − x∗ ∥ ≤ γ∥xk − x∗ ∥;

− Hội tụ đến x∗ với tốc độ trên tuyến tính (super linear) nếu

∀k : ∥xk+1 − x∗ ∥ ≤ ck ∥xk − x∗ ∥ và ck → 0;

− Hội tụ đến x∗ với tốc độ hội tụ bậc hai (quadratic) nếu

∃γ > 0, ∃k0 sao cho ∀k > k0 : ∥xk+1 − x∗ ∥ ≤ γ∥xk − x∗ ∥2 .

Nhận xét 4.5. Dễ thấy rằng, nếu dãy {xk } hội tụ đến x∗ với tốc độ trên tuyến
tính thì nó hội tụ đến x∗ với tốc độ tuyến tính nhưng điều ngược lại không đúng
(Bài tập). Tương tự, nếu dãy {xk } hội tụ đến x∗ với tốc độ bậc hai thì nó hội
tụ đến x∗ với tốc độ trên tuyến tính vì

∥xk+1 − x∗ ∥ ≤ γ∥xk − x∗ ∥∥xk − x∗ ∥ = ck ∥xk − x∗ ∥,

trong đó ck = γ∥xk − x∗ ∥ → 0. Tuy nhiên, điều ngược lại không đúng. Ví dụ,
cho dãy {xk } → x∗ và

∥xk+1 − x∗ ∥ ≤ γ∥xk − x∗ ∥ 2 = γ∥xk − x∗ ∥ 2 ∥xk − x∗ ∥.


3 1

Vì ck = γ∥xk − x∗ ∥ 2 → 0 nên dãy {xk } hội tụ đến x∗ với tốc độ trên tuyến tính
1

nhưng rõ ràng đó không phải là hội tụ với tốc độ bậc hai.


121

4.2.3 Phương pháp gradient

a. Thuật toán gradient với thủ tục tìm chính xác theo tia

Trong thuật toán này, tại mỗi bước lặp k, điểm lặp tiếp theo được xác định bởi

xk+1 := xk − tk ∇f (xk ),

trong đó tk là nghiệm cực tiểu của hàm một biến φk (t) := f (xk − t∇f (xk )) với
t > 0.

Thuật toán 4.1. (Thuật toán gradient với thủ tục tìm chính xác theo tia)

Bước khởi đầu. Chọn trước số ε > 0 đủ nhỏ. Xuất phát từ một điểm tùy ý
x0 ∈ Rn có ∇f (x0 ) ̸= 0. Đặt k := 0.
Bước lặp k. (k = 0, 1, 2, . . . )

(k1 ) Tính xk+1 := xk − tk ∇f (xk ), trong đó

tk = argmin{φk (t), t > 0}.

(k2 ) Tính ∇f (xk+1 ).

(k3 ) If ∥∇f (xk+1 )∥ < ε Then Dừng thuật toán (lấy điểm dừng x∗ ≈ xk+1 )
Else k := k + 1 và quay lại Bước lặp k.

Chú ý 4.2. Theo Mệnh đề 6.10, nếu hàm mục tiêu của bài toán (P krb ) là hàm
toàn phương lồi chặt
1
f (x) = xT Ax − bT x + c
2

thì ta có công thức tính độ dài bước chính xác tk tại mỗi Bước lặp k là

(Axk − b)T ∇f (xk )


tk = > 0.
(∇f (xk ))T A∇f (xk )
122

x0

x2

x1

Minh họa hình học Thuật toán 4.1

Ý nghĩa hình học. Trong mỗi bước lặp k, độ dài bước tk là nghiệm cực tiểu
của hàm một biến
φk : R+ → R
t 7→ φk (t) := f (xk − t∇f (xk )).
ta có
′ (6.6)
φk (t)|t=tk = f ′ ( xk − tk ∇f (xk ) , −∇f (xk )) = ⟨∇f (xk+1 ), −∇f (xk )⟩ = 0,
| {z }
xk+1

tức véc tơ ∇f (xk+1 ) và véc tơ dk = −∇f (xk ) là trực giao với nhau.
Vì f : Rn → là hàm lồi nên φk (t) = f (xk + tdk ) là hàm lồi một biến, trong
đó dk = −∇f (xk ). Theo điều kiện cần tối ưu, nếu tk là điểm cực tiểu của hàm
φk (t) thì
′ dφk (t) φk (tk + t) − φk (tk )
φk (t)|t=tk = |t=tk = lim
dt t→0 t
f (xk + (tk + t)dk ) − f (xk + tk dk )
= lim+
t→0 t
f ((x + tk d ) + tdk ) − f (xk + tk dk )
k k
= lim+
t→0 t
′ k
= f (x + tk d , d ) = ⟨∇f (xk+1 ), dk ⟩ = 0.
k k
| {z }
xk+1

Thay dk = −∇f (xk ), ta có


⟨∇f (xk+1 ), −∇f (xk )⟩ = 0 ⇒ ∇f (xk+1 ) ⊥ ∇f (xk ).
Nói cách khác, xuất phát từ xk , đi theo hướng dk = −∇f (xk ) đến một điểm
nằm trên một đường mức nào đó của hàm f mà nhận dk là tiếp tuyến thì dừng.
Đó chính là điểm xk+1 cần xác định trong Bước lặp k.
123

Ví dụ 4.1. Giải bài toán min{f (x) | x ∈ R3 }, trong đó


1
f (x) = xT Ax − bT x
2
với    
1 0 0 −1
A = 0 5 0  và b = −1 .
0 0 25 −1

Do A là ma trận đối xứng xác định dương nên f (x) là hàm lồi chặt. Vì vậy,
theo Nhận xét 6.3 và Mệnh đề 6.5, nghiệm cực tiểu duy nhất của bài toán này
là  
−1.00
x∗ = A−1 b = −0.20 .
−0.04
Bây giờ, ta sẽ tiến hành giải bài toán này theo Thuật toán 6.1, xuất phát từ
điểm x0 = (0, 0, 0)T và chọn ε = 10−8 . Tại mỗi điểm xk , ta có ∇f (xk ) = Axk −b.
Theo Chú ý 6.2, độ dài bước chính xác tk tại mỗi Bước lặp k được xác định bởi

(Axk − b)T ∇f (xk )


tk = > 0.
(∇f (xk ))T A∇f (xk )

Tại x0 ta có
 
1
f (x0 ) = 0, ∇f (x ) = 1 ,
0  ∥∇f (x0 )∥ = 1.732051.
1

Do đó t0 = 0.096774 và  
−0.096774
x1 = −0.096774 .
−0.096774
Tại x1 ta có
 
0.903226
f (x1 ) = −0.145161, ∇f (x1 ) =  0.516129  , ∥∇f (x1 )∥ = 1.759765.
−1.419355

Do đó t1 = 0.058973 và  
−0.150040
x2 = −0.127212 .
−0.013071
124

Tại x2 ta có
 
0.849960
f (x2 ) = −0.236474, ∇f (x2 ) = 0.363941 , ∥∇f (x2 )∥ = 1.143730.
0.673226

Sau 217 bước lặp, ta sẽ nhận được


 
−0.999999994
x217 = −0.200000000 với ∥∇f (x217 )∥ < 10−8 .
−0.040000000

Dừng thuật toán với điểm dừng x∗ ≈ x217 .

Định lý 4.8. (Định lý hội tụ) ([27], trang 41) Cho x0 ∈ Rn và hàm f khả vi
liên tục trên Rn và có tập mức dưới {x ∈ Rn | f (x) ≤ f (x0 )} bị chặn. Khi đó
mỗi điểm tụ x∗ của dãy {xk } được chọn như trong Thuật toán 6.1 thỏa mãn
∇f (x∗ ) = 0.

b. Thuật toán gradient với thủ tục quay lui


Trong thuật toán này, tại mỗi bước lặp k, chọn hướng giảm dk = −∇f (xk ) và
độ dài bước tk được xác định theo thủ tục quay lui.

Thuật toán 6.2. (Thuật toán gradient với thủ tục quay lui)
Bước khởi đầu. Tùy chọn m1 ∈ (0, 1) và α ∈ (0, 1). Chọn số thực ε > 0 đủ nhỏ.
Xuất phát từ một điểm tùy ý x0 ∈ Rn có ∇f (x0 ) ̸= 0. Đặt k := 0.
Bước lặp k. (k = 0, 1, 2, . . . )

(k1 ) Đặt tk := 1.
(k2 ) Tính xk+1 := xk − tk ∇f (xk ) và f (xk+1 ).
(k3 ) If f (xk+1 ) − f (xk ) ≤ m1 tk ⟨∇f (xk ), −∇f (xk )⟩ = −m1 tk ∥∇f (xk )∥2
Then Chuyển Bước k4
Else tk := αtk và quay về Bước k2 .
(k4 ) Tính ∇f (xk+1 ).
(k5 ) If ∥∇f (xk+1 )∥ < ε Then Dừng thuật toán (lấy điểm dừng x∗ ≈ xk+1 )
Else k := k + 1, quay về Bước lặp k.
125

Ví dụ 4.2. Xét bài toán (P krb ) như ở Ví dụ 6.5, tức có

f (x1 , x2 ) = x31 + x22 − 3x1 − 2x2 + 12.

Quá trình giải bài toán này theo Thuật toán 6.2 như sau: Chọn m1 = 0.01,
α = 0.5. Cũng xuất phát từ điểm x0 = (1, 2)T và ta có

∇f (x0 ) = (0, 2)T ̸= (0, 0)T .

Đặt t0 = 1. Suy ra
( ) ( ) ( )
1 0 1
x = x − t0 ∇f (x ) =
1 0 0
− = , f (x0 ) = f (x1 ) = 10.
2 2 0


f (x1 ) − f (x0 ) = 10 − 10 = 0 > −m1 t0 ∥∇f (x0 )∥2 = −0.04

nên đặt
t0 = α.t0 = 0.5.

Tính lại
( ) ( ) ( )
1 0 1
x = x − t0 ∇f (x ) =
1 0 0
− 0.5 =
2 2 1


f (x1 ) − f (x0 ) = 9 − 10 = −1 < −m1 t0 ∥∇f (x0 )∥2 = −0.02.

Do đó ta chọn x1 = (1, 1)T . Vì ∇f (x1 ) = (0, 0)T nên dừng thuật toán với điểm
dừng x1 = (1, 1)T .

Định lý 4.9. (Định lý hội tụ) Giả sử hàm f (x) bị chặn dưới, gradient ∇f (x)
thỏa mãn điều kiện Lipschitz1 , tức tồn tại L > 0 sao cho

∥∇f (x) − ∇f (y)∥ ≤ L∥x − y∥, ∀x, y ∈ Rn .

Khi đó, với bất kỳ điểm xuất phát x0 , dãy {xk } được chọn như trong Thuật toán
6.2 có tính chất ∥∇f (xk )∥ → 0 khi k → ∞.

Chứng minh. Xem [37], trang 375−376. 


1
Rudolph Otto Sigismund LIPSCHITZ (1832 − 1903): Nhà toán học Đức. Chuyên ngành nghiên
cứu của ông là Giải tích và Hình học.
126

4.2.4 Phương pháp Newton


Xét bài toán
min f (x) v.đ.k. x ∈ Rn , (Pkrb )
trong đó f : Rn → R là hàm khả vi cấp 2. Giả sử, tại mỗi x ∈ Rn , ta xác định
được f (x), ∇f (x) và ∇2 f (x).
Xấp xỉ Taylor bậc hai tại lân cận xk ∈ Rn là
1
f (xk + p) ≈ f (xk ) + ∇f (xk ), p⟩ + pT ∇2 f (xk )p.
2
Ký hiệu
1
φ(p) = pT ∇2 f (xk )p + ∇f (xk ), p⟩ + f (xk ).
2
Bài toán: Tìm hướng pk ∈ Rn là nghiệm tối ưu của bài toán sau:
min φ(p) v.đ.k. p ∈ Rn , (P0 )
Giả thiết: Ma trận ∇2 f (xk ) xác định dương.
Khi đó, φ(p) là hàm lồi chặt trên Rn và bài toán (P0 ) có nghiệm tối ưu duy
nhất là pk thỏa mãn

∇φ(pk ) = ∇2 f (xk )pk + ∇f (xk ) = 0 ⇒ pk = −[∇2 f (xk )]−1 ∇f (xk ).


Định nghĩa. Véc tơ pk = −[∇2 f (xk )]−1 ∇f (xk ) được gọi là hướng Newton của
hàm f tại điểm xk .

Mệnh đề 4.12. Nếu ma trận Hesse ∇2 f (xk ) xác định dương thì hướng Newton
pk của hàm f tại xk cũng là hướng giảm của hàm f tại xk .

Chứng minh. Thật vậy, vì ∇2 f (xk ) xác định dương nên ma trận [∇2 f (xk )]−1
cũng xác định dương và
[ ]T
⟨∇f (xk ), pk ⟩ = ∇f (xk ) .pk
= −[∇f (xk )]T [∇2 f (xk )]−1 ∇f (xk ) < 0.

Theo Mệnh đề 6.7, pk là một hướng giảm của hàm f tại xk . 

Nội dung Mệnh đề 6.12 cho ta biết lý do của giả thiết ∇2 f (x) xác định
dương với mỗi x ∈ Rn của bài toán (P krb ) đang xét. Trong thuật toán Newton
thuần túy giải bài toán này, tại mỗi bước lặp k, điểm xk+1 được xác định theo
công thức
xk+1 := xk + pk ,
127

trong đó pk là hướng Newton của hàm f tại xk . Như vậy, độ dài bước tk = 1
tại mọi bước lặp k.
Thuật toán 6.3. (Thuật toán Newton thuần túy giải bài toán (P krb ))
Bước khởi đầu. Xuất phát từ một điểm tùy ý x0 ∈ Rn đủ gần điểm dừng x∗
và ∇f (x0 ) ̸= 0; Chọn trước số ε > 0 đủ nhỏ. Đặt k := 0.
Bước lặp k. (k = 0, 1, 2, . . . )

(k1 ) Tính hướng Newton pk của hàm f tại xk bằng việc giải hệ phương trình
tuyến tính
[∇2 f (xk )].pk = −∇f (xk ).

(k2 ) Xác định xk+1 := xk + pk và ∇f (xk+1 ).

(k3 ) If ∥∇f (xk+1 )∥ < ε Then Dừng thuật toán (lấy điểm dừng x∗ ≈ xk+1 )
Else k := k + 1 và quay lại Bước lặp k.

Chú ý 4.3. Điểm xuất phát x0 trong Thuật toán 6.3 phải đảm bảo "đủ gần"
điểm dừng x∗ của hàm f (xem Ví dụ 6.11).

Định lý 4.10. (Định lý hội tụ) Giả sử:

i) Hàm f khả vi hai lần trên Rn ;

ii) Hàm ∇2 f (x) là liên tục và Lipschitz trong lân cận của điểm dừng x∗ của
hàm f , tức tồn tại lân cận B(x∗ , ε) và số L > 0 sao cho

∥∇2 f (x) − ∇2 f (y)∥ ≤ L∥x − y∥ ∀ x, y ∈ B(x∗ , ε);

iii) Ma trận ∇2 f (x) xác định dương tại mọi x ∈ Rn .

Khi đó, nếu xuất phát từ một điểm đủ gần x∗ thì dãy {xk } sinh ra bởi Thuật
toán Newton thuần túy hội tụ tới x∗ theo tốc độ cấp hai.

Chứng minh. Xem [36], trang 38 − 39. 

Ví dụ 4.3. Sử dụng thuật toán Newton thuần túy giải bài toán

min{f (x) = x4 − 1 | x ∈ R}

với điểm xuất phát x0 = 4. Tính ba điểm tiếp theo x1 , x2 và x3 . Chứng minh
rằng, dãy {xk } sinh bởi thuật toán này sẽ hội tụ đến nghiệm cực tiểu của bài
toán đang xét.
128

Giải. Dễ thấy bài toán có nghiệm cực tiểu duy nhất là x∗ = 0. Ta có f ′ (x) = 4x3
′′
và f (x) = 12x2 > 0 với mọi x ∈ R \ {0}. Do đó, hướng Newton pk của hàm f
tại một điểm xk cũng là hướng giảm của hàm f tại xk và
f ′ (xk ) 1
pk = − ′′ k
= − xk .
f (x ) 3
Giả sử biết xk , theo thuật toán Newton thuần túy, điểm tiếp theo xk+1 được
xác định bởi
1 2
xk+1 := xk + pk = xk − xk = xk .
3 3
0
Xuất phát từ x = 4, ta có
( )2 ( )3
1 2 0 8 2 2 1 2 0 16 3 2 2 2 32
x = x = ; x = x = x = ; x = x = x0 = .
3 3 3 3 9 3 3 27

Do đó ( )k ( )k
2 2
⇒ {xk } −→ 0 = x∗ .
k 0 k→∞
x = x =4
3 3

• Các ưu, nhược điểm của Thuật toán Newton thuần túy
⋄ Ưu điểm:

i) Nếu hàm mục tiêu f là hàm toàn phương


1
f (x) = xT Ax − bT x + c,
2
trong đó A là ma trận cấp n × n, đối xứng, xác định dương, không suy
biến, thì Thuật toán 6.3 cho ta ngay một nghiệm cực tiểu toàn cục của bài
toán (P krb ) chỉ sau một vòng lặp, không phụ thuộc vào điểm xuất phát
ban đầu. Thật vậy, trong trường hợp này ta có ∇2 f (x) = A. Theo Nhận
xét 6.3, điểm cực tiểu toàn cục x∗ của f trên Rn là nghiệm của hệ phương
trình Ax = b. Do đó x∗ = A−1 b. Bây giờ, xuất phát từ một điểm bất kỳ
x0 , theo Thuật toán 6.3, ta đến được x1 = x0 − A−1 (Ax0 − b) = A−1 b = x∗ .
ii) Nếu xuất phát từ một điểm x0 đủ gần điểm dừng và ma trận ∇2 f (xk )
không suy biến tại mọi bước lặp k thì thuật toán hội tụ rất nhanh (hội tụ
cấp hai).

⋄ Nhược điểm:

i) Tại điểm xk , nếu ma trận ∇2 f (xk ) suy biến thì điểm lặp tiếp theo không
xác định được;
129

ii) Tại điểm xk , nếu ma trận ∇2 f (xk ) không suy biến nhưng ∇2 f (xk ) không
xác định dương thì hướng Newton pk tương ứng không phải hướng giảm
của hàm f tại xk . Thuật toán có thể hội tụ đến điểm dừng x∗ ∈ Rn nhưng
đó không phải là điểm cực tiểu địa phương;
iii) Tính toán và lưu trữ các ma trận cấp n × n rất tốn kém khi n lớn.

c. Phương pháp Newton suy rộng


Trong thuật toán Newton thuần túy (Thuật toán 6.3), việc phải đảm bảo yêu
cầu xuất phát từ một điểm x0 đủ gần điểm dừng x∗ gây khó khăn cho việc thực
hiện thuật toán. Khắc phục hạn chế này, phương pháp Newton suy rộng cho
phép xuất phát từ một điểm tùy ý x0 ∈ Rn . Tại mỗi Bước lặp k, điểm xk+1
được xác định bởi
xk+1 := xk + tk dk ,
trong đó dk vẫn là hướng Newton của hàm f tại xk , tức dk = −[∇2 f (xk )]−1 ∇f (xk )
và độ dài bước tk được tính theo thủ tục quay lui.
Thuật toán 6.4. (Phương pháp Newton suy rộng)
Bước khởi đầu. Xuất phát từ một điểm x0 ∈ Rn có ∇f (x0 ) ̸= 0; Chọn trước số
ε > 0 đủ nhỏ. Đặt k := 0.
Bước lặp k. (k = 0, 1, 2 . . . )

(k1 ) Tính hướng Newton dk bằng việc giải hệ phương trình tuyến tính

[∇2 f (xk )]dk = −∇f (xk ).

(k2 ) Tính xk+1 := xk + tk dk theo thủ tục quay lui. Tính ∇f (xk+1 ).
(k3 ) If ∥∇f (xk+1 )∥ < ε Then Dừng thuật toán (lấy x∗ ≈ xk+1 )
Else gán k := k + 1 và quay về Bước lặp k.

Định lý 4.11. (Định lý hội tụ) Giả sử hàm f (x) khả vi hai lần trên Rn và f
là hàm lồi mạnh với hệ số lồi mạnh m > 0 trên tập mức dưới
( )
L f (x0 ), f = {x ∈ Rn | f (x) ≤ f (x0 )},
( )
tức là với mọi x, y ∈ L f (x0 ), f , λ ∈ (0, 1), ta có

f (λx + (1 − λ)y) ≤ λf (x) + (1 − λ)f (y) − 12 mλ(1 − λ)∥y − x∥2 ,


trong đó x0 là điểm xuất phát của dãy {xk } sinh bởi Thuật toán Newton suy
rộng (Thuật toán 6.4). Gọi x∗ là điểm cực tiểu duy nhất của f và giả sử rằng
130
( )
∇2 f (x) liên tục Lipschitz trên L f (x0 ), f với hằng số Lipschitz L > 0. Khi
đó:

i) Tồn tại k sao cho với mọi ℓ ≥ k ta có

m2
∥∇f (xℓ )∥ < η1 với η1 ≤ L
;

ii) Dãy {f (xℓ )} hội tụ đến f (x∗ ) với tốc độ bậc hai.

Chứng minh. Xem [36], trang 42−43. 


131

d. Phương pháp tựa Newton


Xét bài toán (P krb ) với giả thiết hàm mục tiêu f khả vi hai lần trên Rn . Theo
phương pháp Newton, ở mỗi bước lặp k, ta cần tính hướng Newton

pk = −[∇2 f (xk )]−1 ∇f (xk ).

Đây là công việc khó khăn vì ta phải tính ma trận nghịch đảo [∇2 f (x)]−1 . Hơn
nữa, nếu ma trận ∇2 f (xk ) không suy biến nhưng không xác định dương thì
hướng Newton dk tương ứng không phải hướng giảm của hàm f tại xk . Vì vậy
phương pháp Newton ít được sử dụng trong thực tế khi n > 1 mặc dù phương
pháp này có tốc độ hội tụ bậc hai.
Chiến lược của phương pháp tựa Newton (Quasi Newton Methods) là thay
vì hướng Newton pk tại mỗi bước lặp, ta tính hướng

dk = −Hk ∇f (xk ),

trong đó Hk là ma trận không suy biến, đối xứng, xác định dương. Ma trận Hk+1
sẽ được tính truy hồi theo Hk , ∇f (xk ) và ∇f (xk+1 ) (xem công thức (6.11) dưới
đây). Ma trận Hk+1 cũng là ma trận đối xứng, xác định dương (xem [27], trang
47). Tuy phương pháp tựa Newton có tốc độ hội tụ không còn là bậc hai nữa
và phải thực hiện nhiều bước lặp hơn phương pháp Newton nhưng tính toán tại
mỗi bước lặp đơn giản hơn. Thuật toán 6.5 mang tên Davidon-Fletcher-Powell2
trình bày sau đây là một thuật toán tiêu biểu cho phương pháp này, có tốc độ
hội tụ trên tuyến tính.

Thuật toán 6.5. (Thuật toán D.F.P.)


Bước khởi đầu.

− Xuất phát tùy ý từ một điểm x1 ∈ Rn có ∇f (x1 ) ̸= 0.


− Chọn tùy ý ma trận đối xứng xác định dương H1 (người ta thường chọn
H1 là ma trận đơn vị I).
− Đặt k := 1.

Bước lặp k. (k = 1, 2, . . . )

(k1 ) Đặt dk := −Hk ∇f (xk ).

(k2 ) Tính tk := argmin{φ(t) = f (xk + tdk ), t ≥ 0}.


2
Thuật toán này do Davidon đề xuất đầu tiên vào năm 1959, sau đó được Fletcher và Powell phát
triển (1963).
132

(k3 ) Tính xk+1 := xk + tk dk ; v k := xk+1 − xk và ∇f (xk+1 ).

(k4 ) If ∥∇f (xk+1 )∥ ≈ 0 Then Dừng thuật toán (lấy x∗ ≈ xk+1 )


Else Chuyển Bước k5

(k5 ) Tính uk := ∇f (xk+1 ) − ∇f (xk ) và


v k (v k )T (Hk uk )(Hk uk )T
Hk+1 := Hk + − . (6.11)
⟨uk , v k ⟩ ⟨uk , Hk uk ⟩

(k6 ) Đặt k := k + 1 và quay về Bước lặp k.

Nhắc lại rằng, v k ∈ Rn là véc tơ cột. Do đó v k (v k )T là ma trận cấp n × n.


Cụ thể  k  k k k k 
v1 v1 v1 v1 v2 . . . v1k vnk
v2k  k k v k v k v k v k . . . v2k vnk 
 .  (v1 v2 . . . vnk ) =  2. 1 2. 2 ..  .
 ..   .. .. . 
vnk vnk v1k vnk v2k . . . vnk vnk
Tương tự, (Hk uk )(Hk uk )T là ma trận cấp n × n.
Ví dụ 4.4. Giải lại bài toán đã xét ở Ví dụ 6.9, min{f (x) | x ∈ R3 }, trong đó
f (x) = 21 xT Ax − bT x và
   
1 0 0 −1

A= 0 5 0  và b = −1 .

0 0 25 −1

Ta có ∇f (x) = Ax − b và kết quả giải bài toán này theo Thuật toán 6.5 như
sau:
Bước lặp k = 1.
     
0 1 1 0 0
x1 =  0  ∇f (x1 ) =  1  H1 =  0 1 0 
0 1 0 0 1
 
−1
d1 = −H1 ∇f (x1 ) =  −1  t1 = 0.096774
−1
 
−0.096774
x2 = x1 + t1 d1 =  −0.096774 
−0.096774
133
   
−0.096774 0.903226
v 1 = x2 − x1 =  −0.096774  ∇f (x2 ) =  0.516129 
−0.096774 −1.419355
 
−0.096774
u1 = ∇f (x2 ) − ∇f (x1 ) =  −0.483871 
−2.419355
 
1.030722 0.024578 −0.006144
H2 =  0.024578 0.993856 −0.159754 
−0.006144 −0.159754 0.072197
Bước lặp k = 2.  
−0.952381
d2 = −H2 ∇f (x2 ) =  −0.761905 
0.190476
 
−0.040467
t2 = 0.323077 x3 = x2 + t2 d2 =  −0.342928 
−0.035236
 
−0.307692
v 2 = x3 − x2 =  −0.246154 
0.061538
   
0.595533 −0.307692
∇f (x3 ) =  −0.714640  u2 = ∇f (x3 ) − ∇f (x2 ) =  −1.230769 
0.119107 1.538462
 
1.131584 −0.071580 0.009053
H3 =  −0.040811 0.209795 −0.000326 
0.193668 0.153520 0.001549
Bước lặp k = 3.  
−0.726129
d3 = −H3 ∇f (x3 ) =  0.174271 
−0.005809
 
−1.000000
t3 = 0.820149 x4 = x3 + t3 d3 =  −0.200000 
−0.040000
Vì ∇f (x4 ) = (0, 0, 0)T nên dừng thuật toán. Ta nhận được nghiệm

x∗ = (−1 , −0.2, −0.04)T

đúng như mong muốn (xem Ví dụ 6.9).


134

4.2.5 Cực tiểu hàm một biến


Trong nhiều bước tính toán của bài toán quy hoạch nhiều biến, ta thường phải
tìm cực tiểu của hàm theo một hướng nào đó, tức tìm cực tiểu hàm số một biến.
Mục này trình bày hai phương pháp đơn giản để giải bài toán

min f (x) v.đ.k. x ∈ [a, b] ⊂ R, (P 1b )

trong đó f : [a, b] → R là hàm đơn mốt (unimodal function) và giả sử bài toán
(P 1b ) có nghiệm cực tiểu x∗ ∈ (a, b).

Định nghĩa. Ta nói một hàm số thực f xác định trên đoạn [a, b] ⊂ R là hàm
đơn mốt nếu: i) Hàm f đạt cực tiểu tại x∗ ∈ (a, b); ii) Trong khoảng (a, b), giá
trị hàm f (x) hội tụ giảm dần đến f (x∗ ) khi x hội tụ đơn điệu đến x∗ .

Dễ thấy hàm lồi là hàm đơn mốt. Tuy nhiên, hàm đơn mốt có thể không
phải hàm lồi, cũng không phải hàm lõm. Xem minh họa ở Hình 6.8.

Hình 6.8. Một số dáng điệu của đồ thị hàm đơn mốt

Một tính chất quan trọng của hàm đơn mốt trên đoạn [a, b] là: Giả sử nghiệm
cực tiểu x∗ thuộc khoảng (a, b) và a < x1 < x2 < b. Khi đó:
i) Nếu f (x1 ) < f (x2 ) thì x∗ ∈ [a, x2 ];
ii) Nếu f (x1 ) > f (x2 ) thì x∗ ∈ [x1 , b].
Xem minh họa ở Hình 6.9.

a x1 x∗ x2 b a x1 x∗ x2 b

Hình 6.9
135

Một khoảng chứa nghiệm cực tiểu x∗ được gọi là khoảng bất định (uncer-
tainty). Ký hiệu giá trị tối ưu của bài toán cần giải là f∗ . Ta có f∗ = f (x∗ ). Hai
phương pháp trình bày sau đây cũng như hầu hết các phương pháp khác để tìm
cực tiểu của hàm một biến có tính chất của hàm đơn mốt đều dựa trên ý tưởng
thu hẹp dần miền chứa nghiệm.

a. Phương pháp chia đôi


Thuật toán 6.6. (Thuật toán chia đôi)
Bước khởi đầu. Lấy ε > 0 đủ nhỏ; Đặt a1 := a; b1 := b; k := 1.
Bước lặp k. (k = 1, 2, . . . )

(k1 ) Đặt
ak + bk ε ε
c := ; xk := c − ; y k := c + .
2 2 2
(có ak < xk < y k < bk )

(k2 ) Tính z1 = f (xk ) và z2 = f (y k ).

(k3 ) If z1 ≤ z2 Then Chuyển tới Bước k4 Else Chuyển tới Bước k5 .

(k4 ) (Có x∗ ∈ [ak , y k ])


If y k − ak ≤ ε Then Dừng thuật toán (lấy x∗ := xk và f∗ := z1 )
Else Đặt ak+1 := ak ; bk+1 := y k ; k := k + 1; Chuyển về Bước lặp k.

(k5 ) (Có x∗ ∈ [xk , bk ])


If bk − xk ≤ ε Then Dừng thuật toán (lấy x∗ := y k và f∗ := z2 )
Else Đặt ak+1 := xk ; bk+1 := bk ; k := k + 1; Chuyển về Bước lặp k.

Nhận xét: Sau mỗi bước lặp, khoảng chứa nghiệm giảm xấp xỉ một nửa so với
bước trước nó.

b. Phương pháp lát cắt vàng


Phương pháp này sử dụng tính chất của dãy số Fibonacci {Fn }. Nhắc lại, dãy
{Fn } là dãy số: 1, 1, 2, 3, 5, 8, 13, . . . , tức là:
F1 = F2 = 1;
Fn = Fn−1 + Fn−2 với n = 3, 4, . . .
(Mỗi số hạng, kể từ số hạng thứ ba, bằng tổng của hai số hạng đứng ngay trước
nó).
136

Dãy số Fibonacci3 {Fn } có tính chất đặc biệt đáng chú ý là: tỷ số giữa hai
số kế tiếp nhau của dãy số này tiến tới tỷ số vàng

Fn−1 5−1
lim = .
n→∞ Fn 2

Thuật toán lát cắt vàng giải bài toán (P 1b ) được mô tả như sau:
Thuật toán 6.7. (Thuật toán lát cắt vàng)
Bước khởi đầu. Lấy ε > 0 đủ nhỏ; Đặt a1 := a; b1 := b; k := 1 và

5−1
α := .
2

Bước lặp k. (k = 1, 2, . . . )

(k1 ) Chia [ak , bk ] bởi các điểm chia xk và y k , trong đó


xk := ak + (1 − α)(bk − ak )
y k := ak + α(bk − ak ).

(k2 ) Tính z1 := f (xk ) và z2 := f (y k ).

(k3 ) If z1 ≤ z2 Then Chuyển tới Bước k4 Else Chuyển tới Bước k5 ;

(k4 ) (Có x∗ ∈ [ak , y k ])


If y k − ak ≤ ε Then Dừng thuật toán (lấy x∗ := xk và f∗ := z1 )
Else Đặt ak+1 := ak ; bk+1 := y k ; k := k + 1; Chuyển về Bước lặp k.

(k5 ) (Có x∗ ∈ [xk , bk ])


If bk − xk ≤ ε Then Dừng thuật toán (lấy x∗ := y k và f∗ := z2 )
Else Đặt ak+1 := xk ; bk+1 := bk ; k := k + 1; Chuyển về Bước lặp k.

3
Leonardo FIBONACCI (1180−1250): Nhà toán học người Italy. Tên thật của ông là Leonardo
De Pisa, có nghĩa là Leonard ở thành Pise. Fibonacci là người có công trong việc truyền bá những
tính ưu việt của toán học A rập vào châu Âu thời Phục hưng. Dãy số mang tên ông được ông đưa ra
năm 1202, bắt nguồn từ bài toán "thỏ đẻ" như sau: Xuất phát từ một cặp thỏ. Hỏi sau một số tháng
ta có bao nhiêu cặp thỏ, biết rằng mỗi cặp thỏ mỗi tháng đẻ ra một cặp và cặp mới này sau hai tháng
lại bắt đầu đẻ?
137

Nhận xét 4.6.


i) Trong cả hai trường hợp, ta đều có
bk+1 − ak+1 = α(bk − ak ).

ii) Một trong hai điểm chia ở bước sau trùng với điểm chia ở bước trước. Do
đó thuật toán này cho phép giảm số phép tính.
Ví dụ 4.5. Tìm min{f (x) = x2 + 2x + 2 | x ∈ [−5, 3]} với ε = 0.001.

Kết quả giải bài toán này theo Thuật toán 6.7 với ε = 0.001 được trình
bày ở Bảng 6.1. Thuật toán dừng ở Bước lặp 19 và ta lấy nghiệm tối ưu x∗ =
−1.000163 và giá trị tối ưu f∗ = 1.000000027.
Bảng 6.1

Bước k ak bk xk yk

1 -5.00000 3.00000 -1.944272 -0.055728


2 -5.00000 -0.055728 -3.111456 -1.944272
3 -3.111456 -0.055728 -1.944272 -1.222912
4 -1.944272 - 0.055728 -1.222912 -0.777088
5 -1.944272 -0.777088 -1.498447 -1.222912
6 -1.498447 -0.777088 -1.222912 -1.052622
7 -1.222912 -0.777088 -1.052622 -0.947377
8 -1.222912 -0.947377 -1.117667 -1.052622
9 -1.117667 -0.947377 -1.052622 -1.012422
10 -1.052622 -0.947377 -1.012422 -0.987577
11 -1.052622 -0.987577 -1.027777 -1.012422
12 -1.027777 -0.987577 -1.012422 -1.002932
13 -1.012422 -0.987577 -1.002932 -0.997067
14 -1.012422 -0.997067 -1.006557 -1.002932
15 -1.006557 -0.997067 -1.002932 -1.000692
16 -1.002932 -0.997067 -1.000692 -0.999308
17 -1.002932 -0.999308 -1.001548 -1.000692
18 -1.001548 -0.999308 -1.000692 -1.000163
19 -1.000692 -0.999308 -1.000163 -0.999836

4.2.6 Phương pháp tìm kiếm trực tiếp


Mục này dành để trình bày hai thuật toán giải bài toán (P krb )
min f (x) v.đ.k. x ∈ Rn ,
138

theo phương pháp tìm kiếm trực tiếp là: Thuật toán của Hooke và Jeeves4 và
Thuật toán tìm kiếm theo đơn hình5 (Sequential simplex search algorithm).
Các thuật toán này được sử dụng để giải bài toán (P krb ) khi hàm mục tiêu
f (x) không khả vi hoặc có khả vi nhưng việc lấy các đạo hàm riêng là khó khăn
do f (x) cấu trúc phức tạp hoặc khi có ít thông tin về f (x).

a. Thuật toán của Hooke và Jeeves


Thuật toán 6.8. (Thuật toán giảm theo tọa độ )
Bước 0. Xuất phát từ điểm tùy ý x1 = (x1 , x2 , . . . , xn )T ∈ Rn . Chọn các véc tơ

v i = (0, . . . , 0, |{z}
δ , 0, . . . , 0)T , i = 1, . . . , n,
i

trong đó δ > 0 là số cho trước. Chọn trước số ε > 0 đủ nhỏ.


Bước 1. Đặt x10 = x1 . Trong ba điểm x10 và x10 ± v 1 , chọn một điểm mà tại đó
giá trị hàm mục tiêu bé nhất, ký hiệu điểm đó là x11 . Để đơn giản ta viết: Tìm
x11 = argmin{f (x10 ), f (x10 + v 1 ), f (x10 − v 1 )} (theo tọa độ thứ nhất)
x12 = argmin{f (x11 ), f (x11 + v 2 ), f (x11 − v 2 )} (theo tọa độ thứ hai)
..
.

x1n = argmin{f (x1n−1 ), f (x1n−1 + v n ), f (x1n−1 − v n )} (theo tọa độ thứ n)


Gán y 1 := x1n .
Bước 2. If x1 = y 1 Then Chuyển Bước 3 Else Chuyển tới Bước 4.
Bước 3. If δ ≤ ε Then Dừng thuật toán (lấy x∗ ≈ x1 )
i
Else Đặt v i = v2 , i = 1, . . . , n và quay lại Bước 1.
Bước 4. Đặt x2 := x1 + 2(y 1 − x1 ), x1 := x2 và quay lại Bước 1.

Ví dụ 4.6. Xét bài toán:

min{f (x) = x21 + x22 | x ∈ R2 }.

Bài toán này có n = 2. Xuất phát từ x1 = (1.0 , 1.0)T . Lấy δ = 0.5, ta có

v 1 = (0.5 , 0)T , v 2 = (0 , 0.5)T

Chọn ε = 0.5. Quá trình tính toán giải theo Thuật toán 6.8 như sau:
4
Thuật toán này do Hooke và Jeeves đề xuất năm 1961.
5
Năm 1962, thuật toán này được đưa ra bởi Spendly, Hext và Himsworth và được Nelder và Mead
cải tiến vào năm 1965.
139

Bước 1. (lần thứ nhất) Gán x10 = x1 = (1.0 , 1.0)T . Tính trực tiếp ta có:

f (x10 ) = f (1.0 , 1.0) = 2.0


f (x10 + v 1 ) = f (1.5 , 1.0) = 3.25
f (x10 − v 1 ) = f (0.5 , 1.0) = 1.25.

Do đó min{f (x10 ), f (x10 + v 1 ), f (x10 − v 1 )} = f (x10 − v 1 ) = 1.25. Suy ra


x11 = (0.5 , 1)T .
⋄ Lặp lại với x11 ,

f (x11 ) = f (0.5 , 1.0) = 1.25


f (x11 + v 2 ) = f (0.5 , 1.5) = 2.5
f (x11 − v 2 ) = f (0.5 , 0.5) = 0.5.

Do đó min{f (x11 ), f (x11 + v 2 ), f (x11 − v 2 )} = f (x11 − v 2 ) = 0.5. Suy ra


x12 = (0.5 , 0.5)T .
Đặt y 1 := x12 = (0.5 , 0.5)T . Vì y 1 ̸= x1 nên đặt

x2 = x1 + 2(y 1 − x1 ) = (0 , 0)T ; x1 := x2 .

Quay lại Bước 1.


Bước 1. (lần thứ hai) Gán x10 = x1 = (0 , 0)T . Ta có

min{f (x10 ), f (x10 + v 1 ), f (x10 − v 1 )} = f (x10 ) = 0.0


x11 = x10 = (0.0 , 0.0)T .
Tiếp tục

min{f (x11 ), f (x11 + v 2 ), f (x11 − v 2 )} = f (x11 ) = 0.0


x12 = x11 = (0.0 , 0.0)T .
Gán y 1 := x12 . Vì y 1 = x1 và δ = ε nên dừng thuật toán và coi x1 = (0, 0)T
là nghiệm cực tiểu địa phương.
Dễ thấy rằng, trong ví dụ đơn giản này, điểm (0 , 0)T chính là cực tiểu toàn
cục của hàm lồi f (x1 , x2 ) = x21 + x22 .

b. Thuật toán tìm kiếm theo đơn hình


Thuật toán 6.9.
Bước 1. ⋄ Tạo một đơn hình có (n + 1) đỉnh x1 , . . . , xn+1 ∈ Rn .
140

⋄ Tính f (xi ), i = 1, . . . , n + 1.
Bước 2. Tính:
f max := f (xiM ) = max{f (xi ) | i = 1, . . . , n + 1}, iM ∈ {1, . . . , n + 1}
f min := f (xim ) = min{f (xi ) | i = 1, . . . , n + 1}, im ∈ {1, . . . , n + 1}.
Đặt xmax := xiM và xmin = xim .
Bước 3. (Tiêu chuẩn tối ưu)
If |f max − f min | ≤ ε Then Dừng thuật toán
(xmin là nghiệm tối ưu địa phương và f min là giá trị tối ưu tương ứng)
Else Chuyển tới Bước 4.
Bước 4. (Tính điểm trọng tâm)


n+1
|f (xi )|
xS = ∑n+1 xi (tổ hợp lồi của xi , i = 1, . . . , n + 1).
i=1 |f (x )|
i
i=1

xmax , f max xmax

xS xS

xmin , f min xmin , f min


xR xR

xE xE → xmax
(a) (b)
Hình 6.10

Bước 5. Chiếu đối xứng xmax qua xS được


1 1
xR = xmax + 2(xS − xmax ) (tức xS = xmax + xR ).
2 2
Đặt f R := f (xR ).
Bước 6. If f R ≤ f min Then Chuyển tới Bước 7 Else Chuyển tới Bước 8.
Bước 7. Chiếu đối xứng xS qua xR được

xE = xS + 2(xR − xS ) (Xem Hình 6.10(a)).


141

Đặt f E := f (xE ).
If f E < f min Then Đặt xiM := xE (tức thay xmax := xE ),
được đơn hình mới (Hình 6.10(b)) và quay về Bước 2
Else Đặt xiM := xR (tức thay xmax := xR ),
được đơn hình mới (Hình 6.11(a)) và quay về Bước 2.
Bước 8. (Đã có f R > f min )
If f R < f max Then Đặt xiM := xR (tức thay xmax := xR ),
được đơn hình mới và quay về Bước 2
Else Chuyển Bước 9.

xmax xmax
xK
xS xS

xmin xmin
x →x
R max xR

(a) xE (b) xE
Hình 6.11

Bước 9. (Đã có f R ≥ f max ) Tính:


1 1
xK := xmax + xS và f K := f (xK ).
2 2

If f K < f max Then Đặt xiM := xK (tức thay xmax := xK ),


được đơn hình mới (Hình 6.11(b)) và quay về Bước 2
Else Thu hẹp đơn hình theo công thức
1 1
xi := xi + xmin , ∀i ∈ {1, . . . , n + 1} \ {im }.
2 2
Quay lại Bước 2.
Nhận xét 4.7. Trong thực hành tính theo Thuật toán 6.8 (t.ư., Thuật toán
6.9), ta chọn điểm xuất phát x0 ngẫu nhiên (t.ư., chọn đơn hình xuất phát có
n + 1 đỉnh ngẫu nhiên). Với các dữ liệu đầu vào khác nhau, có thể dẫn đến các
nghiệm tối ưu địa phương khác nhau. Cuối cùng, ta chọn nghiệm tốt nhất có
thể.
142

4.3 Bài toán quy hoạch phi tuyến có ràng buộc


Bài toán quy hoạch phi tuyến có ràng buộc tổng quát được phát biểu như sau

min f (x) v.đ.k. x ∈ X, (P rb )

trong đó X ⊂ Rn và hàm số f xác định trên X.

4.3.1 Điều kiện tối ưu


Trước hết, ta làm quen với khái niệm nón tiếp xúc (tangent cone).
Định nghĩa. Cho dãy {xq } ⊂ Rn hội tụ đến x0 ∈ Rn . Ta nói dãy {xq } hội tụ
v
đến x0 theo hướng v ∈ Rn , ký hiệu là {xq } → x0 , nếu tồn tại dãy số dương {tq },
limq→∞ tq = 0 sao cho
xq = x0 + tq v + o(tq ).
v
Nói cách khác, {xq } → x0 nếu tồn tại dãy số dương {tq }, limq→∞ tq = 0 sao cho

xq − x0
lim = v.
q→∞ tq

Nhận xét 4.8.

v λv
i) Nếu {xq } → x0 thì {xq } → x0 với mọi λ > 0 (Bài tập);

ii) Không phải mọi dãy hội tụ đều hội tụ theo hướng nhưng với mỗi dãy hội
tụ luôn có một dãy con hội tụ theo một hướng nào đó;
0
iii) Hiển nhiên là x0 → x0 .

Định nghĩa. Cho X ⊂ Rn . Tập tất cả các hướng v ∈ Rn sao cho có một dãy
{xq } ⊂ X hội tụ đến x0 theo hướng v tạo thành một nón (Bài tập). Ta gọi đó
là nón tiếp xúc với X tại x0 ∈ X, ký hiệu là T (X, x0 ), cụ thể
v
T (X, x0 ) := {v ∈ Rn | ∃{xq } ⊂ X sao cho {xq } → x0 }.

Nhận xét 4.9.

i) Nếu x0 ∈ intX thì T (X, x0 ) = Rn ;

ii) Nếu X ⊂ Rn là tập lồi đóng thì T (X, x0 ) = cone{(x − x0 ) | x ∈ X}.


143

Bổ đề 4.1. Giả sử {xq } là một dãy thuộc X ⊂ Rn hội tụ đến x0 ∈ X theo


hướng v và f là hàm khả vi liên tục cấp một trên X. Khi đó

f (xq ) − f (x0 )
⟨∇f (x0 ), v⟩ = lim+ .
tq →0 tq
v
Chứng minh. Giả sử {xq } → x0 . Theo định nghĩa, tồn tại dãy số dương {tq },
limq→∞ tq = 0, sao cho
xq − x0
lim = v.
q→∞ tq
Khai triển Taylor của hàm f tại x0 (với q đủ lớn) là

f (xq ) = f (x0 ) + ⟨∇f (x0 ), xq − x0 ⟩ + o(∥xq − x0 ∥).

Suy ra
f (xq ) − f (x0 ) ⟨∇f (x0 ), xq − x0 ⟩ o(∥xq − x0 ∥)
= + .
tq tq tq
Do đó, khi tq → 0+ ta có

f (xq ) − f (x0 )
⟨∇f (x0 ), v⟩ = lim
q tq


o(∥xq − x0 ∥) o(∥xq − x0 ∥) ∥xq − x0 ∥
lim+ = lim+ . = 0.
tq →0 tq tq →0 ∥xq − x0 ∥ tq


Định lý 4.12.

i) Giả sử f khả vi trên một tập mở chứa X. Nếu x∗ ∈ X là nghiệm cực tiểu
địa phương của bài toán (P rb ) thì

⟨∇f (x∗ ), v⟩ ≥ 0 ∀v ∈ T (X, x∗ ). (6.12)

ii) Ngược lại, nếu x∗ ∈ X thỏa mãn điều kiện

⟨∇f (x∗ ), v⟩ > 0 ∀v ∈ T (X, x∗ ) \ {0}, (6.13)

thì x∗ là một nghiệm tối ưu địa phương chặt của bài toán (P rb ).
144

Chứng minh.

i) Xét bất kỳ v ∈ T (X, x∗ ). Theo định nghĩa, tồn tại dãy {xq } ⊂ X và
v
{xq } → x∗ . Theo Bổ đề 6.1, ta có

f (xq ) − f (x∗ )
⟨∇f (x∗ ), v⟩ = lim .
tq →0+ tq

Vì x∗ là nghiệm cực tiểu địa phương nên f (xq ) − f (x∗ ) ≥ 0 với q đủ lớn.
Do đó ⟨∇f (x∗ ), v⟩ ≥ 0.
ii) Giả thiết phản chứng rằng x∗ không phải nghiệm cực tiểu địa phương
chặt của bài toán (P rb ). Khi đó, tồn tại một dãy {xq } ⊂ X, xq ̸= x∗ và
{xq } → x∗ sao cho f (xq ) ≤ f (x∗ ). Trích một dãy con (nếu cần), ta có
thể giả sử rằng dãy {xq } hội tụ đến x∗ theo một hướng v ∈ Rn . Khi đó,
v ∈ T (X, x∗ ). Theo Bổ đề 6.1, ta có

f (xq ) − f (x∗ )
⟨∇f (x∗ ), v⟩ = lim ≤ 0.
tq →0+ tq

Điều này mâu thuẫn với giả thiết (6.13) và chứng tỏ rằng x∗ là nghiệm
cực tiểu địa phương chặt của bài toán (P rb ). 

Một điểm x∗ ∈ X thỏa mãn

⟨∇f (x∗ ), v⟩ ≥ 0 ∀v ∈ T (X, x∗ )

được gọi là một điểm dừng hay điểm tới hạn của hàm f trên X. Chú ý rằng
điều kiện (6.12) chỉ là điều kiện cần nhưng không đủ.
Ví dụ 4.7. Xét bài toán

min{f (x1 , x2 ) = x21 − x22 | x21 + x22 ≤ 1}.

Tập chấp nhận được của bài toán là hình tròn đóng B̄(0, 1) có tâm 0 và bán
kính 1. Ta có ∇f (x) = (2x1 , −2x2 )T và ∇f (x0 ) = 0 với x0 = (0, 0)T . Vì
x0 ∈ intB̄(0, 1) nên T (B̄(0, 1), x0 ) = R2 và
( )
⟨∇f (x ), v⟩ = 0, v ∈ T B̄(0, 1), x .
0 0

Tuy nhiên x0 = (0, 0)T không phải nghiệm cực tiểu địa phương của bài toán
đang xét vì f (0, ±ε) = −ε2 < 0 với mọi ε.
145

Hệ quả 4.4. Giả sử x∗ ∈ intX và x∗ là điểm cực tiểu địa phương của bài toán
(P rb ). Khi đó ∇f (x∗ ) = 0.
Chứng minh. Do x∗ ∈ intX nên T (X, x∗ ) = Rn . Vì x∗ là điểm cực tiểu địa
phương nên theo Định lý 6.13,

⟨∇f (x∗ ), v⟩ ≥ 0 ∀v ∈ Rn .

Suy ra ∇f (x∗ ) = 0. 

Định lý 4.13. Cho f là hàm lồi khả vi trên một tập mở chứa tập lồi X ⊂ Rn .
Điều kiện cần và đủ để x∗ ∈ X là điểm cực tiểu toàn cục của bài toán quy hoạch
lồi min{f (x) | x ∈ X} là

⟨∇f (x∗ ), v⟩ ≥ 0 ∀v ∈ T (X, x∗ ). (6.14)

Chứng minh. Biểu thức (6.14) chính là biểu thức (6.12). Do đã có Định lý 6.13,
ta chỉ cần chứng minh điều kiện đủ, tức nếu x∗ ∈ X thỏa mãn (6.14) thì nó là
điểm cực tiểu của hàm f trên X. Giả sử phản chứng rằng x∗ ∈ X thỏa mãn
(6.14) nhưng nó không phải là điểm cực tiểu của hàm f trên X, tức tồn tại
x̄ ∈ X sao cho f (x̄) < f (x∗ ). Đặt v = x̄ − x∗ . Vì X là tập lồi nên x∗ + tv ∈ X
với mọi 0 ≤ t ≤ 1 và v ∈ T (X, x∗ ). Theo Hệ quả 6.1,
⟨∇f (x∗ ), v⟩ ≤ f (x∗ + v) − f (x∗ ) = f (x̄) − f (x∗ ) < 0,
mâu thuẫn với (6.14). Điều đó chứng tỏ x∗ là nghiệm cực tiểu của f trên X. 
Ví dụ 4.8. Xét bài toán

min{f (x1 , x2 ) = x21 + x22 | x21 + x22 ≤ 1}

Tập chấp nhận được của bài toán là hình tròn đóng B̄(0, 1). Ta có ∇f (x) =
(2x1 , 2x2 )T và ∇f (x0 ) = 0 với x0 = (0, 0)T . Dễ thấy ma trận Hesse ∇2 f (x) là
xác định dương nên hàm mục tiêu f (x) là hàm lồi chặt (Định lý 6.4(i)). Tương
tự Ví dụ 6.16, nón tiếp xúc với B̄(0, 1) tại x0 là T (B̄(0, 1), x0 ) = R2 và
( )
⟨∇f (x0 ), v⟩ = 0, v ∈ T B̄(0, 1), x0 .

Theo Định lý 6.14, x0 = (0, 0)T là nghiệm cực tiểu của bài toán đang xét. Hơn
nữa, do hàm mục tiêu là lồi chặt nên x0 là nghiệm cực tiểu duy nhất (Mệnh đề
6.5(ii)).
Hệ quả 4.5. Cho f là hàm lồi khả vi trên một tập mở chứa tập lồi X ⊂ Rn .
Điểm x∗ ∈ X là điểm cực tiểu toàn cục của bài toán quy hoạch lồi min{f (x) | x ∈
X} khi và chỉ khi
⟨∇f (x∗ ), x − x∗ ⟩ ≥ 0 ∀x ∈ X.
146

Chứng minh. Suy trực tiếp từ Định lý 6.14 và Nhận xét 6.9(ii). 
Ý nghĩa hình học. Theo Hệ quả 6.5, điểm x∗ ∈ X (có ∇f (x∗ ) ̸= 0) là nghiệm
cực tiểu toàn cục của bài toán min{f (x) | x ∈ X} khi và chỉ khi véc tơ −∇f (x∗ )
xác định một siêu phẳng tựa của tập lồi chấp nhận được X tại x∗ . Xem minh
họa ở Hình 6.12.

−∇f (x∗ )

x
X

Hình 6.12. x∗ ∈ X là nghiệm cực tiểu của quy hoạch lồi min{f (x) | x ∈ X}.

Ví dụ 4.9. Xét bài toán min{f (x) = (x1 − 4)2 + (x2 − 6)2 | x2 ≥ x21 , x2 ≤ 4}.
Điểm x0 = (2, 4)T có phải nghiệm cực tiểu của bài toán này không? Vì sao?
Giải. Dễ thấy f (x) là hàm lồi và
( ) ( )
2(x1 − 4) −4
∇f (x) = ⇒ ∇f (x ) = 0
.
2(x2 − 6) −4
Tập chấp nhận được X của bài toán này là tập lồi (phần gạch chéo) và véc
tơ −∇f (x0 ) được minh họa ở Hình 6.13. Ta thấy −∇f (x0 ) xác định một siêu
phẳng tựa với X tại x0 . Do đó x0 là nghiệm cực tiểu của bài toán đang xét.

x2
−∇f (x0 )
4 x0

0 x1

Hình 6.13
147

c. Định lý Karush-Kuhn-Tucker
Xét bài toán quy hoạch phi tuyến:
min f (x) v.đ.k. x ∈ X, (P1rb )
trong đó X ⊂ Rn là tập nghiệm của hệ
{
gi (x) ≤ 0, i = 1, . . . , m,
hj (x) = 0, j = 1, . . . , k,

với f , gi , i = 1, . . . , m và hj , j = 1, . . . , k là các hàm số khả vi bất kỳ xác định


trên Rn , có thể không lồi. Như thường lệ, mỗi hệ thức gi0 (x) ≤ 0, i0 ∈ {1, . . . , m}
hoặc hj0 (x) = 0, j0 ∈ {1, . . . , k}, được gọi là một ràng buộc.
Nhận xét 4.10.
i) Nếu gi (x), i = 1, . . . , m là các hàm lồi và hj (x), j = 1, . . . , k là các hàm
afin thì X là tập lồi, đóng. Nếu thêm điều kiện f là hàm lồi thì bài toán
(P1rb ) là một quy hoạch lồi.
ii) Do mọi hàm afin đều là hàm lồi nên quy hoạch tuyến tính là một trường
hợp riêng của quy hoạch lồi.
Cho x0 ∈ X là một nghiệm chấp nhận được của bài toán (P1rb ). Đặt
I(x0 ) := {i ∈ {1, . . . , m} | gi (x0 ) = 0}
là tập các chỉ số của các ràng buộc gi (x) ≤ 0, i = 1, . . . , m, thỏa mãn chặt tại
x0 .
Ký hiệu S(x0 ) là tập hợp các véc tơ v thỏa mãn hệ tuyến tính sau:
{
⟨∇hj (x0 ), v⟩ = 0, j = 1, . . . , k
⟨∇gi (x0 ), v⟩ ≤ 0, i ∈ I(x0 ).

Bổ đề 4.2. Với mọi x0 ∈ X ta có T (X, x0 ) ⊆ S(x0 ).


Chứng minh. Cho v ∈ T (X, x0 ). Theo định nghĩa, tồn tại dãy {xq } ⊂ X, tồn
tại dãy số dương {tq }, limq→∞ tq = 0 sao cho
xq − x0
lim = v.
q→∞ tq
Vì x0 ∈ X và xq ∈ X nên hj (x0 ) = hj (xq ) = 0 với mọi j = 1, . . . , k và gi (xq ) ≤ 0
với mọi i = 1, . . . , m. Với mỗi i ∈ I(x0 ), ta có gi (x0 ) = 0. Theo Bổ đề 6.1, ta có
hj (xq ) − hj (x0 )
⟨∇hj (x0 ), v⟩ = lim = 0, ∀j = 1, . . . , k
tq →0+ tq
148

gi (xq ) − gi (x0 )
⟨∇gi (x0 ), v⟩ = lim ≤ 0, ∀i ∈ I(x0 ).
tq →0+ tq
Do đó v ∈ S(x0 ), hay T (X, x0 ) ⊆ S(x0 ). 

Định nghĩa. Ta nói điều kiện chính quy (regular condition) được thỏa mãn
tại x0 nếu
T (X, x0 ) = S(x0 ).

Định lý 4.14. ([27] − trang 23) Điều kiện chính quy được thỏa mãn tại x0
nếu có một trong các điều kiện sau:

i) Các hàm hj , j = 1, . . . , k và gi , i = 1, . . . , m đều là các hàm afin;


ii) Các hàm hj , j = 1, . . . , k là afin; các hàm gi , i = 1, . . . , m là lồi và điều
kiện Slater6 sau đây thỏa mãn

∃ x̄ ∈ Rn : gi (x̄) < 0, i = 1, . . . , m và hj (x̄) = 0, j = 1, . . . , k;

iii) Các véc tơ {∇gi (x0 ), i ∈ I(x0 )} và {∇hj (x0 ), j = 1, . . . , k} độc lập tuyến
tính.

Điều kiện thứ nhất hoặc thứ hai của Định lý 6.15 đảm bảo điều kiện chính
quy được thỏa mãn tại mọi điểm chấp nhận được của bài toán đang xét mà
không cần chỉ rõ điểm x0 nào, còn điều kiện thứ ba đòi hỏi phải biết điểm x0 .

Định lý 4.15. (Định lý Karush-Kuhn-Tucker7 ) Cho các hàm f , gi , i =


1, . . . , m và hj , j = 1, . . . , k là các hàm khả vi liên tục trên một tập mở chứa X.
Giả sử x∗ là nghiệm cực tiểu địa phương của bài toán (P1rb ) và điều kiện chính
quy được thỏa mãn tại x∗ . Khi đó điều kiện KKT (điều kiện (6.15)−(6.17)) sau
đúng:

i) gi (x∗ ) ≤ 0, i = 1, . . . , m và hj (x∗ ) = 0, j = 1, . . . , k; (6.15)


ii) Tồn tại các số λi ≥ 0, i = 1, . . . , m và các số µj , j = 1, . . . , k sao cho


m ∑
k
∗ ∗
∇f (x ) + λi ∇gi (x ) + µj ∇hj (x∗ ) = 0 và (6.16)
i=1 j=1

iii) λi gi (x∗ ) = 0, ∀i = 1, . . . , m. (Điều kiện bù) (6.17)


6
Điều kiện này được M. Slater đưa ra năm 1950.
7
Định lý này được Karush đưa ra đầu tiên vào năm 1939 nhưng thiếu điều kiện không âm của các
số thực λi , . . . , λm . Sau đó được Kuhn và Tucker hoàn thiện năm 1951.
149

Chứng minh. Giả sử x∗ là điểm cực tiểu địa phương của bài toán (P1rb ) và điều
kiện chính quy thỏa mãn tại x∗ . Do x∗ phải là nghiệm chấp nhận được của bài
toán nên nó phải thỏa mãn (6.15). Theo Định lý 6.13(i), ta có

⟨∇f (x∗ ), v⟩ ≥ 0 ∀v ∈ T (X, x∗ ).

Do T (X, x∗ ) ⊂ S(x∗ ) (Bổ đề 6.2) nên mọi véc tơ v ∈ T (X, x∗ ) đều thỏa mãn
{
⟨∇hj (x∗ ), v⟩ = 0, j = 1, . . . , k
⟨∇gi (x∗ ), v⟩ ≤ 0, i ∈ I(x∗ ).

Đặt A là ma trận cấp (2k + |I(x∗ )|) × n với các hàng là ∇hj (x∗ ), j = 1, . . . , k;
−∇hj (x∗ ), j = 1, . . . , k và −∇gi (x∗ ), i ∈ I(x∗ ), trong đó |I(x∗ )| là ký hiệu số
phần tử của tập I(x∗ ). Vì điều kiện chính quy thỏa mãn tại x∗ nên T (X, x∗ ) =
S(x∗ ) và ta có thể viết

T (X, x∗ ) = {v ∈ Rn | Av ≥ 0}.

Theo Bổ đề Farkas (Hệ quả 2.1) ta có

⟨∇f (x∗ ), v⟩ ≥ 0, ∀v ∈ T (X, x∗ )

khi và chỉ khi tồn tại các số không âm αj ≥ 0, βj ≥ 0, j = 1, . . . , k, λi ≥ 0,


i ∈ I(x∗ ), sao cho


k ∑

∇f (x ) = (αj − βj )∇hj (x∗ ) − λi ∇gi (x∗ )
j=1 i∈I(x∗ )

Đặt λi = 0, ∀i ̸∈ I(x∗ ) và −µj = αj − βj , ∀j = 1, . . . , k ta được biểu thức (6.16)


và (6.17). 

Chú ý 4.4.

i) Điểm x∗ ∈ Rn thỏa mãn điều kiện KKT được gọi là một điểm KKT của
bài toán (P1rb ) tương ứng.
ii) Nếu x∗ là một nghiệm cực tiểu địa phương của bài toán (P1rb ) và tại đó
thỏa mãn điều kiện chính quy thì x∗ là điểm KKT, nhưng điều ngược lại
chưa chắc đúng.

Ví dụ 4.10. Xét bài toán

min −(x21 + x22 ) v.đ.k. x1 ≤ 1.


150

Bài toán này có m = 1, k = 0 và hàm mục tiêu f (x) = −(x21 + x22 ) là hàm lõm
chặt. Vì g1 = x1 − 1 là hàm afin nên điều kiện chính quy thỏa mãn tại mọi điểm
chấp nhận được của bài toán. Ta có
( ) ( )
−2x1 1
∇f (x) = và ∇g1 (x) = .
−2x2 0

Điều kiện KKT tương ứng của bài toán này là:

  x1 − 1 ≤ 0
 g1 (x) = x1 − 1 ≤ 0 


 

 ∇f (x) + λ ∇g (x) = 0  − 2x1 + λ1 = 0
1 1
⇔ − 2x2 =0

 λ1 g1 (x) = 0 


 
 λ1 (x1 − 1) =0
λ1 ≥ 0, 

λ1 ≥ 0.

Giải hệ này ta nhận được hai điểm KKT là điểm x1 = (0, 0)T ứng với λ1 = 0 và
điểm x2 = (1, 0)T ứng với λ1 = 2. Dễ thấy x1 = (0, 0)T là nghiệm cực đại toàn
cục của hàm f (x) trên tập chấp nhận được của bài toán đang xét còn điểm
x2 = (1, 0)T không phải nghiệm cực tiểu địa phương cũng không phải nghiệm
cực đại địa phương.

• Định lý Karush-Kuhn-Tucker cho quy hoạch lồi


Xét bài toán quy hoạch lồi

min f (x) v.đ.k. x ∈ X, (P1conv )

trong đó
X = {x | gi (x) ≤ 0, i = 1, . . . , m},
và f và gi , i = 1, 2, . . . , m, là các hàm lồi, khả vi liên tục trên một tập mở chứa
X. Trong bài toán quy hoạch lồi, nếu xuất hiện ràng buộc hj (x) = 0 thì hj (x)
phải là hàm afin. Hơn nữa, vì

hj (x) = 0 tương đương với hj (x) ≤ 0, −hj (x) ≤ 0,

nên ta chỉ cần xét ràng buộc dạng bất đẳng thức.
Định lý 4.16. (Định lý Karush-Kuhn-Tucker cho quy hoạch lồi) Giả sử các
hàm f , gi , i = 1, . . . , m là các hàm lồi khả vi trên một tập mở chứa X và điều
kiện Slater được thỏa mãn. Khi đó x∗ ∈ Rn là nghiệm cực tiểu của bài toán
(P1conv ) khi và chỉ khi x∗ thỏa mãn điều kiện KKT (điều kiện (6.18)−(6.20))
sau:
i) gi (x∗ ) ≤ 0, i = 1, . . . , m; (6.18)
151

ii) Tồn tại các số λi ≥ 0, i = 1, . . . , m sao cho



m

∇f (x ) + λi ∇gi (x∗ ) = 0 và (6.19)
i=1

iii) λi gi (x∗ ) = 0, ∀i = 1, . . . , m. (6.20)


Chứng minh. Do đã có Định lý 6.16 nên ta chỉ cần chứng minh điều kiện đủ, tức
nếu x∗ thỏa mãn (6.18)−(6.20) thì x∗ là nghiệm cực tiểu ∑ của bài toán (P1conv ).
Thật vậy, vì f và gi , i = 1, . . . , m, là các hàm lồi nên f + mi=1 λi gi , với λi ≥ 0,
i = 1, . . . , m, cũng là hàm lồi (Mệnh đề 6.3). Từ (6.18) suy ra x∗ ∈ X. Lấy bất
kỳ x ∈ X. Theo Hệ quả 6.1, ta có
[ ∑
m ] [ ∑
m ] [ ∑
m ]
∗ T ∗ ∗ ∗
(x−x ) ∇f (x ) + λi ∇gi (x ) ≤ f (x)+ λi gi (x) − f (x )+ λi gi (x∗ ) .
| {z
i=1
} |i=1 {z } |i=1 {z }
=0 do (6.19) ≤0 do x∈X =0 do (6.20)

Do đó
f (x∗ ) ≤ f (x),
chứng tỏ x∗ là nghiệm cực tiểu của bài toán (P1conv ). 

Chú ý 4.5. Theo Định lý 6.17, việc giải bài toán quy hoạch lồi (P1conv ) tương
đương với việc tìm nghiệm của hệ KKT (6.18)−(6.20) tương ứng.
Ví dụ 4.11. Xét bài toán quy hoạch lồi toàn phương:
1
min f (x) = xT Qx + cT x
2
với điều kiện Ax ≤ b,
trong đó Q là ma trận cấp n × n đối xứng và nửa xác định dương, A là ma trận
cấp m × n, b ∈ Rm , c, x ∈ Rn .
Theo Định lý 6.17, thay vì giải bài toán này, ta có thể giải hệ KTT tương
ứng với nó là 
 Ax ≤ b


 Qx + c + AT λ = 0

 λ≥0


λ (Ax − b) = 0.
T
152

Chú ý 4.6. Điều kiện chính quy trong Định lý 6.16 và Định lý 6.17 không
bỏ qua được. Nếu x∗ là nghiệm cực tiểu địa phương nhưng không thỏa mãn
điều kiện chính quy thì điều kiện KKT chưa chắc đã được thỏa mãn tại x∗ .

Ví dụ 4.12. Xét bài toán8 :


min x1 v.đ.k. x31 − x22 = 0.
Ta có hàm mục tiêu f (x) = x1 , m = 0, k = 1 và h1 (x) = x31 − x22 = 0. Vì mọi
nghiệm chấp nhận được (x1 , x2 )T của bài toán này phải thỏa mãn x31 = x22 nên
x1 ≥ 0. Do đó x0 = (0, 0)T là nghiệm cực tiểu. Ta có
( ) ( ) ( ) ( )
1 3x21 1 0
∇f (x) = , ∇h1 (x) = ⇒ ∇f (x ) =
0
, ∇h1 (x ) =
0
.
0 −2x2 0 0
Nếu x0 thỏa mãn điều kiện KKT thì phải tồn tại số µ1 ∈ R sao cho
( ) ( )
1 0
∇f (x ) + µ1 ∇h1 (x ) = 0 tức
0 0
= .
0 0
Mâu thuẫn này chứng tỏ x0 = (0, 0)T không là điểm KKT. Lý do là véc tơ
∇h1 (x0 ) = (0, 0)T không độc lập tuyến tính, tức điều kiện chính quy bị vi phạm
tại x0 = (0, 0)T .

4.3.2 Phương pháp nhân tử Lagrange


Hàm số

m ∑
k
L(x, λ1 , . . . , λm , µ1 , . . . , µk ) := f (x) + λi gi (x) + µj hj (x),
i=1 j=1

với các số thực λ1 ≥ 0, . . . , λm ≥ 0, µ1 , . . . , µk được gọi là hàm Lagrange9 , tương


ứng với bài toán quy hoạch phi tuyến
min f (x) v.đ.k. x ∈ X, (P1rb )
trong đó X = {x ∈ Rn | gi (x) ≤ 0, i = 1, . . . , m, hj (x) = 0, j = 1, . . . , k}. Các
số không âm λ1 , . . . , λm và các số µ1 , . . . , µk được gọi là các nhân tử Lagrange.
Ký hiệu ∇x L là gradient của hàm L theo x. Khi đó, Định lý 6.16 được phát
biểu lại theo ngôn ngữ hàm Lagrange như sau:
8
theo [34], trang 34.
9
Joseph Louis LAGRANGE (1736 − 1813): Nhà toán học người Italy gốc Pháp. Ông là người
sáng lập ra Viện Hàn lâm Turin ở Italy. Sau đó, ông được vua Phổ Friedrich II vời đến làm việc tại
Berlin với lời mời khiêm tốn: "Nhà toán học lớn nhất châu Âu cần sống bên cạnh ông vua lớn nhất".
Năm 1788, ông đã xây dựng phương pháp này để giải bài toán tối ưu với các ràng buộc đều là đẳng
thức.
153

Định lý 4.17. Cho f , gi , i = 1, . . . , m và hj , j = 1, . . . , k là các hàm khả vi


liên tục trên Rn . Giả sử điểm x∗ ∈ Rn là nghiệm cực tiểu địa phương của bài
toán (P1rb ) và tại đó điều kiện chính quy được thỏa mãn. Khi đó điều kiện KKT
sau là đúng:
i) gi (x∗ ) ≤ 0, i = 1, . . . , m và hj (x∗ ) = 0, j = 1, . . . , k;
ii) Tồn tại các số thực λi ≥ 0, i = 1, . . . , m và µj , j = 1, . . . , k sao cho
∇x L(x∗ , λ1 , . . . , λm , µ1 , . . . , µk ) = 0 và
iii) λi gi (x∗ ) = 0, i = 1, . . . , m.

Chú ý 4.7.
i) Dễ thấy

m ∑
k
∗ ∗ ∗
∇x L(x , λ1 , . . . , λm , µ1 , . . . , µk ) = ∇f (x )+ λi ∇gi (x )+ µj ∇hj (x∗ );
i=1 j=1

ii) Giả sử f , gi , i = 1, . . . , m và hj , j = 1, . . . , k là các hàm khả vi liên tục cấp


hai trong lân cận của điểm x∗ và x∗ là một điểm KKT của bài toán (P1rb ).
Khi đó, với d ∈ Rn có ∥d∥ đủ nhỏ, khai triển Taylor của hàm Lagrange tại
x∗ là
1
L(x∗ + d, λ, µ) = L(x∗ , λ, µ) + dT ∇x L(x∗ , λ, µ) + dT ∇2 L(ξ, λ, µ)d
2
1
= L(x∗ , λ, µ) + dT ∇2 L(ξ, λ, µ)d,
2
trong đó ξ nằm giữa x∗ và x∗ + d, λ = (λ1 , . . . , λm )T , µ = (µ1 , . . . , µk )T .
Như đã biết, nếu ma trận ∇2 L(x∗ , λ, µ) xác định dương thì ∇2 L(ξ, λ, µ)
cũng xác định dương và x∗ là một nghiệm cực tiểu địa phương chặt của
(P1rb ).

Sau đây là phát biểu lại của Định lý 6.17 cho quy hoạch lồi
min {f (x) | gi (x) ≤ 0, i = 1, . . . , m}. (P1conv )
Định lý 4.18. Giả sử f , gi , i = 1, . . . , m là các hàm lồi khả vi trên một tập
mở chứa X và điều kiện Slater được thỏa mãn. Khi đó x∗ ∈ Rn là nghiệm cực
tiểu của bài toán (P1conv ) khi và chỉ khi x∗ thỏa mãn điều kiện KKT sau:
i) gi (x∗ ) ≤ 0, i = 1, . . . , m;
ii) Tồn tại các số thực λ1 ≥ 0, . . . , λm ≥ 0 sao cho
∇x L(x∗ , λ1 , . . . , λm ) = 0 và
iii) λi gi (x∗ ) = 0, i = 1, . . . , m.
154

Trong trường hợp điều kiện chính quy thỏa mãn, theo Định lý 6.18, thuật
toán sau cho phép xác định được các điểm KKT của bài toán (P1rb ).

Thuật toán 6.10.


Bước 1. Lập hàm Lagrange:


m ∑
k
L(x, λ1 , . . . , λm , µ1 , . . . , µk ) = f (x) + λi gi (x) + µj hj (x).
i=1 j=1

Bước 2. Giải hệ KKT sau:



 ∇x L(x, λ1 , . . . , λm , µ1 , . . . , µk ) = 0



 λ1 ≥ 0, . . . , λm ≥ 0

λi gi (x) = 0, i = 1, . . . , m (6.21)



 gi (x) ≤ 0, i = 1, . . . , m


hj (x) = 0, j = 1, . . . , k.

Mỗi một nghiệm x̄ của hệ này tương ứng với một bộ tham số λ̄1 , . . . , λ̄m ,
µ̄1 , . . . , µ̄k là một điểm KKT của bài toán đang xét.

Chú ý 4.8.

i) Nếu bài toán (P1rb ) chỉ có các ràng buộc đẳng thức, tức m = 0, thì hệ
(6.21) trở thành hệ n + k ẩn, n + k phương trình sau:


 ∑k
 ∇ L(x, µ , . . . , µ ) = ∇f (x) + µj ∇hj (x) = 0
x 1 k
(6.22)


j=1

h1 (x) = 0, . . . , hk (x) = 0.

Trong trường hợp này bài toán (P1rb ) thường được gọi là bài toán trơn với
ràng buộc đẳng thức.
ii) Nếu k = 0, tức bài toán chỉ có các ràng buộc bất đẳng thức, thì hệ (6.21)
trở thành:

 ∑m

 ∇x L(x, λ1 , . . . , λm ) = ∇f (x) + λi ∇gi (x) = 0



 i=1

 λi gi (x) = 0, ∀ i = 1, . . . , m (6.23)



 λ1 ≥ 0, . . . , λm ≥ 0


g1 (x) ≤ 0, . . . , gm (x) ≤ 0.
155

Thêm vào đó, nếu các hàm f , gi , i = 1, . . . , m là lồi thì bài toán (P1rb ) trở
thành bài toán quy hoạch lồi (P1conv ). Khi đó người ta thường gọi bài toán
này là bài toán lồi với ràng buộc bất đẳng thức. Trong trường hợp này, mỗi
nghiệm x∗ của hệ (6.23) tương ứng với một bộ λ∗1 , . . . , λ∗m là một nghiệm
cực tiểu của bài toán (Định lý 6.19).
iii) Nếu bài toán (P1rb ) chỉ có một ràng buộc m = 1 (hoặc k = 1) thì điều kiện
chính quy thỏa mãn với mọi x mà tại đó ∇g1 (x) ̸= 0 (hoặc ∇h1 (x) ̸= 0).
Ví dụ 4.13. Xét bài toán:
min{f (x) = x31 + x32 + x33 | x21 + x22 + x23 = 4}.
Tập chấp nhận được của bài toán này là một mặt cầu trong R3 nên nó là
tập compac. Hàm mục tiêu là hàm liên tục. Do đó, theo Định lý Weierstrass
(Hệ quả 1.1), bài toán này có nghiệm. Ta có n = 3, m = 0, k = 1, h1 (x) =
x21 + x22 + x23 − 4 = 0,
 2  
3x1 2x1
   
∇f (x) =  3x22  và ∇h1 (x) =  2x2  ̸= 0 ∀x ̸= 0.
3x23 2x3

Vì vậy điều kiện chính quy được thỏa mãn tại mọi điểm chấp nhận được của
bài toán. Quá trình tính toán giải bài toán này theo Thuật toán 6.10 như sau:
• Lập hàm Lagrange:
L(x, µ1 ) = f (x) + µ1 h1 (x) = x31 + x32 + x33 + µ1 (x21 + x22 + x23 − 4).

• Giải hệ phương trình n + k = 4 ẩn, 4 phương trình:


 ′ 
 Lx1 = 3x21 + 2µ1 x1 = 0  (3x1 + 2µ1 )x1 =0
{ 
 

∇x L(x, µ1 ) = 0  ′
Lx2 = 3x2 + 2µ1 x2 = 0
2  (3x2 + 2µ1 )x2 =0
⇔ ⇔
h1 (x) = 0 
 L′x = 3x23 + 2µ1 x3 = 0 
 (3x3 + 2µ1 )x3 =0

 3 

x21 + x22 + x23 = 4 x21 + x22 + x23 = 4.

Ta xét các trường hợp có thể xảy ra:


1. Nghiệm x = (x1 , x2 , x3 )T có một tọa độ khác 0, hai tọa độ bằng 0. Chẳng
hạn,
x1 ̸= 0, x2 = x3 = 0 =⇒ x1 = ±2 tương ứng với µ1 = ∓3.
Như vậy, trong trường hợp này ta có các điểm KKT sau:
(±2, 0, 0)T , (0, ±2, 0)T , và (0, 0, ±2)T .
156

2. Nghiệm x = (x1 , x2 , x3 )T có hai tọa độ khác 0, một tọa độ bằng 0. Chẳng


hạn, x1 ̸= 0, x2 ̸= 0, x3 = 0. Từ hai phương trình đầu suy ra x1 = x2√=
− 32 µ1 . Kết hợp điều này với phương trình cuối, ta có x1 = x2 = ± 2
tương ứng với µ1 = ∓ √32 . Vậy, trong trường hợp này, ta có các điểm KKT
sau: √ √ √ √ √ √
( 2, 2, 0)T , ( 2, 0, 2)T , (0, 2, 2)T ,
√ √ √ √ √ √
(− 2, − 2, 0)T , (− 2, 0, − 2)T , (0, − 2, − 2)T .

3. Nghiệm x = (x1 , x2 , x3 )T có cả ba tọa độ khác 0. Từ ba phương trình đầu


suy ra x1 = x2 = x3 = − 23 µ1 . Kết hợp điều này với phương trình cuối, ta
được
2
x1 = x2 = x3 = ± √ .
3
Trường hợp này có hai điểm KKT là
( 2 2 2 )T ( 2 2 2 )T
√ ,√ ,√ , − √ ,− √ ,− √
3 3 3 3 3 3

tương ứng với µ1 = ∓ 3.

Vì tập chấp nhận được của bài toán đang xét là tập compac nên hàm mục tiêu
f phải đạt giá trị cực tiểu và giá trị cực đại tại các điểm nào đó thuộc tập các
điểm KKT vừa tính được ở trên. Tính toán trực tiếp và so sánh giá trị của hàm
f tại các điểm này, ta có giá trị cực tiểu của f là −8 tương ứng với ba nghiệm
cực tiểu của bài toán là

(−2, 0, 0)T , (0, −2, 0)T , (0, 0, −2)T .

Ví dụ 4.14. Xét bài toán tối ưu có ràng buộc:

min f (x) v.đ.k. x ∈ D,

trong đó
D := {x ∈ R2 | x21 + x22 ≤ 1}
và hàm mục tiêu lồi chặt f (x) = x21 + x1 x2 + x22 + 3(x1 + x2 − 2) (như hàm mục
tiêu trong Ví dụ 6.6).
Bài toán này có n = 2, m = 1, k = 0, g1 (x) = x21 +x22 −1 ≤ 0. Dễ thấy g1 (x)
là hàm lồi và điều kiện Slater được thỏa mãn, tức tồn tại x̄ ∈ D có g1 (x̄) < 0.
Do đó, điều kiện chính quy được thỏa mãn tại mọi điểm chấp nhận được của
bài toán. Bài toán này là một bài toán quy hoạch lồi với hàm mục tiêu lồi chặt.
Theo Mệnh đề 6.5 (ii), nó có duy nhất nghiệm.
157

• Hàm Lagrange tương ứng với bài toán này là:

L(x, λ1 ) = x21 + x1 x2 + x22 + 3(x1 + x2 − 2) + λ1 (x21 + x22 − 1).

• Giải hệ:
 ′
  Lx1 = 2x1 + x2 + 3 + 2λ1 x1 = 0



 ∇x L(x, λ1 ) = 0 
 ′

 λ g (x) = 0  Lx2 = x1 + 2x2 + 3 + 2λ1 x2 = 0

1 1
⇔ λ1 (x21 + x22 − 1) = 0

 λ1 ≥ 0 


 
 λ1 ≥ 0
g1 (x) ≤ 0 

 x +x −1≤0
2 2
1 2


 2(1 + λ1 )x1 + x2 = −3



 x1 + 2(1 + λ1 )x2 = −3

⇔ λ1 (x21 + x22 − 1) = 0



 λ1 ≥ 0


 x + x − 1 ≤ 0.
2 2
1 2

Từ hai phương trình đầu tiên của hệ này suy ra x1 = x2 .


Nếu λ1 = 0 thì ta có x1 = x2 = −1. Vì điểm (−1, −1)T không phải là điểm
chấp nhận được của bài toán đang xét nên kết luận rằng λ1 ̸= 0.
Do λ1 ̸= 0 nên từ phương trình thứ ba √của hệ này ta có x21 + x22 = 1. Kết
hợp với sự kiện x1 = x2 suy ra x1 = x2 = ± 22 .

⋄ Nếu x1 = x2 = 22 thì λ1 < 0. Điều kiện λ1 ≥ 0 không được thỏa mãn nên
loại trường hợp này.
√ √ √
⋄ Nếu x1 = x2 = − 22 thì λ1 > 0. Vậy x∗ = (− 22 , − 22 )T là điểm KKT của
bài toán này. Vì đây là bài toán quy hoạch lồi nên x∗ cũng là nghiệm cực
tiểu toàn cục (Định lý 6.19).

Nhận xét 4.11. Qua Ví dụ 6.6 và Ví dụ 6.23, ta thấy rằng với cùng hàm mục
tiêu f (x) nhưng nghiệm cực tiểu của bài toán tối ưu không ràng buộc và bài
toán tối ưu có ràng buộc khác nhau.
Ví dụ 4.15. Xét bài toán:
1 1
min f (x) = x21 + x22 v.đ.k. x ∈ D,
2 2
trong đó D := {x ∈ R2 | − x1 + x2 ≤ 1, x1 + 2x2 ≥ 2, x1 ≤ 3}.
158

Đây là bài toán quy hoạch lồi với hàm mục tiêu lồi chặt nên nó có một nghiệm
cực tiểu (cũng là điểm KKT) duy nhất. Trong bài toán này, n = 2, m = 3,
g1 (x) = −x1 + x2 − 1 ≤ 0, g2 (x) = −x1 − 2x2 + 2 ≤ 0, g3 (x) = x1 − 3 ≤ 0.
• Lập hàm Lagrange:

1 1
L(x, λ1 , λ2 , λ3 ) = x21 + x22 + λ1 (−x1 + x2 − 1) + λ2 (−x1 − 2x2 + 2) + λ3 (x1 − 3).
2 2

• Hệ KKT tương ứng với bài toán này là:


 ′

 Lx1 = x1 − λ1 − λ2 + λ3 = 0



 L′x2 = x2 + λ1 − 2λ2 = 0


 
 λ1 (−x1 + x2 − 1) = 0



 ∇ x L(x, λ 1 , λ 2 , λ 3 ) = 0 


 λ g (x) = 0, i = 1, 2, 3 
 λ2 (−x1 − 2x2 + 2) = 0
i i
⇔ λ3 (x1 − 3) = 0 (6.24)

 λ1 ≥ 0, λ2 ≥ 0, λ3 ≥ 0 


 
 λ1 ≥ 0, λ2 ≥ 0, λ3 ≥ 0
gi (x) ≤ 0, i = 1, 2, 3 


 −x1 + x2 − 1 ≤ 0





 −x1 − 2x2 + 2 ≤ 0

 x1 − 3 ≤ 0.

Ta xét các trường hợp có thể xảy ra:

1. Nếu λ1 = λ2 = λ3 = 0 thì từ hai phương trình đầu ta có x1 = x2 = 0. Khi


đó, bất phương trình thứ tám của hệ (6.24) bị vi phạm ⇒ Loại trường hợp
này.

2. Có λ1 ̸= 0, λ2 = λ3 = 0. Khi đó, hệ (6.24) trở thành:




 x1 − λ1 = 0



 x 2 + λ1 = 0




 −x1 + x2 − 1 = 0
λ1 > 0



 −x1 + x2 − 1 ≤ 0



 −x1 − 2x2 + 2 ≤ 0



x1 − 3 ≤ 0.

Suy ra x1 = −x2 = λ1 , cụ thể x2 = 0.5, x1 = −0.5 và λ1 = −0.5 < 0. Do


đó loại trường hợp này.
159

3. Có λ1 = 0, λ2 ̸= 0, λ3 = 0. Khi đó, hệ (6.24) trở thành:




 x1 − λ2 = 0



 x2 − 2λ2 = 0




 −x1 − 2x2 + 2 = 0
λ2 > 0



 −x1 + x2 − 1 ≤ 0



 −x1 − 2x2 + 2 ≤ 0



x1 − 3 ≤ 0.

Dễ thấy, x2 = 2x1 và x1 = 25 , x2 = 45 , λ2 = 25 > 0. Các bất phương trình và


phương trình của hệ (6.24) đều thỏa mãn với x = ( 52 , 45 )T . Ta nhận được
điểm KKT x∗ = ( 52 , 54 )T . Vậy, x∗ cũng là nghiệm cực tiểu duy nhất của bài
toán.

4.3.3 Phương pháp tuyến tính hóa giải quy hoạch lồi
Xét bài toán quy hoạch lồi:

min f (x) v.đ.k. x ∈ X, (P1conv )

trong đó X = {x ∈ Rn | gi (x) ≤ 0, i = 1, . . . , m} là tập lồi compac và f, gi ,


i = 1, . . . , m là các hàm lồi khả vi trên Rn .
Bằng việc thêm biến mới t và ràng buộc t ≥ f (x), có thể chứng minh rằng
(Bài tập) bài toán (P1conv ) tương đương với bài toán sau:

min t
v.đ.k. gi (x) ≤ 0, i = 1, . . . , m
gm+1 (x) ≤ 0,

trong đó gm+1 (x) = f (x) − t. Vì vậy, ta chỉ cần xét bài toán có dạng:

min ⟨c, x⟩ v.đ.k. x ∈ X, (P2conv )

trong đó tập chấp nhận được X := {x ∈ Rn | gi (x) ≤ 0, i = 1, . . . , m} là tập


lồi compac, gi , i = 1, . . . , m, là các hàm lồi khả vi trên Rn và c ∈ Rn .

Ý tưởng của phương pháp xấp xỉ tuyến tính là đưa việc giải bài toán quy
hoạch lồi (P2conv ) về việc giải một dãy các bài toán quy hoạch tuyến tính:

min{⟨c, x⟩ | x ∈ Xk },
160

với Xk , k = 1, 2, 3, . . . , là các đa diện lồi thỏa mãn

X1 ⊃ X2 ⊃ · · · ⊃ X,

mà dãy nghiệm tối ưu {xk } tương ứng của chúng hội tụ đến nghiệm của bài
toán này.
Sau đây là thuật toán xấp xỉ tuyến tính giải bài toán (P2conv ) do Kelley đề
xuất năm 1960:

Thuật toán 6.11.

Bước chuẩn bị. Xây dựng đa diện ban đầu X1 sao cho X1 ⊇ X. (Cách xây
dựng X1 sẽ được trình bày ngay sau khi mô tả thuật toán). Đặt k := 1.
Bước lặp k. (k = 1, 2 . . . )

(k1 ) Giải quy hoạch tuyến tính min{⟨c, x⟩|x ∈ Xk } được nghiệm tối ưu xk .

(k2 ) If gi (xk ) ≤ 0 ∀ i = 1, . . . , m Then Dừng thuật toán


(lấy xk là nghiệm tối ưu của (P2conv ))
Else ( ∃j ∈ {1, . . . , m}: gj (xk ) > 0) Chuyển tới Bước k3 .

(k3 ) Xác định gik (xk ) = max{gi (xk ) | 1 ≤ i ≤ m} và đặt


⟨ ⟩
Xk+1 := Xk ∩ {x | ∇gik (xk ), x − xk + gik (xk ) ≤ 0}.

Đặt k := k + 1 và quay lại Bước lặp k.

Lưu ý rằng, tại Bước (k3 ) của thuật toán trên:

i) Ta luôn có ∇gik (xk ) ̸= 0. Lý do là: nếu ngược lại thì do gik là hàm lồi nên
theo Hệ quả 6.1, ta có
⟨ ⟩
gik (x) ≥ gik (xk ) + ∇gik (xk ), x − xk > 0 ∀x

và điều này có nghĩa là tập chấp nhận được X của bài toán đang xét bằng
rỗng;
ii) Siêu phẳng
⟨ ⟩
{x ∈ Rn | ∇gik (xk ), x − xk + gik (xk ) = 0}

để xây dựng đa diện Xk+1 được gọi là siêu phẳng cắt. Đây chính là siêu
phẳng tách tập lồi đóng X và điểm xk ̸∈ X.
161

Sau đây ta sẽ trình bày cách xây dựng đa diện lồi xuất phát X1 ⊃ X.
Cho trước điểm x̄ ∈ Rn . Vì mỗi hàm gi , i ∈ {1, . . . , m}, là hàm lồi khả vi
nên ta có (Hệ quả 6.1)

⟨∇gi (x̄), x − x̄⟩ ≤ gi (x) − gi (x̄) ∀x ∈ Rn .

Đặt
hi (x) = ⟨∇gi (x̄), x − x̄⟩ + gi (x̄).
Rõ ràng, với mỗi i ∈ {1, . . . , m} ta có hi (x) là hàm afin thỏa mãn:

hi (x) ≤ gi (x) ∀x ∈ Rn
hi (x̄) = gi (x̄).

Đặt X̄ = {x ∈ Rn | hi (x) ≤ 0, i = 1, . . . , m}. Dễ thấy X̄ là tập lồi đa diện và


X ⊂ X̄ (Bài tập).
Về nguyên tắc, ta có thể lấy p (p ≥ 1) điểm x̄1 , . . . , x̄p ∈ Rn sao cho

X1 = {x ∈ Rn | hij (x) ≤ 0, i = 1, . . . , m; j = 1, . . . , p},

là một đa diện lồi chứa X, trong đó

hij (x) = ⟨∇gi (x̄j ), x − x̄j ⟩ + gi (x̄j ).

Ví dụ 4.16. Xét bài toán:

min x1 v.đ.k. x ∈ D,

trong đó D := {x ∈ R2 | (x1 − 1)2 + x22 ≤ 4; x21 + x22 ≤ 4}.


Bài toán có n = 2, m = 2,

g1 (x) = (x1 − 1)2 + x22 − 4 ≤ 0, g2 (x) = x21 + x22 − 4 ≤ 0,


( ) ( )
2(x1 − 1) 2x1
∇g1 (x) = , ∇g2 (x) = .
2x2 2x2
• Bước chuẩn bị (Xây dựng đa diện xuất phát D1 ): Chọn ba điểm

x̄1 = (0, 1)T , x̄2 = (0, −1)T và x̄3 = (2, 0)T .

⋄ Với x̄1 = (0, 1)T :


( ) ( )
−2 0
∇g1 (x̄ ) =
1
, ∇g2 (x̄ ) =
1
; g1 (x̄1 ) = −2; g2 (x̄1 ) = −3.
2 2
162

h11 (x) = ⟨∇g1 (x̄1 ), x − x̄1 ⟩ + g1 (x̄1 ) = −2x1 + 2x2 − 4 ≤ 0;


h21 (x) = ⟨∇g2 (x̄1 ), x − x̄1 ⟩ + g2 (x̄1 ) = 2x2 − 5 ≤ 0.

⋄ Với x̄2 = (0, −1)T :

( ) ( )
−2 0
∇g1 (x̄ ) =
2
, ∇g2 (x̄ ) =
2
; g1 (x̄2 ) = −2; g2 (x̄2 ) = −3.
−2 −2

h12 (x) = ⟨∇g1 (x̄2 ), x − x̄2 ⟩ + g1 (x̄2 ) = −2x1 − 2x2 − 4 ≤ 0;


h22 (x) = ⟨∇g2 (x̄2 ), x − x̄2 ⟩ + g2 (x̄2 ) = −2x2 − 5 ≤ 0.

⋄ Với x̄3 = (2, 0)T :

( ) ( )
2 4
∇g1 (x̄ ) =
3
, ∇g2 (x̄ ) =
3
; g1 (x̄3 ) = −3; g2 (x̄3 ) = 0.
0 0

h13 (x) = ⟨∇g1 (x̄3 ), x − x̄3 ⟩ + g1 (x̄3 ) = 2x1 − 7 ≤ 0;


h23 (x) = ⟨∇g2 (x̄3 ), x − x̄3 ⟩ + g2 (x̄3 ) = 4x1 − 8 ≤ 0.

Ta được tập đa diện D1 ⊃ D xác định bởi

D1 := {x ∈ R2 | hij (x) ≤ 0, i = 1, 2, j = 1, 2, 3}.

Dễ thấy ràng buộc h22 = 4x1 − 8 ≤ 0 là thừa. Vì vậy ta có

D1 = {x ∈ R2 | − x1 + x2 ≤ 2; x2 ≤ 2.5; −x1 − x2 ≤ 2; x2 ≥ −2.5; x1 ≤ 2}

(xem Minh họa ở Hình 6.14). Đặt k := 1 và sang Bước lặp k = 1.


163

x2 −x1 + x2 = 2

x2 = 2.5

−2 0 2 3 x1

x1 = 2
−2

x2 = −2.5

−x1 − x2 = 2
Hình 6.14

• Bước lặp 1.

Bước 11 . Giải quy hoạch tuyến tính min{f (x) = x1 | x ∈ D1 } được


nghiệm tối ưu là x1 = (−2, 0)T .
Bước 12 . Vì g1 (x1 ) = 5 > 0 nên chuyển Bước 13 .
Bước 13 . Ta có g1 (x1 ) = 5 > g2 (x1 ) = 0 nên chọn i1 = 1 và đặt
⟨ ⟩
D2 := D1 ∩ {x ∈ R2 | ∇g1 (x1 ), x − x1 + g1 (x1 ) ≤ 0}
{ 7}
= D1 ∩ x ∈ R | x1 ≥ − .
2
6

Đặt k := k + 1 = 2 và chuyển sang Bước lặp k = 2.

• Bước lặp 2.

Bước 21 . Giải quy hoạch [ tuyến tính min{f (x) ] = x1 | x ∈ D2 } được tập
nghiệm tối ưu là đoạn (− 76 , 56 )T , (− 76 , − 56 )T . Ta lấy một nghiệm tối ưu
đại diện là x2 = (− 67 , 0)T .
25
Bước 22 . Vì g1 (x2 ) = 36
> 0 nên chuyển Bước 23 .
164

Bước 23 . Vì g1 (x2 ) = 25
36
> g2 (x2 ) = − 95
36
nên chọn i2 = 1 và đặt
⟨ ⟩
D3 := D2 ∩ {x ∈ R2 | ∇g1 (x2 ), x − x2 + g1 (x2 ) ≤ 0}
157
= D2 ∩ {x ∈ R2 | x1 ≥ − }.
156

Đặt k := k + 1 = 3 và chuyển sang Bước lặp k = 3.

• Bước lặp 3.

Bước 31 . Giải quy hoạch tuyến tính min{f (x) = x1 | x ∈ D3 } và lấy một
157
nghiệm tối ưu đại diện là x3 = (− 156 , 0)T .

Bước 32 . Vì g1 (x3 ) ≈ 0.025682 > 0 nên chuyển Bước 23 .

Bước 33 . Vì g1 (x3 ) ≈ 0.025682 > g2 (x3 ) ≈ −2.98714 nên chọn i3 = 1 và


đặt
⟨ ⟩
D4 := D3 ∩ {x ∈ R2 | ∇g1 (x3 ), x − x3 + g1 (x3 ) ≤ 0}
= D3 ∩ {x ∈ R2 | x1 ≥ −0.9978886}.

Đặt k := k + 1 = 4 và chuyển sang Bước lặp k = 4.

• Bước lặp 4.

Bước 41 . Giải quy hoạch tuyến tính min{f (x) = x1 | x ∈ D3 } và lấy một
nghiệm tối ưu đại diện là x4 = (−0.9978886, 0)T .

Bước 42 . Vì g1 (x4 ) ≈ 0.008441142 ≈ 0 và g2 (x4 ) ≈ −3.0042183 < 0 nên


dừng thuật toán và lấy nghiệm xấp xỉ là x∗ = (−0.9978886, 0)T .

Bằng biểu diễn hình học, dễ thấy rằng nghiệm tối ưu của bài toán này là
(−1, 0)T .

Định lý 4.19. (Định lý hội tụ) ([27], trang 53) Giả sử rằng g1 , . . . , gm là các
hàm lồi khả vi và tập chấp nhận được X của bài toán (P2conv ) là tập compac.
Khi đó, dãy {xk } sinh ra bởi Thuật toán 6.11 có một dãy con hội tụ đến nghiệm
cực tiểu của bài toán.
165

4.3.4 Phương pháp hướng có thể giải bài toán cực tiểu hàm trơn với
ràng buộc tuyến tính
Xét bài toán:
min f (x) v.đ.k. x ∈ X, (P2rb )
trong đó f là hàm phi tuyến khả vi trên Rn và X ⊂ Rn là tập lồi đa diện khác
rỗng xác định bởi
X := {x ∈ Rn | Ax ≤ b, Ex = e},
với A là ma trận cấp m × n với các hàng ai ∈ Rn , i = 1, . . . , m, E là ma trận
cấp k × n, b ∈ Rm và e ∈ Rk .

Ý tưởng của phương pháp hướng có thể (Method of feasible direction) do


Zoutendijk đề xuất năm 1960 để giải bài toán (P2rb ) là: Xuất phát từ một điểm
chấp nhận được bất kỳ x0 ∈ X, ta xây dựng một dãy điểm x1 , x2 , x3 , . . . sao
cho:
xk+1 := xk + tk dk ∈ X với tk > 0, f (xk+1 ) < f (xk ) (6.25)
và dãy {xk } hội tụ đến x∗ là một điểm KKT của bài toán đang xét. Véc tơ dk
thỏa mãn (6.25) là một hướng giảm chấp nhận được của bài toán (P2rb ) và tk là
độ dài bước. Do tập chấp nhận được là tập lồi đa diện nên nếu hàm mục tiêu
f (x) là hàm lồi thì điểm x∗ này cũng chính là nghiệm cực tiểu toàn cục của bài
toán đang xét (Định lý 6.17).

a. Cơ sở lý thuyết
Định nghĩa. Cho điểm x0 ∈ X. Véc tơ d ∈ Rn \ {0} được gọi là một hướng có
thể (hay hướng chấp nhận được) (feasible direction) của tập X tại x0 nếu tồn
tại một số t∗ > 0 sao cho
x0 + td ∈ X với mọi t thỏa mãn 0 < t ≤ t∗ ,
nghĩa là khi di chuyển từ điểm x0 theo hướng d một đoạn đủ nhỏ, ta sẽ không
đi vượt ra ngoài miền chấp nhận được X. Ký hiệu F (X, x0 ) là tập các hướng
chấp nhận được của tập X tại x0 .

Nhận xét 4.12.

i) Bao đóng của tập các hướng chấp nhận được của X tại x0 ∈ X bằng nón
tiếp xúc với tập X tại x0 , tức
clF (X, x0 ) = T (X, x0 ).

ii) Nếu X là tập lồi thì x − x0 là hướng chấp nhận được của tập X tại x0 ∈ X
với mọi x ∈ X (Bài tập).
166

Định nghĩa. Véc tơ d ∈ Rn \ {0} được gọi là hướng dùng được (usable feasible
direction) hoặc hướng giảm chấp nhận được (improving feasible direction) của
bài toán (P2rb ) tại x0 nếu nó vừa là hướng giảm của hàm f tại x0 , vừa là hướng
chấp nhận được của tập X tại x0 , tức tồn tại một số t∗ > 0 sao cho

x0 + td ∈ X và f (x0 + td) < f (x0 ) với mọi t thỏa mãn 0 ≤ t ≤ t∗ .

Cho điểm chấp nhận được xk . Ký hiệu


{ }

I(xk ) := i ∈ {1, . . . , m} ⟨ai , xk ⟩ = bi .

Mệnh đề sau đây chỉ ra điều kiện cần và đủ để một véc tơ d ∈ Rn là hướng chấp
nhận được của tập X.
Mệnh đề 4.13. Cho điểm xk ∈ X. Khi đó vec tơ d là hướng chấp nhận được
của X tại xk khi và chỉ khi ⟨ai , d⟩ ≤ 0 với mọi i ∈ I(xk ) và Ed = 0.
Chứng minh.

(⇒) Giả sử d ∈ Rn là hướng chấp nhận được của X tại xk . Theo định nghĩa,
tồn tại số thực t∗ > 0 sao cho với mọi t ∈ (0, t∗ ] ta có xk + td ∈ X , tức

⟨ai , xk + td⟩ = ⟨ai , xk ⟩ + t⟨ai , d⟩ ≤ bi , ∀ i = 1, . . . , m, (6.26)


E(xk + td) = |{z}
Exk +tEd = e. (6.27)
=e

Từ (6.26) suy ra ⟨ai , d⟩ ≤ 0 với mọi i ∈ I(xk ) vì ⟨ai , xk ⟩ = bi với mọi


i ∈ I(xk ) ⊂ {1, . . . , m} và t > 0. Còn biểu thức Ed = 0 dễ dàng nhận
được từ (6.27).
(⇐) Ngược lại, giả sử ⟨ai , d⟩ ≤ 0 với mọi i ∈ I(xk ) và Ed = 0. Khi đó ta có

E(xk + td) = Exk + tEd = e ∀ t ∈ R.

Hơn nữa,
⋄ Với mỗi i ∈ I(xk ) ta có

⟨ai , xk + td⟩ = ⟨ai , xk ⟩ + t⟨ai , d⟩ ≤ ⟨ai , xk ⟩ = bi , ∀ t > 0.

⋄ Với mỗi i ̸∈ I(xk ) ta có ⟨ai , xk ⟩ < bi và

⟨ai , xk + td⟩ = ⟨ai , xk ⟩ + t⟨ai , d⟩ < bi + t⟨ai , d⟩.


167

Do đó, nếu ⟨ai , d⟩ ≤ 0 thì ⟨ai , xk + td⟩ < bi với mọi t > 0. Còn nếu
⟨ai , d⟩ > 0 thì

bi − ⟨ai , xk ⟩
⟨ai , xk + td⟩ < bi với mọi t ≤ .
⟨ai , d⟩

Bây giờ, đặt


{ ⟨ ⟩ }
bi − ai , xk ⟨ ⟩
t∗ = min i ̸∈ I(xk ) và ai , d > 0 .
⟨a , d⟩
i

Ta có xk + td ∈ X với mọi t ∈ (0, t∗ ], chứng tỏ d là hướng chấp nhận được


của X tại xk . 

Nhận xét 4.13. Cho điểm chấp nhận được xk ∈ X và véc tơ dk ∈ Rn . Ký hiệu
{ }
∗ k
I = i ∈ {1, . . . , m}\I(x ) ⟨a , d ⟩ > 0 .
i k

Khi đó xk + tdk ∈ X với mọi t ∈ (0, t∗ ], trong đó


 { }

 min bi − ⟨a , x ⟩
i k

i∈I , nếu I ∗ ̸= ∅
t∗ = ⟨ai , d⟩ (6.28)

 + ∞, ∗
nếu I = ∅.

Mệnh đề 4.14. Nếu véc tơ d ∈ Rn \ {0} thỏa mãn

⟨ai , d⟩ ≤ 0, ∀ i ∈ I(xk ); Ed = 0 và ⟨∇f (xk ), d⟩ < 0

thì d là hướng giảm chấp nhận được của bài toán (P2rb ).

Chứng minh. Suy trực tiếp từ Mệnh đề 6.7 và Mệnh đề 6.13. 

Mệnh đề 4.15. Điểm xk là điểm KKT của bài toán (P2rb ) khi và chỉ khi bài
toán quy hoạch tuyến tính sau có giá trị tối ưu bằng 0:

min ⟨∇f (xk ), d⟩, (6.29)


⟨ ⟩
v.đ.k. ai , d ≤ 0, ∀i ∈ I(xk )
Ed = 0,
− 1 ≤ di ≤ 1, ∀i = 1, . . . , n.
168

Chứng minh. Xem [1], trang 411 − 412. 

b. Thuật toán 6.12. (Giải bài toán (P2rb ))

Bước khởi đầu. Xác định một đỉnh x0 ∈ X (có thể dùng Pha 1 của thuật toán
đơn hình). Đặt k = 0.
Bước lặp k. (k = 0, 1, 2, . . . )

(k1 ) Giải quy hoạch tuyến tính (6.29) được nghiệm tối ưu dk .
If ⟨∇f (xk ), dk ⟩ = 0 Then Dừng thuật toán (xk là điểm KKT )
Else Chuyển tới Bước k2 .

(k2 ) Tính t∗ theo công thức (6.28).

(k3 ) Xác định xk+1 := x{k + tk dk , trong đó tk là} nghiệm của bài toán cực tiểu
hàm một biến min f (xk + tdk ) | t ∈ [0, t∗ ] .

(k4 ) Đặt k := k + 1 và quay về Bước lặp k.

Chú ý 4.9. Như đã thấy, Thuật toán 6.12 giải bài toán (P2rb ) rất đơn giản,
nhưng rất tiếc, nói chung, tính hội tụ của thuật toán không được đảm bảo. Năm
1967, Topkis và Veinott đã cải tiến nó và nhận được thuật toán hội tụ giải bài
toán này (xem [1], trang 423 − 432). Mục tiếp theo đây sẽ trình bày một thuật
toán hội tụ thường được sử dụng để giải bài toán (P2rb ) trong trường hợp hàm
mục tiêu f là hàm lồi.

4.3.5 Phương pháp Frank-Wolfe giải bài toán quy hoạch lồi với ràng
buộc tuyến tính
Xét quy hoạch lồi
min f (x) v.đ.k. x ∈ X, (P3conv )
trong đó f là hàm lồi trên Rn và X ⊂ Rn là tập lồi đa diện xác định bởi

X = {x ∈ Rn | Ax ≤ b},

với A là ma trận cấp m × n và véc tơ b ∈ Rm .

Mục này trình bày thuật toán Frank và Wolfe đề xuất năm 1956 để giải bài
toán (P3conv ) với giả thiết hàm tuyến tính ⟨∇f (x̂), x⟩ bị chặn dưới trên X với
mỗi x̂ ∈ Rn . Hiển nhiên rằng nếu X là đa diện thì giả thiết này luôn được thỏa
mãn.
169

Cho điểm chấp nhận được xk ∈ X. Vì X là tập lồi đa diện nên x − xk là


hướng chấp nhận được của X tại xk với mọi x ∈ X (Nhận xét 6.12 (ii)). Xét
bài toán quy hoạch tuyến tính
min{⟨∇f (xk ), x − xk ⟩ | x ∈ X}.
Giả sử uk ∈ X là nghiệm tối ưu của bài toán này. Khi đó:
⋄ Nếu giá trị tối ưu ⟨∇f (xk ), uk − xk ⟩ ≥ 0 thì ⟨∇f (xk ), x − xk ⟩ ≥ 0 với mọi
x ∈ X. Theo Hệ quả 6.5, xopt = xk là nghiệm cực tiểu của bài toán đang
xét.
⋄ Ngược lại, nếu giá trị tối ưu ⟨∇f (xk ), uk − xk ⟩ < 0 thì uk − xk là một
hướng giảm chấp nhận được của bài toán (P3conv ) (Mệnh đề 6.8).

Sau đây là thuật toán Frank-Wolfe giải bài toán quy hoạch lồi (P3conv ).
Thuật toán 6.13. (Thuật toán Frank-Wolfe)
Bước khởi đầu. Tìm một điểm bất kỳ x0 ∈ X. Đặt k := 0.
Bước lặp k. (k = 0, 1, 2, . . . )
(k1 ) Giải bài toán quy hoạch tuyến tính
⟨ ⟩
min ∇f (xk ), x − xk v.đ.k. x ∈ X
được phương án tối ưu uk ∈ X.
(k2 ) (kiểm tra điều kiện tối ưu)
⟨ ⟩
If ∇f (xk ), uk − xk ≥ 0 Then Dừng thuật toán (lấy xopt := xk )
Else Đặt dk := uk − xk và chuyển Bước (k3 ).
(k3 ) Xác định điểm xk+1 := xk + tk dk , trong đó
{ }
tk = argmin φ(t) = f (x + td ) | t ∈ [0, 1] .
k k

(k4 ) If ∇f (xk+1 ) ≈ 0 Then Dừng thuật toán (xopt := xk+1 )


Else Đặt k := k + 1 và quay lại Bước lặp k.

Định lý 4.20. Giả sử f là hàm lồi chặt trên Rn và X ⊂ Rn là đa diện khác


rỗng. Khi đó, xuất phát từ một điểm bất kỳ x0 ∈ X, dãy {xk } sinh ra bởi Thuật
toán Frank-Wolfe có tính chất: dãy {f (xk )} là dãy số giảm, hội tụ đến giá trị
tối ưu fopt của bài toán (P3conv ) và
0 ≤ f (xk ) − fopt ≤ ⟨∇f (xk ), xk − uk ⟩ ∀k.
170

Chứng minh. Xem [32] (trang 116−117) hoặc [37] (trang 356−358) . 
Ví dụ 4.17. Xét lại bài toán đã xét ở Ví dụ 6.24:
1 1
min f (x) = x21 + x22 v.đ.k. x ∈ D,
2 2
trong đó D = {x ∈ R2 | − x1 + x2 ≤ 1, x1 + 2x2 ≥ 2, x1 ≤ 3}.
Ta có
( ) ( )
x1 1 0
∇f (x) = và ∇ f (x) =
2
⇒ f (x) là hàm lồi chặt.
x2 0 1

Xuất phát từ x0 = (0, 1)T với ∇f (x0 ) = (0, 1)T . Đặt k = 0.


Bước lặp k = 0.
{ }
0.1. Giải bài toán min ⟨∇f (x ), x⟩ = x2 | x ∈ D được phương án cực biên
0

tối ưu là u0 = (3, − 21 )T .
0.2. Vì
 
3
3
⟨∇f (x0 ), u0 − x0 ⟩ = (∇f (x0 ))T (u0 − x0 ) = (0 1)  3 = − < 0
− 2
2
nên x0 chưa phải nghiệm tối ưu. Đặt d0 := u0 − x0 = (3, − 32 )T . Ta có d0
là hướng giảm chấp nhận được của bài toán đang xét tại x0 .
0.3. Tìm điểm chấp nhận được x1 : Ta có
   
( ) 3 3t
0
x0 + td0 = + t  3 =  3 .
1 − 1− t
2 2
Xét hàm lồi một biến
( 3 ) 1 ( )2 1 ( 3 )2
φ(t) := f (x0 +td0 ) = f 3t, 1− t = 3t + 1− t với 0 ≤ t ≤ 1.
2 2 2 2

45 3
φ′ (t) = t− .
4 2
nên
2
φ′ (t) = 0 ⇔ t = .
15
Vậy
2 (2 4 )T
t0 = và x1 = x0 + t0 d0 = , .
15 5 5
171

( )T
0.4. Vì ∇f (x1 ) = 2 4
,
5 5
̸= (0, 0)T nên đặt k := k + 1 = 1 và chuyển Bước
lặp k = 1.

Bước lặp k = 1.

4
1.1. Giải: {⟨ }
⟩ 2
∇f (x1 ), x = x1 + x2 x ∈ D .
min
5 5
Bài toán này có hai phương án cực biên tối ưu là (0 , 1)T và (3 , − 12 )T .
Giả sử ta chọn u1 = (0 , 1)T .
1.2. Khi đó
 
2
⟨ ⟩ ( )T (2 4)  −5
∇f (x1 ), u1 − x1 = ∇f (x1 ) (u1 − x1 ) =  1  = 0.
5 5
5

Vậy xopt = x1 = ( 52 , 4 T
5
) .

Nếu trong Bước 1.1 ta chọn u1 = (3 , − 12 )T thì


 
13
⟨ ⟩ ( )T (2 4) 5 
∇f (x1 ), u1 − x1 = ∇f (x ) (u − x ) =
1 1 1
 13  = 0.
5 5

10
Do đó ta cũng kết luận được nghiệm tối ưu xopt = x1 = ( 52 , 4 T
5
) .

4.3.6 Phương pháp hàm phạt


Xét bài toán
min f (x) v.đ.k x ∈ D, (P3rb )
trong đó D là tập compac xác định bởi
D = {x ∈ Rn | gi (x) ≤ 0, i = 1, 2, . . . , m},
f và gi : Rn → R, i = 1, . . . , m, là các hàm khả vi liên tục.
Ý tưởng cơ bản của phương pháp hàm phạt là thay vì giải bài toán tối ưu
có ràng buộc (P3rb ), ta giải một dãy bài toán tối ưu không ràng buộc với hàm
mục tiêu phụ thuộc tham số α
min f (x) + αp(x) v.đ.k. x ∈ Rn ,
172

trong đó p(x) là hàm phạt, sao cho dãy nghiệm tương ứng của các bài toán
không ràng buộc này hội tụ đến nghiệm tối ưu của bài toán (P3rb ).
Mục này trình bày hai cách tiếp cận của phương pháp hàm phạt: phương
pháp hàm phạt điểm ngoài (Exterior penalty function method) và phương pháp
hàm phạt điểm trong (Interior penalty function method).

a. Phương pháp hàm phạt điểm ngoài


Trong phương pháp này, hàm phạt p(x) được định nghĩa bởi

m
p(x) = Φ(gi (x)),
i=1

trong đó Φ là hàm một biến liên tục và thỏa mãn

Φ(y) = 0 nếu y ≤ 0 và Φ(y) > 0 nếu y > 0.

Thông thường, hàm p(x) có dạng



m { } m [
∑ ]2
p(x) := max 0, gi (x) hoặc p(x) := max{0, gi (x)} .
i=1 i=1

Hàm mục tiêu của dãy bài toán tối ưu không ràng buộc tương ứng với bài toán
(P3rb ) là
φ(x, αk ) = f (x) + αk p(x),
trong đó dãy tham số {αk } là dãy số dương, đơn điệu tăng đến ∞.
Đại lượng αk p(x) là lượng phạt. Dễ thấy rằng khi x là phương án chấp nhận
được của bài toán (P3rb ) thì nó không bị phạt (lượng phạt bằng 0), nhưng khi x
không phải là phương án chấp nhận được thì nó phải chịu một lượng là αk p(x).
Ví dụ 4.18. Xét bài toán:

min{x | − x + 5 ≤ 0}.

Bài toán này có f (x) = x, m = 1 và g1 (x) = −x + 5 ≤ 0. Đặt


[ ]2
p(x) = max{0, g1 (x)} .

Khi đó {
0 nếu x ≥ 5
p(x) = 2
(−x + 5) nếu x < 5.
173

Thuật toán 6.14.


Bước chuẩn bị. Cho số ε > 0 đủ bé (để kiểm tra điều kiện dừng của thuật
toán). Chọn một điểm x1 ∈ Rn . Chọn một tham số phạt α1 > 0 và một số
µ > 1. Đặt k = 1.
Bước lặp k. (k = 1, 2, . . . )
Bước k1 . Xuất phát từ xk , giải bài toán tối ưu không ràng buộc:
min φ(x, αk ) v.đ.k x ∈ Rn .
Gọi nghiệm của bài toán này là xk+1 .
Bước k2 . If αk p(xk+1 ) < ε Then Dừng thuật toán
(lấy xk+1 là nghiệm tối ưu của bài toán (P3rb ))
Else Chuyển Bước k3 .
Bước k3 . Đặt tham số phạt mới αk+1 := µαk .
Đặt k := k + 1 và chuyển về Bước lặp k.

Định lý 4.21. Thuật toán 6.14 có các tính chất sau:


i) φ(x, α) ≥ f (x) với mọi α > 0;
ii) Dãy {φ(xk , αk )} là đơn điệu tăng;
iii) {φ(xk , αk )} hội tụ đến giá trị tối ưu của bài toán (P3rb ) khi {αk } → ∞.
Chứng minh. Xem [27], trang 59. 

b. Phương pháp hàm phạt điểm trong


Phương pháp này được sử dụng khi biết trước một điểm trong x1 của tập chấp
nhận được, tức gi (x1 ) < 0 với mọi i = 1, . . . , m. Hàm phạt p(x) phải thỏa mãn
tính chất:
i) Không âm và liên tục trên tập intD = {x ∈ Rn |gi (x) < 0, i = 1, . . . , m};
ii) p(x) → +∞ khi gi (x) → 0− .
Vì vậy, người ta còn gọi hàm phạt p(x) này là hàm chắn (barrier function). Hai
hàm chắn điển hình thường được sử dụng là

m ∑
m
1
p(x) = − ln[−gi (x)] và p(x) = − .
i=1 i=1
gi (x)

Phương pháp hàm phạt điểm trong xuất phát từ một điểm trong x1 của tập
chấp nhận được D, giải một dãy các bài toán tối ưu không ràng buộc:
min ψ(x, αk ) = f (x) + αk p(x) v.đ.k. x ∈ Rn ,
174

trong đó {αk } là dãy tham số dương, giảm đơn điệu về 0.

Thuật toán 6.15.


Bước chuẩn bị. Cho số ε > 0 đủ bé (để kiểm tra điều kiện dừng của thuật
toán). Xác định một điểm x1 ∈ D thỏa mãn gi (x1 ) < 0, i = 1, . . . , m. Chọn một
tham số phạt α1 > 0 và một số µ ∈ (0, 1). Đặt k = 1.
Bước lặp k. (k = 1, 2, . . . )
Bước k1 . Xuất phát từ xk , giải bài toán tối ưu không ràng buộc:

min ψ(x, αk ) v.đ.k. x ∈ Rn

nhận được nghiệm xk+1 .


Bước k2 . If αk p(xk+1 ) < ε Then Dừng thuật toán
(lấy xk+1 là nghiệm tối ưu của bài toán (P3rb ))
Else Chuyển Bước k3 .
Bước k3 . Đặt tham số phạt mới αk+1 := µαk .
Đặt k := k + 1 và chuyển về Bước lặp k.

Định lý 4.22. Thuật toán 6.15 có các tính chất sau:

i) ψ(x, α) ≥ f (x) với mọi α > 0;


ii) gi (xk ) < 0, i = 1, . . . , m;
iii) {ψ(xk , αk )} hội tụ đến giá trị tối ưu của bài toán (P3rb ) khi {αk } → 0.

Chứng minh. Xem [27], trang 57 − 58. 


Ví dụ 4.19. Xét bài toán:

min f (x) = x1 − 2x2


v.đ.k. g1 (x) = −1 − x1 + x22 ≤ 0
g2 (x) = −x2 ≤ 0

Ta chọn hàm chắn có dạng

p(x) = − ln[−g1 (x)] − ln[−g2 (x)] = − ln(1 + x1 − x22 ) − ln(x2 ).

Khi đó, hàm mục tiêu của các bài toán không ràng buộc tương ứng là

ψ(x, α) = x1 − 2x2 − α ln(1 + x1 − x22 ) − α ln(x2 ),

trong đó α là tham số chắn, dương và giảm đơn điệu về 0.


175

Với mỗi tham số α cụ thể, bài toán không ràng buộc


min{ψ(x, α) | x ∈ Rn }
có hàm mục tiêu ψ(x, α) là hàm lồi chặt theo biến x nên, theo Mệnh đề 6.5 và
Định lý 6.6, nó có nghiệm cực tiểu duy nhất cũng chính là điểm dừng. Ta có:
α
ψx′ 1 (x, α) = 1 − ,
1 + x1 − x22
2αx2 α
ψx′ 2 (x, α) = −2 + − .
1 + x1 − x2 x2
2

Các điểm x = (x1 , x2 )T thuộc phần trong của tập chấp nhận được có
1 + x1 − x22 > 0 và x2 > 0.
Giải hệ phương trình

 α

 1− =0
1 + x1 − x22
∇x ψ(x, α) = 0 ⇔

 2αx2 α
 −2 + − =0
1 + x1 − x2 x2
2

( )T
ta nhận được điểm dừng x∗ (α) = x∗1 (α), x∗2 (α) với
√ √
1 + 2α + 3α − 1 1+ 1 + 2α
x∗1 (α) = , x∗2 (α) = .
2 2
Vì tham số α > 0 và giảm dần về 0 nên

∗ 1 + 2(0) + 3(0) − 1
lim+ x1 (α) = = 0,
α→0 2

1 + 1 + 2(0)
lim+ x∗2 (α) = = 1.
α→0 2
Ta có (0, 1)T thuộc tập chấp nhận được và là nghiệm tối ưu của bài toán cần
giải.
Bảng 6.2 trình bày giá trị của x∗1 (α) và x∗2 (α) với các tham số α1 = 1,
µ = 10−1
αk+1 = µαk , k = 1, 2, . . . , 6.
{ ( )T }
∗ ∗ ∗
Rõ ràng x (αk ) = x1 (αk ) , x1 (αk ) hội tụ đến nghiệm tối ưu của bài toán
đang xét.
176

Bảng 6.2

k αk x∗1 (αk ) x∗2 (αk )

1 100 1.8660254 1.3660254


2 10−1 0.1977226 1.0477226
3 10−2 0.0199752 1.0049752
4 10−3 0.0019998 1.0004998
5 10−4 0.0002000 1.0000500
6 10−5 0.0000200 1.0000050
7 10−6 0.0000020 1.0000005

Bài tập Chương 6

1. Cho gi , i = 1, . . . , m là các hàm lồi và hj , j = 1, . . . , k là các hàm tuyến


tính afin xác định trên Rn . Chứng minh rằng tập hợp sau đây là lồi:

M = {x ∈ Rn | gi (x) ≤ 0, i = 1, . . . , m; hj (x) = 0, j = 1, . . . , k}.

2. Các hàm số sau có phải hàm lồi không? Hãy giải thích bằng ít nhất hai
cách:

i)f (x) = |x| với x ∈ R;


ii)f (x) = ex + 1 + 5x với x ∈ R;
iii)f (x) = − ln x + 3x3 với 0 < x < +∞;
iv) f (x) = arctanx với 0 < x < +∞;
{
|x| nếu x ≤ 1
v) f (x) = với x ∈ R;
(x − 2) − 1 nếu x > 1
2
{
ex nếu x < 0
vi) f (x) = với − ∞ < x ≤ 0.
3 nếu x = 0

3. Trong các hàm số sau, hàm nào là hàm lồi, hàm lõm hay không lồi, không
lõm. Vì sao?

i) f (x1 , x2 ) = x1 e−(x1 +x2 ) ;


ii) f (x1 , x2 ) = x21 + 2x1 x2 − 10x1 + 5x2 ;
iii) f (x1 , x2 ) = −x21 − 5x22 + 2x1 x2 + 9x1 − 8x2 ;
iv) f (x1 , x2 , x3 ) = x1 x2 + 2x21 + x22 + 2x23 − 6x1 x3 + 3x2 x3 ;
177

v) f (x1 , x2 , x3 ) = −x21 − 3x22 − 2x23 + 4x1 x2 + 2x1 x3 + 4x2 x3 ;


iv) f (x1 , x2 , x3 ) = x21 + 2x1 x2 + 4x1 x2 + 3x22 + x2 x3 + 6x23 ;
vii) f (x1 , x2 , x3 ) = x21 + 4x1 x2 + 4x22 + 2x1 x3 + 4x2 x3 .

4. Chứng minh rằng hàm tuyến tính afin bị chặn trên (hay bị chặn dưới) trên
một tập afin thì chỉ có thể đồng nhất bằng hằng số.
5. Chứng minh rằng hàm f : Rn → R là hàm afin khi và chỉ khi f vừa là
hàm lồi, vừa là hàm lõm.
6. Cho tập lồi khác rỗng D ⊂ Rn và hàm số f : D → R. Chứng minh rằng:

i) f là hàm lõm khi và chỉ khi hypo(f ) là tập lồi.


ii) Nếu f là hàm lõm thì tập Lα (f ) = {x ∈ D | f (x) ≥ α}, với α ∈ R, là
tập lồi.

7. Hãy xác định siêu phẳng đi qua các điểm (1, 1, 1, 1)T , (2, 0, 1, 0)T ,
(0, 2, 0, 1)T và (1, 1, −1, 0)T thuộc R4 .
8. Cho C là tập lồi đóng và y ∈ / C. Chứng minh rằng x∗ ∈ C là điểm gần y
nhất khi và chỉ khi ⟨x − y, x∗ − y⟩ ≥ ∥x∗ − y∥2 với mọi x thuộc C.
9. Cho C1 và C2 là hai tập lồi trong Rn . Chứng minh rằng tồn tại một siêu
phẳng tách chặt C1 và C2 khi và chỉ khi

inf{∥x − y∥ |x ∈ C1 , y ∈ C2 } > 0.

10. Cho A là ma trận cấp m × n và c ∈ Rm \ {0}. Chứng minh rằng có một


và chỉ một hệ phương trình trong hai hệ phương trình sau có nghiệm:

i) Ax = c;
ii) AT y = 0, ⟨c, y⟩ = 1.

11. Cho S là tập lồi khác rỗng trong Rn . Chứng minh rằng hàm f được định
nghĩa như sau
f (y) := inf{∥y − x∥ |x ∈ S}
là hàm lồi.
12. Cho điểm x0 = (2, 1)T ∈ R2 , véc tơ d = (3, −1)T và hàm số

f (x) = x2 e−(x1 +x2 ) .

i) Vẽ tập các điểm {x = x0 + td | t ≥ 0}.


ii) Véc tơ d có phải là hướng giảm của hàm f tại x0 không? Vì sao?
178

13. Cho hàm toàn phương f (x) = 21 xT Ax + bT x + c, với A là ma trận cấp


n × n, đối xứng, xác định dương, véc tơ b ∈ Rn và số thực c ∈ R. Nói rằng
việc giải bài toán min{f (x) | x ∈ Rn } được đưa về việc tìm nghiệm của hệ
phương trình tuyến tính
Ax + b = 0
có đúng không? Vì sao? Cho ví dụ cụ thể.
14. Cho hàm toàn phương f (x) = 21 xT Ax − bT x, với A là ma trận cấp n × n,
đối xứng, véc tơ b ∈ Rn . Xét bài toán min{f (x)|x ∈ Rn }.

i) Viết điều kiện cần bậc một và bậc hai của nghiệm tối ưu địa phương.
Với điều kiện gì thì hàm f (x) có một điểm dừng?
ii) Khi nào thì hàm f (x) có cực tiểu địa phương?
iii) Với điều kiện nào thì hàm f (x) có một điểm dừng nhưng đó không
phải cực tiểu địa phương, cũng không phải cực đại địa phương?

15. Cho hàm số f (x) = αx21 + x22 − 2x1 x2 − 2x2 , trong đó α là một số thực.

i) Xác định điểm dừng của f (x) với mỗi giá trị của α?
ii) Xác định điểm cực đại địa phương và cực tiểu địa phương tương ứng
với một giá trị cụ thể nào đó của α. Hàm f (x) đó có điểm cực đại
toàn cục hoặc cực tiểu toàn cục không? Vì sao?

16. Giải min{f (x), x ∈ Rn } với

i) f (x) = 15 − 12x − 25x2 + 2x3 (tức n = 1);


ii) f (x) = 3x3 + 7x2 − 15x − 3 (tức n = 1);
iii) f (x1 , x2 ) = 8x21 + 3x1 x2 + 7x22 − 25x1 + 31x2 − 29;
iv) f (x1 , x2 ) = 2x21 + x22 − 2x1 x2 + 2x31 + x41 ;

17. Cho hàm số f (x1 , x2 ) = x21 − x1 x2 + 2x22 − 2x1 + ex1 +x2 .


Điểm x = (0, 0)T có phải điểm cực tiểu địa phương của hàm f không? Nếu
không, tìm một hướng d sao cho hàm f giảm theo d?
18. Cho f (x) là hàm lồi khả vi, xác định trên tập lồi đa diện X ⊂ Rn . Chứng
minh rằng x∗ ∈ X là nghiệm cực tiểu của bài toán min{f (x), x ∈ X} khi
và chỉ khi
0 = min⟨∇f (x∗ ), x − x∗ ⟩.
x∈X

Kết luận này có ý nghĩa gì?


19. Trình bày phương pháp hướng giảm nhanh nhất.
179

i) Xét bài toán:


min{f (u) = u21 + 2u22 : u ∈ R2 }.
Lấy u0 = (2, 1)T . Tính ba điểm tiếp theo u1 , u2 , u3 theo phương pháp
hướng giảm nhanh nhất. Chứng minh rằng dãy {uk } sinh ra bởi thuật
toán hướng giảm nhanh nhất với thủ tục tìm chính xác theo tia có
( )k ( )
1 2 f (uk )
uk = và f (u k+1
) = .
3 (−1)k 9

ii) Xét bài toán:

min{f (x) = 4x21 + 2x22 + 4x1 x2 − 3x1 | x ∈ R2 }.

Lấy x0 = (2, 2)T . Tính ba điểm tiếp theo x1 , x2 , x3 theo phương pháp
giảm nhanh nhất.
iii) Cho
1
f (x) = xT Ax − bT x
2
với    
1 0 0 1
A = 0 γ 0  và b = 1 .

0 0 γ2 1

Xuất phát từ x0 = (0, 0, 0)T , áp dụng Thuật toán 6.1, trình bày ba
bước lặp giải bài toán min{f (x)|x ∈ R3 } với γ = 1, 10, 100, 1000.

20. Nêu định nghĩa hướng chấp nhận được tại x∗ ∈ D ⊂ Rn . Chứng minh
rằng nếu D là tập lồi thì x − x∗ là hướng chấp nhận được tại x∗ với mọi
x ∈ D.

21. Phát biểu điều kiện cần của điểm cực tiểu địa phương của bài toán

min{f (x), x ∈ Rn }

và bài toán
min{f (x) x ∈ D ⊂ Rn }.
Khi f là hàm lồi và D là tập lồi thì có kết luận gì? Lấy ví dụ để cùng hàm
mục tiêu f nhưng hai bài toán này có nghiệm tối ưu khác nhau.

22. Hàm một biến f (x) = −ln(x) có phải hàm lồi không? Hãy giải thích bằng
ít nhất hai cách.
180

23. Xét bài toán min{f (x) = 12 xT Qx + cT x | Ax ≤ b}, trong đó Q là ma trận


đối xứng xác định dương, không suy biến cấp (n × n), ma trận A cấp
(m × n), véc tơ c, x ∈ Rn và b ∈ Rm . Viết điều kiện Karush-Kuhn-Tucker
cho bài toán này.
24. Sử dụng Định lý Karush-Kuhn-Tucker tìm nghiệm tối ưu và giá trị tối ưu
của bài toán của các bài toán sau. Giải thích chi tiết từng điều kiện áp
dụng và cách lấy nghiệm.
i) min{f (x) = x1 | (x1 − 1)2 + x22 ≤ 1, x21 + x22 ≤ 2}.
ii) min{f (x) = x21 + x22 − 8x1 − 4x2 | x1 + x2 ≤ 2, x1 ≥ 0, x2 ≥ 0}.
25. Trình bày phương pháp nhân tử Langrange giải bài toán trơn với ràng
buộc đẳng thức. Giải các bài toán:
i) min{f (x) = x21 + x22 | x1 + x2 = 10}.
ii) min{f (x) = x21 − 2x1 + x22 − x23 + 4x3 | x1 − x2 + 2x3 = 2}.
iii) min{f (x) = 3x1 + 4x2 | (x1 + 1)2 + x22 = 1, (x1 − 1)2 + x22 = 1}.
26. Trình bày thuật toán Frank-Wolfe. Xét bài toán:
1
min{f (u) = u21 + u22 + u1 |u1 ≥ 0, u2 ≥ 0, u1 + u2 ≤ 10}.
2
Cho u0 = (1, 1)T . Xây dựng một vài phần tử của dãy lặp {uk } theo thuật
toán Frank-Wolfe.
27. Hãy lập chương trình thể hiện thuật toán tìm kiếm theo đơn hình (Thuật
toán 6.9) và giải các bài tập sau để đánh giá hiệu quả của thuật toán.
i) f (x1 , x2 ) = (x1 − 3.8)2 + (x2 − 1.8)2 −→ min.

ii) f (x) = nj=1 j(xj − 10)2 −→ min với n = 10, 20, 30.
iii) f (x1 , x2 ) = x41 + x42 + 2x21 x22 − 4x1 + 3 −→ min.
28. Xét bài toán:
min{ x1 | − (x1 − 2)2 − 4(x2 − 2)2 + 4 ≤ 0}.
Điểm x0 = (4, 2)T có phải là điểm KKT không? Điểm x0 có phải nghiệm
tối ưu địa phương của bài toán đang xét không? Giải thích?
29. Chứng minh rằng điểm x0 = (2, 4, 0)T là nghiệm tối ưu địa phương của
bài toán:
min{f (x) = x21 + x22 + x23 + x1 x2 + x2 x3 | x1 ≥ 2, x2 ≥ 4, x3 ≥ 0}.
Điểm x0 có phải là nghiệm tối ưu toàn cục không? Vì sao?
Chương 5

Tính chất của tập nghiệm,


điều kiện tối ưu và đối ngẫu

181
182 Nhập môn Lý thuyết Tối ưu
Chương 6

Qui hoạch toàn cục

183
184 Nhập môn Lý thuyết Tối ưu
Phụ lục

185
186 Nhập môn Lý thuyết Tối ưu
Tài liệu tham khảo

187

You might also like