Professional Documents
Culture Documents
CHƢƠNG 2. BÀI TOÁN QUY HOẠCH TUYẾN TÍNH VÀ PHƢƠNG PHÁP GIẢI
1. Mô hình quy hoạch tuyến tính
2. Phƣơng pháp đồ thị
3. Phƣơng pháp đơn hình
2.1. Tìm hiểu quy trình tính toán
2.2. Khung thuật toán đơn hình
4. Cơ sở toán học của phƣơng pháp đơn hình
4.1. Phát biểu bài toán quy hoạch tuyến tính dạng chính tắc
4.2. Công thức số gia hàm mục tiêu
4.3. Tiêu chuẩn tối ƣu
4.4. Thuật toán đơn hình cho bài toán quy hoạch tuyến tính dạng chính tắc
5. Bổ sung thêm về phƣơng pháp đơn hình
5.1. Đƣa bài toán quy hoạch tuyến tính về dạng chính tắc
5.2. Phƣơng pháp đơn hình mở rộng
5.3. Phƣơng pháp đơn hình hai pha
5.4. Phƣơng pháp đơn hình cải biên
6. Ứng dụng bài toán quy hoạch tuyến tính trong kỹ thuật điện (bài toán cho sẵn)
CHƢƠNG 3. BÀI TOÁN ĐỐI NGẪU CỦA BÀI TOÁN QUY HOẠCH TUYẾN TÍNH
1. Phát biểu bài toán đối ngẫu
1.1. Phát biểu bài toán
1.2. Ý nghĩa của bài toán đối ngẫu
1.3. Quy tắc viết bài toán đối ngẫu
1.4. Các tính chất và ý nghĩa của cặp bài toán đối ngẫu
2. Thuật toán đơn hình đối ngẫu
2.1. Quy trình tính toán và phát biểu thuật toán
2.2. Cơ sở của phƣơng pháp đơn hình đối ngẫu
3. Ứng dụng bài toán đối ngẫu của bài toán quy hoạch tuyến tính trong kỹ thuật điện (bài toán cho sẵn)
Cho hàm số f: .
Bài toán tối ưu tổng quát có dạng: Max (Min) f(x), với x .
Như vậy, cần tìm điểm sao cho hàm mục tiêu f(x) đạt đuợc giá trị lớn nhất đối với bài
toán Max – cực đại hoá (giá trị bé nhất đối với bài toán Min– cực tiểu hoá).
Ðiểm đuợc gọi là phƣơng án khả thi (hay phƣơng án chấp nhận đuợc hoặc phƣơng án,
nếu nói vắn tắt) của bài toán tối ƣu: Max (Min) f(x), với x . Miền D đƣợc gọi là miền ràng buộc. Các toạ
độ thành phần của điểm x đƣợc gọi là các biến quyết định, còn x cũng đuợc gọi là véc tơ quyết định.
+Giới hạn điện áp tại các nút thứ i bất kỳ trong lƣới (có thể xem xét đến)
+Giới hạn khả năng phát nóng của đƣờng đây thứ j bất kỳ trong lƣới (có thể xem xét đến):
Bài toán 2: Cần xác định công suất các nhà máy A và B sao cho tổng tổn thất công suất tác dụng trên lƣới là bé
nhất. Nhƣ vậy hàm mục tiêu:
∑ ̇ ∑
Các điều kiện ràng buộc tƣơng tự nhƣ bài toán 1:
̇ ̇ ̇ ̇ ̇ ∑ ̇
Bài toán 3: Cần xác định công suất các nhà máy A và B sao cho tổng chi phí vận hành của 2 nhà máy là bé nhất
với chi phí vận hành của các nhà máy đƣợc biểu điễn Nhƣ vậy hàm mục tiêu:
{
Mô hình toán học này đƣợc gọi là mô hình quy hoạch tuyến tính hay bài toán quy hoạch tuyến tính (BTQHTT), mà
trong đó chúng ta muốn tối ƣu hoá / cực đại hoá hay cực tiểu hoá hàm mục tiêu.
– Lúc này, giao của hai nửa mặt phẳng tìm đƣợc trên đây cho ta tập hợp các điểm ( ) thoả mãn các ràng buộc.
Tuy nhiên, để thoả mãn điều kiện không âm 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. Vậy
miền các phƣơng án khả thi (nói vắn tắt hơn, miền phƣơng án) là miền giới hạn bởi tứ giác OABC (còn gọi là tập
lồi đa điện vì là miền tạo nên bởi giao của các nửa mặt phẳng).
Buớc 2: Trong miền (OABC) ta tìm điểm ( ) sao cho
đạt giá trị lớn nhất.
Cách 1. Dùng đƣờng đồng mức. Tùy theo giá trị của mà z có những mức giá trị khác nhau.
– Vẽ đƣờng đồng mức: ở mức c = 24, (ta có thể chọn giá trị c bất kỳ, nhƣng chọn c = 24 là bội số
chung của 6 và 8 để việc tìm tọa độ các điểm cắt hai trục tọa độ thuận lợi hơn). Dễ dàng tìm đuợc hai điểm nằm
trên đƣờng đồng mức này là ( ) và ( ). Các điểm nằm trên đƣờng đồng mức này đều
cho giá trị hàm mục tiêu z = 24.
– Tƣơng tự, có thể vẽ đƣờng đồng mức thứ hai: đi qua hai điểm ( ) và (
). Chúng ta nhận thấy, nếu tịnh tiến song song đƣờng đồng mức lên trên theo huớng của véc tơ pháp tuyến
n(8, 6) thì giá trị của hàm mục tiêu z tăng lên.
Vậy giá trị z lớn nhất đạt đƣợc khi đƣờng đồng mức đi qua điểm B( bằng cách giải hệ phƣơng
trình và )
Do đó, trong các phƣơng án khả thi thì phƣơng án tối ƣu là ( ). Tại phƣơng án này, giá trị hàm mục
tiêu là lớn nhất zmax= 8 × 12 + 6 × 6 = 132.
Nhận xét. Phƣơng án tối ƣu (nếu có) của một BTQHTT với miền phƣơng án D, là một tập
lồi đa điện có đỉnh, luôn đạt đuợc tại ít nhất một trong các đỉnh của D. Các đỉnh này còn đuợc gọi
là các điểm cực biên của tập lồi đa điện D (chính xác hơn, điểm cực biên là điểm thuộc tập lồi đa
điện, mà không thể tìm đuợc một đoạn thẳng nào cũng thuộc tập lồi đa điện nhận điểm đó là điểm
trong). Nói một cách hình ảnh, muốn đạt đƣợc phƣơng án tối ƣu cho các BTQHTT thì cần phải “mạo hiểm” đi xét
các điểm cực biên của miền phƣơng án.
Cách 2. Từ nhận xét trên, đối với BTQHTT có phƣơng án tối ƣu và có miền phƣơng án D là tập lồi đa điện có đỉnh,
ta có thể tìm phƣơng án tối ƣu bằng cách so sánh giá trị của hàm mục tiêu tại các điểm cực biên của D. Quay lại ví
dụ 1, ta có giá trị z tại O(0, 0): z (0, 0) = 0, tại A(0,12): z(0, 12) = 72, tại C(15, 0): z(15, 0) = 120 và tại B(12, 6):
z(12, 6) = 132 (đạt zmax)
Nhận xét.
Xét BTQHTT có phƣơng án tối ƣu và có miền phƣơng án D là tập lồi đa điện có đỉnh. Ðể tìm phƣơng án tối ƣu, ta
xuất phát từ một điểm cực biên nào đó và tìm cách cải thiện hàm mục tiêu bằng cách đi tới điểm cực biên kề tốt
hơn. Tiếp tục nhƣ vậy cho tới khi tìm đuợc phƣơng án tối ƣu. Quy trình giải này bao gồm hữu hạn buớc do số điểm
cực biên là hữu hạn. Ðối với BTQHTT trong ví dụ 1, quy trình giải đuợc minh hoạ nhƣ sau:
O(0, 0) => A(0, 12) => B(12, 6) dừng
z=0 z = 72 z = 132
hoặc:
O(0, 0) => C(15, 0) => B(12, 6) dừng
z=0 z = 120 z = 132
Quy trình giải BTQHTT tổng quát có sơ đồ khối giản luợc nhƣ trình bày trên hình II.2. Trong
sơ đồ trên, vì mục đích trình bày vấn đề đơn giản, chúng ta không đề cập tới các truờng hợp khi
BTQHTT có miền phƣơng án là tập rỗng (lúc đó ta không tìm đƣợc phƣơng án cực biên xuất phát)
cũng nhƣ khi ta không tìm đƣợc điểm cực biên kề tốt hơn mặc dù điều kiện tối ƣu chƣa thoả mãn (lúc đó hàm mục
tiêu z không bị chặn).
Bài toán QHTT trên đây đƣợc gọi là BTQHTT dạng chuẩn tắc nếu hạng của A bằng m và .
Ví dụ
Xác định giá trị để cho
Trong truờng hợp BTQHTT dạng chính tắc, không làm giảm tính tổng quát, chúng ta luôn có thể phát biểu lại nhƣ
sau:
{
Ta có thể viết
Trong đó
;
[ ]
[ ]
Ta có thể viết lại [ ] với là véc tơ cột j của ma trận A.
Với bài toán QHTT dạng chính tắc, ta coi m véc tơ cột là các véc tơ độc lập tuyến tính.
Khi đó các biến gọi là biến cơ sở và các biến còn lại ( gọi là các biến phi
cơ sở.
3.2. Phương án cực biên
Ðối với BTQHTT dạng chính tắc luôn có thể tìm đuợc một phƣơng án xuất phát
, trong đó n phần tử đầu tiên đều bằng 0. Ðây là một phương án cực biên.
Một cách tổng quát, xét một phân rã tùy ý của ma trận A = [N B] với B là ma trận vuông đuợc tạo nên từ m véc tơ
cột độc lập tuyến tính của A, N là ma trận đƣợc tạo nên từ các véc tơ cột còn lại. Lúc đó, một phương án cực biên
của BTQHTT tƣơng ứng với sự phân rã trên của A và véc tơ x
;
[ ]
[ ]
và
[ ]
.
Ma trận B đƣợc gọi là ma trận cơ sở tƣơng ứng với . Nhƣ vậy, một phƣơng án cực biên không có quá m tọa độ
dƣơng. Phƣơng án cực biên có đúng m tọa độ dƣơng đƣợc gọi là phƣơng án cực biên không suy biến, nếu trái lại,
đó là phƣơng án cực biên suy biến.
Ví dụ:
Xác định giá trị , để cho
Nhƣ vậy ma trận B là ma trận chứa 2 véc tơ độc lập tuyến tính [ ] và [ ]
Và véc tơ [ ]
Nhƣ vậy chúng ta có thể viết
[ ]
Nếu thì [ ]
Như vậy phương án cực biên của ví dụ
4. Cơ sở toán học của phƣơng pháp đơn hình
Xét BTQHTTdạng sau đây (với các ràng buộc đều có dấu =):
{
Ta có thể viết
[ ] [ ]
Trong đó véc tơ là véc tơ cột j của ma trận A
Ở đây
[ ]
cơ sở
[ ]
Ðối với BTQHTT dạng chính tắc luôn có thể tìm đuợc một phƣơng án xuất phát
=>
[ ]
Khi ta đặt
và
Thay vào công thức tính
Ta có: [ ]
Chú ý: nên
Vậy
[ ]=
=[ ]
Nhƣ vậy
4.3. Tiêu chuẩn tối ƣu
Xét phƣơng án cực biên x của BTQHTT dạng chính tắc:
x=[ ] và A = [N B].
Lúc này ta có f(X)
Ðịnh lý 1. Xét BTQHTT dạng chính tắc. Ðiều kiện đủ để một phƣơng án cực biên x = [ ] (tƣơng ứng với phân rã
A = [N B], với B là ma trận cơ sở) là phƣơng án tối ƣu là:
.
Nguợc lại, nếu x là phƣơng án cực biên tối ƣu không suy biến thì ta cũng có
4.4. Quy trình giải bài toán QHTT theo phƣơng pháp đơn hình
Quy trình chung thành lập bảng đơn hình nhƣ sau:
Bước 1:
Xác định biến cơ sở và phi cơ sở
Lập bảng chứa ma trận A và các véc tơ c
Xác định
Bước 2:
- Kiểm tra điều kiện để tối ƣu. Nếu bài toán thoả mãn điều kiện tối ƣu thì nghiệm của bài toán đạt tối ƣu: tất cả các
biến phi cơ sở đều bằng 0 và biến cơ sở có giá trị tƣơng ứng nhƣ cột (
- Nếu điều kiện tối ƣu chƣa đạt đƣợc thì dựa vào điều kiện tối ƣu để xác định biến cần phải đƣa ra khỏi danh
sách các biến cơ sở và đƣa biến phi cơ sở ( vào danh sách biến cơ sở thay
thế.
Sử dụng phƣơng pháp nhân và cộng hàng để biến véc tơ cột của biến cơ sở mới về véc tơ đơn vị
Xác định lại
Quay lại bƣớc 2
Để cụ thể hơn, ta xét bài toán QHTT dạng chính tắt nhƣ sau:
{
Với
[ ]
cơ sở
[ ]
các biến phi cơ sở
Chú ý: BTQHTT có dạng chính tắc là BTQHTT với các biến không âm, các ràng buộc có dấu “=”, hệ số vế phải
của các ràng buộc không âm. Ngoài ra, mỗi phƣơng trình bắt buộc phải có một biến đứng độc lập với hệ số +1.
Với bài toán trên, cách lập và biến đổi các bảng đơn hình
Chú ý: đây là bài toán tìm nghiệm để hàm mục tiêu đạt nên điều kiện để hàm mục tiêu đạt cực đại
là
Biến Giá
cơ trị
sở biến
cơ sở
∑ + +...
+ + +...
+
Bƣớc 2
Nếu không tồn tại bài toán đã đạt tối ƣu. Nghiệm để bài toán đạt tối ƣu: tất cả các biến
phi cơ sở đều bằng 0 và biến cơ sở có giá trị tƣơng ứng nhƣ cột (
Tính lại
Tính lại
Lập lại bƣớc 2
Ví dụ: xác định giá trị , để cho
{
Giá trị
Hằng số Biến cơ biến cơ
c sở sở 8 6 0 0
0 60 4 2 1 0 60/4=15
0 48 2 4 0 1 48/2=24
0 0 0 0
8 6 0 0
8 15 1 0.5 0.25 0 30
0 18 0 3 -0.5 1 6
8 4 2 0
0 2 -2 0
8 12 1 0 0.333333 -0.16667
6 6 0 1 -0.16667 0.333333
132 8 6 1.666667 0.666667
0 0 -1.66667 -0.66667
Nhƣ vậy, nghiệm tối ƣu x=(12,6,0,0) và hàm mục tiêu f(x)=132.
4.4. Thuật toán đơn hình
Thuật toán đơn hình đƣợc thể hiện nhƣ hình 2.3.
{
Trong đó
- Ký hiệu có thể hiểu là hoặc = đối với các ràng buộc.
- Ðối với điều kiện về dấu của các biến 0 có thể hiểu là hoặc có dấu tuỳ ý.
Muốn giải một BTQHTT có dạng tổng quát, truớc hết cần đƣa nó về dạng chuẩn tắc. Chú ý BTQHTT dạng chính
tắc là bài toán với các biến không âm, các ràng buộc với dấu “=”, hệ số vế phải của các ràng buộc không âm. Ngoài
ra, mỗi phƣơng trình bắt buộc phải có một biến đứng độc lập với hệ số +1.
5.1. Ðƣa bài toán quy hoạch tuyến tính về dạng chuẩn tắc
Phương pháp:
Ta sử dụng các biến bù để đƣa ràng buộc về dấu “=” và các biến phụ /biến giả để có đƣợc các biến cơ sở. Các biến
bù, biến phụ/ biến giả chỉ là những đại lƣợng giúp ta biến các ràng buộc dạng bất đẳng thức thành đẳng thức, nó
không ảnh hƣởng gì đến hàm mục tiêu nên không xuất hiện trong hàm mục tiêu.
Đưa
Ví dụ: ∑ ∑
Đưa ràng buộc về dấu “=” bằng cách thêm các biến bù với hệ số âm:
∑
∑ {
Đưa ràng buộc về dấu “=” bằng cách thêm các biến bù với hệ số dương
∑
∑ {
Chuyển vế đổi dấu (áp dụng cho trường hợp có điều kiện ràng buộc dương)
{
Ví dụ:
Xác định giá trị để cho
Ở đây “ nên chƣa đảm bảo đƣợc ma trận A có 2 véc tơ đơn vị nên ta phải thêm 1 biến giả . Nhƣ vậy,
rang buộc
Với gọi là các biến phụ hay biến giả. Rõ ràng, do giả thiết b>0, bài toán có cơ sở xuất
phát có dạng ma trận đơn vị và hàm mục tiêu của bài toán phụ bị chặn duới bởi 0 nên
bài toán luôn luôn có lời giải tối ƣu. Do đó, giải bài toán QHTT phụ ta đƣợc lời giải với cơ sở tối ƣu
B*.
Ghi chú: Hàm mục tiêu của bài toán phụ phải đạt min bất kể bài toán gốc đạt min hay max.
Ðịnh lý 2.7 Giả sử bài toán QHTT phụ ta đƣợc lời giải tối ƣu . Khi đó:
i) Nếu y* 0 thì bài toán gốc không có phƣơng án tối ƣu
ii) Nếu y* = 0 thì bài toán gốc có phƣơng án cực biên xuất phát là
Các tình huống xảy ra khi y* = 0
a) Nếu B* chỉ chứa các cột của biến gốc: Có thể chuyển sang pha II.
b) Nếu B* có chứa các cột của biến pha: Nghĩa là nó có chứa các cột Ap với p> n.
Khi đó B* không phải là cơ sở của bài toán gốc. Có 2 truờng hợp:
-Nếu = 0 với thì ràng buộc p của bài toán là tổ hợp tuyến tính các ràng buộc còn lại, nên có thể xóa Ap
trong B*;
- Nếu n, ≠0 thì dùng làm phần tử xoay để thay Ap bởi Aq…
Tiếp tục nhƣ vậy đến khi ta đƣợc cơ sở của bài toán gốc thì chuyển sang pha 2.
Ví dụ: giải bài toán QHTT
Với các ràng buộc
- Cơ sở tối ƣu của bài toán phụ chỉ chứa các cột của biến gốc ( . Chuyển sang pha II.
[ ][ ] [ ]
Khi đó, quan hệ về dấu của ràng buộc nhƣ sau
Ví dụ:
Cho bài toán QHTT gốc với
[ ][ ] [ ]
[ ][ ] [ ]
1.3. Các tính chất và ý nghĩa của cặp bài toán đối ngẫu
ất đối ngẫu:
- Bài toán (P) tìm min thì bài toán (P*) tìm max;
- Bài toán (P) có n biến và m ràng buộc đẳng thức; Bài toán (P*) có m biến và n ràng buộc bất đẳng thức;
-Véc tơ hệ số của hàm mục tiêu bài toán (P) là vế phải của ràng buộc trong bài toán (P*) và nguợc lại.
ất bất đối xứng:
- Bài toán (P) m ràng buộc chặt; Bài toán (P*) có n ràng buộc lỏng;
- Bài toán (P) có n biến xj không âm; Bài toán (P*) có m biến không đòi hỏi về dấu.
Ðịnh lý 1 Nếu D và D* thì ta có G (y) F(x).
Ðịnh lý 2 Nếu bài toán này có phƣơng án tối ƣu thì bài toán kia cũng có phƣơng án tối ƣu và giá trị tối ƣu của
chúng bằng nhau.
Ðịnh lý 3 Nếu một trong hai bài toán không có phƣơng án tối ƣu thì bài toán kia không có phƣơng án (vô nghiệm).
Ðịnh lí 4 (Ðộ lệch bù yếu).
x*, y* là phương án tối ưu của (P), (P*) x*, y* là phuong án của (P), (P*) và thỏa mãn điều kiện: trong các
cặp ràng buộc đối ngẫu, nếu ràng buộc này là lỏng thì ràng buộc kia là chặt.
Hệ quả: Một ràng buộc là lỏng đối với một phƣơng án tối ƣu của bài toán này thì ràng buộc đối ngẫu với nó
phải là chặt đối với mọi phƣơng án tối ƣu của bài toán kia.
Ví dụ: Giả sử bài toán (P)
[ ][ ] [ ]
[ ][ ] [ ]
Giả sử BT gốc có nghiệm tối ƣu x*=(0,14, 6,5) với f(x*)=54, Tìm nghiệm của bài toán đối ngẫu sử dụng định lý
độ lệch bù
Từ x*=(0,14, 6,5) các ràng buộc chung trong bài toán đối ngẫu
=> ràng buộc “ “
>0 =>ràng buộc (2) “=“
ràng buộc “=“
ràng buộc “=“
Vậy ta có [ ] [ ] (5)
[ ]
Ngoài ra từ các ràng buộc biến: so sánh Ax và b
[ ][ ] [ ]
[ ] [ ]
[ ][ ] [ ]=> =2;
Ví dụ:
Hệ số Biến cơ Phƣơng 3 2 0 0 0
hàm sở án
mục tiêu
0 -4 -1 -2 1 0 0
0 -3 -1 -1 0 1 0
0 -4 -2 -1 0 0 1
0 0 0 0 0
= 3 2 0 0 0
0 -4 0 -3 2 0 -1
0 -2 0 -1 0 2 -1
3 2 1 0.5 0 0 -0.5
3 1.5 0 0 -1.5
= 0 0.5 0 0 1.5
2 4/3 0 1 -2/3 0 1/3
0 -1/3 0 0 -1/3 1 -1/3
3 4/3 1 0 1/3 0 -2/3
3 2 -1/3 0 0
= 0 0 1/3 0 4/3
2 2 0 1 0 -2 1
0 1 0 0 1 -3 1
3 1 1 0 0 1 -1
3 2 0 -1 -1
= 0 0 0 1 1
Nhƣ vậy nghiệm
3. Ứng dụng bài toán đối ngẫu của bài toán quy hoạch tuyến tính trong kỹ thuật điện (bài toán cho sẵn)
Giả sử cho mạng điện gồm có 3 phụ tải nhƣ hình vẽ 3.1. Cần xác định vị trí của nhà máy sao cho tổng chiều dài đây
dẫn đạt nhỏ nhất
Thỏa mãn điều kiện:
1. Các khái niệm cơ bản của bài toán tối ƣu phi tuyến
1.1. Phát biểu bài toán tối ƣu phi tuyến
Cho các hàm số f, Bài toán tối ƣu phi tuyến tổng quát có dạng chính tắc
nhƣ sau:
Max (Min) f(x),
Với các ràng buộc
{
Nếu hàm mục tiêu f(x) hoặc ít nhất một trong các hàm ràng buộc , j = 1,2, …, m là phi tuyến thì chúng
ta có bài toán tối ƣu phi tuyến, hay còn gọi là bài toán quy hoạch phi tuyến (BTQHPT).
Các dạng khác của bài toán tối ƣu có thể đƣa về dạng chính tắc trên đây theo những quy tắc nhất định.
Với ký hiệu D là miền ràng buộc (hay miền các phƣơng án khả thi) cho bởi các ràng buộc (i) và / hoặc (ii) thì
BTQHPT có thể viết gọn hơn nhƣ sau:
f(x) Max (Min), với x D.
Trong truờng hợp D , ta có BTQHPT không ràng buộc.
Nếu trái lại, D là tập con thực sự của thì có BTQHPT có ràng buộc.
Ví dụ 1.
Bài toán sau là BTQHPT không có ràng buộc:
Ví dụ 2.
Bài toán sau là BTQHPT có ràng buộc:
thỏa mãn
Ðịnh nghĩa 1.
Ðiểm x = (x1, x2, ..., xn) đƣợc gọi là phƣơng án khả thi (hay phƣơng án, nếu nói vắn tắt) của bài toán tối
ƣu: Max (Min) f(x), với x . Các toạ độ thành phần của điểm x đƣợc gọi là các biến quyết định.
Ðịnh nghĩa 2.
Ðối với bài toán cực đại hoá:
Max f(x), với ,
Điểm x* ) đƣợc gọi là điểm tối ƣu (hay phƣơng án tối ƣu) toàn cục nếu x* và f(x*) f(x),
.
Ðiểm ̅ đƣợc gọi là điểm tối ƣu (hay phƣơng án tối ƣu) địa phƣơng nếu ̅ và f( ̅ ) f(x),
với là một lân cận đủ nhỏ của điểm ̅ .
Ðối với bài toán cực tiểu hoá:
Min f(x), với x ,
Điểm x* đƣợc gọi là điểm tối ƣu (hay phƣơng án tối ƣu) toàn cục nếu và f(x*) f(x), . Ðiểm
̅ đƣợc gọi là điểm tối ƣu (hay phƣơng án tối ƣu) địa phƣơng nếu ̅ và f( ̅ ) f(x), với
là một lân cận đủ nhỏ của điểm ̅ .
1.2. Phân loại các phƣơng pháp giải bài toán tối ƣu phi tuyến toàn cục
Các phƣơng pháp giải BTQHPT toàn cục đƣợc phân ra thành hai lớp:
+ Phƣơng pháp tất định (deterministic methods)
+ Phƣơng pháp ngẫu nhiên (stochastic methods).
Phƣơng pháp tất định sử dụng các tính chất giải tích của hàm mục tiêu và các hàm ràng buộc. Một số dạng bài toán
tối ƣu toàn cục với những tính chất giải tích nhất định của hàm mục tiêu và các hàm ràng buộc có thể giải đƣợc
bằng các phƣơng pháp tất định thích hợp, chẳng hạn nhƣ phƣơng pháp quy hoạch toàn phƣơng, quy hoạch tách,
quy hoạch lồi, … Trong các truờng hợp đó phƣơng án tối ƣu toàn cục có thể tìm đƣợc sau một số hữu hạn buớc
tính toán với độ chính xác chọn truớc. Tuy nhiên, đối với nhiều lớp bài toán tối ƣu toàn cục phƣơng pháp tất định tỏ
ra không có hiệu quả.
Trong khi đó, các phƣơng pháp ngẫu nhiên nhƣ: phƣơng pháp đã khởi tạo (multistart), mô phỏng (simulated
annealing), thuật giải đi truyền (genetic algorithm), kỹ thuật tìm kiếm ngẫu nhiên có điều khiển (controlled random
search technique)… có thể áp dụng để giải các bài toán tối ƣu toàn cục dạng bất kỳ, không đòi hỏi các tính chất đặc
biệt của hàm mục tiêu hay các hàm ràng buộc. Tuy nhiên, các phƣơng pháp này thuờng chỉ cho phƣơng án “gần”
tối ƣu khá tốt sau một số hữu hạn buớc mà không kiểm soát đƣợc độ chính xác của phƣơng án tìm đƣợc.
Ðể bắt đầu nghiên cứu về quy hoạch phi tuyến, trong chƣơng này, chúng ta sẽ giới hạn trong việc tìm hiểu một số
khái niệm cơ bản cũng nhƣ làm quen với một số phƣơng pháp cổ điển trong tối ƣu phi tuyến.
[ ] [ ]
Trong truờng hợp c) S là giao của các nửa không gian đóng .
Ðịnh nghĩa 4.
Cho tập lồi khác rỗng . Hàm số f: S R đƣợc gọi là hàm lồi nếu thì f(
Ðịnh nghĩa 5.
BTQHPT toàn cục: f(x) Min với x S, trong đó S là tập lồi và f(x) là hàm lồi, đƣợc gọi là bài toán quy
hoạch lồi (BTQHL).
Ðịnh lý 1.
Ðối với BTQHL, mọi phƣơng án tối ƣu địa phƣơng cũng là phƣơng án tối ƣu toàn cục. BTQHTT là truờng hợp
riêng BTQHL nên nó cũng có tính chất trên.
[ ] thì [ ]
vậy f( )= [ ] √
2. Một số phƣơng pháp giải bài toán quy hoạch phi tuyến không ràng buộc
Các phƣơng pháp giải tích giải BTQHPT không ràng buộc chia thành hai lớp: phƣơng pháp không sử dụng đạo hàm
và phƣơng pháp sử dụng đạo hàm. Trong mục này chúng ta sẽ nghiên cứu một số phƣơng pháp sử dụng đạo hàm
nhƣ phƣơng pháp đƣờng dốc nhất (còn gọi là phƣơng pháp građient), phƣơng pháp Newton thông qua việc trình
bày các thuật toán và ví dụ.
2.1. Phƣơng pháp đƣờng dốc nhất
Phƣơng pháp đƣờng dốc nhất (The steepest descent method) là một trong các phƣơng pháp cổ điển thông dụng nhất
giải BTQHPT không ràng buộc nhiều biến.
Xét BTQHPT không ràng buộc tổng quát:
Min f(x), x = ( )
Ta gọi véc tơ d là huớng giảm của hàm f: tại x nếu sao cho
Giả sử hàm f là khả vi tại x. Ngoài ra giả sử rằng Lúc đó, có thể chứng minh đƣợc huớng
là huớng giảm nhanh nhất, tức là là lời giải của bài toán Minf(x, d), trong đó f’(x, d) là
đạo hàm theo huớng d tại x, với điều kiện .
Thật vậy, do f khả vi tại x nên:
,
Với,
Chú ý:
Phƣơng pháp đƣờng dốc nhất tỏ ra khá hiệu quả trong các buớc lặp ở giai đoạn đầu. Tuy nhiên, càng gần tới điểm
dừng thì thuật giải càng tỏ ra kém hiệu quả khi nó chỉ dịch chuyển đƣợc các buớc vuông góc khá ngắn. Ðiều này
đƣợc giải thích khá dễ dàng do tại buớc lặp thứ k hàm mục tiêu giảm đi một luợng là
Ví dụ 2
Giải BTQHPT: bằng phƣơng pháp đƣờng dốc nhất
Giải:
Ta dễ dàng tính đƣợc
= ( )
= ( )
Vậy ta có
Ta tính được
Bƣớc
Ngoài ra, dễ thấy điều kiện cần để q(x) đạt giá trị cực tiểu là:
Giả sử ma trận H( ) khả nghịch thì điểm tiếp theo nên xem xét chính là điểm
Ví dụ:
Giải BTQHPT:
2.3. Phƣơng pháp huớng liên hợp
Ðịnh nghĩa 8 (huớng liên hợp).
Cho H là một ma trận đối xứng cấp . Các véc tơ đƣợc gọi là các huớng liên hợp (tƣơng ứng với
ma trận H) nếu chúng là độc lập tuyến tính và
Sau đây là thuật toán của phƣơng pháp huớng liên hợp (the conjugate đirection method) do Zangwill đề xuất. Có
thể chứng minh đƣợc thuật toán sẽ luôn tìm ra đƣợc Phƣơng án tối ƣu đối với các BTQHPT có hàm mục tiêu dạng
f(x) = Hx + x, với p là véc tơ cột n toạ độ, H là ma trận đối xứng cấp n×n. Ngoài ra, nếu BTQHPT không có
hàm mục tiêu dạng trên thì thuật toán vẫn hội tụ tới điểm có nếu tập là tập
giới nội trong đó là điểm xuất phát của thuật toán. Dễ thấy, nếu hàm f(x) là hàm lồi thì thuật toán sẽ cho phƣơng
án tối ƣu toàn cục.
Thuật toán huớng liên hợp Zangwill
Buớc khởi tạo
Chọn e > 0 làm sai số kết thúc. Lấy một điểm xuất phát , đặt , = – f( ),
đặt k=j =1 và chuyển sang các buớc lặp.
Các buớc lặp
Buớc 1:
Tìm là phƣơng án tối ƣu của bài toán cực tiểu hóa hàm một biến (phụ thuộc vào biến ).
Ðặt . Nếu j = n thì chuyển về buớc 4, nếu trái lại chuyển về buớc 2.
Buớc 2:
Ðặt d = –– f( ) và ̂ là phƣơng án tối ƣu của bài toán cực tiểu hóa hàm một
biến (phụ thuộc vào biến 0).
Ðặt , i = 1 và chuyển về buớc 3.
Buớc 3:
Nếu | ( )| thì dừng với .
Nếu trái lại, đặt là phƣơng án tối ƣu của bàitoán cực tiểu hóa hàm một biến ) (phụ thuộc vào biến
0). Ðặt .
+ Nếu i <j thì thay i bởi i + 1 và lặp lại buớc 3.
+ Nếu trái lại, đặt , thay j bởi j + 1 và chuyển về buớc 1.
Buớc 4:
Ðặt . Ðặt = – f( ), thay k bởi k+1, đặt j = 1 và chuyển về buớc 1.
( ) ∑
Chúng ta gọi các điểm là điểm dừng của hàm Lagrànge nếu điểm
thỏa mãn hệ điều kiện sau đây:
∑
{
{
Ðịnh lý
Cho x là phƣơng án tối ƣu của BTQHPT với hàm mục tiêu f(x) và các hàm ràng buộc , là các hàm
khả vi. Xét tập các chỉ số I đƣợc xác định bởi I = {i: = 0}. Giả sử các véc tơ là độc lập tuyến
tính. Lúc đó, tồn tại véc tơ m toạ độ sao cho ( , ) là điểm dừng của hàm Lagrànge.
Ví dụ: Tìm các nghiệm số x1 , x2 sao cho :
Điều kiện đạt cực trị của hàm mục tiêu L(P):
Giải hệ 3 phƣơng trình trên đƣợc :
và và
nên hàm L(X) và hàm mục tiêu F(X) đạt cực tiểu tại điểm X*(18/11, 6/11); và khi đó giá trị hàm mục tiêu là:
∑ ∑
{ {
Hệ điều kiện trên đây đƣợc gọi là điều kiện Kuhn – Tucker của BTQHPT (5.2).
Ví dụ
Thiết lập điều kiện Kuhn – Tucker cho BTQHPT sau:
với điều kiện x = ( , ) là miền ràng buộc đƣợc xác định bởi
{
{
Có thể kiểm nghiệm đƣợc rằng trong ví dụ này chúng ta có BTQHL với hàm Lagrànge:
với
Điều kiện Kuhn-Tucker
{
Giải các phƣơng trình (1)-(6) ta có:
Ví dụ
Nhƣ vậy
[ ], [ ], [ ]
4.2. Phát biểu điều kiện kuhn – tucker cho bài toán quy hoạch toàn phƣơng
∑ ∑∑
{
Thiết lập hàm Lagrànge: ∑ (∑ ) ∑ (để phân biệt chúng ta ký hiệu
. Điều kiện Kuhn-Tucker đƣợc viết là
∑ ∑
∑ ∑
{ {
Trong đó ∑ gọi là biến bù ứng với ràng buộc thứ i,
4.2.1. Giải bài toán quy hoạch toàn phƣơng bằng bài toán bù
BTQHPT sau:
∑ ∑
{
∑ ∑
{
Vậy chúng ta có thể thiết lập bài toán bù tƣơng ứng với hệ điều kiện trên nhƣ sau:
Trong đó
[ ]
Chúng ta sẽ đƣa hệ
{ (*) về hệ { (**)
Trong hệ trên véc tơ (cột) đƣợc gọi là véc tơ giả. Ðể giải hệ (*), cần xét truớc tiên
hệ (**). áp dụng các thủ tục xoay trong các bảng đơn hình với các quy tắc đặc biệt nhằm đƣa ra khỏi cơ sở, trong
khi vẫn đảm bảo đƣợc điều kiện không âm của các biến , chúng ta sẽ tìm đƣợc
nghiệm của hệ (*).
4.2.2. Giải bài toán quy hoạch toàn phƣơng bằng bài đơn hình 2 pha
BTQHPT sau:
{
Nguyên tắc: Trong (1) và (2) nếu phƣơng trình nào chƣa có biến cơ sở, ta thêm biến phụ và giải pha I của bài
toán đơn hình
∑
Thỏa mãn
∑ ∑
Giải:
Hàm Largrange đƣợc viết
{
Hoặc
{
Giải bài toán theo phƣơng pháp đơn hình 2 pha bằng cách thêm biến phụ và giải bài toán phụ
Sao cho
{
Biến cơ phƣơng x1 x2 1 2 s1 s2 s3 s4 y1
c sở án 0 0 0 0 0 0 0 0 1
0 s1 3 -2 -2 -1 -2 1 0 0 0 0
1 y1 1 2 2 1 -1 0 -1 0 0 1
0 s3 2 1 1 0 0 0 0 1 0 0
0 s4 1 2 -1 0 0 0 0 0 1 0
Z 2 2 1 -1 0 -1 0 0 1
ci-Z -2 -2 -1 1 0 1 0 0 0
Vòng 2
0 s1 4 0 0 0 -3 1 -1 0 0 1
0 x2 0.5 1 1 0.5 -0.5 0 -0.5 0 0 0.5
0 s3 1.5 0 0 -0.5 0.5 0 0.5 1 0 -0.5
0 s4 1.5 3 0 0.5 -0.5 0 -0.5 0 1 0.5
Z 0 0 0 0 0 0 0 0 0
C-Z 0 0 0 0 0 0 0 0 1
x1=0;x2=0.5; 1=0; 2=0;s1=4;s2=0;s3=1.5;s4=1.5 =>f=-1/4
Ghi chú: Khi chọn biến vào ra sao cho luôn đảm bảo
4.3 Giải bài toán quy hoạch toàn phƣơng theo phƣơng pháp Beatle
BTQHTP sau:
{
5. Ví dụ về ứng dụng quy hoạch phi tuyến để tìm công suất phát tối ƣu của các nhà máy điện (bài toán cho
sẵn)
Cho mạng điện có 2 nhà máy cung cấp cho 3 phụ tải nhƣ hình 1.3.
Hình 1
- Các tín hiệu đầu vào được chia thành ba nhóm:
1) Các biến kiểm tra được và điều khiển được, mà người nghiên cứu có thể điều chỉnh theo dự
định, biểu diễn bằng vectơ:
Z = [Z1, Z2, ..., Zk]
2) Các biến kiểm tra được nhưng không điều khiển được, biểu diễn bằng vectơ:
T = [T1, T2, ..., Th]
3) Các biến không kiểm tra được và không điều khiển được, biểu diễn bằng vectơ:
E = [E1, E2, ..., Ef]
- Các tín hiệu đầu ra dùng để đánh giá đối tượng là vectơ Y = (y1, y2,..., yq). Chúng thường được
gọi là các hàm mục tiêu. Biểu diễn hình học của hàm mục tiêu được gọi là mặt đáp ứng (bề mặt
biếu diễn).
* Các phương pháp qui hoạc thực nghiệm :
- Thực nghiệm sàng lọc: là thực nghiệm mà nhiệm vụ của nó là tách những yếu tố ảnh hưởng
đáng kể ra khỏi những yếu tố đầu vào để tiếp tục nghiên cứu chúng trong các thực nghiệm cần
thiết.
- Thực nghiệm mô phỏng: là thực nghiệm liên quan tới việc mô phỏng hiện tượng cần nghiên
cứu.
- Thực nghiệm cực trị : là thực nghiệm được phát triển từ thực nghiệm mô phỏng. Nhiệm vụ của
nó là xây dựng mô hình toán thực nghiệm, theo đó xác định giá trị tối ưu của hàm mục tiêu và các
biến của hàm.
* Kế hoạch thực nghiệm :
Đối với các thực nghiệm tích cực, miền tác động là miền các giá trị có thể có của các yếu tố Z trong
thực nghiệm. Trong miền tác động có miền qui hoạch
- Miền giá trị của các yếu tố vào Z - trong đó chứa vừa đủ các điểm thí nghiệm của thực nghiệm. Nói
cách khác, đó là miền tạo bởi phạm vị thay đổi các yếu tố Z theo kế hoạch thực nghiệm xác định. Kế
hoạch thực nghiệm bao gồm các điểm thí nghiệm gọi là điểm của kế hoạch. Đó là một bộ (còn gọi là
phƣơng án) kết hợp các giá trị cụ thể của các yếu tố vào Z, ứng với điều kiện tiến hành một thí
nghiệm trong tập hợp các thí nghiệm của thực nghiệm. Tại điểm thứ i của kế hoạch, bộ kết hợp các
giá trị Zji bao gồm giá trị cụ thể của k yếu tố đầu vào :
Zji = [Z1i, Z2i, ..., Zkj]
Trong đó: i = 1, 2, ..., N là điểm thí nghiệm thứ i của kế hoạch thứ N là số điểm thí nghiệm
của kế hoạch.
j = 1, 2, ..., k là yếu tố thứ j ; k là số yếu tố đầu vào.
1.2. Các nguyên tắc cơ bản của qui hoạch thực nghiệm
Nguyên tắc không lấy toàn bộ trạng thái đầu vào
Để có thông tin toàn diện về tính chất hàm mục tiêu về nguyên tắc cần tiến hành vô số các thực
nghiệm trong miền qui hoạch.
+1
* M(x1, x2)
-1
Ví dụ, trong trƣờng hợp có hai yếu tố, nếu cho mỗi yếu tố biến đổi liên tục từ -1 đến +1 thì miền
thực nghiệm sẽ là hình vuông chứa vô số điểm M(x1, x2) đặc trƣng cho trạng thái đầu vào.
Về lý thuyết nếu không tiến hành tất cả các thực nghiệm đó thì có thể bỏ sót đặc điểm nào đó của
hàm mục tiêu, tuy nhiên thực tế không thể thực hiện đƣợc điều đó. Do vậy ngƣời nghiên cứu chỉ có
thể lấy những giá trị rời rạc, chọn mức biến đổi nào đó cho các yếu tố. Sự lựa chọn này cần có cơ sở
khoa học, nó gắn liền với sự lựa chọn dạng hàm. Dạng hàm thông thƣờng là bậc một hoặc bậc 2 và
số mức biến đổi thƣờng là hai hoặc ba.
Nguyên tắc phức tạp dần mô hình toán học
Khi chƣa có thông tin ban đầu về các tính chất của hàm mục tiêu, thì không nên xây dựng mô hình
phức tạp của đối tƣợng để tránh chi phí vô ích về thời gian, phƣơng tiện vật chất nếu không dùng
đến mô hình đó. Nên bắt đầu từ những mô hình đơn giản nhất, ứng với những thông tin ban đầu đã
có về đối tƣợng.
Logic tiến hành thực nghiệm là nên làm ít thí nghiệm để có mô hình đơn giản (ví dụ mô hình tuyến
tính), kiểm tra tính tƣơng hợp của mô hình:
- Nếu mô hình tương hợp, đạt yêu cầu thì dừng lại, hoặc cải tiến;
- Nếu mô hình không thì tiến hành giai đoạn tiếp theo của thực nghiệm : làm những thí nghiệm
mới, bổ sung để rồi nhận đƣợc mô hình phức tạp hơn (ví dụ mô hình phi tuyến), kiểm tra mô hình
mới cho đến khi đạt đƣợc mô hình hữu dụng.
Nguyên tắc đối chứng với nhiễu
Độ chính xác của mô hình phải tƣơng xứng với cƣờng độ nhiễu ngẫu nhiên mà chúng tác động lên
kết quả đo hàm mục tiêu. Trong cùng điều kiện nhƣ nhau, độ nhiễu càng nhỏ thì mô hình càng phải
chính xác, phải phức tạp hơn.
Trong đó: B = [b0, b1, b2 ..., bk, b11, b12, ..., bjj] là các hệ số hồi qui.
1.4. Phƣơng pháp xác định các hệ số trong mô hình thực nghiệm
Phƣơng pháp bình phƣơng nhỏ nhất (BPNN)
Là phƣơng án cơ bản có hiệu lực khi xử lí các số liệu thực nghiệm và xây dựng mô hình thống kê
cho nhiều đối tƣợng nghiên cứu thuộc các lĩnh vực khác nhau.
Phƣơng pháp này cho phép xác định các hệ số của phƣơng trình hồi qui đã chọn sao cho độ lệch của
sự phụ thuộc đã cho so với số liệu thực nghiệm
là nhỏ nhất.
∑ ̃
Trong đó : Yu là giá trị thực nghiệm ứng với k thông số tối ƣu ở thí nghiệm thứ u.
̃ là giá trị theo phƣơng trình hồi qui số tối ƣu ở thí nghiệm thứ u.
1.5. Một số mô hồi quy
1.5.1 Hồi quy tuyến tính một biến
1.5.1.1 Mô hình bậc nhất
Phƣơng trình hồi quy tuyến tính một biến số có dạng: ̃
Các hệ số của phương trình hồi quy được xác định bằng phương pháp bình phương nhỏ nhất (BPNN),.
∑ ̃ ∑
∑
{
∑ ∑
∑ ∑ ∑
{
Ví dụ
Cho phụ tải A có công suất cực đại được thống kê theo năm như sau
Giải
Mô hình dự báo ̂
Ta có
Hay : ∑
∑
{
Đơn giản hoá
∑ ∑ ∑
∑ ∑
{
Năm
2010 1 15 1 15
2011 2 15.5 4 31
2013 4 17 16 68
Ta có hệ phương trình
Kết quả
Mô hình dự báo ̂
̂ MW
51
1.5.1.2Mô hình bậc 2 (Hồi quy parabol)
Phƣơng trình hồi quy parabol - bậc hai một biến có dạng:
̃
Các hệ số của phƣơng trình hồi quy cũng đƣợc xác định bằng phƣơng pháp bình phƣơng
nhỏ nhất (BPNN), với số thí nghiệm là N.
∑ ̃
Tƣơng tự, ta có
Các hệ số a0, a1, b1 đƣợc xác định theo phƣơng pháp BPNN. Từ a0 và a1 có thể tính đƣợc
b0 và b1.
1.5.2 Mô hình đa biến (Hồi quy nhiều biến)
52
Nếu cần nghiên cứu liên kết tƣơng quan giữa nhiều đại lƣợng ngƣời ta dùng phƣơng
trình hồi quy nhiều biến:
̃ ∑ ∑ ∑
Phƣơng pháp này cho phép xác định các hệ số của phƣơng trình hồi qui đã chọn sao cho
độ lệch của sự phụ thuộc đã cho so với số liệu thực nghiệm là nhỏ nhất.
∑ ̃
Trong đó
Yu là giá trị thực nghiệm ứng với k thông số tối ƣu ở thí nghiệm thứ u.
̃ là giá trị theo phƣơng trình hồi qui số tối ƣu ở thí nghiệm thứ u
Vậy ta lập hàm sai số giữa hàm hồi quy và giá trị đo đƣợc
∑
{
53
Nhƣ vậy giải hệ pƣơng trình sau sẽ đƣợc các hệ số hồi quy
∑ ∑ ∑ ∑ ∑
∑ ∑ ∑ ∑ ∑
∑ ∑ ∑ ∑ ∑
∑ ∑ ∑ ∑ ∑
{
54
CHƯƠNG 6. QUY HOẠCH ĐỘNG
Để dễ hiểu phƣơng pháp QHĐ ta xét một bài toán thực tế về phân phối tài nguyên nhƣ sau:
Có một loại tài nguyên (ví dụ như nhân công, tiền, máy, nguyên liệu, vật tư,…) có trữ lượng là b. Cần
phải phân phối lượng tài nguyên này cho n đơn vị sản xuất thứ j (hoặc cho n công việc) với j = 1 ÷ n.
Biết rằng nếu phân phối cho đơn vị sản xuất thứ j một lượng tài nguyên xj thì ta thu được một hiệu quả
(tiền lời) là Cj(xj).
Hãy tìm cách phân phối lượng tài nguyên b cho n đơn vị sản xuất sao cho tổng hiệu quả của n đơn vị
sản xuất là lớn nhất (tối ưu).
Bài toán đƣợc mô tả dƣới dạng toán học nhƣ sau:
Cần tìm các nghiệm số x1, x2,…,xj,…, xn sao cho cực đại hàm mục tiêu:
∑ (2. 1)
∑
(2. 2)
với mọi j = 1 ÷ n.
Đây là một bài toán tối ƣu hóa, đƣợc đặt tên là bài toán (P). Hiệu quả tối ƣu của bài toán P này (tiền
lời max) đƣợc ký hiệu là fn(b), là tiền lời thu đƣợc lớn nhất khi phân phối b tài nguyên cho n đơn vị
sản xuất.
Sau đây ta sẽ giải bài toán này bằng phƣơng pháp QHĐ.
2.2 Phƣơng trình truy toán QHĐ
Để giải bài toán P ở trên ta lồng bài toán P vào một họ các bài toán (quá trình) sau:
Cần tìm các nghiệm số x1, x2,…,xj,…, xk sao cho cực đại hàm mục tiêu:
∑ ( ) (2. 3)
55
và thỏa mãn các ràng buộc:
∑
(2. 4)
Đây chính là phƣơng trình truy toán của QHĐ (hay còn gọi là phƣơng trình phiếm hàm Bellman).
Vì nếu biết f1() = C1() với các giá trị thay đổi (từ 1 đến b), thay giá trị của f1() vào (2. 6) ta sẽ
tìm đƣợc các giá trị f2() ( = 1 ÷ b) nhƣ sau:
(2. 7)
Biết f2() ta sẽ tìm đƣợc f3(). Cứ tiếp tục tính nhƣ thế đến lúc ta sẽ tìm đƣợc fk(). Cho k và thay
đổi, cuối cùng ta sẽ tìm đƣợc fn(b) ứng với trƣờng hợp k = n và = b.
2.3 Bài toán thực tế
Ví dụ 1: Một công ty có 6 máy công cụ cần phân bố cho đơn vị sản xuất của mình. Biết rằng nếu
phân phối xj máy cho đơn vị thứ j thì sẽ mang lại hiệu quả là Cj(xj) cho trong Bảng 2. 1. Hãy tìm
phương án phân phối tối ưu 6 máy sao cho công ty có hiệu quả lớn nhất.
Bảng 2. 1. Hiệu quả của các đơn vị sản xuất
Số máy đƣợc Tiền lãi (hiệu quả) ĐVT: triệu đồng
phân phối xj C1(x1) C2(x2) C3(x3)
0 0 0 0
1 4 2 3
2 6 4 4
3 7 6 4
4 8 7 4
5 8 8 4
6 8 9 4
56
∑ ( ) (2. 8)
Và thỏa mãn các ràng buộc:
∑
(2. 9)
với mọi j = 1 ÷ 3.
Gọi fk() là hiệu quả tối ƣu (tiền lãi lớn nhất) khi phân phối máy cho k đơn vị sản xuất. Theo (2. 6)
phƣơng trình truy toán QHĐ sẽ là:
(2. 10)
Lần lƣợt cho k thay đổi từ 1 đến 3 và thay đổi từ 0 đến 6, theo phƣơng pháp QHĐ bài toán sẽ đƣợc
tính toán gồm các bƣớc nhƣ sau:
1. Cho k =1: nghĩa là ta giả thiết công ty chỉ có 1 đơn vị sản xuất, là đơn vị số 1 chẳng hạn.
Khi đó f1() = C1(); cho thay đổi từ 0 đến 6 ta tính đƣợc các hiệu quả tối ƣu f1() nhƣ sau:
f1(0) = C1(0) = 0 (triệu đồng)
f1(1) = C1(1) = 4 (triệu đồng)
f1(2) = C1(2) = 6 (triệu đồng)
f1(3) = C1(3) = 7 (triệu đồng)
f1(4) = C1(4) = 8 (triệu đồng)
f1(5) = C1(5) = 8 (triệu đồng)
f1(6) = C1(6) = 8 (triệu đồng)
Các giá trị này sẽ đƣợc dùng trong bƣớc tính tiếp theo với k = 2.
2. Cho k =2: nghĩa là ta giả thiết công ty có 2 đơn vị sản xuất, là đơn vị số 1 và thêm đơn vị
sản xuất số 2 chẳng hạn.
Theo (2. 10) phƣơng trình QHĐ sẽ là :
(2. 11)
Cho thay đổi từ 0 đến 6, ta tính đƣợc các hiệu quả tối ƣu f2() nhƣ sau:
- Khi = 0: f2(0) = 0;
- Khi = 1:
với 0 ≤ x2 ≤ 1
=
= (triệu đồng)
- Khi = 2:
với 0 ≤ x2 ≤ 2
=
= (triệu đồng)
- Khi = 3:
với 0 ≤ x2 ≤ 3
=
= (triệu đồng)
- Khi = 4:
với 0 ≤ x2 ≤ 4
= { }
= (triệu đồng)
- Khi = 5:
với 0 ≤ x2 ≤ 5
57
= { }
= (triệu đồng)
- Khi = 6:
với 0 ≤ x2 ≤ 6
= { }
=
(triệu đồng)
Tổng kết cuối bƣớc này ta đã tính và chỉ cần lƣu lại các thông tin sau:
f2(1) = 4 triệu x2 = 0
f2(2) = 6 triệu x2 = 0
f2(3) = 8 triệu x2 = 1 hoặc x2 = 2
f2(4) = 10 triệu x2 = 2 hoặc x2 = 3
f2(5) = 12 triệu x2 = 3
f2(6) = 13 triệu x2 = 3 hoặc x2 = 4
Đây là các phƣơng án tối ƣu khi phân phối máy cho hai đơn vị sản xuất số 1 và số 2. Ta nhận thấy
phƣơng án tối ƣu có thể có nhiều nhƣng giá trị tối ƣu của hàm mục tiêu là duy nhất. Ví dụ nhƣ các
trƣờng hợp = 3, 4, 6.
3. Cho k = 3:
Đây là bƣớc tính khi xét công ty có đủ 3 đơn vị sản xuất nhƣ bài toán yêu cầu. Ở bƣớc này ta có thể
tìm ngay hiệu quả tối ƣu f3(6) khi cho = 6 mà không cần cho thay đổi nữa, vì ta không cần tính tất
cả các giá trị f3(6) để tính f4(6).
Phƣơng trình QHĐ khi k = 3 sẽ là:
với 0 ≤ x3 ≤ 6
= { }
=
triệu đồng
Nhƣ vậy, hiệu quả tối ƣu là f3(6) = 15 triệu đồng.
Truy ngƣợc về cách tính f3(6), ta thấy hiệu quả tối ƣu này chính là:
Chú ý rằng nguyên lý này được thừa nhận mà không chứng minh.
Trong thực tế, ta thƣờng gặp một số bài toán tối ƣu loại sau: Có một đại lƣợng f hình thành trong một
quá trình gồm nhiều giai đoạn và ta chỉ quan tâm đến kết quả cuối cùng là giá trị của f phải lớn nhất
hoặc nhỏ nhất, ta gọi chung là giá trị tối ƣu của f. Giá trị của f phụ thuộc vào những đại lƣợng xuất
hiện trong bài toán mà mỗi bộ giá trị của chúng đƣợc gọi là một trạng thái của hệ thống và phụ thuộc
vào cách thức đạt đƣợc giá trị f trong từng giai đoạn mà mỗi cách tổ chức đƣợc gọi là một điều khiển.
Đại lƣợng f thƣờng đƣợc gọi là hàm mục tiêu và quá trình đạt đƣợc giá trị tối ƣu của f đƣợc gọi là quá
trình điều khiển tối ưu.
Nguyên lý tối ƣu Bellman (cũng gọi là nguyên lý Bellman) có thể điễn giải theo một cách khác nhƣ
sau: “Với mỗi quá trình điều khiển tối ƣu, đối với trạng thái bắt đầu A0, với trạng thái A trong quá trình
đó, phần quá trình kể từ trạng thái A xem nhƣ trạng thái bắt đầu cũng là tối ƣu”.
Phƣơng pháp tìm điều khiển tối ƣu theo nguyên lý Bellman thƣờng đƣợc gọi là quy hoạch động. Thuật
ngữ này nói lên thực chất của quá trình điều khiển là động: Có thể trong một số bƣớc đầu tiên lựa chọn
điều khiển tối ƣu dƣờng nhƣ không tốt nhƣng tựu chung cả quá trình lại là tốt nhất.
Ta có thể giải thích ý này qua bài toán sau: Cho một dãy N số nguyên A1, A2,…,AN. Hãy tìm cách xoá
đi một số ít nhất số hạng để dãy còn lại là đơn điệu hay nói cách khác hãy chọn một số nhiều nhất các
số hạng sao cho dãy B gồm các số hạng đó theo trình tự xuất hiện trong dãy A là đơn điệu.
Quá trình chọn B đƣợc điều khiển qua N giai đoạn để đạt đƣợc mục tiêu là số lƣợng số hạng của
dãy B là nhiều nhất, điều khiển ở giai đoạn i thể hiện việc chọn hay không chọn Ai vào dãy B.
Giả sử dãy đã cho là 1 8 10 2 4 6 7. Nếu ta chọn lần lƣợt 1, 8, 10 thì chỉ chọn đƣợc 3 số hạng nhƣng
nếu bỏ qua 8 và 10 thì ta chọn đƣợc 5 số hạng 1, 2, 4, 6, 7.
Khi giải một bài toán bằng cách “chia để trị” chuyển việc giải bài toán kích thƣớc lớn về việc giải
nhiều bài toán cùng kiểu có kích thƣớc nhỏ hơn thì thuật toán này thƣờng đƣợc thể hiện bằng các
chƣơng trình con đệ quy. Khi đó, trên thực tế, nhiều kết quả trung gian phải tính nhiều lần.
Vậy ý tƣởng cơ bản của quy hoạch động thật đơn giản: Tránh tính toán lại mọi thứ hai lần, mà lƣu giữ
kết quả đã tìm kiếm đƣợc vào một bảng làm giả thiết cho việc tìm kiếm những kết quả của trƣờng hợp
59
sau. Chúng ta sẽ làm đầy dần giá trị của bảng này bởi các kết quả của những trƣờng hợp trƣớc đã đƣợc
giải. Kết quả cuối cùng chính là kết quả của bài toán cần giải. Nói cách khác phƣơng pháp quy hoạch
động đã thể hiện sức mạnh của nguyên lý chia để trị đến cao độ.
Quy hoạch động là kỹ thuật thiết kế bottom-up (từ dƣới lên). Nó đƣợc bắt đầu với những trƣờng hợp
con nhỏ nhất (thƣờng là đơn giải nhất và giải đƣợc ngay). Bằng cách tổ hợp các kết quả đã có (không
phải tính lại) của các trƣờng hợp con, sẽ đạt đạt tới kết quả của trƣờng hợp có kích thƣớc lớn dần lên
và tổng quát hơn, cho đến khi cuối cùng đạt tới lời giải của trƣờng hợp tổng quát nhất.
Trong một số trƣờng hợp, khi giải một bài toán A, trƣớc hết ta tìm họ bài toán A(p) phụ thuộc tham số
p (có thể p là một véc tơ) mà A(p0)=A với p0 là trạng thái ban đầu của bài toán A. Sau đó tìm cách giải
họ bài toán A(p) với tham số p bằng cách áp dụng nguyên lý tối ƣu của Bellman. Cuối cùng cho
p=p0 sẽ nhận đƣợc kết quả của bài toán A ban đầu.
3.2 Các bƣớc thực hiện quy hoạch động
Bước 1: Lập hệ thức
Dựa vào nguyên lý tối ƣu tìm cách chia quá trình giải bài toán thành từng giai đoạn, sau đó tìm hệ thức
biểu điễn tƣơng quan quyết định của bƣớc đang xử lý với các bƣớc đã xử lý trƣớc đó. Hoặc tìm cách
phân rã bài toán thành các “bài toán con” tƣơng tự có kích thƣớc nhỏ hơn, tìm hệ thức nêu quan hệ
giữa kết quả bài toán kích thƣớc đã cho với kết quả của các “bài toán con” cùng kiểu có kích thƣớc
nhỏ hơn của nó nhằm xây dựng phƣơng trình truy toán (dạng hàm hoặc thủ tục đệ quy).
Về một cách xây dựng phương trình truy toán:
Ta chia việc giải bài toán thành n giai đoạn. Mỗi giai đoạn i có trạng thái ban đầu là t(i) và chịu tác
động điều khiển d(i) sẽ biến thành trạng thái tiếp theo t(i+1) của giai đoạn i+1 (i=1,2,…,n-1). Theo
nguyên lý tối ƣu của Bellman thì việc tối ƣu giai đoạn cuối cùng không làm ảnh hƣởng đến kết quả
toàn bài toán. Với trạng thái ban đầu là t(n) sau khi làm giai đoạn n tốt nhất ta có trạng thái ban đầu
của giai đoạn n-1 là t(n-1) và tác động điều khiển của giai đoạn n-1 là d(n-1), có thể tiếp tục xét đến
giai đoạn n-1. Sau khi tối ƣu giai đoạn n-1 ta lại có t(n-2) và d(n-2) và lại có thể tối ƣu giai đoạn n-2
… cho đến khi các giai đoạn từ n giảm đến 1 đƣợc tối ƣu thì coi nhƣ hoàn thành bài toán. Gọi giá trị
tối ƣu của bài toán tính đến giai đoạn k là Fk giá trị tối ƣu của bài toán tính riêng ở giai đoạn k
là Gk thì
Fk = Fk-1 + Gk
Hay là:
Bước 2: Tổ chức dữ liệu và chƣơng trình
Tổ chức dữ liệu sao cho đạt các yêu cầu sau:
Dữ liệu đƣợc tính toán dần theo các bƣớc.
Dữ liệu đƣợc lƣu trữ để giảm lƣợng tính toán lặp lại.
Kích thƣớc miền nhớ dành cho lƣu trữ dữ liệu càng nhỏ càng tốt, kiểu dữ liệu đƣợc chọn phù hợp,
nên chọn đơn giản dễ truy cập.
Cụ thể
Các giá trị của Fk thƣờng đƣợc lƣu trữ trong một bảng (mảng một chiều hoặc hai, ba, v.v… chiều).
Cần lƣu ý khởi trị các giá trị ban đầu của bảng cho thích hợp, đó là các kết quả của các bài toán
con có kích cỡ nhỏ nhất của bài toán đang giải:
Dựa vào công thức, phƣơng trình truy toán (*) và các giá trị đã có trong bảng để tìm dần các giá trị
còn lại của bảng.
Ngoài ra còn cần mảng lƣu trữ nghiệm tƣơng ứng với các giá trị tối ƣu trong từng gian đoạn.
Dựa vào bảng lƣu trữ nghiệm và bảng giá trị tối ƣu trong từng giai đoạn đã xây dựng, tìm ra kết
quả bài toán.
Bước 3: Làm tốt
Làm tốt thuật toán bằng cách thu gọn hệ thức (*) và giảm kích thƣớc miền nhớ. Thƣờng tìm cách dùng
mảng một chiều thay cho mảng hai chiều nếu giá trị một dòng (hoặc cột) của mảng hai chiều chỉ phụ
thuộc một dòng (hoặc cột) kề trƣớc.
60
Trong một số trƣờng hợp có thể thay mảng hai chiều với các giá trị phần tử chỉ nhận giá trị 0, 1 bởi
mảng hai chiều mới bằng cách dùng kỹ thuật quản lý bit.
3.3 Các thao tác tổng quát của phương pháp QHĐ
1. Xây dựng hàm QHĐ
2. Lập bảng lưu lại giá trị của hàm
3. Tính các giá trị ban đầu của bảng
4. Tính các giá trị còn lại theo kích thước tăng dần của bảng cho đến khi đạt được giá trị tối ưu cần
tìm
5. Dùng bảng lưu để truy xuất lời giải tối ưu.
Hạn chế của phƣơng pháp QHĐ
Việc tìm công thức, phƣơng trình truy toán hoặc tìm cách phân rã bài toán nhiều khi đòi hỏi sự phân
tích tổng hợp rất công phu, dễ sai sót, khó nhận ra nhƣ thế nào là thích hợp, đòi hỏi nhiều thời gian suy
nghĩ. Đồng thời không phải lúc nào kết hợp lời giải của các bài toán con cũng cho kết quả của bài toán
lớn hơn.
Khi bảng lƣu trữ đòi hỏi mảng hai, ba chiều … thì khó có thể xử lý dữ liệu với kích cỡ mỗi chiều lớn
hàng trăm.
Có những bài toán không thể giải đƣợc bằng quy hoạch động.
Bài toán đƣờng đi ngắn nhất
Ví dụ
Mỗi ngày công ty xây dựng Kiến An cần phải vận chuyển vữa bê tông tƣơi từ nhà máy sản xuất vữa bê
tông thƣơng phẩm Cửu Long đến công trƣờng xây dựng nhà thi đấu Hoàn Hảo. Hãy tìm đƣờng đi
ngắn nhất từ nhà máy sản xuất vữa bê tông Cửu Long (nút 1) đến công trƣờng (nút 7) . S ơ đồ mạng
lƣới đƣờng với chiều dài các nhánh đƣờng nhƣ trong hình
Gọi
• f(n,s): khoảng cách ngắn nhất hay chi phí vận chuyển thấp nhất khi di chuyển từ nút s đến nút cuối
cùng ở giai đoạn
• c(s,j): khoảng cách hay chi phí vận chuyển từ nút s đến nút j
• d(n s): các quy d(n,s): các quyết định ở giai đoạn n (các nút s ẽ đi qua tƣ nút xuất phát s)
• s: tr ạng thái, tƣơng ứng với nút xuất phát trong giai trong giai đoạn n
f(n,s) = min [C(s,j) + f(n-1,j)]
xét tất cả các nhánh đƣờng xuất phát từ nút s
61
Lời giải bài toán tìm i bài toán tìm đƣờng đi ngắn nhất – giai đoạn 1
Lời giải bài toán tìm i bài toán tìm đƣờng đi ngắn nhất – giai đoạn 2
62
0 0 0
1 2 1
2 4 2
3 6 3
4 8 4
5 10 5
6 12 6
7 14 7
Giai đoạn 2: quyết định chở bao nhiêu cấu kiện 2 tấn
Trạng thái Quyết định (số lƣợng cấu kiện) g(j,w) x(j)
0 1 2 3
0 0 0 0
1 0+2 2 0
2 0+4 5 5 1
3 0+6 5+2 7 1
4 0+8 5+4 10 10 2
5 0+10 5+6 10+2 12 2
6 0+12 5+8 10+4 15 17 3
7 0+14 5+10 10+6 15+2 17 3
Giai đoạn 3: quyết định chở bao nhiêu cấu kiện 3 tấn
Trạng thái Quyết định (số lƣợng cấu kiện) g(j,w) x(j)
0 1 2
7 0+17 8+10 16+2 18 1 hay 2
Vậy nên chở 1 cấu kiện 3 tấn và 2 cấu kiệ 2 tấn hay chở 2 cấu kiện 3 tấn và 1 cấu kiện 1 tấn để đƣợc
nhiều lời nhất
Bài toán kế hoạch sản xuất và tồn trữ
Ví d ụ 8.3 Công ty xây dựng AMC có nhu cầu sử dụng mỗi tháng một bộ máy lạnh trung tâm trong
vòng 3 tháng tới. Mỗi đầu tháng cửa hàng điện lạnh Đilaco đều đến công ty AMC để chào hàng. Công
ty AMC có thể đặt mua số lƣợng máy lạnh theo yêu cầu của tháng đó. Do chi phí vận chuyển, Đilaco
đề nghị sẽ giảm giá bán tùy theo số lƣợng máy đặt mua. Nhƣng nếu số máy đặt mua lớn hơn yêu cầu
sử dụng trong tháng đó thì lại tốn kém chi phí bảo quản số máy dƣ chƣa dùng đến. Biết rằng giá mua
một bộ máy là là 7.200$, từ ba bộ trở lên thì chỉ phải trả thêm 7.000$ cho mỗi bộ mua thêm (vì chi phí
cho một lần chuyên chở xem nhƣ là 200$), chi phí tồn trữ một bộ máy trong vòng một tháng là 150$.
Vậy công ty nên đặt mua máy nhƣ thế nào để giảm tối đa chi phí.
• P(n): số lƣợng hàng đƣợc mua hay sản xuất trong thời đoạn n
• D(n): Nhu cầu tiêu thụ hàng trong thời đoạn n
• I(n-1): lƣợng hàng tồn trữ vào đầu thời đoạn (n-1) khi lƣợng hàng tồn trữ đầu thời đoạn n là I(n),
I(n-1) = I(n) + P(n) – D (n)
• S(n): chi phí chuẩn bị cho một đợt sản xuất/chi phí đặt hàng cho một lần nhập hàng
• V(P(n),I(n)): chi phí sản xuất/mua sắm và tồn trữ hàng chi phí này là hàm s, chi phí này là hàm số
của lƣợng hàng hoá tồn trữ và sản xuất/mua sắm trong thời đoạn n
• C(n,P(n),I(n)): chi phí tổng cộng của thời đoạn n
= S(n) + V(P(n) I(n)) nếu P(n)>0
= V(P(n),I(n)) nếu P(n)=0
• f ( n,i): tổng chi phí mua sắm/sản xuất và tồn trữ từ thời đoạn 1 đến thời đoạn thứ n với mức tồn trữ
đầu thời đoạn n là i
63
f(n,i)=min{C(n,P(n),i+P(n) -D(n))+f(n - 1, i+P(n) - D(n))}
• Bài toán chia làm ba thời đoạn (mỗi thời đoạn tƣơng ứng 1 bài toán nhỏ ):
- Thời đoạn 1(n =1) = tháng thứ 3
- Thời đoạn 2(n=2) =tháng thứ 2
- Thời đoạn 3(n 3) = tháng thứ 1
Lời giải cho bài toán là lời giải bài toán ở thời đoạn 3 (tháng thứ 1)
64