Đây là tài liệu đầu tiên được viết bằng tiếng Việt trình bày một cách hệ thống về Quy hoạch rời rạc với cơ sở lý thuyết chặt chẽ, chứng minh tính hữu hạn của các thuật toán Gomory, hơn n
Trang 1VIỆN KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM
VIỆN TOÁN HỌC
PGS.TS BÙI THẾ TÂM
QUY HOẠCH RỜI RẠC
BÀI GIẢNG CAO HỌC
HÀ NỘI 10-2008
Trang 2LỜI NÓI ĐẦU
Tài liệu này là các Bài giảng của môn Quy hoạch rời rạc thuộc Trung tâm đào tạo
sau đại học, Viện Toán học, Viện Khoa học và Công nghệ Việt nam trong các năm
2006, 2007 và 2008 Đây là tài liệu đầu tiên được viết bằng tiếng Việt trình bày một cách hệ thống về Quy hoạch rời rạc với cơ sở lý thuyết chặt chẽ, chứng minh tính hữu hạn của các thuật toán Gomory, hơn nữa còn đưa ra chương trình nguồn viết bằng C cho các thuật toán
Kiến thức chuẩn bị để tiếp thu giáo trình này là lý thuyết căn bản về quy hoạch tuyến tính và phương pháp đơn hình [9], lập trình bằng ngôn ngữ C++ [11], bảng tính điện tử Microsoft Excel [12]
Tài liệu gồm bảy chương Chương 1 trình bày các bài toán phát sinh trong thực tiễn dẫn đến các bài toán quy hoạch rời rạc, phát biểu bài toán quy hoạch rời rạc tổng quát Các bài tập ở cuối chương 1 có thể dùng lệnh Solver trong Microsoft Excel để giải, hướng dẫn lệnh này cho trong tài liệu [12] hoặc[13]
Trong Chương 2 nêu những khái niệm cơ bản về quy hoạch tuyến tính, phương pháp đơn hình bình thường, phương pháp đơn hình đối ngẫu từ vựng và chương trình máy tính viết bằng C++, và khái niệm về bài toán quy hoạch tuyến tính nguyên
Chương 3 trình bày tư tưởng phương pháp cắt, thuật toán Gomory thứ nhất và chứng minh sự hội tụ của nó (tài liệu gốc trong [1], [2]), chương trình máy tính của thuật toán Gomory thứ nhất
Chương 4 xét hai thuật toán: thuật toán Gomory thứ hai dùng để giải bài toán quy hoạch tuyến tính nguyên bộ phận [3], thuật toán Dalton - Llewellyn dùng để giải bài toán quy hoạch tuyến tính với các biến nhận giá trị rời rạc [4], chương trình máy tính của hai thuật toán này
Chương 5 trình bày thuật toán Gomory thứ ba nhằm xây dựng các lát cắt đảm bảo tất cả các Bảng đơn hình ở mỗi bước đều có tất cả các phần tử là nguyên [5], [6], chương trình máy tính của thuật toán Gomory thứ ba
Chương 6 trình bày tư tưởng của phương pháp nhánh cận, phương pháp Land A.H và Doig A.G giải bài toán qui hoạch nguyên [7], phương pháp Little J.D, Murty K.G, Sweeney D.W và Karen C giải bài toán người du lịch [8]
Các tài liệu gốc [1]-[8] được A.A Korbut, Iu Iu Phinkenstein trình bày lại trong cuốn sách [10] Năm chương trình bằng ngôn ngữ C trong tài liệu này về Phương pháp đơn ngẫu từ vựng, ba thuật toán Gomory, thuật toán Dalton đều do chính tác giả lập Bạn đọc quan tâm tới lập trình bằng Pascal cho các bài toán tối ưu của Quy hoạch tuyến tính, Quy hoạch phi tuyến và Quy hoạch rời rạc có thể tham khảo tài liệu [14]
Các trường Đại học, các cơ sở đào tạo có nhu cầu giảng dạy môn này, hoặc hướng dẫn giảng viên để giảng dạy môn này, hoặc bạn đọc muốn góp ý về giáo trình này xin vui lòng liên hệ với tác giả theo địa chỉ: Bùi Thế Tâm, Viện Toán học, Viện Khoa học
và Công nghệ Việt Nam, 18 Hoàng Quốc Việt, Cầu giấy, Hà nội ; địa chỉ email:
bttam@math.ac.vn
Hà Nội, ngày 4 tháng10 năm 2008
Trang 3TÀI LIỆU THAM KHẢO
1 Gomory R.E An algorithm for integer solutions to linear programs Recent Advances Math Program New York - San Francisco - Toronto - London, McGraw-Hill Book Co., Inc., 1963, 269-302
2 Gomory R.E Outline of an algorithm for integer solution to linear programs Bull Amer Math Soc., 1958, 64, N5, 275-278
3 Gomory R.E An algorithm for the mixed integer problem Rand Corp.,
P-1885, Santa Monica, California, February 22, 1960
4 Dalton R.E, Llewellyn R.W An extension of the Gomory mixed-integer algorithm to mixed-discrete variable Manag Sci., 1966, 12, N7, 562-575
5 Gomory R.E An all-integer integer programming algorithm IBM Research Center, 1960, January, Research Report RC-189
6 Gomory R.E An all-integer integer programming algorithm In "Industrial scheduling", Englewood Cliffs, New Jersey, Prentice Hall, 1963, ch 13
7 Land A.H, Doig A.G An automatic method of solving discrete programming problems Econometrica, 1960, 28, N3, 497-520
8 Little J.D.C,Murty K.G, Sweeney D.W, Karel C An algorithm for the traveling salesman problem Operat Res., 1963, 11, N6, 972-989
9 Bùi Thế Tâm, Trần Vũ Thiệu Các phương pháp tối ưu hóa NXB GTVT, 1998,
13 Bùi Thế Tâm Giải các bài toán tối ưu và thống kê trên Microsoft Exel Công
bố trên http://ebook.edu.net.vn, phần Công nghệ thông tin, 2007
14 Bùi Thế Tâm Turbo Pascal: lý thuyết cơ bản, bài tập, những chương trình mẫu trong khoa học kỹ thuật và kinh tế NXB GTVT, 1993, 460 trang
VÀI NÉT VỀ TÁC GIẢ
B.T Tâm sinh năm 1948 tại Hiệp Hoà, Bắc Giang; hiện làm việc tại Phòng Tối ưu
và Điều khiển thuộc Viện Toán học, Viện Khoa học và Công nghệ Việt nam; bảo vệ Tiến sỹ tháng 5/1978 tại Viện Hàn lâm Khoa học Liên xô; nhận học hàm Phó giáo sư tháng 7/1996
Trang 4MỤC LỤC
Chương 1 Bài toán quy hoạch rời rạc I.1
2 Các bài toán thực tế dẫn đến bài toán quy hoạch rời rạc I.2
Chương 2 Những khái niệm mở đầu II.1
2 So sánh theo nghĩa từ vựng II.3
5 Phương pháp đơn hình đối ngẫu từ vựng II.6
Chương 3 Thuật toán Gomory thứ nhất III.1
1 Tư tưởng phương pháp cắt III.1
2 Thuật toán Gomory thứ nhất III.5
3 Tính hữu hạn của thuật toán Gomory thứ nhất III.9
4 Giải ví dụ số III.11
1 Ảnh hưởng sai số làm tròn và tư tưởng của thuật toán Gomory thứ ba V.1
1 Tư tưởng của phương pháp nhánh và cận VI.1
3 Phương pháp nhánh cận giải bài toán người du lịch VI.6
Trang 5Chương 1
BÀI TOÁN QUY HOẠCH RỜI RẠC
1 ĐỊNH NGHĨA BÀI TOÁN QUY HOẠCH RỜI RẠC
Trong các bài toán quy hoạch tuyến tính, các biến số có thể nhận những giá trị thực không âm Tuy nhiên, trong thực tiễn thường gặp các bài toán mà các biến số chỉ
có thể nhận một số hữu hạn hay đếm được giá trị, thường là các giá trị nguyên Chẳng hạn sẽ là vô nghĩa khi đưa ra câu trả lời: cần sản xuất nửa cái bàn hay cần thuê 2,7 cái ô
tô để vận chuyển hàng hoá…Trong một số bài toán, chẳng hạn bài toán vận tải với các lượng hàng cung và cầu là các số nguyên, song nhiều bài toán khác thì không phải như vậy Vì thế trong chương này sẽ đề cập đến nội dung và phương pháp giải các bài toán tối ưu trên lưới các điểm nguyên hay trên các tập rời rạc, gọi tắt là bài toán quy hoạch rời rạc hay bài toán quy hoạch nguyên
Bài toán quy hoạch rời rạc có dạng sau:
Tìm cực đại của hàm f x y( , ) phụ thuộc hai nhóm biến x và y với các ràng buộc
có dạng:
( , ) 0, 1, 2, ,
i
trong đó, x=( , , , ),x x1 2 x p y=( , , , ),y y1 2 y q p>0, q ≥ , D là tập hữu hạn các véc tơ 0
p- chiều, còn ,f g là những hàm cho trước của n biến số ( n i = + ) p q
Nếu ,f g i là các hàm tuyến tính và D là lưới các điểm nguyên, thì ta có bài toán
quy hoạch nguyên tuyến tính, còn nếu D là tập các véc tơ p thành phần 0 hay 1 thì ta
có bài toán quy hoạch nguyên 0 1−
Nếu q=0, nghĩa là chỉ có các biến rời rạc x x1, , ,2 x thì bài toán được gọi là bài p toán quy hoạch nguyên hoàn toàn Còn nếu q>0 thì bài toán được gọi là bài toán
Chú ý
Sở dĩ bài toán quy hoạch rời rạc còn được gọi là bài toán quy hoạch nguyên là vì bất kỳ bài toán với các biến số chỉ nhận một số hữu hạn giá trị cho trước, đều có thể quy
về bài toán trong đó các biến chỉ nhận các giá trị nguyên Ví dụ, giả sử biến x biểu thị
quy mô công suất của nhà máy điện cần xây dựng chỉ có thể lấy một trong các giá trị cho trước a a1, , ,2 a k (các quy mô công suất tiêu chuẩn) Khi đó bằng cách đặt:
Trang 6Tương tự, nếu x∈{0,1, 2, ,k} thì ta có thể viết
2 CÁC BÀI TOÁN THỰC TẾ DẪN TỚI QUY HOẠCH RỜI RẠC 2.1 Bài toán vận tải
Có m kho hàng (điểm phát) chứa một loại hàng hoá, lượng hàng ở kho i là a và i
n nơi tiêu thụ (điểm thu), nhu cầu ở nơi thu là b j, cij là chi phí vận chuyển một đơn vị hàng từ điểm phát i đến điểm thu j Xác định các lượng hàng vận chuyển xij từ các điểm phát i tới các điểm thu j sao cho tổng chi phí là nhỏ nhất và nhu cầu các điểm
thu được thoả mãn
Dạng toán học của bài toán là:
ij ij ij
ij 1
ij 1 ij
1 1
min, 1, 2, ,, 1, 2, ,0
n
i j
m
j i
Nếu các a và i b là nguyên thì đa diện lồi xác định bởi các ràng buộc của bài j
toán có mọi đỉnh đều là nguyên Do đó ta có thể dùng phương pháp đơn hình để giải bài toán quy hoạch tuyến tính này, lời giải cuối cùng nhận được sẽ là một phương án nguyên
Ví dụ. Xét bài toán vận tải có 3 điểm phát và 4 điểm thu với ma trận chi phí như sau:
Trang 7Có n đơn vị sản xuất cần sản xuất n loại sản phẩm, c là chi phí cho đơn vị i sản ij
xuất sản phẩm j Hãy phân công mỗi đơn vị sản xuất một sản phẩm để tổng chi phí là
ij 1 ij
min
1, 1, 2, ,
1, 1, 2, ,0;1
n
i n
j m
2.3 Bài toán cái túi
Có một cái túi chứa được nhiều nhất một trọng lượng là b , có n đồ vật cần mang,
đồ vật j nặng a , giá trị của nó là j c Bài toán đặt ra là cho những đồ vật nào vào túi j
để tổng giá trị của nó lớn nhất Ký hiệu x là số đồ vật j được đưa vào túi Dạng toán j
học của bài toán là:
n
j j j=1
j 1
j j
m ax
0,
n j j
2.4 Bài toán xếp hàng lên tầu
Trang 8Một tầu chở hàng có trọng tải T và thể tích K , tầu chở n loại hàng, hàng loại j
có số lượng là s , có trọng lượng là j a , thể tích j b và giá trị sử dụng là j c Bài toán đặt j
ra là cần xác định số lượng hàng loại j cần xếp lên tàu x để tổng giá trị hàng hoá trên j
j 1
j 1 j
m ax
0,1, 2, , , 1, 2, ,
n j j n j j
Ở đây, không giảm tính tổng quát của bài toán ta có thể giả sử các hệ số , , , ,T K a b c j j j
(với mọi j ) đều là các số dương
2.5 Bài toán xếp hàng vào các công ten nơ rỗng cùng loại
Có n loại hàng hoá cần được xếp lên các công ten nơ rỗng như nhau với tải trọng
của mỗi công ten nơ là T và dung lượng là K Hàng hoá loại j có trọng lượng a , j
khối lượng b và số lượng cần vận chuyển là j s ( j j=1, 2, ,n) Hãy tìm cách xếp tất cả
số hàng hoá này lên công ten nơ sao cho dùng ít công ten nơ nhất?
Giả sử ta đã biết được m là số công ten nơ tối đa cần thiết để chở hết số hàng hoá trên Chẳng hạn, số m có thể tìm theo cách: xếp dần các đồ vật lên công ten nơ theo thứ
tự tuỳ ý, cái nọ tiếp cái kia, cho đến khi trọng lượng hay dung tích của công ten nơ đã dùng hết Tiếp đó sử dụng công ten nơ tiếp theo…
Gọi x là số đồ vật j được chở trên công ten nơ i , ij y là biến nhận giá trị 0 hay 1 i
tuỳ theo có dùng công ten nơ i hay không
Dạng toán học của bài toán là:
{ }
{ }
1
ij 1
ij 1
ij 1 ij
min, 1, 2, ,, 1, 2, ,, 1, 2, ,0,1, 2, , , 1, 2, , , 1, 2, ,0,1 1, 2, ,
m i i n
j n
j m
j i
Trang 9Hai nhóm ràng buộc đầu biểu thị yêu cầu không chuyên chở quá tải trọng và dung lượng của mỗi công ten nơ được sử dụng (y i = ), còn công ten nơ không sử dụng 1(y i = ) cần phải rỗng Nhóm ràng buộc thứ ba biểu thị mọi đồ vật cần được xếp vào 0các công ten nơ
2.6 Bài toán người du lịch
Cho đồ thị G=( , ),V E V là tập n đỉnh, E là tập n cạnh Gọi c là độ dài của ij
cung nối từ đỉnh i đến đỉnh j, có thể cij≠cji và c ii = ∞ với mọi i Một chu trình Hamilton là một chu trình sơ cấp mà nó tương đương với việc xuất phát từ một đỉnh bất
kỳ cho trước, đi qua mọi đỉnh khác đúng một lần và trở lại đỉnh xuất phát Tổng khoảng cách trên các cạnh trong hành trình đó là độ dài của hành trình đó Mục tiêu của bài toán người du lịch là tìm chu trình Hamilton có độ dài ngắn nhất
Đặt xij = nếu cung ( , )1 i j được chọn và bằng 0 nếu trái lại Dạng toán học của bài
ij 1 ij
ij
min
1, 1, 2, ,
1, 1, 2, ,0;1 , , 1, 2, ,
n
i n
j m
trong đó u nhận giá trị nguyên hay thực i
Hai tập ràng buộc đầu biểu thị mỗi thành phố được thăm đúng một lần Ràng buộc cuối đưa vào để mỗi hành trình của bài toán chỉ chứa duy nhất một chu trình
Bài toán người du lịch là một bài toán rất quen thuộc và nổi tiếng trong tối ưu rời rạc Tuy số phương án của bài toán là hữu hạn (bằng !n đối với bài toán có n thành phố) nhưng với n cỡ hàng ngàn trở lên thì số phương án này cực kỳ lớn, vì thế cách
duyệt toàn bộ là không thể thực hiện được, mặc dầu có sự trợ giúp của các máy tính cực mạnh Little J.D, Murty K.G, Sweeney D.W và Karel C 1963 là những người đầu tiên
sử dụng thành công phương pháp nhánh cận để giải bài toán người du lịch và cho đến nay phương pháp này với nhiều cải tiến khác nhau vẫn là công cụ chủ yếu để giải quyết bài toán đề ra
2.7 Bài toán với chi phí cố định
Xét bài toán tối ưu có dạng sau:
n
j 1 2 j=1
Trang 10Giả thiết 0d j > với mọi 1, 2, ,j= n Các số d thường được hiểu là các chi phí cố j
định cần thiết để đưa phương thức sản xuất j vào hoạt động, nó không phụ thuộc vào
cường độ sử dụng của phương thức này ( )x j
Giả sử đã biết p là cận trên của biến ( ) j x , tức là: j
2.8 Bài toán với ràng buộc dạng lựa chọn
Cho hai hàm số g x( ) và h x( ) bị chặn trên trên tập hợp D Nếu ta đòi hỏi phải có hoặc g x( ) 0≤ hoặc h x( ) 0≤ với mọi x D∈ , thì điều này có thể diễn đạt bằng cách đưa thêm vào một biến số nhận giá trị 0-1 Ký hiệu u và g u là các cận trên của hàm ( ) h g x
và ( )h x trên tập D ( ( ) g x ≤u g, ( )h x ≤ , x D u h ∀ ∈ ) Khi đó điều kiện trên sẽ được thoả mãn khi và chỉ khi:
Giả sử đã biết cận trên p của biến j x và cận trên j q của biến j y Khi đó bằng j
cách đưa vào các biến z nhận giá trị 0-1, ta có thể đưa n cặp ràng buộc dạng lựa chọn j
Ví dụ 2 Khi quyết định phương thức sản xuất sản phẩm mới ta thường gặp tình
huống sau: hoặc là không sản xuất sản phẩm j ( x =0), hoặc là nếu chấp nhận sản xuất j
nó thì phải sản xuất với số lượng không ít hơn d ( j x j ≥d j), với d là số lượng sản j
phẩm loại j tối thiểu cần sản xuất để bù lại được các chi phí cần bỏ ra khi đưa phương
Trang 11thức sản xuất sản phẩm mới này vào hoạt động (khi đó mới có lãi) Tức là ta gặp ràng buộc dạng lựa chọn:
y = nếu chấp nhận sản xuất sản phẩm j , và bằng 0 nếu ngược lại Ta có thể đưa ràng
buộc dạng lựa chọn nói trên về hệ ràng buộc tương đương sau:
{ }
2.9 Bài toán pha cắt nguyên vật liệu
Trong thực tế ta thường phải cắt những vật liệu dài (thanh thép, gỗ, ống nước…) thành những đoạn nhỏ có độ dài cho trước với số lượng nhất định để sử dụng Nên cắt như thế nào để đỡ lãng phí vật liệu nhất
Ví dụ. Một công trường xây dựng có những thanh thép dài 6m, cần cắt thành 40 đoạn dài 2,5m và 60 đoạn dài 1,6m, nên như thế nào để đỡ lãng phí vật liệu nhất
Ta có 3 cách cắt như sau:
Mẫu 1: 2 đoạn 2,5m, thừa 1 m
Mẫu 2: 1 đoạn 2,5m và 2 đoạn 1,6n, thừa 0,3m
Mẫu 3: 3 đoạn 1,6m, thừa 1,2m
Gọi x x x là số thanh cần cắt theo mẫu 1, 2, 3 tương ứng, ta có bài toán quy hoạch 1, ,2 3rời rạc sau:
Tổng quát, ký hiệu: a là số đoạn loại i thu được khi cắt theo mẫu j , ij b là số i
đoạn loại i cần có, c là dẻo thừa khi cắt theo mẫu j , j x là số thanh thép cắt theo mẫu j
j Ta được bài toán quy hoạch rời rạc:
1 1
min, 1, 2, ,
n
j j j n
ij j i j
2.10 Bài toán sản xuất đầu tư
Trong thực tế, tất cả các nhà đầu tư vào sản xuất đều gặp bài toán : có m loại tài nguyên cần dùng để sản xuất ra n loại sản phẩm Các tài nguyên này có thể bị tiêu hao
trong quá trình sản xuất hoặc được tăng thêm nhờ thực hiện một trongp dự án đầu tư phát triển sản xuất
Trang 12g là lượng tài nguyên i được tăng thêm nếu dự án đầu tư k được thực hiện
Ta đưa vào một biến 0-1: y =1 nếu dự án được dùng, và bằng 0 nếu trái lại k
Dạng toán học của bài toán là:
{ }
1
0 1
k k k
p n
2.11 Bài toán chọn địa điểm đặt nhà máy
Đây cũng là một bài toán đầu tư, nhưng phức tạp hơn so với bài toán sản xuất - đầu tư Cái khó không phải chỉ vì các chi phí đầu tư được tính đến mà còn vì có các chi phí khác phụ thuộc vào địa điểm đặt nhà máy, cụ thể là chi phí vận chuyển Cũng còn một khó khăn nữa, đó là chi phí đầu tư trả một lần, còn chi phí vận chuyển thì xuất hiện thường xuyên Để làm cho chi phí này có thể so sánh được với nhau thì phải xét thêm các chi phí vận chuyển trong các thời kỳ khác nhau, tất nhiên là quy đổi so với thời kỳ đầu Nói một cách khác, cần thêm vào một hệ số nhân thích hợp đối với các chi phí vận chuyển
Ta ký hiệu:
P là số địa điểm thích hợp đặt nhà máy
N là số các nhà máy khác nhau có thể xây dựng ( N≤ ), mỗi địa điểm đặt nhiều P
Trang 13min, 1, 2, ,
1, 1, 2, ,0,1 , 1, 2, , ; 1, 2, ,
Cho đồ thị G , có n đỉnh, E là tập các cạnh của đồ thị Tìm tập đỉnh có nhiều
phần tử nhất trên đồ thị sao cho không có hai đỉnh nào kề nhau
Ta thêm vào một biến 0-1: x =1 nếu đỉnh j được chọn, và bằng 0 nếu trái lại j
Dạng toán học của bài toán là:
Trang 14x =1 nếu đỉnh j được tô màu k , và bằng 0 nếu trái lại
Dạng toán học của bài toán là:
{ }
1 1
2.14 Bài toán tìm chỉ số màu
Hãy tìm số màu tối thiểu để tô mọi cạnh của đồ thị G sao cho hai cạnh kề nhau không được tô cùng màu Giả sử đồ thị G có n đỉnh, m cạnh, E là tập các cạnh của
đồ thị Tối đa cần dùng m màu để tô m cạnh Ký hiệu
a =1 nếu đỉnh i là mút cuối của cạnh j và bằng 0 nếu trái lại
Dạng toán học của bài toán là:
{ }
1 1 1
min
1, 1, 2, ,, 1, 2, , ; 1, 2, ,
m k k m jk k m
ij jk k j
2.15 Bài toán phủ đỉnh
Cho đồ thị G=( , )V E , V là tập n đỉnh, E là tập m cạnh Tìm số đỉnh ít nhất của
đồ thị G sao cho mỗi cạnh có ít nhất một đầu mút đã được chọn
Trang 15Ứng dụng: tìm cách đặt các trạm quan sát (hoặc cửa hàng, trạm điện thoại, trung tâm dịch vụ) tại các ngã ba, ngã tư…sao cho quan sát được mọi tuyến đường trong khu phố với số trạm ít nhất
Ta đưa vào một biến 0-1 là x =1 nếu đỉnh j được chọn, và bằng 0 nếu trái lại j
Dạng toán học của bài toán:
{ }
1
min
1, ( , )0,1 ; 1, 2, ,
n j j
- Có một viện bảo tàng gồm nhiều gian trưng bày, giữa các gian có các cửa thông nhau, một người đứng ở cửa giữa hai gian có thể quan sát được cả hai gian Hãy tìm cách bố trí người canh gác ở các cửa sao cho gian nào cũng có người canh và số người canh là ít nhất (mỗi gian là một đỉnh, mỗi cửa là một cạnh)
Ta đưa các ký hiệu: a =1 nếu đỉnh i là một trong các đầu mút của cạnh j và ij
bằng 0 nếu trái lại, x =1 nếu cạnh j được chọn và bằng 0 nếu trái lại Dạng toán học j
của bài toán:
{ }
1 1
min
1, 1, 2, ,0,1 ; 1, 2, ,
m j j m
ij j j
x =1 nếu cạnh j được chọn, và bằng 0 nếu trái lại
Dạng toán học của bài toán là:
Trang 16{ }
1 1
1, 1, 2, ,0,1 ; 1, 2, ,
m j j m
ij j j
c x
=
⇒
∑
Ví dụ Có p người và q việc, p khác q Mỗi người được đào tạo để làm ít nhất
một việc Hãy sắp xếp mỗi người làm một việc phù hợp với khả năng chuyên môn của
họ Khi đó ta có đồ thị hai phần như sau:
2.18 Bài toán phân công theo ca kíp
Phòng cảnh sát Quận có số tuyến cần được tuần tra theo thời gian cho trong bảng
Giả thiết mỗi tuyến tuần tra chỉ cần một viên cảnh sát, mỗi cảnh sát đi làm theo ca
8 tiếng liên tục Hãy xác định số nhân viên cảnh sát tối thiểu để hoàn thành nhiệm vụ Gọi x là số cảnh sát đi làm vào lúc 22 giờ tối, 1 x là số cảnh sát đi làm vào lúc 02 giờ 2
22 giờ tối đến 02 giờ sáng 13
02 giờ sáng đến 06 giờ sáng 01
06 giờ sáng đến 10 giờ sang 07
10 giờ sáng đến 14 giờ chiều 06
14 giờ chiều đến 18 giờ chiều 06
18 giờ chiều đến 22 giờ tối 17
Trang 17sáng, …,x là số cảnh sát đi làm vào lúc 18 giờ chiều Khi đó dạng toán học của bài 6
toán là:
6 1
j j
2.19 Bài toán tìm luồng cực đại trên đồ thị có hướng
Ta xét bài toán cụ thể: cho đồ thị có hướng gồm 6 đỉnh, nếu từ đỉnh u tới đỉnh v
có đường vận chuyển thì ta vẽ một cung j , lượng hàng vận chuyển trên cung này là x , j
khả năng vận chuyển tối đa trên cung này là q Tìm lượng hàng lớn nhất có thể vận j
Trong trường hợp véc tơ q = (4, 2, 4, 4, 1, 2, 2, 2) ta được đáp số là: lượng hàng tối đa
có thể vận chuyển là 5, phương án tối ưu là x = (3, 2, 0, 2, 1, 2, 2, 2)
Trang 18BÀI TẬP
Dùng Microsoft Excel để giải các bài toán quy hoạch tuyến tính nguyên sau
1 Một xưởng mộc sản xuất ba loại ghế tựa khác nhau A, B, C Mỗi loại ghế cần trải qua các thao tác: đánh bóng, đánh màu và đánh véc ni Ngoài ra ghế loại C cần thêm thao tác bọc nệm ghế Biết thời gian cần thiết để thực hiện mỗi thao tác đối với từng loại ghế: ghế loại A cần 1h đánh bóng, 0.5 giờ đánh màu, 0.7 giờ đánh véc ni và tiền lãi là
100 ngàn đồng; ghế loại B cần 1.2h đánh bóng, 0.5 giờ đánh màu, 0.7 giờ đánh véc ni
và tiền lãi là 130 ngàn đồng; ghế loại C cần 0.7h đánh bóng, 0.3 giờ đánh màu, 0.3 giờ đánh véc ni, 0.7 giờ bọc nệm và tiền lãi là 80 ngàn đồng Thời gian hiện có dành cho việc đánh bóng là 600 giờ/ tháng, đánh màu là 300 giờ, đánh véc ni là 300 giờ, bọc nệm
là 140 giờ Hỏi nên sản xuất bao nhiêu ghế mỗi loại để thu được nhiều lãi nhất
2 Một xưởng sản xuất dự định mua hai loại máy để in hình vẽ trên vải Máy A có thể in 100 m/phút và chiếm 50 mét vuông diện tích sàn, còn máy B có thể in 200 m/phút
và chiếm 140 mét vuông diện tích sàn Xưởng cần in ít nhất 600 m/phút và có diện tích sàn để đặt máy in tối đa là 350 mét vuông Mỗi máy A giá 22 triệu đồng và mối máy B giá 42 triệu đồng Hỏi cần mua bao nhiêu máy in mỗi loại sao cho tốn ít chi phí nhất
3 Một doanh nghiệp có trong tay 10 dự án sẽ được lựa chọn để thực hiện vào năm sau Do hạn chế về nhân lực và tài chính nên không thể thực hiện tất cả các dự án Để lựa chọn, mỗi dự án được gán một trọng số biểu thị giá trị của việc thực hiện dự án đó, các dự án từ 1 đến 10 có các trọng số tương ứng là: 70, 50, 60, 20, 10, 20, 30, 450, 10,
40 Chi phí về nhân lực của các dự án từ 1 đến 10 tương ứng là: 250, 195, 200, 70, 30,
40, 100, 170, 40, 120 người / tuần Chi phí về tài chính của các dự án từ 1 đến 10 tương ứng là : 400, 300, 350, 100, 70, 70, 250, 250, 100, 200 triệu đồng Chủ doanh nghiệp hiện có nguồn nhân lực 1000 người/tuần và 1500tiệu đồng để thực hiện các dự án Cần chọn thực hiện những dự án nào để thu được tổng giá trị lớn nhất
4 Một xí nghiệp dùng 3 máy M1, M2, M3 để sản xuất một loại sản phẩm gồm 3 chi tiết C1, C2, C3 (mỗi bộ sản phẩm gồm một chi tiết mỗi loại) Mỗi ngày máy M1 có thể sản xuất 8 chi tiết C1 hoặc 3 chi tiết C2 hoặc 12 chi tiết C3; máy M2 có thể sản xuất
12 chi tiết C1 hoặc 16 chi tiết C3 (máy M2 không sản xuất chi tiết C2), máy M3 có thể sản xuất 6 chi tiết C1 hoặc 3 chi tiết C2 hoặc 6 chi tiết C3 Hãy xác định tỷ lệ thời gian trong ngày để mỗi máy sản xuất từng chi tiết sao cho xí nghiệp đạt được số bộ sản phẩm
là nhiều nhất ?
5 Một xưởng làm cửa sắt có những thanh thép dài 12 m, cần cắt thành 8 đoạn dài 4m, 5 đoạn dài 5m và 3 đoạn dài 7m Có 5 mẫu cắt sau Mẫu 1: 3 đoạn dài 4m, không thừa Mẫu 2: 1 đoạn 4m, 1 đoạn 5m, thừa 3m Mẫu 3: 1 đoạn 4m, 1 đoạn 7m, thừa 1m Mẫu 4: 2 đoạn 5m, thừa 2m Mẫu 5: 1 đoạn 5m, 1 đoạn 7m, không thừa Cần dùng những mẫu cắt nào để tiết kiệm nhất
6 Một xí nghiệp có thể sử dụng tối đa 510 giờ máy cán, 360 giờ máy tiện và 150
giờ máy mài để chế tạo 3 loại sản phẩm A, B, C Để chế tạo một đơn vị sản phẩm A cần 9h máy cán, 5h máy tiện, 3h máy mài Để chế tạo một đơn vị sản phẩm B cần 3h máy cán, 4h máy tiện Để chế tạo một đơn vị sản phẩm C cần 5h máy cán, 3h máy tiện, 2h máy mài Sản phẩm A trị giá 48 ngàn đồng Sản phẩm B trị giá 16 ngàn đồng Sản phẩm
C trị giá 27 ngàn đồng Xí nghiệp cần chế tạo bao nhiêu sản phẩm mỗi loại để tổng giá trị lớn nhất
Trang 197 Một nhà sản xuất đồ gỗ sản xuất 3 loại bàn: loại truyền thống x1, loại cận đại x2, loại hiện đại x3 Loại x1 có lợi nhuận là 36$, cần 2 h để tạo hình, 3 h để đánh bóng Loại x2 có lợi nhuận là 28$, cần 2 h để tạo hình, 2 h để đánh bóng Loại x3 có lợi nhuận
là 32$, cần 4 h để tạo hình, 1 h để đánh bóng Xác định phương án sản xuất để cực đại hóa lợi nhuận nếu nhà sản xuất có 60 h để tạo hình và 80 h để đánh bóng
8 Tìm phương án vận tải có chi phí nhỏ nhất Khả năng các nơi phát hàng P1, P2, P3 tương ứng là 80, 110, 120 tấn hàng Nhu cầu các nơi tiêu thụ T1, T2, T3 tương ứng
là 100, 120, 900 tấn Ma trân chi phí từ nơi phát tới nơi thu là ($ / tấn hàng hóa):
Trang 2013 Tìm số đỉnh ít nhất trong đồ thị sau sao cho mỗi cạnh có ít nhất một đầu mút được chọn
5 7
4 6
3 2 1
14 Hãy bố trí số người gác tối thiểu cho khu bảo tàng có sơ đồ sau 2 3 4
1 6 5
15 Tìm ghép cặp với tổng trọng số lớn nhất của đồ thị sau Trọng số của các cạnh (1,5), (1,6), (1,7), (2,5), (2,7), (3,6), (3,8), (4,6), (4,7), (4,8) lần lượt là: 5, 8, 2, 3, 4, 9, 6, 7, 2, 4 1 5
2 6
3 7
4 8
Người Việc
Trang 21Chương 2
NHỮNG KHÁI NIỆM MỞ ĐẦU
Trong chương này sẽ trình bày những khái niệm cơ bản về quy hoạch tuyến tính, phương pháp đơn hình bình thường, phương pháp đơn hình đối ngẫu từ vựng, và khái niệm về bài toán quy hoạch tuyến tính nguyên
1 NHỮNG KHÁI NIỆM CƠ BẢN VỀ QUY HOẠCH TUYẾN TÍNH 1.1. Bài toán qui hoạch tuyến tính là bài toán có dạng:
0 1
n
ij j i j
n
ij j i j
y Miền xác định: tập hợp các véc tơ x thoả mãn (2) và (4)
y Phương án bài toán: véc tơ x thoả mãn (2) và (4)
y Nếu (x1,…,xn) là phương án của bài toán, 0
1
n
j j j
=
=∑ thì X = (x0 ,x1,…,xn) gọi
là phương án mở rộng của bài toán (1) – (4)
y Phương án X* làm cực đại (1) gọi là phương án tối ưu Phương án mở rộng
*
X gọi là phương án tối ưu mở rộng nếu X* là phương án tối ưu
y Kí hiệu:
L - miền xác định của bài toán (1)-(4)
( , )L C – kí hiệu bài toán qui hoạch tuyến tính (1) - (4)
L là tập hợp các phương án tối ưu của bài toán ( , )L C
y Bài toán qui hoạch tuyến tính gọi là giải được nếu tồn tại phương án tối ưu
Trang 221.2 Dạng chính tắc của bài toán qui hoạch tuyến tính
0
1
1
a x, 1 , 2 , ,
0 , 1 , 2 , ,
n
j j j
n
i j j i j
m
b
b b
là véc tơ ràng buộc của bài toán (5)-(7)
y Phương án X của bài toán (5)-(7) gọi là tựa nếu các véc tơ điều kiện ứng với các thành phần dương của nó là độc lập tuyến tính
y Cơ sở của phương án tựa X là tập hợp { Aj|x j >0 } Các thành phần của phương án tựa ứng với các véc tơ cơ sở gọi là các thành phần cơ sở (các biến tương ứng gọi là biến cơ sở), các thành phần còn lại gọi là các thành phần phi cơ sở (các biến tương ứng gọi là biến phi cơ sở)
y Nếu X =( , , )x1 x n phương án tựa của bài toán quy hoạch tuyến tính, 1
(A j , ,A jk)là cơ sở của phương án tựa, B={j1, ,j k}, N ={1, ,n B}\ thì hàm mục tiêu x x0, , ,1 x có thể biểu diễn qua các biến phi cơ n sở:
y Phương án tựa bài toán (5) - (7) gọi là không suy biến nếu số ràng buộc của hệ (6) - (7) mà phương án thỏa mãn với dấu bằng bằng đúng n (các ràng buộc này là độc lập tuyến tính) Phương án tựa là suy biến nếu số ràng buộc mà phương án tựa thỏa mãn chặt là lớn hơn n
(5) (6) (7)
Trang 23Phương án tựa X của bài toán (5) - (7) là không suy biến nếu các thành phần cơ sở của nó là dương Cơ sở của phương án tựa không suy biến xác định duy nhất Ứng với phương án tựa suy biến có nhiều cơ sở
y Tiêu chuẩn tối ưu: để cho phương án mở rộng X' ( , , ,= x x0' 1' x n' )là tối ưu điều kiện cần và đủ là tồn tại cơ sở B sao cho
'
i j 0
0,
i i j
j N j
Nếu xi0 ≥ 0 (i = 1, 2, , n) thì bảng đơn hình T gọi là chấp nhận được, véc tơ X
là phương án tựa của bài toán quy hoạch tuyến tính
Nếu x0j ≥ 0 , j∈N thì bảng đơn hình T là chuẩn (đối ngẫu chấp nhận được), véc tơ
X gọi là giả phương án, X gọi là giả phương án mở rộng
2 SO SÁNH THEO NGHĨA TỪ VỰNG
2.1. Véc tơ X =( , , , )x x1 2 x n gọi là dương từ vựng X>0 nếu X≠(0,…,0) và thành phần đầu tiên khác 0 là dương
y Véc tơ X gọi là không âm từ vựng X ≥ 0 nếu X>0 hay X=0
y Véc tơ X gọi là lớn hơn từ vựng véc tơ Y (ký hiệu X > Y) nếu X – Y >0
y Véc tơ X ≥ Y (không nhỏ hơn từ vựng) nếu X – Y ≥0
y X gọi là âm từ vựng (ký hiệu là X < 0) nếu –X >0
y Tương tự ta có các định nghĩa X ≤ 0, X < Y, X ≤ Y
2.2. Phương án X* (phương án mở rộng X*) của bài toán (5)- (7) gọi là phương
án tối ưu từ vựng (phương án l - tối ưu) nếu đối với mọi phương án mở rộng X ta có
( , , , n) ( , , , n)
Định lý 1 Nếu tập hợp các phương án tối ưu của bài toán (5) - (7) khác rỗng và
bị chặn thì tồn tại phương án tối ưu từ vựng X*
Định lý 2. Nếu X* phương án tối ưu từ vựng của bài toán (5)-(7) thì X* là phương án tựa
Trang 24j j j
n j
x x R
Định lý 3 Để cho phương án tựa X* của bài toán (5) – (7) là l - tối ưu, điều kiện
Giả phương án X (giả phương án mở rộngX ) của bài toán (5) – (7) gọi là dương
từ vựng nếu bảng đơn hình tương ứng là l - chuẩn, nói gọn lại là l - giả phương án ( l -
giả phương án mở rộng)
3 BẢNG ĐƠN HÌNH, PHƯƠNG ÁN, GIẢ PHƯƠNG ÁN
Phép biến đổi cơ bản của bảng đơn hình: đưa xk ra khỏi cơ sở, đưa xl vào cơ sở Phần tử xkl gọi là phần tử quay
*
*
l k
kl kj
j j l
kl
R R
x x
kl kj
Trang 254 PHƯƠNG PHÁP ĐƠN HÌNH
4.1 Thuật toán
Phương pháp đơn hình cho phép xây dựng dãy hữu hạn các phương án tựa X0, X1,
…, Xk, trong đó Xk là phương án tối ưu của bài toán (5) - (7) Hàm mục tiêu x0 = x0(Xr) không giảm khi r tăng Ứng với mỗi phương án tựa Xr có Tr, Br, Nr Quá trình giải gồm bước lặp xuất phát (xây dựng phương án tựa xuất phát X0) và dãy các bước lặp tổng quát
Bước lặp tổng quát r ≥ 0 có phương án Xr, tương ứng với nó có bảng đơn hình Tr
và các tập Br , Nr Kiểm tra bảng Tr có là chuẩn không (tức là x0j≥0 ∀ ∈j N r) Nếu đúng thì Xr là tối ưu, nếu không thì xác định x đưa vào cơ sở theo công thức : l
ij j n i i j
Ví dụ Giải bài toán sau:
Trang 26Vậy phương án tối ưu là (40/9; 23/9; 1; 0 ;0) với trị hàm mục tiêu là 7 Cách trình bày của bảng đơn hình ở trên còn gọi là dạng toạ độ của phương pháp đơn hình
5 PHƯƠNG PHÁP ĐƠN HÌNH ĐỐI NGẪU TỪ VỰNG
5.1 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 Xo, X1, , Xk Giả phương án cuối cùng Xk là phương án (vì vậy là phương án tối ưu) của bài toán (5) - (7) Hàm mục tiêu xo = xo(Xr) không tăng khi r tăng Mỗi giả phương án Xr ứng với bảng Tr và các tập Br , Nr
x5 0 -1 0
Trang 27Quá trình giải gồm bước lặp ban đầu (xây dựng giả phương án xuất phát Xo) và dãy bước lặp tổng quát
5.2. Tìm cực đại từ vựng của phương án mở rộng
~
X = (xo, x1, , xn) = 1
1, , ,
n
j j n j
Giả sử ta xây dựng bảng đơn hình T ứng với bài toán (5) - (7) không phải
là l -chuẩn, ứng với nó có các tập B và N Giả sử hàm ∑
∈N
j j
x bị chặn trên tập (6)- (7) Khi đó ta tìm được số M sao cho: ∑
∈N
j j
x ≤ M (có thể dùng đơn hình thường để xác định M)
Đưa vào biến mới
=+
∈
0 x
) x (
1 M x
1 n
N
1 n
Viết ràng buộc mới này vào cuối bảng T, chọn xk loại khỏi cơ sớ theo quy tắc: k = n+1 Chọn biến xl đưa vào cơ số theo quy tắc
Trang 28Rl = lex min {Rj | j ∈ N }
Thực hiện một bước biến đổi bảng đơn hình theo các công thức của tiết 3
ta nhận được bảng To là l - chuẩn (Rj ≥ 0 với j ∈ No ) và ứng với nó ta có các tập Bo và No:
0
2
4 3
10 4
2
3 2
1
3 2 1
3 2 1
3 2 1
≥
≥
≥
= +
−
≥ + +
≤
− +
x x
x
x x x
x x x
x x x
, ,
0 ,
0
2 2
4 3
10 4
2
3 2
1
3 2 1
3 2 1
3 2 1
3 2 1
−
≤ +
x x
x
x x x
x x x
x x x
x x x
3 4
4 2 10
7 6 5 4 3 2 1
3 2 1 7
3 2 1 6
3 2 1 5
3 2 1 4
≥
+
− +
−
=
− +
−
=
+ + +
x x x x
x x x x
x x x x
x x x x
Ta có các bảng đơn hình sau khi thêm ràng buộc phụ :
Trang 291 -x1 -x2 -x3 x0 0.00000 -3.00000 1.00000 -2.00000 x1 0.00000 -1.00000 0.00000 0.00000 x2 0.00000 0.00000 -1.00000 0.00000 x3 0.00000 0.00000 0.00000 -1.00000 x4 10.00000 2.00000 4.00000 -1.00000 x5 -4.00000 -3.00000 -1.00000 -1.00000 x6 2.00000 1.00000 -1.00000 1.00000 x7 -2.00000 -1.00000 1.00000 -1.00000 x8 100.00000 1.00000* 1.00000 1.00000
Bảng 1
1 -x8 -x2 -x3 x0 300.00000 3.00000 4.00000 1.00000 x1 100.00000 1.00000 1.00000 1.00000 x2 0.00000 - 0.00001 -1.00000 0.00000 x3 0.00000 - 0.00001 0.00000 -1.00000 x4 -190.00000 -2.00000 2.00000 -3.00000* x5 296.00000 3.00000 2.00000 2.00000 x6 -98.00000 -1.00000 -2.00000 0.00000 x7 98.00000 1.00000 2.00000 0.00000
Bảng 2
1 -x8 -x2 -x4 x0 236.66667 2.33333 4.66667 0.33333 x1 36.66667 0.33333 1.66667 0.33333 x2 0.00000 - 0.00001 -1.00000 0.00000 x3 63.33333 0.66667 - 0.66667 - 0.33333 x4 0.00000 0.00000 0.00000 -1.00000 x5 169.33333 1.66667 3.33333 0.66667 x6 -98.00000 -1.00000* -2.00000 0.00000 x7 98.00000 1.00000 2.00000 0.00000
Bảng 3
Trang 301 -x6 -x2 -x4 x0 8.00000 2.33333 0.00000 0.33333 x1 4.00000 0.33333 1.00000 0.33333 x2 0.00000 - 0.00001 -1.00000 0.00000 x3 -2.00000 0.66667 -2.00000* - 0.33333 x4 0.00000 0.00000 0.00000 -1.00000 x5 6.00000 1.66667 0.00000 0.66667 x6 0.00000 -1.00000 0.00000 0.00000 x7 0.00000 1.00000 0.00000 0.00000
Bảng 4
1 -x6 -x3 -x4 x0 8.00000 2.33333 0.00000 0.33333 x1 3.00000 0.66667 0.50000 0.16667 x2 1.00000 - 0.33333 - 0.50000 0.16667 x3 0.00000 0.00000 -1.00000 0.00000 x4 0.00000 0.00000 0.00000 -1.00000 x5 6.00000 1.66667 0.00000 0.66667 x6 0.00000 -1.00000 0.00000 0.00000 x7 0.00000 1.00000 0.00000 0.00000
i j m j
Trang 31các b[i] có thể dương và âm, phương án xuất phát không đối ngẫu chấp nhận được Nếu bài toán giải có ràng buộc đẳng thức dạng: i i
m j
)(
(1
m j
x
xj = ( − 1 )( − j) = 1 , 2 , ,
, , 2 , 1 )
)(
(1
p i
x a b
j ij i
2 , 1
xj ≥ = +
•Trong chương trình sử dụng các biến và mảng sau:
- m: số biến chính, n: số biến chính và biến bù của bài toán (n=m+p), gz là một
số dương đủ lớn và thường lấy bằng max { aij, bi, cj}, ss = 1 nếu bảng s là l- chuẩn nhưng không chấp nhận được và = 0 nếu bảng không là l- chuẩn
- Mảng s gồm n + 2 dòng và m+1 cột lúc đầu ghi dữ liệu của bài toán sau đó lưu bảng đơn hình ở mỗi bước Dòng n+1 để chứa ràng buộc phụ (8)
- s[0][0] hàm mục tiêu, cột 0 là cột phương án, dòng 0 là các ước lượng
- cs : các biến ở bên trái bảng đơn hình, nc : các biến phi cơ sở
Trang 322 1 -1 1 -2 -1 1 -1
Trang 33t= (unsigned long far *)MK_FP(0,0X46C); t1=*t;
printf("\nCo in trung gian hay khong 1/0 ? ");
printf("\nBang 1, so lieu ban dau");
if (tg==1) fprintf(f2,"\nBang 1, so lieu ban dau");
printf("\nBang 1, so lieu ban dau them rang buoc phu");
if (tg==1) fprintf(f2,"\nBang 1, so lieu ban dau them rang buoc phu");
{ for (i=0; i<=n;i++)
{ if (s[i][cmin] > s[i][j]) {cmin=j; break;}
if (s[i][cmin] < s[i][j]) break; }
Trang 34if (tg==1) fprintf(f2,"\nBang %d, l- chuan dau tien",sb);
inbang(0);
L1: kgd2= dhdoingau();
if (kgd2==1) {
printf("\nBai toan phu khong giai duoc");
if (tg==1) fprintf(f2,"\nBai toan phu khong giai duoc, STOP");
void inbang(int cuoi)
{ int n1; if (cuoi==1) n1=n+1; else n1=n;
printf("\nCo so : ");
for (i=0; i<=n1;i++) printf("%d ",cs[i]) ; printf("\n");
printf("Phi co so : ");
for (j=1; j<=m; j++) printf("%d ",nc[j]);printf("\n");
for (i=0;i<=n1;i++) { for (j=0; j<=m;j++)
for (j=1; j<=m; j++) fprintf(f2,"%d ",nc[j]);fprintf(f2,"\n");
for (i=0;i<=n1;i++) { for (j=0; j<=m;j++)
fprintf(f2," %13.5lf ",s[i][j]);
fprintf(f2,"\n"); } }
getch();
}
int dhdoingau()
Trang 35printf("\nPhuong an toi uu la: ");
for (i=0; i<=n;i++)
else { kgd= cotquay(); if (kgd==1) return 1;
printf("\nCot quay = %d, Phan tu quay = %13.5lf",cmin,s[l][cmin]);
Số bảng đã lập : 5 bảng
Trang 366 BÀI TOÁN QUY HOẠCH TUYẾN TÍNH NGUYÊN
Bài toán sau gọi là bài toán qui hoạch nguyên :
Max xo = ∑
=
n 1
j j jx
1
n
ij j j
Tập hợp các véc tơ X thoả mãn (9) - (11) gọi là miền xác định của bài toán quy hoạch tuyến tính nguyên Vécc tơ X thoả (9) - (11) được gọi là phương án (hay lời giải chấp nhận được) Phương án X* làm cực đại (8) gọi là phương án tối ưu
Nếu X = (x1, , xn) là phương án (hay phương án tối ưu) và xo = ∑c x j j
thì véc tơ X = (xo, x1, , xn) gọi là phương án mở rộng (phương án tối ưu
mở rộng)
Ký hiệu:
LN - miền xác định của bài toán (8) - (11) (LN,C) là bài toán (8) - (11)
X (LN,C) là phương án tối ưu
Bài toán quy hoạch tuyến tính nguyên gọi là giải được nếu tồn tại phương án tối ưu X*
Một đa diện L mà tất cả các đỉnh của nó đều là nguyên (mọi thành phần
là nguyên) gọi là đa diện nguyên
Bảng đơn hình T mà tất cả các phần tử của nó đều là nguyên gọi là bảng đơn hình nguyên
Trang 37để cắt định hình Xác định phương án sản xuất mỗi loại thép là bao nhiêu để mang đến cho nhà sản xuất lợi nhuận cao nhất
2 Một nhà sản xuất hai loại đá xây dựng: loại lớn x1, loại bé x2 Loại x1 cần 2 h
để nghiền, 5 h để phân loại, 8 h để làm sạch Loại x2 cần 6 h để nghiền, 3 h để phân loại, 2 h để làm sạch Lợi nhuận mang lại từ loại x1 và x2 tương ứng là 40$ và 50$ Khả năng cho phép sử dụng thiết bị trong một tuần là : 36 giờ để nghiền, 30 h để phân loại,
40 giờ để làm sạch Xác định phương án sản xuất có lợi nhuận cao nhất
3 Một nhà vườn muốn tạo một hỗn hợp phân bón từ hai loại sản phẩm cơ bản sao cho tối thiểu nhận được 15 đơn vị potasses, 20 đv nitrates, 24 đv phosphates Loại x1 có giá 120 $ cung cấp được 3 đơn vị potasses, 1 đv nitrates, 3 đv phosphates Loại x2 có giá 60 $ cung cấp được 1 đơn vị potasses, 5 đv nitrates, 2 đv phosphates Xác định phương án chọn lựa để cực tiểu hóa chi phí của nhà vườn
4 Một nghệ sỹ rất quan tâm đến sức khỏe, mong muốn mỗi ngày có được tối thiểu
36 đv vitamin A, 28 đv vitamin C, 32 đv vitamin D Loại thuốc thứ nhất giá 3$ có thể cung cấp 2 đv vitamin A, 2 đv vitamin C, 8 đv vitamin D Loại thuốc thứ hai giá 4$ có thể cung cấp 3 đv vitamin A, 2 đv vitamin C, 2 đv vitamin D Xác định lượng thuốc sử dụng để chi phí của nghệ sỹ này bé nhất
5 Một nhà sản xuất thiết bị âm nhạc có khả năng chế tạo 3 loại: tiêu chuẩn y1, chất lượng cao y2, chất lượng đặc biệt y3 Loại tiêu chuẩn cần 3 h để lắp ráp mạch điện,
1 h để hoàn chỉnh, lợi nhuận đem lại là 15$ Loại chất lượng cao cần 1 h để lắp ráp mạch điện, 5 h để hoàn chỉnh, lợi nhuận đem lại là 20$ Loại chất lượng đặc biệt cần 3
h để lắp ráp mạch điện, 2 h để hoàn chỉnh, lợi nhuận đem lại là 24$ Khả năng xưởng có thể bố trí 120 h để lắp ráp mạch điện, 60 h để hoàn chỉnh Xác định phương án sản xuất
để cực đại lợi nhuận
6. Chủ doanh nghiệp có 3000 ha đất để trồng 3 loại nông sản A, B, C Để sản xuất nông sản A cần chi phí về vốn là 300 ngàn đồng/ha, chi phí về lao động là 500 ngàn đồng/ha, sản lượng thu được trị giá 2000 ngàn đồng/ha Để sản xuất nông sản B cần chi phí về vốn là 350 ngàn đồng/ha, chi phí về lao động là 400 ngàn đồng/ha, sản lượng thu được trị giá 1500 ngàn đồng/ha Để sản xuất nông sản C cần chi phí về vốn là
400 ngàn đồng/ha, chi phí về lao động là 450 ngàn đồng/ha, sản lượng thu được trị giá
2500 ngàn đồng/ha Khả năng chi về vốn của doanh nghiệp là 1,2 tỷ đồng, chi về lao động là 1,6 tỷ đồng Để đảm bảo các hợp đồng đã ký thì nông sản A cần trồng ít nhất là
600 ha Cần xác định mỗi nông sản cần trồng bao nhiêu ha để sản lượng thu được là nhiều nhất ?
7. Một trại chăn nuôi gia súc cần mua 3 loại thức ăn tổng hợp T1, T2, T3 Trong 1
kg T1 có 3 đơn vị dinh dưỡng D1, 1 đv dinh dưỡng D2 Trong 1 kg T2 có 4 đơn vị dinh dưỡng D1, 2 đv dinh dưỡng D2 Trong 1 kg T3 có 2 đơn vị dinh dưỡng D1, 3 đv dinh dưỡng D2 Giá 1 kg T1, T2, T3 tương ứng là 15, 12, 10 ngàn đồng Mỗi bữa ăn cho gia
Trang 38súc cần tối thiểu 160 đv dinh dưỡng d1, 140 đv dinh dưỡng D2 Cần mua mỗi loại thức
ăn T1, T2, T3 bao nhiêu kg để chi phí cho một bữa ăn là nhỏ nhất
Trang 39Chương 3
THUẬT TOÁN GOMORY THỨ NHẤT
Trong chương này sẽ trình bày thuật toán Gomory thứ nhất và chứng minh sự hội
tụ của nó
1.1. Việc giải bài toán quy hoạch tuyến tính nguyên (L C có dẫn tới việc giải N, )
một bài toán quy hoạch tuyến tính ( , )A C không ?
Định lý 1 Giả sử L là một đa diện lồi, L là tập các điểm nguyên của nó, N
( N)
R ≡V L là bao lồi tuyến tính của tập các điểm nguyên L Khi đó: N
1) R ≡V L( N)là một đa diện nguyên (các đỉnh đều là nguyên)
2) R N =L N (1)
3) Tập R các phương án tựa của đa diện R chứa trong * R N:
R* ⊆R N (2)
Chứng minh
1) Chứng minh R là một đa diện nguyên ? Vì L là một đa diện lồi nênL là tập N
hữu hạn ⇒R ≡V L( N) là tổ hợp lồi tuyến tính của một tập hữu hạn Vì vậy, R là
một đa diện , đồng thời
Trang 40
Hệ quả 1 Giả sử X R C( , ) là phương án tựa tối ưu của bài toán ( , )R C , khi đó
( , )
hoạch tuyến tính nguyên(L C N, ) ta đi giải bài toán ( , )R C
1.2 Ta sẽ chứng minh: 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 L N
Định lý 2 Giả sử L là một đa diện lồi, U là một đa diện lồi nguyên và
U N = L N (8) Khi đó
U =R =V L( N) (9)
Chứng minh Từ (8) trực tiếp suy ra
R⊆U (10) ( vì R V L= ( N)=V U( N)⊆ ) U