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

Các thuật toán giải bài toán quy hoạch tuyến tính và ứng dụng

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.21 MB, 75 trang )

MỤC LỤC
MỤC LỤC ..........................................................................................................1
LỜI CẢM ƠN ................................................... Error! Bookmark not defined.
LỜI NÓI ĐẦU ....................................................................................................3
CHƯƠNG 1: MÔ HÌNH CƠ BẢN CỦA BÀI TOÁN QUY HẠCH TUYẾN
TÍNH...................................................................................................................5
1.1 Các mô hình thực tế...................................................................................5
1.1.1 Tổng quan...........................................................................................5
1.1.2 Một số mô hình thực tế .......................................................................7
1.2. Dạng tổng quát bài toán quy hoạch tuyến tính.........................................10
1.3. Dạng chính tắc, chuẩn tắc .......................................................................12
1.4 Một số phương pháp biến đổi bài toán quy hoạch tuyến tính....................12
CHƯƠNG 2: CÁC KHÁI NIỆM CƠ BẢN VỀ NGHIỆM BÀI TOÁN QUY
HẠCH TUYẾN TÍNH.......................................................................................14
2.1. Một số khái niệm cơ bản trong giải tích lồi .............................................14
2.1.1. Tập hợp lồi.......................................................................................14
2.1.2. Hàm lồi ............................................................................................15
2.1.3. Hàm bao lồi của một hàm số ............................................................17
2.1.4. Dưới vi phân ....................................................................................19
2.1.5. Hàm D.C và tập D.C ........................................................................20
2.1.5.1. Hàm D.C...................................................................................20
2.1.5.2. Mở rộng các hàm D.C ...............................................................21
2.1.5.3. Tập D.C ....................................................................................21
2.2. Một số tính chất chung của bài toán quy hoạch tuyến tính ......................22
CHƯƠNG 3: THUẬT TOÁN ĐƠN HÌNH .......................................................27
3.1. Cơ sở lý luận của phương pháp đơn hình ................................................27
3.1.1. Tư tưởng của pháp đơn hình.............................................................27
3.1.2. Biểu diễn qua cơ sở. Dấu hiệu tối ưu................................................28
3.1.3. Tìm phương án cực biên mới tốt hơn – công thức đổi cơ sở .............29
3.2. Thủ tục đơn hình – Bảng đơn hình..........................................................33
3.2.1. Các bước của thủ tục đơn hình .........................................................33


3.2.2. Tính hữu hạn của thuật toán .............................................................34
3.2.3. Bảng đơn hình..................................................................................34
3.2.4. Thủ tục đơn hình trên bảng ..............................................................35
3.3. Dạng ma trận của thủ tục đơn hình..........................................................36
3.4. Dạng tích của ma trận nghịch đảo của thủ tục đơn hình ..........................38
3.5. Tìm cơ sở xuất phát ................................................................................40
3.5.1. Phương pháp hai pha........................................................................40
3.5.2. Phương pháp đánh thuế....................................................................43
3.6. Hiện tượng xoay vòng – Cách khắc phục ................................................44
3.7. Phương pháp đơn hình đối ngẫu..............................................................44
3.7.1. Cơ sở chấp nhận được đối ngẫu........................................................44
3.7.2. Thủ tục đơn hình đối ngẫu................................................................46


3.7.3. Thuật toán đơn hình đối ngẫu khi chưa biết cơ sở xuất phát chấp nhận
được đối ngẫu. ...........................................................................................48
CHƯƠNG 4: BÀI TOÁN QUY HOẠCH NGUYÊN ........................................50
4.1. Định nghĩa ..............................................................................................50
4.2. Thuật toán nhánh cận ..............................................................................50
4.3.Thuật toán Gomory giải bài toán quy hoạch nguyên tuyến tính................52
4.3.1 Ý nghĩa cơ bản của phương pháp cắt.................................................52
4.3.2 Phương pháp cắt ...............................................................................53
4.3.2.1.Thuật toán Gomory thứ nhất.......................................................54
4.3.2.2. Thuật toán Gomory thứ hai .......................................................57
CHƯƠNG 5: CÀI ĐẶT ỨNG DỤNG...............................................................59
5.1. Cài đặt thuật toán đơn hình .....................................................................59
5.1.1. Thuật toán........................................................................................59
5.1.2 Giao diện ..........................................................................................60
5.2.Thuật toán đơn hình đối ngẫu...................................................................63
5.2.1.Thuật toán.........................................................................................63

5.2.2. Giao diện .........................................................................................64
KẾT LUẬN.......................................................................................................70
HƯỚNG PHÁT TRIỂN ....................................................................................70
TÀI LIỆU THAM KHẢO .................................................................................71
PHỤ LỤC .........................................................................................................72


LỜI NÓI ĐẦU
Để một công ty xản suất thu được nhiều lãi nhất trên cơ sở hạn chế về
nguyên liệu, để người lái xe vận chuyển được nhiều hàng nhất với chi phí vận
chuyển nhỏ nhất và một vị khách du lịch mang được nhiều đồ nhất với một cái
túi cố định… Tất cả những điều tưởng chừng chẳng có liên hệ với nhau lại có
chung một dạng toán học.
Bài toán được nói đến ở đây là bài toán tối ưu hóa. Tối ưu hóa toán học là
một vấn đề quan trọng. Tối ưu hóa quyết định năng suất và hiệu quả công việc,
giảm được nhiều chi phí về thời gian và tiền của. Bài toán tối ưu là một lớp
những bài toán xuất phát từ thực tiễn mang tính thực tế rất cao.
Trong những năm gần đây, các phương pháp Tối ưu hóa ngày càng được
áp dụng sâu rộng và hiệu quả vào các ngành kinh tế, kỹ thuật, công nghệ thông
tin và các ngành khoa học khác.
Bài toán quy hoạch tuyến tính là một trong những lớp bài toán tối ưu được
nghiên cứu trọn vẹn cả về phương diện lý thuyết lẫn thực hành. Bài toán quy
hoạch tuyến tính có một vị trí quan trọng trong trong tối ưu hóa vì hai lý do: thứ
nhất là mô hình tuyến tính đơn giản dễ áp dụng, thứ hai là nhiều bài toán quy
hoạch nguyên và quy hoạch phi tuyến có thể xấp xỉ với độ chính xác cao bởi một
dãy các bài toán quy hoạch tuyến tính. Điều này có nghĩa là nếu bài toán quy
hoạch tuyến tính được giải quyết thì một hệ thống các bài toán quy hoạch khác
cũng có thể được giải quyết bằng cách áp dụng liên tiếp bài toán quy hoạch tuyến
tính.
Hiểu được tầm quan trọng của bài toán tối ưu và sự trọn vẹn đầy đủ, tính

chính xác của bài toán quy hoạch tuyến tính, được sự định hướng của thầy giáo
TS.Vũ Vinh Quang, em đã chọn nghiên cứu đề tài “Các thuật toán giải bài toán
quy hoạch tuyến tính và ứng dụng” với mong muốn sau khi hoàn thành đề tài
em sẽ hiểu biết khám phá nhiều hơn các cài đặt và ứng dụng của bài toán quy
hoạch tuyến tính trong thực tế.
Mặc dù bản thân đã hết sức nỗ lực, cố gắng hoàn thành đồ án trong phạm
vi và khả năng cho phép nhưng chắc chắn sẽ không tránh khỏi những thiếu sót.


Em xin kính mong nhận được sự cảm thông và ghi nhận tận tình chỉ bảo góp ý
của các quý Thầy Cô và các bạn để Đồ Án được hoàn thiện hơn.
Em xin chân thành cám ơn!


CHƯƠNG 1: MÔ HÌNH CƠ BẢN CỦA BÀI TOÁN QUY HẠCH TUYẾN
TÍNH
1.1 Các mô hình thực tế
1.1.1 Tổng quan
Loài người đã biết chọn “phương án” hành động trong các công việc của
mình từ thời cổ đại. Đầu tiên người ta biết chọn phương án “chấp nhận được”,
theo các tiêu chuẩn từ mức độ cảm tính đến có cơ sở khoa học định lượng. Khi
có nhiều phương án chấp nhận được, điều mong muốn tự nhiên là chọn cái tốt
nhất (tức là cái “tối ưu”), cũng lại theo một hoặc một số tiêu chuẩn nào đó. Dần
dần người ta biết “mô hình hóa toán học” công việc của mình, tức là diễn đạt
công việc đó ở dạng phương trình toán học, diễn giải thế nào là tiêu chuẩn chấp
nhận được, tiêu chuẩn tối ưu…
Cùng với sự hình thành khá hoàn chỉnh của phép tính vi tích phân vào thế
kỷ 17, “bài toán cực trị” trong lý thuyết này là một mô tả toán học chính xác của
bài toán tối ưu.
Đồng thời, trong vài thế kỷ vừa qua, các bài toán về kinh tế và quản lý

cũng dẫn người ta đến lý thuyết tối ưu từ một góc độ khác.
Nhưng lý thuyết toán học về tối ưu chỉ được hình thành và phát triển
mạnh như một lĩnh vực khoa học quan trọng từ khoảng giữa thế kỷ 20. Tùy theo
dạng các bài toán được nghiên cứu, đặc điểm của mô hình toán học và công cụ
xét chúng hoặc phạm vi áp dụng… Nhiều lĩnh vực khá gần nhau và đan xen với
nhau của lý thuyết được hình thành với các tên gọi khác nhau: Tối ưu hóa
(optimization), quy hoạch toán học (mathematical programming), điều khiển tối
ưu (optimal control)…
Trong quy hoạch toán học lại có bài toán quy hoạch tuyến tính, bài toán
quy hoạch phi tuyến tính và nhiều lĩnh vực khác như quy hoạch nguyên, bài toán
quy hoạch phân thức, bài toán quy hoạch động, bài toán quy hoạch ngẫu nhiên…
Vậy bài toán quy hoạch tuyến tính (linear programming) là gì?


Có thể tạm định nghĩa bài toán quy hoạch tuyến tính là lĩnh vực toán học
nghiên cứu các bài toán tối ưu trên hữu hạn biến mà hàm mục tiêu và các ràng
buộc đều là hàm và các phương trình hoặc bất phương trình tuyến tính. Chúng ta
sẽ xác định cụ thể bài toán quy hoạch tuyến tính ngay trong chương này.
Bài toán quy hoạch tuyến tính được coi là ra đời vào năm 1947, khi
Dantzig công bố phương pháp đơn hình để giải các bài toán xuất phát từ việc lập
kế hoạch cho không quân Mỹ. Cũng như mọi lĩnh vực khoa học khác, bài toán
quy hoạch tuyến tính được sinh ra không phải bất ngờ sau vài ngày, hoặc vài
tháng. Lý thuyết toán học chính là chỗ dựa căn bản để Dantzig phát minh ra
phương pháp đơn hình là lý thuyết về các bất đẳng thức tuyến tính, đã được
nghiên cứu kỹ bởi Fourier từ năm 1826.
Dantzig được coi là cha đẻ của bài toán quy hoạch tuyến tính có thể cũng
chỉ vì cuốn sách sớm hơn nhiều “Các phương pháp toán học trong tổ chức và kế
hoạch hóa sản xuất” của L.V.Kantorovich do nhà xuất bản đại học quốc gia
Leningrad in năm 1939, ít được biết đến thậm chí ở Nga và chỉ được dịch sang
tiếng Anh ở Mỹ năm 1960. Trong cuốn sách rất giá trị này Kantorovich đã nêu

bật vai trò của một lớp bài toán quy hoạch tuyến tính và để xuất thuật toán sơ bộ
để giải chúng. Tuy được biết đến muộn màng ông được coi là nhà toán học hàng
đầu trong lịch sử thế giới về toán kinh tế. Năm 1975 ông cùng Koopmans được
nhận giải Nobel về khoa học kinh tế.
Từ khi ra đời, phương pháp đơn hình gần như thống trị trong bài toán quy
hoạch tuyến tính. Dựa trên nhận xét rằng miền chấp nhận được của bài toán quy
hoạch tuyến tính là tập lồi đa diện và nếu bài toán đã có nghiệm tối ưu thì nó
luôn có nghiệm tối ưu là đỉnh của tập lồi đa diện này, nội dung của phương pháp
đơn hình là cố gắng tìm một đỉnh chấp nhận được rồi mỗi bước là chuyển từ đỉnh
chấp nhận được sang đỉnh kề (tức là có một cạch nối nhau) tốt hơn. Tức là có các
hàm mục tiêu tưng ứng tốt hơn chẳng hạn trong bài toán maximum, là lớn hơn.
Vì số đỉnh là hữu hạn, thuật toán sẽ kết thúc ở đỉnh tối ưu sau hữu hạn bước.
Phương pháp này tận dụng triệt để cấu trúc tuyên tính, khác hẳn các phương pháp
tối ưu phi tuyến.


Đối với bài toán cỡ lớn (có thể đến chục nghìn biến và mấy trăm ràng
buộc) phải dùng đến máy tính, phương pháp đơn hình cũng được kiểm nghiệm
qua mấy chục năm áp dụng là rất hiệu quả, với thời gian tính toán khá ngắn. có
một lĩnh vực rất quan trọng nghiên cứu về độ phức tạp tính toán. Ở đây hiệu quả
của một phương pháp được đo bằng thời gian tính toán phụ thuộc theo cỡ của bài
toán. Cỡ của bài toán là thời gian cần thiết để máy tính ghi các dữ liệu của bài
toán (do đó có thể nói nôm na là cỡ của bài toán đặc trưng bởi số ràng buộc). Một
thuật toán được gọi là có độ phức tạp đa thức, hoặc được gọi là thuật toán đa thức
(polynomial algorithm) nếu thời gian tính toán phụ thuộc theo quy luật đa thức
vào cỡ của bài toán, kể cả trong trường hợp xấu nhất.
Năm 1972 V.L.Klee và G.J.Minty đã đưa ra ví dụ một bài toán quy hoạch
tuyến tính mà thời gian tính toán theo thuật toán đơn hình là hàm mũ của cỡ bài
toán.
1.1.2 Một số mô hình thực tế

Khi tiến hành kế hoạch hóa sản xuất, điều khiển các hệ thống và thiết kế
kỹ thuật mà biết dựa trên các nguyên tắc cực trị ta sẽ tiết kiệm được vật tư, tiền
vốn, tài nguyên sức lao động, thời gian và tăng được hiệu quả giải quyết các vấn
đề được đặt ra.
Những bài toán dưới đây mô tả một lớp những bài toán thực tế cần được
giải quyết, nó chính là mục tiêu của bài toán quy hoạch toán học hay tối ưu hóa
toán học.
Bài toán 1. Bài toán kinh tế
Một công ty mốn sản xuất hai loại sản phẩm mới A và B bằng các loại
nguyên liệu I, II và III. Suất chi phí nguyên liệu để sản xuất các sản phẩm đó
cho trong bảng sau, có nghĩa là:
-

Để sản xuất một đơn vị sản phẩm A cần dùng 2 đơn vị nguyên liệu
I và 1 đơn vị nguyên liệu II.

-

Để sản xuất một đơn vị sản phẩm B cần dùng một đơn vị nguyên
liệu I và 2 đơn vị nguyên liệu II và 1 đơn vị nguyên liệu III. Ban
giám đốc công ty có dự trữ các loại nguyên liệu I, II và III tương


ứng là 8, 7 và 3. Tiền lãi một đơn vị sản phẩm A là 4 triệu đồng.
Tiền lãi một đơn vị sản phẩm B là 5 triệu đồng.
Cần lập kế hoạch sản xuất sao cho

Sản phẩm

công ty thu được tiền lãi lớn nhất trên cơ

sở hạn chế về nguyên liệu.

A

B

I

2

1

II

1

2

III

0

1

Nguyên Liệu

Ký hiệu x1 – lượng sản phẩm loại A
x2 – lượng sản phẩm loại B
Mô hình toán học có dạng:
f(x) = 4x1 + 5x2 → max

Với các ràng buộc:








2x1+x2 ≤ 8

( ràng buộc về nguyên liệu I )

x1+2x2 ≤ 7

( ràng buộc về nguyên liệu II )

x2 ≤ 3

( ràng buộc về nguyên liệu III )

x1 ≥ 0, x2≥ 0

( ràng buộc về dấu của biến số )

Bài toán lập kế hoạch sản xuất tối ưu tổng quát phát biểu như sau:
Giả sử một xí nghiệp sản xuất n sản phẩm và sử dụng m loại nguyên liệu
khác nhau. Ta đưa vào các ký hiệu sau:
xj – lương sản phẩm loại j (j = 1, n ) mà xí nghiệp sản xuất.
cj – tiền lãi(hay giá bán) của đơn vị sản phẩm j(j= 1, n )

aij – suất chi phí tài nguyên loại i để sản xuất một đơn vị sản phẩm loại j (j =1, n )
b i – lượng dự trữ tài nguyên loại i(i = 1, m )
Trong các điều kiện đã cho xác định các giá trị xj (j = 1, m ) sao cho tổng
tiền lãi (hay tổng giá trị sản lượng hàng hóa) là lớn nhất với số tài nguyên hiện
có.
Mô hình toán học có dạng:
n

 c x → max
j j

j1

Với các điều kiện:


n
 aij x j  bi , i  1, m
 j 1
 x  0, j  1, n
 j
Đây là một bài toán quy hoạch tuyến tính.
Bài toán 2. Bài toán vận tải
Có m kho hàng cùng chứa một loại hàng hóa (đánh số i = 1, m ) lượng hàng có
ở kho i là ai, (i = 1, m ). gọi kho i là điểm phát i. Có n địa điểm tiêu thụ loại hàng
ở trên(đánh số j = 1, n ) với nhu cầu tiêu thụ ở điểm j là bj (j = 1, n ). Gọi điểm tiêu
thụ j là điểm thu j.
Biết cij cước phí vận chuyển một đơn vị hàng hóa từ điểm phát đến điểm
thu j (i= 1, m , j = 1, n ). Hàng có thể chuyển từ điểm phát i bất kỳ đến điểm thu j
bất kỳ.

Hãy lập kế hoạch vận chuyển hàng hóa từ điểm phát đến điểm thu sao cho tổng
chi phí vận chuyển là nhỏ nhất với các điều kiện: các điểm phát thì phát hết hàng
hóa, còn các điểm thu thì thỏa mãn nhu cầu.
Ký hiệu xij là lượng hàng vận chuyển từ điểm phát i đến điểm thu j. Khi đó ta
có mô hình toán học:
m

n

 c x
ij

ij

→ min

i 1 j 1

Với các điều kiên sau:

n
 xij  ai , i  1, m
 j 1
m
 xij  b j , j  1, n
 i 1
 x  0, i  1, m, j  1, n
 ij

Ngoài ra còn điều kiện cân bằng thu phát:

n


j1

m

bj =  ai
i1


Bài toán 3. Bài toán cái túi
Một người du lịch muốn đem theo một cái túi nặng không quá b kilogram có
n loại đồ vật mà anh ta dự định đem theo. Mỗi một đồ vật loại j có khối lượng aj
kilogram và giá trị cj, người du lịch muốn chất vào túi các đồ vật sao cho tổng
giá trị đồ vật đem theo là lớn nhất.
Ký hiệu xj là đồ vật loại j sẽ chất vào trong túi. Ta có bài toán sau:
n

 cj xj → max
j1

n
 a j x j  b
 j 1

 x j  0, j  1, n

 x j  nguyên, j  1, n



Đây là một bài toán quy hoạch nguyên.
1.2. Dạng tổng quát bài toán quy hoạch tuyến tính
Như vậy ta sẽ đưa ra dạng tổng quát của bài toán quy hoạch:
Bài toán tối ưu hóa tổng quát được phát biểu như sau:
Cực đại hóa(cực tiểu hóa) hàm:
f(x)→ max (min)
Với điều kiện:
gi(x) (≤, =, ≥) bi, i= 1, m
x  X  Rn
Bài toán trên đây là một quy hoạch toán học, hàm f(x )được gọi là hàm
mục tiêu, các hàm gi(x), i = 1, m được gọi là các hàm ràng buộc, mỗi đẳng thức
hoặc bất đẳng thức trong hệ được gọi là một ràng buộc.
Tập hợp:
D=

 x  X | gi(x) (≤, =, ≥) bi, i = 1, m 


được gọi là miền ràng buộc (hay miền chấp nhận được). Mỗi điểm x = (x1, x2,
…, xn)  D được gọi là một phương án (hay một lời giải chấp nhận được). Một
phương án x*  D đạt cực đại (hay cực tiểu) của hàm mục tiêu, cụ thể là:
f(x*) ≥ f(x),

 x  D (đối với bài toán max)

f(x*) ≤ f(x),

 x  D (đối với bài toán min)


được gọi là phương án tối ưu(lời giải tối ưu). Khi đó giá trị f(x*) được gọi là giá
trị tối ưu của bài toán.
Bài toán quy hoạch tuyến tính tổng quát:
Để nhất quán lập luận ta xét bài toán tìm cực đại, sau đó ta xét cách
chuyển bài toán tìm cực tiểu sang tìm cực đại.
Bài toán tổng quát của bài toán quy hoạch tuyến tính có dạng:
n

 cj xj → max
j1

n
 a ij x j (, , )bi , i  1, m
D:  j 1
 x  0, j  1, n
 j
Nếu gặp bài toán (min) tức là:1, m 1, n
n

f(x) =

 cj x j

→ min

j 1

x D
thì giữ nguyên ràng buộc ta đưa nó về dạng bài toán (max):
n


f (x) = -

 cj xj → max
j1

x D
Nếu bài toán (max) có phương án tối ưu là x* thì bài toán (min) cũng có
phương án tối ưu là x* và fmin= - f

max

.

Thật vậy, vì x * là phương án tối ưu của bài toán (max)
n

f

max

=-


j1

n

cj xj*


≥-

 cj xj,  x  D 
j1


n

n

cj xj ≤ cj xj
*

j1

 xD

j1

Chứng tỏ x* là phương án tối ưu của bài toán (min) và
n

fmin =

 cj xj* = - f max
j1

1.3. Dạng chính tắc, chuẩn tắc
Người ta thường xét bài toán quy hoạch tuyến tính dưới 2 dạng sau đây:
Dạng chuẩn tắc:

n

 cj xj → max
j1

n
 aij x j  bi , i  1, m
 j 1
 x  0, j  1, n
 j
Dạng chính tắc:
n

 cj xj → max
j1

n
 aij x j  bi , i  1, m
 j 1
 x  0, j  1, n
 j

1.4 Một số phương pháp biến đổi bài toán quy hoạch tuyến tính
Bất kỳ bài toán quy hoạch tuyến tính nào cũng có thể đưa về một trong hai
dạng chuẩn hoặc chính tắc nhờ các phép biến đổi tuyến tính sau:
n

1. Một ràng buộc

n


aij xj≥bi có thể đưa về ràng buộc -  aijxj≤-bi bằng cách
j1

j1

n

nhân 2 vế với (-1), ta viết lại

 aij’xj = bi’.
j1


n

2. Một ràng buộc đẳng thức

 aijxj = bi có thể thay bằng 2 ràng buộc bất
j 1

đẳng thức:
n

n

 aijxj ≤bi
j1

;


-

 aijxj ≤-bi ;
j 1

3. Một biến xj không bị ràng buộc dấu có thể thay bời hiệu của 2 biến không
âm bằng cách đặt:
xj = xj+- xj- với xj+≥0 và xj-≥0
n

4. Một ràng buộc bất đằng thức

 aijxj≤bi có thể đưa về ràng buộc đẳng
j1

thức bằng cách đưa vào biến phụ yi≥0
n

 aij+yi

= bi .

j1

Về nguyên tắc, áp dụng nhiều lần các phép biến đổi 1,2 và 3 ta có thể đưa
một bài toán quy hoạch tuyến tính bất kỳ về dạng chuẩn, sau đó áp dụng nhiều
lần phép biến đổi 4 ta sẽ đưa nó về dạng chính tắc.



CHƯƠNG 2: CÁC KHÁI NIỆM CƠ BẢN VỀ NGHIỆM BÀI TOÁN QUY
HẠCH TUYẾN TÍNH
2.1. Một số khái niệm cơ bản trong giải tích lồi
Trong việc nghiên cứu các bài toán tối ưu nói chung, giải tích lồi giữ một
vai trò quan trọng. Nó được sử dụng là cơ sở cho việc xây dựng các thuật toán.
Trong mục này sẽ trình bày một số khái niệm và tính chất cơ bản của tập lồi, hàm
lồi.
2.1.1. Tập hợp lồi
Khái niệm về tập hợp lồi là một khái niệm cơ bản của giải tích lồi quy
hoạch lồi. Nhiều tính chất quan trọng và thú vị của bài toán quy hoạch lồi có
được trên miền ràng buộc là một tập hợp lồi.
Định nghĩa 2.1. Mỗi tập X trong không gian Euclid Rn được gọi là một
tập lồi nếu  x1, x2  X và   [0,1], ta có  x1 + (1-  )x2  X.
Như vậy nếu X là một tập lồi thì nó chứa chọn đoạn thẳng nối hai điểm
bất kỳ của nó. Các ví dụ đơn giản của tập lồi là các đoạn thẳng, siêu phẳng, nửa
không gian.
Định nghĩa 2.1. Bao lồi của một tập A là tập lồi nhỏ nhất chứa A, ký hiệu
là coA.
Đây chính là giao của tất cả các tập lồi chứa A. Ví dụ bao lồi của tập chỉ
gồm hai điểm a và b chính là đoạn thẳng nối a và b. Như vậy nếu X là một tập lồi
thì nó chứa bao lồi của mọi tập con của nó.
Cho A và B là hai tập bất kỳ trong Rn, tổ hợp lồi của A và B là tập hợp tất
cả các điểm thuộc Rn có dạng:
x =  a + (1 -  )b, a  A, b  B, 0 ≤  ≤ 1
Định lý 2.1. Tập hợp lồi là đóng với phép giao, phép cộng, phép nhân với
một số phép lấy tổ hợp tuyến tính. Tức là: nếu A và B là hai tập lồi trong Rn thì
các tập hợp sau cũng là lồi:
1. A  B := {x : x  A, x  B}.



2.  A +  B := { x =  a +  b : a  A, b  B,  ,   R}.
Hệ quả. Miền chứa nghiệm của hệ bất phương trình tuyến tính dạng:
a11x1 + a12x2 + … + a1nxn ≤b1











a21x1 + a22x2 + … + a2nxn ≤b2
……
am1x1 + am2 x2 + … + amnxn ≤bm

là một tập lồi. Người ta còn gọi đó là một tập lồi đa diện hoặc còn gọi là một
khúc lồi. Một khúc lồi giới nội gọi là một đa diện lồi.
Định lý 2.2. Một tập lồi đa diện đóng X có ít nhất một đỉnh (có thể không
giới nội) được biểu diễn bởi tập hợp tất cả những điểm có dạng:
i

x =  i d +   j g
iI

trong đó




i

j

jJ

=1,  i ,  j ≥ 0 với mọi i, j, còn các d i với i  I là các đỉnh

iI

của X, gj với j  J là phương các cạnh vô hạn của X.
Chú ý rằng nếu X giới nội thì nó không có các cạnh vô hạn, do đó trong
biểu diễn trên chỉ còn lại tổng thứ nhất. Trong trường hợp này, mọi điểm của X
đều biểu diễn qua tổ hợp lồi của các đỉnh của X.
2.1.2. Hàm lồi
Định nghĩa 2.3. Hàm số f(x) xác định trên tập lồi X  Rn được gọi là hàm
lồi trên X, nếu với mọi x, y  X, 0 ≤  ≤ 1 ta có:
f(  x + (1 -  )y) ≤  f(x) + (1-  )f(y)
Hàm f(x) được gọi là lồi chặn trên X nếu:
f(  x + (1 -  )y)<  f(x) + (1 -  )f(y)  x,y  X, 0 <  < 1
Hàm f(x) được gọi là lõm (lõm chặn) trên tập lồi X nếu hàm –f(x) là lồi
(lồi chặn) trên X.
Các hàm  f, f + g và max(f,g) được định nghĩa như sau:
 (  f)(x) :=  f(x),
 (f+g)(x) := f(x) + g(x)


 max(f,g)(x) := max(f(x),g(x))
Các hàm lồi là đóng đối với phép tổ hợp tuyến tính không âm và phép lấy

max cụ thể ta có định lý sau:
Định lý 2.3. Cho f là một tập lồi trên tập lồi X và g là hàm lồi trên tập lồi
Y lúc đó các hàm sau là lồi trên X  Y:
1.  f +  g  ,   0
2. max(f, g)
Định nghĩa 2.4. Cho X  Rn khác rỗng và hàm f: X → R (không nhất thiết
lồi). Một điểm x*  X được gọi là cực tiểu địa phương của f trên X, nếu tồn tại lân
cận mở U của x* sao cho f(x*)≤f(x) với mọi x  X  U. Điểm x*  X được gọi là
cực tiểu tuyệt đối của f trên X nếu f(x*)≤f(x) với mọi x X
Dưới đây là tính chất cơ bản về cực trị của một hàm lồi.
Định lý 2.4. Bất kỳ cực tiểu địa phương nào của hàm lồi trên tập lồi cũng
là cực tiểu tuyệt đối.
Hệ quả. Bất kỳ cực đại địa phương nào của hàm lõm trên tập lồi cũng là
cực đại tuyệt đối.
Tính chất sau đây đặc trưng cho một hàm lồi khả vi và rất bổ ích để kiểm
tra tính chất lồi của một hàm số. Ký hiệu f’(a) hoặc  f(a) là đạo hàm của f tại a.
Định lý 2.5. Cho f: X→ R là một hàm lồi khả vi trên tập mở X. Điều kiện
cần và đủ để f lồi trên X là:
f(x) + <  f(x),y - x > ≤ f(y), với mọi x,y X
Nếu f khả vi hai lần thì điều kiện cần và đủ để f lồi trên X với mọi x X là
ma trận Hessian H(x) của f tại x xác định không âm. Tức là:
YTH(x)y ≥ 0,  x  X,  y  Rn
Ma trận Hessian H(x) tại x là ma trận có dạng:

 f 2 (x)

 x i  x j





 nn

Sau đây ta xét một cách nhận biết khác của hàm lồi.
Định nghĩa 2.5. Epigraph (hay Epi đồ) của hàm f, ký hiệu là epi(f) là tập
các điểm thuộc phần trên đồ thị hàm f.


epi(f) = {(x,r)  C × R | r ≥ f(x)}
domf = { x  C | f(x) < +  }
Tập mức: L(f,  )={ x C | f(x)≤  ,   R}
Nếu domf ≠  và f(x)>-  ,  x  S thì ta nói hàm lồi f(x) là thật sự
(propre).
Định lý 2.6. Giải sử C là một tập lồi trong Rn, f : C→R. Khi đó:
1. f lồi khi và chỉ khi epi(f) lồi.
2. Nếu f lồi thì L(f,  ) lồi. Điều ngược lại không luôn đúng.
Định lý 2.7. Giả sử C lồi thuộc Rn, f1:C→R, i = 1, k là các hàm lồi. Khi đó:
k

1.



i

f i ( x ) là hàm lồi với  i ≥ 0, i = 1, k .

i 1

2. max fi(x) là hàm lồi.

1 i k

Định nghĩa 2.6. Hàm f được gọi là tựa lồi nếu:
f(  x1+(1 -  )x2) ≤ max{f(x1),f(x2)}
 x1,x2  C,   [0,1].

Hàm f được gọi là tựa lõm nếu – f là tựa lồi.
Nhận xét: Tổng của hai hàm tựa lồi chưa hẳn là một hàm tựa lồi.
2.1.3. Hàm bao lồi của một hàm số
Trong một số trường hợp khi việc tìm cục trị của một hàm số không lồi
gặp khó khăn, chúng ta phải xấp xỉ bằng cách tìm cực trị của hàm bao lồi của
hàm số đó, nghĩa là ta đưa việc giải bài toán quy hoạch không lồi về việc giải bài
toán quy hoạch lồi tương ứng. Vì vậy, khái niệm hàm bao lồi đóng vai trò quan
trọng trong lý thuyết quy hoạch.
Định nghĩa 2.7. Cho D lồi, khác rỗng thuộc Rn và một hàm bất kỳ f: D →
R. Khi đó một hàm số F(x) được gọi là hàm bao lồi của hàm f trên D nếu:
1. F(x) là hàm lồi trên D,
2. F(x)≤ f(x),  x  D,
3. Nếu h(x) là một hàm lồi nào đó trên D mà h(x)≤f(x),  x  D thì
h(x)≤F(x),  x  D.


Định lý 2.9. Xét bài toán cực tiểu toàn cục:
Min{f(x)|x  D},
Trong đó D compact, lồi trong Rn. F(x) là bao lồi của f(x) trên D. khi đó:
f*:= min{ f(x)|x  D} = min{F(x)|x  D}
{y  D|f(y)= f*}  {y  D|F(y) = f*}
Nhận xét: Định lý cho phép chúng ta đưa việc giải bài toán quy hoạch không lồi
về việc giải bài toán quy hoạch lồi tương ứng. Vấn đề là bằng cách nào để tìm
được hàm bao lồi của hàm mục tiêu.

Định lý 2.10. Giả sử đa diện P có các đỉnh là v1, v2,…, vk. Khi đó bao lồi
F(x)của hàm lõm f(x) trên P có thể biểu diễn như sau:
k

F(x) = min   i f ( vi )
i 1

Trong đó:
k

k

x =   i vi ,  i ≥0, i = 1, k ,
i 1



i

=1

i 1


 =(  1,  2, …,  k)

Định lý 2.11. Cho D là một đơn hình sinh bời các vector v0, v1, …, vn và
f(x) là hàm lõm trên D. Lúc đó bao lồi của hàm f(x) trên D là một hàm affin h(x)
= CTX + b và f(vi)=cTvi + b, i = 0,1, …, n.
Định lý 2.12. Nếu D  T thì FD≥ FT trên D (trong đó FD, FT là bao lồi của f

trên D và T).
Định lý 2.13. Nếu F1(x) và F2(x)là hai bao lồi của f1(x) và f2(x) trên D,
F(x) là bao lồi của f1(x)+f2(x) thì F(x)≥F1(x)+F2(x),  x  D.
Định lý 2.14. Nếu D   i=1kDi và F1 là bao lồi của f trên Di, i = 1, k , giả sử
tồn tại min f trên D và min fi trên Di. Khi đó:
min f{f(x)|x  D}≥ min {min{Fi(xi)|xi  Di}}
1 i k

Như chúng ta đã biết, trong bài toán quy hoạch lồi cực tiểu địa phương cũng là
cực tiểu toàn cục. Điều này nói chung không còn đúng với bài toán không lồi.


Định lý 2.15. Giả sử D là tập compact khác rỗng trong Rn và f(x) lên tục
trên D thì f(x) luôn đạt giá trị nhỏ nhất và lớn nhất trên D.
Định nghĩa 2.8. Một hàm số f(x): D→R được gọi là nửa liên tục dưới
(l.s.c) nếu f(x)≤ lim f(x1),  x1→x. (hoàn toàn tương tự ta có định nghĩa hàm nửa
i 

liên tục trên).
Nhận xét: Định lý 2.15 vẫn đúng đối với bài toán cực tiểu nếu f(x) là hàm
nửa liên tục dưới và đối với bài toán cực đại nếu f(x) là hàm nửa trên liên tục
trên.
Định nghĩa 2.9. Hàm số f(x) được gọi là thỏa mãn điều kiện bức nếu

lim = +  .
|| x|| 

Định lý 2.16. Nếu f(x) là một hàm bức và liên tục thì tồn tại một điểm cực
tiểu toàn cục trong Rn.
Định lý 2.17. Một hàm lõm f: D→R đạt cực tiểu toàn cục trên tập

compact lồi D  Rn tại một điểm cực biên của D.
2.1.4. Dưới vi phân
Định nghĩa 2.10. Cho một hàm lồi f(x) trên Rn , một vector p  Rn được
gọi là một dưới gradien của f tại điểm x0 nếu:
+f(x0)≤f(x),  x
Tập tất cả các dưới gradien của f tại x0 gọi là dưới vi phân của f tại x0 và
ký hiệu bởi  f(x0). Hàm f gọi là khả dưới vi phân tại x0 nếu  f(x0) ≠ 0.
Định lý 2.18. Cho f một hàm lồi thật sự trên Rn với mỗi tập giới nội C 
int(domf), tập   f(x) là không rỗng và giới nội. Trong trường hợp riêng  f(x0)
xC

là không rỗng và bị chăn tại mỗi x0  int(domf).
* Một hàm lồi f có thể nhận được từ một số phép toán trên các hàm lồi fi, i
 I. Ta thử xem dưới vi phân của f có thể là tổ hợp của các dưới vi phân không ?

Định lý 2.19. Cho fi , i = 1,2,…,m là các hàm lồi thật sự trên Rn. Khi đó
với mỗi x  Rn:



 


m


i1


fi (x)  



m

  f (x)
i

i1

m

Nếu tồn tại một điểm a   domfi mà tại đó mỗi hàm fi sẽ có thể loại trừ
i1

một, là liên tục thì kết luận trên sẽ trở thành đẳng thức cho mỗi x  Rn.
2.1.5. Hàm D.C và tập D.C
2.1.5.1. Hàm D.C
Định nghĩa 2.11. Cho  là tập lồi trong Rn. Ta nói một hàm thực f(x) là
hàm D.C trên  nếu nó có thể biểu diễn dưới dạng hiệu của hai hàm lồi trên  ,
nghĩa là nếu:
f(x) = f1(x) – f2(x)
Trong đó f1(x) và f2(x) là các hàm lồi trên  .
Lẽ tất nhiên, hàm lồi thực và hàm lõm là các trường hợp riêng của hàm
D.C. Mỗi hàm toàn phương f(x) = (1/2) . <x, Qx> trong đó Q là một ma trận đối
xứng là một hàm D.C mà có thể không phải là lồi, cũng không là lõm.
Với x = U.y, trong đó U=[ u1, . . ., un] là một ma trận các vector chuẩn hóa
của Q, ta có UTQU = diag( 1 , 2 ,…,  n ), như vậy:
1
2


f(x) = f(Uy) = <Uy, QUy> =

1
<y, UTQU>
2

Sao cho:
f(x) = f1(x) – f2(x)
f1(x) =

 y
i

1 0

2
i

,f2(x) =-

y

1 0

i

2
i

, x = Uy


Định lý 2.20. Nếu f1(x), i = 1,…, m là hàm D.C trên  thì các hàm sau
đây cũng là D.C trên  :
n

(i)



i

f i ( x ) ,  i thực (i =1, n )

i 1

(ii)

g(x) = max{f1(x),…,fm(x)}

(iii)

h(x) = min {f1(x), … ,fm(x)}


Từ định lý 2.20 có thể suy ra rằng: một hệ bất phương trình gi(x)≤ 0 i =
1,…, m có thể viết thành:
g(x) = max{g1(x), …, gm(x)} ≤ 0

(1.1)


và một hệ bất phương trình:
gi(x)≤ 0 có ít nhất một i=1, …, m
tương đương với:
g(x) = min{ g1(x), …, gm(x)}≤ 0

(1.2)

Ngoài ra nếu g(x) = p(x) – q(x) với p(x),q(x) là lồi thì với việc đưa vào
biến bù t, bất đẳng thức D.C (1.1) hay (1.2) có thể dẫn đến 2 bất đẳng thức:
p(x) – t  0, t - q(x)  0

(1.3)

ở đó hệ thức thứ nhất là bất đẳng thức lồi, còn hệ thức hai là bất đẳng thức lồi
đảo.
2.1.5.2. Mở rộng các hàm D.C
Ký hiệu C*(Rn)(hay đơn giản là C*) là lớp các hàm trên Rn liên tục khả vi
bậc k.
Định lý 2.21. Mỗi hàm số f  C2(Rn) là hàm D.C trên một tập lồi compact
n

 =R.

Hệ quả. Đối với mỗi hàm liên tục f(x) trên một tập lồi compact  và với
mỗi  > 0 tồn tại một hàm D.C sao cho:

max |f(x) –g(x)|≤ 
xC

Một hàm f: D→ R xác định trên tập lồi D  Rn được gọi là D.C cục bộ nếu với

mỗi x  D tồn tại một tập lồi mở U của x và 1 cặp hàm lồi g, h trên U sao cho:
F|U = g|U – h| U.
Định lý 2.22. Một hàm D.C cục bộ trên một tập lồi D là D.C trên D.
2.1.5.3. Tập D.C
Định nghĩa 2.12. Tập D.C là một tập M  Rn mà đối với nó tồn tại các
hàm lồi g,h : Rn  R sao cho:
M = { x|g(x)  0, h(x)  0}
Như thế M = D\C với D = {x|g(x)≤0} và C= {x |h(x)  0}


Do đó:
M = {x|max[g(x) - h(x)]≤ 0}
Điều này chứng tỏ tập D.C cũng có thể xác định bởi một đẳng thức D.C.
Nếu tập S được xác định bởi một bất đẳng thức D.C:
S = {x|g(x) – h(x)≤0} với g(x) và h(x) là lồi
Thì rõ ràng
S = {x|(x,t) M cho mỗi t }
Trong đó : S = {x|(x,t)  Rn ×R|g(x) – t  0, t – h(x)  0}
Do đó S có thể coi như là hình chiếu trên Rn của tập D.C M  Rn+1.
Một tập đóng trong Rn là hình chiếu trên Rn của một tập D.C trong Rn+1.
Đối với mỗi hàm nửa liên tục dưới f(x), tồn tại một hàm lồi f(x) sao cho
bất đẳng thức f(x)  0 tương đương với bất đẳng thức D.C:
g(x)-||x||2≤0
2.2. Một số tính chất chung của bài toán quy hoạch tuyến tính
Định lý 2.23. Tập hợp tất cả các phương án của một bài toán quy hoạch
tuyến tính là tập lồi.
Chứng minh. Ta giả sử rằng bài toán có ít nhất hai phương án là x1 và x2. Do đó:
Ax1 = b với x1≥0

(2.1)


Ax2 = b với x2≥0

(2.2)

Ta sẽ chứng minh bất cứ tổ hợp lồi nào của x1 và x2 tức là các điểm có dạng:
x =  x1 + (1 -  )x2, 0≤  ≤1

(2.3)

Đều là phương án.
Nhân hai vế (2.3) với ma trận A ta được
Ax = A[  x1 + (1 -  )x2] =  Ax1 + (1 -  )Ax2 =  b + (1 -  )b = b
Ngoài ra từ (2.1), (2.2) và (2.3) dễ thấy x≥0. Định lý đã được chứng minh.
Tập lồi D các phương án của một bài toán quy hoạch tuyến tính xác định
bởi các ràng buộc. Tập D có thể là rỗng, hoặc là một đa diện lồi hoặc là một tập
lồi đa diện không giới nội.
Nếu D là một đa diện lồi thì bài toán có phương án, hơn nữa giá trị tối ưu
của hàm mục tiêu trên đa diện lồi đó là hữu hạn và việc tìm phương án tối ưu đưa


đến việc chọn các đỉnh của đa diện D có số đỉnh (điểm cực biên hay phương án
cực biên) hữu hạn.
Định lý 2.24. Hàm mục tiêu của bài toán quy hoạch tuyến tính sẽ đạt max
tại một điểm cực biên của tập D. Nếu hàm mục tiêu không chỉ nhận max tại một
điểm cực biên của tập lồi D mà tại nhiều điểm thì nó sẽ đạt giá trị cực đại tại
những điểm là tổ hợp tuyến tính lồi của các điểm đó.
Chứng minh. Ký hiệu các điểm cực biên của đa diện D là x1,x2, …, xp còn
phương án tối ưu là x0, ta có:
f(x0)≥f(x)  x  D


(2.4)

Nếu x0 đã là điểm cực biên rồi thì ý thứ nhất của định lý đã được chứng
minh.
Giả thiết x0 không phải là điểm cực biên. Theo kêt quả của giải tích lồi thì
x0 có thể biểu diễn dưới dạng tổ hợp lồi của các điểm cực biên của D và tổ hợp
dương của các hướng các cạnh vô hạn.
p
 0
x

i xi    jr i



i 1
j

p
  0,   1

i
 i
i 1

(2.5)

Do f(x) là hàm tuyến tính nên ta có:
p


0

f(x )=


i 1

i

f ( x i )    j f (r i )

(2.6)

j

Ta lại dễ thấy rằng f(rj)≤ 0,  j vì nếu không theo hướng rj vô hạn thì f(x0)
→ +  , mâu thuẫn với giả thiết x0 là phương án tối ưu.
Giả sử đỉnh xk có tính chất là:
F(xk) = max f(x’)

(2.7)

1≤ i ≤p
Khi đó từ (2.6) và (2.7) ta có:
p

f(x0) =

p


 i f (xi )   i f (x k )  f ( x k )
i 1

(2.8)

i 1

Từ (2.4) và (2.8) ta phải có f(x0) = f(xk), nghĩa là điểm cực biên xk là phương án
tối ưu.


Bây giờ giả sử f(x) nhận giá trị max tại x1, x2, …, xq:
f(x1) = f(x2)= … = f(xq) = M.
Nếu x là một tổ hợp lồi nào đó của x1, x1, …, xq:
p

p

x =   i f ( x i ) ,  i ≥ 0,   i = 1
i 1

p

i 1

p

f(x) =   i f ( x i ) =   i .M = M


thì

i 1

i 1

Vậy x cũng là phương án tối ưu.
Định lý đã được chứng minh.
Ký hiệu Aj (j = 1, n ) là các vector cột của ma trận A khi ấy hệ ràng buộc Ax = b
có thể viết:
x1A1 + x2A2 + … + xnAn = b

(2.9)

Định lý 2.25. Nếu biết rằng hệ thống các vector A1, A2, …, Ak là độc lập
tuyến tính và sao cho:
x1A1 + x2A2 + … + xnAn = b
trong đó xj>0,  j = 1, k thì điểm x = (x1 , x2 , …, xk , 0, …, 0) là điểm cực biên
của tập lồi đa diện D.
Chứng minh. Bằng phản chứng, giả sử x không phải là phương án cực biên. Khi
đó nó có thể biểu diễn dưới dạng tổ hợp lồi của hai điểm x1, x2 nào đó của D:
x =  x1 + (1-  )x2 , 0<  <1

(2.10)

Vì các thành phần của x1 và x2 đều không âm và 0<  <1 nên từ (2.10) ta
phải có n – k thành phần cuối của x1 và x2cũng bằng 0. Vì x1 và x2 cũng là
phương án nên ta có:
x11A1 + x12A2 + … + x1kAn = b
x21A1 + x22A2 + … + x2kAn = b

Nhưng các vector A1, A2, …, Ak là độc lập tuyến tính nên vector b biểu
diễn qua chúng bằng một cách duy nhất.
Vì vậy xj1= xj2 ,  j = 1, k nghĩa là x1 = x2.
Như thế x không thể biểu diễn dưới dạng tổ hợp lồi của 2 điểm của D, do
đó x là điểm cực biên.


Định lý 2.26. Nếu x = (x1, x2, …, xn) là điểm cực biên của tập lồi đa diện
D thì các vector trong biểu diễn (2.9) ứng với thành phần xj> 0 lập thành hệ độc
lập tuyến tính. Vì ma trận A có m dòng nên từ đây suy ra rằng điểm cực biên
không có quá m thành phần dương.
Chứng minh. Giả sử các thành phần dương của x là x1, x2, …, xk như thế:
k

x A
i

i

=b

(2.11)

i 1

Bằng phản chứng, giả sử các vector Aj, j = 1, k phụ thuộc tuyến tính. Khi
ấy tồn tại tổ hợp tuyến tính của các vector này bằng vector không:
d1A1 + d 2A2 + … + d kAn = 0

(2.12)


Trong đó ít nhất một hệ số d1 ≠ 0.
Nhân hai vế của (2.12) với một số q > 0 ta có:
qd1A1 + qd2A2 + … + qdkAn = 0

(2.13)

Từ (2.11) và (2.13) suy ra:
k

k

 x j Aj + q  d j Aj = b
i 1

i 1

k

k

 x j Aj - q  d j Aj = b
i 1

i 1

Vậy hệ phương trình (2.11) có hai nghiệm:
x1 = (x1 + qd 1, x2 + qd 2, …, xk + qdk , 0, …, 0)
x1 = (x1 - qd 1, x2 - qd2, …, xk - qdk , 0, …, 0)
Vì rằng xj >0,  j = 1, k nên có thể chọn q đủ nhỏ để k thành phần đầu của

x1 và x2 cũng là các phương án nhưng rõ ràng là:
x=

1 1 1 2
x + x
2
2

nghĩa là x là tổ hợp lồi của hai điểm x1, x2  D.
Điều này mâu thuẫn với điều kiện x là phương án cực biên. Vậy diều phản
chứng rằng các vector aj,j = 1, k là độc lập tuyến tính là sai. Định lý đã được
chứng minh.
Các định lý 2.25 và 2.26 có thể gộp lại thành một định lý cần cà đủ sau:


×