SlideShare a Scribd company logo
Chương 8
QUY HOẠCH TUYẾN TÍNH

Linear Programming

Tính toán khoa học
Bài toán quy hoạch toán học
• Rất nhiều bài toán thực tế có thể phát biểu dưới dạng bài toán cực trị sau:

• Bài toán (1)-(4) được gọi là bài toán quy hoạch toán học
f(x) là hàm mục tiêu, gi,hj là các hàm ràng buộc. Tập
Gọi là tập ràng buộc, hay miền chấp nhận được. Mỗi vectơ x thuộc D được
gọi là lời giải chấp nhận được hay là phương án chấp nhận được
Tính toán khoa học
Bài toán quy hoạch toán học
• Phương án chấp nhận được x* thỏa mãn

• Được gọi là pa tối ưu hay lời giải của bài toán, khi đó giá trị

• Được gọi là giá trị tối ưu của bài toán

Tính toán khoa học
Một số mô hình thực tế
 Bài toán lập kế hoạch sản xuất cho một nhà máy

 Bài toán khẩu phần ăn
 Bài toán vận tải

Tính toán khoa học
Bài toán lập kế hoạch sản xuất
•

Một nhà máy có khả năng sản xuất n loại sản phẩm. Để sản
xuất các sản phẩm này cần phải sử dụng m loại nguyên liệu.
• Biết :
aij  l­îng nguyªn liÖu lo¹i i cÇn thiÕt ®Ó s¶n xuÊt ra mét ®¬n vÞ s¶n phÈm lo¹i j;
bi  dù tr÷ nguyªn liÖu lo¹i i
c j  tiÒn l·i tõ viÖc b¸n mét ®¬n vÞ s¶n phÈm lo¹i ®¬n vÞ s¶n phÈm lo¹i j
(i=1, m ; j=1, n)

•

Hãy xây dựng một chiến lược sản xuất mang lại nhiều lợi nhuận nhất.
– Gọi xj  0 là số sản phẩm loại j, kế hoạch sản xuất là x  ( x1, x2 ,..., xn )
n
n
aij * xj là tổng chi phí nguyên liệu i do đó  a * x  b
– 
ij
j
i
j 1

n

j 1

– Tổng lợi nhuận thu được là  c j x j
j 1
– Khi đó mô hình toán học của bài toán kế hoạch sản xuất được phát biểu
dưới dạng như ở sau.
Tính toán khoa học
Bài toán lập kế hoạch sản xuất
 Bài toán lập kế hoạch sản xuất cho một nhà máy
Tìm cực đại của

n

f(x1 ,x 2 ,...,x n )= c jx j
j=1

víi ®iÒu kiÖn
n

a

ij

 bi ,i=1,m

j=1

x j  0, j=1,n

Tính toán khoa học
Nội dung
I. Thuật toán đơn hình
3.1.1. Bài toán QHTT dạng chính tắc và dạng chuẩn
3.1.2. Phương án cơ sở chấp nhận được
3.1.3. Công thức số gia hàm mục tiêu. Tiêu chuẩn tối ưu
3.1.4. Thuật toán đơn hình dạng ma trận nghịch đảo
3.1.5. Thuật toán đơn hình dạng bảng
3.1.6. Tính hữu hạn của thuật toán đơn hình
3.1.7. Thuật toán đơn hình hai pha

II. Lý thuyết đối ngẫu
3.2.1. Xây dựng bài toán đối ngẫu
3.2.2. Các định lý đối ngẫu
3.2.3. Một số ứng dụng của lý thuyết đối ngẫu

Tính toán khoa học
I. THUẬT TOÁN ĐƠN HÌNH

Tính toán khoa học
Nội dung
1.
2.
3.
4.
5.
6.
7.

Bài toán QHTT dạng chính tắc và dạng chuẩn
Phương án cơ sở chấp nhận được
Công thức số gia hàm mục tiêu. Tiêu chuẩn tối ưu
Thuật toán đơn hình dạng ma trận nghịch đảo
Thuật toán đơn hình dạng bảng
Tính hữu hạn của thuật toán đơn hình
Thuật toán đơn hình hai pha

Tính toán khoa học
1. Bài toán QHTT dạng chính tắc và dạng
chuẩn

Tính toán khoa học
Bài toán QHTT tổng quát
• Bài toán QHTT tổng quát là bài toán tối ưu hoá mà trong đó chúng ta phải
tìm cực đại (cực tiểu) của hàm mục tiêu tuyến tính với điều kiện biến số
phải thoả mãn hệ thống phương trình và bất phương trình tuyến tính. Mô
hình toán học của bài toán có thể phát biểu như sau
n

f ( x1 , x2 ,..., xn )   c j x j  min(max),

với điều kiện

(1)

j 1

n

a x
j 1

ij

j

 bi , i  1, 2,..., p ( p  m)

(2)

j

 bi , i  p  1, p  2,..., m

(3)

n

a x
j 1

ij

x j  0, j  1, 2,..., q (q  n)

(4)

x j  0, j  q  1, q  2,..., n

(5)

• Ký hiệu xj <> 0 để chỉ ra rằng biến xj không có đòi hỏi trực tiếp về dấu.
Tính toán khoa học
Bài toán QHTT tổng quát

• Ràng buộc:
n

a x
j 1

ij

j

 bi , i  1,..., p

được gọi là ràng buộc cơ bản dạng đẳng thức.
• Ràng buộc:

n

a x
j 1

ij

j

 bi , i  p  1,..., m

được gọi là ràng buộc cơ bản dạng bất đẳng thức.
• Ràng buộc:

x j  0, j  1,..., q

được gọi là ràng buộc về dấu của biến số.
Tính toán khoa học
Bài toán QHTT dạng chính tắc

• Ta gọi bài toán QHTT dạng chính tắc là bài toán sau:
n

f ( x1 , x2 ,..., xn )   c j x j  min,
j 1
n

a x
j 1

ij

j

 bi , i  1, 2,..., m

x j  0, j  1, 2,..., n

Tính toán khoa học
Bài toán QHTT dạng chuẩn
• Ta gọi bài toán QHTT dạng chuẩn là bài toán sau:
n

f ( x1 , x2 ,..., xn )   c j x j  min,
j 1
n

a x
j 1

ij

j

 bi , i  1, 2,..., m

x j  0, j  1, 2,..., n

Tính toán khoa học
Đưa BT QHTT tổng quát về dạng chính tắc
• Rõ ràng Bài toán QHTT dạng chính tắc là trường hợp riêng của
QHTT tổng quát.
n

f ( x1 , x2 ,..., xn )   c j x j  min(max),

(1)

j 1

n

a x
j 1

ij

j

 bi , i  1, 2,..., p ( p  m)

n

(2)

f ( x1 , x2 ,..., xn )   c j x j  min,
j 1
n

 aij x j  bi , i  p  1, p  2,..., m

(3)

a x

x j  0, j  1, 2,..., q (q  n)

(4)

x j  0, j  1, 2,..., n

x j  0, j  q  1, q  2,..., n

(5)

n

j 1

j 1

ij j

 bi , i  1, 2,..., m

• Mặt khác, một bài toán QHTT bất kỳ luôn có thể đưa về dạng
chính tắc nhờ các phép biến đổi sau:
Tính toán khoa học
Đưa BT QHTT tổng quát về dạng chính tắc
a) Đưa ràng buộc bất đẳng thức dạng “” về dạng “”.
Bất phương trình tuyến tính
n

 aij xj  bi
j
1

là tương đương với bất phương trình tuyến tính sau
n

 aij xj  bi
j 1

Tính toán khoa học
Đưa BT QHTT tổng quát về dạng chính tắc
b) Đưa ràng buộc dạng “=” về dạng “”.
Phương trình tuyến tính
n

 aij xj  bi
j
1

là tương đương với hệ gồm 2 bất phương trình tuyến
tính sau n

 aij xj  bi
j
1

n

 aij xj   bi
j 1

Tính toán khoa học
Đưa BT QHTT tổng quát về dạng chính tắc
c) Đưa ràng buộc dạng “” về dạng “=”.
Bất phương trình tuyến tính
n

 aij xj  bi
j
1

là “tương đương” với hệ gồm 1 phương trình tuyến tính và một
điều kiện không âm đối với biến số sau đây
n

 aij xj  yi  bi
j
1

yi  0

• Tương đương hiểu theo nghĩa: Nếu (x1, x2, ..., xn, yi) là nghiệm
của hệ thì (x1, x2, ..., xn) là nghiệm của bất phương trình.
• Biến yi được gọi là biến bù (hay biến phụ).
Tính toán khoa học
Đưa BT QHTT tổng quát về dạng chính tắc
d) Thay mỗi biến không có điều kiện dấu xj bởi hiệu hai biến có điều kiện về
dấu:
x j  x  x ,
j
j

x  0, x  0.
j
j
e) Đưa bài toán tìm cực đại về bài toán tìm cực tiểu. Bài toán tối ưu hoá
max { f(x): x  D}
là tương đương với bài toán tối ưu hoá
min {- f(x): x  D}
theo nghĩa: Lời giải của bài toán này cũng là lời giải của bài toán kia và
ngược lại, đồng thời ta có đẳng thức:
max { f(x): x  D} = - min {- f(x): x  D}

Tính toán khoa học
Đưa BT QHTT tổng quát về dạng chính tắc
f) Đưa ràng buộc dạng “” về dạng “=”. Bất phương trình tuyến
tính
n

a x
j 1

ij

j

 bi

là “tương đương” với hệ gồm 1 phương trình tuyến tính và một
điều kiện không âm đối với biến số sau đây
n

a
j 1

ij

x j  yi  bi

yi  0

• Tương đương hiểu theo nghĩa: Nếu (x1, x2, ..., xn, yi) là nghiệm
của hệ thì (x1, x2, ..., xn) là nghiệm của bất phương trình.
• Biến yi được gọi là biến bù (hay biến phụ).
Tính toán khoa học
Ví dụ
• Bài toán QHTT

x1 + 2x2 - 3x3 + 4x4  max,
x1 + 5x2 + 4x3+ 6x4  15,
x1 + 2x2 - 3x3+ 3x4 = 9,
x1 , x2 , x4  0, x3< >0,
là tương đương với bài toán QHTT dạng chính
tắc sau:
Tính toán khoa học
Ví dụ


 x1  2 x2  3( x3  x3 )  4 x4  min,


x1  5 x2  4( x3  x3 )  6 x4  x5  15,


x1  2 x2  3( x3  x3 )  3x4


x1 , x2 , x3 , x3 , x4 , x5  0,

Tính toán khoa học

= 9,
Giải bài toán QHTT trong mặt phẳng

Tính toán khoa học
Giải bài toán QHTT trong mặt phẳng
• Bài toán QHTT dạng chuẩn 2 biến số
f(x1, x2) = c1x1 + c2x2  min,
với điều kiện
ai1 x1 + ai2 x2  bi, i = 1, 2, ..., m

• Ký hiệu
D = {(x1,x2): ai1 x1 + ai2 x2  bi, i = 1, 2, ..., m}

là miền ràng buộc.

Tính toán khoa học
Giải bài toán QHTT trong mặt phẳng
• Từ ý nghĩa hình học, mỗi bất phương trình
tuyến tính

ai1 x1 + ai2 x2  bi, i = 1, 2, ..., m
xác định một nửa mặt phẳng.
 Miền ràng buộc D xác định như giao của m
nửa mặt phẳng sẽ là một đa giác lồi trên mặt
phẳng.
Tính toán khoa học
Giải bài toán QHTT trong mặt phẳng

• Phương trình
c1x1+ c2x2 = 
có vectơ pháp tuyến là (c1,c2)
khi  thay đổi sẽ xác định các đường thẳng song song
với nhau mà ta sẽ gọi là các đường mức (với giá trị
mức ).
Mỗi điểm u=(u1,u2)D sẽ nằm trên đường mức với
mức
u= c1u1+ c2u2 = f(u1,u2)
Tính toán khoa học
Giải bài toán QHTT trong mặt phẳng
• Bài toán đặt ra có thể phát biểu như sau: trong số các đường
mức cắt tập D, tìm đường mức có giá trị mức nhỏ nhất.
• Ta nhận thấy, nếu dịch chuyển song song các đường mức theo
hướng vector pháp tuyến c = (c1, c2) thì giá rị mức sẽ tăng, nếu
dịch chuyển theo hướng ngược lại thì giá trị mức sẽ giảm.
• Do đó, bài toán đặt ra có thể tiến hành như sau: Bắt đầu từ một
đường mức cắt D, ta dịch chuyển song song các đường mức
theo hướng ngược hướng với vector c = (c1, c2) cho đến khi
nào việc dịch chuyển tiếp theo làm cho đường mức không còn
cắt D nữa thì dừng.
• Các điểm của D nằm trên đường mức cuối cùng này sẽ là các
lời giải cần tìm, còn giá trị của nó chính là giá trị tối ưu của bài
toán.
Tính toán khoa học
Ví dụ 1
• Giải bài toán QHTT sau:
x1 – x2  min
2 x1 + x2  2,
– x1 – x2  – 7,
– x1 + x2  – 2,
x1  0, x2  0.

Tính toán khoa học
Phương án tối ưu

x1 – x2  min
2 x1 + x2  2,
– x1 – x2  – 7,
– x1 + x2  – 2,
x1  0, x2  0.

x1 – x2 = – 7

x1 – x2 = 0

Miền ràng buộc: D = M1M2M3M4M5
Tính toán khoa học
Ví dụ 1
• Giải theo phương pháp hình học vừa mô tả ta thu
được lời giải tối ưu của bài toán tương ứng với điểm
M2(0,7): x* = (0,7), với giá trị tối ưu là f* = -7.
• Nếu thay hàm mục tiêu của bài toán bởi
–x1+x2  min,
thì giá trị tối ưu sẽ là -2 và tất cả các điểm nằm trên
đoạn M3M4 đều là phương án tối ưu của bài toán.
Chẳng hạn, có thể lấy phương án tối ưu của bài toán
là x*=(2,0) (tương ứng với điểm M4).
Tính toán khoa học
– x1+ x2  min
2 x1 + x2  2,
– x1 – x2  – 7,
– x1 + x2  – 2,
x1  0, x2  0.

– x1 + x2 = 7

–c
– x1 + x2 = 0

Phương án tối ưu: M3M4
Tính toán khoa học
Nhận xét
• Trong cả hai trường hợp ta luôn tìm được
phương án tối ưu là một đỉnh nào đó của miền
ràng buộc.
• “Bài toán QHTT trong mặt phẳng luôn có
phương án tối ưu là đỉnh của miền ràng buộc.”
• Nhận xét hình học quan trọng này đã dẫn tới
việc đề xuất thuật toán đơn hình để giải bài
toán QHTT.

Tính toán khoa học
Ví dụ 2
13x1

 23 x2



max

5 x1

 15 x2



480

4 x1





160

35 x1
x1

4 x2

 20 x2
,

x2

 1190


Tính toán khoa học

0
Miền ràng buộc


max

5 x1

35x1 + 20x2  1190

 23 x2
 15 x2



480

4 x1

4x1 + 4x2  160

13x1





160

35 x1
x1

4 x2

 20 x2
,

x2

 1190


0

(0, 32)
(12, 28)
(26, 14)
5x1 + 15x2  480

(0, 0)

(34, 0)
Tính toán khoa học
Hàm mục tiêu

(0, 32)
(12, 28)
(26, 14)

13x1 + 23x2 = 1600

13x1 + 23x2 = 800
(0, 0)

(34, 0)
Tính toán khoa học

13x1 + 23x2 = 442
Ý nghĩa hình học
• Tồn tại lời giải tối ưu là đỉnh của đa giác ràng buộc

Đỉnh của đa
giác ràng buộc
(0, 32)
(12, 28)
(26, 14)

(0, 0)

(34, 0)
Tính toán khoa học
Ví dụ 3
• Giải bài toán QHTT sau:
x1 – x2  min
2x1 + x2 <=4,
x1 + x2  2,
x1  0, x2  0.
Ý nghĩa hình học của QHTT
• Miền ràng buộc là tập lồi đa diện.
– Lồi: nếu y và z là pacnđ, thì y +(1- )z cũng là pacnđ với mọi 01.
– Đỉnh: pacnđ x mà không thể biểu diễn dưới dạng y +(1- )z, 0<<1,
với mọi cặp pacnđ phân biệt y và z.
n

c x

(P) max

j 1

j

j

n

a x
j 1

ij

j

xj



bi 1  i  m

 0

1 j  n

Không lồi

Lồi

y

Đỉnh

y
z

Tính toán khoa học

z
Ý nghĩa hình học
• Kết luận: Nếu bài toán
có pa tối ưu thì nó luôn
có pa tối ưu là đỉnh của
miền ràng buộc vẫn
đúng cho nhiều chiều.
 Chỉ cần tìm pa tối ưu
trong số hữu hạn
phương án.

Tính toán khoa học
Thuật toán đơn hình
• Simplex Algorithm.
(Dantzig 1947)
– Thuật toán thực hiện
dịch chuyển từ một
đỉnh sang một đỉnh kề
tốt hơn cho đến khi
đến được đỉnh tối ưu.
– Thuật toán là hữu hạn
nhưng có độ phức tạp
hàm mũ.

Tính toán khoa học
Một số ký hiệu và định nghĩa
• Trong các phần tiếp theo ta sẽ chỉ làm việc
với bài toán QHTT dạng chính tắc:
Tìm cực tiểu:
f (x1,x2,...,xn)= nj=1 cj xj  min,
với điều kiện
ni=1 aij xj = bi, i = 1,2,...,m
xj  0, j = 1,2,...,n.

Tính toán khoa học
Ký hiệu và định nghĩa
• Đưa vào các ký hiệu:
 x=(x1, x2, ..., xn)T – vectơ biến số
 c=(c1, c2, ..., cn)T – vectơ hệ số hàm mục tiêu
 A = (aij)mn – ma trận ràng buộc
 b=(b1,...,bm)T- vectơ ràng buộc (vế phải)

Tính toán khoa học
Ký hiệu và định nghĩa
• Ta có thể viết lại bài toán dưới dạng ma trận:
f(x) = cTx  min,
Ax = b, x  0
hay
min{ f(x) = cTx : Ax = b, x  0}
• Bất đẳng thức vectơ:
y = (y1, y2, ..., yk)  0
được hiểu theo nghĩa từng thành phần:
yi  0 , i = 1, 2, ..., k.
Tính toán khoa học
Ký hiệu và định nghĩa
• Ký hiệu các tập chỉ số:
 J = {1,2,...,n} tập chỉ số của các biến số
 I = {1,2,...,m} tập chỉ số của các ràng buộc
Khi đó ta sử dụng các ký hiệu sau
x = x(J) = {xj: jJ} - vectơ biến số;
c = c(J) = {cj: jJ} – vectơ hệ số hàm mục tiêu;
A = A(I, J) = {aij: iI, jJ} – ma trận ràng buộc
Aj = (aij: iI) – vectơ cột thứ j của ma trận A.

Hệ phương trình ràng buộc cơ bản của bài toán
QHTT dạng chính tắc còn có thể viết dưới dạng:
A1x1+ A2x2+...+ Anxn= b
Tính toán khoa học
Ký hiệu và định nghĩa
• Tập

D = {x: Ax = b, x 0}
được gọi là miền ràng buộc (miền chấp nhận được)

x được gọi là phương án chấp nhận được.
• Phương án chấp nhận được x* đem lại giá trị nhỏ
nhất cho hàm mục tiêu, tức là

cTx*  cTx với mọi x  D
được gọi là phương án tối ưu của bài toán và khi đó
giá trị

f* = cTx*
được gọi là giá trị tối ưu của bài toán
Tính toán khoa học
2. PHƯƠNG ÁN CƠ SỞ CHẤP NHẬN ĐƯỢC

Khái niệm phương án cơ sở chấp nhận được (pacscnđ) là
khái niệm trung tâm trong thuật toán đơn hình

Tính toán khoa học
Phương án cơ sở chấp nhận được
• Trước hết ta giả thiết rằng
(*)

rank (A) = m

nghĩa là hệ phương trình ràng buộc cơ bản gồm
m phương trình độc lập tuyến tính.
• Chú ý: Trên thực tế giả thiết (*) là tương đương
với giả thiết hệ phương trình tuyến tính Ax = b
có nghiệm.
• Về sau ta sẽ gỡ bỏ các giả thiết này.

Tính toán khoa học
Phương án cơ sở chấp nhận được
• Định nghĩa 1. Ta gọi cơ sở của ma trận A là một bộ
gồm m vector cột độc lập tuyến tính B   Aj , Aj ,..., Aj 
của nó.
1

2

n

Giả sử B  A( I, J B ),trong ®ã J B  J1,..., J m lµ mét c¬ së cña ma trËn A.
Khi đó vector x = (x1 , x2 ,…, xn ) thỏa mãn:
xj  0, j  J N  J  J B ;
xjk lµ thµnh phÇn thø k cña vector B1b (k  1,..., m).

sẽ được gọi là phương án cơ sở tương ứng với cơ sở B.
Các biến xj , j  J B được gọi là biến cơ sở còn xj , j  J N là biến phi
cơ sở.
Tính toán khoa học
Phương án cơ sở chấp nhận được
•

Như vậy, nếu ký hiệu
xB = x(JB), xN = x(JN)
thì phương án cơ sở x tương ứng với cơ sở B có thể
xác định nhờ thủ tục sau:
1. Đặt xN=0.
2. Xác định xB từ hệ phương trình BxB = b.

•

Từ giả thiết (*) suy ra bài toán luôn có phương án
cơ sở.

Tính toán khoa học
Phương án cơ sở chấp nhận được
•

Giả sử x = (xB ,xN ) là phương án cơ sở tương ứng
với cơ sở B. Khi đó bài toán QHTT dạng chính tắc
có thể viết lại như sau:
f(xB,xN)=cBxB + cNxN  min
BxB+ NxN = b,
xB, xN  0,
trong đó N = (Aj: jJN) được gọi là ma trận phi cơ
sở.
Tính toán khoa học
Phương án cơ sở chấp nhận được
• Xét bài toán QHTT
6x1 + 2x2  5x3 + x4 + 4x5  3x6 + 12x7  min
x 1 + x2 + x3 + x4
=4
x1
+ x5
=2
x3
+ x6
=3
3x2 + x3
+ x7
=6
x 1, x 2 , x 3 , x 4 , x 5 , x 6 , x 7  0

Tính toán khoa học
Phương án cơ sở chấp nhận được
• Dưới dạng ma trận:
c = (6, 2, –5, 1, 4, –3, 12)T;
b = (4, 2, 3, 6)T;
1 1 1 1 0 0
1 0 0 0 1 0
A= 0 0 1 0 0 1
0 3 1 0 0 0
A1 A2 A3 A4 A5 A6

0
0
0
1
A7

Tính toán khoa học
Phương án cơ sở chấp nhận được
• Xét cơ sở
B = {A4, A5, A6, A7} = E4
• Phương án cơ sở x = (x1, x2, ..., x7) tương ứng với nó
thu được bằng cách đặt:

x1 = 0, x2 = 0, x3 = 0
và các giá trị của xB= (x4, x5, x6, x7) thu được bằng
việc giải hệ phương trình

BxB = b hay E4xB = b
Từ đó ta tìm được: xB = (4, 2, 3, 6).
• Vậy pacs tương ứng với cơ sở B là

x = (0, 0, 0, 4, 2, 3, 6)
Tính toán khoa học
Phương án cơ sở chấp nhận được
• Xét cơ sở
B1 = {A2, A5, A6, A7}
• Phương án cơ sở y = (y1, y2, ..., y7) tương ứng với nó thu được bằng cách
đặt:
y1 = 0; y3 = 0, y4 = 0
và các giá trị của yB= (y2, y5, y6, y7) thu được bằng việc giải hệ
B1yB = b
hay
y2
=4
y5
=2
y6
=3
3y2
+ y7
=6
Từ đó ta tìm được: yB = (4, 2, 3, – 6).
• Vậy pacs tương ứng với cơ sở B1 là
y = (0, 4, 0, 0, 2, 3, – 6)
Tính toán khoa học
Phương án cơ sở chấp nhận được
• Dễ thấy:
– pacs tương ứng với cơ sở B

x = (0, 0, 0, 4, 2, 3, 6)
là phương án chấp nhận được
– còn pacs tương ứng với cơ sở B1

y = (0, 4, 0, 0, 2, 3, -6)
không là phương án chấp nhận được

Định nghĩa. Phương án cơ sở được gọi là phương
án cơ sở chấp nhận được (lời giải cơ sở chấp nhận
được) nếu như nó là phương án chấp nhận được.
Tính toán khoa học
Phương án cơ sở chấp nhận được
• Bài toán QHTT có bao nhiêu pacscnd?

• Số pacscnd  Số cơ sở  C(n,m)

• Vậy một bài toán QHTT chỉ có thể có một số hữu
hạn pacscnd

Tính toán khoa học
Phương án cơ sở chấp nhận được
• Bài toán QHTT luôn có pacscnd?
• Không đúng!
• Ví dụ: Nếu bài toán QHTT không có phương án chấp nhận
được thì rõ ràng nó cũng không có pacscnd!
• Tuy nhiên ta có thể chứng minh kết quả sau:

• Định lý 1. Nếu bài toán QHTT có pacnđ thì nó cũng
có pacscnd
Tính toán khoa học
3. Công thức số gia hàm mục tiêu

Tính toán khoa học
Công thức số gia hàm mục tiêu
• Giả sử x là pacscnd với cơ sở tương ứng là B=(Aj: jJB). Ký
hiệu:

JB={j1,j2, ..., jm} – tập chỉ số biến cơ sở;
JN=J  JB – tập chỉ số biến phi cơ sở;
B=(Aj: jJB) – ma trận cơ sở;

N=(Aj: jJN) – ma trận phi cơ sở;
xB = x(JB) = {xj: jJB}, xN = x(JN) = {xj: jJN} – vectơ biến
cơ sở và phi cơ sở;
cB = c(JB) = {cj: jJB}, cN = c(JN) = {cj: jJN} – vectơ hệ số
hàm mục tiêu của biến cơ sở và phi cơ sở;

Tính toán khoa học
Công thức số gia hàm mục tiêu
• Xét pacnd z=x+x, trong đó x = (x1, x2,...,
xn) – vectơ gia số của biến số. Ta tìm công
thức tính số gia của hàm mục tiêu:
f = cTz – cTx = cTx.
• Do x, z đều là pacnd nên Ax=b và Az=b.Vì vậy
gia số x phải thoả mãn điều kiện Ax = 0,
hay là:
BxB + NxN = 0,
trong đó xB = (xj: jJB), xN = (xj: jJN).
Tính toán khoa học
Công thức số gia hàm mục tiêu
• Suy ra
xB= – B-1NxN .
(1.10)
• Từ đó ta có
cTx = cTBxB+ cTNxN= – (cTBB-1N – cTN) xN .
• Ký hiệu:
u = cTBB-1 – vectơ thế vị
N= (j: jJN) = uN- cTN – vectơ ước lượng.
ta thu được công thức:
f = cTz – cTx =  NxN =   j xj
jJN

• Công thức thu được gọi là công thức số gia hàm mục tiêu

Tính toán khoa học
Tiêu chuẩn tối ưu

Tính toán khoa học
Tiêu chuẩn tối ưu
• Định nghĩa. Pacscnd x được gọi là không thoái hoá
nếu như tất cả các thành phần cơ sở của nó là khác 0.
Bài toán QHTT được gọi là không thoái hoá nếu như
tất cả các pacscnd của nó là không thoái hoá.

• Định lý 2. (Tiêu chuẩn tối ưu) Bất đẳng thức
N  0 (j  0, j JN)
(1.13)
là điều kiện đủ và trong trường hợp không thoái hoá
cũng là điều kiện cần để pacscnd x là tối ưu.

Tính toán khoa học
Tiêu chuẩn tối ưu

Tính toán khoa học
Tiêu chuẩn tối ưu

Tính toán khoa học
Tiêu chuẩn tối ưu

Tính toán khoa học
Điều kiện đủ để hàm mục tiêu không bị chặn dưới

Tính toán khoa học
4. THUẬT TOÁN ĐƠN HÌNH
dạng ma trận nghịch đảo

Tính toán khoa học
Bước lặp đơn hình
• Ta tiếp tục phân tích pacscnđ x với cơ sở tương ứng B. Xét trường hợp khi
tiêu chuẩn tối ưu và cả điều kiện đủ để hàm mục tiêu không bị chặn dưới
không được thực hiện. Khi đó phải tìm được chỉ số j0 sao cho jo>0.
• Từ phần chứng minh điều kiện cần của tiêu chuẩn tối ưu ta thấy rằng có thể
xây dựng được phương án chấp nhận được x với giá trị hàm mục tiêu nhỏ

hơn. Ta nhắc lại công thức xây dựng x :

 x = x + x,
trong đó vectơ gia số x được xác định như sau

xjo =  , xj = 0, j ≠ j0 , j JN,
xB = - B-1Ajo
Tính toán khoa học
Bước lặp đơn hình
• Khi đó ta thu được

 xN= xN,  xB= xB - B-1Ajo ,
và giá trị hàm mục tiêu tạix sẽ là

c x  cx  Δj0

• Rõ ràng:  càng lớn thì giá trị hàm mục tiêu giảm được càng nhiều. Ta quan
tâm đến giá trị  lớn nhất có thể được. Do  cần chọn sao chox là phương
án chấp nhận được nên nó phải thoả mãn hệ bất phương trình tuyến tính sau:

 xB= xB - B-1Ajo  0,   0.
• Ký hiệu B-1Ajo = {xi,jo: i JB}, ta viết lại hệ bất phương trình trên dưới dạng
xi –  xi,jo  0, iJB,

  0.

Tính toán khoa học
Bước lặp đơn hình
• Ký hiệu

 xi / xij0 , khi xij0  0

i  
, i  JB
khi xij0  0
,

0  i0  xi0 / xi0 j0  min { i : i  J B }
• Ta có nghiệm của hệ bất phương trình là
0    0 .
• Từ đó suy ra giá trị  lớn nhất có thể chọn là 0. Khi đó nếu thay x bởi
phương án x ( 0) = x +x, trong đó vectơ gia số được xây dựng với  =0,
giá trị hàm mục tiêu giảm đi được một lượng là io jo > 0.

Tính toán khoa học
Thuật toán đơn hình dạng ma trận nghịch đảo

• Trong các tính toán của một bước lặp đơn
hình, ma trận B-1 giữ một vai trò quan trọng.
Thuật toán dưới đây sẽ được mô tả trong ngôn
ngữ của ma trận nghịch đảo B-1.

• Bước khởi tạo.
Tìm một pacscnd x với cơ sở tương ứng là B.

Tính B-1.
Tính toán khoa học
Thuật toán đơn hình dạng ma trận nghịch đảo

Tính toán khoa học
Thuật toán đơn hình dạng ma trận nghịch đảo

Tính toán khoa học
5. Thuật toán đơn hình dạng bảng

Tính toán khoa học
Thuật toán đơn hình dạng bảng
• Để thuận tiện cho những tính toán bằng tay ta
sẽ mô tả một dạng khác của thuật toán đơn
hình đó là thuật toán đơn hình dạng bảng.
• Giả sử ta có pacscnd x với cơ sở tương ứng là
B. Các ký hiệu vẫn giữ nguyên như trước.
• Ta gọi bảng đơn hình tương ứng với pacscnd
x là bảng sau đây
Tính toán khoa học
Bảng đơn hình
cj
cơ sở

Cơ
sở

Phương
án

c1

...

A1

...

cj
Aj

...
...

cn



An

cj1

Aj1

xj1

xj1 j

j1

...

...

...

...

...

ci

Ai

xi

xi j

i

...

...

...

...

...

cjm

Ajm

xjm

xjm j

jm



1

...

j

Tính toán khoa học

...

n
Bảng đơn hình
• Cột đầu tiên ghi hệ số hàm mục tiêu của các biến cơ sở.
• Cột thứ hai dành để ghi tên của các cột cơ sở.
• Cột thứ ba ghi các giá trị của các biến cơ sở (các thành phần của vectơ xB =
{xj : jJB} = B1b).
• Các phần tử xij, iJB trong các cột tiếp theo được tính theo công thức:
{xij , iJB} = B1Aj , j=1,2,...,n.
• Cột cuối cùng để ghi các tỷ số i..
• Dòng đầu tiên của bảng ghi hệ số hàm mục tiêu của các biến (cj).
• Dòng tiếp theo ghi tên của các cột A1,..., An.
• Dòng cuối cùng gọi là dòng ước lượng:

j =



ci xij – cj , j=1,2,...,n.

iJB

• Có thể thấy rằng j= 0, jJB .

Tính toán khoa học
Thuật toán đơn hình dạng bảng

Tính toán khoa học
Tìm cột xoay
cj
cơ sở

Cơ
sở

Phương
án

c1

...

A1

...

cj0

...

Aj0

...

cn



An

cj1

Aj1

xj1

xj1 j0

j 1

...

...

...

...

...

ci

Ai

xi

xi j0

i

...

...

...

...

...

cjm

Ajm

xjm

xjm j0

jm



1

...

j0

Tính toán khoa học

...

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

Tính toán khoa học
Tìm dòng xoay
cj
cơ sở

Cơ
sở

Phương
án

c1

...

A1

...

cj0

...

Aj0

...

cn



An

cj1

Aj1

xj1

xj1 j0

j 1

...

...

...

...

...

ci0

Ai0

xi0

xi0 j0

i0

...

...

...

...

...

cjm

Ajm

xjm

xjm j0

jm



1

...

j0

Tính toán khoa học

...

n
Phép biến đổi đơn hình

Tính toán khoa học
Thuật toán đơn hình dạng bảng

Tính toán khoa học
Qui tắc hình chữ nhật
cj
cơ sở

Cơ
sở

Phương
án

Aj1

xj1

...

...
Ai0

xi0

...

...

...

cjm

Ajm

xjm

...

...

ci0

...

A1

cj1

c1



xj11

cj0

...

Aj0

...

xj1 j0

cn
An

xj1n

...
xi01

xi0n

...

1

j0

Tính toán khoa học

i0
...

xjm j0
...

j 1
...

xi0 j0

xjm1



xjm n
...

n

jm
Ví dụ

Tính toán khoa học
Bảng đơn hình
cj
cơ
sở

Cơ
sở

1

A4

100
1

Phương
án

1

-6

32

1

1

10

100


A1

A2

A3

A4

A5

A6

A7

9

1

0

0

1

0

6

0

9

A7

2

3

1

-4

0

0

2

1

2/3

A5

6

1

2

0

0

1

2

0

6

301

108

-432

0

0

198

0



Tìm cột xoay: Cột xoay là Cột có ước lượng lớn nhất

Tính toán khoa học
Bảng đơn hình
cj
cơ
sở

Cơ
sở

1

A4

100
1

Phương
án

1

-6

32

1

1

10

100


A1

A2

A3

A4

A5

A6

A7

9

1

0

0

1

0

6

0

9

A7

2

3

1

-4

0

0

2

1

2/3

A5

6

1

2

0

0

1

2

0

6

301

108

-432

0

0

198

0



Tìm dòng xoay: Tính các tỷ số i . Dòng xoay là dòng có tỷ số nhỏ nhất
Tính toán khoa học
Biến đổi bảng đơn hình
cj
cơ
sở

Cơ
sở

1

A4

1

A1

1

Phương
án

A5

1

-6

32

1

1

10

100


A1

2/3

A2

A3

A4

A5

A6

A7

1

1/3

-4/3

0

0

2/3

1/3

2



Biến đổi bảng: Các phần tử trên dòng xoay ở bảng mới = Các phần tử
tương ứng trong bảng cũ chia cho phần tử xoay.
Tính toán khoa học
Biến đổi bảng đơn hình
cj
cơ
sở

Cơ
sở

1

A4

1

A1

1

Phương
án

A5

1

-6

32

1

1

10

100


A1

2/3

A2

A3

A4

A5

A6

A7

1

1/3

-4/3

0

0

2/3

1/3



Biến đổi bảng: Các phần tử trên các cột cơ sở là các vectơ đơn vị.

Tính toán khoa học

2
Biến đổi bảng đơn hình
cj
cơ
sở

Cơ
sở

1

A4

1

A1

1

A5


Phương
án

1

-6

32

1

10

100


A1

A2

A3

A4

A5

1

0

0

0

0

0

1

0

0

0

0
2/3

1

1

1/3

-4/3

A6

A7

2/3

1/3

Biến đổi bảng: Các phần tử trên các cột cơ sở là các vectơ đơn vị.

Tính toán khoa học
Bảng đơn hình ở bước 2
cj
cơ
sở

Cơ
sở

1

A4

1
1

Phương
án

1

-6

32

1

1

10

100


A1

A2

A3

A4

A5

A6

A7

25/3

0

-1/3

4/3

1

0

16/3

-1/3

-

A1

2/3

1

1/3

-4/3

0

0

2/3

1/3

2

A5

16/3

0

5/3

4/3

0

1

4/3

-1/3

16/5

0

23/3

-92/3

0

0

-8/3

-301/3



Biến đổi bảng: Các phần tử còn lại tính theo qui tắc hình chữ nhật.

Tính toán khoa học
Bảng đơn hình ở bước 3
cj
cơ
sở

Cơ
sở

1

A4

-6
1

Phương
án

1

-6

32

1

1

10

100


A1

A2

A3

A4

A5

A6

A7

9

1

0

0

1

0

6

0

A2

2

3

1

-4

0

0

2

1

A5

2

-5

0

8

0

1

-2

-2

-23

0

0

0

0

-18

-108



Tiêu chuẩn tối ưu được thoả mãn. Thuật toán kết thúc.
Phương án tối ưu: x* = (0, 2, 0, 9, 2, 0, 0). Giá trị tối ưu: f* = -1
Tính toán khoa học
6. TÍNH HỮU HẠN CỦA THUẬT TOÁN ĐƠN HÌNH

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

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

Tính toán khoa học
7. THUẬT TOÁN ĐƠN HÌNH HAI PHA

Tính toán khoa học
Thuật toán đơn hình hai pha

Tính toán khoa học
Bài toán phụ
• Bài toán xuất phát
n

n

j 1

j 1

min{ c j x j : aij x j  bi , i  1, 2,..., m, x j  0, j  1, 2,..., n}

(1.25)

• Không giảm tổng quát ta giả thiết là
bi  0, i = 1, 2, ..., m,
(1.26)
bởi vì: nếu có bi < 0 thì chỉ cần nhân hai vế phương trình tương ứng với -1.
• Theo các thông số của bài toán đã cho ta xây dựng bài toán phụ sau đây
m

x
i 1

 min,

n i

n

a x
j 1

ij

j

 xn i  bi , i  1, 2,..., m,

x j  0, j  1, 2,..., n, n  1,..., n  m.

• Vectơ xu = (xn+1, xn+2, ..., xn+m) được gọi là vectơ biến giả.
Tính toán khoa học

(1.27)
Bài toán phụ

Tính toán khoa học
Pha thứ 1: Giải bài toán phụ
• Đối với bài toán phụ ta có ngay một pacscnđ là
(x=0, xu=b)
với cơ sở tương ứng là
B = {An+1, An+2 ,... , An+m} = Em
trong đó An+i là vectơ cột tương ứng với biến giả xn+i, i=1, 2, ..., m.
• Vì vậy ta có thể áp dụng thuật toán đơn hình để giải bài toán phụ. Việc giải
bài toán phụ bằng thuật toán đơn hình được gọi là pha thứ nhất của thuật
toán đơn hình hai pha giải bài toán qui hoạch tuyến tính dạng chính tắc
(1.25), và bài toán phụ còn được gọi là bài toán ở pha thứ nhất

Tính toán khoa học
Pha thứ 1: Giải bài toán phụ

Tính toán khoa học
Pha thứ 1: Giải bài toán phụ

Tính toán khoa học
Bảng đơn hình
cj
cơ sở

Cơ
sở

Phương
án

c*1

...

c*j

...

c*n+m

A1

...

Aj

...

An+m

...

n+m

c*j(1)

Aj(1)

xj(1)

xj(1)j

...

...

...

...

c*i*

Ai*

xi*

xi*j

...

...

...

...

c*j(m)

Aj(m)

xj(m)

xj(m)j



1

...

j

Tính toán khoa học


Pha thứ 1: Giải bài toán phụ

Tính toán khoa học
Thuật toán đơn hình hai pha

• Lần lượt điểm diện tất cả các thành phần biến giả
trong cơ sở theo thủ tục vừa làm đối với xi* ta sẽ đi
đến bảng đơn hình mới mà trong đó không còn thành
phần biến giả trong cơ sở, tức là đến được trường hợp
ii), đồng thời trong quá trình này ta cũng loại bỏ được
tất cả các ràng buộc phụ thuộc tuyến tính trong hệ
Ax=b.
• Từ bảng thu được ta có thể bắt đầu thực hiện pha thứ
hai của thuật toán đơn hình hai pha.
Tính toán khoa học
Thuật toán đơn hình hai pha

•

Như vậy thuật toán đơn hình hai pha áp dụng đối với
một QHTT bất kỳ chỉ có thể kết thúc ở một trong ba
tình huống sau đây:
1) Bài toán không có pacnd.
2) Bài toán có hàm mục tiêu không bị chặn.

3) Tìm được phương án cơ sở tối ưu cho bài toán.
•

Đồng thời trong quá trình thực hiện thuật toán ta cũng
phát hiện và loại bỏ được tất cả các ràng buộc phụ
thuộc tuyến tính trong hệ ràng buộc cơ bản Ax=b.

Tính toán khoa học
Một số kết quả lý thuyết

• Định lý 1. Hễ bài toán QHTT có pacnđ thì nó

cũng có pacscnđ.
• Chứng minh.
Áp dụng thuật toán đơn hình hai pha đối với
bài toán đặt ra, kết thúc pha thứ nhất ta thu
được phương án cơ sở chấp nhận được cho bài
toán.
Tính toán khoa học
Một số kết quả lý thuyết

• Định lý 1.6. Nếu bài toán QHTT có phương án tối ưu
thì nó cũng có phương án cơ sở tối ưu.
• Chứng minh.
Giả sử bài toán có phương án tối ưu. Khi đó, thuật
toán đơn hình hai pha áp dụng để giải bài toán đặt ra
chỉ có thể kết thúc ở tình huống 3), tức là thu được
phương án cơ sở tối ưu cho nó.

Tính toán khoa học
Một số kết quả lý thuyết

• Định lý 1.7. Điều kiện cần và đủ để bài toán QHTT có
phương án tối ưu là hàm mục tiêu của nó bị chặn dưới trên
miền ràng buộc khác rỗng.
• Chứng minh.
• Điều kiện cần. Giả sử x* là phương án tối ưu của bài toán. Khi
đó, f(x)  f(x*), xD, tức là hàm mục tiêu bị chặn dưới.
• Điều kiện đủ. Nếu bài toán có hàm mục tiêu bị chặn dưới trên
miền ràng buộc khác rỗng, thì áp dụng thuật toán đơn hình hai
pha để giải nó ta chỉ có thể kết thúc ở tình huống 3), tức là tìm
được phương án cơ sở tối ưu cho nó.
Tính toán khoa học
Ví dụ

Tính toán khoa học
Ví dụ

Tính toán khoa học
Ví dụ: Pha thứ nhất

0

Tính toán khoa học
Tính toán khoa học
Tính toán khoa học
Tính toán khoa học
Ví dụ: Pha thứ hai

Tính toán khoa học
Kết quả
• Phương án tối ưu:
x* = (0, 2, 0, 3, 0);
• Giá trị tối ưu:
f* = 2.

Tính toán khoa học
Phương pháp đánh thuế (M - phương pháp)
• Đây là phương pháp đơn hình mở rộng
• Trong thuật toán đơn hình 2 pha ta phải áp dụng thuật
toán đơn hình 2 lần:
– Lần thứ nhất giải bài toán ở pha 1 để tìm pacscnđ xuất phát.
– Lần thứ hai ở pha 2 để tìm phương án tối ưu cho bài toán
đặt ra.

• Có thể kết hợp 2 pha này lại và chỉ cần áp dụng thuật
toán đơn hình một lần.
• Có nhiều cách kết hợp khác nhau và M – phương
pháp là một trong các cách kết hợp đó.
Tính toán khoa học
Phương pháp đánh thuế
• Xét bài toán QHTT dạng chính tắc (1.25), giả thiết
rằng (1.26) đúng. Xây dựng bài toán bổ trợ - bài toán
M sau: n
m

c x
j 1

j

j

n

a x
j 1

ij

j

 M  xn i  min
i 1

 xn i  bi , i  1, 2, ..., m,

(1.28)

x j  0, j 1, 2, ..., n  m,

với M là một số dương vô cùng lớn. Các biến xni , i  1, 2, ..., m
gọi là biến giả, ký hiệu xu là vector biến giả.
Tính toán khoa học
Phương pháp đánh thuế
• Áp dụng thuật toán đơn hình cho (1.28), bắt đầu từ
pacscnđ ( x j  0, j  1, n ; xni  bi , i  1, m)
với cơ sở tương ứng là ma trận đơn vị cấp m.
• Ta viết ∆j dưới dạng  j   j   j M
• Trong bảng đơn hình ta dòng ước lượng chia làm 2
dòng: một dòng chứa  j và một dòng chứa  j
• Để xét dấu của ∆j và so sánh chúng với nhau ta sử
dụng quy tắc sau:

Tính toán khoa học
Phương pháp đánh thuế
 j  0 nÕu hoÆc lµ  j  0 cßn  j tïy ý, hoÆc lµ  j  0 vµ  j  0
 p   q nÕu hoÆc lµ  p   q cßn  p ,  q tïy ý, hoÆc

 p   q vµ  p   q

Kết thúc thuật toán giải bài toán (1.28) ta đi đến 1
trong các khả năng sau:
(i) Thu được một phương án tối ưu (x*, xu*) với xu* = 0. Khi đó
rõ ràng x* là pa tối ưu của bài toán xuất phát 1.25.

Tính toán khoa học
Phương pháp đánh thuế
(ii) Thu được một phương án tối ưu (x*, xu*) với xu* ≠ 0. Khi đó
dễ dàng thấy bài toán xuất phát không có pacnđ.
(iii) Phát hiện điều kiện đủ để hàm mục tiêu không bị chặn dưới.
Khi đó nếu bài toán xuất phát có pacnd thì nó cũng có hàm
mục tiêu không bị chặn dưới.
Để xác định xem bài toán xuất phát có pacnd hay không cần
phải thực hiện pha thứ nhất của thuật toán đơn hình hai pha,
tức là coi hệ số hàm mục tiêu của các biến thật xj với j = 1, ...,n
bằng 0. Và sau đó chỉ làm việc với các dòng ước lượng thứ hai
(dòng chứa các hệ số  j ).

Tính toán khoa học
Hiệu quả của thuật toán đơn hình
• Một điểm yếu của TTĐH là về lý thuyết, nó có thời gian tính
hàm mũ. Điều này được Klee-Minty chỉ ra bằng ví dụ sau:
n

10n  j x j  max,

j 1

i 1

210i  j x j  xi  100i 1 , i  1, 2,..., n,
j 1

x j  0,

j  1, 2,..., n

• Để giải bài toán này, Thuật toán đơn hình đòi hỏi 2n -1
bước lặp.
Tính toán khoa học
Hiệu quả của thuật toán đơn hình
• Ví dụ Klee-Minty với n=3:
100 x1

 10 x2



20 x1



200 x1

 20 x2

x2


x3

max
1



x1




x3

100



10000

x1 , x2 , x3  0

• Trên thực tế: Thuật toán đơn hình có thời gian tính
O(m3)
Tính toán khoa học
Thuật toán thời gian tính đa thức giải QHTT
Polynomial Algorithms
•

Ellipsoid. (Khachian 1979, 1980)

– đòi hỏi thời gian: O(n4 L).
• n = số biến số
• L = số bít cần thiết để biểu diễn dữ liệu vào
– Đây là kết quả mang tính đột phá về mặt lý thuyết.
– Chưa có hiệu quả thực tế.
•

Karmarkar's algorithm. (Karmarkar 1984)

– O(n3.5 L).
– Có thời gian đa thức và có thể cài đặt hiệu quả.
•

Các thuật toán điểm trong (Interior point algorithms).

– O(n3 L).
– Có thể sánh với thuật toán đơn hình!
• Vượt trội so với tt đơn hình khi giải các bài toán kích thước lớn.
– Phương pháp này được mở rộng để giải các bài toán tổng quát hơn.

Tính toán khoa học
Ellipsoid Method

Tính toán khoa học
Thuật toán hàm rào
(Barrier Function Algorithms)

Simplex solution path
Barrier central path
o Predictor
o Corrector

Tối ưu

Interior Point Methods

Tính toán khoa học
II. LÝ THUYẾT ĐỐI NGẪU
Lý thuyết đối ngẫu của QHTT là lĩnh vực nghiên cứu trong đó bài
toán QHTT được khảo sát thông qua một bài toán QHTT bổ trợ liên
hệ chặt chẽ với nó gọi là bài toán đối ngẫu

Tính toán khoa học
Nội dung
1. Bài toán đối ngẫu của QHTT tổng quát.
2. Định lý đối ngẫu.
3. Giải qui hoạch tuyến tính trên MATLAB

Tính toán khoa học
1. Bài toán đối ngẫu

Tính toán khoa học
Bài toán QHTT tổng quát
• Xét bài toán QHTT tổng quát
n

f ( x1 , x2 ,..., xn )   c j x j  min,
j 1

n

a x
j 1

ij

j

 bi , i  1, 2,..., p ( p  m)

j

 bi , i  p  1, p  2,..., m

n

a x
j 1

ij

x j  0, j  1, 2,..., n1 (n1  n)
x j  0, j  n1  1, n1  2,..., n
Tính toán khoa học
Bài toán QHTT tổng quát
• Đưa vào các ký hiệu:

 a11 a12

 a21 a22
A


a
 m1 am 2

a1n 

a2 n 


amn 


Tính toán khoa học

- ma trận ràng buộc,
Bài toán QHTT tổng quát

Tính toán khoa học
Xây dựng bài toán đối ngẫu
• Khi đó bài toán QHTT tổng quát có thể viết lại dưới
dạng sau đây

f ( x)  c ' x  min,
ai x  bi , i  M ,
ai x  bi , i  M ,
x j  0, j  N ,
x j  0, j  N .
Tính toán khoa học
Bài toán QHTT tổng quát
• Biến đổi bài toán QHTT tổng quát về dạng chính tắc
bằng cách:
– đưa vào các biến phụ xis chuyển ràng buộc dạng
bất đẳng thức về dạng đẳng thức,

– thay mỗi biến không có điều kiện dấu bởi hiệu hai
biến có điều kiện dấu: xj = xj+ – xj –, khi đó mỗi cột
Aj sẽ thay bởi hai cột Aj và –Aj ,
ta thu được bài toán dạng chính tắc sau đây:

Tính toán khoa học
Xây dựng bài toán đối ngẫu
• Bài toán (2.3):

ˆ
c x  min,

Ax  b,

x  0,

(2.3)

trong đó
xis : i  M

Tính toán khoa học
Xây dựng bài toán đối ngẫu

Tính toán khoa học
Xây dựng bài toán đối ngẫu

Tính toán khoa học
Xây dựng bài toán đối ngẫu

Tính toán khoa học
Xây dựng bài toán đối ngẫu
• Khi đó vectơ

y 0  c B B 1
là phương án chấp nhận được của bài toán đối ngẫu. Nếu bây
giờ ta định nghiã hàm mục tiêu của bài toán đối ngẫu là:
y’b  max,
thì y0 không những là pacnđ mà còn là phương án tối ưu cho
bài toán đối ngẫu.
• Các kết quả vừa nêu sẽ được phát biểu chính xác trong các
định nghĩa và định lý dưới đây.
Tính toán khoa học
Bài toán đối ngẫu
• Định nghĩa. Giả sử cho bài toán QHTT tổng quát
(được gọi là bài toán gốc). Khi đó bài toán đối ngẫu
của nó là bài toán QHTT sau đây
Bài toán gốc (Primal Prob)

f ( x)  c ' x  min,

Bài toán đối ngẫu (Dual Prob)

g ( y )  y ' b  max,

ai x  bi ,

iM,

yi  0,

ai x  bi ,

iM,

yi  0,

x j  0,

j  N,

yAj  c j ,

x j  0,

jN

yAj  c j ,

Tính toán khoa học
2. Định lý đối ngẫu

Tính toán khoa học
Định lý đối ngẫu
• Trước hết ta chứng minh bổ đề sau:
• Bổ đề 2.1 (Định lý đối ngẫu yếu). Giả sử
{x, y} là cặp pacnđ của bài toán gốc-đối
ngẫu. Khi đó
f(x) = c’x  y’b = g(y). (2.8)

f ( x)  c ' x  min,

g ( y )  y ' b  max,

ai x  bi ,

iM,

yi  0,

ai x  bi ,

iM,

yi  0,

x j  0,

j  N,

yAj  c j ,

x j  0,

jN

yAj  c j ,

Tính toán khoa học
Định lý đối ngẫu

Tính toán khoa học
Định lý đối ngẫu

Tính toán khoa học
Định lý đối ngẫu

f ( x)  c ' x  min,

g ( y )  y ' b  max,

ai x  bi ,

yi  0,

ai x  bi ,

iM,

yi  0,

x j  0,

j  N,

yAj  c j ,

x j  0,

Tính toán khoa học

iM,

jN

yAj  c j ,
Định lý đối ngẫu
• Đối với một bài toán QHTT bất kỳ có thể xảy ra
ba khả năng:
1) Bài toán có phương án tối ưu;
2) Bài toán có hàm mục tiêu không bị chặn;

3) Bài toán không có phương án chấp nhận được.
• Vì vậy, đối với cặp bài toán QHTT gốc-đối ngẫu
có thể xảy ra 9 tình huống mô tả trong bảng 2.1
sau đây:
Tính toán khoa học
Định lý đối ngẫu

Tính toán khoa học
Định lý đối ngẫu

Tính toán khoa học
Định lý đối ngẫu

Tính toán khoa học
Định lý đối ngẫu

Tính toán khoa học
Định lý đối ngẫu

Tính toán khoa học
Định lý về độ lệch bù

f ( x)  c ' x  min,

g ( y )  y ' b  max,

ai x  bi ,

iM,

yi  0,

ai x  bi ,

iM,

yi  0,

x j  0,

j  N,

yAj  c j ,

x j  0,

jN

yAj  c j ,

Tính toán khoa học
Định lý về độ lệch bù
• Định lý 2.4. Cặp phương án chấp nhận được của bài toán gốcđối ngẫu {x, y} là tối ưu khi và chỉ khi thực hiện các điều kiện
f ( x)  c ' x  min,
g ( y )  y ' b  max,
sau đây:
axb,
iM,
y  0,
(aix – bi)yi = 0, i = 1,2,...,m; a x  b , i  M ,
y  0,
j  N,
yA  c ,
xj(cj – yAj) = 0, j = 1,2,...,n. x  0,
x  0,
jN
yA  c ,
• Chứng minh. Đặt
ui = (aix – bi)yi , i = 1,2,...,m;
vj = xj(cj – yAj) , j = 1,2,...,n.
Do {x, y} là cặp pacnđ, nên
ui  0, i = 1,2,...,m; vj  0 , j = 1,2,...,n.
i

i

i

i

i

i

j
j

Tính toán khoa học

j

j

j

j
Định lý về độ lệch bù
Đặt

Tính toán khoa học
Ví dụ
• Xét bài toán quy hoạch tuyến tính
x1  x 2

 x3  x 4  x5  min

3x1  2 x 2  x3

1

5 x1  x 2  x3  x 4

3

2 x1  5 x 2  x3

 x5  4

x j  0, j  1, 2, ..., 5

– Có pa tối ưu x* =(0, ½, 0, 5/2, 3/2), giá trị tối ưu f* = 9/2.
– Tìm pa tối ưu của bài toán đối ngẫu.
Tính toán khoa học
Ví dụ
• Bài toán đối ngẫu
y1

 3 y2

 4 y 3  max

3 y1  5 y 2

 2 y3  1

2 y1  y 2

 5 y3  1

y1

 y2

 y3  1
1

y2

y3  1
y i  0, i  1, 2, 3

– Gọi y* =(y*1, y*2, y*3) là pa tối ưu của bài toán đối ngẫu, khi
đó y* phải là pa chấp nhận được và x*, y* thỏa mãn (2.10),
(2.11)
Tính toán khoa học
Hệ quả
• Hệ quả. Phương án chấp nhận được x* là phương án
tối ưu của bài toán QHTT khi và chỉ khi hệ phương
trình và bất phương trình tuyến tính sau đây là có
nghiệm:
f ( x)  c ' x  min,

g ( y )  y ' b  max,

(ai x*  bi ) yi  0, i  M ,

ai x  bi ,

iM,

yi  0,

(c j  yAj ) x  0, j  N ,

ai x  bi ,

iM,

yi  0,

x j  0,

j  N,

yAj  c j ,

x j  0,

jN

yAj  c j ,

*
j

yi  0, i  M ,
yAj  c j , j  N ,
yAj  c j , j  N .
Tính toán khoa học
Ví dụ
• Xét bài toán QHTT

• Kiểm tra tính tối ưu của vectơ
x* = (0, 0, 16, 31, 14)
đối với bài toán QHTT đã cho

Tính toán khoa học
Ví dụ
• Dễ dàng kiểm tra được rằng x* là phương án chấp
nhận được của bài toán đã cho:
A=[1 -4 2 -5 9; 0 1 -3 4 -5; 0 1 -1 1 -1];
x=[0;0;16;31;14]; A*x
ans =
3
6
1

• Theo hệ quả, x* là phương án tối ưu khi và chỉ khi hệ
phương trình và bất phương trình sau đây là có
nghiệm
Tính toán khoa học
Ví dụ
(y1 +2) x*1 = 0
(– 4y1 + y2 + y3 + 6) x*2 = 0
(2y1 – 3y2 – y3 – 5) x*3 = 0
(–5y1 + 4y2 + y3 + 1) x*4 = 0
(9y1 – 5y2 – y3 + 4) x*5 = 0
y1
 –2
– 4y1 + y2 + y3  –6
2y1 – 3y2 – y3  5
–5y1 + 4y2 + y3  –1
9y1 – 5y2 – y3  –4

Bài toán đối ngẫu
3y1 + 6y2 + y3  min
x* 1 = 0

y1

 –2

x* 2 = 0

– 4y1 + y2 + y3  –6

x*3 = 16

2y1 – 3y2 – y3  5

x*4 = 31
x*

5

= 14

Tính toán khoa học

–5y1 + 4y2 + y3  –1
9y1 – 5y2 – y3  –4
Ví dụ
• Hệ cuối cùng là tương đương với hệ sau:

y1

 –2

– 4y1 + y2 + y3  –6
2y1 – 3y2 – y3 = 5
–5y1 + 4y2 + y3 = –1
9y1 – 5y2 – y3 = –4
• Hệ ba phương trình cuối cùng có nghiệm duy nhất y* = (-1, 1, -10).
(A=[2 -3 -1;-5 4 1; 9 -5 -1]; b=[5;-1;-4]; y=Ab)

• Dễ dàng kiểm tra được rằng y* thoả mãn hai bất phương trình đầu. Do đó y*
là nghiệm của hệ phương trình và bất phương trình ở trên. Theo hệ quả,
điều đó chứng tỏ x* là phương án tối ưu của bài toán QHTT đặt ra.
Tính toán khoa học
3.Giải qui hoạch tuyến tính trên MATLAB

Tính toán khoa học
Hàm LINPROG
• MATLAB cung cấp hàm linprog để giải bài toán QHTT.
• Dưới đây là một số cách sử dụng hàm này
– X=LINPROG(f,A,b)
– X=LINPROG(f,A,b,Aeq,beq)
– X=LINPROG(f,A,b,Aeq,beq,LB,UB)

– X=LINPROG(f,A,b,Aeq,beq,LB,UB,X0)
– X=LINPROG(f,A,b,Aeq,beq,LB,UB,X0,OPTIONS)
– [X,FVAL]=LINPROG(...)
– [X,FVAL,EXITFLAG] = LINPROG(...)
– [X,FVAL,EXITFLAG,OUTPUT] = LINPROG(...)
– [X,FVAL,EXITFLAG,OUTPUT,LAMBDA]=LINPROG(...)
Tính toán khoa học
Hàm LINPROG
• Lệnh X=LINPROG(f,A,b) giải bài toán QHTT:
min { f 'x : A x <= b }

• Lệnh X=LINPROG(f,A,b,Aeq,beq) giải bài toán có thêm ràng buộc
cơ bản dạng đẳng thức Aeq*x = beq.
• Lệnh X=LINPROG(f,A,b,Aeq,beq,LB,UB) xác định cận dưới và
cận trên cho các biến số LB <= X <= UB.

– Gán Aeq=[] (A=[]) và beq=[] (b=[]) nếu không có ràng buộc này
– Gán LB và UB là ma trận rỗng ([]) nếu không có các cận này.
– Gán LB(i)=-Inf nếu X(i) không bị chặn dưới và gán UB(i)=Inf
nếu X(i) không bị chặn trên.

Tính toán khoa học
Hàm LINPROG
• Lệnh X=LINPROG(f,A,b,Aeq,beq,LB,UB,X0) để xác định thêm
phương án xuất phát X0.
– Chú ý: Lựa chọn này chỉ được chấp nhận nếu sử dụng thuật toán tập
tích cực. Phương pháp ngầm định để giải là thuật toán điểm trong sẽ
không chấp nhận điểm xuất phát.
• Lệnh X=LINPROG(f,A,b,Aeq,beq,LB,UB,X0,OPTIONS) thực
hiện giải với các thông số tối ưu được xác định bởi biến có cấu trúc
OPTIONS,được tạo bởi hàm OPTIMSET.
– Gán option=optimset('LargeScale','off',
'Simplex','on') để chọn thuật toán đơn hình để giải bài toán.
– Hãy gõ help OPTIMSET để biết chi tiết.

Tính toán khoa học
Hàm LINPROG
• Lệnh [ X,FVAL]=LINPROG(...) trả lại thêm giá trị hàm mục
tiêu tại phương án X: FVAL = f'*X.
• Lệnh [X,FVAL,EXITFLAG]=LINPROG(...) trả lại
EXITFLAG mô tả điều kiện kết thúc của LINPROG. Các giá trị
của EXITFLAG có ý nghĩa sau

–
–
–
–
–

1
0
-2
-3
-4

LINPROG hội tụ đến lời giải X.
Đạt đến giới hạn số bước lặp.
Không tìm được pacnd.
Bài toán có hàm mục tiêu không bị chặn.
giá trị NaN xuất hiện trong quá trình thực hiện thuật toán.

–
–

-5 Cả hai bài toán gốc và đối ngẫu đều không tương thích.
-7 Hướng tìm kiếm quá nhỏ, không thể cải thiện được nữa.

Tính toán khoa học
Hàm LINPROG
• Lệnh [X,FVAL,EXITFLAG,OUTPUT] = LINPROG(...) trả lại biến
cấu trúc OUTPUT với
– OUTPUT.iterations - số bước lặp phải thực hiện
– OUTPUT.algorithm - thuật toán được sử dụng
– OUTPUT.message – thông báo

• Lệnh [X,FVAL,EXITFLAG,OUTPUT,LAMBDA]=LINPROG(...)

trả lại nhân tử Lagrangian LAMBDA , tương ứng với lời giải tối ưu:
– LAMBDA.ineqlin – tương ứng với ràng buộc bất đẳng thứcA,

– LAMBDA.eqlin – tương ứng với ràng buộc đẳng thức Aeq,
– LAMBDA.lower – tương ứng với LB,
– LAMBDA.upper – tương ứng với UB.

Tính toán khoa học
Ví dụ
• Giải bài toán qui hoạch tuyến tính:
2x1 + x2 + 3x3
 min
x1 + x2 + x3 + x4 + x5 = 5
x1 + x2 + 2x3 + 2x4 + 2x5 = 8
x1 + x2
=2
x3 + x4 + x5 = 3
x1, x2, x3 , x4 , x5 0
• f=[2 1 3 0 0]; beq=[5; 8; 2; 3];
• Aeq=[1 1 1 1 1; 1 1 2 2 2;1 1 0 0 0;0 0 1 1 1];
• A=[]; b=[]; LB=[0 0 0 0 0]; UB=[];X0=[];
• [X,FVAL,EXITFLAG,OUTPUT,LAMBDA]=linprog(f,A,b,Aeq,
beq,LB,UB,X0)

Tính toán khoa học
Kết quả
• OUTPUT =

• X =
0.0000

iterations: 5

2.0000

algorithm: 'large-scale: interior point'

0.0000
1.5000
1.5000
• FVAL =

cgiterations: 0
message: 'Optimization terminated.'

• LAMBDA =
ineqlin: [0x1 double]
eqlin: [4x1 double]

2.0000
• EXITFLAG =

upper: [5x1 double]

lower: [5x1 double]

1

Tính toán khoa học
Ví dụ
• Sử dụng thuật toán đơn hình:
opt=optimset('LargeScale','off','Simplex','on')

[X,FVAL,EXITFLAG,OUTPUT]=LINPROG(f,A,b,Aeq,beq,LB,UB,X0,opt)

ta thu được kết quả:
• X = [0 2 0 3 0]
• FVAL =

2

• EXITFLAG = 1
• OUTPUT =
iterations: 1
algorithm: 'medium scale: simplex'

cgiterations: []
message: 'Optimization terminated.'

Tính toán khoa học

More Related Content

What's hot

De xs tk k 14 2012
De xs  tk k 14 2012De xs  tk k 14 2012
De xs tk k 14 2012
dethinhh
 
CÁC MOMENT VÀ PHÂN PHỐI CHUẨN
CÁC MOMENT VÀ PHÂN PHỐI CHUẨNCÁC MOMENT VÀ PHÂN PHỐI CHUẨN
CÁC MOMENT VÀ PHÂN PHỐI CHUẨN
SoM
 
Bai tap xstk b (cap nhat chuong 6 7)
Bai tap xstk b (cap nhat chuong 6 7)Bai tap xstk b (cap nhat chuong 6 7)
Bai tap xstk b (cap nhat chuong 6 7)Bích Anna
 
Bai giang-toan-kinh-te-tin-hoc
Bai giang-toan-kinh-te-tin-hocBai giang-toan-kinh-te-tin-hoc
Bai giang-toan-kinh-te-tin-hoc
Lê Ngọc Huyền
 
30 bài toán phương pháp tính
30 bài toán phương pháp tính30 bài toán phương pháp tính
30 bài toán phương pháp tính
Pham Huy
 
Bài giảng qui hoạch tuyến tính phương pháp đơn hình
Bài giảng qui hoạch tuyến tính phương pháp đơn hìnhBài giảng qui hoạch tuyến tính phương pháp đơn hình
Bài giảng qui hoạch tuyến tính phương pháp đơn hình
Thanh Hoa
 
Tính toán khoa học: Chương 3: Đường cong khớp
Tính toán khoa học: Chương 3: Đường cong khớpTính toán khoa học: Chương 3: Đường cong khớp
Tính toán khoa học: Chương 3: Đường cong khớpChien Dang
 
Chuong2: ƯỚC LƯỢNG THAM SỐ, môn thống kê ứng dụng
Chuong2: ƯỚC LƯỢNG THAM SỐ, môn thống kê ứng dụngChuong2: ƯỚC LƯỢNG THAM SỐ, môn thống kê ứng dụng
Chuong2: ƯỚC LƯỢNG THAM SỐ, môn thống kê ứng dụng
Thắng Nguyễn
 
Tính toán khoa học - Chương 2: Hệ phương trình tuyến tính
Tính toán khoa học - Chương 2: Hệ phương trình tuyến tínhTính toán khoa học - Chương 2: Hệ phương trình tuyến tính
Tính toán khoa học - Chương 2: Hệ phương trình tuyến tínhChien Dang
 
Tính toán khoa học - Chương 6: Bài toán giá trị ban đầu với phương trình vi p...
Tính toán khoa học - Chương 6: Bài toán giá trị ban đầu với phương trình vi p...Tính toán khoa học - Chương 6: Bài toán giá trị ban đầu với phương trình vi p...
Tính toán khoa học - Chương 6: Bài toán giá trị ban đầu với phương trình vi p...Chien Dang
 
201-bai-tap-phuong-trinh-vi-phan
 201-bai-tap-phuong-trinh-vi-phan 201-bai-tap-phuong-trinh-vi-phan
201-bai-tap-phuong-trinh-vi-phan
Sơn DC
 
Bai7 khai trien_taylor
Bai7 khai trien_taylorBai7 khai trien_taylor
Bai7 khai trien_taylor
ljmonking
 
Bt dai so hoang
Bt dai so hoangBt dai so hoang
Bt dai so hoang
Hoanghl Lê
 
Diophantine equations Phương trình diophant
Diophantine equations Phương trình diophantDiophantine equations Phương trình diophant
Diophantine equations Phương trình diophant
Bui Loi
 
PHƯƠNG PHÁP BÌNH PHƯƠNG CỰC TIỂU
PHƯƠNG PHÁP BÌNH PHƯƠNG CỰC TIỂUPHƯƠNG PHÁP BÌNH PHƯƠNG CỰC TIỂU
PHƯƠNG PHÁP BÌNH PHƯƠNG CỰC TIỂU
SoM
 
74774655 chuỗi-ham
74774655 chuỗi-ham74774655 chuỗi-ham
74774655 chuỗi-ham
Vinh Phan
 
Bài Giảng Đại Số Tuyến Tính - ĐH Thăng Long
Bài Giảng Đại Số Tuyến Tính - ĐH Thăng LongBài Giảng Đại Số Tuyến Tính - ĐH Thăng Long
Bài Giảng Đại Số Tuyến Tính - ĐH Thăng Long
Hoàng Như Mộc Miên
 
Cac lenh trong matlab
Cac lenh trong matlabCac lenh trong matlab
Cac lenh trong matlab
AnhTuấn Nguyễn
 

What's hot (20)

De xs tk k 14 2012
De xs  tk k 14 2012De xs  tk k 14 2012
De xs tk k 14 2012
 
CÁC MOMENT VÀ PHÂN PHỐI CHUẨN
CÁC MOMENT VÀ PHÂN PHỐI CHUẨNCÁC MOMENT VÀ PHÂN PHỐI CHUẨN
CÁC MOMENT VÀ PHÂN PHỐI CHUẨN
 
Bai tap xstk b (cap nhat chuong 6 7)
Bai tap xstk b (cap nhat chuong 6 7)Bai tap xstk b (cap nhat chuong 6 7)
Bai tap xstk b (cap nhat chuong 6 7)
 
Bai giang-toan-kinh-te-tin-hoc
Bai giang-toan-kinh-te-tin-hocBai giang-toan-kinh-te-tin-hoc
Bai giang-toan-kinh-te-tin-hoc
 
30 bài toán phương pháp tính
30 bài toán phương pháp tính30 bài toán phương pháp tính
30 bài toán phương pháp tính
 
Bài giảng qui hoạch tuyến tính phương pháp đơn hình
Bài giảng qui hoạch tuyến tính phương pháp đơn hìnhBài giảng qui hoạch tuyến tính phương pháp đơn hình
Bài giảng qui hoạch tuyến tính phương pháp đơn hình
 
Tính toán khoa học: Chương 3: Đường cong khớp
Tính toán khoa học: Chương 3: Đường cong khớpTính toán khoa học: Chương 3: Đường cong khớp
Tính toán khoa học: Chương 3: Đường cong khớp
 
Chuong2: ƯỚC LƯỢNG THAM SỐ, môn thống kê ứng dụng
Chuong2: ƯỚC LƯỢNG THAM SỐ, môn thống kê ứng dụngChuong2: ƯỚC LƯỢNG THAM SỐ, môn thống kê ứng dụng
Chuong2: ƯỚC LƯỢNG THAM SỐ, môn thống kê ứng dụng
 
Tính toán khoa học - Chương 2: Hệ phương trình tuyến tính
Tính toán khoa học - Chương 2: Hệ phương trình tuyến tínhTính toán khoa học - Chương 2: Hệ phương trình tuyến tính
Tính toán khoa học - Chương 2: Hệ phương trình tuyến tính
 
Chuong03
Chuong03Chuong03
Chuong03
 
Tính toán khoa học - Chương 6: Bài toán giá trị ban đầu với phương trình vi p...
Tính toán khoa học - Chương 6: Bài toán giá trị ban đầu với phương trình vi p...Tính toán khoa học - Chương 6: Bài toán giá trị ban đầu với phương trình vi p...
Tính toán khoa học - Chương 6: Bài toán giá trị ban đầu với phương trình vi p...
 
201-bai-tap-phuong-trinh-vi-phan
 201-bai-tap-phuong-trinh-vi-phan 201-bai-tap-phuong-trinh-vi-phan
201-bai-tap-phuong-trinh-vi-phan
 
Bai7 khai trien_taylor
Bai7 khai trien_taylorBai7 khai trien_taylor
Bai7 khai trien_taylor
 
Bt dai so hoang
Bt dai so hoangBt dai so hoang
Bt dai so hoang
 
Hinh hoc-affine
Hinh hoc-affineHinh hoc-affine
Hinh hoc-affine
 
Diophantine equations Phương trình diophant
Diophantine equations Phương trình diophantDiophantine equations Phương trình diophant
Diophantine equations Phương trình diophant
 
PHƯƠNG PHÁP BÌNH PHƯƠNG CỰC TIỂU
PHƯƠNG PHÁP BÌNH PHƯƠNG CỰC TIỂUPHƯƠNG PHÁP BÌNH PHƯƠNG CỰC TIỂU
PHƯƠNG PHÁP BÌNH PHƯƠNG CỰC TIỂU
 
74774655 chuỗi-ham
74774655 chuỗi-ham74774655 chuỗi-ham
74774655 chuỗi-ham
 
Bài Giảng Đại Số Tuyến Tính - ĐH Thăng Long
Bài Giảng Đại Số Tuyến Tính - ĐH Thăng LongBài Giảng Đại Số Tuyến Tính - ĐH Thăng Long
Bài Giảng Đại Số Tuyến Tính - ĐH Thăng Long
 
Cac lenh trong matlab
Cac lenh trong matlabCac lenh trong matlab
Cac lenh trong matlab
 

Viewers also liked

Vận tải thế vị - pp giá trị nhỏ nhất
Vận tải thế vị - pp giá trị nhỏ nhấtVận tải thế vị - pp giá trị nhỏ nhất
Vận tải thế vị - pp giá trị nhỏ nhất
nhóc Ngố
 
Bt toi uu hoa
Bt toi uu hoaBt toi uu hoa
Bt toi uu hoaThien Le
 
Tính toán khoa học - Chương 7: Các phương pháp cực tiểu hóa không ràng buộc
Tính toán khoa học - Chương 7: Các phương pháp cực tiểu hóa không ràng buộcTính toán khoa học - Chương 7: Các phương pháp cực tiểu hóa không ràng buộc
Tính toán khoa học - Chương 7: Các phương pháp cực tiểu hóa không ràng buộcChien Dang
 
toán kinh tế hungary
toán kinh tế  hungary toán kinh tế  hungary
toán kinh tế hungary
langtukju_1088
 
Pp vận tải thế vị
Pp vận tải thế vịPp vận tải thế vị
Pp vận tải thế vị
nhóc Ngố
 
Toan kinh te
Toan kinh teToan kinh te
Toan kinh teHeo Gòm
 
Ứng dụng excel_de_giai_qhtt
Ứng dụng excel_de_giai_qhttỨng dụng excel_de_giai_qhtt
Ứng dụng excel_de_giai_qhttluxubu2075
 
Solution of System of Linear Equations
Solution of System of Linear EquationsSolution of System of Linear Equations
Solution of System of Linear Equationsmofassair
 
Chuong 4 ung dung_cntt_trong_kt
Chuong 4 ung dung_cntt_trong_ktChuong 4 ung dung_cntt_trong_kt
Chuong 4 ung dung_cntt_trong_kt
 
Cholesky method and Thomas
Cholesky method and ThomasCholesky method and Thomas
Cholesky method and Thomasjorgeduardooo
 
Chuong03
Chuong03Chuong03
Chuong03
caovanquy
 
Phương pháp tính
Phương pháp tínhPhương pháp tính
Phương pháp tính
hanoipost
 
Quy hoạch thực nghiệm (9)
Quy hoạch thực nghiệm (9)Quy hoạch thực nghiệm (9)
Quy hoạch thực nghiệm (9)Phạm Vấn
 
Tính toán khoa học - Chương 0: Introduction
Tính toán khoa học - Chương 0: IntroductionTính toán khoa học - Chương 0: Introduction
Tính toán khoa học - Chương 0: IntroductionChien Dang
 
Bg qui hoach-hoa_thuc_nghiem-co_lien_
Bg qui hoach-hoa_thuc_nghiem-co_lien_Bg qui hoach-hoa_thuc_nghiem-co_lien_
Bg qui hoach-hoa_thuc_nghiem-co_lien_Trần Thanh Hảo
 
Bai tap quan tri van hanh 09-final
Bai tap quan tri van hanh 09-finalBai tap quan tri van hanh 09-final
Bai tap quan tri van hanh 09-finalNhư Ngọc
 

Viewers also liked (19)

Bai tapqtsx
Bai tapqtsxBai tapqtsx
Bai tapqtsx
 
Vận tải thế vị - pp giá trị nhỏ nhất
Vận tải thế vị - pp giá trị nhỏ nhấtVận tải thế vị - pp giá trị nhỏ nhất
Vận tải thế vị - pp giá trị nhỏ nhất
 
Tối ưu hóa
Tối ưu hóaTối ưu hóa
Tối ưu hóa
 
Bt toi uu hoa
Bt toi uu hoaBt toi uu hoa
Bt toi uu hoa
 
Tính toán khoa học - Chương 7: Các phương pháp cực tiểu hóa không ràng buộc
Tính toán khoa học - Chương 7: Các phương pháp cực tiểu hóa không ràng buộcTính toán khoa học - Chương 7: Các phương pháp cực tiểu hóa không ràng buộc
Tính toán khoa học - Chương 7: Các phương pháp cực tiểu hóa không ràng buộc
 
toán kinh tế hungary
toán kinh tế  hungary toán kinh tế  hungary
toán kinh tế hungary
 
Pp vận tải thế vị
Pp vận tải thế vịPp vận tải thế vị
Pp vận tải thế vị
 
Slide
SlideSlide
Slide
 
Toan kinh te
Toan kinh teToan kinh te
Toan kinh te
 
Ứng dụng excel_de_giai_qhtt
Ứng dụng excel_de_giai_qhttỨng dụng excel_de_giai_qhtt
Ứng dụng excel_de_giai_qhtt
 
Solution of System of Linear Equations
Solution of System of Linear EquationsSolution of System of Linear Equations
Solution of System of Linear Equations
 
Chuong 4 ung dung_cntt_trong_kt
Chuong 4 ung dung_cntt_trong_ktChuong 4 ung dung_cntt_trong_kt
Chuong 4 ung dung_cntt_trong_kt
 
Cholesky method and Thomas
Cholesky method and ThomasCholesky method and Thomas
Cholesky method and Thomas
 
Chuong03
Chuong03Chuong03
Chuong03
 
Phương pháp tính
Phương pháp tínhPhương pháp tính
Phương pháp tính
 
Quy hoạch thực nghiệm (9)
Quy hoạch thực nghiệm (9)Quy hoạch thực nghiệm (9)
Quy hoạch thực nghiệm (9)
 
Tính toán khoa học - Chương 0: Introduction
Tính toán khoa học - Chương 0: IntroductionTính toán khoa học - Chương 0: Introduction
Tính toán khoa học - Chương 0: Introduction
 
Bg qui hoach-hoa_thuc_nghiem-co_lien_
Bg qui hoach-hoa_thuc_nghiem-co_lien_Bg qui hoach-hoa_thuc_nghiem-co_lien_
Bg qui hoach-hoa_thuc_nghiem-co_lien_
 
Bai tap quan tri van hanh 09-final
Bai tap quan tri van hanh 09-finalBai tap quan tri van hanh 09-final
Bai tap quan tri van hanh 09-final
 

Similar to Tính toán khoa học - Chương 8: Quy hoạch tuyến tính

Caunangcao toan2017
Caunangcao toan2017Caunangcao toan2017
Caunangcao toan2017
Phạm Văn Hoằng
 
Phương pháp số và lập trình - Nội suy, Đạo hàm, Tích phân
Phương pháp số và lập trình - Nội suy, Đạo hàm, Tích phânPhương pháp số và lập trình - Nội suy, Đạo hàm, Tích phân
Phương pháp số và lập trình - Nội suy, Đạo hàm, Tích phânHajunior9x
 
Luận văn: Phương trình phi tuyến không chỉnh loại J - đơn điệu, 9đ
Luận văn: Phương trình phi tuyến không chỉnh loại J - đơn điệu, 9đLuận văn: Phương trình phi tuyến không chỉnh loại J - đơn điệu, 9đ
Luận văn: Phương trình phi tuyến không chỉnh loại J - đơn điệu, 9đ
Dịch vụ viết bài trọn gói ZALO 0917193864
 
Quan2017
Quan2017Quan2017
Quan2017
Quan Nguyen
 
Nhị thức newton và Phương pháp giải các bài tập về Nhị thức newton
Nhị thức newton và Phương pháp giải các bài tập về Nhị thức newtonNhị thức newton và Phương pháp giải các bài tập về Nhị thức newton
Nhị thức newton và Phương pháp giải các bài tập về Nhị thức newton
Linh Nguyễn
 
De cuong on tap toan 9 ky ii chuan qh (sửa)
De cuong on tap toan 9 ky ii chuan qh (sửa)De cuong on tap toan 9 ky ii chuan qh (sửa)
De cuong on tap toan 9 ky ii chuan qh (sửa)
Nắng Vàng Cỏ Xanh
 
07 mat101 bai3_v2.3013101225
07 mat101 bai3_v2.301310122507 mat101 bai3_v2.3013101225
07 mat101 bai3_v2.3013101225
Yen Dang
 
Quy hoach tuyen tinh C3
Quy hoach tuyen tinh C3Quy hoach tuyen tinh C3
Quy hoach tuyen tinh C3
Ngo Hung Long
 
Notes for Optimization Chapter 1 and 2
Notes for Optimization Chapter 1 and 2Notes for Optimization Chapter 1 and 2
Notes for Optimization Chapter 1 and 2
Vu Pham
 
phuong-phap-tinh_tri_nh-quo_c-luong_chuong-4---no_i-suy-va_-xa_p-xi_-ha_m - [...
phuong-phap-tinh_tri_nh-quo_c-luong_chuong-4---no_i-suy-va_-xa_p-xi_-ha_m - [...phuong-phap-tinh_tri_nh-quo_c-luong_chuong-4---no_i-suy-va_-xa_p-xi_-ha_m - [...
phuong-phap-tinh_tri_nh-quo_c-luong_chuong-4---no_i-suy-va_-xa_p-xi_-ha_m - [...
trang384154
 
Chương 4 - Nội suy và xấp xỉ hàm.ppt
Chương 4 - Nội suy và xấp xỉ hàm.pptChương 4 - Nội suy và xấp xỉ hàm.ppt
Chương 4 - Nội suy và xấp xỉ hàm.ppt
HCnggg
 
Ôn thi THPT Quốc Gia môn Toán về nguyên hàm và tích phân
Ôn thi THPT Quốc Gia môn Toán về nguyên hàm và tích phânÔn thi THPT Quốc Gia môn Toán về nguyên hàm và tích phân
Ôn thi THPT Quốc Gia môn Toán về nguyên hàm và tích phân
Linh Nguyễn
 
Ctdl+va+gt chuong+1 4
Ctdl+va+gt chuong+1 4Ctdl+va+gt chuong+1 4
Ctdl+va+gt chuong+1 4Do Ngoc Tuan
 
Ctdl+va+gt chuong+1 4
Ctdl+va+gt chuong+1 4Ctdl+va+gt chuong+1 4
Ctdl+va+gt chuong+1 4Do Ngoc Tuan
 
Quy hoach tuyen tinh C1
Quy hoach tuyen tinh C1Quy hoach tuyen tinh C1
Quy hoach tuyen tinh C1
Ngo Hung Long
 

Similar to Tính toán khoa học - Chương 8: Quy hoạch tuyến tính (20)

Caunangcao toan2017
Caunangcao toan2017Caunangcao toan2017
Caunangcao toan2017
 
Phương pháp số và lập trình - Nội suy, Đạo hàm, Tích phân
Phương pháp số và lập trình - Nội suy, Đạo hàm, Tích phânPhương pháp số và lập trình - Nội suy, Đạo hàm, Tích phân
Phương pháp số và lập trình - Nội suy, Đạo hàm, Tích phân
 
Luận văn: Phương trình phi tuyến không chỉnh loại J - đơn điệu, 9đ
Luận văn: Phương trình phi tuyến không chỉnh loại J - đơn điệu, 9đLuận văn: Phương trình phi tuyến không chỉnh loại J - đơn điệu, 9đ
Luận văn: Phương trình phi tuyến không chỉnh loại J - đơn điệu, 9đ
 
Quan2017
Quan2017Quan2017
Quan2017
 
Nhị thức newton và Phương pháp giải các bài tập về Nhị thức newton
Nhị thức newton và Phương pháp giải các bài tập về Nhị thức newtonNhị thức newton và Phương pháp giải các bài tập về Nhị thức newton
Nhị thức newton và Phương pháp giải các bài tập về Nhị thức newton
 
De cuong on tap toan 9 ky ii chuan qh (sửa)
De cuong on tap toan 9 ky ii chuan qh (sửa)De cuong on tap toan 9 ky ii chuan qh (sửa)
De cuong on tap toan 9 ky ii chuan qh (sửa)
 
Chuong 3
Chuong 3Chuong 3
Chuong 3
 
07 mat101 bai3_v2.3013101225
07 mat101 bai3_v2.301310122507 mat101 bai3_v2.3013101225
07 mat101 bai3_v2.3013101225
 
Olympiad help
Olympiad helpOlympiad help
Olympiad help
 
Quy hoach tuyen tinh C3
Quy hoach tuyen tinh C3Quy hoach tuyen tinh C3
Quy hoach tuyen tinh C3
 
Notes for Optimization Chapter 1 and 2
Notes for Optimization Chapter 1 and 2Notes for Optimization Chapter 1 and 2
Notes for Optimization Chapter 1 and 2
 
phuong-phap-tinh_tri_nh-quo_c-luong_chuong-4---no_i-suy-va_-xa_p-xi_-ha_m - [...
phuong-phap-tinh_tri_nh-quo_c-luong_chuong-4---no_i-suy-va_-xa_p-xi_-ha_m - [...phuong-phap-tinh_tri_nh-quo_c-luong_chuong-4---no_i-suy-va_-xa_p-xi_-ha_m - [...
phuong-phap-tinh_tri_nh-quo_c-luong_chuong-4---no_i-suy-va_-xa_p-xi_-ha_m - [...
 
Gt de quy
Gt de quyGt de quy
Gt de quy
 
Gt de quy_2
Gt de quy_2Gt de quy_2
Gt de quy_2
 
Chương 4 - Nội suy và xấp xỉ hàm.ppt
Chương 4 - Nội suy và xấp xỉ hàm.pptChương 4 - Nội suy và xấp xỉ hàm.ppt
Chương 4 - Nội suy và xấp xỉ hàm.ppt
 
Ôn thi THPT Quốc Gia môn Toán về nguyên hàm và tích phân
Ôn thi THPT Quốc Gia môn Toán về nguyên hàm và tích phânÔn thi THPT Quốc Gia môn Toán về nguyên hàm và tích phân
Ôn thi THPT Quốc Gia môn Toán về nguyên hàm và tích phân
 
Bam may
Bam mayBam may
Bam may
 
Ctdl+va+gt chuong+1 4
Ctdl+va+gt chuong+1 4Ctdl+va+gt chuong+1 4
Ctdl+va+gt chuong+1 4
 
Ctdl+va+gt chuong+1 4
Ctdl+va+gt chuong+1 4Ctdl+va+gt chuong+1 4
Ctdl+va+gt chuong+1 4
 
Quy hoach tuyen tinh C1
Quy hoach tuyen tinh C1Quy hoach tuyen tinh C1
Quy hoach tuyen tinh C1
 

More from Chien Dang

Tính toán khoa học - Chương 5: Tính gần đúng đạo hàm và tích phân
Tính toán khoa học - Chương 5: Tính gần đúng đạo hàm và tích phânTính toán khoa học - Chương 5: Tính gần đúng đạo hàm và tích phân
Tính toán khoa học - Chương 5: Tính gần đúng đạo hàm và tích phânChien Dang
 
Vật lý Laser 2013 - Chương IV: Các loại laser và ứng dụng
Vật lý Laser 2013 - Chương IV: Các loại laser và ứng dụngVật lý Laser 2013 - Chương IV: Các loại laser và ứng dụng
Vật lý Laser 2013 - Chương IV: Các loại laser và ứng dụngChien Dang
 
Vật lý Laser 2013 - Chương III: Phát xạ Laser
Vật lý Laser 2013 - Chương III: Phát xạ LaserVật lý Laser 2013 - Chương III: Phát xạ Laser
Vật lý Laser 2013 - Chương III: Phát xạ LaserChien Dang
 
Vật lý Laser 2013- Chương II: Khuếch đại Laser
Vật lý Laser 2013- Chương II: Khuếch đại LaserVật lý Laser 2013- Chương II: Khuếch đại Laser
Vật lý Laser 2013- Chương II: Khuếch đại LaserChien Dang
 
Vật lý Laser 2013 - Chương I: Photon và Nguyên tử
Vật lý Laser 2013 - Chương I: Photon và Nguyên tửVật lý Laser 2013 - Chương I: Photon và Nguyên tử
Vật lý Laser 2013 - Chương I: Photon và Nguyên tửChien Dang
 
Tính toán khoa học - Chương 1: Nhập môn Matlab
Tính toán khoa học - Chương 1: Nhập môn MatlabTính toán khoa học - Chương 1: Nhập môn Matlab
Tính toán khoa học - Chương 1: Nhập môn MatlabChien Dang
 
Projection
ProjectionProjection
Projection
Chien Dang
 
Lập trình Python GUI vs PySide
Lập trình Python GUI vs PySideLập trình Python GUI vs PySide
Lập trình Python GUI vs PySide
Chien Dang
 

More from Chien Dang (8)

Tính toán khoa học - Chương 5: Tính gần đúng đạo hàm và tích phân
Tính toán khoa học - Chương 5: Tính gần đúng đạo hàm và tích phânTính toán khoa học - Chương 5: Tính gần đúng đạo hàm và tích phân
Tính toán khoa học - Chương 5: Tính gần đúng đạo hàm và tích phân
 
Vật lý Laser 2013 - Chương IV: Các loại laser và ứng dụng
Vật lý Laser 2013 - Chương IV: Các loại laser và ứng dụngVật lý Laser 2013 - Chương IV: Các loại laser và ứng dụng
Vật lý Laser 2013 - Chương IV: Các loại laser và ứng dụng
 
Vật lý Laser 2013 - Chương III: Phát xạ Laser
Vật lý Laser 2013 - Chương III: Phát xạ LaserVật lý Laser 2013 - Chương III: Phát xạ Laser
Vật lý Laser 2013 - Chương III: Phát xạ Laser
 
Vật lý Laser 2013- Chương II: Khuếch đại Laser
Vật lý Laser 2013- Chương II: Khuếch đại LaserVật lý Laser 2013- Chương II: Khuếch đại Laser
Vật lý Laser 2013- Chương II: Khuếch đại Laser
 
Vật lý Laser 2013 - Chương I: Photon và Nguyên tử
Vật lý Laser 2013 - Chương I: Photon và Nguyên tửVật lý Laser 2013 - Chương I: Photon và Nguyên tử
Vật lý Laser 2013 - Chương I: Photon và Nguyên tử
 
Tính toán khoa học - Chương 1: Nhập môn Matlab
Tính toán khoa học - Chương 1: Nhập môn MatlabTính toán khoa học - Chương 1: Nhập môn Matlab
Tính toán khoa học - Chương 1: Nhập môn Matlab
 
Projection
ProjectionProjection
Projection
 
Lập trình Python GUI vs PySide
Lập trình Python GUI vs PySideLập trình Python GUI vs PySide
Lập trình Python GUI vs PySide
 

Tính toán khoa học - Chương 8: Quy hoạch tuyến tính

  • 1. Chương 8 QUY HOẠCH TUYẾN TÍNH Linear Programming Tính toán khoa học
  • 2. Bài toán quy hoạch toán học • Rất nhiều bài toán thực tế có thể phát biểu dưới dạng bài toán cực trị sau: • Bài toán (1)-(4) được gọi là bài toán quy hoạch toán học f(x) là hàm mục tiêu, gi,hj là các hàm ràng buộc. Tập Gọi là tập ràng buộc, hay miền chấp nhận được. Mỗi vectơ x thuộc D được gọi là lời giải chấp nhận được hay là phương án chấp nhận được Tính toán khoa học
  • 3. Bài toán quy hoạch toán học • Phương án chấp nhận được x* thỏa mãn • Được gọi là pa tối ưu hay lời giải của bài toán, khi đó giá trị • Được gọi là giá trị tối ưu của bài toán Tính toán khoa học
  • 4. Một số mô hình thực tế  Bài toán lập kế hoạch sản xuất cho một nhà máy  Bài toán khẩu phần ăn  Bài toán vận tải Tính toán khoa học
  • 5. Bài toán lập kế hoạch sản xuất • Một nhà máy có khả năng sản xuất n loại sản phẩm. Để sản xuất các sản phẩm này cần phải sử dụng m loại nguyên liệu. • Biết : aij  l­îng nguyªn liÖu lo¹i i cÇn thiÕt ®Ó s¶n xuÊt ra mét ®¬n vÞ s¶n phÈm lo¹i j; bi  dù tr÷ nguyªn liÖu lo¹i i c j  tiÒn l·i tõ viÖc b¸n mét ®¬n vÞ s¶n phÈm lo¹i ®¬n vÞ s¶n phÈm lo¹i j (i=1, m ; j=1, n) • Hãy xây dựng một chiến lược sản xuất mang lại nhiều lợi nhuận nhất. – Gọi xj  0 là số sản phẩm loại j, kế hoạch sản xuất là x  ( x1, x2 ,..., xn ) n n aij * xj là tổng chi phí nguyên liệu i do đó  a * x  b –  ij j i j 1 n j 1 – Tổng lợi nhuận thu được là  c j x j j 1 – Khi đó mô hình toán học của bài toán kế hoạch sản xuất được phát biểu dưới dạng như ở sau. Tính toán khoa học
  • 6. Bài toán lập kế hoạch sản xuất  Bài toán lập kế hoạch sản xuất cho một nhà máy Tìm cực đại của n f(x1 ,x 2 ,...,x n )= c jx j j=1 víi ®iÒu kiÖn n a ij  bi ,i=1,m j=1 x j  0, j=1,n Tính toán khoa học
  • 7. Nội dung I. Thuật toán đơn hình 3.1.1. Bài toán QHTT dạng chính tắc và dạng chuẩn 3.1.2. Phương án cơ sở chấp nhận được 3.1.3. Công thức số gia hàm mục tiêu. Tiêu chuẩn tối ưu 3.1.4. Thuật toán đơn hình dạng ma trận nghịch đảo 3.1.5. Thuật toán đơn hình dạng bảng 3.1.6. Tính hữu hạn của thuật toán đơn hình 3.1.7. Thuật toán đơn hình hai pha II. Lý thuyết đối ngẫu 3.2.1. Xây dựng bài toán đối ngẫu 3.2.2. Các định lý đối ngẫu 3.2.3. Một số ứng dụng của lý thuyết đối ngẫu Tính toán khoa học
  • 8. I. THUẬT TOÁN ĐƠN HÌNH Tính toán khoa học
  • 9. Nội dung 1. 2. 3. 4. 5. 6. 7. Bài toán QHTT dạng chính tắc và dạng chuẩn Phương án cơ sở chấp nhận được Công thức số gia hàm mục tiêu. Tiêu chuẩn tối ưu Thuật toán đơn hình dạng ma trận nghịch đảo Thuật toán đơn hình dạng bảng Tính hữu hạn của thuật toán đơn hình Thuật toán đơn hình hai pha Tính toán khoa học
  • 10. 1. Bài toán QHTT dạng chính tắc và dạng chuẩn Tính toán khoa học
  • 11. Bài toán QHTT tổng quát • Bài toán QHTT tổng quát là bài toán tối ưu hoá mà trong đó chúng ta phải tìm cực đại (cực tiểu) của hàm mục tiêu tuyến tính với điều kiện biến số phải thoả mãn hệ thống phương trình và bất phương trình tuyến tính. Mô hình toán học của bài toán có thể phát biểu như sau n f ( x1 , x2 ,..., xn )   c j x j  min(max), với điều kiện (1) j 1 n a x j 1 ij j  bi , i  1, 2,..., p ( p  m) (2) j  bi , i  p  1, p  2,..., m (3) n a x j 1 ij x j  0, j  1, 2,..., q (q  n) (4) x j  0, j  q  1, q  2,..., n (5) • Ký hiệu xj <> 0 để chỉ ra rằng biến xj không có đòi hỏi trực tiếp về dấu. Tính toán khoa học
  • 12. Bài toán QHTT tổng quát • Ràng buộc: n a x j 1 ij j  bi , i  1,..., p được gọi là ràng buộc cơ bản dạng đẳng thức. • Ràng buộc: n a x j 1 ij j  bi , i  p  1,..., m được gọi là ràng buộc cơ bản dạng bất đẳng thức. • Ràng buộc: x j  0, j  1,..., q được gọi là ràng buộc về dấu của biến số. Tính toán khoa học
  • 13. Bài toán QHTT dạng chính tắc • Ta gọi bài toán QHTT dạng chính tắc là bài toán sau: n f ( x1 , x2 ,..., xn )   c j x j  min, j 1 n a x j 1 ij j  bi , i  1, 2,..., m x j  0, j  1, 2,..., n Tính toán khoa học
  • 14. Bài toán QHTT dạng chuẩn • Ta gọi bài toán QHTT dạng chuẩn là bài toán sau: n f ( x1 , x2 ,..., xn )   c j x j  min, j 1 n a x j 1 ij j  bi , i  1, 2,..., m x j  0, j  1, 2,..., n Tính toán khoa học
  • 15. Đưa BT QHTT tổng quát về dạng chính tắc • Rõ ràng Bài toán QHTT dạng chính tắc là trường hợp riêng của QHTT tổng quát. n f ( x1 , x2 ,..., xn )   c j x j  min(max), (1) j 1 n a x j 1 ij j  bi , i  1, 2,..., p ( p  m) n (2) f ( x1 , x2 ,..., xn )   c j x j  min, j 1 n  aij x j  bi , i  p  1, p  2,..., m (3) a x x j  0, j  1, 2,..., q (q  n) (4) x j  0, j  1, 2,..., n x j  0, j  q  1, q  2,..., n (5) n j 1 j 1 ij j  bi , i  1, 2,..., m • Mặt khác, một bài toán QHTT bất kỳ luôn có thể đưa về dạng chính tắc nhờ các phép biến đổi sau: Tính toán khoa học
  • 16. Đưa BT QHTT tổng quát về dạng chính tắc a) Đưa ràng buộc bất đẳng thức dạng “” về dạng “”. Bất phương trình tuyến tính n  aij xj  bi j 1 là tương đương với bất phương trình tuyến tính sau n  aij xj  bi j 1 Tính toán khoa học
  • 17. Đưa BT QHTT tổng quát về dạng chính tắc b) Đưa ràng buộc dạng “=” về dạng “”. Phương trình tuyến tính n  aij xj  bi j 1 là tương đương với hệ gồm 2 bất phương trình tuyến tính sau n  aij xj  bi j 1 n  aij xj   bi j 1 Tính toán khoa học
  • 18. Đưa BT QHTT tổng quát về dạng chính tắc c) Đưa ràng buộc dạng “” về dạng “=”. Bất phương trình tuyến tính n  aij xj  bi j 1 là “tương đương” với hệ gồm 1 phương trình tuyến tính và một điều kiện không âm đối với biến số sau đây n  aij xj  yi  bi j 1 yi  0 • Tương đương hiểu theo nghĩa: Nếu (x1, x2, ..., xn, yi) là nghiệm của hệ thì (x1, x2, ..., xn) là nghiệm của bất phương trình. • Biến yi được gọi là biến bù (hay biến phụ). Tính toán khoa học
  • 19. Đưa BT QHTT tổng quát về dạng chính tắc d) Thay mỗi biến không có điều kiện dấu xj bởi hiệu hai biến có điều kiện về dấu: x j  x  x , j j x  0, x  0. j j e) Đưa bài toán tìm cực đại về bài toán tìm cực tiểu. Bài toán tối ưu hoá max { f(x): x  D} là tương đương với bài toán tối ưu hoá min {- f(x): x  D} theo nghĩa: Lời giải của bài toán này cũng là lời giải của bài toán kia và ngược lại, đồng thời ta có đẳng thức: max { f(x): x  D} = - min {- f(x): x  D} Tính toán khoa học
  • 20. Đưa BT QHTT tổng quát về dạng chính tắc f) Đưa ràng buộc dạng “” về dạng “=”. Bất phương trình tuyến tính n a x j 1 ij j  bi là “tương đương” với hệ gồm 1 phương trình tuyến tính và một điều kiện không âm đối với biến số sau đây n a j 1 ij x j  yi  bi yi  0 • Tương đương hiểu theo nghĩa: Nếu (x1, x2, ..., xn, yi) là nghiệm của hệ thì (x1, x2, ..., xn) là nghiệm của bất phương trình. • Biến yi được gọi là biến bù (hay biến phụ). Tính toán khoa học
  • 21. Ví dụ • Bài toán QHTT x1 + 2x2 - 3x3 + 4x4  max, x1 + 5x2 + 4x3+ 6x4  15, x1 + 2x2 - 3x3+ 3x4 = 9, x1 , x2 , x4  0, x3< >0, là tương đương với bài toán QHTT dạng chính tắc sau: Tính toán khoa học
  • 22. Ví dụ    x1  2 x2  3( x3  x3 )  4 x4  min,   x1  5 x2  4( x3  x3 )  6 x4  x5  15,   x1  2 x2  3( x3  x3 )  3x4   x1 , x2 , x3 , x3 , x4 , x5  0, Tính toán khoa học = 9,
  • 23. Giải bài toán QHTT trong mặt phẳng Tính toán khoa học
  • 24. Giải bài toán QHTT trong mặt phẳng • Bài toán QHTT dạng chuẩn 2 biến số f(x1, x2) = c1x1 + c2x2  min, với điều kiện ai1 x1 + ai2 x2  bi, i = 1, 2, ..., m • Ký hiệu D = {(x1,x2): ai1 x1 + ai2 x2  bi, i = 1, 2, ..., m} là miền ràng buộc. Tính toán khoa học
  • 25. Giải bài toán QHTT trong mặt phẳng • Từ ý nghĩa hình học, mỗi bất phương trình tuyến tính ai1 x1 + ai2 x2  bi, i = 1, 2, ..., m xác định một nửa mặt phẳng.  Miền ràng buộc D xác định như giao của m nửa mặt phẳng sẽ là một đa giác lồi trên mặt phẳng. Tính toán khoa học
  • 26. Giải bài toán QHTT trong mặt phẳng • Phương trình c1x1+ c2x2 =  có vectơ pháp tuyến là (c1,c2) khi  thay đổi sẽ xác định các đường thẳng song song với nhau mà ta sẽ gọi là các đường mức (với giá trị mức ). Mỗi điểm u=(u1,u2)D sẽ nằm trên đường mức với mức u= c1u1+ c2u2 = f(u1,u2) Tính toán khoa học
  • 27. Giải bài toán QHTT trong mặt phẳng • Bài toán đặt ra có thể phát biểu như sau: trong số các đường mức cắt tập D, tìm đường mức có giá trị mức nhỏ nhất. • Ta nhận thấy, nếu dịch chuyển song song các đường mức theo hướng vector pháp tuyến c = (c1, c2) thì giá rị mức sẽ tăng, nếu dịch chuyển theo hướng ngược lại thì giá trị mức sẽ giảm. • Do đó, bài toán đặt ra có thể tiến hành như sau: Bắt đầu từ một đường mức cắt D, ta dịch chuyển song song các đường mức theo hướng ngược hướng với vector c = (c1, c2) cho đến khi nào việc dịch chuyển tiếp theo làm cho đường mức không còn cắt D nữa thì dừng. • Các điểm của D nằm trên đường mức cuối cùng này sẽ là các lời giải cần tìm, còn giá trị của nó chính là giá trị tối ưu của bài toán. Tính toán khoa học
  • 28. Ví dụ 1 • Giải bài toán QHTT sau: x1 – x2  min 2 x1 + x2  2, – x1 – x2  – 7, – x1 + x2  – 2, x1  0, x2  0. Tính toán khoa học
  • 29. Phương án tối ưu x1 – x2  min 2 x1 + x2  2, – x1 – x2  – 7, – x1 + x2  – 2, x1  0, x2  0. x1 – x2 = – 7 x1 – x2 = 0 Miền ràng buộc: D = M1M2M3M4M5 Tính toán khoa học
  • 30. Ví dụ 1 • Giải theo phương pháp hình học vừa mô tả ta thu được lời giải tối ưu của bài toán tương ứng với điểm M2(0,7): x* = (0,7), với giá trị tối ưu là f* = -7. • Nếu thay hàm mục tiêu của bài toán bởi –x1+x2  min, thì giá trị tối ưu sẽ là -2 và tất cả các điểm nằm trên đoạn M3M4 đều là phương án tối ưu của bài toán. Chẳng hạn, có thể lấy phương án tối ưu của bài toán là x*=(2,0) (tương ứng với điểm M4). Tính toán khoa học
  • 31. – x1+ x2  min 2 x1 + x2  2, – x1 – x2  – 7, – x1 + x2  – 2, x1  0, x2  0. – x1 + x2 = 7 –c – x1 + x2 = 0 Phương án tối ưu: M3M4 Tính toán khoa học
  • 32. Nhận xét • Trong cả hai trường hợp ta luôn tìm được phương án tối ưu là một đỉnh nào đó của miền ràng buộc. • “Bài toán QHTT trong mặt phẳng luôn có phương án tối ưu là đỉnh của miền ràng buộc.” • Nhận xét hình học quan trọng này đã dẫn tới việc đề xuất thuật toán đơn hình để giải bài toán QHTT. Tính toán khoa học
  • 33. Ví dụ 2 13x1  23 x2  max 5 x1  15 x2  480 4 x1   160 35 x1 x1 4 x2  20 x2 , x2  1190  Tính toán khoa học 0
  • 34. Miền ràng buộc  max 5 x1 35x1 + 20x2  1190  23 x2  15 x2  480 4 x1 4x1 + 4x2  160 13x1   160 35 x1 x1 4 x2  20 x2 , x2  1190  0 (0, 32) (12, 28) (26, 14) 5x1 + 15x2  480 (0, 0) (34, 0) Tính toán khoa học
  • 35. Hàm mục tiêu (0, 32) (12, 28) (26, 14) 13x1 + 23x2 = 1600 13x1 + 23x2 = 800 (0, 0) (34, 0) Tính toán khoa học 13x1 + 23x2 = 442
  • 36. Ý nghĩa hình học • Tồn tại lời giải tối ưu là đỉnh của đa giác ràng buộc Đỉnh của đa giác ràng buộc (0, 32) (12, 28) (26, 14) (0, 0) (34, 0) Tính toán khoa học
  • 37. Ví dụ 3 • Giải bài toán QHTT sau: x1 – x2  min 2x1 + x2 <=4, x1 + x2  2, x1  0, x2  0.
  • 38. Ý nghĩa hình học của QHTT • Miền ràng buộc là tập lồi đa diện. – Lồi: nếu y và z là pacnđ, thì y +(1- )z cũng là pacnđ với mọi 01. – Đỉnh: pacnđ x mà không thể biểu diễn dưới dạng y +(1- )z, 0<<1, với mọi cặp pacnđ phân biệt y và z. n c x (P) max j 1 j j n a x j 1 ij j xj  bi 1  i  m  0 1 j  n Không lồi Lồi y Đỉnh y z Tính toán khoa học z
  • 39. Ý nghĩa hình học • Kết luận: Nếu bài toán có pa tối ưu thì nó luôn có pa tối ưu là đỉnh của miền ràng buộc vẫn đúng cho nhiều chiều.  Chỉ cần tìm pa tối ưu trong số hữu hạn phương án. Tính toán khoa học
  • 40. Thuật toán đơn hình • Simplex Algorithm. (Dantzig 1947) – Thuật toán thực hiện dịch chuyển từ một đỉnh sang một đỉnh kề tốt hơn cho đến khi đến được đỉnh tối ưu. – Thuật toán là hữu hạn nhưng có độ phức tạp hàm mũ. Tính toán khoa học
  • 41. Một số ký hiệu và định nghĩa • Trong các phần tiếp theo ta sẽ chỉ làm việc với bài toán QHTT dạng chính tắc: Tìm cực tiểu: f (x1,x2,...,xn)= nj=1 cj xj  min, với điều kiện ni=1 aij xj = bi, i = 1,2,...,m xj  0, j = 1,2,...,n. Tính toán khoa học
  • 42. Ký hiệu và định nghĩa • Đưa vào các ký hiệu:  x=(x1, x2, ..., xn)T – vectơ biến số  c=(c1, c2, ..., cn)T – vectơ hệ số hàm mục tiêu  A = (aij)mn – ma trận ràng buộc  b=(b1,...,bm)T- vectơ ràng buộc (vế phải) Tính toán khoa học
  • 43. Ký hiệu và định nghĩa • Ta có thể viết lại bài toán dưới dạng ma trận: f(x) = cTx  min, Ax = b, x  0 hay min{ f(x) = cTx : Ax = b, x  0} • Bất đẳng thức vectơ: y = (y1, y2, ..., yk)  0 được hiểu theo nghĩa từng thành phần: yi  0 , i = 1, 2, ..., k. Tính toán khoa học
  • 44. Ký hiệu và định nghĩa • Ký hiệu các tập chỉ số:  J = {1,2,...,n} tập chỉ số của các biến số  I = {1,2,...,m} tập chỉ số của các ràng buộc Khi đó ta sử dụng các ký hiệu sau x = x(J) = {xj: jJ} - vectơ biến số; c = c(J) = {cj: jJ} – vectơ hệ số hàm mục tiêu; A = A(I, J) = {aij: iI, jJ} – ma trận ràng buộc Aj = (aij: iI) – vectơ cột thứ j của ma trận A. Hệ phương trình ràng buộc cơ bản của bài toán QHTT dạng chính tắc còn có thể viết dưới dạng: A1x1+ A2x2+...+ Anxn= b Tính toán khoa học
  • 45. Ký hiệu và định nghĩa • Tập D = {x: Ax = b, x 0} được gọi là miền ràng buộc (miền chấp nhận được) x được gọi là phương án chấp nhận được. • Phương án chấp nhận được x* đem lại giá trị nhỏ nhất cho hàm mục tiêu, tức là cTx*  cTx với mọi x  D được gọi là phương án tối ưu của bài toán và khi đó giá trị f* = cTx* được gọi là giá trị tối ưu của bài toán Tính toán khoa học
  • 46. 2. PHƯƠNG ÁN CƠ SỞ CHẤP NHẬN ĐƯỢC Khái niệm phương án cơ sở chấp nhận được (pacscnđ) là khái niệm trung tâm trong thuật toán đơn hình Tính toán khoa học
  • 47. Phương án cơ sở chấp nhận được • Trước hết ta giả thiết rằng (*) rank (A) = m nghĩa là hệ phương trình ràng buộc cơ bản gồm m phương trình độc lập tuyến tính. • Chú ý: Trên thực tế giả thiết (*) là tương đương với giả thiết hệ phương trình tuyến tính Ax = b có nghiệm. • Về sau ta sẽ gỡ bỏ các giả thiết này. Tính toán khoa học
  • 48. Phương án cơ sở chấp nhận được • Định nghĩa 1. Ta gọi cơ sở của ma trận A là một bộ gồm m vector cột độc lập tuyến tính B   Aj , Aj ,..., Aj  của nó. 1 2 n Giả sử B  A( I, J B ),trong ®ã J B  J1,..., J m lµ mét c¬ së cña ma trËn A. Khi đó vector x = (x1 , x2 ,…, xn ) thỏa mãn: xj  0, j  J N  J J B ; xjk lµ thµnh phÇn thø k cña vector B1b (k  1,..., m). sẽ được gọi là phương án cơ sở tương ứng với cơ sở B. Các biến xj , j  J B được gọi là biến cơ sở còn xj , j  J N là biến phi cơ sở. Tính toán khoa học
  • 49. Phương án cơ sở chấp nhận được • Như vậy, nếu ký hiệu xB = x(JB), xN = x(JN) thì phương án cơ sở x tương ứng với cơ sở B có thể xác định nhờ thủ tục sau: 1. Đặt xN=0. 2. Xác định xB từ hệ phương trình BxB = b. • Từ giả thiết (*) suy ra bài toán luôn có phương án cơ sở. Tính toán khoa học
  • 50. Phương án cơ sở chấp nhận được • Giả sử x = (xB ,xN ) là phương án cơ sở tương ứng với cơ sở B. Khi đó bài toán QHTT dạng chính tắc có thể viết lại như sau: f(xB,xN)=cBxB + cNxN  min BxB+ NxN = b, xB, xN  0, trong đó N = (Aj: jJN) được gọi là ma trận phi cơ sở. Tính toán khoa học
  • 51. Phương án cơ sở chấp nhận được • Xét bài toán QHTT 6x1 + 2x2  5x3 + x4 + 4x5  3x6 + 12x7  min x 1 + x2 + x3 + x4 =4 x1 + x5 =2 x3 + x6 =3 3x2 + x3 + x7 =6 x 1, x 2 , x 3 , x 4 , x 5 , x 6 , x 7  0 Tính toán khoa học
  • 52. Phương án cơ sở chấp nhận được • Dưới dạng ma trận: c = (6, 2, –5, 1, 4, –3, 12)T; b = (4, 2, 3, 6)T; 1 1 1 1 0 0 1 0 0 0 1 0 A= 0 0 1 0 0 1 0 3 1 0 0 0 A1 A2 A3 A4 A5 A6 0 0 0 1 A7 Tính toán khoa học
  • 53. Phương án cơ sở chấp nhận được • Xét cơ sở B = {A4, A5, A6, A7} = E4 • Phương án cơ sở x = (x1, x2, ..., x7) tương ứng với nó thu được bằng cách đặt: x1 = 0, x2 = 0, x3 = 0 và các giá trị của xB= (x4, x5, x6, x7) thu được bằng việc giải hệ phương trình BxB = b hay E4xB = b Từ đó ta tìm được: xB = (4, 2, 3, 6). • Vậy pacs tương ứng với cơ sở B là x = (0, 0, 0, 4, 2, 3, 6) Tính toán khoa học
  • 54. Phương án cơ sở chấp nhận được • Xét cơ sở B1 = {A2, A5, A6, A7} • Phương án cơ sở y = (y1, y2, ..., y7) tương ứng với nó thu được bằng cách đặt: y1 = 0; y3 = 0, y4 = 0 và các giá trị của yB= (y2, y5, y6, y7) thu được bằng việc giải hệ B1yB = b hay y2 =4 y5 =2 y6 =3 3y2 + y7 =6 Từ đó ta tìm được: yB = (4, 2, 3, – 6). • Vậy pacs tương ứng với cơ sở B1 là y = (0, 4, 0, 0, 2, 3, – 6) Tính toán khoa học
  • 55. Phương án cơ sở chấp nhận được • Dễ thấy: – pacs tương ứng với cơ sở B x = (0, 0, 0, 4, 2, 3, 6) là phương án chấp nhận được – còn pacs tương ứng với cơ sở B1 y = (0, 4, 0, 0, 2, 3, -6) không là phương án chấp nhận được Định nghĩa. Phương án cơ sở được gọi là phương án cơ sở chấp nhận được (lời giải cơ sở chấp nhận được) nếu như nó là phương án chấp nhận được. Tính toán khoa học
  • 56. Phương án cơ sở chấp nhận được • Bài toán QHTT có bao nhiêu pacscnd? • Số pacscnd  Số cơ sở  C(n,m) • Vậy một bài toán QHTT chỉ có thể có một số hữu hạn pacscnd Tính toán khoa học
  • 57. Phương án cơ sở chấp nhận được • Bài toán QHTT luôn có pacscnd? • Không đúng! • Ví dụ: Nếu bài toán QHTT không có phương án chấp nhận được thì rõ ràng nó cũng không có pacscnd! • Tuy nhiên ta có thể chứng minh kết quả sau: • Định lý 1. Nếu bài toán QHTT có pacnđ thì nó cũng có pacscnd Tính toán khoa học
  • 58. 3. Công thức số gia hàm mục tiêu Tính toán khoa học
  • 59. Công thức số gia hàm mục tiêu • Giả sử x là pacscnd với cơ sở tương ứng là B=(Aj: jJB). Ký hiệu: JB={j1,j2, ..., jm} – tập chỉ số biến cơ sở; JN=J JB – tập chỉ số biến phi cơ sở; B=(Aj: jJB) – ma trận cơ sở; N=(Aj: jJN) – ma trận phi cơ sở; xB = x(JB) = {xj: jJB}, xN = x(JN) = {xj: jJN} – vectơ biến cơ sở và phi cơ sở; cB = c(JB) = {cj: jJB}, cN = c(JN) = {cj: jJN} – vectơ hệ số hàm mục tiêu của biến cơ sở và phi cơ sở; Tính toán khoa học
  • 60. Công thức số gia hàm mục tiêu • Xét pacnd z=x+x, trong đó x = (x1, x2,..., xn) – vectơ gia số của biến số. Ta tìm công thức tính số gia của hàm mục tiêu: f = cTz – cTx = cTx. • Do x, z đều là pacnd nên Ax=b và Az=b.Vì vậy gia số x phải thoả mãn điều kiện Ax = 0, hay là: BxB + NxN = 0, trong đó xB = (xj: jJB), xN = (xj: jJN). Tính toán khoa học
  • 61. Công thức số gia hàm mục tiêu • Suy ra xB= – B-1NxN . (1.10) • Từ đó ta có cTx = cTBxB+ cTNxN= – (cTBB-1N – cTN) xN . • Ký hiệu: u = cTBB-1 – vectơ thế vị N= (j: jJN) = uN- cTN – vectơ ước lượng. ta thu được công thức: f = cTz – cTx =  NxN =   j xj jJN • Công thức thu được gọi là công thức số gia hàm mục tiêu Tính toán khoa học
  • 62. Tiêu chuẩn tối ưu Tính toán khoa học
  • 63. Tiêu chuẩn tối ưu • Định nghĩa. Pacscnd x được gọi là không thoái hoá nếu như tất cả các thành phần cơ sở của nó là khác 0. Bài toán QHTT được gọi là không thoái hoá nếu như tất cả các pacscnd của nó là không thoái hoá. • Định lý 2. (Tiêu chuẩn tối ưu) Bất đẳng thức N  0 (j  0, j JN) (1.13) là điều kiện đủ và trong trường hợp không thoái hoá cũng là điều kiện cần để pacscnd x là tối ưu. Tính toán khoa học
  • 64. Tiêu chuẩn tối ưu Tính toán khoa học
  • 65. Tiêu chuẩn tối ưu Tính toán khoa học
  • 66. Tiêu chuẩn tối ưu Tính toán khoa học
  • 67. Điều kiện đủ để hàm mục tiêu không bị chặn dưới Tính toán khoa học
  • 68. 4. THUẬT TOÁN ĐƠN HÌNH dạng ma trận nghịch đảo Tính toán khoa học
  • 69. Bước lặp đơn hình • Ta tiếp tục phân tích pacscnđ x với cơ sở tương ứng B. Xét trường hợp khi tiêu chuẩn tối ưu và cả điều kiện đủ để hàm mục tiêu không bị chặn dưới không được thực hiện. Khi đó phải tìm được chỉ số j0 sao cho jo>0. • Từ phần chứng minh điều kiện cần của tiêu chuẩn tối ưu ta thấy rằng có thể xây dựng được phương án chấp nhận được x với giá trị hàm mục tiêu nhỏ hơn. Ta nhắc lại công thức xây dựng x :  x = x + x, trong đó vectơ gia số x được xác định như sau xjo =  , xj = 0, j ≠ j0 , j JN, xB = - B-1Ajo Tính toán khoa học
  • 70. Bước lặp đơn hình • Khi đó ta thu được  xN= xN,  xB= xB - B-1Ajo , và giá trị hàm mục tiêu tạix sẽ là c x  cx  Δj0 • Rõ ràng:  càng lớn thì giá trị hàm mục tiêu giảm được càng nhiều. Ta quan tâm đến giá trị  lớn nhất có thể được. Do  cần chọn sao chox là phương án chấp nhận được nên nó phải thoả mãn hệ bất phương trình tuyến tính sau:  xB= xB - B-1Ajo  0,   0. • Ký hiệu B-1Ajo = {xi,jo: i JB}, ta viết lại hệ bất phương trình trên dưới dạng xi –  xi,jo  0, iJB,   0. Tính toán khoa học
  • 71. Bước lặp đơn hình • Ký hiệu  xi / xij0 , khi xij0  0  i   , i  JB khi xij0  0 ,  0  i0  xi0 / xi0 j0  min { i : i  J B } • Ta có nghiệm của hệ bất phương trình là 0    0 . • Từ đó suy ra giá trị  lớn nhất có thể chọn là 0. Khi đó nếu thay x bởi phương án x ( 0) = x +x, trong đó vectơ gia số được xây dựng với  =0, giá trị hàm mục tiêu giảm đi được một lượng là io jo > 0. Tính toán khoa học
  • 72. Thuật toán đơn hình dạng ma trận nghịch đảo • Trong các tính toán của một bước lặp đơn hình, ma trận B-1 giữ một vai trò quan trọng. Thuật toán dưới đây sẽ được mô tả trong ngôn ngữ của ma trận nghịch đảo B-1. • Bước khởi tạo. Tìm một pacscnd x với cơ sở tương ứng là B. Tính B-1. Tính toán khoa học
  • 73. Thuật toán đơn hình dạng ma trận nghịch đảo Tính toán khoa học
  • 74. Thuật toán đơn hình dạng ma trận nghịch đảo Tính toán khoa học
  • 75. 5. Thuật toán đơn hình dạng bảng Tính toán khoa học
  • 76. Thuật toán đơn hình dạng bảng • Để thuận tiện cho những tính toán bằng tay ta sẽ mô tả một dạng khác của thuật toán đơn hình đó là thuật toán đơn hình dạng bảng. • Giả sử ta có pacscnd x với cơ sở tương ứng là B. Các ký hiệu vẫn giữ nguyên như trước. • Ta gọi bảng đơn hình tương ứng với pacscnd x là bảng sau đây Tính toán khoa học
  • 77. Bảng đơn hình cj cơ sở Cơ sở Phương án c1 ... A1 ... cj Aj ... ... cn  An cj1 Aj1 xj1 xj1 j j1 ... ... ... ... ... ci Ai xi xi j i ... ... ... ... ... cjm Ajm xjm xjm j jm  1 ... j Tính toán khoa học ... n
  • 78. Bảng đơn hình • Cột đầu tiên ghi hệ số hàm mục tiêu của các biến cơ sở. • Cột thứ hai dành để ghi tên của các cột cơ sở. • Cột thứ ba ghi các giá trị của các biến cơ sở (các thành phần của vectơ xB = {xj : jJB} = B1b). • Các phần tử xij, iJB trong các cột tiếp theo được tính theo công thức: {xij , iJB} = B1Aj , j=1,2,...,n. • Cột cuối cùng để ghi các tỷ số i.. • Dòng đầu tiên của bảng ghi hệ số hàm mục tiêu của các biến (cj). • Dòng tiếp theo ghi tên của các cột A1,..., An. • Dòng cuối cùng gọi là dòng ước lượng: j =  ci xij – cj , j=1,2,...,n. iJB • Có thể thấy rằng j= 0, jJB . Tính toán khoa học
  • 79. Thuật toán đơn hình dạng bảng Tính toán khoa học
  • 80. Tìm cột xoay cj cơ sở Cơ sở Phương án c1 ... A1 ... cj0 ... Aj0 ... cn  An cj1 Aj1 xj1 xj1 j0 j 1 ... ... ... ... ... ci Ai xi xi j0 i ... ... ... ... ... cjm Ajm xjm xjm j0 jm  1 ... j0 Tính toán khoa học ... n
  • 81. Thuật toán đơn hình dạng bảng Tính toán khoa học
  • 82. Tìm dòng xoay cj cơ sở Cơ sở Phương án c1 ... A1 ... cj0 ... Aj0 ... cn  An cj1 Aj1 xj1 xj1 j0 j 1 ... ... ... ... ... ci0 Ai0 xi0 xi0 j0 i0 ... ... ... ... ... cjm Ajm xjm xjm j0 jm  1 ... j0 Tính toán khoa học ... n
  • 83. Phép biến đổi đơn hình Tính toán khoa học
  • 84. Thuật toán đơn hình dạng bảng Tính toán khoa học
  • 85. Qui tắc hình chữ nhật cj cơ sở Cơ sở Phương án Aj1 xj1 ... ... Ai0 xi0 ... ... ... cjm Ajm xjm ... ... ci0 ... A1 cj1 c1  xj11 cj0 ... Aj0 ... xj1 j0 cn An xj1n ... xi01 xi0n ... 1 j0 Tính toán khoa học i0 ... xjm j0 ... j 1 ... xi0 j0 xjm1  xjm n ... n jm
  • 86. Ví dụ Tính toán khoa học
  • 89. Biến đổi bảng đơn hình cj cơ sở Cơ sở 1 A4 1 A1 1 Phương án A5 1 -6 32 1 1 10 100  A1 2/3 A2 A3 A4 A5 A6 A7 1 1/3 -4/3 0 0 2/3 1/3 2  Biến đổi bảng: Các phần tử trên dòng xoay ở bảng mới = Các phần tử tương ứng trong bảng cũ chia cho phần tử xoay. Tính toán khoa học
  • 90. Biến đổi bảng đơn hình cj cơ sở Cơ sở 1 A4 1 A1 1 Phương án A5 1 -6 32 1 1 10 100  A1 2/3 A2 A3 A4 A5 A6 A7 1 1/3 -4/3 0 0 2/3 1/3  Biến đổi bảng: Các phần tử trên các cột cơ sở là các vectơ đơn vị. Tính toán khoa học 2
  • 91. Biến đổi bảng đơn hình cj cơ sở Cơ sở 1 A4 1 A1 1 A5  Phương án 1 -6 32 1 10 100  A1 A2 A3 A4 A5 1 0 0 0 0 0 1 0 0 0 0 2/3 1 1 1/3 -4/3 A6 A7 2/3 1/3 Biến đổi bảng: Các phần tử trên các cột cơ sở là các vectơ đơn vị. Tính toán khoa học
  • 92. Bảng đơn hình ở bước 2 cj cơ sở Cơ sở 1 A4 1 1 Phương án 1 -6 32 1 1 10 100  A1 A2 A3 A4 A5 A6 A7 25/3 0 -1/3 4/3 1 0 16/3 -1/3 - A1 2/3 1 1/3 -4/3 0 0 2/3 1/3 2 A5 16/3 0 5/3 4/3 0 1 4/3 -1/3 16/5 0 23/3 -92/3 0 0 -8/3 -301/3  Biến đổi bảng: Các phần tử còn lại tính theo qui tắc hình chữ nhật. Tính toán khoa học
  • 93. Bảng đơn hình ở bước 3 cj cơ sở Cơ sở 1 A4 -6 1 Phương án 1 -6 32 1 1 10 100  A1 A2 A3 A4 A5 A6 A7 9 1 0 0 1 0 6 0 A2 2 3 1 -4 0 0 2 1 A5 2 -5 0 8 0 1 -2 -2 -23 0 0 0 0 -18 -108  Tiêu chuẩn tối ưu được thoả mãn. Thuật toán kết thúc. Phương án tối ưu: x* = (0, 2, 0, 9, 2, 0, 0). Giá trị tối ưu: f* = -1 Tính toán khoa học
  • 94. 6. TÍNH HỮU HẠN CỦA THUẬT TOÁN ĐƠN HÌNH Tính toán khoa học
  • 95. Tính hữu hạn của thuật toán đơn hình Tính toán khoa học
  • 96. Tính hữu hạn của thuật toán đơn hình Tính toán khoa học
  • 97. 7. THUẬT TOÁN ĐƠN HÌNH HAI PHA Tính toán khoa học
  • 98. Thuật toán đơn hình hai pha Tính toán khoa học
  • 99. Bài toán phụ • Bài toán xuất phát n n j 1 j 1 min{ c j x j : aij x j  bi , i  1, 2,..., m, x j  0, j  1, 2,..., n} (1.25) • Không giảm tổng quát ta giả thiết là bi  0, i = 1, 2, ..., m, (1.26) bởi vì: nếu có bi < 0 thì chỉ cần nhân hai vế phương trình tương ứng với -1. • Theo các thông số của bài toán đã cho ta xây dựng bài toán phụ sau đây m x i 1  min, n i n a x j 1 ij j  xn i  bi , i  1, 2,..., m, x j  0, j  1, 2,..., n, n  1,..., n  m. • Vectơ xu = (xn+1, xn+2, ..., xn+m) được gọi là vectơ biến giả. Tính toán khoa học (1.27)
  • 100. Bài toán phụ Tính toán khoa học
  • 101. Pha thứ 1: Giải bài toán phụ • Đối với bài toán phụ ta có ngay một pacscnđ là (x=0, xu=b) với cơ sở tương ứng là B = {An+1, An+2 ,... , An+m} = Em trong đó An+i là vectơ cột tương ứng với biến giả xn+i, i=1, 2, ..., m. • Vì vậy ta có thể áp dụng thuật toán đơn hình để giải bài toán phụ. Việc giải bài toán phụ bằng thuật toán đơn hình được gọi là pha thứ nhất của thuật toán đơn hình hai pha giải bài toán qui hoạch tuyến tính dạng chính tắc (1.25), và bài toán phụ còn được gọi là bài toán ở pha thứ nhất Tính toán khoa học
  • 102. Pha thứ 1: Giải bài toán phụ Tính toán khoa học
  • 103. Pha thứ 1: Giải bài toán phụ Tính toán khoa học
  • 104. Bảng đơn hình cj cơ sở Cơ sở Phương án c*1 ... c*j ... c*n+m A1 ... Aj ... An+m ... n+m c*j(1) Aj(1) xj(1) xj(1)j ... ... ... ... c*i* Ai* xi* xi*j ... ... ... ... c*j(m) Aj(m) xj(m) xj(m)j  1 ... j Tính toán khoa học 
  • 105. Pha thứ 1: Giải bài toán phụ Tính toán khoa học
  • 106. Thuật toán đơn hình hai pha • Lần lượt điểm diện tất cả các thành phần biến giả trong cơ sở theo thủ tục vừa làm đối với xi* ta sẽ đi đến bảng đơn hình mới mà trong đó không còn thành phần biến giả trong cơ sở, tức là đến được trường hợp ii), đồng thời trong quá trình này ta cũng loại bỏ được tất cả các ràng buộc phụ thuộc tuyến tính trong hệ Ax=b. • Từ bảng thu được ta có thể bắt đầu thực hiện pha thứ hai của thuật toán đơn hình hai pha. Tính toán khoa học
  • 107. Thuật toán đơn hình hai pha • Như vậy thuật toán đơn hình hai pha áp dụng đối với một QHTT bất kỳ chỉ có thể kết thúc ở một trong ba tình huống sau đây: 1) Bài toán không có pacnd. 2) Bài toán có hàm mục tiêu không bị chặn. 3) Tìm được phương án cơ sở tối ưu cho bài toán. • Đồng thời trong quá trình thực hiện thuật toán ta cũng phát hiện và loại bỏ được tất cả các ràng buộc phụ thuộc tuyến tính trong hệ ràng buộc cơ bản Ax=b. Tính toán khoa học
  • 108. Một số kết quả lý thuyết • Định lý 1. Hễ bài toán QHTT có pacnđ thì nó cũng có pacscnđ. • Chứng minh. Áp dụng thuật toán đơn hình hai pha đối với bài toán đặt ra, kết thúc pha thứ nhất ta thu được phương án cơ sở chấp nhận được cho bài toán. Tính toán khoa học
  • 109. Một số kết quả lý thuyết • Định lý 1.6. Nếu bài toán QHTT có phương án tối ưu thì nó cũng có phương án cơ sở tối ưu. • Chứng minh. Giả sử bài toán có phương án tối ưu. Khi đó, thuật toán đơn hình hai pha áp dụng để giải bài toán đặt ra chỉ có thể kết thúc ở tình huống 3), tức là thu được phương án cơ sở tối ưu cho nó. Tính toán khoa học
  • 110. Một số kết quả lý thuyết • Định lý 1.7. Điều kiện cần và đủ để bài toán QHTT có phương án tối ưu là hàm mục tiêu của nó bị chặn dưới trên miền ràng buộc khác rỗng. • Chứng minh. • Điều kiện cần. Giả sử x* là phương án tối ưu của bài toán. Khi đó, f(x)  f(x*), xD, tức là hàm mục tiêu bị chặn dưới. • Điều kiện đủ. Nếu bài toán có hàm mục tiêu bị chặn dưới trên miền ràng buộc khác rỗng, thì áp dụng thuật toán đơn hình hai pha để giải nó ta chỉ có thể kết thúc ở tình huống 3), tức là tìm được phương án cơ sở tối ưu cho nó. Tính toán khoa học
  • 111. Ví dụ Tính toán khoa học
  • 112. Ví dụ Tính toán khoa học
  • 113. Ví dụ: Pha thứ nhất 0 Tính toán khoa học
  • 117. Ví dụ: Pha thứ hai Tính toán khoa học
  • 118. Kết quả • Phương án tối ưu: x* = (0, 2, 0, 3, 0); • Giá trị tối ưu: f* = 2. Tính toán khoa học
  • 119. Phương pháp đánh thuế (M - phương pháp) • Đây là phương pháp đơn hình mở rộng • Trong thuật toán đơn hình 2 pha ta phải áp dụng thuật toán đơn hình 2 lần: – Lần thứ nhất giải bài toán ở pha 1 để tìm pacscnđ xuất phát. – Lần thứ hai ở pha 2 để tìm phương án tối ưu cho bài toán đặt ra. • Có thể kết hợp 2 pha này lại và chỉ cần áp dụng thuật toán đơn hình một lần. • Có nhiều cách kết hợp khác nhau và M – phương pháp là một trong các cách kết hợp đó. Tính toán khoa học
  • 120. Phương pháp đánh thuế • Xét bài toán QHTT dạng chính tắc (1.25), giả thiết rằng (1.26) đúng. Xây dựng bài toán bổ trợ - bài toán M sau: n m c x j 1 j j n a x j 1 ij j  M  xn i  min i 1  xn i  bi , i  1, 2, ..., m, (1.28) x j  0, j 1, 2, ..., n  m, với M là một số dương vô cùng lớn. Các biến xni , i  1, 2, ..., m gọi là biến giả, ký hiệu xu là vector biến giả. Tính toán khoa học
  • 121. Phương pháp đánh thuế • Áp dụng thuật toán đơn hình cho (1.28), bắt đầu từ pacscnđ ( x j  0, j  1, n ; xni  bi , i  1, m) với cơ sở tương ứng là ma trận đơn vị cấp m. • Ta viết ∆j dưới dạng  j   j   j M • Trong bảng đơn hình ta dòng ước lượng chia làm 2 dòng: một dòng chứa  j và một dòng chứa  j • Để xét dấu của ∆j và so sánh chúng với nhau ta sử dụng quy tắc sau: Tính toán khoa học
  • 122. Phương pháp đánh thuế  j  0 nÕu hoÆc lµ  j  0 cßn  j tïy ý, hoÆc lµ  j  0 vµ  j  0  p   q nÕu hoÆc lµ  p   q cßn  p ,  q tïy ý, hoÆc  p   q vµ  p   q Kết thúc thuật toán giải bài toán (1.28) ta đi đến 1 trong các khả năng sau: (i) Thu được một phương án tối ưu (x*, xu*) với xu* = 0. Khi đó rõ ràng x* là pa tối ưu của bài toán xuất phát 1.25. Tính toán khoa học
  • 123. Phương pháp đánh thuế (ii) Thu được một phương án tối ưu (x*, xu*) với xu* ≠ 0. Khi đó dễ dàng thấy bài toán xuất phát không có pacnđ. (iii) Phát hiện điều kiện đủ để hàm mục tiêu không bị chặn dưới. Khi đó nếu bài toán xuất phát có pacnd thì nó cũng có hàm mục tiêu không bị chặn dưới. Để xác định xem bài toán xuất phát có pacnd hay không cần phải thực hiện pha thứ nhất của thuật toán đơn hình hai pha, tức là coi hệ số hàm mục tiêu của các biến thật xj với j = 1, ...,n bằng 0. Và sau đó chỉ làm việc với các dòng ước lượng thứ hai (dòng chứa các hệ số  j ). Tính toán khoa học
  • 124. Hiệu quả của thuật toán đơn hình • Một điểm yếu của TTĐH là về lý thuyết, nó có thời gian tính hàm mũ. Điều này được Klee-Minty chỉ ra bằng ví dụ sau: n 10n  j x j  max,  j 1 i 1 210i  j x j  xi  100i 1 , i  1, 2,..., n, j 1 x j  0, j  1, 2,..., n • Để giải bài toán này, Thuật toán đơn hình đòi hỏi 2n -1 bước lặp. Tính toán khoa học
  • 125. Hiệu quả của thuật toán đơn hình • Ví dụ Klee-Minty với n=3: 100 x1  10 x2  20 x1  200 x1  20 x2 x2  x3 max 1  x1   x3 100  10000 x1 , x2 , x3  0 • Trên thực tế: Thuật toán đơn hình có thời gian tính O(m3) Tính toán khoa học
  • 126. Thuật toán thời gian tính đa thức giải QHTT Polynomial Algorithms • Ellipsoid. (Khachian 1979, 1980) – đòi hỏi thời gian: O(n4 L). • n = số biến số • L = số bít cần thiết để biểu diễn dữ liệu vào – Đây là kết quả mang tính đột phá về mặt lý thuyết. – Chưa có hiệu quả thực tế. • Karmarkar's algorithm. (Karmarkar 1984) – O(n3.5 L). – Có thời gian đa thức và có thể cài đặt hiệu quả. • Các thuật toán điểm trong (Interior point algorithms). – O(n3 L). – Có thể sánh với thuật toán đơn hình! • Vượt trội so với tt đơn hình khi giải các bài toán kích thước lớn. – Phương pháp này được mở rộng để giải các bài toán tổng quát hơn. Tính toán khoa học
  • 128. Thuật toán hàm rào (Barrier Function Algorithms) Simplex solution path Barrier central path o Predictor o Corrector Tối ưu Interior Point Methods Tính toán khoa học
  • 129. II. LÝ THUYẾT ĐỐI NGẪU Lý thuyết đối ngẫu của QHTT là lĩnh vực nghiên cứu trong đó bài toán QHTT được khảo sát thông qua một bài toán QHTT bổ trợ liên hệ chặt chẽ với nó gọi là bài toán đối ngẫu Tính toán khoa học
  • 130. Nội dung 1. Bài toán đối ngẫu của QHTT tổng quát. 2. Định lý đối ngẫu. 3. Giải qui hoạch tuyến tính trên MATLAB Tính toán khoa học
  • 131. 1. Bài toán đối ngẫu Tính toán khoa học
  • 132. Bài toán QHTT tổng quát • Xét bài toán QHTT tổng quát n f ( x1 , x2 ,..., xn )   c j x j  min, j 1 n a x j 1 ij j  bi , i  1, 2,..., p ( p  m) j  bi , i  p  1, p  2,..., m n a x j 1 ij x j  0, j  1, 2,..., n1 (n1  n) x j  0, j  n1  1, n1  2,..., n Tính toán khoa học
  • 133. Bài toán QHTT tổng quát • Đưa vào các ký hiệu:  a11 a12   a21 a22 A   a  m1 am 2 a1n   a2 n    amn   Tính toán khoa học - ma trận ràng buộc,
  • 134. Bài toán QHTT tổng quát Tính toán khoa học
  • 135. Xây dựng bài toán đối ngẫu • Khi đó bài toán QHTT tổng quát có thể viết lại dưới dạng sau đây f ( x)  c ' x  min, ai x  bi , i  M , ai x  bi , i  M , x j  0, j  N , x j  0, j  N . Tính toán khoa học
  • 136. Bài toán QHTT tổng quát • Biến đổi bài toán QHTT tổng quát về dạng chính tắc bằng cách: – đưa vào các biến phụ xis chuyển ràng buộc dạng bất đẳng thức về dạng đẳng thức, – thay mỗi biến không có điều kiện dấu bởi hiệu hai biến có điều kiện dấu: xj = xj+ – xj –, khi đó mỗi cột Aj sẽ thay bởi hai cột Aj và –Aj , ta thu được bài toán dạng chính tắc sau đây: Tính toán khoa học
  • 137. Xây dựng bài toán đối ngẫu • Bài toán (2.3):  ˆ c x  min,  Ax  b,  x  0, (2.3) trong đó xis : i  M Tính toán khoa học
  • 138. Xây dựng bài toán đối ngẫu Tính toán khoa học
  • 139. Xây dựng bài toán đối ngẫu Tính toán khoa học
  • 140. Xây dựng bài toán đối ngẫu Tính toán khoa học
  • 141. Xây dựng bài toán đối ngẫu • Khi đó vectơ y 0  c B B 1 là phương án chấp nhận được của bài toán đối ngẫu. Nếu bây giờ ta định nghiã hàm mục tiêu của bài toán đối ngẫu là: y’b  max, thì y0 không những là pacnđ mà còn là phương án tối ưu cho bài toán đối ngẫu. • Các kết quả vừa nêu sẽ được phát biểu chính xác trong các định nghĩa và định lý dưới đây. Tính toán khoa học
  • 142. Bài toán đối ngẫu • Định nghĩa. Giả sử cho bài toán QHTT tổng quát (được gọi là bài toán gốc). Khi đó bài toán đối ngẫu của nó là bài toán QHTT sau đây Bài toán gốc (Primal Prob) f ( x)  c ' x  min, Bài toán đối ngẫu (Dual Prob) g ( y )  y ' b  max, ai x  bi , iM, yi  0, ai x  bi , iM, yi  0, x j  0, j  N, yAj  c j , x j  0, jN yAj  c j , Tính toán khoa học
  • 143. 2. Định lý đối ngẫu Tính toán khoa học
  • 144. Định lý đối ngẫu • Trước hết ta chứng minh bổ đề sau: • Bổ đề 2.1 (Định lý đối ngẫu yếu). Giả sử {x, y} là cặp pacnđ của bài toán gốc-đối ngẫu. Khi đó f(x) = c’x  y’b = g(y). (2.8) f ( x)  c ' x  min, g ( y )  y ' b  max, ai x  bi , iM, yi  0, ai x  bi , iM, yi  0, x j  0, j  N, yAj  c j , x j  0, jN yAj  c j , Tính toán khoa học
  • 145. Định lý đối ngẫu Tính toán khoa học
  • 146. Định lý đối ngẫu Tính toán khoa học
  • 147. Định lý đối ngẫu f ( x)  c ' x  min, g ( y )  y ' b  max, ai x  bi , yi  0, ai x  bi , iM, yi  0, x j  0, j  N, yAj  c j , x j  0, Tính toán khoa học iM, jN yAj  c j ,
  • 148. Định lý đối ngẫu • Đối với một bài toán QHTT bất kỳ có thể xảy ra ba khả năng: 1) Bài toán có phương án tối ưu; 2) Bài toán có hàm mục tiêu không bị chặn; 3) Bài toán không có phương án chấp nhận được. • Vì vậy, đối với cặp bài toán QHTT gốc-đối ngẫu có thể xảy ra 9 tình huống mô tả trong bảng 2.1 sau đây: Tính toán khoa học
  • 149. Định lý đối ngẫu Tính toán khoa học
  • 150. Định lý đối ngẫu Tính toán khoa học
  • 151. Định lý đối ngẫu Tính toán khoa học
  • 152. Định lý đối ngẫu Tính toán khoa học
  • 153. Định lý đối ngẫu Tính toán khoa học
  • 154. Định lý về độ lệch bù f ( x)  c ' x  min, g ( y )  y ' b  max, ai x  bi , iM, yi  0, ai x  bi , iM, yi  0, x j  0, j  N, yAj  c j , x j  0, jN yAj  c j , Tính toán khoa học
  • 155. Định lý về độ lệch bù • Định lý 2.4. Cặp phương án chấp nhận được của bài toán gốcđối ngẫu {x, y} là tối ưu khi và chỉ khi thực hiện các điều kiện f ( x)  c ' x  min, g ( y )  y ' b  max, sau đây: axb, iM, y  0, (aix – bi)yi = 0, i = 1,2,...,m; a x  b , i  M , y  0, j  N, yA  c , xj(cj – yAj) = 0, j = 1,2,...,n. x  0, x  0, jN yA  c , • Chứng minh. Đặt ui = (aix – bi)yi , i = 1,2,...,m; vj = xj(cj – yAj) , j = 1,2,...,n. Do {x, y} là cặp pacnđ, nên ui  0, i = 1,2,...,m; vj  0 , j = 1,2,...,n. i i i i i i j j Tính toán khoa học j j j j
  • 156. Định lý về độ lệch bù Đặt Tính toán khoa học
  • 157. Ví dụ • Xét bài toán quy hoạch tuyến tính x1  x 2  x3  x 4  x5  min 3x1  2 x 2  x3 1 5 x1  x 2  x3  x 4 3 2 x1  5 x 2  x3  x5  4 x j  0, j  1, 2, ..., 5 – Có pa tối ưu x* =(0, ½, 0, 5/2, 3/2), giá trị tối ưu f* = 9/2. – Tìm pa tối ưu của bài toán đối ngẫu. Tính toán khoa học
  • 158. Ví dụ • Bài toán đối ngẫu y1  3 y2  4 y 3  max 3 y1  5 y 2  2 y3  1 2 y1  y 2  5 y3  1 y1  y2  y3  1 1 y2 y3  1 y i  0, i  1, 2, 3 – Gọi y* =(y*1, y*2, y*3) là pa tối ưu của bài toán đối ngẫu, khi đó y* phải là pa chấp nhận được và x*, y* thỏa mãn (2.10), (2.11) Tính toán khoa học
  • 159. Hệ quả • Hệ quả. Phương án chấp nhận được x* là phương án tối ưu của bài toán QHTT khi và chỉ khi hệ phương trình và bất phương trình tuyến tính sau đây là có nghiệm: f ( x)  c ' x  min, g ( y )  y ' b  max, (ai x*  bi ) yi  0, i  M , ai x  bi , iM, yi  0, (c j  yAj ) x  0, j  N , ai x  bi , iM, yi  0, x j  0, j  N, yAj  c j , x j  0, jN yAj  c j , * j yi  0, i  M , yAj  c j , j  N , yAj  c j , j  N . Tính toán khoa học
  • 160. Ví dụ • Xét bài toán QHTT • Kiểm tra tính tối ưu của vectơ x* = (0, 0, 16, 31, 14) đối với bài toán QHTT đã cho Tính toán khoa học
  • 161. Ví dụ • Dễ dàng kiểm tra được rằng x* là phương án chấp nhận được của bài toán đã cho: A=[1 -4 2 -5 9; 0 1 -3 4 -5; 0 1 -1 1 -1]; x=[0;0;16;31;14]; A*x ans = 3 6 1 • Theo hệ quả, x* là phương án tối ưu khi và chỉ khi hệ phương trình và bất phương trình sau đây là có nghiệm Tính toán khoa học
  • 162. Ví dụ (y1 +2) x*1 = 0 (– 4y1 + y2 + y3 + 6) x*2 = 0 (2y1 – 3y2 – y3 – 5) x*3 = 0 (–5y1 + 4y2 + y3 + 1) x*4 = 0 (9y1 – 5y2 – y3 + 4) x*5 = 0 y1  –2 – 4y1 + y2 + y3  –6 2y1 – 3y2 – y3  5 –5y1 + 4y2 + y3  –1 9y1 – 5y2 – y3  –4 Bài toán đối ngẫu 3y1 + 6y2 + y3  min x* 1 = 0 y1  –2 x* 2 = 0 – 4y1 + y2 + y3  –6 x*3 = 16 2y1 – 3y2 – y3  5 x*4 = 31 x* 5 = 14 Tính toán khoa học –5y1 + 4y2 + y3  –1 9y1 – 5y2 – y3  –4
  • 163. Ví dụ • Hệ cuối cùng là tương đương với hệ sau: y1  –2 – 4y1 + y2 + y3  –6 2y1 – 3y2 – y3 = 5 –5y1 + 4y2 + y3 = –1 9y1 – 5y2 – y3 = –4 • Hệ ba phương trình cuối cùng có nghiệm duy nhất y* = (-1, 1, -10). (A=[2 -3 -1;-5 4 1; 9 -5 -1]; b=[5;-1;-4]; y=Ab) • Dễ dàng kiểm tra được rằng y* thoả mãn hai bất phương trình đầu. Do đó y* là nghiệm của hệ phương trình và bất phương trình ở trên. Theo hệ quả, điều đó chứng tỏ x* là phương án tối ưu của bài toán QHTT đặt ra. Tính toán khoa học
  • 164. 3.Giải qui hoạch tuyến tính trên MATLAB Tính toán khoa học
  • 165. Hàm LINPROG • MATLAB cung cấp hàm linprog để giải bài toán QHTT. • Dưới đây là một số cách sử dụng hàm này – X=LINPROG(f,A,b) – X=LINPROG(f,A,b,Aeq,beq) – X=LINPROG(f,A,b,Aeq,beq,LB,UB) – X=LINPROG(f,A,b,Aeq,beq,LB,UB,X0) – X=LINPROG(f,A,b,Aeq,beq,LB,UB,X0,OPTIONS) – [X,FVAL]=LINPROG(...) – [X,FVAL,EXITFLAG] = LINPROG(...) – [X,FVAL,EXITFLAG,OUTPUT] = LINPROG(...) – [X,FVAL,EXITFLAG,OUTPUT,LAMBDA]=LINPROG(...) Tính toán khoa học
  • 166. Hàm LINPROG • Lệnh X=LINPROG(f,A,b) giải bài toán QHTT: min { f 'x : A x <= b } • Lệnh X=LINPROG(f,A,b,Aeq,beq) giải bài toán có thêm ràng buộc cơ bản dạng đẳng thức Aeq*x = beq. • Lệnh X=LINPROG(f,A,b,Aeq,beq,LB,UB) xác định cận dưới và cận trên cho các biến số LB <= X <= UB. – Gán Aeq=[] (A=[]) và beq=[] (b=[]) nếu không có ràng buộc này – Gán LB và UB là ma trận rỗng ([]) nếu không có các cận này. – Gán LB(i)=-Inf nếu X(i) không bị chặn dưới và gán UB(i)=Inf nếu X(i) không bị chặn trên. Tính toán khoa học
  • 167. Hàm LINPROG • Lệnh X=LINPROG(f,A,b,Aeq,beq,LB,UB,X0) để xác định thêm phương án xuất phát X0. – Chú ý: Lựa chọn này chỉ được chấp nhận nếu sử dụng thuật toán tập tích cực. Phương pháp ngầm định để giải là thuật toán điểm trong sẽ không chấp nhận điểm xuất phát. • Lệnh X=LINPROG(f,A,b,Aeq,beq,LB,UB,X0,OPTIONS) thực hiện giải với các thông số tối ưu được xác định bởi biến có cấu trúc OPTIONS,được tạo bởi hàm OPTIMSET. – Gán option=optimset('LargeScale','off', 'Simplex','on') để chọn thuật toán đơn hình để giải bài toán. – Hãy gõ help OPTIMSET để biết chi tiết. Tính toán khoa học
  • 168. Hàm LINPROG • Lệnh [ X,FVAL]=LINPROG(...) trả lại thêm giá trị hàm mục tiêu tại phương án X: FVAL = f'*X. • Lệnh [X,FVAL,EXITFLAG]=LINPROG(...) trả lại EXITFLAG mô tả điều kiện kết thúc của LINPROG. Các giá trị của EXITFLAG có ý nghĩa sau – – – – – 1 0 -2 -3 -4 LINPROG hội tụ đến lời giải X. Đạt đến giới hạn số bước lặp. Không tìm được pacnd. Bài toán có hàm mục tiêu không bị chặn. giá trị NaN xuất hiện trong quá trình thực hiện thuật toán. – – -5 Cả hai bài toán gốc và đối ngẫu đều không tương thích. -7 Hướng tìm kiếm quá nhỏ, không thể cải thiện được nữa. Tính toán khoa học
  • 169. Hàm LINPROG • Lệnh [X,FVAL,EXITFLAG,OUTPUT] = LINPROG(...) trả lại biến cấu trúc OUTPUT với – OUTPUT.iterations - số bước lặp phải thực hiện – OUTPUT.algorithm - thuật toán được sử dụng – OUTPUT.message – thông báo • Lệnh [X,FVAL,EXITFLAG,OUTPUT,LAMBDA]=LINPROG(...) trả lại nhân tử Lagrangian LAMBDA , tương ứng với lời giải tối ưu: – LAMBDA.ineqlin – tương ứng với ràng buộc bất đẳng thứcA, – LAMBDA.eqlin – tương ứng với ràng buộc đẳng thức Aeq, – LAMBDA.lower – tương ứng với LB, – LAMBDA.upper – tương ứng với UB. Tính toán khoa học
  • 170. Ví dụ • Giải bài toán qui hoạch tuyến tính: 2x1 + x2 + 3x3  min x1 + x2 + x3 + x4 + x5 = 5 x1 + x2 + 2x3 + 2x4 + 2x5 = 8 x1 + x2 =2 x3 + x4 + x5 = 3 x1, x2, x3 , x4 , x5 0 • f=[2 1 3 0 0]; beq=[5; 8; 2; 3]; • Aeq=[1 1 1 1 1; 1 1 2 2 2;1 1 0 0 0;0 0 1 1 1]; • A=[]; b=[]; LB=[0 0 0 0 0]; UB=[];X0=[]; • [X,FVAL,EXITFLAG,OUTPUT,LAMBDA]=linprog(f,A,b,Aeq, beq,LB,UB,X0) Tính toán khoa học
  • 171. Kết quả • OUTPUT = • X = 0.0000 iterations: 5 2.0000 algorithm: 'large-scale: interior point' 0.0000 1.5000 1.5000 • FVAL = cgiterations: 0 message: 'Optimization terminated.' • LAMBDA = ineqlin: [0x1 double] eqlin: [4x1 double] 2.0000 • EXITFLAG = upper: [5x1 double] lower: [5x1 double] 1 Tính toán khoa học
  • 172. Ví dụ • Sử dụng thuật toán đơn hình: opt=optimset('LargeScale','off','Simplex','on') [X,FVAL,EXITFLAG,OUTPUT]=LINPROG(f,A,b,Aeq,beq,LB,UB,X0,opt) ta thu được kết quả: • X = [0 2 0 3 0] • FVAL = 2 • EXITFLAG = 1 • OUTPUT = iterations: 1 algorithm: 'medium scale: simplex' cgiterations: [] message: 'Optimization terminated.' Tính toán khoa học