You are on page 1of 72

MÔ HÌNH – MÔ PHỎNG –

TỐI ƯU HÓA

Bài Toán Quy Hoạch Rời Rạc


Đị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.

Những bài toán này được gọi là bài toán quy hoạch rời rạc
Định nghĩa bài toán quy hoạch rời rạc
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:
g1(x,y) ≤ 0, i=1,2,...m, x∈D
trong đó, x = (x1, x 2, ,…,x p), y =(y1, y 2, …,y q), p > 0, q ≥0 , D là tập
hữu hạn các véc tơ p - chiều, còn f, g là những hàm cho trước của n
biến số ( n = p + q ).
Nếu f, g 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 x1, x2,…xp thì bài toán được
gọi là bài 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 nguyên bộ phận.
Định nghĩa bài toán quy hoạch rời rạc
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 a1, a2, .. ak(các quy mô công suất tiêu chuẩn).
Khi đó bằng cách đặt:

thì biến rời rạc x có thể được thay thế bởi một số biến uj chỉ nhận giá trị
0 hay 1, gọi tắt là biến 0 −1 hay biến Boolean.
Định nghĩa bài toán quy hoạch rời rạc
2. Các bài toán thực tế dẫn tới quy hoạch rời rạc

Nếu các ai và bj là nguyên thì đa


diện lồi xác định bởi các ràng
buộc của bài
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.
2. Các bài toán thực tế dẫn tới quy hoạch rời rạc
2. Các bài toán thực tế dẫn tới quy hoạch rời rạc

2.2. Bài toán phân việc


Có n đơn vị sản xuất cần sản xuất n loại sản phẩm c ij là chi
phí cho đơn vị i sản 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à nhỏ nhất.
Dạng toán học của bài toán là:
2. Các bài toán thực tế dẫn tới quy hoạch rời rạc
2. Các bài toán thực tế dẫn tới quy hoạch rời rạc
2.3.Bài toán xếp hàng lên tàu
Mộ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à sj, có trọng lượng là aj ,
thể tích bj và giá trị sử dụng là cj . Bài toán đặt ra là cần xác
định số lượng hàng loại j cần xếp lên tàu xj để tổng giá trị
hàng hoá trên tàu là lớn nhất. Dạng toán học của bài toán là:
2. Các bài toán thực tế dẫn tới quy hoạch rời rạc

2.4. Bài toán xếp hàng vào các côngtennơ rỗng cùng loại
Có n loại hàng hoá cần được xếp lên các côngtennơ 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 aj ,khối lượng bj
và số lượng cần vận chuyển là 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ôngtennơ sao cho dùng
ít côngtennơ nhất ?
Giả sử ta đã biết được m là số côngtennơ 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ôngtennơ 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ôngtennơ đã dùng hết. Tiếp đó sử dụng côngtennơ tiếp
theo…
2. Các bài toán thực tế dẫn tới quy hoạch rời rạc

Gọi xij là số đồ vật j được chở trên côngtennơ i , yi là biến


nhận giá trị 0 hay 1 tuỳ theo có dùng côngtennơ i hay không.
Dạng toán học của bài toán là:
• Hai 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 (yi =1 ), còn
côngtennơ không sử dụng (yi = 0)
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 các
côngtennơ.
2. Các bài toán thực tế dẫn tới quy hoạch rời rạc

2.5. Bài toán với chi phí cố định


2. Các bài toán thực tế dẫn tới quy hoạch rời rạc

2.5. Bài toán với chi phí cố định


Giả thiết dj > 0 với mọi j =1, 2,..., n . Các số dj được hiểu là các chi phí
cố đị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 (xj) . Giả
sử đã biết pj là cận trên của biến (xj) , tức là:
pj ≥ max {xj : x ∈ D}, j=1,2,..,n
Khi đó ta có thể đưa bài toán trên về bài toán tương đương với nó
dạng:
2. Các bài toán thực tế dẫn tới quy hoạch rời rạc

2.6. 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.
2. Các bài toán thực tế dẫn tới quy hoạch rời rạc

Gọi x1, x2, x3 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 rời rạc sau:

Tổng quát, ký hiệu: aij là số đoạn loại i thu được khi cắt theo mẫu
j , bi là số đoạn loại i cần có, cj là dẻo thừa khi cắt theo mẫu j , xj
là số thanh thép cắt theo mẫu j . Ta được bài toán quy hoạch rời
rạc:
2. Các bài toán thực tế dẫn tới quy hoạch rời rạc

2.7. 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 trong p dự án đầu tư phát triển sản xuất
Cho biết:
 xj là số lượng sản phẩm loại j được sản xuất.
 cj lợi nhuận thu được nếu một sản phẩm loại j được sản xuất.
2. Các bài toán thực tế dẫn tới quy hoạch rời rạc

 b0 là tổng số tiền nhà đầu tư có thể đem ra để đầu tư vào sản xuất
(thực hiện các dự án).
 bi là lượng tài nguyên i hiện có trước khi thực hiện các đầu tư.
 aij là số tài nguyên i cần để sản xuất ra một sản phẩm j .
 dk là chi phí cần cho loại dự án đầu tư k .
 gik 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: yk =1 nếu dự án được dùng, và bằng 0 nếu
trái lại.
Dạng toán học của bài toán là:
2. Các bài toán thực tế dẫn tới quy hoạch rời rạc
2. Các bài toán thực tế dẫn tới quy hoạch rời rạc

2.8. 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.
2. Các bài toán thực tế dẫn tới quy hoạch rời rạc

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 ≤ P ), mỗi địa
điểm đặt nhiều nhất là một nhà máy.
 M là số các vật phẩm khác nhau được sản xuất hay tiêu dùng.
 ais là lượng vật phẩm i được sản xuất (nếu ais > 0 ), hay tiêu dùng
(nếu ais < 0 ) ở nhà máy s ( i =1, 2,...,M; s =1,2,..., N )
 b là nhu cầu về vật phẩm i do các nhà máy sản xuất (nếu bi >0 ),
hay do các nhà máy tiêu dùng (nếu bi < 0 ).
 dps là chi phí lắp đặt nhà máy s tại địa điểm p ( p =1, 2,..., P) .
2. Các bài toán thực tế dẫn tới quy hoạch rời rạc

 c là chi phí vận chuyển một đơn vị hàng giữa các địa điểm p và q .
 fst là lượng hàng cần vận chuyển (trong một thời kỳ) từ nhà máy s
tới nhà máy t .
 λ là hệ số chuyển đổi làm cho chi phí vận chuyển so sánh được với
chi phí đầu tư.
 xps là biến xác định vị trí, nhận giá trị 1 hay 0 tuỳ thuộc vào nhà
máy s có đặt tại vị trí p hay không.
Bài toán đặt ra là cần xác định địa điểm đặt các nhà máy sao cho tổng
chi phí xây dựng và vận chuyển hàng là nhỏ nhất.
Bài toán quy hoạch nguyên phi tuyến:
2. Các bài toán thực tế dẫn tới quy hoạch rời rạc

Bài toán quy hoạch nguyên phi tuyến:


2. Các bài toán thực tế dẫn tới quy hoạch rời rạc

2.9. Bài toán ghép cặp trên đồ thị


Cho đồ thị G = (V, E) , V là tập n đỉnh, E là tập m cạnh. Tìm tập cạnh
lớn nhất (nhiều cạnh nhất) sao cho hai cạnh bất kỳ không chung đỉnh.
Ta đưa vào các ký hiệu:
aij =1 nếu đỉnh i là một trong các đầu mút của cạnh j , và bằng 0 nếu
trái lại.
xj =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à:
2. Các bài toán thực tế dẫn tới quy hoạch rời rạc

2.9. Bài toán ghép cặp trên đồ thị


Nếu mỗi cạnh có gắn một trọng số c j ≥ 0 thì có thể xét bài toán tìm
ghép cặp với tổng trọng số lớn nhất

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:
p đỉnh ứng với người, q đỉnh ứng với việc. Nếu người i có khả năng
làm việc j thì ta vẽ cạnh (i, j) . Tìm ghép cặp lớn nhất trong đồ thị này.
2. Các bài toán thực tế dẫn tới quy hoạch rời rạc

2.10. 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
2. Các bài toán thực tế dẫn tới quy hoạch rời rạc

2.10. Bài toán phân công theo ca kíp


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
x1 là số cảnh sát đi làm vào lúc 22 giờ
tối,
x2 là số cảnh sát đi làm vào lúc 02 giờ
sáng,
…,
x6 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 toán là:
Phương pháp cắt Gomory giải qhtt nguyên

Xét bài toán QHTT nguyên như sau:


Phương pháp cắt Gomory giải qhtt nguyên
Phương pháp cắt Gomory giải qhtt nguyên

3) Tất cả các phương án tựa tối ưu của bài


toán quy hoạch tuyến tính (, ) AC đều thoả
mãn điều kiện nguyên
việc xây dựng đa diện lồi A thoả mãn điều kiện
trên cũng rất phức tạp và chưa có thuật toán
hữu hiệu.
Phương pháp cắt Gomory cho bài toán
QHTT nguyên hoàn toàn
Bước 1:Vẽ miền các phương án khả thi (còn gọi là miền ràng buộc) là tập hợp các
phương án khả thi (các phương án, nếu nói một cách ngắn gọn). Mỗi phương án được
thể hiện qua bộ số (x1, x2), thoả mãn tất cả các ràng buộc đã có kể cả điều kiện không
âm và điều kiện nguyên của các biến

Giao của hai nửa mặt phẳng tìm


được trên cho ta tập hợp các điểm
(x1, x2) thoả mãn các ràng buộc.
Tuy nhiên, để thoảmãn điều kiện
không âm và điều kiện nguyên của
các biến, ta chỉ xét các điểm nằm
trong góc phần tư thứ nhất có các
tọa độ đều nguyên.
Vậy miền các phương án khả thi
là miền gồm các điểm với tọa độ
nguyên được giới hạn bởi tứ
giác OABC.
Phương pháp cắt Gomory cho bài toán
QHTT nguyên hoàn toàn
Bước 2:Trong miền (OABC) ta tìm
điểm (x1, x2) với các tọa độ nguyên
sao cho
z = x1+ 4x2 đạt giá trị lớn nhất.
Dễ thấy đó là điểm F(1, 1)
Kết luận.
Trong các phương án khả thi thì
phương án tối ưu là (x1= 1, x2= 1).
Tại phương án này, giá trị hàm mục
tiêu là lớn nhất:
zmax= 1 ×1 + 4 ×1 = 5.
Phương pháp cắt Gomory cho bài toán
QHTT nguyên hoàn toàn
Phương pháp cắt Gomory cho bài toán
QHTT nguyên hoàn toàn
Phương pháp cắt Gomory cho bài toán
QHTT nguyên hoàn toàn
Phương pháp cắt Gomory cho bài toán
QHTT nguyên hoàn toàn
– Tiếp tục giải BTQHTT không nguyên với miền
phương án ODFG, xuất phát từ phương án đối ngẫu
khả thi E(6/5, 1) để đạt tới phương án tối ưu là điểm
F(1, 1) có các toạ độ nguyên với zmax= 5.
Vì các miền phương án OABC và ODFG chứa cùng
các điểm có tọa độ nguyên như nhau, nên đây cũng
chính là phương án tối ưu của BTQHTT nguyên đã
cho
Phương pháp cắt Gomory giải qhtt nguyên
Sơ đồ thuật toán cắt do Dantzig, Fulkerson và Johnson
đề xuất :
Sơ đồ phương pháp cắt:

 Bước 0: Đặt

 Bước k= 1,2,...
Giải bài toán QHTT: min {<c,x>:x Dk} thu được phương án tối ưu là
xk (nếu không thu được xk thì ta kết luận bài toán (1)-(4) không có lời
giải, hoặc không có lời giải hữu hạn).
 Nếu thoả mãn điều kiện (4) thì ta kết luận xk là phương án tối ưu
của bài toán (1)-(4). Kết thúc thuật toán.
Phương pháp cắt Gomory giải qhtt nguyên
 Ngược lại, ta sẽ xây dựng ràng buộc tuyến tính (Siêu phẳng cắt)
Lk(x) =<pk,x> -dk≤0
bổ sung nó vào hệ ràng buộc xác định Dk ta được
Dk+1= Dk {x : Lk(x) ≤0}
chuyển sang bước k+1
Siêu phẳng cắt Lk(x) cần phải được xây dựng sao cho thoả mãn các tính
chất cơ bản sau đây:
- Mọi phương án chấp nhận được x của bài toán (1)-(4) đều phải thoả
mãn Lk(x) ≤0 (tức là nó không cắt đi bất kỳ phương án chấp nhận
được nào của bài toán xuất phát
- Lk(xk) >0 nghĩa là nó cắt bỏ phương án tối ưu xk của bài toán QHTT ở
bước trước ra khỏi miền ràng buộc của bài toán QHTT ở bước sau.
- Về mặt lý thuyết, các lát cắt phải được xây dựng sao cho đảm bảo
tính hữu hạn của thuật toán.
Phương pháp cắt Gomory cho bài toán
QHTT nguyên hoàn toàn
Xét bài toán QHTT nguyên (1)-(4) trong trường hợp n1=n. Khi đó ta có
thuật toán cắt như sau:
a) Bước 1:
- Giải bài toán QHTT (1)-(3) được nghiệm tối ưu là x* (nếu không thu
được thì ta kết luận bài toán (1)-(4) không có lời giải).
- Nếu x* nguyên thì kết thúc thuật toán.
- Ngược lại thì chuyển sang bước 2.
b) Bước 2: (xây dựng siêu phẳng cắt)

c) Bước 3: Kết thúc.


Phương pháp cắt Gomory cho bài toán
QHTT nguyên hoàn toàn
Phương pháp cắt Gomory cho bài toán
QHTT nguyên hoàn toàn
Phương pháp cắt Gomory cho bài toán
QHTT nguyên hoàn toàn
Phương pháp cắt Gomory cho bài toán
QHTT nguyên hoàn toàn
Phương pháp cắt Gomory cho bài toán
QHTT nguyên hoàn toàn
Phương pháp cắt Gomory cho bài toán
QHTT nguyên hoàn toàn
Phương pháp cắt Gomory cho bài toán
QHTT nguyên hoàn toàn
Phương pháp cắt Gomory cho bài toán
QHTT nguyên hoàn toàn
Phương pháp cắt Gomory cho bài toán
QHTT nguyên hoàn toàn
Phương pháp cắt Gomory cho bài toán
QHTT nguyên hoàn toàn
Phương pháp cắt Gomory cho bài toán
QHTT nguyên hoàn toàn
Phương pháp cắt Gomory cho bài toán
QHTT nguyên hoàn toàn
Phương pháp cắt Gomory cho bài toán
QHTT nguyên hoàn toàn
BTQHTT nguyên. BTQHTT nguyên dạng chính
Tìm Max z = x1+ 4x2, tắc:
với các ràng buộc Max z = x1+ 4x2 + 0x3+ 0x4,
với các ràng buộc
Phương pháp cắt Gomory cho bài toán
QHTT nguyên hoàn toàn
BTQHTT nguyên dạng chính tắc.
Tìm Max z = x1+ 4x2 + 0x3+ 0x4, với các ràng buộc
Phương pháp cắt Gomory cho bài toán
QHTT nguyên hoàn toàn

Trước hết giải BTQHTT tương ứng.


Như vậy, phương án tối ưu ở bước 2 chưa thỏa mãn điều kiện nguyên.
Phương pháp cắt Gomory cho bài toán
QHTT nguyên hoàn toàn
Phương pháp cắt Gomory cho bài toán
QHTT nguyên hoàn toàn
Phương pháp cắt Gomory cho bài toán
QHTT nguyên hoàn toàn
Phương pháp cắt Gomory cho bài toán
QHTT nguyên hoàn toàn
Phương pháp cắt Gomory cho bài toán
QHTT nguyên bộ phận
Ví dụ
Một doanh nghiệp có thể sản xuất 3 loại sản phẩm, ký hiệu là A, B, C.
Định mức hao phí nguyên liệu, vốn, lao động (giờ công) và lợi nhuận
thu được tính cho 1 đơn vị sản phẩm mỗi loại cho trong bảng sau đây

Doanh nghiệp sẽ sản xuất bao nhiêu đơn vị sản phẩm mỗi
loại sao cho trong phạm vi số nguyên liệu, vốn, giờ công huy
động được, doanh nghiệp đạt lợi nhuận cao nhất. Hãy lập mô hình
toán của bài toán trên rồi giải và cho biết lời giải của bài toán thực
tế.
Bỏ qua điều kiện nguyên của ẩn số thì bài toán trên là
bài toán QHTT. Để giải ta đưa về dạng chính tắc bằng
cách đổi dấu hàm mục tiêu và thêm vào 3 ẩn phụ:
Ví dụ 2
Theo hợp đồng đã ký, một nhà máy sản xuất giấy sẽ phải cung cấp 240 tấn
giấy loại A và 120 tấn giấy loại B. Nhà máy hiện có 3 dây chuyền sản xuất
giấy. Các chi tiết về mỗi lần sử dụng một dây chuyền sản xuất như sau:
•Dây chuyền I: Chi phí 6 triệu. Sản xuất được1 tấn giấy loại A và 1 tấn giấy
loại B, đồng thời tạo ra 2 tấn chất thải.
•Dây chuyền II: Chi phí 12 triệu. Sản xuất được 2 tấn giấy loại A và 3 tấn
giấy loại B, đ ồng thời tạo ra 5 tấn chất thải.
• Dây chuyền III: Chi phí 10 triệu. Sản xuất được 4 tấn giấy loại A
và 1 tấn giấy loại B, đồng thời tạo ra 1 tấn chất thải.
Được biết, lượng chất thải trong quá trình sản xuất không được vượt
quá 200 tấn. Nhà máy muốn thực hiện hợp đồng với tổng chi phí sản xuất
thấp nhất.
1) Lập bài toán ứng với mô hình trên.
2) Giải bài toán trên để tìm kế hoạch sản xuất tối ưu và hiệu quả kinh tế thu
được.
Bỏ qua điều kiện nguyên của ẩn số thì bài toán trên là bài toán QHTT. Để
giải, ta đưa về dạng chính tắc bằng cách thêm ẩn phụ và ẩn phụ:

You might also like