ĐẠI HỌC THÁI NGUYÊN

TRƯỜNG ĐẠI HỌC KHOA HỌC

—————————————————

NGUYỄN THỊ HẢI NHƯ

MỘT THUẬT TOÁN TÌM NGHIỆM TỐI ƯU

CỦA BÀI TOÁN QUY HOẠCH SONG TUYẾN TÍNH

LUẬN VĂN THẠC SĨ TOÁN HỌC

Thái Nguyên - Năm 2017

ĐẠI HỌC THÁI NGUYÊN

TRƯỜNG ĐẠI HỌC KHOA HOC

—————————————————

NGUYỄN THỊ HẢI NHƯ

MỘT THUẬT TOÁN TÌM NGHIỆM TỐI ƯU

CỦA BÀI TOÁN QUY HOẠCH SONG TUYẾN TÍNH

Chuyên ngành: TOÁN ỨNG DỤNG

Mã số: 60.46.01.12

LUẬN VĂN THẠC SĨ TOÁN HỌC

Người hướng dẫn khoa học

GS. TS. TRẦN VŨ THIỆU

Thái Nguyên - Năm 2017

i

Lời cảm ơn

Tôi xin bày tỏ lòng biết ơn tới GS.TS Trần Vũ Thiệu, người đã định hướng

chọn đề tài và tận tình hướng dẫn, cho tôi những nhận xét quý báu để tôi có

thể hoàn thành luận văn.

Tôi cũng xin bày tỏ lòng biết ơn chân thành tới phòng Sau Đại học, các thầy

cô giáo dạy cao học chuyên ngành Toán ứng dụng trường Đại học Khoa Học -

Đại học Thái Nguyên đã giúp đỡ và tạo điều kiện cho tôi trong suốt quá trình

học tập và nghiên cứu khoa học.

Nhân dịp này tôi cũng xin gửi lời cảm ơn chân thành tới gia đình, bạn bè

đã luôn động viên, cổ vũ, tạo mọi điều kiện thuận lợi cho tôi trong suốt quá

trình học tập.

Thái Nguyên, tháng 6 năm 2017

Người viết luận văn

Nguyễn Thị Hải Như

ii

Mục lục

Lời cảm ơn i

Mục lục i

Một số ký hiệu viết tắt 1

Mở đầu 1

5 1 Bài toán quy hoạch song tuyến tính

5 1.1 Đối ngẫu trong quy hoạch tuyến tính . . . . . . . . . . . . . .

8 1.2 Bài toán quy hoạch lõm với ràng buộc tuyến tính . . . . . . . .

8 1.2.1 Hàm lõm và tính chất . . . . . . . . . . . . . . . . . . .

10 1.2.2 Bài toán quy hoạch lõm . . . . . . . . . . . . . . . . .

11 1.3 Bài toán quy hoạch song tuyến tính . . . . . . . . . . . . . . .

12 1.3.1 Phát biểu bài toán . . . . . . . . . . . . . . . . . . . . .

13 1.3.2 Quan hệ với bài toán quy hoạch lõm . . . . . . . . . . .

15 1.3.3 Tính chất nghiệm của bài toán song tuyến tính . . . . .

16 1.4 Tìm nghiệm cực tiểu địa phương . . . . . . . . . . . . . . . . .

iii

2 Thuật toán giải quy hoạch song tuyến tính 19

2.1 Cơ sở lý thuyết của thuật toán . . . . . . . . . . . . . . . . . . 19

2.1.1 Biến đổi bài toán quy hoạch song tuyến tính . . . . . . 19

2.1.2 Điều kiện tối ưu của thuật toán . . . . . . . . . . . . . 23

2.2 Mô tả thuật toán . . . . . . . . . . . . . . . . . . . . . . . . . 25

2.2.1 Các bước của thuật toán . . . . . . . . . . . . . . . . . 25

2.2.2 Suy biến . . . . . . . . . . . . . . . . . . . . . . . . . . 28

2.2.3 Sự hội tụ . . . . . . . . . . . . . . . . . . . . . . . . . . 31

2.3 Cách tiếp cận siêu phẳng cắt . . . . . . . . . . . . . . . . . . . 34

2.4 Ví dụ minh họa thuật toán . . . . . . . . . . . . . . . . . . . . 36

Tài liệu tham khảo 46

1

Một số ký hiệu viết tắt R

Tập số thực hay đường thẳng thực.

Rn Không gian Euclid n chiều.

Rm×n Tập các ma trận thực cấp (m × n).

x ∈ C

x thuộc tâp C (x là một phần tử của tập C).

Tập rỗng (Tập không chứa phần tử nào).

C ∪ D

Hợp của tập C và tập D.

C ∩ D

Giao của tập C và tập D.

C ⊂ D

C là tập con của tập D.

C ⊆ D

C là tập con (có thể bằng) của tập D.

xT y

Tích vô hướng cuả x và y.

x0, x1, x2, ......, xn

Các tọa độ của điểm hay thành phần của véctơ x

( cùng chỉ số dưới ).

x1, x2, x3

Liệt kê các véctơ có cùng số chiều (cùng chỉ số trên).

AT

Ma trận chuyển vị của ma trận A.

A−1

Ma trận nghịch đảo của ma trận A.

2

Mở đầu

Hàm f (x, y) được gọi là một hàm song tuyến tính (bilinear function) nếu

nó là hàm tuyến tính khi cố định véctơ biến x hay véctơ biến y ở một giá trị

f (x, y) = aT x + xT Qy + bT y,

cụ thể. Tổng quát, hàm song tuyến tính có dạng:

trong đó a, x ∈ Rn, b, y ∈ Rm và Q là ma trận cấp n × m. Có thể thấy hàm

song tuyến tính là một trường hợp riêng của hàm toàn phương và hàm song

tuyến tính nói chung không lồi, cũng như không lõm.

Bài toán cực tiểu một hàm song tuyến tính với các ràng buộc tuyến tính

đối với các biến x và biến y được gọi là một quy hoạch song tuyến tính (bilinear

programming problem). Như vậy, có thể xem quy hoạch song tuyến tính là một

bài toán quy hoạch toàn phương đặc biệt.

Quy hoạch song tuyến tính có nhiều ứng dụng đa dạng trong các bài toán

trò chơi ma trận có ràng buộc, bài toán bù tuyến tính và bài toán phân việc

3-chiều. Đáng chú ý là bài toán quy hoạch lõm, tuyến tính từng khúc và các

bài toán luồng trên mạng với phụ phí cố định (rất quen thuộc trong quản lý

các chuỗi cung ứng) cũng có thể giải nhờ dùng cách diễn đạt song tuyến tính

(xem [4]).

3

f (x, y) = aT x + xT Qy + bT y,

(BP )

min x∈X, y∈Y

Luận văn xét bài toán quy hoạch song tuyến tính, ký hiệu là (BP):

trong đó X, Y là các tập lồi đa diện, khác rỗng.

Có nhiều thuật toán khác nhau để giải (BP). Luận văn tìm hiểu và trình

bày một thuật toán cơ bản, nêu ở tài liệu [3] để giải bài toán.

Để hiểu rõ bài toán quy hoạch song tuyến tính và thuật toán sẽ trình bày,

luận văn nhắc lại một số kiến thức tối ưu có liên quan: đối ngẫu trong quy

hoạch tuyến tính, bài toán quy hoạch lõm và tính chất, bài toán tối ưu toàn

cục, ... Các kiến thức cơ bản về quy hoạch song tuyến sẽ được nêu ở chương 1

của luận văn.

Nội dung chính của luận văn là thuật toán [3] giải quy hoạch song tuyến

tính: các bước thuật toán, sự hội tụ của thuật toán và ví dụ minh họa thuật

toán. Các nội dung này sẽ được trình bày chi tiết ở chương 2 của luận văn.

Luận văn được viết dựa chủ yếu trên các tài liệu tham khảo [1] - [6] hiện

có và gồm hai chương:

Chương 1: Bài toán quy hoạch song tuyến tính nhắc lại các kiến thức

về đối ngẫu trong quy hoạch tuyến tính, bài toán quy hoạch lõm với ràng buộc

tuyến tính, khái niệm hàm lõm (hàm tựa lõm) và tính chất cơ bản của hàm

lõm. Tiếp đó, giới thiệu bài toán quy hoạch song tuyến tính, tính chất nghiệm

của bài toán và mối liên hệ với bài toán cực tiểu hàm lõm, tuyến tính từng

khúc. Cuối chương giới thiệu "thuật toán xuống núi" tìm nghiệm cực tiểu địa

phương của bài toán quy hoạch song tuyến tính và đưa ra ví dụ minh họa thuật

4

toán.

Chương 2: Thuật toán giải bài toán quy hoạch song tuyến tính

trình bày thuật toán được nêu ở tài liệu tham khảo [3] để giải bài toán quy

hoạch song tuyến tính. Thuật toán này biến đổi bài toán ban đầu về bài toán

tối ưu trên một tập không lồi và giải bài toán đó, dựa trên điều kiện tối ưu cần

và đủ đưa ra và chứng minh sự hội tụ về nghiệm đúng của bài toán quy hoạch

song tuyến tính ban đầu. Thuật toán trình bày được minh họa bằng ví dụ số

cụ thể.

5

Chương 1

Bài toán quy hoạch song tuyến tính

Chương này nhắc lại các kết quả về đối ngẫu trong quy hoạch tuyến tính,

bài toán quy hoạch lõm ràng buộc tuyến tính. Tiếp đó đề cập tới bài toán quy

hoạch song tuyến tính, tính chất nghiệm bài toán và mối liên hệ với bài toán

cực tiểu hàm lõm, tuyến tính từng khúc. Cuối chương nêu thuật toán tìm cực

tiểu địa phương của bài toán. Nội dung của chương được tham khảo chủ yếu

từ các tài liệu [5] - [6].

1.1 Đối ngẫu trong quy hoạch tuyến tính

• Dạng chuẩn tắc:

min (cid:8)f (x) = cT x : Ax (cid:62) b, x (cid:62) 0(cid:9) ,

A. Trong quy hoạch tuyến tính người ta hay xét hai dạng bài toán sau đây.

+. Trong bài toán này tập

Trong đó A ∈ Rm×n, b ∈ Rn, x (cid:62) 0 có nghĩa x ∈ Rn

ràng buộc D = {x ∈ Rn : Ax (cid:62) b, x (cid:62) 0} là một tập lồi đa diện.

6

• Dạng chính tắc:

min (cid:8)f (x) = cT x : Ax = b, x (cid:62) 0(cid:9) ,

trong đó A, b, c và x được xác định như ở trên. Trong bài toán này tập ràng

buộc D = {x ∈ Rn : Ax = b, x (cid:62) 0} cũng là một tập lồi đa diện. Có thể dễ

dàng chuyển từ dạng chuẩn tắc sang dạng chính tắc và ngược lại.

Trong các bài toán trên f(x) được gọi là hàm mục tiêu. Mỗi bất phương

xj ≥ 0, j = 1, ..., n, gọi là các ràng buộc không âm hay ràng buộc về dấu.

(cid:62) bi hay phương trình (Ax)i = bi gọi là một ràng buộc chính, trình (Ax)i

Véctơ (điểm) x ∈ D gọi là một nghiệm chấp nhận được hay một phương án.

Một phương án đạt cực tiểu của hàm mục tiêu f(x) gọi là một phương án tối

ưu hay một nghiệm tối ưu của bài toán. Mỗi bài toán quy hoạch tuyến tính đã

cho, gọi là bài toán gốc, luôn đi kèm với một bài toán quy hoạch tuyến tính

thứ hai, gọi là bài toán đối ngẫu. Hai bài toán này quan hệ mật thiết với nhau

và từ nghiệm tối ưu của bài toán này có thể suy ra nghiệm tối ưu bài toán kia

và ngược lại.

• Đối ngẫu của qui hoạch tuyến tính dạng chuẩn tắc (bài toán gốc)

B. Sau đây là hai dạng cặp bài toán đối ngẫu thường gặp.

min (cid:8)f (x) = cT x : Ax (cid:62) b, x (cid:62) 0(cid:9)

(P)

là bài toán qui hoạch tuyến tính (bài toán đối ngẫu):

max (cid:8)g (y) = bT y : AT y (cid:54) c, y (cid:62) 0(cid:9)

(Q)

• Đối ngẫu của qui hoạch tuyến tính dạng chính tắc (bài toán gốc):

( AT là ma trận chuyển vị của ma trận A ).

7

min (cid:8)f (x) = cT x : Ax = b, x (cid:62) 0(cid:9)

(P)

là bài toán qui hoạch tuyến tính (bài toán đối ngẫu):

max (cid:8)g (y) = bT y : AT y (cid:54) c(cid:9) .

(Q)

Dễ kiểm tra lại rằng lấy đối ngẫu của bài toán đối ngẫu ta được lại bài toán

gốc. Vì thế ta gọi (P) và (Q) là cặp bài toán qui hoạch tuyến tính đối ngẫu

nhau.

C. Các kết quả sau đúng cho cặp bài toán đối ngẫu (P), (Q) dạng bất kỳ.

Định lý 1.1.1. (Đối ngẫu yếu). Nếu x là một lời giải chấp nhận được của bài

f (x) = c1x1 + c2x2 + ... + cnxn (cid:62) g (y) = b1y1 + b2y2 + ... +

bmym, nghĩa là giá trị mục tiêu của một phương án gốc bất kỳ (bài toán min)

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

không nhỏ hơn giá trị mục tiêu của một phương án đối ngẫu bất kỳ (bài toán

max).

Định lý 1.1.2. (Đối ngẫu mạnh). Nếu một qui hoạch có nghiệm tối ưu thì qui

hoạch đối ngẫu của nó cũng có nghiệm tối ưu và hai giá trị tối ưu bằng nhau.

Các định lý trên suy ra các quan hệ sau giữa hai bài toán gốc và đối ngẫu

Định lý 1.1.3. (Định lý đối ngẫu cơ bản). Đối với một cặp bài toán qui hoạch

tuyến tính đối ngẫu nhau chỉ có một trong ba khả năng loại trừ nhau sau đây:

(a) Cả hai bài toán đều không có nghiệm chấp nhận được.

(b) Cả hai bài toán đều có nghiệm chấp nhận được. Khi đó, cả hai đều có

nghiệm tối ưu và giá trị tối ưu của hai hàm mục tiêu bằng nhau.

(c) Một bài toán có nghiệm chấp nhận được và bài toán kia không có nghiệm

8

chấp nhận được. Khi đó, bài toán có nghiệm chấp nhận được sẽ có giá trị tối

ưu vô cực ( +∞ hay −∞ tùy theo bài toán max hay min).

Quan hệ giữa cặp bài toán đối ngẫu nhau còn thẻ hiện ở định lý sau đây.

Định lý 1.1.4. (Định lý độ lệch bù). Một cặp nghiệm chấp nhận được x, y của

hai qui hoạch tuyến tính đối ngẫu nhau (P) và (Q) là cặp nghiệm tối ưu khi và

= 0, ∀i = 1, 2, ...., m ⇔ yT (Ax − b) = 0

yi

aijxj − bi

chỉ khi chúng nghiệm đúng các hệ thức: (cid:33)

= 0, ∀j = 1, 2, ...., m ⇔ xT (cid:0)c − AT y(cid:1) = 0

xj

cj −

aijyj

m (cid:80) i=1

(cid:32) n (cid:80) j=1 (cid:18) (cid:19)

1.2 Bài toán quy hoạch lõm với ràng buộc tuyến tính

1.2.1 Hàm lõm và tính chất

Trước khi phát biểu bài toán quy hoạch lõm, ta nhắc lại khái niệm hàm lõm

(hàm tựa lõm) trong Rn và một số tính chất cơ bản của hàm này.

f (λx + (1 − λ) y) (cid:62) λf (x) + (1 − λ) f (y) ∀x, y ∈ Rn, ∀λ ∈ [0, 1]

Định nghĩa 1.2.1. Hàm f: Rn → R gọi là lõm nếu:

Với n = 1, bất đẳng thức này có thể diễn tả như sau: dây cung nối hai điểm

bất kỳ trên đồ thị của hàm phải nằm dưới đồ thị của hàm nằm trong đoạn đó.

f (λx + (1 − λ) y) (cid:62) min {f (x) , f (y)} ∀x, y ∈ Rn, ∀λ ∈ [0, 1]

Định nghĩa 1.2.2. Hàm f: Rn → R gọi là tựa lõm nếu:

Bất đẳng thức trên có nghĩa là giá trị của hàm f tại một điểm bất kỳ trên đoạn

thẳng [x, y] không nhỏ hơn giá trị nhỏ nhất của hàm tại hai đầu mút của đoạn

9

thẳng đó.

Từ các định nghĩa trên cho thấy một hàm lõm là hàm tựa lõm, nhưng điều

ngược lại không chắc đúng. Ví dụ, f(x) = x3(x ∈ R) là hàm tựa lõm, nhưng

hàm này không là hàm lõm trên R. Như vậy lớp hàm tựa lõm rộng hơn lớp

hàm lõm.

Khác với hàm lồi, điểm cực tiểu địa phương của hàm lõm trên (trên một

tập lồi) không nhất thiết là điểm cực tiểu toàn cục. Nói chung, thông tin địa

phương không đủ để xác định điểm cực tiểu toàn cục của một hàm lõm.

Định lý 1.2.3. Với mọi hàm lõm f: Rn → R ta có các kết luận sau:

a) Cực tiểu của f trên một đoạn thẳng đạt tại một đầu mút của đoạn đó.

b) Nếu f hữu hạn và bị chặn dưới trên một nửa đường thẳng thì cực tiểu của

f trên nửa đường thẳng này đạt tại điểm gốc của nó.

c) Nếu f hữu hạn và bị chặn dưới trên một tập afin thì f bằng hằng số trên

tập afin đó.

Định lý 1.2.4. Giả sử C ⊂ Rn là một tập lồi và f: C ⊂ Rnlà hàm lõm. Nếu

f(x) đạt cực tiểu trên C tại điểm trong tương đối x∗ của C ( x∗ ∈ ri C ) thì

f(x) bằng hằng số trên C. Tập Argminx∈Cf (x) là hợp của một số diện của C.

trong đó V(C) là tập các điểm cực biên của C, nghĩa là nếu cực tiểu của f(x)

đạt được trên C thì cực tiểu cũng đạt được trên V(C).

Định lý 1.2.5. Giả sử C là tập lồi, đóng và f: C → R là hàm lõm. Nếu C

không chứa đường thẳng nào và f(x) bị chặn dưới trên mọi nửa đường thẳng

trong C thì

10

inf {f (x)

: x ∈ C} = inf {f (x)

: x ∈ V (C)} ,

trong đó V(C) là tập các điểm cực biên của C, nghĩa là nếu cực tiểu của f(x)

đạt được trên C thì cực tiểu cũng đạt được trên V(C).

Hệ quả 1.2.6. Cho hàm lõm f(x) trên tập lồi đa diện D, không chứa đường

thẳng nào. Khi đó, hoặc f(x) không bị chặn dưới trên một cạnh vô hạn nào đó

của D, hoặc f(x) đạt cực tiểu tại một đỉnh nào đó của D.

Hệ quả 1.2.7. Hàm lõm f(x) trên tập lồi compac C đạt cực tiểu tại một điểm

cực biên của C.

Nhận xét 1. Thực ra, tính chất nêu trong Hệ quả 1.2.7 cũng đúng cho lớp

hàm rộng hơn. Cụ thể là các hàm tựa lõm, nghĩa là các hàm f : Rn → [−∞, +∞]

sao cho các tập mức trên Lβ = {x ∈ Rn : f (x) (cid:62) β} là lồi với mọi β ∈ R.

Cũng có thể chứng minh được rằng cận dưới của một họ hàm tựa lõm là hàm

tựa lõm, nhưng tổng của hai hàm tựa lõm không chắc là hàm tựa lõm.

Nhận xét 2. Do hàm lồi là đối của hàm lõm nên các kết luận trên đây

(phát biểu cho hàm lõm) cũng đúng cho hàm lồi chỉ cần thay cực tiểu bởi cực

đại và bị chặn dưới bằng bị chặn trên.

1.2.2 Bài toán quy hoạch lõm

(Cực tiểu hàm lõm hay cực đại hàm lồi)

Xét bài toán tối ưu có dạng:

(CP) min {f (x) : x ∈ C},

trong đó f(x) là hàm lõm (hay tựa lõm), C là tập lồi đóng, chẳng hạn

11

C = {x : g(x) (cid:54) 0} với g(x) là một hàm lồi. Đặc biệt quan trọng là trường hợp

C là tập lồi đa diện. Khi đó bài toán được gọi là một quy hoạch lõm với ràng

buộc tuyến tính.

Quy hoạch tuyến tính và quy hoạch lồi thuộc lớp bài toán một cực trị ( hàm

mục tiêu của bài toán có nhiều nhất một giá trị cực tiểu ). Một bài toán sở dĩ

có nhiều giá trị cực tiểu khác nhau là do nó không lồi. Nói chung, một bài toán

càng có nhiều yếu tố không lồi thì càng khó. Bài toán quy hoạch lõm thuộc lớp

bài toán như thế.

Quy hoạch lõm vừa nêu trên là bài toán cơ bản của tối ưu toàn cục, vì tính

phổ biến của nó và vì nhiều bài toán tối ưu toàn cục quy được về nó hoặc dựa

ít nhiều trên phép giải của nó. Mục tiếp sau sẽ chỉ ra rằng bài toán quy hoạch

song tuyến tính có thể phát biểu như một bài toán quy hoạch lõm với hàm mục

tiêu lõm, tuyến tính từng khúc và với các ràng buộc tuyến tính.

1.3 Bài toán quy hoạch song tuyến tính

Định nghĩa 1.3.1. Hàm f(x, y) được gọi là một hàm song tuyến tính ( bilinear

funcyion ) nếu nó là hàm tuyến tính khi cố định véctơ x hay véctơ y ở một giá

f (x, y) = aT x + xT Qy + bT y,

trị cụ thể. Tổng quát, hàm song tuyến tính có dạng:

trong đó a, x ∈ Rn, b, y ∈ Rm và Q là ma trận cấp n × m.

Dễ dàng thấy rằng các hàm song tuyến tính tạo nên một lớp con các hàm

toàn phương.

12

1.3.1 Phát biểu bài toán

Ta gọi bài toán tối ưu với hàm mục tiêu song tuyến tính và các hàm ràng

buộc song tuyến tính là bài toán song tuyến tính (bilinear problem) và các bài

toán này có thể xem như một lớp con của quy hoạch toàn phương (quadratic

programming).

Quy hoạch song tuyến tính có nhiều ứng dụng đa dạng trong các trò chơi

ma trận có ràng buộc, bài toán bù và bài toán phân việc 3 - chiều, Markovian.

Nhiều bài toán nguyên 0 - 1 có thể phát biểu như các bài toán song tuyến tính.

Bài toán quy hoạch lõm tuyến tính từng khúc và bài toán luồng trên mạng với

phụ phí cố định, rất quen thuộc trong quản lý các chuỗi cung ứng, cũng có thể

giải bằng cách dùng cách diễn đạt song tuyến tính.

Tuy có nhiều dạng bài toán quy hoạch song tuyến tính, song phần lớn các

bài toán thực tiễn gồm hàm mục tiêu song tuyến tính và với các ràng buộc

tuyến tính và các kết quả lý thuyết được đưa ra trong trường hợp này. Trong

luận văn chúng tôi xét bài toán song tuyến tính sau đây, ký hiệu bài toán là

f (x, y) = aT x + xT Qy + bT y,

(BP )

min x∈X, y∈Y

BP:

trong đó X, Y là các tập lồi đa diện, khác rỗng. Bài toán BP còn được biết

với tên gọi bài toán song tuyến tính với miền ràng buộc rời nhau , bởi vì tính

chấp nhận của x(y) độc lập với việc chọn véctơ y(x).

13

1.3.2 Quan hệ với bài toán quy hoạch lõm

Dưới đây ta sẽ đề cập tới một số kết quả lý thuyết về sự tương đương giữa

= aT x + miny∈Y

bài toán song tuyến tính và bài toán cực tiểu lõm.

Cho V (x) và V (y) lần lượt là tập đỉnh của X và Y , và g(x) = miny∈Y f (x, y) (cid:8)xT Qy + bT y(cid:9). Trong đó miny∈Y f (x, y) là bài toán tuyến

tính. Bởi vì nghiệm của bài toán tuyến tính đạt tại đỉnh của miền chấp nhận

g(x) = miny∈Y f (x, y) = miny∈V (Y ) f (x, y). Sử dụng ký

được nên:

hiệu này, bài toán BP có thể phát biểu lại thành:

g(x)

min x∈X,y∈Y

f (x, y) = min x∈X

f (x, y)} = min x∈X

{ min y∈Y

{ min y∈V (Y )

f (x, y)} = min x∈X Nhận xét rằng tập của Y là hữu hạn, cho mỗi y ∈ Y , f (x, y) là môt hàm

(1)

tuyến tính theo x; vì thế hàm g(x) là hàm lõm tuyến tính từng khúc. Từ nhận

xét này cho thấy BP tương đương với bài toán cực tiểu hàm lõm tuyến tính

từng khúc với ràng buộc tuyến tính.

Ngược lại, có thể chỉ ra rằng bất kì bài toán cực tiểu hàm mục tiêu lõm,

tách biến và tuyến tính từng khúc có thể quy được về bài toán quy hoạch song

tuyến tính. Để thiết lập mối quan hệ này, ta xét bài toán tối ưu dưới đây:

Φi(xi)

min x∈X

(2) (cid:80) i

Trong đó X là tập hợp các vectơ tùy ý khác rỗng, gồm các vectơ chấp nhận

được, và Φi(xi) là hàm lõm, tuyến tính từng khúc chỉ của một biến xi tức là

14

i xi + s1 c1

i (= Φ1

i , λ1 i

 (cid:1)

i (xi)), xi ∈ (cid:2)λ0 i (xi)), xi ∈ (cid:2)λ0

i , λ2 i

i xi + s2 c2

i (= Φ2

Φi(xi) =

...............................................

(cid:1)

i xi + sni cni

i (= Φni

, λni i

i

(cid:1)  

i > c2

i > ... > cni

i (xi)), xi ∈ (cid:2)λni−1 i . Cho Ki = {1, 2, ..., ni}. Hàm có thể viết lại như sau:

Với c1

i (xi)(cid:9) = min

i xi + sk i

k∈Ki

Φi(xi) = min k∈Ki Lập bài toán quy hoạch song tuyến tính sau đây:

(3) (cid:8)Φk (cid:8)ck (cid:9) .

(ck

Φk

i xi + sk

i (xi)yk

i )yk i .

min x∈X,y∈Y

f (x, y) = (cid:80) i

(cid:80)

i = (cid:80) i i |Ki|. Chứng minh định lý sau đây được suy trực tiếp từ

(4) (cid:80) k∈Ki (cid:80) k∈Ki

Trong đó Y = [0, 1]

phương trình (3).

Định lý 1.3.2. Nếu (x∗, y∗) là một nghiệm tói ưu của bài toán (4) thì x∗ là

một nghiệm tối ưu của bài toán (2) Chú ý là không đòi hỏi X là một đa diện

lồi. Nếu X là một đa diện lồi thì cấu trúc của bài toán (4) là tương đương với

(BP).

Hơn nữa, ta có thể chỉ ra rằng có thể đưa bất kì bài toán cực tiểu hàm lõm

toàn phương về bài toán quy hoạch song tuyến tính. Nói riêng, xét bài toán tối

ưu sau đây :

Φ(x) = 2aT x + xT Qx.

min x∈X

(5)

Trong đó Q là một ma trận bán đối xứng, nửa xác định âm. Ta xây dựng bài

toán quy hoạch song tuyến tính như sau:

f (x, y) = aT x + aT x + xT Qy.

min x∈X,y∈Y

(6)

Trong đó Y = X.

15

Định lý 1.3.3. Nếu x∗ là một nghiệm của bài toán (5) thì (x∗, x∗) là một

nghiệm của bài toán (6). Nếu ((cid:98)x, (cid:98)y) là một nghiệm của bài toán (6) thì (cid:98)x và (cid:98)y là các nghiệm của bài toán (5)

1.3.3 Tính chất nghiệm của bài toán song tuyến tính

Mục trước cho thấy rằng BP tương đương với bài toán cực tiểu hàm lõm

tuyến tính từng khúc. Mặt khác, ta lại biết rằng cực tiểu của hàm lõm trên

một tập lồi đa diện luôn đạt tại một đỉnh. Định lý sau đây được suy ra từ nhận

xét này:

(x∗, y∗) với mỗi x∗ ∈ V (X) và y∗ ∈ V (Y )

Định lý 1.3.4. Nếu X và Y bị chặn thì tồn tại một nghiệm tối ưu của BP là

Giả sử (x∗, y∗) là một nghiệm của (BP). Khi cố định x = x∗, Bài toán BP

trở thành bài toán tuyến tính và y∗ là một nghiệm của bài toán nhận được. Từ

tính đối xứng của bài toán, kết quả tương tự cũng đúng khi cố định y = y∗.

Định lý sau đây là một điều kiện cần của tối ưu.

Định lý 1.3.5. Nếu (x∗, y∗) là một nghiệm của bài toán BP, thì

minx∈X f (x, y∗) = f (x∗, y∗) = minx∈X f (x∗, y).

(7)

Tuy nhiên, (7) không phải là một điều kiện đầy đủ. Trong thực tế nó đảm

bảo tối ưu địa phương của (x∗, y∗) theo một yêu cầu bổ sung. Cụ thể y∗ là một

nghiệm tối ưu nhất của bài toán minx∈X f (x, y∗). Từ đó suy ra rằng f (x∗, y∗)

V (y), y (cid:54)= y∗, f (x∗, y∗) < f (x, y) trong lân cận Uy đủ nhỏ của điểm x∗. Đặt:

< f (x∗, y), ∀y ∈ V (y), y (cid:54)= y∗. Do hàm f(x, y) liên tục nên với mọi ∀y ∈

16

U =

Uy∗

∩ y∈V (y),y(cid:54)=y∗

Khi đó f (x∗, y∗) < f (x, y), ∀x ∈ U , ∀y ∈ V (Y ), y (cid:54)= y∗. Cuối cùng để chú

ý rằng Y là một đa diện lồi và mỗi điểm của Y có thể biểu diễn dưới dạng một

∀y ∈ Y , điều này chứng tỏ cho định lý sau.

tổ hợp lồi của các đỉnh của Y. Từ đó suy ra rằng f (x∗, y∗) < f (x, y), ∀x ∈ U ,

Định lý 1.3.6. Nếu (x∗, y∗) thỏa mãn điều kiện (7) và y∗ là nghiệm duy nhất

của bài toán miny∈Y f (x∗, y∗) thì (x∗, y∗) là nghiệm tối ưu địa phương của BP.

Nhớ rằng BP tương đương với bài toán cực tiểu hàm lõm, tuyến tính từng

khúc. Với các giả thiết của định lý 5 có thể chỉ ra rằng x∗ cũng là cực tiểu địa

phương của hàm g(x).

1.4 Tìm nghiệm cực tiểu địa phương

Mục này đề cập tới phương pháp tìm một nghiệm của bài toán song tuyến

tính. Do BP tương đương với bài toán cực tiểu hàm lõm tuyến tính từng khúc,

nên có thể dùng bất kỳ thuật toán giải bài toán sau để giải bài toán trước. Nói

riêng, ta có thể dùng thuật toán siêu phẳng cắt đã đề xuất cho hai bài toán

đó. Tuy nhiên, cấu trúc đối xứng của bài toán BP cho phép xây dựng các lát

cắt hiệu quả hơn. Trong [4] Kono H. bàn về thuật toán hội tụ tới nghiệm thỏa

mãn điều kiện (7) và sau đó đề ra thuật toán siêu phẳng cắt tìm nghiệm tối ưu

toàn cục của bài toán. Giả sử X và Y bị chặn. Thuật toán 1, còn gọi là "thủ

tục xuống núi", xuất phát từ véctơ ban đầu y0 và liên tiếp giải hai bài toán

tuyến tính LP.Bài toán LP thứ nhất nhận được bằng cách cố định véctơ y ở

17

giá trị ym−1. Lời giải của bài toán này được dùng để cố định giá trị của véctơ

x và xây dựng bài toán LP thứ hai. Nếu f (xm, ym−1) (cid:54)= f (xm, ym) thì tiếp tục

giải các bài toán bằng cách cố định véctơ y ở giá trị ym. Nếu tiêu chuẩn dừng

được thỏa mãn thì có thể chỉ ra rằng véctơ (xm, ym) thỏa mãn điều kiện (7).

f (xm, ym−1) ≥ f (xm, ym) suy ra rằng thuật toán hội tụ sau hữu hạn lần lặp

Thêm vào đó, nhận xét rằng V(X) và V(Y) là hữu hạn. Từ đó và từ sự kiện là

Thuật toán 1. Thủ tục xuống núi.

Bước 1: Giả sử y0 ∈ Y là một nghiệm chấp nhận được ban đầu và m ←1

Bước 2: Giả sử xm = arg minx∈X (cid:8)f (x, ym−1)(cid:9) và ym = arg miny∈Y {f (xm, y)}

Bước 3: Nếu f (xm, ym−1) = f (xm, ym) thì dừng. Trái lại, m ← m + 1 và

quay lại Bước 1.

Giả sử (x∗, y∗) là nghiệm nhận được theo thuật toán 1. Với giả thiết rằng

đỉnh x∗ không suy biến, ta ký hiệu D là tập các hướng dj dọc theo cạnh của

X đi từ điểm x∗. Nhớ rằng g(x) = min y ∈ Y f (x, y) là một hàm lõm. Để xây

g (x∗ + θjdj) ≥ f (x∗, y∗) − ε, nghĩa là

θj = arg max {θj : g (x∗ + θjdj) ≥ f (x∗, y∗) − ε}

dựng lát cắt đúng cho mỗi hướng dj ta tìm giá trị lớn nhất của θj sao cho

∆1

x|

C −1 (x − x∗) ≥ 1

,

x =

Trong đó ε là một số dương đủ nhỏ. Đặt C = {d1, d2, ..., dn}, (cid:26) (cid:27) (cid:17)T

, ...., 1 θn

(cid:16) 1 θ1

x. Nếu X1 = ∅ thì

f (x, y) ≥ f (x∗, y∗) − ε,

min x∈X,y∈Y

và X1 = X ∩ ∆1

và (x∗, y∗) là một nghiệm ε tối ưu toàn cục của bài toán. Nếu X1 = ∅ thì ta có

thể thay X bởi tập X1, nghĩa là xét bài toán tối ưu

18

f (x, y)

min x∈X,y∈Y

và chạy Thuật toán 1 để tìm một nghiệm tốt hơn. Tuy nhiên, do cấu trúc đối

xứng của bài toán nên có thể áp dụng một thủ tục tương tự để xây dựng một

y là nửa không gian tương ứng và Y1 = Y ∩ ∆1 y.

lát cắt đối với tập Y. Ký hiệu ∆1

f (x, y)

min x∈X,y∈Y

Bằng cách đổi mới cả hai tập, nghĩa là xét bài toán tối ưu

thuật toán siêu phẳng cắt (xem Thuật toán 2) có thể cho phép tìm nghiệm

toàn cục của bài toán với số lần lặp ít hơn.

Thuật toán 2 . Thuật toán siêu phẳng cắt.

Bước 1: Áp dụng Thuật toán 1 tìm véctơ (x∗, y∗) thỏa mãn hệ thức (7).

Bước 2: : Dựa vào nghiệm (x∗, y∗) tính các lát cắt thích hợp và xây dựng

các tập X1 và Y1.

Bước 3: Nếu X1 (cid:54)= ∅ hoặc Y1 (cid:54)= ∅ thì (x∗, y∗) là một nghiệm ε - tối ưu

toàn cục. Trái lại, X ← X1 và Y ← Y1 và quay lại Bước 1.

Kết luận chương 1

Chương này nhắc lại các kiến thức cơ bản liên quan tới bài toán quy hoạch song

tuyến tính, như quan hệ đối ngẫu trong quy hoạch tuyến tính, bài toán cực

tiểu hàm lõm với ràng buộc tuyến tính, bài toán quy hoạch song tuyến tính,

tính chất nghiệm của bài toán và thuật toán tìm nghiệm cực tiểu địa phương

của bài toán quy hoạch song tuyến tính.

19

Chương 2

Thuật toán giải quy hoạch song tuyến

tính

Chương này trình bày thuật toán được nêu ra ở tài liệu tham khảo [3], để

giải bài toán quy hoạch song tuyến tính. Thuật toán biến đổi bài toán ban đầu

về bài toán tối ưu trên một tập không lồi và đề xuất thuật toán giải bài toán

đó, dựa trên tiêu chuẩn tối ưu đưa ra và chứng minh sự hội tụ về nghiệm đúng

của bài toán song tuyến tính ban đầu. Thuật toán trình bày được minh họa

bằng ví dụ số cụ thể. Nội dung của chương được tham khảo chủ yếu từ các tài

liệu [3] và [6].

2.1 Cơ sở lý thuyết của thuật toán

2.1.1 Biến đổi bài toán quy hoạch song tuyến tính

n(cid:48) - chiều y sao cho:

Ta xét bài toán quy hoạch song tuyến tính: tìm véctơ n - chiều x và véctơ

20

cT x + xT QT y + dT y → max,

Ax ≤ a, BT y ≤ b,

x ≥ 0, y ≥ 0

(2.1)

 

trong đó A là ma trận m × n , B là ma trận m(cid:48) × n(cid:48), QT là ma trận n(cid:48) × n(cid:48), a

X = {x : Ax ≤ a, x ≥ 0} và Y = (cid:8)y : BTy ≤ b, y ≥ 0(cid:9)

và b là các véctơ có số chiều n, n(cid:48), m và m(cid:48) tương ứng. Giả sử:

là các tập khác rỗng và bị chặn.

Theo Định lý 1.3.4, tập tất cả các nghiệm tối ưu của bài toán (2.1) chứa ít

nhất một phần tử (x∗, y∗) sao cho x∗ là một đỉnh của X và y∗ là một đỉnh của

Y.

cT x + max

(d + Qx)T y : BT y ≤ b, y ≥ 0

→ max

Ax ≤ a, x ≥ 0

Bài toán (2.1) có thể viết lại thành: (cid:110) (cid:111)

Từ lý thuyết đối ngẫu của quy hoạch tuyến tính trực tiếp suy ra rằng (2.1)

cT x + min bT u → max,

tương đương với bài toán tìm véctơ n chiều x và véctơ m(cid:48) chiều u sao cho: 

Ax ≤ a, Bu ≥ d + Qx,

x ≥ 0, y ≥ 0,

(2.2)

 

Sau đây thay cho bài toán (2.1), ta giải trực tiếp bài toán (2.2). Trước hết

ta xét một số tính chất hình học của nghiệm bài toán (2.2) và nêu điều kiện tối

ưu cần và đủ. Sau đó, ở mục 2.2 sẽ trình bày thuật toán tìm nghiệm tối ưu của

bài toán (2.2) và xét sự hội tụ của thuật toán. Mục 2.3 trình bày biến thể siêu

phẳng cắt của thuật toán. Ở mục 2.3 đưa ra ví dụ số minh họa thuật toán. Ta

21

P = {(x, u) : Ax ≤ a, Bu ≥ d + Qx, (x, u) ≥ 0} . Λ = (cid:8)(x, u) : (x, u) ∈ P, bTu ≤ bTu(cid:48), (x, u(cid:48)) ∈ P(cid:9) .

sẽ sử dụng các ký hiệu sau:

Bài toán (2.2) bây giờ có thể viết lại thành:

max{cTx + bTu : (x, u) ∈ Λ}.

(2.3)

Hàm mục tiêu của bài toán (2.3) là tuyến tính, nhưng tập ràng buộc của

bài toán nói chung là một tập không lồi. Hơn nữa, tập nghiệm tối ưu của bài

toán có thể không liên thông. Điều này có thể thấy rõ như vẽ ở Hình 1.1, trong đó (cid:8)(cid:0)x1, y1(cid:1) , (cid:0)x2, y2(cid:1)(cid:9) là tập nghiệm tối ưu của bài toán.

Tuy nhiên, tập Λ có một số tính chất đặc biệt được nêu dưới đây:

Bổ đề 2.1.1. U (x) = {u : Bu ≥ d + Qx, u ≥ 0} (cid:54)= ∅ với mọi x ∈ Rn

Chứng minh. Do Y = {y : BTy ≥ b, y ≥ 0} khác rỗng và bị chặn nên giá trị

(d + Qx)T y : y ∈ Y

(cid:110) (cid:111) max là bị chặn. Từ đó, theo lý thuyết đối ngẫu trong

quy hoạch tuyến tính, tập ràng buộc của bài toán đối ngẫu tương ứng là khác

rỗng, tức U(x) (cid:54)= ∅ với mọi x ∈ Rn .

Bổ đề 2.1.2. Λ là hợp của một số diện của P

Chứng minh. Trước hết ta muốn chỉ ra rằng nếu một diện F của P mà chứa

Λ. Rõ ràng điều này đúng nếu F là diện thứ nguyên 0. Bây giờ giả sử F là diện

một điểm thuộc Λ ở phần trong tương đối của F thì toàn bộ diện F nằm trong

thứ nguyên d ≥ 1 và trong phần trong của F có chứa điểm (x0, u0) ∈ Λ . Giả

sử (x1, u1) là điểm tùy ý trong F, khi đó tồn tại điểm (x2, u2) ∈ F sao cho:

22

(cid:0)x0, u0(cid:1) = λ (cid:0)x1, u1(cid:1) + (1 − λ) (cid:0)x2, u2(cid:1) , 0 < λ < 1.

Cho điểm bất kỳ

(cid:0)x1, u(cid:1) ∈ P , xét: (cid:0)x0, u∗(cid:1) = λ (cid:0)x1, u(cid:1) + (1 − λ) (cid:0)x2, u2(cid:1)

bTu0 = λbTu1 + (1 − λ)bTu2 ≤ bTu∗ = λbTu + (1 − λ) bT u2

Bởi vì (x0, u0) ∈ Λ cho nên:

và do đó bTu1 ≤ bT u, điều này kéo theo (x1, u1) ∈ Λ . Chứng minh bổ để dược

hoàn thành là do sự kiện mọi điểm trong P đều chứa trong tập các phần trong

tương đối của một diện nào đó của P.

Định lý 2.1.3. Tập hợp Λ là liên thông

Chứng minh. Giả sử Λ không liên thông, thì tồn tại hai tập hợp đóng Λ1 và Λ2

sao cho Λ = Λ1 ∪ Λ2 và Λ1 ∩ Λ2 = ∅. Tính đóng của Λ1 và Λ2 là do tập Λ là

tập đóng, bởi vì Λ là hợp của một số diện của P . Giả sử X1 và X2 là hai hình

chiếu của Λ1 và Λ2 trên không gian các biến x. Do hình chiếu của tập đóng là

tập đóng nên X1 và X2 là các tập đóng. Vì thế, do X là tập liên thông nên tồn

tại điểm x ∈ X sao cho x ∈ X1 ∩ X2. Do đó có thể tìm thấy hai điểm thuộc Λ

(x,u1) ∈ Λ1 , (x,u2) ∈ Λ2

với

Λ. Do đó toàn bộ đoạn thẳng nối (x,u1) với (x,u2) nằm trong Λ. Điều này trái

Hai điểm thuộc tập (cid:8)(x, u) : bT u = minu(cid:48)∈U (x) bT u(cid:48)(cid:9) lồi và liên thông trong

với Λ1 và Λ2 rời nhau. Chứng minh được hoàn thành.

Từ định lý trên đây suy ra rằng hai đỉnh bất kỳ của P mà thuộc Λ sẽ được

23

nối với nhau bằng một đường đi nằm trong Λ. Tuy nhiên tính chất này trên

thực tế không được dùng đến trong quá trình xây dựng thuật toán sẽ trình bày.

2.1.2 Điều kiện tối ưu của thuật toán

Trong mục này phát biểu và chứng minh định lý về điều kiện cần và đủ để

một điểm thuộc P là tối ưu. Sau đó nêu ra điều kiện đủ cái biên phục vụ cho

mục đích tính toán.

Định lý 2.1.4. Cho (x,u) ∈ Λ, với z = cT x + bT u, (x,u)là một nghiệm tối

ưu của bài toán (1.1) khi và chỉ khi với mỗi x ∈ X có tồn tại u sao cho:

(2.1) Bu ≥ d + Qx, -bT u ≥ - z + cT x

Chứng minh. (→) Phần chứng minh này được trực tiếp suy ra từ Bổ đề 2.1.1

và từ (x,u) là tối ưu.

(←) Giả sử (2.1) chấp nhận được với mỗi x ∈ X và ((cid:98)x,(cid:98)u) là một nghiệm tối ưu (cid:98)u (cid:54) bT u∗. Từ của (1.1). Với ((cid:98)x,u∗) là một nghiệm của (1.2). Từ ((cid:98)x,(cid:98)u) ∈ Λ, bT tính tối ưu cuả ((cid:98)x,(cid:98)u) ∈ Λ, suy ra cT (cid:98)u ≥ z = cT x + bT u, và bởi tính khả thi của ((cid:98)x,u∗)z ≥ cT (cid:98)u ≥ bT u∗. Do đó bT (cid:98)u = bT u∗ và (cid:98)x + bT u∗ = cT x + bT u. Từ đó ta có (x,u) là một nghiệm tối (cid:98)u = cT cT

(cid:98)x + bT (cid:98)x + bT u∗; suy ra bT

(cid:98)x + bT

ưu.

B

d

Q

B =

d =

Q =

Giả sử V = (cid:8)x1, x2, ..., xk(cid:9) là tập hữu hạn các điểm thuộc X. Xác định      

−bT

−z(V )

cT

     ,    ,  

trong đó z(V) = max {cT xi + bT ui : xi ∈ V, (xi, ui) ∈ Λ}.

24

Ta đặt S(V) = (cid:8)x|∃u ≥ 0 : Bu ≥ d(V ) + Qx(cid:9). Bây giờ ta có thể phát biểu

Λ, U chứa một nghiệm tối ưu của (1.1) khi và chỉ khi với mỗi x ∈ X có tồn tại

lại Định lý 2.1.4 như sau. Định lý 2.1.4a Cho V = (cid:8)x1, x2, ..., xk(cid:9) ⊆ X và U = (cid:8)(cid:0)x1, u1(cid:1) , ..., (cid:0)xk, uk(cid:1)(cid:9) ⊆

Bu ≥ d (V ) + Qx, u ≥ 0

u sao cho

tức là S(V ) ⊇ X. Tiêu chuẩn tối ưu này đã được dùng trong thuật toán trình

bày trong luận văn để kiểm tra xem X có nằm trong S(V) không. Đó là điều

kiện cần và đủ của tối ưu của định lý trên đây. Tính chất hiển nhiên của S(V)

là tính đơn điệu (nghĩa là S (V(cid:48)) ⊇ S (V) mỗi khi V(cid:48) ⊇ V làm cho S(V) dễ

được xử lý xét theo quan điểm thuật toán. Tuy nhiên có một tập khác với các

R (V ) =

λiwi

k (cid:80) x : ∃λi ≥ 0, d (V ) + Qx ≤ i=1 = d (cid:0)(cid:8)xi(cid:9)(cid:1). Rõ ràng R (V(cid:48)) ⊇ R (V) nếu V(cid:48) ⊇ V. Định

i Với wi = d

i + Q

i , d

tính chất tương tự. Đó là: (cid:26) (cid:27)

lý sau đây chỉ ra rằng R(V ) ⊇ X là điều kiện đủ của tối ưu.

Bổ đề 2.1.5. Với mỗi x ∈ R(V ) tồn tại u ≥ 0 sao cho Bu ≥ d (V ) + Qx

Chứng minh. Từ Bổ đề 2.1.1. và định nghĩa của z(V) suy ra tồn tại ui > 0 sao

d (V ) + Qx∗ ≤

i wi, λ∗

k (cid:80) i=1

cho Bui ≥ wi, i = 1, ... , k. Cho x∗ và ≥ 0 sao cho:

d (V ) + Qx∗ ≤

λ∗ i Bui = B

i ui = Bu∗, λ∗

k (cid:80) i=1

k (cid:80) i=1

ta suy ra

i=1λ∗

i ui ≥ 0

trong đó u∗ = (cid:80) k

25

Định lý 2.1.6. Cho một tập Cho tập V = {x1, ...., xk} là các điểm thuộc X

R(V) ⊆ X → z(V) = max {cT x + bT u |(x,u) ∈ Λ}

Chứng minh. Suy ra từ Định lý 2.1.4.a và bổ đề trước đó

Chúng ta thấy rằng R(V) ⊆ X, khi đó V chứa tất cả các đỉnh của X. Từ

∈ I }, nếu tồn tại λi ≥ 0, i ∈ I sao cho λiωi > 0, thì R(V) ⊆ X.Do có thể dùng

đó dùng R(V) thay cho V trong các thuật toán. Hơn nữa với V = {xi ∈ X | i

i như thế, nên dùng

Pha I trong quy hoạch tuyến tính để kiểm tra sự tồn tại λ∗

R(V) có thể trình bày ngắn gọn thuật toán

2.2 Mô tả thuật toán

Mục này trình bày thuật toán giải bài toán (2.2). Thuật toán dựa trên điều

kiện tối ưu nêu ở Định lý 2.1.4a. Ở mỗi vòng lặp của thuật toán một đỉnh mới

của X được tìm thấy cùng với một điểm tương ứng trong Λ và giá trị hàm mục

tiêu được tính. Sau đó tập lồi đa diện T được xây dựng sao cho tập đã cho V

các đỉnh của X đã được khám phá, giao của nó với X chứa trong S(V). Thuật

toán dừng khi có điều kiện X ⊆ T , điều này tương ứng với điều kiện nói ở Định

lý 2.1.4.a. Ở mục 2.2 giới thiệu một biến thể khác của thuật toán này. Nó dựa

trên cùng các công cụ toán học và sử dụng cách tiếp cận siêu phẳng cắt.

2.2.1 Các bước của thuật toán

Bước 0. . Lấy trong S một đỉnh không suy biến x0, tức là đỉnh có đúng n

đỉnh kề x1, x2, . . . , xn. (Giả thiết này đối với x0 được đưa ra để làm đơn giản

26

cách trình bày và ở mục tiếp sau nó sẽ được loại bỏ). Với mỗi xi ∈ X, ta gọi vi

là véc tơ đơn vị xác định nửa đường thẳng xuất phát từ x0 và đi qua xi. Đặt V = (cid:8)x0, x1, . . . , xn(cid:9), ω = (cid:8)v1, . . . , vn(cid:9) và ∆ = {ω} . Tiến tới bước 1

Bước 1. Nếu ∆ = ∅ thì dừng thuật toán và z(V) là giá trị tối ưu của hàm hàm mục tiêu. Trái lại, chọn một tập ω = (cid:0)vi1, ..., vin(cid:1) trong D và chuyển sang

Bước 2.

θij = max (cid:8)θij : x0 + θijvij ∈ S (V )(cid:9) và chuyển sang Bước 3.

Bước 2. Với mỗi j = 1, . . . , n, giải quy hoạch tuyến tính để tìm:

n) là nghiệm tối ưu cực biên của quy hoạch tuyến

1, ..., λ∗

Bước 3. Tìm (λ∗

tính

n (cid:80) j=1

x0 +

λijvij ∈ X và chuyển sang Bước 4.

n (cid:80) j=1

(cid:0)1/θij (cid:1)λij → max

≤ 1 thì loại bỏ ω ra khỏi ∆ và trở lại Bước

n (cid:80) j=1

Bước 4. a) Nếu (cid:0)1/θij (cid:1)λ∗ ij

1.

vij . Thêm xq vào V và đổi mới giá trị

j=1λ∗ ij

> 0, tạo ra một tập bằng cách thay vq trong ω cho, sau

b) Trái lại, đặt xq = x0 + (cid:80) n

z(V). Với mọi j với λ∗ ij

đó thay ω trong ∆ bằng các tập mới này. Quay trở lại Bước 1.

Nhận xét 1. Để tính z(V) ở Bước 0, với mỗi i = 0, 1, . . . , n, ta giải một

min (cid:8)bTu : u ∈ U (cid:0)xi(cid:1)(cid:9)

bài toán tuyến tính:

và nhận được một nghiệm tối ưu gốc ui và một nghiệm tối ưu đối ngẫu yi. Sau

đó véctơ (xk, yk), k = {0, 1, . . . , n}, được chọn sao cho:

27

cTxk + bTuk = max (cid:8)cTxi + bTui : i = 0, 1, . . . , n(cid:9) = z (V) ,

và được lưu giữ làm nghiệm tối ưu hiện có. Trong quá trình thực hiện thuật

toán, mỗi lần véctơ mới xq được thêm vào V, thì giá trị nghiệm tối ưu hiện có

z(V) lại được thay đổi mới.

Nhận xét 2. Theo cách xây dựng θij > 0 , j = 1, . . . , n, và nếu θij = +∞

(cid:1) = 0. thì theo quy ước (cid:0)1/θij

Nhận xét 3. Phần lớn công việc trong thuật toán là thực hiện Bước 2. Với

(cid:1) ≥ d (V ) + Qx0, u ≥ 0(cid:9) mỗi j = 1, . . . , n, cần giải một bài toán tuyến tính max (cid:8)θij : Bu − (cid:0)(cid:0)Qvij (cid:1) θij

Tuy nhiên các bài toán tuyến tính này chỉ khác nhau ở một cột hệ số và do

đó công sức cần bỏ ra để giải chúng có thể giảm bớt đáng kể nhờ khéo liên kết

các nghiệm. Cũng nên chú ý là θij có thể thay đổi chỉ nếu z(V) thực sự giảm Nhận xét 4. Mỗi ω = (cid:8)vi1, ..., vin(cid:9) trong ∆ tương ứng với một ma trận không suy biến E (ω) = (cid:2)vi1, ..., vin(cid:3) bài toán tuyến tính ở Bước 3 có thể diễn

max

, trong đó g (ω)T = (cid:2)1/θi1, ..., 1/θin

(cid:111) đạt lại như sau: (cid:110) g (ω)T (cid:0)x − x0(cid:1) : x ∈ X (cid:3) E (ω)−1

Tập chấp nhận được của bài toán này không thay đổi từ vòng lặp này sang

vòng lặp khác, trong khi đó véctơ hệ số mục tiêu b(ω) thay đổi theo ω. Một

ω khác vòng lặp trước chỉ bởi một véctơ.

vài cố gắng tính toán có thể được lưu lại bằng cách thay đổi ω từ từ giống như

Nhận xét 5. Như đã nói tới ở mục trước, trong thuật toán có thể thay thế

S(V) bằng R(V).

28

2.2.2 Suy biến

Lúc này trong thuật toán x0 được giả thiết là một đỉnh không suy biến. Hai

x0 là một đỉnh của

định lý sau cho phép ta sửa lại bước 0 để có thể bỏ qua giả thiết này. Giả sử

X =

aijxj (cid:54) ai, i ∈ M, x (cid:62) 0

x ∈ Rn : (cid:80) j∈N

(cid:40) (cid:41)

{1, 2, . . . , n} và M = {1, 2, . . . , m}. Xét

trong đó aij và ai là các phần tử của ma trận A và véctơ a tương ứng, N =

aijxj + si = ai, i ∈ M, x (cid:62) 0, s (cid:62) 0

(cid:40) (cid:41)

(x, s) ∈ Rn+m : (cid:80) j∈N

i = ai − (cid:80)

j, i =

j∈N aijx0

(cid:101)X =

Rõ ràng là (cid:101)x0 = (cid:0)x0, s0(cid:1) là một đỉnh của (cid:101)X nếu s0 1,..., m. Đặt

j > 0 hay x0

j là biến phi cơ sở }.

J = {j : x0

j > 0 hay s0

j là biến phi cơ sở }.

I = {i : s0

X (cid:48) =

aijxj (cid:54) ai, i ∈ I, x (cid:62) 0, j ∈ J

x ∈ Rn : (cid:80) j∈N

Xác định: (cid:40) (cid:41)

Rõ ràng X ⊆ X (cid:48)

Định lý 2.2.1. Cho x0 là một đỉnh của X (cid:48) và liên thuộc với đúng n cạnh khác

biệt của X (cid:48).

Chứng minh. Do (x0, s0), là một nghiệm chấp nhận được cơ sở nên tồn tại các

số thực αjh, βjk, ¯αjh, ¯βjk, sao cho

si = s0

j -((cid:80) i -((cid:80)

k∈M (cid:118)I 0βjksk), j ∈ J 0 k∈M (cid:118)I 0 ¯βiksk), i ∈ I 0

(cid:101)X = { (x, s) ∈ Rn+m | xj = x0

h∈N (cid:118)J 0αjhxh + (cid:80) h∈N (cid:118)J 0 ¯αihxh + (cid:80) xj (cid:62) 0, j ∈ N; si (cid:62) 0, i ∈ M },

(3.1)

29

j là biến cơ sở },

I 0 ={ ı| x0

i là biến cơ sở }.

Trong đó J 0 ={ | x0

Xét

si = s0

j -((cid:80) i -((cid:80)

k∈M (cid:118)I 0βjksk), j ∈ J 0 k∈M (cid:118)I 0 ¯βiksk), i ∈ I 0

(cid:102)X (cid:48) = { (x, s) ∈ Rn+m | xj = x0

h∈N (cid:118)J 0αjhxh + (cid:80) h∈N (cid:118)J 0 ¯αihxh + (cid:80) xj (cid:62) 0, j ∈ N; si (cid:62) 0, i ∈ I }

(3.2)

Giả sử (x0, s0) không phải là một đỉnh của (cid:102)X (cid:48). Khi đó tồn tại hai điểm khác

nhau (x(cid:48), s(cid:48)), (x(cid:48)(cid:48), s(cid:48)(cid:48)) trong đó (cid:102)X (cid:48), và λ, với 0 < λ < 1,

j = x(cid:48)(cid:48) x(cid:48)

j = 0 với mọi j ∈ N ∼ J 0

i = s(cid:48)(cid:48) s(cid:48)

i = 0 với mọi i ∈ M ∼ I 0. Theo (3.2) điều này kéo theo

(x(cid:48), s(cid:48)) = (x(cid:48)(cid:48), s(cid:48)(cid:48)) ta gặp mâu thuẫn. Do đó x0 là một đỉnh của X (cid:48)

sao cho (x0, s0) = λ(x(cid:48), s(cid:48)) + ( 1 - λ )(x(cid:48)(cid:48), s(cid:48)(cid:48)), dễ thấy

xj = x0

j - δhαjh, j ∈ J 0,

si = s0

j - δh ¯αih, i ∈ I 0,

Với h ∈ N ∼ J 0 và δh ≥ 0, xây dựng n tia (nửa đường thẳng) xác định bởi :

xh = δh,

xj = 0, j ∈ N ∼ (J 0 ∪ {h}),

si = 0, i ∈ M ∼ I 0,

(3.3)

xj = x0

si = s0

j - δkβjk, j ∈ J 0, ¯βik, i ∈ I 0,

i - δh

Và cho k ∈ M ∼ I 0 và δk ≥ 0, sao cho:

sk = δk,

si = 0, i ∈ M ∼ (J 0 ∪ {k}),

(3.4)

30

δh ≤ δ∗

j/αjh|αjh > 0(cid:9) , min

h = min

min j∈J 0∩J

i∈I∩I 0

Từ mục (3.2) suy ra các siêu phẳng này giao với (cid:101)X (cid:48), sao cho: (cid:27) (cid:26) (3.5) (cid:8)x0 (cid:8)s0

i /αih|αih > 0(cid:9) (cid:27)

δk ≤ δ∗

j/βjk|βjk > 0(cid:9) , min

i /βik|βik > 0(cid:9)

k = min

min j∈J 0∩J

(cid:26) (3.6) (cid:8)x0 (cid:8)s0

i∈I∩I 0 k không thể bằng 0, nghĩa là mỗi

h và δ∗

Từ định nghĩa của I và J suy ra rằng δ∗

siêu phẳng có ít nhất một điểm khác với (x0, s0) trong (cid:101)X (cid:48) . Các đoạn thẳng

được xác định bởi (3.3) - (3.6) là n cạnh khác nhau của và liên thuộc với (x0, s0).

Do (cid:101)X (cid:48) biểu diễn cùng một tập lồi đa diện như X (cid:48) nên định lý được chứng minh

xong.

Chứng minh trên đây sử dụng các ký hiệu quen thuộc của quy hoạch tuyến

tính và được nêu ra để chỉ rõ cách xác định n cạnh khác biệt của X (cid:48) kề x0.

Định lý 2.2.2. Cho một vectơ x0 ∈ X, với (x0, u0) ∈ Λ, và tập hữu hạn V các

điểm trong X, sao cho cT x0 + bT u0 < z(V ). Khi đó trên tia bất kỳ đi từ x0,

¯Bu ≥ ¯d(V) + ¯Qx.

tồn tại điểm x (cid:54)= x0 sao cho với x đó tìm được u ≥ 0 thỏa mãn:

Chứng minh. Xét tia (cid:96) bất kỳ đi từ x0 và giả sử x∗ là điểm trên (cid:96) khác x0. Theo

Bổ đề 1.1.1, tồn tại u∗ ≥ 0 sao cho: Bu∗ ≥ d + Qu∗.Đặt z∗ = cT x∗ + bT u∗.

Kết luận của định lý là đúng nếu z∗ ≤ z(V). Trái lại, (x, u) = µ (x0, u0) + (1

µ = (z∗ - z(V))/(z∗ - cT x0 − bT u0) và 0 < µ < 1

- µ)(x∗, u∗) là một nghiệm của (2.2) trong đó

Theo Định lý 3.1, có thể giả thiết x0 là đỉnh không suy biến của tập lồi đa

diện mới X (cid:48) chứa X. Trong X (cid:48) x0 là đỉnh có đúng n cạnh kề, các cạnh này được

31

xác định bởi n véctơ với chuẩn đơn vị v1, . . . , vn. Nón sinh bởi x0, v1, . . . , vn

chứa X. Vì thế, nếu với mỗi vi xác định được số dương ¯θi thì có thể dùng tập {v1, . . . , vn} làm tập ω để bắt đầu thuật toán. Định lý 3.2 bảo đảm ¯θi > 0 với

một số giả thiết có thể dễ dàng kiểm tra, trừ ra một vài trường hợp ngoại lệ.

Khi loại bỏ giả thiết không suy biến, có thể diễn đạt lại Bước 0 của thuật toán

như sau.

Bước 0: Tìm đỉnh x0 ∈ X với các đỉnh kề x1, ..., xr, sao cho nếu r > n thì

x0, u0) ∈ Λ. Giả sử v1, ..., vn là các véctơ chuẩn đơn vị xác định các tia đi từ

x0 qua các đỉnh kề với x0 trong X (cid:48) (X (cid:48) xác định như ở Định lý 3.1). Đặt V =

{x0, x1, ..., xr}, ω = {v1, ..., vn} và ∆ = {ω}. Chuyển sang Bước 1

có xj, j ∈ {1, ..., n}, thỏa mãn cT xi + bT ui > cT x0 + bT u0 với ( xj, uj) ∈ Λ, (

2.2.3 Sự hội tụ

Mục này trình bày chứng minh sự đạt nghiệm tối ưu khi kết thúc thuật

toán. Một vòng lặp của thuật toán gồm các bước từ 1 đến 4, và ∆c là tập tất

cả các ω bị loại khỏi ∆ mà không bị thay thế. Rõ ràng ở Bước 0 ∆c = ∅ và mở

rộng dần mỗi khi điều kiện ở Bước 4.a được kiểm tra là đúng. Cho tập véctơ ω

sao cho I(ω) = {i : vi ∈ ω}, xét các tập lồi đa diện: (cid:40)

C(ω) =

λivi; λi ≥ 0, i ∈ I(ω)

x|x = x0 + (cid:80) i∈I(ω)

(cid:41) ,

(cid:40)

H(ω) =

λivi; (cid:80)

(1/θi)λi ≤ 1

x|x = x0 + (cid:80) i∈I(ω)

i∈I(ω)

(cid:41) ,

C (ω)

H (ω)

∪ ω∈∆∪∆c

∩ ω∈∆∪∆c

(cid:20) (cid:21) (cid:20) (cid:21) T =

32

trong đó θi = max (cid:8)θi : x0 + θivi ∈ S (V )(cid:9) > 0 và V là tập các đỉnh của X đã

được thăm dò ở vòng lặp hiện tại của thuật toán.

Theo Định lý 2.2.3 được nêu dưới đây, T ⊆ S(V) ở mọi vòng lặp của thuật

toán. Hơn nữa, theo Hệ quả 2.2.4, X ⊆ T nếu ∆ = ∅. Điều này kéo theo X ⊆

S(V) khi thuật toán kết thúc. Do đó theo Định lý 2.1.4.a, quy tắc dừng thuật

toán bảo đảm rằng đã nhận được nghiệm tối ưu.

Định lý 2.2.3. Ở mọi vòng lặp của thuật toán T ⊆ S(V)

H (ω)

C (ω)

∩ ω∈∆∪∆c

∪ ω∈∆∪∆c

Chứng minh. Do (cid:21) (cid:21) (cid:20) (cid:20) T =

H(ω)

[C (ω) ∩ H(ω)]

C (ω) ∩

⊆ ∪

ω∈∆∪∆c

∪ ω∈∆∪∆c

ω∈∆∪∆c

(cid:19)(cid:21) (cid:20) (cid:18) = ∪

Để hoàn thành việc chứng minh ta cần nêu được C (ω) ∩ H (ω) ⊆ S (V ). Cho

ˆx là một điểm trong C (ω) ∩ H (ω), sao cho: ˆx = x0 (cid:80) i=I(ω)

≤ 1, (cid:98)λi ≥ 0, i ∈ I(ω). Ta có thể viết lại như sau:

(cid:98)λi θi

θivi

(cid:98)λi θi

(cid:98)λivi

Với (cid:80) i=I(ω) x = x0 + (cid:80) i∈I(ω) (cid:32) (cid:33)

(x0 + θivi)

(cid:98)λi θi

x0 + (cid:80) i∈I(ω)

1 − (cid:80) i∈I(ω) = (cid:98)µ0x0 + (cid:80)

(cid:98)λi θi (cid:98)µi(x0 + θivi)

i∈I(ω)

≥ 0, i ∈ I(ω)

≥ 0, (cid:98)µi = (cid:98)λi

=

(cid:98)λi θi

θi

i∈I(ω)

Trong đó: (cid:98)µ0 = 1 − (cid:80)

i∈I(ω)

(cid:98)µ0 + (cid:80) (cid:98)µi = 1

Từ tính lồi của S(V ), ˆx là tổ hợp lồi của các điểm thuộc S(V ), Từ tính lồi của

S(V), là tổ hợp lồi của các điểm thuộc S(V) nên sẽ nằm trong S(V) và đến đây

33

định lý được chứng minh đầy đủ.

Định lý 2.2.1 tương tự như Bổ đề về lát cắt lồi của Glover [3], dựa trên ý

tưởng lát cắt Hoàng Tụy [6].

i vi trong đó λ∗ λ∗

i ≤ 0 với i ∈ I 0 và λ∗

i > 0 với i ∈ I + (cid:54)=

i∈I +

v∗ = (cid:80) i∈I 0

i vi + (cid:80) λ∗ ∅, I 0 ∪ I + = {1, ....n}. Ta đặt

Bổ đề 2.2.4. Cho n véctơ n - chiều độc lập tuyến tính v1, . . . , vn và bất kỳ

,

C =

x : x =

λivi, λi ≥ 0, i = 1, ..., n

n (cid:80) i=1

(cid:27) (cid:26)

và với j ∈ I +

λivi, λi ≥ 0, i = 1, ..., n

Cj =

x : x = λjv∗ +

   

n (cid:80) i=1 i(cid:54)=j

Cj

 

Khi đó: C ⊆ ∪ j∈I +

x = (cid:80)

λivi

i∈I 0∪I +

Chứng minh. Lấy điểm bất kỳ trong C, chẳng hạn:

µv∗ = (cid:80)

với λi ≥ 0. Với µ bất kỳ

i

i

(cid:1)vi (cid:1)vi + (cid:80) i∈I +

i∈I 0∪I + x = µv∗ + (cid:80) i∈I 0 r = min (cid:8)λi/λ∗

i )vi (µλ∗ (cid:0)λi − µλ∗ (cid:0)λi − µλ∗ i : i ∈ I +(cid:9) ≥ 0. Khi đó,x ∈ Cr (trên biên của

Cr nếu µ = 0)

Chọn µ = λr/λ∗

H(ω)

T ⊇ C0 ∩ (cid:26)

Định lý 2.2.5. Tại mỗi vòng lặp của thuật toán (cid:20) (cid:21) , Trong đó

x|x0 +

C0 =

λivi; λi ≥ 0, i = 1, ..., n

∩ ω∈∆∪∆c n (cid:80) i=1

(cid:27) ,

Và v1,...,vn là các vectơ chuẩn đơn vị xác định ở Bước 0

34

Chứng minh. Theo định nghĩa của T chỉ cần chứng minh rằng C0 ⊆ ∪ω∈∆∪∆cC(ω)

. Có thể thấy rằng trong thuật toán ∪ω∈∆∪∆cC(ω) được xây dựng như sau: Ta

js, hợp của chúng chứa C0. Các tập tiếp

bắt đầu với tập C0 và tạo ra các tập C ‘

sau được xây dựng bằng cách xuất phát từ tập Cj nào đó và quá trình được

áp dụng lặp lại để nhận được ∪ω∈∆∪∆cC(ω). Như vậy, kết luận định lý suy ra

từ Bổ đề 2.2.2.

Hệ quả 2.2.6. Nếu ∆ = ∅, thì X ⊆ T

Chứng minh. X được chứa trong C0 theo cách xây dựng C0 và trong H(ω) với

mọi ω ∈ ∆c theo điều kiện ở Bước 4.a. Từ đó, kết luận của hệ quả được suy ra

từ Định lý 2.2.3.

2.3 Cách tiếp cận siêu phẳng cắt

Mục này trình bày biến thể siêu phẳng cắt của thuật toán. Cách tiếp cận

siêu phẳng cắt này dựa trên quan sát sau đây. Trong thuật toán nêu ở mục 2.2,

vòng lặp thứ nhất tạo ra nửa không gian H(ω) sao cho H (ω) ∩ X ⊆ S (V) .

Do đó, theo tiêu chuẩn tối ưu sẽ không có điểm nào trong H (ω) ∩ X cho

giá trị hàm mục tiêu tốt hơn z(V). Trong thuật toán siêu phẳng cắt, phần của

X nằm trong H(ω) bị cắt bỏ và tạo ra một tập X mới nhỏ hơn. Sau đó, tìm

một đỉnh của tập X mới và tiếp tục thực hiện cũng các vòng lặp như trước. Ưu

điểm của cách tiếp cận này là đòi hỏi bộ nhớ ít hơn. Thuật toán siêu phẳng cắt

gồm các bước như sau.

35

X0 = X, k = 0. Chuyển sang Bước 1.

Bước 0. . Chọn một đỉnh bất kỳ trong X và xác định V = {x0}. Đặt

Bước 1. Trong Xk tìm các đỉnh xk,1, xk,2, . . . , xk,r kề xk và đưa các đỉnh

xk,j sao cho zk,j < zk rồi đặt xk = xk,j và tìm các đỉnh kề xk và chuyển sang

này vào V. Với mỗi j = 1, 2, . . . , r tính giá trị zk,j = cTxk,j + bTuk,j sao cho (cid:0)xk,j, uk,j(cid:1) ∈ Λ. Nếu hoặc r = n hoặc r > n và tồn tại j sao cho zk,j > zk = cTxk + bTuk với (cid:0)xk, uk(cid:1) ∈ Λ thì chuyển sang Bước 2. Trái lại, chọn một đỉnh

Bước 2 (Đối với trường hợp đặc biệt khi r > n và zk = zk,i với mọi

i = 1,2, . . . , n, xem Nhận xét 1 dưới đây).

Bước 2. Giả sử vk,1, . . . , vk,n là các véctơ chuẩn đơn vị, xác định các nửa

k ( xác định như trong Định

đường thẳng đi từ xk qua các đỉnh xk kề trong X ‘

, n bằng cách giải quy hoạch

lý 3.1 với X = Xk và x0 = xk). Với i = 1, . . . tuyến tính tìm số θi = (cid:8)θi : xk + θivk,i ∈ S (V)(cid:9) . Chuyển sang Bước 3. Bước 3. Xác định ma trận M = (cid:2)vk,1, . . . , vk,n(cid:3) và h = (cid:0)1/θ1, ...., 1/θn (cid:1)T (cid:0)θi > 0(cid:1).

Giải quy hoạch tuyến tính:

max (cid:8)hT M −1 (cid:0)x − xk(cid:1) : x ∈ Xk

(cid:9)

Giả sử x∗ là một nghiệm tối ưu và α là giá trị tối ưu nhận được. Nếu α ≥ 1

thì dừng thuật toán. Trái lại chuyển sang Bước 4.

Xk+1 = Xk ∩ (cid:8)x ∈ Rn : hT M −1 (cid:0)x − xk(cid:1) (cid:62) 1(cid:9)

Bước 4. Thêm x∗ vào V. Đặt xk+1 = x∗ và

Đặt k = k + 1. Nếu zk < Z(V ) thì quay lại Bước 2. Trái lại, quay lại Bước 1.

Nhận xét 1. Nếu r > n và zk = zk,j, j = 1, ... , r thì các giả thiết của

Định lý 3.2 có thể không còn đúng, do đó ở Bước 2, zk = zk,j > 0 không còn

36

α = max (cid:8)πT (cid:0)x − xk(cid:1) : x ∈ X(cid:9)

được bảo đảm nữa. Trong trường hợp này ở Bước 3, α cần được thay bằng:

Khi đó, ràng buộc mới ở Bước 4 trở thành πT (cid:0)x − xk(cid:1) (cid:62) 1 , trong đó π là

min

πT (cid:98)θk,i

(cid:27) (cid:0)xk,i − xk(cid:1) (cid:62) 1, i = 1, ..., r nghiệm của bài toán sau: (cid:26) n (cid:80) i=1

(cid:0)xk,i − xk(cid:1) :πT (cid:98)θk,i (cid:0)xk,i − xk(cid:1) ∈ S (V )(cid:9) Với (cid:98)θk,i = max (cid:8)θk,i : xk + θk,i

xk,1,

. . . , xk,n được nhận ra thuộc cùng một diện của Xk thì không cần hoàn

Nhận xét 2. Để ý rằng nếu ở lúc bắt đầu một vòng lặp đã cho, các điểm

thành vòng lặp đó và có thể kết thúc thủ tục.

Nhận xét 3. Cũng như trong biến thể thứ nhất của thuật toán, S(V) có

thể được thay bằng R(V)

2.4 Ví dụ minh họa thuật toán

Xét ví dụ số trong R2

1 −1

y1

y1

x1

[2, 0]

     Xét bài toán quy hoạch song tuyến tính   

−1

1

y2

y2

x2

  → max,    + [0, 1]         + [x1, x2]   

1

1

 với điều kiện x ∈ X, y ∈ Y, trong đó:  

2

1

x1

 

(LP1)

3 −1

x2

(cid:54) ,x ≥ 0}, X = {x ∈ R2 :    

1 −2

                            5    7    6    1

37

1 2

8

   

3 1

14

y1

 

2 0

6

y2

(cid:54) Y = {(y ∈ R2 : ,y ≥ 0}.    

0 1

3

                                   

u1

Các tập X và Y được vẽ ở Hình 2.1. Phát biểu đối ngẫu của bài toán này là  

x1

u2

[2, 0]

→ max

(LP2)

 

x2

u3

 

u4

      + min [8, 14, 9, 3]              

u1

Với điều kiện  

1 −1

1 3 2 0

x1

u2

      

−1

1

2 1 0 1

x2

u3

x ∈ X và  , u ≥ 0       +        0   1

u4

                 

Để tìm nghiệm tối ưu của bài toán, thuật toán mô tả ở trên phải qua các

vòng lặp như sau.

x2 = (0, 5)T . Giải (LP2) bằng cách đặt x = xi, i 0, 1, 2. Các giá trị tối ưu tương

Khởi sự (Bước 0). Chọn x0 = (0, 0)T . Các đỉnh kề x0 là x1 = (1, 0)T và

z(x0) = 3, z(x1) = 13/2, z(x2) = 18.

ứng là

Đặt V = (cid:8)x0, x1, x2(cid:9) , z (V ) = 18, w1 = (cid:8)v1, v2(cid:9) và ∆ = {ω1}, trong

đó:

38

v1 = (1, 0)T , v2 = (0, 1)T .

Vòng lặp 1

Bước 1. ∆ (cid:54)= ∅. Chọn ω1

• Tìm cực đại θ1,

Bước 2. Giải quy hoạch tuyến tính:

u1

 

1

3

2

0

1

0

u2

     

θ1 ≥

2

1

0

1

−1

1

u3

với điều kiện - ,

−8 −14 −9 −3

2

−18

                             

u4

u ≥ 0, θ1 ≥ 0

• Tìm cực đại θ2,

                 

u1

 

1

3

2

0

−1

0

u2

     

θ2 ≥

2

1

0

1

1

1

u3

- , với điều kiện

−8 −14 −9 −3

0

−18

                             

u4

u ≥ 0, θ2 ≥ 0

                 

Giá trị tối ưu lần lượt là: θ1 = 36/13, θ2 = 5

• Tìm cực đại 13

36λ1 + 1

5λ2,

Bước 3. Giải quy hoạch tuyến tính

39

1

1

  

2

1

   

3 −1

(cid:54) với điều kiện     λ1 +      1   0  0   λ2 1

1 −2 Nghiệm tối ưu là λ∗ (cid:1) λ∗

                            5    7    6    1

13

90 > 1 nên ta đặt 2/

x3 =

Bước 4. Do (cid:0)1/θ1   

3/

13

1 = 2, λ∗ 1 + (cid:0)1/θ2   0   + 2 0

2 = 3. (cid:1) λ∗ 2 = 119   1   0

      + 3      0  , v3 = 1

Thêm x3 vào V và thay ω1 trong ∆ bằng ω2 = {v1, v3} và ω3 = {v3, v2}.

Để đổi mới z(V), ta đặt x = x3 trong (LP2) và giải quy hoạch tuyến tính thu

được. Giá trị tối ưu là 10, nghĩa là nhỏ hơn z(V). Vì thế, z(V) được giữ nguyên.

Vòng lặp 2

Bước 1. ∆ (cid:54)= ∅. Chọn ω2 = (cid:8)v1, v3(cid:9).

• Tìm cực đại θ3,

Bước 2. θ1 không thay đổi; θ3 là giá trị tối ưu của quy hoạch tuyến tính:

u1

 

1

3

2

0

13

0

u2

−1/ √

     

θ3 ≥

13

2

1

0

1

1/

1

u3

- với điều kiện

4/

13

−8 −14 −9 −3

−18

                           ,   

u4

u (cid:62) 0, θ3 (cid:62) 0. √

13.

                 

Giá trị tối ưu θ3 = 15 7

Bước 3. Giải

40

• Tìm cực đại 13

λ3

15

3

36λ1 + 7 

1

1

 

2

1

0

    

3 −1

1

(cid:54) với điều kiện     λ1 +     λ2    1   0

13.

1 −2 Nghiệm tối ưu là λ∗

2 = 3 5

5, λ∗ (cid:1) λ∗

                            5    7    6    1

3 × 707/900 =< 1. Do đó, ω2 bị loại khỏi ∆.

1 = 7 1 + (cid:0)1/θ3

(cid:1) λ∗ Bước 4. (cid:0)1/θ1

Vòng lặp 3

Bước 1. ∆ = (cid:8)ω3(cid:9) .. Chọn ω3 = (cid:8)v3, v2(cid:9).

Bước 2. θ3 và θ3 không thay đổi.

• Tìm cực đại 1

λ3,

5λ2 + 7

15

3

Bước 3. Giải

1

1

  

13

2/

2

1

    

3/

13

3 −1

(cid:54) với điều kiện   λ3       λ2 +    0   1

1 −2 Nghiệm tối ưu là λ∗

3 = 0

2 = 5, λ∗ (cid:1) λ∗

                            5    7    6    1

2 + (cid:0)1/θ3

3 = 1. Do đó, ω3 bị loại khỏi ∆.

(cid:1) λ∗ Bước 4. (cid:0)1/θ2

Vòng lặp 4

Bước 1. ∆ = ∅. Do đó dừng thuật toán. Nghiệm tối ưu là

41

x∗ =

 

     0  , y∗ = 5  0  , 3

trong đó y∗ là nghiệm đối ngẫu tối ưu của bài toán thứ ba được giải ở Bước 0.

Giá trị tối ưu của hàm mục tiêu bằng 18.

Nhận xét. Để ý rằng chiến thuật duyệt toàn bộ phải duyệt qua tất cả 6 đỉnh

• Giải theo thuật toán siêu phẳng cắt

của X, trong khi đó thuật toán đề xuất chỉ phải khảo sát 4 đỉnh trong số đó.

Mục này giải lại bài toán (LP1) theo thuật toán siêu phẳng cắt.

Vòng lặp 1

Bước 1. Các đỉnh kề x0 là x0,1 = (1, 0)T và x0,2 = (0, 5)T với z0,1 = 13 2 và z0,2 = 18. Đặt V = (cid:8)x0, x0,1, x0,2(cid:9) , z (V ) = 18. Vì r = 2 = n nên chuyển sang

13, θ2 = 5.

Bước 2.

1 0

1 0

13 36

Bước 2. v0,1 = (1, 0)T , v0,2 = (0, 1)T và như trước đây θ1 = 36     

0 1

0 1

1 5

Bước 3. M =   và h =    . Tính giá trị   , M −1=    

1 0

α = max {

  (cid:20) (cid:21)

13 36

1 5

0 1

(cid:0)x − x0(cid:1) : x ∈ X0}, bằng cách giải quy hoạch    

tuyến tính:

max (cid:8) 13

36x1 + 1

5x2 : x ∈ X0

90 > 1. Chuyển sang Bước 4.

(cid:9)

5x2 (cid:62) 1(cid:9)

36x1 + 1

Nghiệm tối ưu: x∗ = (2, 3)T với α = 119 Bước 4. Đặt V = (cid:8)x0, x0,1, x0,2, x∗(cid:9) , x1 = x∗ và X1 = X0 ∩ (cid:8)x ∈ R2 : 13

Vì z1 = 10 < 18 = z(V) nên chuyển Bước 2 của vòng lặp 2.

42

Vòng lặp 2

x1,1 =

9 5

13 5

Bước 2. Các đỉnh kề x1 là  13 5   , x1,2 =      0  , 5

   

   

   

   

   

 2     3

 2     3

 0     5

2

1/

  

v1,1 =

5 √

−1/ √

9 5 3/

5

2/

2

−2/

5

1/

2

= =   , v1,2 =  .    

• Tìm cực đại θ1 với các điều kiện

Giải hai quy hoạch tuyến tính:

u1

 

0

1

3

2

0

1 −1

2

u2

×

1

2

1

0

1

−1

1

−1/ √

          

1/

2

u3

−8 −14 −9 −3

−18

2

0

        + θ2    2   3                              

u4

                 

2

5, θ2 = 2 

, u (cid:62) 0, θ2 (cid:62) 0.

2

5

1/

5 −1/ √ √

5 − √

5

1/

2

2

2 −

−2/

−2/

Bước 3. M = Nghiệm tối ưu lần lượt là: θ1 = 37 31    , M −1 =      

31 √

37

5

 

1 √

2

2

và h =  . Tính giá trị  

5

31 √

α = max {

  (cid:20) (cid:21)

5 − √

37

5

1 √ 2

2

2

2 −

−2/

(cid:0)x − x1(cid:1) : x ∈ X1}    

Bằng cách giải quy hoạch tuyến tính:

43

max (cid:8)− 68

74 : x ∈ X1

37x1 − 99 (cid:1)T

74x2 + 569 với α = 9803

173, 150

6401 > 1. chuyển sang Bước 4.

173

(cid:9) .

37x1 − 99

74x2 + 569

74

(cid:62) 1(cid:9) . Nghiệm tối ưu: x∗ = (cid:0) 396 Bước 4. V = (cid:8)x0, x0,1, x0,2, x1, x1,1, x1,2, x∗(cid:9) , x2 = x∗ và X2 = X1 ∩ (cid:8)x ∈ R2 : − 66

Vì z2 < z(V ) nên chuyển Bước 2 của vòng lặp 3.

Vòng lặp 3

Bước 2. Các đỉnh kề x2 là

1089 433

x2,1 =

 

669 433

  , x2,2 =      0   5

Do cả hai điểm này thuộc cùng một diện của X2, cụ thể là lát cắt tạo ra ở vòng

lặp trước nên dừng thuật toán.

x∗ =

Nghiệm tối ưu của bài toán quy hoạch song tuyến tính là:  

     0  , y∗ = 5  0   3

với giá trị tối ưu của hàm mục tiêu bằng 18.

Kết luận chương 2

Chương này giới thiệu thuật toán nêu ở [3] tìm nghiệm của bài toán quy

hoạch song tuyến tính với miền ràng buộc rời nhau và với giả thiết các tập ràng

buộc X, Y bị chặn. Thuật toán đưa bài toán ban đầu về bài toán tối ưu trên

một tập không lồi và giải bài toán nhận được dựa trên điều kiện tối ưu đưa

ra. Thuật toán hội tụ về nghiệm đúng của bài toán quy hoạch song tuyến tính

ban đầu và được minh họa bằng ví dụ số cụ thể.

44

Kết luận

Luận văn đề cập tới bài toán quy hoạch song tuyến tính, một dạng đặc biệt

của quy hoạch toàn phương. Nói chung, quy hoạch song tuyến tính là một bài

toán tối ưu không lồi, không lõm và thuộc lớp bài toán tối ưu toàn cục, rất khó

giải. Tuy nhiên, bài toán này có nhiều ứng dụng trong lý thuyết và thực tiễn,

nên được nhiều tác giả quan tâm nghiên cứu, cả về lý thuyết và thuật toán

giải. Luận văn đã trình bày những nội dung cụ thể sau:

1. Các kiến thức toán học có liên quan tới bài toán quy hoạch song tuyến

tính: đối ngẫu trong quy hoạch tuyến tính, bài toán quy hoạch lõm với ràng

buộc tuyến tính, tính chất nghiệm của bài toán quy hoạch song tuyến tính và

mối liên hệ với bài toán cực tiểu hàm lõm, tuyến tính từng khúc. Giới thiêu

"thuật toán xuống núi" tìm nghiệm cực tiểu địa phương của bài toán quy hoạch

song tuyến tính khi miền ràng buộc bị chặn.

2. Cách đưa bài toán quy hoạch song tuyến tính về bài toán tối ưu tương

đương trên một tập không lồi. Từ đó có thể tìm nghiệm đúng của bài toán quy

hoạch song tuyến tính với miền ràng buộc tách biến và với giả thiết miền ràng

buộc bị chặn, theo thuật toán dựa trên điều kiện tối ưu của nghiệm bài toán.

Biến thể siêu phẳng cắt của thuật toán và ví dụ số minh họa thuật toán.

45

Tài liệu tham khảo

Tiếng Việt

[1] Lê Dũng Mưu, Nguyễn Hiền và Nguyễn Hữu Điển (2014), Giáo trình giải

tích lồi và ứng dụng, NXB Đại học Quốc gia Hà Nội.

[2] Trần Vũ Thiệu, Nguyễn Thị Thu Thủy (2011), Giáo trình tối ưu phi tuyến,

NXB Đại học Quốc gia Hà Nội.

Tiếng Anh

[3] Gallo G., ¨Ulk¨uc¨u A. (1977), "Bilinear Programming: An Exact Algorithm",

Math. Programming, 12, 173–194.

[4] Nahapetyan A, Pardalos P. (2007), "A Bilinear Relaxation Based Algo-

rithm for Concave Piecewise Linear Network Flow Problems", Journal of

Industrial and Management Optimization, 3(1), 71–85.

[5] Thieu T. V. (1980), "Relationship between Bilinear Programming Prob-

lem and Concave Minimization Under Linear Constraints", Acta Math.

Vietnam., 2 67–81.

46

[6] Horst R., Tuy H. (1996), Global Optimization, 3-rd Edition, New York:

Springer.