Tải bản đầy đủ (.docx) (76 trang)

Phương pháp điểm trong giải bài toán quy hoạch tuyến tính

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

Trần Hải Yến – K32 CN Toán

MỤC LỤC
Lời cảm ơn
Lời cam đoan
Mở đầu
Chƣơng I Bài toán quy hoạch tuyến tính và phƣơng pháp đơn hình
1.1 Bài toán quy hoạch tuyến tính và quy hoạch tuyến tính đối ngẫu
1.2. Tập lồi và các điểm cực biên
1.3 Phương pháp đơn hình
1.4. Thời gian thực hiện thuật toán
Chƣơng II Phƣơng pháp điểm trong
2.1 Tƣ tƣởng của phƣơng pháp điểm trong
2.1.1 Nội dung của ý tưởng
2.1.2 Xác đinh hướng giảm
2.1.3 Thành phần hướng tâm
2.2 Một số thuật toán của phƣơng pháp điểm trong
2.2.1 Phương pháp tỷ lệ affin
2.2.2 Thuật toán giảm thế
2.2.3 Thuật toán theo đường trung tâm
2.2.4 Thuật toán theo đường trung tâm – đối ngẫu
2.2.5 So sánh các phương pháp điểm trong
Kết luận
Tài liệu tham khảo

Khóa luận tốt nghiệp

1


LỜI CẢM ƠN


Trong suốt quá trình thực hiện khóa luận cũng như học tập tại trường
em đã nhận được sự quan tâm, giúp đỡ và tạo điều kiện của các thầy cô giáo
trong Khoa Toán, nhất là các thầy cô giáo trong tổ Toán ứng dụng, cùng với
sự động viên khích lệ của các bạn sinh viên. Em xin chân thành cảm ơn sự
giúp đỡ quý báu này.
Đặc biệt em xin bày tỏ lòng biết ơn sâu sắc đến thầy giáo Trần Minh
Tước, người đã tận tình hướng dẫn, giúp đỡ em trong suốt thời gian qua để
em có thể hoàn thành khóa luận này.
Trong quá trình thực hiện đề tài, do điều kiện về thời gian và sự hạn
chế về kiến thức, khó tránh khỏi những thiếu sót khi hoàn thành khóa luận
này. Vì vậy em rất mong nhận được những ý kiến đóng góp của thầy cô và
bạn bè để đề tài của em được hoàn thiện hơn .
Em xin chân thành cảm ơn!
Hà Nội, ngày 05 tháng 05 tháng 2010
Sinh viên thực hiện
Trần Hải Yến


LỜI CAM ĐOAN
Tôi xin cam đoan những vấn đề em trình bày trong khóa luận là những
kết quả nghiên cứu của riêng bản thân tôi dưới sự hướng dẫn tận tình của thầy
giáo Trần Minh Tước, bản khóa luận này không trùng với kết quả nghiên cứu
của các tác giả khác.
Nếu không tôi xin hoàn toàn chịu trách nhiệm.

Hà Nội, ngày 05 tháng 05 năm 2010
Sinh viên thực hiện
Trần Hải Yến



MỞ ĐẦU
1. Lý do chọn đề tài
Bài toán quy hoạch tuyến tính là bài toán giải quyết những vấn đề khó
khăn thường gặp trong cuộc sống và trong lao động sản xuất. Việc giải những
bài toán Quy hoạch tuyến tính này giúp ta tìm được phương án tối ưu nhất,
hợp lý nhất nhằm mang lại hiệu quả cao nhất trong sản xuất.
Thông thường chúng ta dùng phương pháp đơn hình để giải bài toán
Quy hoạch tuyến tính. Đây là một cách giải nhanh và hiệu quả. Tuy nhiên với
những bài toán có độ phức tạp lớn thì phương pháp đơn hình không còn thực
sự hiệu quả nữa. Với những bài toán này người ta thường sử dụng một
phương pháp khác là phương pháp điểm trong. Để tìm hiểu kỹ hơn về phương
pháp điểm trong tôi đã chọn đề tài: “Phương pháp điểm trong giải bài toán
quy hoạch tuyến tính” . cho khóa luận tốt nghiệp.
2. Mục đích, nhiệm vụ nghiên cứu
Mục đích nghiên cứu: Tìm hiểu các thuật toán của phương pháp điểm
trong để giải bài toán Quy hoạch tuyến tính.
Nhiệm vụ nghiên cứu: Trình bày khái quát và đánh giá hiệu quả các
thuật toán của phương pháp điểm trong.
3. Phƣơng pháp nghiên cứu
Trong đề tài sử dụng những phương pháp chính như: phương pháp tìm
kiếm, phân tích, thống kê, tổng hợp, so sánh,….
4. Bố cục khóa luận
Khóa luận gồm mở đầu, hai chương và kết luận
Chương I: Bài toán quy hoạch tuyến tính và phương pháp đơn hình
Chương II: Phương pháp điểm trong


Chƣơng I BÀI TOÁN QUY HOẠCH TUYẾN TÍNH VÀ
PHƢƠNG PHÁP ĐƠN HÌNH
1.1 Bài toán quy hoạch tuyến tính và quy hoạch tuyến tính đối ngẫu

1.1.1 Bài toán quy hoạch tuyến tính
a) Dạng tổng quát
t

Tìm véc tơ x = ( x1, x2
,..., xn )

n

∈ sao cho

n

f(x)
=

∑c
j=1

j

x j → min(max)

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

 n
∑ aij
x j ≥ bj
 j=1
 n a

∑ ij
x j ≤ bj
 j=1

n
D:

=

∑ bj

(i = 1,..., m)

(i = + 1,..., m )
m
1

2

(i = m2 + 1,..., m)

aij x j

j=1


 x j 0

x j≤ 0


 x

( j = 1,..., n1 )
( j = n1 + 1,..., n2 )
( j = n2 + 1,..., n)

j

b) Dạng chính tắc
n

 f (x) =
j=1


∑c

j

x j → min


 n
∑ aij
x j ≥ bj
 j=1
x ≥ 0
j



Hay dưới dạng ma trận

(i = 1, 2,..., m)
( j = 1, 2,..., n)


 f ( x ) = ct x → min

 Ax = b
x ≥ 0

Trong đó c, x ∈ n ,b
m
∈ ,

A là ma trận cấp m × n .

c) Dạng chuẩn tắc
n

 f (x) = ∑ cij x j → min
j=1

n


∑ aij
(i = 1, 2,..., m)
x j ≥ bj
j=1


( j = 1, 2,..., n)

xj
≥ 0



Hay dưới dạng ma trận
 f ( x ) = ct x → min

 Ax ≥ b
x ≥ 0

1.1.2 Bài toán quy hoạch tuyến tính đối ngẫu
a) Đối ngẫu của bài toán quy hoạch tuyến tính dạng chuẩn tắc
bt x → max
 t
 Ax≤ c
 y≥ 0

b) Đối ngẫu của bài toán quy hoạch tuyến tính dạng chính tắc
bt y → max
 t
 Ay≤ c
 y
 có dấu tùy ý
c) Đối ngẫu của bài toán quy hoạch tuyến tính dạng tổng quát



−bt y
→ min
 m

−a ij
∑(
) yi ≥ −c j

( j = 1, n )
1

i=1


n
∑( −a ij
) yi = −c j
 i=1
 yi ≥ 0

 yi tự do

(j

(i = 1, m )
(i = m + 1, m)
1

1



1.2 Tập lồi và các điểm cực biên.
C

n

)

= n1



a) Tập

+ 1, n

gọi là tập lồi nếu lấy 2 điểm bất kỳ x’ và x” ∈ C thì
đoạn

thẳng [x’,x”] nối 2 điểm này hoàn toàn thuộc C.
b) Điểm x0 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 nào nối 2 điểm khác nhau của C tức là không
tồn tại x’, x”∈ C, x’ ≠ x” sao cho x =α x’+ (1-α )x” với α nào đó
0

thuộc (0,1).
i

n


c) Một tổ hợp lồi của các điểm x ∈  (i
=1,2,...m)
1

x = α1x +

2

α2

là điểm x
có dạng:
∈

n

+ .... + αn x

x

m

trong đó

αi ≥ 0(i = 1, m), ∑αi = 1.
i=1

1.3 Phƣơng pháp đơn hình

n



1.3.1 Tƣ tƣởng của phƣơng pháp đơn hình
Xét bài toán quy hoạch tuyến tính dạng chính tắc:
 f ( x ) = ct x → min

 Ax = b
x ≥ 0

Với x,c ∈ n ,b
m
∈ ,

A là ma trận cấp m × n . Giả thiết rằng hạng A
= m (m là

số rằng buộc của bài toán).


Đã biết rằng:
- Nếu bài toán có phương án thì có phương án cực biên.
- Nếu bài toán 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.
Do đó ta có thể tìm một phương án tối ưu hay lời giải của bài toán
trong tập hợp các phương án cực biên. Do tập này là hữu hạn nên Dantzig đã
đề xuất một thuật toán gọi là thuật toán đơn hình:
Xuất phát từ một phương án cực biên x0 . Sau đó kiểm tra xem x0 có
phải là phương án tối ưu hay không. Nếu x0 chưa phải là phương án tối ưu thì
tìm cách cải tiến nó để được một phương án cực biên khác là x0 tốt hơn x0

theo nghĩa

f (x

1

) f ( x ) . Quá trình này lặp lại nhiều lần. vì số phương án
0

<
cực biên là hữu hạn nên sau một số hữu hạn bước lặp ta tìm được phương án
cực biên tối ưu.
Để thực hiện thuật toán đề ra ở trên ta cần làm rõ hai vấn đề:
- Làm thế nào để biết một phương án cực biên đã cho là tối ưu hay
chưa? Tức là đi tìm dấu hiệu tối ưu.
- Làm thế nào để một phương án cực biên chưa tối ưu tìm được một
phương án cực biên mới tốt hơn nó?
1.3.2 Dạng ma trận của thủ tục đơn hình
Xét bài toán quy hoạch tuyến tính dạng chính tắc
 f ( x ) = ct x → min

 Ax = b
x ≥ 0



Với x,c ∈ n ,b
m
∈ ,


A là ma trận cấp m × n . Để đơn giản ta giả
thiết

cơ sở J đang xét gồm đúng m cột đầu tiên của ma trận A, tức J={1,2,....,m}.
Đặt K={1,2,....,n}\J. Ma trận A được tách làm 2 : ma trận cơ sở AJ và phần
ngoài cơ sở AK. các véc tơ cũng được tách làm 2 phần tương ứng trong và
ngoài cơ sở J.
A
= ( AJ
AK )

 xJ 
 cJ 
x =   c =  .
c K 
,
 xK


Ta có thủ tục đơn hình dưới dạng ma trận như sau:
Bước 1: Tính phương án cực biên tương ứng cơ sở J theo công thức:
−1

X j = AJ b .
Tính véc tơ ước lượng

∆ =

A 1A
k


J

(
K

)
c

−c .

t
J

K

Bước 2: Kiểm tra dấu của các thành phần của véc tơ ∆K :
∆k
• Nếu tất cả các thành phần của véc tơ ước lượng đều ≤ thì
∆K
0
kết luận phương án đang xét là phương án tối ưu.
• Nếu có thành phần
∆k
mãn

của véc tơ
∆K

dương thì chọn s thỏa


∆s = max{ ∆k >0, k ∉ J } và chuyển sang bước
3.

Bước 3: Tính cột
s
z
s

theo các hệ số z js theo công thức:
−1

s

z = AJ a
Kiểm tra điều kiện: cột zs ≤ tức là z ≤ 0∀j ∈ J . Nếu
js
0


- Đúng: thì kết luận hàm mục tiêu giảm vô hạn trên miền ràng buộc.
Kết thúc thuật toán.
- Sai: chuyển sang bước 4.
Bước 4:
• Chọn chỉ số r thỏa mãn:


xr
zr
s




,j
> 0


xj ∈ J,
= min z js



z js

• Lập cơ sở mới

Jj= \r
(J

)

∪ s.

Bước 5: Tính ma trận nghịch đảo A−1 và lặp lại từ bước 1.
J
1

1.4 Thời gian thực hiện thuật toán.
1.4.1 Định nghĩa
Một thuật toán được gọi là tốt hơn nếu thời gian thực hiện để giải bài

toán là ngắn hơn. Thời gian thực hiện thuật toán được đo bằng số các phép
toán cần tiến hành để giải bài toán bằng thuật toán này. Tuy nhiên số phép
toán lại phụ thuộc vào “kích thước” của bài toán, là một số n nguyên dương,
chính là “số lượng” dữ liệu đầu vào. Do đó thời gian thực hiện thuật toán
thường được biểu diễn dưới dạng T(n) là một hàm số dương của n, đồng biến
theo n.
Để tiện so sánh thời gian thực hiện của các thuật toán, người ta đưa ra
ký hiệu O (đọc là O lớn).
Giả sử f

(n)

là hàm số không âm. Ta viết T

tốc độ tăng của T

( n)

(n) =
(n))

nghĩa là
O( f

khi n tiến đến vô cùng không vượt quá tốc độ tăng


của f ( n ) . Khi n lớn f ( n ) cho ta hình dung được mức lớn
,
của


T ( n) f (n)
,

là thước đo độ lớn của T ( n )

1.4.2 Thời gian thực hiện thuật toán đơn hình.
Trong mỗi bước lặp của phương pháp đơn hình cần thực hiện O(m.n)
2

phép toán số học để tính giá trị hàm mục tiêu, các biến cơ sở và O(m ) phép


toán để tính lại ma trận cơ sở. Tổng số phép toán số học trong một phép lặp
3

đơn hình là O(m.n + m ).
Nói chung, người ta thấy cần O(m) phép lặp đơn hình để giải bài toán
quy hoạch tuyến tính. Về trung bình, thời gian giải bài toán quy hoạch tuyến
tính bằng thuật toán đơn hình là một đa thức theo m và n.


Chƣơng II

PHƢƠNG PHÁP ĐIỂM TRONG

2.1 Tƣ tƣởng của phƣơng pháp điểm trong
2.1.1 Nội dung của ý tƣởng
Phương pháp đơn hình tìm lời giải bài toán quy hoạch tuyến tính bằng
cách di chuyển qua các điểm cực biên, nằm trên biên của miền rằng buộc.

Phương pháp điểm trong xuất phát từ một điểm nằm bên trong miền
rằng buộc và di chuyển dần đến lời giải tối ưu nhưng vẫn luôn ở bên trong
miền rằng buộc. Tên gọi của phương pháp này cũng đã cho thấy ý tưởng này.
Từ một điểm đang xét ta di chuyển dần đến một điểm mới tốt hơn theo
hướng d. Hướng di chuyển là tổ hợp của hai thành phần. Thành phần thứ nhất
là hướng giảm hàm mục tiêu. Thành phần thứ hai nhằm hướng vào bên trong
để không chạm vào biên của miền rằng buộc, gọi là thành phần hướng tâm.
Như vậy để giải quyết bài toán quy hoạch tuyến tính bằng phương pháp
này chúng ta phải tìm được 2 thành phần. Việc xác định 2 thành phần đó được
trình bày dưới đây.
2.1.2 Xác định hƣớng giảm
Xét miền rằng buộc của bài toán quy hoạch tuyến tính
 Ax = b

x ≤ 0
Xuất phát từ điểm x0 nằm bên trong miền rằng buộc, ta di chuyển đến
điểm mới x1= x 0+αd . Để không vi phạm các rằng buộc phải có Ad =
0 và α
đủ bé.
Giả sử z là hướng giảm nhanh nhất hàm mục tiêu tại điểm đang xét.
Chiếu gướng giảm này lên không gian con Ax = 0 ta được hướng giảm hàm
mục tiêu mà không vi pham ràng buộc.


Giả thiết rằng rankA = m. Toán tử chiếu lên không gian con Ax là :
P = I − At ( AAt )1 A
t

t


−1

vì ∀z, A(Pz) = A(I − A (AA )
= Az − Az = 0 .

t

t

−1

A)z = (A − AA (AA )

A)z

Vậy hướng di chuyển là d = Pz.
Trong trường hợp hàm mục tiêu là hàm tuyến tính f ( x ) = ct x thì
tại mọi
điểm x hướng giảm nhanh nhất là hướng ngược gradient –c. Ta cần tính −Pc .
Đặt ω = (
t −1
AA ) Ac

hay nói cách khác ω là nghiệm của hệ
phương trình

đại số tuyến tính: AAtω = Ac .
Ta có: Pc = (I − At (AAt )−1 A)c = c − At (AAt )−1 Ac = c
t
− Aω .

Để tính Pc thay cho việc nghịch đảo ma trận ta giải hệ phương trình đại số
tuyến tính AAtω = Ac , sau đó tính theo công thức ở trên.
2.1.3 Thành phần hƣớng tâm
Để dãy điểm đang xét nhằm hướng vào bên trong không chạm vào biên của
miền rằng buộc ta có hai cách:
Cách một (phương pháp hàm chắn): Ta cộng thêm vào hàm mục tiêu
một hàm số dương, dần tới +∞ mỗi khi dãy điểm gần tiến tới biên
miền ràng buộc. Một hàm chắn hay dùng là là hàm logarit:
n

ϕ(x) = −∑ln
xj

j=1

do các ràng buộc bất đẳng thức có
dạng trên dần tiến đến +∞ .

x≥
0

nên khi


x → 0 thì các
hàm chắn
Cách hai (phương pháp căn chỉnh ellipsoid): Ta xây dựng một elip có
tâm tại điểm đang xét và nội tiếp trong miền ràng buộc. Biên của miền ràng
buộc xác định bằng các đẳng thức xj= 0, nên nếu một ràng buộc sắp vi phạm



tại điểm đang xét thì bán trục của elip tương ứng với biến này sẽ ngắn, hướng
di chuyển sẽ được điều chỉnh để nghiêng về phía bán trục dài hơn của elip.

Hướng di chuyển


2.2 Một số thuật toán của phƣơng pháp điểm trong
2.2.1 Phƣơng pháp tỷ lệ affin
2.2.1.1 Ý tƣởng của thuật toán
Tại mỗi bước lặp, khi đã có môt nghiệm trong, ta thay bài toán quy
hoạch tuyến tính bằng bài toán có cùng hàm mục tiêu nhưng tập ràng buộc là
một elip có tâm là nghiệm trong đã có, xấp xỉ với tập lồi đa diện ràng buộc
của quy hoạch tuyến tính. Nghiệm của bài toán mới sẽ được chứng minh là
nghiệm trong của bài toán của bài toán quy hoạch tuyến tính và sẽ được dùng
làm tâm của elip ở bước lặp tiếp theo. Cứ tiếp tục quá trình này đến khi
khoảng cách đối ngẫu nhỏ hơn một ngưỡng ε > 0 nào đó.
2.2.1.2 Xây dựng thuật toán

Ta có hình trên là quá trình chạy thuật toán tỷ lệ affin cho bài toán dưới đây


min− x1 − x2

−x + 2x ≤ 8
1
2


2x

+
x

9

2
 1
3x − x ≤ 6
 1 2
 x1 , x2 ≥ 0
Bây giờ ta đi xét chi tiết từng bước của thuật toán.
Xét bài toán quy hoạch tuyến tính chính tắc
t

min c x,
Ax =
b, x

(1.1)

≥ 0.
0
Trước tiên ta đi xây dựng elip với tâm là nghiệm trong x đã có:
 x − x 0  

2

n

E= 

x
n
∈ :
∑


i

ρ
0

i=1

(1.2)

 ≤
2


i

 xi





Bài toán elip xấp xỉ là bài toán nhận được từ bài toán quy hoạch tuyến tính
(1.1) với nghiệm trong x0 đã cho và thay các ràng buộc x


0
elip (1.2). Ta có bài toán elip xấp xỉ:
t

min c
x, Ax

(1.3)

= b,
 x − x02 
∑ 0 i i ≤
n



i=1

 xi



ρ

2

bằng ràng buộc


Đổi biến x = X , X0 là ma trận đường chéo với các phần tử thứ I ở đường

0
x'
Xii = x ,
n .
i
chéo là

)

(

0

0

X

0

= diag x0 ,..., x0
1

Bài toán elip xấp xỉ trở thành bài toán cực tiểu hàm tuyến tính trên hình cầu:


t

0

min c X x

'

(1.4)

0

AX x '
=b
n

∑(
i=1

'−1)2 ≤

ρ

2

xi


B
=
Vì e là tâm hình cầu '∈ n x:



thuộc đa tập tuyến tính


H ={ x ' : AX

n

−1)2 ≤
(ρx 2' 
,


i=1

0

0

0

eX e = x , và
i 


cho nên e cũng là tâm của hình

x ' = b}
cầu với số chiều ít hơn số chiều của B
∩ H

và có cùng bán kính ρ .

Ở bài (1.4) hình cầu ràng buộc nằm trong đa tạp tuyến tính H song song

0

với không gian con Ker( AX ) :=
0

{x '∈

n

: AX do đó đóng vai trò

x ' = 0}

t
0
hướng –c ở đây phải là hướng P( −c X ), với P là phép chiếu  lên
n

0

Ker( AX ). Áp dụng công thức nghiêm tối ưu của bài toán tìm cực tiểu hàm
tuyến tính trên hình cầu ta có nghiệm tối ưu là :
*

x' = e
− ρ

0

PX c

0

 PX c 

(1.5)

0

Để tính PX c ta cần sử dụng bổ đề (1.1) sau đây:
BỔ ĐỀ(1.1): Giả sử A là ma trận cấp
m×n
mọi

với rank A = m. Khi đó với


x ∈ n : là hình chiếu của x lên
P(x) :
không gian
t
= A(

AAt ) 1 Ax
t

hàng R(A ) và x - P(x) là hình chiếu của x lên không gian KerA.
t

CHỨNG MINH: Theo định nghĩa của hình chiếu P lên R(A ) ta phải
tính

min

P(x)= arg
u∈

t

||x – A u||.
n

Do đó ta phải tìm min || x

− Atu ||

u∈

hoặc bài toán tương đương là

n

min(x − Atu)t (x − Atu) , đây là bài toán cực tiểu hàm cấp
hai: n
u∈


t

t

t


t

t

min(x
x − 2x A u + u AA u) .
n
u∈

*

t -1

Nghiệm của bài toán chính là điểm dừng u = (AA ) Ax. Do đó ta có:
t

t

t -1

P(x)=A u*=A (AA ) Ax.
t



Vì KerA là phần bù trực giao (R( A )) nên x-P(x) là hình chiếu
của x lên không gian nhân KerA.
0


Vì P là ma trận chiếu lên không gian con Ker( AX ) nên theo bổ đề trên ta có


PX 0 = (I − X 0 At ( A( X 0 )2 At ) 1 AX 0 ) X 0c
Vậy ta đã có nghiệm tối ưu của bài toán (1.4) biếu diễn qua A, c của bài toán
quy hoạch và nghiệm trong x0 đã biết.
0

Ta dùng phép đổi biến x=X x‟ vào (1.5) để được nghiệm tối ưu:

x* = x0 X 0 PX
0
− ρ
c

.

(1.6)

|| PX 0c
||
*

Ta thấy nghiệm tối ưu x của bài toán elip xấp xỉ là nghiệm chấp nhận
được của bài toán quy hoạch tuyến tính. Hơn nữa nó đạt cực tiểu hàm mục
tiêu ct x trong elip. Nhưng elip chỉ là một phần của tập lồi đa diện ràng buộc
của bài toán quy hoạch tuyến tính nên x* chưa phải là nghiệm tối ưu của bài
*

toán quy hoạch tuyến tính. Để x là nghiệm tối ưu của bài toán quy hoạch

tuyến tính thì

*

x phải rơi vào biên của tập lồi hay nói cách khác: “nếu

*

x0j
*

=

với j nào đó thì x cho bởi (1.6) là nghiêm tối ưu của bài toán quy hoạch
tuyến tính”.
Ta đi chứng minh khẳng định trên.


×