Phương pháp nón xoay giải bài toán quy hoạch tuyến tính với miền ràng buộc là hệ bất phương trình tuyến tính...11 2.2.1... Bài toán quy hoạch tuyến tính dạng chuẩn là bài toán có miền r
Trang 1Tr-ờng đại học khoa học
VŨ VĂN CễNG
MỘT CẢI TIẾN CÁCH CHỌN VẫC TƠ ĐƯA VÀO CƠ SỞ CỦA PHƯƠNG PHÁP NểN XOAY GIẢI BÀI TOÁN QUY HOẠCH TUYẾN TÍNH
LUẬN VĂN THẠC SĨ TOÁN HỌC
thái nguyên - năm 2014
Trang 2Tr-ờng đại học KHOA HọC
VŨ VĂN CễNG
[
MỘT CẢI TIẾN CÁCH CHỌN VẫC TƠ ĐƯA VÀO CƠ SỞ CỦA PHƯƠNG PHÁP NểN XOAY GIẢI BÀI TOÁN QUY HOẠCH TUYẾN TÍNH
LUẬN VĂN THẠC SĨ TOÁN HỌC
Chuyờn ngành: Toỏn ứng dụng
Mó số: 60 46 01 12
Người hướng dẫn khoa học: TS NGUYỄN ANH TUẤN
Thỏi Nguyờn, 2014
Trang 3Mục lục
Mục lục 1
Mở đầu 2
Chương 1 Bài toán quy hoạch tuyến tính và phương pháp giải 4
1 Bài toán quy hoạch tuyến tính tổng quát 4
1.1 Dạng chuẩn và dạng chính tắc 5
1.2 Đưa bài toán quy hoạch tuyến tính về dạng chuẩn hoặc chính tắc 5
2 Phương pháp đơn hình và phương pháp nón xoay 7
2.1 Phương pháp đơn hình giải bài toán QHTT dạng chính tắc 7
2.2 Phương pháp nón xoay giải bài toán quy hoạch tuyến tính với miền ràng buộc là hệ bất phương trình tuyến tính 11
2.2.1 Khái niệm về nón đơn hình tuyến tính 11
2.2.2 Khái niệm về cạnh của nón đơn hình 11
2.2.3 Khái niệm nón xoay M(r,s) sinh ra từ nón M 14
2.2.4 §Þnh nghÜa Nón cực tiểu (Nón-min) 17
2.3 Phương pháp nón xoay tuyến tính 18
2.3.1 Thuật toán nón xoay tuyến tính 19
2.3.2 Bảng lặp giải bài toán qui hoạch tuyến tính bởi thuật toán nón xoay tuyến tính và ví dụ minh hoạ 21
Chương 2 Một cách chọn véc tơ đưa vào cơ sở 26
2.1 Lựa chọn chỉ số đưa vào cơ sở 26
2.2 Ví dụ bằng số minh hoạ 30
Tài liệu tham khảo 32
Trang 4Mở đầu
Như chúng ta đã biết, bài toán quy hoạch tuyến tính (QHTT) có hai dạng
cơ bản là dạng chuẩn và dạng chính tắc, hai dạng này có quan hệ mật thiết với nhau Bài toán quy hoạch tuyến tính dạng chuẩn là bài toán có miền ràng buộc
là một hệ bất phương trình tuyến tính, còn bài toán quy hoạch tuyến tính dạng chính tắc là bài toán quy hoạch có miền ràng buộc là một hệ phương trình tuyến tính với các biến của nó có dấu không âm Trong thế kỷ trước, cùng với
sự phát triển mạnh mẽ của công nghệ thông tin, lý thuyết tối ưu đã có những bước tiến lớn, trong đó phải nói đến các phương pháp và các thuật toán giải bài toán quy hoạch tuyến tính, gắn liền với tên tuổi của nhiều nhà toán học như L.V Kantorovich (1939), George Dantzig (1947), Lemke (1954), Leonid Khachian (1979), Karmarkar (1984),
Nội dung của luận văn là đề nghị một quy tắc chọn chỉ số đưa vào cơ sở trong thuật toán nón xoay tuyến tính trình bày ở cuốn sách [5] giải trực tiếp bài toán quy hoạch tuyến tính với miền ràng buộc là hệ bất phương trình tuyến tính Cụ thể là chúng ta đề nghị một quy tắc chọn chỉ số ràng buộc đưa vào cơ sở mới thay cho cơ sở cũ làm cho số bước lặp đi tới lời giải là giảm đi Luận văn gồm 2 chương:
Chương 1: Trình bày bài toán quy hoạch tuyến tính tổng quát và hai dạng
cơ bản của bài toán quy hoạch tuyến tính là dạng chính tắc và dạng chuẩn với hai phương pháp giải bài toán quy hoạch tuyến tính là phương pháp đơn hình
và phương pháp nón xoay
Chương 2: Nội dung dựa trên phương pháp nón xoay tuyến tính trình bày trong chương 1, đề nghị một quy tắc MAX giải bài toán quy hoạch tuyến tính với miền ràng buộc là hệ bất phương trình tuyến tính và ví dụ bằng số minh họa
Trang 5Luận văn này hoàn thành dựa trên cuốn sách “Quy hoạch tuyến tính với phương pháp nón xoay” [5] và trên các sách, tài liệu có trong phần tài liệu tham
khảo
Tác giả
Vũ Văn Công
Trang 6Chương 1
Bài toán quy hoạch tuyến tính và phương pháp giải
Trong chương này chúng tôi trình bày bài toán quy hoạch tuyến tính tổng quát và hai dạng của bài toán quy hoạch tuyến tính là dạng chính tắc và dạng chuẩn Sau đó trình bày phương pháp đơn hình giải bài toán quy hoạch tuyến tính dạng chính tắc và phương pháp nón xoay giải bài toán quy hoạch tuyến tính với miền ràng buộc là hệ bất phương trình tuyến tính
1 Bài toán quy hoạch tuyến tính tổng quát
Để nhất quán lập luận ta xét bài toán tìm cực đại, sau đó ta sẽ xét cách chuyển bài toán tìm cực tiểu sang tìm cực đại
Bài toán tổng quát của quy hoạch tuyến tính có dạng:
Nếu bài toán Max có phương án tối ưu là *
x thì bài toán Min cũng có phương án là x* và fmin = −f max
Thật vậy, vì *
x là phương án tối ưu của bài toán Max nên ta có:
Trang 7* ax
x là phương án tối ưu của bài toán Min và
1.2 Đưa bài toán QHTT về dạng chuẩn hoặc chính tắc
Bất kỳ quy hoạch tuyến tính nào cũng có thể đưa về một trong hai dạng chuẩn hoặc chính tắc nhờ phép biến đổi tuyến tính sau:
1 Một ràng buộc
Trang 8ij 1
n
i j
.
=
≤
∑n j i j
a x b
2 Một ràng buộc đẳng thức
ij 1
.
=
∑n j i i j
a x y b
Về nguyên tắc, áp dụng nhiều lần các phép biến đổi 1, 2 và 3 ta có thể đưa một bài toán quy hoạch tuyến tính bất kỳ về dạng chuẩn, sau đó áp dụng nhiều lần phép biến đổi 4 ta sẽ đưa nó về dạng chính tắc
Trang 92 Phương pháp đơn hình và phương pháp nón xoay
Trong mục này chúng tôi trình bày sơ lược về phương pháp đơn hình giải
bài toán quy hoạch tuyến tính dạng chính tắc và phương pháp nón xoay [5]
giải bài toán quy hoạch tuyến tính với miền ràng buộc là hệ bất phương trình
tuyến tính
2.1 Phương pháp đơn hình giải bài toán QHTT dạng chính tắc
Phương pháp đơn hình giải bài toán QHTT dạng chính tắc do nhà toán học
Dantzig người Mỹ đề xuất năm 1947, sau đây chúng tôi xin tóm tắt sơ lược
Trong đó A là ma trận kích thước m.n, với m ≤ n và hạng của ma trận A
bằng m Cơ sở của thuật toán đơn hình chúng ta có thể xem trong sách [3] Để
ngắn gọn chúng tôi chỉ trình bày tóm tắt các bước giải của thuật toán đơn hình
dưới đây như sau:
Thuật toán đơn hình
Bước 1: Xây dựng bảng đơn hình xuất phát Tìm một phương án cực biên
xuất phát x và cơ sở của nó A j j, ∈J
Trang 10Bước 2: Kiểm tra tối ưu
Nếu ∆ ≥k 0,k∉J thì x là phương án tối ưu, dừng thuật toán Trái lại,
chuyển sang bước 3
Bước 3: Tìm véctơ đưa vào cơ sở Có hai khả năng xảy ra:
Tồn tại k∉J sao cho ∆ <k 0 và z jk ≤0,j∈J thì bài toán QHTT không có lời giải tối ưu (Z không bị chặn trên) Dừng thuật toán
Đối với mỗi k ∉ J sao cho ∆ <k 0 đều tồn tại j∈J z: jk >0 Khi đó chọn chỉ số s theo tiêu chuẩn:
∆ = ∆ ∆ < (1.9) Đưa véctơ A s vào cơ sở
Bước 4: Tìm véctơ loại khỏi cơ sở Xác định
Và đưa véctơ A r ra khỏi cơ sở
Bước 5: Chuyển sang phương án cực biên mới và cơ sở mới Cơ sở mới là
{A j j, ∈J'} với J' =J\{ } { }r ∪ s '
j J
∀ ∈ các thành phần của phương án cực biên mới x' được tính theo công thức:
r rs
x
x z nÕu j s (1.11) Khai triển của các véctơ A k theo các véctơ cơ sở mới được tính theo công thức (1.12) Quay lên bước 2
Trang 11Công thức đổi cơ sở và bảng đơn hình
Ta xét các công thức chuyển từ phương án cực biên x với cơ sở J sang phương án cực biên x' với cơ sở J' Ta đã có công thức (1.11) để tính các thành phần của '
x Bây giờ ta thiết lập công thức tính các số z'jk ta có:
Để dễ tính toán, trong mỗi bước lặp ta thiết lập bảng đơn hình
Nếu tất cả các số trong dòng cuối (trừ hàm mực tiêu f ) đều không âm, nghĩa là ∆ ≥k 0,∀k , khi đó x là phương án tối ưu
1
c … c j … c r … cm … c k … c s … c n j
Trang 12Nếu dòng cuối (không kể f) có những số âm thì xem thử có cột nào cắt dòng cuối ở một số âm mà mọi số trong cột đó đều âm hay không Nếu có cột nào như thế thì bài toán không có phương án tối ưu
Nếu trái lại thì chọn cột s sao cho ∆ =s min{∆k / ∆ <k 0}, rồi chọn (trong số các dòng cắt cột s ở những số dương) dòng r sao cho:
1) Chia mỗi phần tử ở dòng quay cho phần tử chính (được số 1 ở vị trí của s
r
z cũ) Kết quả thu được gọi là dòng chính
2) Lấy mỗi dòng khác trừ đi tích của dòng chính nhân với phần tử quay tương ứng được số 0 ở mọi vị trí còn lại của cột quay
Dòng mới = dòng cũ tương ứng − dòng chính × phần tử quay Lưu ý rằng sau phép quay thì ở vị trí ∆s ta thu được số 0 vì lúc này As trở thành véctơ đơn vị cơ sở, nghĩa là ta đã làm mất số âm nhỏ nhất ở dòng cuối của bảng cũ
Toàn thể phép biến đổi trên gọi là phép xoay quanh phần tử chính zrs Sau khi thực hiện phép quay ta có một phương án mới và một cơ sở mới Nếu chưa đạt yêu cầu, nghĩa là còn ∆ <k 0 thì ta lại tiếp tục quá trình
Trang 132.2 Phương phỏp nún xoay giải bài toỏn QHTT với miền ràng buộc là hệ bất phương trỡnh tuyến tớnh
Chỳng ta đó biết, bất kỳ một bài toỏn quy hoạch tuyến tớnh nào cũng dễ dàng đưa về bài toỏn quy hoạch tuyến tớnh với miền ràng buộc là hệ bất phương trỡnh tuyến tớnh sau đõy:
C(c1, c2, …, cn), bi∈ R1, i=1, 2, , m Hạng của hệ Ai (i=1, 2, …, m) bằng
n, giả thiết này rất bỡnh thường bởi miền ràng buộc PL của bài toỏn quy hoạch
tuyến tớnh bao giờ cũng cú ràng buộc về dấu của biến x
2.2.1 Khỏi niệm về nún đơn hỡnh tuyến tớnh
Xột tập M đ−ợc xác định từ n ràng buộc tuyến tính nào đó của PL , cụ thể là:
M:={x ∈ Rn : <Ai, x>+ bi≤ 0 i ∈ I} (2.1)
Trong đó I:={i i1 , , , 2 i n}⊂ {1, 2, , m}, /I/ = n (ở đõy /I/ là số đo hay là số phần
tử của tập I) và Ai với i ∈ I là một hệ độc lập tuyến tính Tập M gọi là nún đơn
hỡnh tuyến tớnh của hệ ràng buộc P L với đỉnh xM là nghiệm (đ−ợc xác định) thoả món hệ sau:
<Ai, x>+ bi = 0, ∀ i ∈ I (2.2)
Hệ vộc tơ Ai với i ∈ I được gọi là cơ sở của nún M, hay cũn gọi là cơ sở
của đỉnh x M Tập I gọi là tập chỉ số của cơ sở của nún M
2.2.2 Khỏi niệm về cạnh của nún đơn hỡnh
Với mỗi i ∈ I, tập hợp cỏc điểm x ∈ Rn thỏa món hệ:
Trang 14gọi là véc tơ chỉ phương của cạnh i của nón M
Đỉnh xM của nón M có thể xác định từ (2.2), trong trường hợp biết hệ véc
Trang 15Dễ thấy tập cỏc điểm x nằm trờn cạnh i của nún M đều cú thể biểu diễn như sau:
z với i∈ I là một hệ phụ thuộc tuyến tớnh Khi đú sẽ tồn tại một
trong n vộctơ của hệ được biểu diễn tuyến tớnh qua cỏc vộc tơ cũn lại như sau:
z sẽ giao với siêu phẳng
<As, x>+ bs=0 tại điểm: xi = xM + αi i
M
z (2.10) Trong đó: αi =- ,
,
s M
s
s i M
Trang 16Định lý 2.3 ( M)
s J+ x
∀ ∈ thỡ I s≠ ∅ Chứng minh: Giả sử ngược lại I s = ∅ thỡ dễ dàng thấy 0 { }
Định lý 2.4 I+s = ∅ thỡ tập phương ỏn của bài toỏn (L) là rỗng
Chứng minh (xem [5])
Định lý này cho ta kết luận rằng , nếu bài toỏn (L) có ít nhất một điểm chấp nhận đ−ợc thì I+s là một tập khác rỗng
2.2.3 Khỏi niệm nún xoay M(r,s) sinh ra từ nún M
Giả sử M là một nún đơn hỡnh tuyến tớnh của hệ ràng buộc PL xỏc định bởi
(2.1) và J +
I , tập hợp các điểm x thoả mLn hệ bất
xM(r,s) =x r = xM + αr r
M
z (2.14) trong đó αr xác định từ (2.11)
Đỉnh xr thoả mLn: <Ai, xr>+ bi = 0 ∀i∈ I(r,s) = (I∪ {s}\{r})
Tập chỉ số cơ sở mới I(r,s) nhận đ−ợc từ tập chỉ số cơ sở cũ I bằng cách loại chỉ số r ra khỏi tập cơ sở cũ, đ−a chỉ số s vào thay Ta núi nún xoay M(r,s)
sinh ra từ nún M
Trang 17Bổ đề 2.1 Hệ Ai với i∈I(r,s) là một hệ độc lập tuyến tớnh
Chứng minh Thật vậy, nếu ngược lại hệ Ai với i∈I(r,s) là phụ thuộc tuyến tớnh thỡ dễ dàng suy ra tồn tại biểu diễn:
z , i∈ I(r,s) của nón xoay mới M(r,s) đ−ợc xác
định từ (2.4) với tập chỉ số cơ sở mới I(r,s), hoặc xác định từ một trong cỏc công thức đơn giản dưới đõy theo cỏc xi, xr, i
M
z , r M
z (xỏc đinh từ (2.4), (2.10)
và (2.11)) với i, r thuộc I là tập chỉ số của cơ sở cũ:
0
r ( , )
,
, (2.15),
1
,
Bổ đề 2.2: Giả sử M là nún xỏc định bởi: M:={x ∈ Rn : <Ai, x>+ bi ≤ 0 i
∈ I } với cỏc vộc tơ chỉ phương i
M
điểm x i xỏc định theo (2.10), (2.11) Khi đú nún xoay M(r,s) cú đỉnh là
x M(r,s) =x r xỏc định từ (2.14) với cơ sở tương ứng là I(r,s) = (I∪ {s}\{r}) và cỏc
M r s
Trang 18A z
α α
− < >= 0 Vậy < Aj, i ( , )
A z
< >.<Aj, zr
M>=0, ∀j∈ I(r,s), j≠s Còn <As, zs
M(r,s)> = <As,- 1
,
s r M
A z
< >.<As, zr
M>=-1 4) Với mỗi i ∈ I(r,s) mà i ∈ I0 và chý ý tới (2.16),(2.17) ta có:
M r s
z >=< Ai, i
M
z >=-1, Tóm lại ta có: với mỗi i ∈ I(r,s) thì:
< Aj, i ( , )
z >= 0, ∀j∈ I(r,s), j ≠ i
Trang 192.2.4 Định nghĩa Nún cực tiểu (Nún-min)
Nón đơn hình tuyến tính M với đỉnh là xM đ−ợc gọi là nún cực tiểu (nún –
min) của hàm f(x)=<C,x> của bài toỏn (L) nếu f(xM)≤ f(x) , ∀x ∈ M
Ta nói M là một nón - min của bài toán (L) khi M là một nún – min của
hàm mục tiờu f của bài toỏn (L)
Giả sử M là một nún đơn hỡnh xỏc định từ hệ (2.1) đỉnh là x M, với véc tơ
chỉ phương của cạnh i là i
M
z (i∈ I), xác định bởi (2.4), ta cú định lý sau
Định lý 2.7 M là một nún - min của hàm f(x)=<C,x> khi và chỉ khi:
<C, i M
Trang 20Định lý 2.8 Với mçi r∈ Vs xác định từ (2.19), nếu M là một nón cực tiểu (nón – min) của hàm mục tiêu của bài toán (L) thì nãn M(r,s) xác định từ (2.13) cũng lµ mét nón cực tiểu (nón – min) của hàm mục tiêu bµi to¸n (L)
Chøng minh (xem [5])
Đỉnh M r s( , )
x của nón xoay M(r,s) còn có thể xác định công thức sau đây khi
biết các véctơ chỉ phương các cạnh của nón xoay M(r,s):
( , )
( , ) ( , )
2.3 Phương pháp nón xoay tuyến tính
Một biến thể của phương pháp nón - min giải bài toán qui hoạch gần gần lõm đề nghị trong cuốn sách “Quy hoạch gần lồi - gần lõm ứng dụng vào quy hoạch tuyến tính” (NXB Khoa học và kỹ thuật năm 2011) ([1]) trình bày dưới đây sẽ cho chúng ta một phương pháp giải trực tiếp bài toán quy hoạch tuyến tính với miền ràng buộc là hệ bất phương trình tuyến tính với cơ sở xuất phát từ đỉnh một nón - min của hàm mục tiêu gọi là phương pháp nón xoay tuyến tính được thể hiện dưới dạng thuật toán chi tiết
lồi-Xét bài toán (L) trong trường hợp biết một nón – min của bài toán (L)
Ý tưởng của thuật toán nón xoay tuyến tính giải bài toán (L) như sau: Xuất pháp từ một nón - min M ban đầu của hàm mục tiêu bài toán, chúng
ta kiểm tra xem đỉnh của nó có thuộc miền chấp nhận của bài toán không (tức
là đỉnh này có thoả mãn tất cả các ràng buộc không) nếu đỉnh này thuộc miền
chấp nhận thì nó là một lời giải của bài toán (L) Ngược lại ta xây dựng nón xoay mới M(r,s) (vẫn là nón - min) từ nón cũ M của bài toán (L) và lặp lại quá trình kiểm tra nón xoay mới này tương tự như đối với nón M, quá trình này
được thực hiện cho đến khi đỉnh của nón xoay mới M(r,s) thuộc miền chấp
Trang 21nhận của bài toỏn (L) (khi miền ràng buộc của bài toỏn (L) cú phương ỏn) hoặc sẽ phỏt hiện ra miền ràng buộc của bài toỏn (L) là rỗng
2.3.1 Thuật toỏn nún xoay tuyến tớnh
Bước chuẩn bị (bước 0) Giả sử ta đó biết M0 là nón - min của bài toán (L) với tập chỉ số cơ sở là I0 :={ 0 0 0
1 , , , 2 n
i i i }, x0 = M0
x là đỉnh của M0 và các véctơ chỉ phương của cỏc cạnh i của nún M0 là 0i
z = i0M
z Xác định tập J+(xk) theo (2.9): ( ) :k { {1, 2, , }: j, k 0}
j
J+ x = j∈ m <A x > +b >
1 Nếu J+(xk) =∅ thì dừng lại xk chính là một lời giải của bài toán (L),
2 Nếu J+(xk) ≠ ∅ , ta chọn chỉ số đưa vào cơ sở theo một trong hai cỏch sau:
Ta chọn sk là một chỉ sụ tuỳ ý thuộc J+(xk) hoặc ta chọn
sk=min{j:j∈J+(xk)} (gọi là qui tắc chọn min) (2.21)
hoặc sk = max{j: j ∈ J+(xk) (gọi là qui tắc chọn max)