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.. 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 t
Trang 11.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
Trang 2LỜ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
Trang 3LỜ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
Trang 4MỞ ĐẦ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
Trang 5Chương I BÀI TOÁN QUY HOẠCH TUYẾN TÍNH VÀ
ij 1
ij 1
:
0 0
n
j n
j n
( 1, , )( 1, , )( 1, , )
1
ij 1
0
n
j j j n
j j
Trang 6c) Dạng chuẩn tắc
ij 1
ij 1
0
n j j n
j j
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
max0
t t
b x
A x c y
b y
A y c y
có dấu tùy ý
Trang 7
ij 1
ij 1
min
0
t m
i n
i i i
b y
y y
1,
1,1,1,
C 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 x0
= x’+ (1- )x” với nào đó thuộc (0,1)
c) Một tổ hợp lồi của các điểm xi n(i1,2, )m là điểm xn có dạng:
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:
số rằng buộc của bài toán)
tự do
Trang 8Đã 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 0
x Sau đó kiểm tra xem x0 có
phải là phương án tối ưu hay không Nếu 0
x 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à 0
x tốt hơn x0
theo nghĩa 1 0
f x f x Quá trình này lặp lại nhiều lần vì số phương án 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ó?
Trang 9Với x c, n,bm, 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
K
x x x
,
J K
c c c
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:
Bước 2: Kiểm tra dấu của các thành phần k của véc tơ K:
Nếu tất cả các thành phần của véc tơ ước lượng K đều 0 thì 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 của véc tơ K dương thì chọn s thỏa
mãn s= max{k>0, kJ } và chuyển sang bước 3
Kiểm tra điều kiện: cột z s 0 tức là z js 0 j J Nếu
- Đú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:
Trang 10thườ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 n O f n nghĩa là tốc độ tăng của T n 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) 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(m2
) phép
Trang 11toá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 đơn hình là O(m.n + m3
)
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
Trang 12Chươ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
0
Ax b x
Xuất phát từ điểm x nằm bên trong miền rằng buộc, ta di chuyển đến 0điểm mới x1= x0+d Để không vi phạm các rằng buộc phải có Ad = 0 và
Trang 13Giả thiết rằng rankA = m Toán tử chiếu lên không gian con Ax là :
1
P I A AA A
vì z A Pz, ( ) A I( A AA t( t)1A z) (AAA AA t( t)1A z) AzAz 0
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 t
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:
1( ) ln
n
j j
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 x j = 0, nên nếu một ràng buộc sắp vi phạm
Trang 14tạ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
Trang 152.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
Trang 16Bâ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
min ,
,0
t
c x
Ax b x
2 0
2 0
Trang 17
0 0
2 21
' ' 1
t
n
i i
i i
H x AX x b cho nên e cũng là tâm của hình
cầu với số chiều ít hơn số chiều của BH 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 với không gian con Ker( 0
: x' n:AX x'0 do đó đóng vai trò hướng –c ở đây phải là hướng P( t 0
x P x A AA Ax là hình chiếu của x lên không gian
hàng R(A t ) và x - P(x) là hình chiếu của x lên không gian KerA
CHỨNG MINH: Theo định nghĩa của hình chiếu P lên R(A t ) ta phải tính P(x)= arg min
Trang 18Vì KerA là phần bù trực giao ( ( )) t
R A nên x-P(x) là hình chiếu của x lên không gian nhân KerA
Vì P là ma trận chiếu lên không gian con Ker( 0
AX ) nên theo bổ đề trên ta có
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 c x t 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 x*j 0
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
Ta có bổ đề: Nếu x E thì x>0 khi <1 và x0 khi =1 Bổ đề được minh
họa bằng hình học sau và chứng minh được bằng giả tích:
Trang 20Do đó 0 0
j j
x s X s > 0, suy ra sj > 0, mặt khác theo định nghĩa chuẩn
||X s|| thì phải có 0 x si0 i 0 i j Mà xi o 0 nên si 0 i j Như
vậy ( ,y s ) thỏa mãn mọi ràng buộc của bài toán đối ngẫu Đồng thời cặp x* và
(y,s) thỏa mãn điều kiện độ lệch bù Do đó chúng là cặp nghiệm tối ưu
2.2.1.3 Mô tả thuật toán
* Đầu vào của thuật toán:
- Dữ liệu của bài toán , ,A b c
- Một nghiệm trong tức là nghiệm chấp nhận được gốc x0 > 0;
- Cỡ nới lỏng tối ưu 0;
- Tham số (0,1]
* Thật toán
Xuất phát từ x0
bước lặp điển hình xuất phát từ xk > 0 gồm các đoạn sau:
1 Tính nghiệm đối ngẫu ứng viên
Trang 216 Kiểm tra tính tối ưu: nếu xk j1 0 với một j nào đó thì ngừng xk1
khi đó là nghiệm gốc tối ưu Trái lại đặt k k 1và quay lại đoạn 1
2.2.1.4 Tìm nghiệm trong xuất phát
Để tìm nghiệm trong xuất phát 0
x ta đưa thêm vào biến x n1 và xét bài toán tăng cường:
1, 1 1
chứng minh được xn+1= 0 là nghiệm tối ưu của bài toán tăng cường, do đó nó
là nghiêm tối ưu của bài toán gốc
2.2.1.5 Nhận xét về thuật toán
Trong thuật toán affin, tại mỗi bước lặp thời gian tính toán chủ yếu là
dành để tính nghiệm đối ngẫu xấp xỉ Cụ thể là: đầu tiên tính ma trận A(Xk
)2 A t với O(m2n) phép toán số học Sau đó là giải hệ phương trình tuyến tính có ma
Trang 222.2.2 Thuật toán giảm thế
2.2.2.1 Ý tưởng thuật toán
Do bước nhảy trong thuật toán affin bị giới hạn khi nghiệm hiện tại x
gần chạm đến biên của đa diện lồi, trong thuật toán giảm thế người ta đưa
thêm vào hàm mục tiêu các số hạng có tác dụng phạt khi x gần chạm đến biên của đa diện lồi Như vậy x sẽ được giữ càng cách xa biên của đa diện lồi càng tốt nếu x chưa gần với nghiệm tối ưu
Thuật toán giảm thế khắc phục điểm yếu của thuật toán tỷ lệ affin là „bị bẫy‟ khi gần chạm vào biên của đa diện lồi
2.2.2.2 Xây dựng thuật toán
Ta có hình vẽ trên là quá trình chạy thuật toán cho bài toán sau đây:
Trang 23Bây giờ ta 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 dạng chính tắc:
, 0,
t
y b
y A s c s
ít Cách tốt nhất để khắc phục tình trạng này là „đẩy xa‟ điểm hiện hành ra khỏi biên Đồng thời các bước của thuật toán cũng phải làm giảm dần độ lệch
bù stx (stx cũng chính là lỗ hổng đối ngẫu, tức là độ lệch giữa hai giá trị mục
tiêu của hai bài toán gốc và đối ngẫu)
Để đạt được hai điều này ta đưa thêm vào hàm thế được định nghĩa như sau:
( , ) log log log
t
G x s q s x x s (2.1)
Trang 24ở đây q > n là hằng số, log là kí hiệu của loge ta thấy G(x,s) là một lọa hàm
phạt: số hạng đầu đặc chưng cho lỗ hổng đối ngẫu, hai số hạng sau phạt vào
sự gần biên của nghiệm trong x và s
Ta xét định lý (2.1): Giả sử x 0 >0 và (y0,s0) với s 0 >0 là nghiệm chấp nhận được của bài toán quy hoạch gốc và quy hoạch đối ngẫu tương ứng Mọi thuật toán sao cho ở các bước luôn đảm bảo tính chấp nhận được của cặp nghiêm hiện hành và giảm hàm thể G(x,s) một lượng không ít hơn 0
sẽ đạt được cặp nghiệm gốc và đối ngẫu với lỗ hổng đối ngẫu ( ) K t K
1 1( k , k ) ( k, k) ,
G x s G x s k
( K, K) ( , )
G x s G x s K
Trang 25Với K bước xác định theo (2.2) thì ta suy ra được
1( K, K) ( ) log log
Định lý trên đã khẳng định nếu qua mỗi bước lặp của thuật toán bất kỳ mà
hàm thế G(x,s) đều giảm một lượng cố định thì ta sẽ đạt được nghiệm - tối
ưu của cả cặp quy hoạch đối ngẫu nhau sau một số nhỏ bước lặp
Cũng từ định lý trên cũng cho ta ý tưởng của thuật toán: ở mỗi bước
lặp, xuất phát từ nghiệm gốc trong hiện hành x > 0 và nghiệm trong đối ngẫu
hiện hành s > 0 ta cố gắng tìm hướng d sao cho G x( d s, )G x s( , ) và xd
vẫn là nghiệm trong gốc tức là d phải thỏa mãn bổ đề (1.1):
|| ||
G x d s Ad
G xd s theo d, ở đây x G x s( , ) là gradient (đạo hàm của G x s x'( , ) ) của
G(.,s) tại x, đặc biệt ở đây G(.,s):n n là phiếm hàm nên G x sx'( , ) là vectơ n chiều và gọi là gradient
Tai mỗi bước ta cần giải bài toán xấp xỉ: