Phương án cực biên tối ưu: Nếu phương án cực biên là phương án tối ưu của bài toán I thì được gọi là phương án cực biên tối ưu của bài toán I.. Định lý: Nếu bài toán I có phương án thì s
Trang 1ĐẠI HỌC THÁI NGUYÊN
KHOA CÔNG NGHỆ THÔNG TIN
-o0o -
Bài giảng môn
TỐI ƯU HÓA
THÂN QUANG KHOÁT
Trang 2MỤC LỤC
Chương 1 MỞ ĐẦU 3
§1 ĐỐI TƯỢNG NGHIÊN CỨU 3
1.1 Bài toán tối ưu tổng quát 3
1.2 Phân loại bài toán 3
1.3 Một số mô hình thực tế 4
§2 BÀI TOÁN QUY HOẠCH TUYẾN TÍNH 6
2.1 Dạng tổng quát 6
2.2 Dạng chuẩn tắc 7
2.3 Dạng chính tắc 7
§3 MỘT SỐ KIẾN THỨC BỔ TRỢ 9
3.1 Tập hợp lồi và điểm cực biên 9
3.2 Đa diện lồi (polytope) 10
§4 CẤU TRÚC MIỀN RÀNG BUỘC CỦA BÀI TOÁN 11
QUY HOẠCH TUYẾN TÍNH 11
4.1 Phương án cực biên và phương án cực biên tối ưu 11
4.2 Điều kiện cần và đủ để một phương án là cực biên 13
4.3 Cơ sở của một phương án cực biên 15
Chương 2 THUẬT TOÁN ĐƠN HÌNH 17
§1 MỞ ĐẦU 17
1.1 Bài toán 17
1.2 Phương pháp Hình Học 17
§2 THUẬT TOÁN ĐƠN HÌNH 19
2.1 Tư tưởng của thuật toán đơn hình 19
2.2 Công thức số gia hàm mục tiêu - dấu hiệu tối ưu 20
2.3 Tìm phương án cực biên tốt hơn - Công thức đổi cơ sở 21
2.4 Thuật toán đơn hình (Simplex method) 23
2.5 Bảng đơn hình 24
§3 TÍNH HỮU HẠN CỦA THUẬT TOÁN ĐƠN HÌNH 28
3.1 Trường hợp bài toán không suy biến 28
3.2 Trường hợp bài toán suy biến 28
§4 PHƯƠNG PHÁP HAI PHA 31
4.1 Vấn đề 31
4.2 Phương pháp hai pha giải bài toán QHTT 32
Trang 34.3 Một số ví dụ 34
§5 PHƯƠNG PHÁP ĐÁNH THUẾ 36
§6 BÀI TOÁN QUY HOẠCH TUYẾN TÍNH ĐỐI NGẪU 41
6.1 Bài toán đối ngẫu 41
6.2 Các định lý đối ngẫu 42
6.3 Một số ứng dụng của lý thuyết đối ngẫu 44
6.4 Thuật toán đơn hình đối ngẫu 46
Chương 3 TỐI ƯU HOÁ RỜI RẠC 56
§1 BÀI TOÁN TỐI ƯU HOÁ RỜI RẠC 56
1.1 Mở đầu 56
1.2 Một số bài toán tối ưu hoá rời rạc tiêu biểu 56
§2 PHƯƠNG PHÁP CẮT GOMORY GIẢI BÀI TOÁN QHTT NGUYÊN 58
2.1 Tư tưởng chung của phương pháp cắt 58
2.2 Phương pháp cắt Gomory cho bài toán QHTT nguyên hoàn toàn 59
2.3 Phương pháp cắt Gomory cho bài toán QHTT nguyên bộ phận 64
§3 PHƯƠNG PHÁP NHÁNH CẬN 65
3.1 Sơ đồ tổng quát 65
3.2 Thuật toán nhánh cận Land-Doig giải bài toán QHTT nguyên 66
3.3 Một số ví dụ 68
§4 BÀI TOÁN CÁI TÚI 72
4.1 Đưa bài toán QHTT Nguyên về bài toán cái túi 72
4.2 Phương pháp Quy hoạch động giải bài toán cái túi 74
Tài liệu tham khảo 77
Trang 4Chương 1 MỞ ĐẦU
Đ1 ĐỐI TƯỢNG NGHIấN CỨU
1.1 Bài toỏn tối ưu tổng quỏt
Bài toỏn tối ưu tổng quỏt cú dạng như sau:
D được gọi là miền ràng buộc (hay miền chấp nhận được) Mỗi một vectơ
được gọi là một phương ỏn của bài toỏn (hay lời giải chấp nhận được)
(đối với bài toán tìm Max)
*
*
( ) ( ) ,( ) ( ) ,
f x f x x D
f x f x x D
khi đú giỏ trị f x( )* được gọi là giỏ trị tối ưu
1.2 Phõn loại bài toỏn
Chỳng ta thấy rằng, một cỏch hiển nhiờn nhất để giải bài toỏn đặt ra là: Tớnh giỏ trị của hàm f x( ) trờn tất cả cỏc phương ỏn của miền ràng buộc sau đú so sỏnh cỏc giỏ trị của hàm mục tiờu thu được để tỡm ra phương ỏn tối ưu Tuy
Trang 5nhiên cách làm này là rất khó hoặc đúng hơn là không thể làm được trong trường hợp tổng quát (chẳng hạn tập là không đếm được) Vì vậy chúng ta phải phân tách nhỏ ra bằng cách thêm một số điều kiện nào đó để được các bài toán “dễ giải” Người ta đã phân ra một số loại bài toán như sau:
D
+ Quy hoạch tuyến tính
+ Quy hoạch lồi
+ Quy hoạch phi tuyến
+ Quy hoạch toàn phương
+ Quy hoạch rời rạc
+ Quy hoạch nguyên
1.3 Một số mô hình thực tế
Ta sẽ xem xét một số bài toán trong thực tế đưa đến bài toán tối ưu hoá và
mô mình toán học tương ứng của nó
1.3.1 Bài toán lập kế hoạch sản xuất cho một nhà máy
Một nhà máy có khả năng sản xuất loại sản phẩm Để sản xuất loại
sản phẩm này thì cần m loại nguyên liệu Biết:
Trang 6Tổng lợi nhuận thu được theo kế hoạch sản xuất x sẽ là Như vậy yêu cầu của bài toán này đưa về mô hình toán học như sau:
ij j i j
Mô hình thu được chính là một bài toán quy hoạch tuyến tính
1.3.2 Bài toán cái túi
Một nhà thám hiểm cần đem theo một cái túi có trọng lượng không quá b
Có loại đồ vật có thể đem theo Đồ vật thứ có trọng lượng là và giá trị
sử dụng là
( 1,
j
c j= n) Hỏi rằng nhà thám hiểm cần lấy các loại đồ vật nào và
số lượng bao nhiêu để cho tổng giá trị sử dụng của các đồ vật mang theo là nhiều nhất ?
Gọi x j j ( =1,n) là số lượng đồ vật loại mà nhà thám hiểm sẽ đem theo
Khi đó tổng giá trị của các đồ vật đó là , tổng trọng lượng của chúng là
Từ giả thiết ta có Như vậy yêu cầu của bài toán sẽ đưa
về việc giải bài toán sau:
max
n
j j j n
j j j j
Đây lại là một bài toán quy hoạch tuyến tính Nguyên
1.3.3 Bài toán vận tải
Có m kho hàng cùng chứa một loại hàng hoá, lượng hàng có ở kho thứ i là ( 1,m)
i
a i = Có n địa điểm tiêu thụ loại hàng nói trên, với nhu cầu tiêu thụ ở
điểm là j b j j ( =1,n) Biết là cước phí vận chuyển một đơn vị hàng hoá từ kho thứ đến điểm tiêu thụ thứ Hãy lập kế hoạch vận chuyển hàng hoá từ các kho đến các điểm tiêu thụ sao cho tổng chi phí vận chuyển là nhỏ nhất
ij c
Ký hiệu x ij là lượng vận chuyển từ kho i đến điểm tiêu thụ thứ , khi đó: j
Trang 7∑ là lượng hàng vận chuyển đến điểm tiêu thụ thứ j
khi đó bài toán lập kế hoạch trên có thể đưa về mô hình toán học như sau:
1 1 1 1
m n
ij ij
i j n
ij i j
n
ij j j
Đây chính là một bài toán Quy hoạch tuyến tính
§2 BÀI TOÁN QUY HOẠCH TUYẾN TÍNH 2.1 Dạng tổng quát
Tìm véctơ ( , , ,1 2 )t sao cho:
1
2 1
n
pj j p j
n
kj j k j
j j j
Dễ thấy rằng:
1) f x( )→min ⇔ −f x( )→max
Trang 8các biến x n i+ được gọi là các biến bù
6) Một biến không ràng buộc về dấu (tự do) có thể được thay bằng hiệu hai biến không âm:
j x
ij j i j
t
Ax b x
Trang 9ij j i j
t
Ax b x
Trang 10§3 MỘT SỐ KIẾN THỨC BỔ TRỢ 3.1 Tập hợp lồi và điểm cực biên
3.1.1 Tập hợp lồi (convex set)
Đoạn thẳng: cho hai điểm khi đó đoạn thẳng nối hai điểm đó là tập hợp điểm có dạng
a b ∈ℜ
[ ]
{x∈ℜn x=λ a+ −(1 λ) ,b λ∈ 0,1} Nếu thì ta sẽ có đường thẳng đi qua hai điểm
λ∈ℜ,
a b Tập lồi: Tập được gọi là tập lồi nếu lấy hai điểm bất kỳ thì đoạn thẳng nối hai điểm này thuộc hoàn toàn trong C
i i
i=c x β}
H x là các tập lồi trong ℜn
Bổ đề: Giao của các tập lồi cũng là một tập lồi
3.1.2 Điểm cực biên (vertex)
Điểm cực biên: điểm thuộc tập lồi C được gọi là điểm cực biên của C nếu nó không là điểm trong của bất kỳ đoạn thẳng nào nối hai điểm khác nhau thuộc C Tức là,
Ví dụ: C là đa giác lồi trong ℜ thì các đỉnh của nó chính là các điểm cực biên,
các điểm khác đều không là điểm cực biên Tất cả các điểm trên đường tròn là
2
Trang 11điểm cực biên của hình tròn đó
3.2 Đa diện lồi (polytope)
3.2.1 Tổ hợp lồi (convex combinatorial)
Định nghĩa: Một tổ hợp lồi của các điểm x i∈ℜn (i=1,m là điểm )
Định lý: Tập C là tập lồi khi và chỉ khi i , 0 ( 1, )
i
i x C
Bổ đề: Tập hợp M gồm mọi tổ hợp lồi của hữu hạn các điểm cho trước là một
tập lồi
3.2.2 Đa diện lồi
Định nghĩa: Tập hợp M gồm mọi tổ hợp lồi của một số hữu hạn điểm cho trước
được gọi là một đa diện lồi sinh bởi hệ điểm đã cho
Ví dụ: Đoạn thẳng nối hai điểm A và B là một đa diện lồi
Đa diện lồi sinh bởi 3 điểm A, B, C trên mặt phẳng là một tam giác Ba điểm A, B, C là các điểm cực biên của đa diện lồi này
Định lý: Nếu M là một đa diện lồi thì nó có điểm cực biên Số điểm cực biên của M
Trang 12là hữu hạn và mọi điểm của M đều là các tổ hợp lồi của các điểm cực biên đó
Như vậy định lý này cho chúng ta biết được một tính chất quan trọng của
đa diện lồi, đó là số đỉnh cực biên của một đa diện lồi cho trước là hữu hạn
Về mặt hình học ta thấy, đa diện lồi là một tập lồi và là giao của một số các nửa không gian đóng trong Tuy nhiên điều ngược lại chưa chắc đúng Vậy thì làm thế nào để biết được phần giao của các nửa không gian đóng trong là một đa diện lồi ?
n
× b∈ℜm φ
≠
§4 CẤU TRÚC MIỀN RÀNG BUỘC CỦA BÀI TOÁN
QUY HOẠCH TUYẾN TÍNH 4.1 Phương án cực biên và phương án cực biên tối ưu
Không mất tổng quát ta xét bài toán QHTT dạng chính tắc như sau:
Trang 13Phương án cực biên tối ưu: Nếu phương án cực biên là phương án tối ưu của bài toán (I) thì được gọi là phương án cực biên tối ưu của bài toán (I)
0
x
0
x
Người ta đã chứng minh được định lý sau đây:
Định lý: Xét tập G= ∈ℜ{x n Ax b≥ }, Giả sử Khi đó có điểm cực biên khi và chỉ khi Đặc biệt hơn, nếu G thì đều có thể được viết dưới dạng trong đó
Hệ quả: xét miền D= ∈ℜ{x n Ax b x= , ≥0}, Khi đó nếu
thì nó có điểm cực biên và mọi điểm luôn tồn tại biểu diễn
trong đó
D
i i
0
j
Ay =
Bây giờ ta sẽ dùng hệ quả này để chứng minh kết quả sau cho bài toán (I)
Định lý: Nếu bài toán (I) có phương án thì sẽ có phương án cực biên, và nếu
hàm mục tiêu bị chặn dưới trong thì bài toán sẽ có phương án tối ưu, do đó
có phương án cực biên tối ưu
D
Chứng minh:
Rõ ràng theo hệ quả trên ta có: nếu bài toán (I) có phương án thì nó sẽ có
Trang 14phương án cực biên
Bây giờ ta giả thiết rằng (I) có hàm mục tiêu bị chặn dưới trong D Khi
đó bài toán (I) sẽ có phương án cực biên tối ưu Thật vậy:
Theo hệ quả thì mọi phương án x của (I) đều có thể viết dưới dạng:
Gọi ( ) min{ ( ),f x r = f x i i = m1, } Ta sẽ chứng minh rằng sẽ là phương án tối
ưu của bài toán (I)
i j i
r
Điều này trái với giả thiết
hàm mục tiêu bị chặn dưới trên miền ràng buộc D
Vậy ( )f x ≥f x( ),r ∀ ∈x D, hay là phương án tối ưu của bài toán (I) Do đó ta
r
x
4.2 Điều kiện cần và đủ để một phương án là cực biên
Xét bài toán QHTT dạng chính tắc (I) Ký hiệu là các véctơ cột của ma trận ràng buộc
Trang 15(nếu có phương trình nào trong hệ là tổ hợp tuyến tính của các phương trình khác thì ta có thể loại bỏ đi) Khi đó ta có định lý sau:
Ax b=
Định lý: Phương án là một phương án cực biên khi và chỉ khi hệ các véctơ cột của ma trận tương ứng với các thành phần dương của độc lập tuyến tính
“Điều kiện cần”: giả thiết x0∈D là một phương án cực biên của (I)
đó tồn tại các số không đồng thời bằng 0 để Đặt
, trái với giả thiết là phương án cực biên của (I) Vậy hệ { độc lập tuyến tính
0
x
1, , ,2 k
“Điều kiện đủ”: giả thiết hệ {a a1, , ,2 a k độc lập tuyến tính
Giả sử x0 không là phương án cực biên của (I) Khi đó
x = x′+ x′′ Dễ dàng thấy rằng ( ) thành phần cuối cùng của
và x cũng bằng 0, còn các thành phần khác là không âm Vậy ta có:
Trang 161 1 0
})
các véctơ cột tương ứng là:
chúng lập thành hệ độc lập tuyến tính Vậy là một phương án cực biên
4.3 Cơ sở của một phương án cực biên
để được một hệ véctơ độc lập tuyến tính cực đại gồm đủ véctơ, nghĩa là ta
Trang 17Cơ sở của phương án cực biên: ta gọi hệ véctơ nói trên là một cơ sở của phương án cực biên Đôi khi ta còn gọi tắt J là cơ sở của
{a j J j: ∈ }0
Định nghĩa: một phương án cực biên là không suy biến nếu có đúng
thành phần dương, tức là Ngược lại thì gọi là suy biến
0
( ( )0 )
Ví dụ: Đối với ví dụ trên thì rank A =( ) 3
Do đó nó là phương án cực biên không suy biến
J x+ =
1( ) {3} {2; 4; 3}
J J x= + ∪ =
Bài toán QHTT gọi là không suy biến nếu mọi phương án cực biên của nó không suy biến Rõ ràng là nếu một phương án là không suy biến thì nó chỉ có một cơ sở duy nhất Như vậy nếu bài toán QHTT là không suy biến thì số cơ sở nhiều nhất là (vì lấy m véctơ từ véctơ), do đó số phương án cực biên của
bài toán QHTT nhiều nhất cũng chỉ là Vậy số các phương án cực biên là hữu hạn
m n
m n C
Trang 18Chương 2 THUẬT TOÁN ĐƠN HÌNH
§1 MỞ ĐẦU 1.1 Bài toán
Ta xét bài toán QHTT dạng chính tắc sau:
- Thuật toán đơn hình (do Dantzig đề xuất)
- Các phương pháp điểm trong (do Karmarkar đề xuất)
- Các phương pháp Ellipsoid (do Khachian đề xuất)
Trong đó các phương pháp Điểm trong và phương pháp Ellipsoid là các phương pháp có độ phức tạp tính toán là đa thức, còn phương pháp Đơn hình thì không Tuy nhiên trong thực tế tính toán thì người ta thấy rằng, phương pháp đơn hình là rất hiệu quả, đồng thời nó cũng là thuật toán dễ hiểu và dễ thực hiện Một trường hợp đặc biệt là khi chúng ta xét những bài toán QHTT trong không gian 2 chiều hoặc 3 chiều thì chúng ta có thể dùng phương pháp hình học khá hữu hiệu để giải
Trang 19một nửa mặt phẳng Như vậy tập D là 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
Phương trình khi α thay đổi sẽ xác định trên mặt phẳng các
đường thẳng song song với nhau
1 1 2 2
c x +c x =α
Định nghĩa: Với mỗi một giá trị của thì đường thẳng
được gọi là một đường mức
α c x1 1+c x2 2=α
Với mỗi điểm x=( , )x x1 2 ∈D sẽ nằm trên đường mức có giá trị mức là
1 1 2 2
c x +c x = Như vậy 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 , hãy tìm đường mức có giá trị mức nhỏ nhất α
Ta thấy rằng nếu dịch chuyển các đường mức song song các đường mức theo hướng véctơ pháp tuyến của chúng thì giá trị của 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 Vì vậy chúng ta
có thể giải bài toán đặt ra theo cách như sau: Bắt đầu từ một đường mức cắt D ,
ta dịch chuyển đường mức theo hướng ngược với hướng véctơ cho đến khi nào việc dịch chuyển tiếp theo làm cho đường mức không cắt D nữa thì dừng Các điểm của nằm trên đường mức này sẽ là các lời giải cần tìm, còn giá trị mức chính là giá trị tối ưu của bài toán
1 2( , )
c= c c
1 2( , )
(1, 1)
c = −
Trang 20Vậy x =* (0; 7) là phương án tối ưu và f x =−( )* 7
§2 THUẬT TOÁN ĐƠN HÌNH 2.1 Tư tưởng của thuật toán đơn hình
Xét bài toán QHTT dạng chính tắc:
( )0
t
Ax b x
Trang 21trong đó c x, ∈ℜn, b∈ℜm, Alµ ma trËn cÊp m n×
Chúng ta đã biết rằng:
- Nếu bài toán (I) có phương án thì có phương án cực biên
- Nếu bài toán (I) có phương án tối ưu thì cũng có phương án cực biên tối ưu
- Số phương án cực biên là hữu hạn
Vì tập hợp các phương án cực biên là hữu hạn nên ta có thể tìm một phương án tối ưu (hay một lời giải của bài toán) Vì vậy Dantzig đã đề xuất một
thuật toán như sau (gọi là thuật toán đơn hình): Xuất phát từ một phương án cực
biên Kiểm tra đã là phương án tối ưu hay chưa Nếu chưa là phương
án tối ưu thì ta tìm cách chuyển sang một phương án cực biên mới là tốt hơn theo nghĩa
2.2 Công thức số gia hàm mục tiêu - dấu hiệu tối ưu
Giả sử ta có phương án cực biên x0 với cơ sở J tương ứng Khi đó ta có:
1
n j j
Trang 22ta gọi (2.2.3) là khai triển của một phương án bất kỳ qua cơ sở J
Bây giờ ta xét hàm mục tiêu:
) Do đó ta có dấu hiệu tối ưu sau:
2.3 Tìm phương án cực biên tốt hơn - Công thức đổi cơ sở
Giả sử với cơ sở là một phương án cực biên nhưng chưa phải là phương án tối ưu, khi đó Giả sử
ta sẽ tìm phương án cực biên mới với cơ sở chỉ khác J một véctơ:
, nghĩa là ta sẽ đưa véctơ vào cơ sở thay thế cho véctơ bị
loại khỏi cơ sở J các véctơ và phải được lựa chọn sao cho tốt hơn
k s θ
⎪⎪
⎪⎩
Trang 23trong đó là một số dương sẽ được xác định sau sao cho là một phương án cực biên
víi
1 0
b) Trường hợp 2: Nếu , khi đó theo (2.2.6) số θ không thể lớn tuỳ
ý, nó phải thoả mãn điều kiện Như vậy có thể lấy:
Trang 24
víi víi
víi
0 1
0 0
r j rs r
j js rs
j J j s x
Từ (2.2.7) ta thấy f x( )1 ≥f x( )0 nên tốt hơn x1 x0
Định lý: Phương án được xác định theo công thức (2.2.8) là phương án cực
biên với cơ sở
1
x
1 { }\{ }
J = ∪J s r
Các công thức (2.2.7), (2.2.8) cho ta cách tìm các thành phần của phương
án cực biên mới cùng với giá trị hàm mục tiêu x1 f x( )1 thông qua các hệ số khai triển và các ước lượng trong cơ sở J Để có thể tiến hành các bước tiếp
theo, ta cần xác định các đại lượng tương ứng và trong cơ sở Người
ta đã tìm được chúng như sau:
1
,
rk rs jk
rk
jk js rs
Các công thức (2.2.7), (2.2.8), (2.2.9), (2.2.10) gọi là các công thức đổi cơ
sở từ cơ sở sang cơ sở Chúng cho phép dựa vào kết quả bước trước để tìm tất cả các yếu tố cần thiết cho việc thực hiện các bước sau của thuật toán đơn hình
¾ Bước 1: (kiểm tra dấu hiệu tối ưu)
a) Nếu ∆ ≤ ∀ = n k 0, k 1, thì kết luận là phương án tối ưu Kết thúc thuật toán
0
x
Trang 25b) Ngược lại, nếu ∃∆ >k 0 thì chuyển sang bước 2
¾ Bước 2: (kiểm tra dấu hiệu hàm mục tiêu không bị chặn)
chuyển sang bước 4
¾ Bước 4: Tính các giá trị trong cơ sở mới
theo các công thức (2.2.7), (2.2.8), (2.2.9), (2.2.10) Quay trở lại bước 1
Trang 26liệu thành một bảng gọi là bảng đơn hình Trong đó các cột ứng với các sẽ
là các véctơ đơn vị với số 1 nằm trên dòng với chỉ số Còn các cột k của bảng
đơn hình là các hệ số khai triển của cột a của ma trận theo cơ sở J Ta ký
hiệu cột này là z , khi đó ta có: , trong đó A là ma trận
có các cột Ma trận được gọi là ma trận cơ sở
,
* Thủ tục trên bảng đơn hình:
¾ Bước 1: (kiểm tra dấu hiệu tối ưu)
- Nếu ∆ ≤ ∀k 0, k thì kết luận x0 là phương án tối ưu
- Ngược lại, nếu ∃ ∉k J:∆ >k thì chuyển sang bước 2
¾ Bước 2: (kiểm tra dấu hiệu hàm mục tiêu giảm vô hạn)
không bị chặn trên miền ràng buộc, bài toán không có phương án tối ưu hữu hạn Kết thúc thuật toán
mµ
- Ngược lại, ∀ ∆ >k 0 mµ ∃z > thì chuyển sang bước 3
¾ Bước 3: (xác định dòng xoay, cột xoay, phần tử xoay)
- Chọn cột xoay s theo quy tắc: ∆ =s max{∆ ∆ >k: k 0}
- Chọn dòng xoay r theo quy tắc: 0 { 0 }
- Phần tử z rs được gọi là phần tử xoay
¾ Bước 4: Tiến hành tính toán theo các công thức (2.2.7)-(2.2.10) Ghi nhận các kết quả trong một bảng mới Quay về bước 1
Ví dụ 1: Giải bài toán QHTT sau
Trang 27Chọn là phương án cực biên xuất phát với cơ sở tương ứng là Ma trận cơ sở là ma trận đơn vị nên ta có ngay bảng đơn hình như sau:
Ta thấy nên chưa phải là phương án tối ưu Do đó ta phải tiến hành đổi cơ sở và tính lại bảng đơn hình
4 -2 3 3/5 0 1/5 1 7/5 0
2 -1 8 -1/5 1 -2/5 0 -9/5 0
6 -3 1 -2/5 0 1/5 0 2/5 1 -17 -4/5 0 -3/5 0 -21/5 0
Trang 28Ta thấy tất cả các ∆ ≤k 0, k=1,6 nên là phương án tối ưu
Bây giờ ta sẽ đi giải bài toán (2)
Bài toán (2) có phương án cực biên xuất phát là với cơ sở là
Trang 296 -7 15 -1 1 0 -1 0 1
3 1 39 -4 2 1 -2 0 0
5 1 47 1 3 0 -1 1 0 -19 -2 -3 0 1 0 0
Ta thấy và mọi phần tử trên cột 4 đều âm Do đó ta kết luận hàm mục tiêu của bài toán không bị chặn dưới trong miền ràng buộc Bài toán không
có lời giải hữu hạn
∆ >
§3 TÍNH HỮU HẠN CỦA THUẬT TOÁN ĐƠN HÌNH
3.1 Trường hợp bài toán không suy biến
Định lý: Nếu bài toán QHTT là không suy biến thì thuật toán đơn hình sẽ kết
thúc sau một số hữu hạn bước
Chứng minh: vì bài toán không suy biến nên x j0> ∀ ∈J0, j
0
r rs
x x x f x f x z
θ
nghĩa là thực sự tốt hơn Sau mỗi bước lặp, nếu không xảy ra trường hợp hàm mục tiêu không bị chặn thì ta sẽ tìm được một phương án mới thực sự tốt hơn phương án cũ, tức là không bao giờ trở lại phương án đã đi qua Nhưng vì
số phương án cực biên là hữu hạn nên sau hữu hạn bước lặp ta sẽ tìm được
1
3.2 Trường hợp bài toán suy biến
Nếu bài toán QHTT suy biến tức là trong một bước lặp có thể ta gặp một phương án cực biên suy biến có Sau bước lặp đó ta thu được một đỉnh mới
Trang 30r J∈ mà , tức là Khi đó nên , thực chất ta vẫn
đứng ở đỉnh cũ, chỉ có cơ sở J được thay đổi Đến bước lặp tiếp theo vẫn có thể
xảy ra tình huống đó
0( )
r J x∉ + x = r0 0 θ =0 x1=x0
≠
)
Có 2 khả năng xảy ra:
a) Sau một số bước nào đó ta may mắn thoát khỏi đỉnh và chuyển sang một đỉnh mới tốt hơn
0
x
b) Không rời khỏi được đỉnh Vì như đã biết trong bài toán QHTT có hữu hạn các cơ sở nên sau một số bước ta quay lại đúng cơ sở đã xét và từ đó xoay vòng mãi Đó được gọi là hiện tượng xoay vòng Nếu chúng ta không
có cách khắc phục hiện tượng này thì thuật toán đơn hình sẽ có thể kéo dài vô hạn
0
x
Để khắc phục hiện tượng xoay vòng thì người ta đã đưa ra một số các
phương pháp, chẳng hạn: Phương pháp Nhiễu loạn, Phương pháp Tự vựng,…
* Phương pháp tự vựng:
Khái niệm tự vựng (Lexic):
- Ta nói rằng véctơ là tự vựng dương nếu thành phần đầu tiên khác 0 của nó dương Ký hiệu:
c = − − d =(1; 0; 6; 2; 3)−
Bây giờ ta sẽ áp dụng định nghĩa Lexic vào thuật toán đơn hình của chúng
Trang 31ta Giả sử chúng ta đang thực hiện lần lặp nào đó của thuật toán đơn hình, phương án cực biên đang xét là với cơ sở J tương ứng Giả sử chưa là phương án tối ưu, do đó chúng ta phải chọn một véctơ để đưa vào cơ sở Giả
thiết chúng ta đã chọn được cột s Khi đó
j j jn j
1,
, ta sẽ chọn hàng r theo một quy tắc mới là
Định lý sau đây sẽ khẳng định tính đúng đắn khi áp dụng phương pháp tự vựng
p =lexic− p j J∈
Định lý: Khi áp dụng thuật toán đơn hình giải bài toán QHTT (I) trong mỗi
bước ta đều chọn véctơ đưa ra khỏi cơ sở bằng phương pháp tự vựng thì không bị xoay vòng và thuật toán kết thúc sau hữu hạn bước
Trang 32(0; 3; 0; 0; 1; 6; 3; 36)(0; 0; 2; 0; 1; 2; 1/3; 4/3)
j J
p p
Trang 33luôn giả thiết rằng , tức là các dòng của ma trận là độc lập tuyến tính Tuy nhiên trong thực tế không có gì đảm bảo được điều này cả, thậm chí có thể miền ràng buộc là rỗng, vậy thì làm sao mà tìm được phương án cực biên xuất phát?
( )
Để giải quyết những vướng mắc này thì người ta đã đề xuất một phương
pháp gọi là Phương pháp Hai pha
4.2 Phương pháp hai pha giải bài toán QHTT
ij j i j
ij j n i i j
các biến u n i+ (i=1,m) gọi là các biến giả Rõ ràng là (P) là một bài toán QHTT
dạng chính tắc với m ràng buộc và m+n biến
Đối với bài toán (P) ta thấy ngay phương án cực biên xuất phát là
, tức là các biến ( , ) (0, )x u = b x j=0 (j = n và 1, ) u n i+ =b i i ( =1,m), cơ sở tương ứng gồm cột cuối và ma trận cơ sở là ma trận đơn vị Như vậy ta đã có đầy
đủ các thông tin cho việc thực hiện thuật toán đơn hình Tuy nhiên hai bài toán (I) và (P) có quan hệ gì với nhau? Định lý sau đây sẽ chỉ ra mối liên hệ này
m
Định lý: Bài toán ban đầu (I) có phương án cực biên là khi và chỉ khi bài
toán (P) có phương án tối ưu là với
*
x
* *( , )x u u =* 0
Trang 34Chứng minh:
“Điều kiện cần”: giả thiết bài toán (I) có phương án cực biên là x*
Rõ ràng ( ,0)x* là một phương án của bài toán (P) Hơn nữa, f x u ≥ , ( , ) 0
và
0
n i
u +
∀ ≥ f x( ,0) 0* = nên ( ,0)x* là phương án tối ưu của (P)
“Điều kiện đủ”: giả thiết là phương án tối ưu của (P) Khi đó ta thấy ngay
là phương án của (I)
*( ,0)x
*
x
Gọi là cơ sở của Khi đó ta thấy ngay nên
độc lập tuyến tính Do đó là phương án cực biên của (I) ■
J ( ,0)x* J J x⊆ +( )* { ,a j J x j ∈ +( )}*
*
x
Như vậy để giải bài toán QHTT (I) thì ta làm theo các bước sau đây: Pha 1,
giải bài toán phụ để tìm phương án cực biên xuất phát cho bài toán (I) Pha 2, giải bài toán (I) với phương án cực biên xuất phát vừa tìm được ở pha 1
Giả sử khi giải bài toán (P) ta thu được phương án tối ưu là Có ba khả năng sau:
* *( , )x u
a) Nếu u ≠* 0 thì kết luận bài toán ban đầu (I) không có phương án
b) Nếu và cơ sở tương ứng không chứa cột nào ứng với các biến giả
Khi đó ta kết luận chính là phương án cực biên xuất phát của bài toán (I)
u =
n i
c) Nếu u =* 0 và trong cơ sở có một số cột ứng với các biến giả u n i+ Khi đó:
- Trường hợp 1: Nếu trên dòng ( của bảng đơn hình cuối cùng mà ta không tìm được chỉ số ngoài cơ sở mà thì ta loại bỏ hàng
và loại bỏ biến giả tương ứng
- Trường hợp 2: Nếu trên dòng ( của bảng đơn hình cuối cùng mà ta
tìm được chỉ số k ngoài cơ sở mà thì ta thực hiện phép biến đổi bảng đơn hình với phần tử xoay chính là để đưa k vào cơ sở thay cho
Lặp lại cách làm này ta sẽ loại bỏ hết các cột ứng với các biến giả ra khỏi cơ sở Cuối cùng ta sẽ thu được cơ sở xuất phát cho bài toán (I) gồm
Chú ý: Khi áp dụng phương pháp hai pha, nếu trong ma trận có một cột là
véctơ đơn vị với phần tử bằng 1 tại dòng i thì ta không cần thêm biến giả
A
n i
u +
Trang 35tương ứng với dòng i Có bao nhiêu cột của ma trận là véctơ đơn vị khác
nhau thì ta bớt được bấy nhiêu biến giả
Trang 36* *( , ) (0; 0; 0.5; 2.5; 0; 0)x u = t
Vậy phương án tối ưu của bài toán ban đầu là và giá trị tối
Trang 37Nhưng nên ta kết luận bài toán (*) không có phương án
* *( , ) (25; 0; 0; 33; 2; 0)x u =
pháp hai pha Để khắc phục yếu điểm này thì người ta đã đưa ra phương pháp
đánh thuế (kết hợp hai pha lại thành một) như sau đây:
Trang 38ij j i j
0 0( , )x u x0=0,u0=b
}{ 1, ,
Dễ dàng thấy rằng nếu (M) có một phương án tối ưu mà thì
sẽ làm cho giá trị tối ưu rất lớn (bị đánh thuế rất nặng) Hơn nữa, nếu là phương án tối ưu của (I) thì cũng là phương án tối ưu của (M) Định lý sau đây khẳng định rõ điều này:
* *( , )x u u ≠* 0
*
x
*( ,0)x
Định lý: tồn tại một số dương M0 đủ lớn để ∀ >M M0 thì
a) Nếu bài toán (I) có phương án thì mọi phương án cực biên tối ưu
của bài toán (M) phải có
( , )x u
0
u = b) Bài toán (I) có phương án tối ưu khi và chỉ khi bài toán (M) có phương
án tối ưu là
*
x
*( ,0)x Chứng minh (xem trong [2])
Như vậy việc giải bài toán (I) có thể đưa về việc giải bài toán (M) Tuy nhiên, khi giải bài toán (M) thì cần chú ý một số điểm sau:
Trang 39* Chú ý:
a) Trong khi giải bài toán (M) thì ta không quan tâm đến giá trị cụ thể của
Chỉ biết rằng nó là một số vô cùng lớn
M
b) Vì hàm mục tiêu của bài toán (M) phụ thuộc vào nên các ước lượng
trong thuật toán đơn hình cũng phụ thuộc vào M Ta sẽ viết nó dưới
dạng sau:
M k
k α k
β
Sau khi giải bài toán (M) thì sẽ xảy ra một trong các trường hợp sau:
- Thu được phương án tối ưu là thì ta kết luận chính là phương án tối ưu cần tìm
+Nếu cơ sở đang xét không có thành phần tương ứng với biến giả thì
ta kết luận bài toán (I) có phương án nhưng hàm mục tiêu không bị chặn dưới trong miền ràng buộc
+Ngược lại thì ta giải pha một trong phương pháp hai pha để xét xem bài toán (I) có phương án hay không
Ví dụ: Giải bài toán QHTT sau