Một trong các lĩnh vực c a toán học th ờng ứng dụng công nghệ thông tin để giải quyết đó là các bài toán về quy hoạch tuyến tính.. Trong mô hình bài toán tổng quát nếu thêm vào điều kiện
Trang 1Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
Trang 2Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
Trang 3Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
LỜI CAM ĐOAN Tôi xin cam đoan luận văn “Bài toán quy hoạch nguyên, thuật toán Gomory và ứng dụng trong cắt thép xây dựng” là công trình nghiên cứu do tôi
thực hiện d i sự h ng d n c a TS Nguyễn Hải Minh và TS Vũ Vinh Quang Các nội dung đ ợc trình bày trong luận văn là những kết quả đạt đ ợc trong thời tôi gian thực đề tài d i sự h ng c a tập thể giáo viên h ng d n, tôi không sao chép nguyên bản lại kết quả c a các nghiên cứu đã từng đ ợc công bố và đây cũng là kết quả c a quá trình nghiên cứu, học tập và làm việc nghiêm túc c a tôi trong quá trình học cao học Bên cạch đó, trong một số nội dung luận văn là kết quả phân tích, nghiên cứu, tổng hợp từ nhiều nguồn tài liệu khác Các thông tin tổng hợp hay các kết quả lấy từ nhiều nguồn tài liệu khác đã đ ợc tôi trích d n một cách đầy đ và hợp lý Nguồn tài tài liệu tham khảo có xuất xứ rõ ràng và đ ợc trích d n hợp pháp
Các số liệu và thông tin sử dụng trong luận văn này là trung thực
Thái Nguyên, ngày tháng năm 2015
Người cam đoan
Hoàng Quang Hưng
Trang 4Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
ỜI CẢM ƠN
Tôi xin chân thành cảm ơn các thầy, cô trong Viện Công nghệ thông tin,
Tr ờng Đại học Công nghệ thông tin và Truyền thông - Đại học Thái Nguyên đã tham gia giảng dạy, giúp đỡ tôi trong suốt quá trình học tập nâng cao trình độ kiến thức để phục vụ cho công tác giảng dạy c a tôi hiện tại và sau này
Tôi xin bày tỏ lòng biết ơn chân thành t i TS Nguyễn Hải Minh và TS.Vũ Vinh Quang, các Thầy đã tận tình h ng d n h ng d n tôi trong suốt thời gian thực hiện luận văn
Vì điều kiện thời gian và trình độ có hạn nên luận văn cũng không thể tránh khỏi những thiếu sót Tôi xin kính mong các Thầy, Cô giáo, các bạn đồng nghiệp đóng góp ý kiến để đề tài đ ợc hoàn thiện hơn
Tôi xin chân thành cảm ơn!
Trang 5MỤC LỤC
MỞ ĐẦU 1
NỘI DUNG 2
Ch ơng 1 CÁC KIẾN THỨC CƠ BẢN VỀ BÀI TOÁN QUY HOẠCH TUYẾN TÍNH 3
1.1 Mô hình tổng quát về bài toán quy hoạch tuyến tính 3
1.1.1 Gi i thiệu bài toán quy hoạch tuyến tính 3
1.1.2 Bài toán tổng quát 3
1.1.3 Dạng chuẩn và dạng chính tắc 4
1.1.4 Đ a quy hoạch tuyến tính về dạng chuẩn hoặc dạng chính tắc 4
1.2 Thuật toán đơn hình 5
1.2.1 Đ ờng lối chung và cơ sở c a thuật toán 6
1.2.2 Cơ sở c a thuật toán 6
1.2.3 Thuật toán đơn hình 8
1.2.4 Công thức đổi cơ sở, bảng đơn hình 9
1.3 Lý thuyết đối ng u 12
1.3.1 QHTT d i dạng chuẩn, cặp bài toán tuyến tính đối ng u đối xứng 12
1.3.2 Ý nghĩa cặp bài toán đối ng u 15
1.3.3 Ph ơng pháp đơn hình đối ng u từ vựng 15
Ch ơng 2 BÀI TOÁN QUY HOẠCH NGUYÊN VÀ THUẬT TOÁN GOMORY 19
2.1 Mô hình tổng quát 19
2.2 Một số mô hình thực tế 20
2.2.1 bài toán v i điều kiện không chia cắt đ ợc 20
2.2.2 Bài toán v i điều kiện logic 20
2.2.3 Bài toán v i biến số rời rạc 21
2.2.4 Bài toán v i vốn đầu t ban đầu 21
2.3 Cơ sở lý thuyết về thuật toán nhát cắt Gomory 22
Trang 62.3.1 T t ởng 22
2.3.2 Khái niệm lát cắt đúng 24
2.3.3 T t ởng ph ơng pháp cắt Dantzig 24
2.4 Thuật toán Gomory giải bài toán quy hoạch nguyên 25
2.4.1 Thuật toán Gomory thứ nhất 25
2.4.2 Thuật toán Gomory thứ hai 36
2.4.3 Thuật toán Gomory thứ ba 44
Ch ơng 3 CÀI ĐẶT BÀI TOÁN CẮT THÉP TRONG XÂY DỰNG 60
3.1 Đánh giá thuật toán Gomory 60
3.2 Ứng dụng giải bài toán cắt thép trong xây dựng 61
3.2.1 Mô hình bài toán thực tế 61
3.2.2 Mô hình toán học 61
3.2.3 Thuật toán giải bài toán 61
3.3 Cách sử dụng ch ơng trình 64
3.3.1 Các biến sử dụng trong ch ơng trình 64
3.3.2 Cách sử dụng ch ơng trình 64
3.4 Kết quả cài đặt 65
KẾT LUẬN 71
TÀI LIỆU THAM KHẢO 72
PHẦN PHỤ LỤC 73
Trang 7MỞ ĐẦU
Kể từ khi máy vi tính xuất hiện thì công nghệ thông tin và toán học luôn là hai lĩnh vực song song cùng phát triển Tr c đây, việc giải các bài toán, đặc biệt là các bài toán phức tạp th ờng tốn rất nhiều thời gian và công sức, thì ngày nay, việc giải các bài toán đó, có thể diễn ra nhanh chóng trên máy vi tính bằng cách sử dụng các thuật giải Việc giải các bài toán một cách nhanh chóng trên máy tính không những giúp cho toán học phát triển mà nó còn giúp cho rất nhiều ngành khác cùng phát triển theo Một trong các lĩnh vực c a toán học th ờng ứng dụng công nghệ thông tin để giải quyết đó là các bài toán về quy hoạch tuyến tính Mô hình bài toán quy hoạch tuyến tính là một mô hình đã đ ợc phát triển từ rất lâu Trong mô hình tổng quát, đã xuất hiện rất nhiều các thuật toán nổi tiếng để xác định ph ơng án tối
u nh , thuật toán đơn hình gốc c a Dantzig, thuật toán đơn hình cải biên hay thuật toán đối ng u Trong mô hình bài toán tổng quát nếu thêm vào điều kiện ràng buộc
là các nghiệm c a bài toán phải thỏa mãn nguyên, thì chúng ta nhận đ ợc bài toán quy hoạch nguyên Do tính chất nguyên c a nghiệm nên bài toán quy hoạch nguyên
có rất nhiều ứng dụng trong thực tế, nh bài toán vận tải, bài toán lập lịch biểu, bài toán cái túi, bài toán pha cắt vật t …Để tìm nghiệm c a bài toán quy hoạch nguyên thì thuật toán Gomory đóng vai trò quan trọng đặc biệt là trong công nghệ thông tin
Nhận thấy tính thiết thực c a vấn đề này và đ ợc sự gợi ý c a giảng viên
h ng d n, tôi đã chọn đề tài “Bài toán quy hoạch nguyên, thuật toán Gomory và
ứng dụng trong cắt thép xây dựng” làm đề tài cho luận văn tốt nghiệp c a mình
Trang 8
NỘI DUNG Chương 1: Ch ơng này trình bày nh ng kiến thức cơ bản về quy hoạch
tuyến tính, bài toán tổng quát, dạng chuẩn và dạng chính tắc c a bài toán quy hoạch tuyến tính Cách đ a bài toán về dạng chuẩn hoặc dạng chính tắc thuật toán đơn hình giải bài toán quy hoạch tuyến tính
Chương 2: Ch ơng này trình bày về bài toán quy hoạch nguyên, một số bài
toán trong thực tế Cơ sở lý thuyết c a ba thuật toán Gomory để giải bài toán quy hoạch nguyên
Chương 3: Ch ơng này là kết quả cài đặt bài toán cắt thép trong xây dựng
dựa vào thuật toán Gomory
Trang 9Chương 1
CÁC IẾN THỨC CƠ BẢN VỀ BÀI TOÁN QUY HOẠCH TUYẾN
TÍNH
1.1 Mô hình tổng quát về bài toán quy hoạch tuyến tính
1.1.1 Giới thiệu bài toán quy hoạch tuyến tính
Quy hoạch tuyến tính là một trong những l p bài toán tối u đ ợc nghiên cứu trọn vẹn cả về ph ơng diện lý thuyết l n thực hành
Quy hoạch tuyến tính bắt nguồn từ những nghiên cứu c a nhà toán học Nga nổi tiếng, viện sĩ Kantorovich L.V đ ợc nêu trong một loạt công trình về bài toán kế hoạch hóa sản xuất, công bố năm 1938 Năm 1947 nhà toán học Mỹ Dantzig đã nghiên cứu và đề xuất ph ơng án đơn hình để giải bài toán quy hoạch tuyến tính Năm 1952 ph ơng pháp đơn hình đã đ ợc chạy trên máy tính điện tử ở Mỹ
Quy hoạch tuyến tính là lĩnh vực toán học nghiên cứu các bài toán tối u mà hàm mục tiêu và các ràng buộc đều là hàm và các ph ơng trình hoặc bất ph ơng trình tuyến tính
Các b c nghiên cứu và ứng dụng một bài toán quy hoạch tuyến tính điển hình nh sau:
- Xác định vấn đề cần giải quyết, thu thập dữ liệu
- Lập mô hình toán học
- Xây dựng các thuật toán để giải bài toán đã mô hình hóa bằng ngôn ngữ thuận lợi cho việc lập trình cho máy tính
- Tính toán thử và điều chỉnh mô hình nếu cần
- Áp dụng giải các bài toán thực tế
1.1.2 Bài toán tổng quát
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:
Trang 10= 1
max
n
j j j
ì
ïï ³ïïî
f x = - å c x ®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ó
ì
ïï ³ïïî
å
1.1.4 Đƣa quy hoạch tuyến tính về dạng chuẩn hoặc dạng 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 dạng chính tắc nhờ các phép biến đổi tuyến tính sau:
Trang 11-3 Một biến x không bị ràng buộc dấu có thể thay thế bởi hiệu c a 2 biến j
không âm bằng cách đặt:x j = x j+ - x j- vơi x j+ ³ 0 và x j- ³ 0
1.2 Thuật toán đơn hình
Cơ sở c a ph ơng pháp này đ ợc Dantzig công bố năm 1947 có tên gọi là
ph ơng pháp đơn hình Sở dĩ có tên gọi nh vậy vì những bài toán đầu tiên đ ợc giải bằng ph ơng pháp đó có các ràng buộc dạng:
Trang 121.2.1 Đường lối chung và cơ sở của thuật toán
Đường lối chung
ph ơng pháp đơn hình dựa trên hai nhận xét sau:
- Nếu bài toán quy hoạch tuyến tính có ph ơng án tối u thì có ít nhất một đỉnh c a D là ph ơng án tối u
- Đa diện lồi D có một số hữu hạn đỉnh
Nh vậy phải tồn tại một thuật toán hữu hạn Thuật toán gồm 2 giai đoạn:
- Giai đoạn I: Tr c hết tìm một ph ơng án cực biên (một đỉnh)
- Giai đoạn II: Kiểm tra điều kiện tối u v i ph ơng án đó
- Nếu điều kiện tối u đ ợc thỏa mãn thì ph ơng án đó là tối u Nếu không
ta chuyển sang ph ơng án cực biên m i sao cho cải tiến giá trị hàm mục tiêu
- Kiểm tra điều kiện tối u đối v i ph ơng án m i
Ng ời ta thực hiện một dãy các th tục nh vậy cho đến khi nhận đ ợc
ph ơng án tối u, hoặc đến tình huống bài toán không có ph ơng án tối u
1.2.2 Cơ sở của thuật toán
Xét bài toán quy hoạch tuyến tính d i dạng chính tắc
, ax
< > ®
A = b0
x x
íïïì
ï ³
ïî
Trong đó A là ma trận kích th c m n´ và giả sử rằng hạng c a ma trận A
là m (điều này không làm mất tính tổng quát)
Giả sử x là một ph ơng án cực biên nào đó
Trang 13Ta chọn một hệ thống m vectơ độc lập tuyến tính Î { , A j j Î J} sao cho
*
j Ê J Hệ thống đó là cơ sở c a x , các vectơ , A j j Î J và biến x j j, Î J đ ợc gọi là các vectơ và các biến cơ sở t ơng ứng Các vectơ và các biến A x j j, j( Ï J)gọi là vectơ và các biến phi cơ sở
Nếu x không thoái hóa thì tồn tại một cơ sở duy nhất, đó là *
Bài toán quy hoạch tuyến tính đ ợc gọi là không thoái hóa nếu tất cả các
ph ơng án cực biên c a nó đều không thoái hóa
giả sử bài toán không thoái hóa và ta đã tìm đ ợc một ph ơng án cực biên
Trang 14Giả sử ta đã đ a quy hoạch tuyến tính về dạng chính tắc:
(max)
cx = z
0
A x b x
íï =ïì
ï ³ïî Giai đoạn 1: Tìm một ph ơng án cực biên xuất phát x và cơ sở c a nó
-1) Nếu ( k" Ï J )D ³k 0Þ x là nghiệm tối u Dừng
2) Nếu không x không phải là nghiệm tối u
- ($ Ïk J )D <k 0và z jk £ 0, " Îj J Þ bài toán quy hoạch tuyến tính
không có nghiệm 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 D <k 0, đều tồn tại j Î J : z jk > 0Þ chọn
min | 0
D = D D <
Trang 15Đ a vectơ A vào cơ sở s
J = J r È s Quay trở lại khởi đầu c a giai đoạn 2
1.2.4 Công thức đổi cơ sở, 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
x
j r z
íïï - ¹ïï
ïï
= ìïïïïïïî
' nÕu nÕu =
Trang 16j r z
íïï - ¹ïï
ïï
= ìïïïïïïî
-Để 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ừ f ) đều ³ 0, nghĩa là D ³ 0 k k " , khi
đó x là ph ơng án tối u
Nế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 £ 0 hay không ?
- Nếu có thì bài toán không có ph ơng án tối u
- Nếu không thì chọn cột s sao cho D =s min {Dk | D <k 0}
rồi chọn trong số những dòng cắt cột s ở những số d ơng dòng r mà tỉ số
z
Cột s gọi là cột xoay, vectơ A đ a vào cơ sở
Dòng r gọi là dòng xoay Vectơ A , bị đ a ra khỏi cơ sở
Phần tử z rs > 0 là giao c a cột xoay và dòng xoay gọi là phần tử trục Các phần tử z js,j ¹ r gọi là phẩn tử xoay
x
j r z
íïï - ¹ïï
ïï
= ìïïïïïïî
' nÕu nÕu =
Trang 17-gọi là các công thức đổi cơ sở
bảng đơn hình m i đ ợc suy từ bảng cũ bằng cách thay ,c A trong dòng r r
xoay bằng ,c A Sau đó thực hiện phép biến đổi d i đây: s s
1) Chia mỗi phần tử dòng xoay cho phần tử trục (đ ợc số 1 ở vị trí trụ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ử xoay
t ơng ứng (đ ợc số 0 ở mọi vị trí còn lại c a cột xoay)
Dòng m i = dòng cũ t ơng ứng - dòng chính ´ phần tử xoay
L u ý rằng sau phép xoay thì ở vị trí D ta thu đ ợc số 0 vì lúc này s A trở s
thành vectơ đơ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 xung quanh trục z Sau khi rs
thực hiện phép xoay 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 D <0 thì ta lại tiếp tục quá trình k
Chú ý : trong bảng đơn hình ở bảng 1.1, không giảm tổng quát ta coi các
vectơ cơ sở đ ợc đánh số A A1, 2, ,A nghĩa là: m J = {1, 2, }m
Trang 180 0 1 0 0 z jk
0 0 0 0 1 z mk
z m s
mn z
1.3 ý thuyết đối ngẫu
Ta chứng tỏ ở đây rằng đối v i mọi bài toán quy hoạch tuyến tính ta có thể thiết lập t ơng ứng cho nó một bài toán khác gọi là bài toán đối ng u c a nó Khái niệm đối ng u là một trong các khái niệm cơ bản c a quy hoạch tuyến tính Trong rất nhiều tr ờng hợp để có đ ợc những kết luận chấp nhận đ ợc cho một trong các bài toán trên thì việc nghiên cứu bài toán đối ng u c a nó lại tỏ ra thuận tiện hơn Hơn nữa khi ta phân tích song song một cặp bài toán đối ng u ta có thể nhận đ ợc những kết luận hay cả về toán học cả về ý nghĩa kinh tế
1.3.1 QHTT dưới dạng chuẩn, cặp bài toán tuyến tính đối ngẫu đối xứng
Định nghĩa 1 Cho QHTT d i dạng chuẩn
< c x, > = z(min)
Trang 19( )
0
A x b p
Ở đây A là ma trận chuyển vị c a A , y là vectơ cột
Ta chú ý rằng các biến đổi ng u t ơng ứng một – một v i các ràng buộc c a quy hoạch ban đầu (mà ta sẽ gọi là quy hoạch gốc), trong khi những ràng buộc c a bài toán đối ng u t ơng ứng một – một các biến c a quy hoạch gốc Điều đó thể hiện rõ trong sơ đồ sau:
Khi đọc theo hàng c a sơ đồ này ta đ ợc các ràng buộc (ngoài x ³ 0 ) và hàm mục tiêu c a quy hoạch gốc
Khi đọc theo cột ta đ ợc các ràng buộc (ngoài y 0) và hàm mục tiêu c a quy hoạch đối ng u
Ví dụ: quy hoạch đối ng u c a bài toán
ï + + ³ì
ïï ³ïïî
min max
Trang 20y y
y y
íï + £ïï
ï + £ïï
y
íï £ïì
ï ³ïî
Đối v i mọi cặp ph ơng án chấp nhận đ ợc x , y t ơng ứng c a ( ) p và ( )p ta có: '
< b y, > £ < c x, >
Hệ quả: Nếu x là các ph ơng án chấp nhận đ ợc t ơng ứng c a cặp quy
hoạch tuyến tính đối ng u (p) và nếu < , '> c x b y , thì :
(1) < , '>c x = < b y, >
(2) x và y là các ph ơng án tối u t ơng ứng c a ( p ) và ( p ’)
Định lý 2 Cho 1 quy hoạch tuyến tính
- Nếu nó có ph ơng án chấp nhận đ ợc thì nó có ph ơng án cực biên
- Nếu nó có ph ơng án tối u thì nó có ph ơng án cực biên tối u
- Nếu nó có ph ơng án chấp nhận đ ợc và nếu giá trị hàm mục tiêu chặn (chặn trên nếu là bài toán cực đại hoá, chặn d i nếu là bài toán cực tiểu hoá), thì nó
có ph ơng án cực biên tối u
Định lý 3 Nếu 2 QHTT đối ng u ( p ) và ( p ’) đều có ph ơng án chấp nhận
đ ợc thì chúng đều có ph ơng án tối u và giá trị tối u c a các hàm mục tiêu bằng nhau
Trang 21 Định lý 4 (định lý đối ng u)
Cho hai quy hoạch tuyến tính đối ng u ( p ) và ( p ’)
- Nếu chúng đều có ph ơng án chấp nhận đ ợc thì chúng đều có ph ơng án tối u và giá trị tối u c a các hàm mục tiêu bằng nhau
- Nếu một trong hai quy hoạch có một l p các ph ơng án chấp nhận đ ợc mà đối v i chúng hàm mục tiêu không bị chặn (chặn d i đối v i '
( )p , chặn trên đối
v i( )p' ), khi đó quy hoạch khác không có ph ơng án chấp nhận đ ợc
- Nếu ( )p (t ơng ứng ( )p , có một ph ơng án chấp nhận đ ợc nh ng' ( )p , '
(t ơng ứng ( )p ) không có thì ( ) p (t ơng ứng( )p ) có một l p các ph ơng án chấp '
nhận đ ợc mà đối v i chúng hàm mục tiêu không bị chặn d i (t ơng ứng không bị chặn trên)
- Có thể xảy ra là cả ( )p và ( )p đều không có ph ơng án chấp nhận đ ợc '
Định lý 5 (Định lý về độ lệch bù)
Điều kiện cần và đ để cặp ph ơng án chấp nhận đ ợc c a các quy hoạch tuyến tính đối ng u ( )p và ( )p là cặp ph ơng án tối u là: '
1.3.2 Ý nghĩa cặp bài toán đối ngẫu
- Khi có c >0, j j " thì bài toán đối ng u biết ngay đ ợc ph ơng án cực biên
- Nếu Y là ph ơng án cực biên c a bài toán đối ng u thì khi bài toán gốc thêm một ràng buộc ta có (y , 0) v n là ph ơng án cực biên c a bài toán đối ng u
- Đôi khi dùng cặp bài toán đối ng u để giải gần đúng theo ý nghĩa sau: giải
cả hai bài toán và nếu hiệu giữa các giá trị t ơng ứng c a các hàm mục tiêu đ nhỏ thì dừng lại và ph ơng án cực biên thu đ ợc này là nghiệm gần đúng
1.3.3 Phương pháp đơn hình đối ngẫu từ vựng
Ph ơng pháp đơn hình đối ng u xây dựng một dãy hữu hạn các giả ph ơng
án X0,X1, ,X k Giả ph ơng án cuối cùng là k
X là ph ơng án c a bài
toán dạng chính tắc Hàm mục tiêu x0 = x X0( r) không tăng khi r tăng khi r mỗi
Trang 22giả ph ơng án r
X ứng v i bảng T và các tập r B N Quá trình giải gồm b c lặp r, rban đầu (xây dựng giả ph ơng án xuất phát 0
R R
Trang 23 Tính l giả ph ơng án X 0
Giả sử ta xây dựng bảng đơn hình T ứng v i bài toán dạng chính tắc không
phải là l chuẩn, ứng v i nó có các tập B và N Giả sử hàm j
ì
ïï ³ïïî
íï = + ïï
-ì
ï ³ïïî
0 ( { }), 0 ( { 1}) \ { }
B = B È l N = N È n + l
Trang 24 Sơ đồ khối của thuật toán đơn hình đối ngẫu từ vựng
r kj
R R
Trang 25Chương 2
BÀI TOÁN QUY HOẠCH NGUYÊN VÀ THUẬT TOÁN GOMORY
2.1 Mô hình tổng quát
Bài toán quy hoạch nguyên tổng quát có thể phát biểu d i dạng sau:
Tìm cực đại hoặc cực tiểu c a hàm mục tiêu
thành phần c a nó chỉ nhận các giá trị rời rạc Thông th ờng tập D đ ợc xác định
bởi một hệ thống các ph ơng trình và bất ph ơng trình đ ợc bổ sung bởi các điều kiện về tính rời rạc c a biến số
Trong các bài toán quy hoạch nguyên ta cần phải tìm cực đại hoặc cực tiểu
c a hàm mục tiêu ở trên, còn các biến số x x1, 2, ,x phải thỏa mãn các điều kiện n
sau:
nguyên
1
( , , , ) 0, 1, 2, ,( , , , ) 0, 1
( , , , n) j
Z = f x x x - x nguyên j = 1, 2, ,n1 thu đ ợc các hàm số , ,i 1, ,
f g i = m là tuyến tính Do đó ta có bài toán quy hoạch nguyên tuyến tính (toàn phần hay bộ phận)
Trang 262.2 Một số mô hình thực tế
2.2.1 bài toán với điều kiện không chia cắt được
Trong một số bài toán từ ý nghĩa thực tế các biến phải nhận giá trị nguyên, khi đó thông th ờng ta có bài toán dạng Z = f x x( ,1 2, ,x n)- x j nguyên
1
1, 2, ,
j = n : Sau đây là một ví dụ
Giả sử một nhà máy có khả năng sản xuất n loại sản phẩm E E1, 2, ,E n
không phải là sản phẩm sản xuất hàng loạt, mà là một số l ợng không l n lắm các sản phẩm không thể chia cắt đ ợc (chẳng hạn các cỗ máy, các thiết bị, máy bay, ôtô, ) Nếu ký hiệu x là l ợng sản phẩm j E cần sản xuất thì đối v i j x j ta phải yêu cầu điều kiện nguyên Nhà máy cần phân phối sử dụng dự trữ vật t c a mình sao cho tổng khối l ợng hàng hóa xuất s ởng đem lại lợi nhuận nhiều nhất Ta đ a vào các ký hiệu sau:
a - L ợng vật t cần thiết để sản xuất một đơn vị sản phẩm E j
Khi đó bài toán tối u có dạng:
= 1
max
n
j j j
ïïî
å
2.2.2 Bài toán với điều kiện logic
Xét điều kiện logic “hoặc là - hoặc là” Điều kiện này ta th ờng gặp khi phải lựa chọn ph ơng án sản xuất, xây dựng
Ví du: giả sử
j
x là sản phẩm loại j cần sản xuất Trong thực tế th ờng gặp phải điều kiện: Hoặc là không sản xuất sản phẩm j ( x = j 0), hoặc là nếu sản xuất
Trang 27thì không ít hơn d Giả sử biết cận trên j p c a biến j x j trong bài toán đang xét thì
có thể đ a vào biến số Boole y j (tức là biến chỉ nhận giá trị 0 hoặc 1), ta có thể đ a ràng buộc hoặc là x = j 0,” hoặc là x j > d j” v i hệ ràng buộc t ơng đ ơng sau:
00
i
y = hoặc = 1
2.2.3 Bài toán với biến số rời rạc
Trong thực tế có tr ờng hợp biến số chỉ nhận một số giá trị nhất định
Q là tập các quy mô công suất tiêu chuẩn
Bằng cách đ a vào các biến phụ t ràng buộc trên t ơng đ ơng v i hệ ràng ij
å
0
ij
t = hoặc =1; i = 1, 2, ,m
2.2.4 Bài toán với vốn đầu tư ban đầu
Trong một số bài toán tối u ta gặp phải hàm mục tiêu dạng:
0( )
Trang 28Trong đó d j > 0,j = 1, 2, ,n Các đại l ợng
j
d , có thể hiều là số vốn mà ta phải đầu t vào việc sử dụng ph ơng thức sản xuất j , nó không phụ thuộc vào
R º V L là một đa diện nguyên (các đỉnh đều là nguyên)
Trang 29Hệ quả 1 Giả sử ( , ) X R C là ph ơng án tối u c a bài toán ( , ) R C , khi đó
( , )
X R C cũng là ph ơng án tối u c a bài toán ( L C Vì vậy để giải bài toán N, )quy hoạch tuyến tính ( , )N
L C ta giải bài toán ( , )R C
2 R º V L( N) là đa diện nguyên duy nhất mà tập các điểm nguyên c a nó trùng v i N
4 Khi xây dựng V L( N) ta đã không sử dụng thông tin về hàm mục tiêu
CX c a bài toán quy hoạch tuyến tính nguyên Vậy có nên tìm một bài toán quy
hoạch tuyến tính ( , )A C theo bài toán ( L C sao cho thỏa mãn 3 điều kiện: N, )
1) CX (L C = N, ) CX A C (các trị tối u trùng nhau) ( , ) (2.4) 2) A N = L N (tập các điểm nguyên bằng nhau ) (2.5)
3) Tất cả các ph ơng án tối u c a bài toán quy hoạch tuyến tính (A, C) đều thỏa mãn điều kiện nguyên:
*
A ÇA Í A (2.6) (trong đó c
A là tập hợp các ph ơng án tối u c a bài toán ( , ) A C ; A* là tập hợp c a
các đa diện lồi A ) nói chung việc xây dựng đa diện lồi A thỏa mãn (2.4) - (2.6)
cũng rất phức tạp và ch a có thuật toán hữu hiệu
Trang 302.3.2 hái niệm lát cắt đúng
Giả sử bài toán ( , )N
L C là bài toán quy hoạch nguyên nào đó và ph ơng án
tối u c a bài toán quy hoạch tuyến tính t ơng ứng không thỏa mãn điều kiện nguyên, tức là ( , ) N
X L C Ï L Khi đó bất đẳng thức:
j j j
a x £ b
å hay aX £ b (2.7) gọi là lát cắt đúng nếu thỏa mãn 2 điều kiện:
- Điều kiện cắt: X L C không thỏa mãn (2.7) tức là ( , ) aX L C( , )> b
- Điều kiện đúng: nếu X là ph ơng án c a ( L C thì X thỏa mãn (2.7), N, )tức là: L N Ð {X aX| £ b}
Nói cách khác, ràng buộc thêm không cắt đi một ph ơng án nguyên nào c a bài toán (L C N, )
2.3.3 Tư tưởng phương pháp cắt Dantzig
1 Việc giải ((L C N, )là một quá trình gồm nhiều b c:
a) Ở b c thứ r giải bài toán quy hoạch tuyến tính phụ
(L C r, ),r = 0, 1, v i L0 = L
Trang 31b) Tập các điểm nguyên c a tất cả các đa diện lồi là nh nhau
c) Nếu ( , )X L C không thỏa mãn điều kiện nguyên thì r X L C không phải ( r, )
ph ơng án c a bài toán (L r+1, )C , tức là X L C( r, )Ï L r+1.
2 chuyển từ b c r sang b c r + 1 tức là chuyển từ bài toán (L C sang bài r, )toán
sẽ giải quyết đ ợc cả ba vấn đề này một cách hiệu quả
2.4 Thuật toán Gomory giải bài toán quy hoạch nguyên
2.4.1 Thuật toán Gomory thứ nhất
2.4.1.1 Xét bài toán quy hoạch tuyến tính nguyên toàn bộ
0 1
n
j j j
=
= å (2.8)
ij 1
Trang 32Giả sử ( , )X L C là ph ơng án tựa tối u c a bài toán ( , ) L C , từ đó ta có thể biểu
diễn các biến qua các biến phi cơ sở:
b) Trong ph ơng pháp cắt vấn đề quan trọng là việc tăng số l ợng ràng buộc
Gomory đặt kích th c hạn chế cho bảng đơn hình mở rộng bằng số (n + 2) (´ k + 1) Các ràng buộc a X r £ b r chỉ là ph ơng pháp để cắt ph ơng án tối
u không nguyên ( , )X L C r và chuyển bài toán từ ( , )L C sang bài toán r (L r+1, )C chú
ý rằng biến x l r+ +1(r ³ 0) lập tức đ a ra khỏi cơ sở sau khi đ a vào ràng buộc:
Trang 33íï = ïì
-ïïî
T t ởng Gomory nh sau:
- ngay sau khi x n r+ +1đ a ra khỏi cơ sở dòng t ơng ứng xóa khỏi bảng đơn hình mở rộng
- Nếu trong quá trình tính toán tiếp theo x n r+ +1 lại đ a vào cơ sở thì dòng
t ơng ứng trong bảng đơn hình không đ ợc khôi phục và x n r+ +1 không tham gia vào các tính toán tiếp theo Nh vậy ở b c lặp bất kỳ c a tính toán, bảng đơn hình bao gồm (k + 1) cột nh bảng xuất phát số l ợng các dòng không v ợt quá(n + 2) Suy ra cỡ c a bảng không v ợt quá (n + 2) (´ k+ 1)
c) Nếu bài toán ( , )L C không có lời giải vì hàm mục tiêu x0 = CX không bị
chặn trên khúc lồi L thì thuật toán Gomory thứ nhất không áp dụng đ ợc
Thuật toán Gomory cũng không áp dụng đ ợc trong tr ờng hợp bài toán ( , )L C có lời giải nh ng l- bài toán ( , ) L C không có lời giải Điều đó d ờng nh là
tập hợp các ph ơng án tối u c a bài toán ( , )L C khác trống nh ng không bị chặn
Về sau ta sẽ giả thiết
- x0 º CX bị chặn trên L
- Nếu tập các ph ơng án tối u c a ( , )L C khác trống thì nó phải bị chặn, tức
là nếu bài toán ( , )L C giải đ ợc thì bài toán ( , ) L C cũng giải đ ợc
2.4.1.2 Thuật toán Gomory thứ nhất
Bước lặp ban đầu
Giải bài toán ( , )L C = (L C nhờ l- ph ơng án, nếu nó không giải đ ợc 0, )thì bài toán ((L C cũng không giải đ ợc N0, )
Trang 34Nếu bài toán (L C giải đ ợc và 0, ) X L C thỏa mãn điều kiện nguyên thì ( 0, )
{ } ( { })( )0
+ +
íï = - + - ïï
-ïïï ³ì
ïï Îïï
ïïî
å
(2.16)
Viết dòng thứ nhất c a (2.16) vào cuối bảng đơn hình T Ta đ ợc bảng đơn r
hình không chấp nhận đ ợc (chỉ v i x n r+ +1) và l -chuẩn Dùng l - ph ơng án đối
v i bảng này, đồng thời sau khi đ a khỏi cơ sở x n r+ +1 thì dòng này t ơng ứng
1
n + r + bị xóa, sau khi đ a vào cơ sở x l l( ³ r + 1)thì dòng t ơng ứng không
đ ợc khôi phục Nếu cuối cùng ta nhận bảng đơn hình ứng v i bài toán quy hoạch tuyến tính không giải đ ợc thì bài toán (L C cũng không giải đ ợc N0, )
Nếu ta nhận đ ợc bảng T r+1 chấp nhận đ ợc và l -chuẩn thì kiểm tra tính
nguyên X L( r+1, )C Nếu X L( r+1, )C thỏa mãn điều kiện nguyên thì nó đồng thời là
Trang 35ph ơng án tối u c a bài toán (L C , nếu không thỏa mãn thì chuyển sang b c N0, )1
ï + £ïï
ïï - £ì
ïï ³ ³ïï
ïïïïî
Sau khi thêm biến bù bài toán viết lại thành
5 4 5, , , , 0, ,
-ï = - ïï
-ïï = - +ì
ïïïïïïî
Từ đây ta có bảng đơn hình xuất phát vì bảng đơn hình xuất phát không là
l - chuẩn ta phải thêm ràng buộc phụ: x1+ x2 £ gz = 100 hay
x = - x - x ³ và x ³8 0 và viết vào d i bảng 1
Bảng đơn hình xuất phát sau khi thêm ràng buộc phụ là:
Trang 37Bảng 5 là l - chuẩn và chấp nhận đ ợc Do x lẻ nên từ dòng 1 sinh ra lát 1
cắt ở dòng x theo công thức (2.16) ta đ ợc bảng 5 Chọn dòng 7 x làm dòng quay 7
Trang 38đơn hình l - chuẩn và chấp nhận đ ợc Biến x lẻ nên từ dòng 0 x sinh ra lát cắt ở 0
dòng x 8
Trang 39Thực hiện một b c c a thuật toán đơn hình đối ng u từ vựng ta đ ợc bảng
đơn hình l - chuẩn và không chấp nhận đ ợc
l - chuẩn và chấp nhận đ ợc Biến x lẻ nên từ dòng 1 x sinh ra lát cắt ở dòng 1 x 9
Trang 40l - chuẩn và chấp nhận đ ợc Biến x lẻ nên từ dòng 0 x sinh ra lát cắt ở dòng 0 x 10