Tải bản đầy đủ (.pdf) (59 trang)

Một phương pháp xấp xỉ ngoài giải bài toán quy hoạch nguyên tuyến tính theo phương pháp nhánh cận và ứng dụng

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.12 MB, 59 trang )

i
...

ĐẠI HỌC THÁI NGUYÊN
TRƢỜNG ĐẠI HỌC KHOA HỌC

---------------------------------------

ĐÀO MINH BẰNG

MỘT PHƢƠNG PHÁP XẤP XỈ NGỒI GIẢI BÀI
TỐN QUY HOẠCH NGUN TUYẾN TÍNH THEO
PHƢƠNG PHÁP NHÁNH CẬN VÀ ỨNG DỤNG

Chuyên ngành: Tốn ứng dụng

Thái Ngun - 2015

Số hóa bởi Trung tâm Học liệu – ĐHTN




ii

MỤC LỤC
MỤC LỤC .......................................................................................................i
Mở đầu ........................................................................................................... iv
Chương 1. BÀI TOÁN QUY HOẠCH NGUN TUYẾN TÍNH VÀ BÀI
TỐN QUY HOẠCH TUYẾN TÍNH DẠNG CHUẨN.................................. 1
1.1. Một số mơ hình thực tế thuộc dạng bài tốn quy hoạch ngun tuyến tính dạng


chuẩn ............................................................................................................................. 1
1.1.1. Bài toán pha cắt vật liệu .................................................................................... 1
1.1.2. Bài toán lập kế hoạch sản xuất .......................................................................... 2
1.1.3. Bài tốn cái túi .................................................................................................. 2
1.1.4. Mơ hình phân bố máy bay cực tiểu tổng chi phí trên tồn mạng đường bay hàng
khơng ......................................................................................................................... 3
1.1.5. Bài tốn mua (th) máy bay tối ưu: .................................................................. 6
1.2. Bài toán quy hoạch nguyên tuyến tính dạng chuẩn và phương pháp giải........................... 7
1.2.1. Bài tốn quy hoạch ngun tuyến tính ............................................................... 7
1.2.2. Thuật tốn Land-Doig giải bài tốn quy hoạch ngun tuyến tính ..................... 9
1.3. Bài tốn quy hoạch tuyến tính với miền ràng buộc là hệ bất phương trình tuyến tính
.................................................................................................................................... 15
1.3.1. Phương pháp nón xoay xấp xỉ ngồi tuyến tính ............................................... 16
Thuật tốn xấp xỉ ngoài LP ....................................................................................... 16
1.3.2. Bảng lặp giải bài tốn quy hoạch tuyến tính bởi thuật tốn nón xoay xấp xỉ
ngồi tuyến tính ........................................................................................................ 18
1.3.3. Bài tốn quy hoạch tuyến tính tái tối ưu hóa và thuật tốn TTH....................... 22

Chương 2. THUẬT TỐN NHÁNH CẬN XẤP XỈ NGỒI GIẢI BÀI
TỐN QUY HOẠCH NGUN TUYẾN TÍNH VÀ ỨNG DỤNG ............. 28
2.1. Thuật tốn nhánh cận xấp xỉ ngồi giải bài tốn quy hoạch ngun tuyến tính ...... 28
2.2. Minh họa ứng dụng thuật tốn nhánh cận xấp xỉ ngồi ILP giải bài tốn quy hoạch
ngun tuyến tính có số chiều nhỏ với miền ràng buộc là hệ bất phương trình tuyến tính
.................................................................................................................................... 31

KẾT LUẬN ................................................................................................... 52
TÀI LIỆU THAM KHẢO ............................................................................. 54
Số hóa bởi Trung tâm Học liệu – ĐHTN





iii

Số hóa bởi Trung tâm Học liệu – ĐHTN




iv

Mở đầu
Như chúng ta đã biết, nhiều bài toán thực tế dẫn đến chúng ta phải
đi giải các bài toán quy hoạch nguyên tuyến tính, và một trong những
phương pháp hiệu quả để giải nó đó là phương pháp nhánh cận Land Doig. Mỗi bước trung gian để giải bài tốn quy hoạch ngun tuyến tính
thơng thường là chúng ta phải tiến hành giải các bài tốn quy hoạch tuyến
tính tương ứng khi chưa có điều kiện nguyên của biến với các ràng buộc
bổ sung dạng bất phương trình cho các thành phần của biến. Do đó việ c
sử dụng các thuật toán giải trực tiếp bài toán quy hoạch tuyến tính với
miền ràng buộc là hệ bất phương trình tuyến tính là khá ưu việt và hiệu
quả, một trong những thuật tốn như vậy là thuật tốn nón xoay tuyến tính
xấp xỉ ngồi trình bày trong [4].
Nội dung chính của luận văn được trình bày trong hai chương:
Chương 1, trình bày một số mơ hình bài tốn thực tế có dạng bài tốn
quy hoạch ngun tuyến tính, phương pháp nhánh cận Land-Doig và thuật
tốn nón xoay xấp xỉ ngồi tái tối ưu hóa TTH giải bài tốn quy hoạch tuyến
tính dạng chuẩn.
Chương 2, trình bày việc xây dựng thuật tốn xấp xỉ ngồi ILP giải bài
tốn quy hoạch ngun tuyến tính từ thuật tốn nhánh cận Land-Doig và thuật
tốn nón xoay xấp xỉ ngồi TTH. Thuật tốn đã dựa trên một định lý làm cho

trong mỗi bước để tìm các cận dưới đúng của bài toán nguyên, chúng ta chỉ
phải đi giải các bài tốn quy hoạch tuyến tính tương ứng khi chưa có điều
kiện nguyên có số chiều là n - 1 (n là số chiều của bài tốn). Tiếp đó minh họa
ứng dụng thuật tốn trình bày giải cho một số ví dụ đã có trong một số tài liệu
[2], [3] và [5] để so sánh tính thuận lợi của thuật tốn khi trường hợp bài tốn
có sơ chiều hay số ràng buộc chính là nhỏ. Và trong trường hợp bài tốn quy
hoạch ngun tuyến tính dạng chuẩn 2 chiều thì việc giải các bài tốn quy
hoạch tuyến tính tương ứng khi chưa có điều kiện ngun, trong mỗi bước để
Số hóa bởi Trung tâm Học liệu – ĐHTN




v

tìm các cận dưới đúng của bài tốn chỉ cịn là việc kiểm tra tìm giá trị nhỏ
nhất của hàm một biến tại hai đầu mút (nếu có).
Các thuật tốn trình bày trong luận văn này được xây dựng chi tiết, các
bước của thuật tốn được trình bày sao cho chúng ta có thể dễ dàng lập trình
chuyển sang các chương trình trên máy tính bằng các ngơn ngữ như Pascal, C,
Basis, Java, ...

Số hóa bởi Trung tâm Học liệu – ĐHTN




1

Chƣơng 1

BÀI TỐN QUY HOẠCH NGUN TUYẾN TÍNH
VÀ BÀI TỐN QUY HOẠCH TUYẾN TÍNH DẠNG CHUẨN
Trong chương này chúng ta sẽ trình bày một số bài tốn thực tế
điển hình thuộc dạng bài tốn quy hoạch ngun tuyến tính, giới thiệu
một số phương pháp quan trọng thường dùng để giải bài tốn quy hoạch
ngun tuyến tính. Và trong q trình các bước giải bài toán này cần phải
giải các bài tốn quy hoạch tuyến tính dạng chuẩn trung gian khi thêm
vào các siêu phẳng cắt hoặc thêm vào các ràng buộc dạng bất phương
trình tuyến tính để chia nhỏ miền chấp nhận sau mỗi bước. Chính vì thế,
trong phần cuối của chương này sẽ trình bày một thuật tốn xấp xỉ ngồi
giải trực tiếp bài tốn quy hoạch tuyến tính với miền ràng buộc là hệ bất
phương trình tuyến tính và thuật toán này khá hiệu quả trong trường hợp
tái tối ưu hóa.
1.1. Một số mơ hình thực tế thuộc dạng bài tốn quy hoạch ngun tuyến
tính dạng chuẩn
1.1.1. Bài tốn pha cắt vật liệu
Một phân xưởng có những thanh vật liệu (thanh thép, ống nhựa, ….)
có độ dài cho trước, chúng ta cần cắt chúng thành những đoạn ngắn theo các
mẫu cho trước. Vấn đề đặt ra là ta nên cắt như thế nào cho tổng những phần
dư còn thừa lại là tốn ít nhất?
Giả sử aij là độ dài đoạn loại i theo mẫu j, bi là số đoạn loại i cần có,
cj là rẻo thừa khi cắt theo mẫu j, gọi xj là số thanh cắt theo mẫu j (j= 1,2, …,
n). Ta có bài tốn quy hoạch ngun tuyến tính sau:
n

c
j 1

j


x j  min

Số hóa bởi Trung tâm Học liệu – ĐHTN




2

với các điều kiện
n

a x
j 1

j

j

 bi , i  1,...,m

x j  0 và nguyên, j  1,...,n

Đây là một bài tốn quy hoạch tuyến tính chính tắc ngun.
1.1.2. Bài tốn lập kế hoạch sản xuất
Giả sử một xí nghiệp sản xuất n loại sản phẩm và sử dụng m loại
nguyên liệu khác nhau, cj là lãi suất (hay giá bán) đối với một đơn vị sản
phẩm j (j =1,…, n), aij là suất chi phí tài nguyên loại i để sản xuất một đơn vị
sản phẩm loại j, bi là lượng dự trữ tài nguyên loại i (i = 1,…,m). Gọi xj là
lượng sản phẩm loại j (j = 1,…, n) mà xí nghiệp sản xuất. Trong các điều kiện

đã cho, hãy xác định các giá trị x j (j = 1,…, n) sao cho tổng tiền lãi (hay tổng
giá trị sản lượng hàng hóa) là lớn nhất với số tài ngun hiện có.
Mơ hình tốn học có dạng bài tốn quy hoạch tuyến tính dạng chuẩn sau:
n

c x
j

j 1

j

 max

với các điều kiện
n

a x
j 1

j

j

xj  0 ,

 bi , i  1,...,m
j  1,...,n

Đây là một bài tốn quy hoạch tuyến tính dạng chuẩn ngun.

1.1.3. Bài toán cái túi
Một người du lịch muốn đem theo một cái túi có thể đựng được các đồ
vật nặng khơng quá b kilogam. Có n loại đồ vật mà anh ta dự định đem theo.
Số hóa bởi Trung tâm Học liệu – ĐHTN




3

Mỗi một đồ vật loại j có khối lượng a j kilogam và giá trị c j . Người du lịch
muốn chất vào túi các đồ vật sao cho tổng giá trị đồ vật đem theo là lớn nhất.
Ký hiệu x j là số đồ vật loại j sẽ chất vào túi. Ta có bài tốn sau:
n
 c j x j  max
j 1
n
 a jx j  b
j 1
x j  0,

j  1,...,n

x j - nguyên, j  1,...,n

Đây là một bài tốn quy hoạch tuyến tính dạng chuẩn ngun.
1.1.4. Mơ hình phân bố máy bay cực tiểu tổng chi phí trên tồn mạng
đường bay hàng khơng
1. Các tham số và biến quyết định của bài toán:
Giả sử chúng ta đang khai thác sử dụng K loại máy bay (777, 767,

A321, A330, A320, AT7,...), M k là số máy bay loại k đang khai thác sử dụng
(k=1,2,...,K), giả sử số sân bay (thành phố) tham gia vào mạng là N. Ta sử
dụng các ký hiệu sau đây: (i, j) là chặng bay từ sân bay i đến sân bay j
(i, j=1,2...,N).
Ta giả thiết chiều dài trung bình thực tế Dij và chiều dài thương mại của
mỗi chặng bay là bằng nhau.
Pij là số lượng khách trung bình dự báo có thu nhập thực tế chuyên chở
được trên chặng bay (i, j) (trong mỗi tuần).
Sk là số ghế tương ứng (số ghế tối đa được phép xếp khách cho từng
chặng bay của loại máy bay k)
Số hóa bởi Trung tâm Học liệu – ĐHTN




4

gij là ghế suất (hệ số sử dụng ghế suất) trung bình trên chặng bay (i, j)
hmax - số giờ khai thác bay trung bình lớn nhất cho phép của một chiếc
k

máy bay loại k trong một tuần.
v - là vận tốc bình quân thực tế của máy bay loại k.
k
min(ij )
max(ij ) tương ứng là tần xuất bay ít nhất và nhiều nhất (số
F
, F
k
k


chuyến bay trong một tuần) của loại máy bay k trên chặng bay (i, j).
Cijk là chi phí theo chuyến bay (trong một tuần) trên chặng bay (i, j) của

loại máy bay k.
fijk là tần suất bay (số chuyến bay trong một tuần) của loại máy bay k

trên chặng bay (i, j) (biến quyết định).
2. Hàm mục tiêu:
Ta ký hiệu Cost là tổng chi phí theo chuyến bay cho tất cả máy bay
đang khai thác sử dụng trong thời kỳ phân tích (một tuần) trên các tuyến
bay tồn mạng. Thời kỳ phân tích là khoảng thời gian cần nghiên cứu cần
phân tích mà ta có thể quy định là một tuần, một tháng, một quý, sáu tháng,
một năm,....
Hàm mục tiêu Cost là tổng chi phí cho chuyến bay trên toàn mạng được
xác định như sau:
k fk
Cost  C    C ij
ij
0 ij k

(I.1)

Trong đó C 0 (chi phí cố định) là tổng chi phí khơng phát sinh thêm khi
chuyến bay được thực hiện như: giá thuê máy bay, bảo hiểm máy bay, bảo
dưỡng sửa chữa máy bay, khấu hao thiết bị máy bay, quản lí chung...C ijk là
Số hóa bởi Trung tâm Học liệu – ĐHTN





5

chi phí biến đổi theo chuyến bay của loại máy bay k xuất hiện khi thực hiện
chuyến bay như: phục vụ hàng khách, giờ bay, hàng hóa, nhiên liệu...
3. Các ràng buộc của bài toán:
Ràng buộc về thương mại:
min(ij )
max(ij )
0 F
 fijk  F
k
k

(I.2)

Ràng buộc này có nghĩa là tần suất bay fijk của loại máy bay k trên
chặng bay (i, j) khơng ít hơn Fkmin(ij) và khơng nhiều hơn Fkmax(ij ) (ràng
buộc về hạn chế thương mại).
Ràng buộc về khai thác:
Với mỗi vịng bay j (Pairing) ta có:

k
 f ji =  fijk
i
i

(I.3)

(j = 1,2,...N, k = 1,2,...,K)

Ràng buộc (I.3) có nghĩa là trong khoảng thời gian phân tích (của một
chu kỳ bay) thì các đội bay của loại máy bay k rời sân bay căn cứ j (Crew
Base) bay đến sân bay i thì sẽ bay về sân bay j trong vòng bay.

 Tijk . fijk  M k .hkmax

(I.4)

(i , j )

Trong đó Tijk 

D ij
v
k

là thời gian bay trên chặng bay (i, j) của loại máy bay k.

Ràng buộc (I.4) có nghĩa là số giờ khai thác bay trung bình của một
chiếc máy bay loại k khơng vượt q số giờ bay cho phép.

Số hóa bởi Trung tâm Học liệu – ĐHTN




6

Pij
gij 

1
K
k
 S .f
k 1 k ij

(i, j = 1,2,...,N)

(I.5)

Ràng buộc (I.5) có nghĩa là hệ số sử dụng ghế (ghế suất) thực tế
trên chặng bay (i, j) của loại máy bay k phải đạt ít nhất bằng g ij và khơng
vượt q 100%.
Bài tốn đặt ra là cựu tiểu hàm mục tiêu (I.1) với ràng buộc thỏa mãn
(I.2), (I.3), (I.4) và (I.5). Vậy mơ hình bài tốn “Phân bố máy bay” cực tiểu
tổng chi phí cho chuyến bay như sau:
Cost  C0   Cijk f ijk  min
ij

(I.6)

k

Với các ràng buộc:
min(ij )
max(ij )
0 F
 fijk  F
k
k


 f jik
i

=

 fijk

(j = 1,2,...N, k = 1,2,...,K)

i

k k
max
 Tij fij  M k .hk
(i, j )

Pij

gij 
1
K
k
 S .f
k 1 k ij

(i, j=1,2,...,N)

Đây là một bài toán quy hoạch tuyến tính dạng chuẩn ngun.
1.1.5. Bài tốn mua (th) máy bay tối ưu:

Để mở rộng hoạt động, hãng hàng không dự định mua (thuê) K loại
máy bay (B777, B767, A321, A330, A320, AT7,...) ta gọi tương ứng là loại
máy bay k (k=1, 2, …, K). máy bay loại k có giá mua (thuê) là ck và có thời
gian sử dụng là Tk năm. Hãng dự định mua (thuê) tối đa là N máy bay trong
Số hóa bởi Trung tâm Học liệu – ĐHTN




7

các loại máy bay trên với số vốn đầu tư hiện có là V, Bài tốn cần giải quyết
là hãng hàng không nên mua (thuê) bao nhiêu máy bay mỗi loại để tổng thời
gian sử dụng là nhiều nhất?
Ta gọi xk là số lượng máy bay loại k cần mua (th), khi đó mơ hình
bài tốn đặt ra là:
K

M   Tk .xk  max

(I.7)

k 1

Với các ràng buộc:
K

x
k 1


k

N

K

 c .x
k 1

k

k

V

xk  0, k  1, 2,..., K , ngun

Đây là một bài tốn quy hoạch tuyến tính dạng chuẩn ngun.
1.2. Bài tốn quy hoạch ngun tuyến tính dạng chuẩn và phƣơng pháp giải
Trong mục này, chúng ta giới thiệu về bài tốn quy hoạch ngun
tuyến tính dạng chuẩn và phương pháp nhánh cận Land-Doig để giải nó. Nội
dung của mục này dựa chủ yếu vào các tài liệu [2], [3], [4] và [5].
1.2.1. Bài toán quy hoạch nguyên tuyến tính
Quy hoạch nguyên tuyến tính (Interger linener Programming, viết tắt
ILP), là bài tốn tìm cực tiểu (hay cực đại) của một hàm tuyến tính trên một
tập hợp điểm rời rạc, thường là tập điểm nguyên:
T
( ILP) min  f ( x)  c x : Ax  b, x j  0 nguyên, j 1,..., n

m.n

m
n
trong đó A  R , b  R và c  R cho trước.

Số hóa bởi Trung tâm Học liệu – ĐHTN




8

Khi có một số, khơng phải tất cả các biến là ngun thì ta gọi đó là bài
tốn qui hoạch nguyên bộ phận. Khi có điều kiện tất cả các biến đều ngun
thì ta gọi đó là bài tốn quy hoạch ngun hồn tồn.

Số hóa bởi Trung tâm Học liệu – ĐHTN




9

Cũng như trong quy hoạch tuyến tính, f được gọi là hàm mục tiêu, tập

D   x  Rn : Ax  b, x j  0 nguyên, j 1,..., n 
gọi là miền ràng buộc hay miền chấp nhận được. Điểm x D gọi là
một nghiệm chấp nhận được hay một phương án của bài toán. Một phương án
đạt cực tiểu (hay cực đại) của hàm mục tiêu gọi là nghiệm tối ưu hay một
phương án tối ưu. Nghiên cứu cấu trúc tập ràng buộc D và xây dựng các thuật
tốn tìm nghiệm tối ưu của bài tốn ILP là đối tượng của quy hoạch nguyên

tuyến tính.
1.2.2. Thuật tốn Land-Doig giải bài tốn quy hoạch ngun tuyến tính
Chúng ta đã biết khi giải bài toán quy hoạch tuyến tính bằng
phương pháp đơn hình thì nhiều bài tốn như bài toán vận tải sẽ cho
chúng ta lời giải nguyên. Song cũng có nhiều bài tốn cho chúng ta lời
giải chưa phải là ngun, chính vì thế mà một số phương pháp giải bài
toán quy hoạch nguyên đã ra đời.
Năm 1954, Dantzig, Fulkerson và Johnson đã đưa ra ý tưởng về
phương pháp siêu phẳng cắt để giải bài toán quy hoạch nguyên. Ý tưởng
chính của phương pháp này là mỗi bước lặp sẽ dùng siêu phẳng cắt để thu nhỏ
miền chấp nhận được ở bước trước sao cho nghiệm tối ưu chưa nguyên ở
bước này phải bị cắt đi và mọi phương án nguyên chấp nhận được không bị
cắt đi. Năm 1958, Ralph Gomory đã xây dựng thuật toán đảm bảo hữu hạn
bước nhận được lời giải tối ưu nguyên. Đến năm 1960, Land-Doig đã đưa ra
thuật toán nhánh cận giải bài toán quy hoạch nguyên hiệu quả hơn nhiều so
với phương pháp siêu phẳng cắt của Gomory.
Sau đây chúng ta sẽ trình bày thuật tốn Land-Doig là một trong
những thuật toán của phương pháp nhánh cận. Sơ đồ tổng qt của phương
pháp nhánh cận chúng ta có thể tìm thấy ở các tài liệu [2], [3] và [5].
Số hóa bởi Trung tâm Học liệu – ĐHTN




10

Thuật toán Land-Doig giải bài toán quy hoạch nguyên tuyến tính
Xét bài tốn quy hoạch ngun tuyến tính sau đây:

 n

  c j x j  min
 j 1
n


  aij x j  b j , (i  1,..., m)
 j 1
 x j  0, ( j  1,..., n)


 x j  nguyên( j  1,..., n)

(1.8)

Ký hiệu:

x  ( x1,.. , xn )T , c  (c1,.. , cn )T , b  (b1,.. , bn )T , A  (aij )
(với T là ký hiệu chuyển vị vectơ hay ma trận). Khi đó bài toán trên
được viết lại dưới dạng ma trận như sau:

cT x  min

 Ax  b
 x  0, nguyên


(1.9)

Để áp dụng phương pháp nhánh cận, ta phải xác định hai thủ tục
chính đó là phân nhánh và tính cận. Ta xét cách xây dựng hai thủ tục này của

Land-Doig.
Đặt D  x: Ax  b, x  0, nguyên
Ta có miền D là miền chấp nhận được của bài toán (1.9). Ta sẽ ký hiệu

P0 là bài toán (1.9).
Giải bài tốn quy hoạch tuyến tính tương ứng với P0 ta sẽ thu được
0
0
phương án tối ưu x , x nói chung khơng ngun.

Số hóa bởi Trung tâm Học liệu – ĐHTN




11

Ta có:

f ( x0 )  min  f ( x): Ax  b, x  0 
 min{ f ( x) : Ax  b, x  0, nguyên }  f*
Vì thế giá trị f ( x 0 ) có thể dùng làm cận dưới cho giá trị tối ưu f * của
bài toán P0 .
Như vậy ta đã có thủ tục để tính cận dưới: đặt giá trị cận dưới của bài
tốn quy hoạch ngun tuyến tính bằng giá trị tối ưu của bài toán quy hoạch
tuyến tính tương ứng với nó:

 ( D)  min{ f ( x) : Ax  b, x  0 } .
Ta phân chia tập chấp nhận được của bài toán P0 thành hai tập bằng
cách đưa vào hai ràng buộc loại trừ lẫn nhau như sau:

0
0
Giả sử xi (1 i  n ) là một thành phần không nguyên nào đó của x .

Ký hiệu:

D1  { x  D : xi  [ xi0 ] }

(1.10)

D2  { x  D : xi  [ xi0 ]  1}

(1.11)

0
0
Trong đó [ xi ] là phần nguyên của xi .

Khi đó

D  D1  D2 , D1  D2   .

(1.12)

Như vậy, ta đã xác định được thủ tục phân hoạch theo các cơng thức
(1.10)-(1.12).
Gọi P1 là bài tốn: min { f ( x) : x  D1 } .
Số hóa bởi Trung tâm Học liệu – ĐHTN





12

Gọi P2 là bài toán: min { f ( x) : x  D2 } .
Rõ ràng đây là các bài tốn quy hoạch ngun tuyến tính.
Khi giải bài tốn quy hoạch tuyến tính tương ứng với bài tốn

Pi (i  1, 2) , để tính cận dưới cho các tập Di , ta có thể gặp một số các tình
huống sau đây:
1) Bài tốn khơng có phương án chấp nhận được.
i

2) Tìm được phương án tối ưu x nguyên.
i

3) Tìm được phương án tối ưu x khơng ngun.
Trường hợp 1): Bài tốn Pi cũng khơng có phương án chấp nhận được,
tức là Di   . Khi đó, ta có thể loại bỏ tập Di khỏi qua trình xét tiếp theo.
i
i
Trường hợp 2): x cũng là phương án của bài tốn Pi . Vì vậy x là

phương án chấp nhận được của bài toán xuất phát. Trong trường hợp này, ta
có thể cải thiện được kỷ lục, cịn tập Di cũng sẽ bị loại không cần xét tiếp.
Trường hợp 3): Ta thu được cận dưới của tập Di là

 ( Di )  f ( x i ) .
Tập Di cần xem xét tiếp:
Ta có thể mơ tả thuật tốn Land-Doig để giải bài tốn quy hoạch

ngun tuyến tính (1.9) như sau:
Thuật toán Land-Doig
Bước chuẩn bị: Giải bài toán quy hoạch tuyến tính tương ứng với P0
0
0
và thu được phương án tối ưu x . Giả sử x là khơng ngun.

Số hóa bởi Trung tâm Học liệu – ĐHTN




13

Đặt cận dưới của P0 là f ( x 0 ) và danh mục các bài toán cần xét là
P  P0 .

Nếu biết x là phương án chấp nhận được của bài tốn thì đặt
f  f (x ) và ngược lại, ta đặt f  ∞.

Bước lặp k = 1, 2, . . .
1) Nếu P   thuật tốn kết thúc. Khi đó, nếu f   thì f là giá
trị tối ưu và x là phương án tối ưu của bài toán. Trong trường hợp ngược lại,
bài tốn khơng có phương án chấp nhận được.
2) Nếu P   : Chọn Pk là bài tốn có cận dưới nhỏ nhất trong P .
k
Gọi Dk là miền chấp nhận được, x là phương án tối ưu của bài tốn quy

hoạch tuyến tính tương ứng với nó.
k

k
2.1. Giả sử xt là một thành phần khơng ngun nào đó của x .

Phân hoạch tập Dk thành hai tập:

Dk1  { x Dk : xt [ xtk ]},
Dk2  { x Dk : xt [ xtk ] 1}.
Gọi Pk1 là bài toán

min { f ( x) : x  Dk1 } .
Gọi Pk 2 là bài toán

min { f ( x) : x  Dk2 } .
Đây là các bài tốn quy hoạch ngun tuyến tính.
Số hóa bởi Trung tâm Học liệu – ĐHTN




14

2.2. Lần lượt giải các bài toán quy hoạch tuyến tính tương ứng với

Pki (i 1, 2) để tính cận dưới đúng cho bài tốn Pki . Khi đó, ta có thể gặp một
trong các tình huống sau đây:
a) Phát hiện bài tốn khơng có phương án chấp nhận được.
b) Tìm được phương án tối ưu x

ki


là nguyên.

c) Tìm được phương án tối ưu x

ki

là không nguyên.

Trường hợp a): Bài tốn Pki cũng khơng có phương án chấp nhận
được, vì vậy ta loại bỏ việc xem xét tiếp theo.
Trường hợp b): Tính lại các kỷ lục theo cơng thức:

f :  min{ f , f ( x ki ) }
Gọi x là kỷ lục tương ứng với giá trị này. Bài toán Pki đã xét xong.
k
Trường hợp c): Đặt cận dưới của Pki là f ( x i ) , và kết nạp nó vào danh

sách các bài tốn cần xét:

P : P  { Pki }
2.3. Loại bỏ khỏi P tất cả các bài tốn có cận dưới lớn hơn hoặc bằng
giá trị kỷ lục. Đặt: P : P \ { Pki }
và chuyển sang bước k + 1.
Như vậy chúng ta đã trình bày xong thuật tốn nhánh cận Land-Doig
giải bài tốn quy hoạch ngun tuyến tính dạng chuẩn. Chúng ta thấy khi giải
bài toán quy hoạch nguyên tuyến tính theo thuật tốn trên thì các tính tốn ở
giai đoạn 2.2. để giải các bài toán quy hoạch tuyến tính tương ứng tính cận
dưới là khâu quan trọng cần thiết. Rõ ràng sau mỗi bước mỗi bài toán quy
hoạch tuyến tính tương ứng cần giải lại thêm một ràng buộc bất phương trình.
Số hóa bởi Trung tâm Học liệu – ĐHTN





15

Chính vì vậy khi giải các bài tốn này chúng ta nên lựa chọn các thuật
toán giải trực tiếp được cho bài tốn quy hoạch tuyến tính dạng chuẩn (miền
ràng buộc là hệ bất phương trình tuyến tính) nhất là những thuật tốn mà có
ưu điểm thuận lợi trong trường hợp bài tốn là tái tối ưu hóa (sau một bước lại
giải lại bài toán khi chỉ bổ sung thêm 1 ràng buộc).
Một thuật toán giải bài toán quy hoạch tuyến tính với miền ràng buộc
là hệ bất phương trình tuyến tính và có ưu điểm khi bài tốn là tái tối ưu hóa
là thuật tốn nón xoay trong [4]. Sau đây chúng tơi sẽ trình bày thuật tốn nón
xoay và trong trường hợp bài toán cần giải là bài tốn tái tối ưu hóa (tức là
giải lại bài tốn mới khi bổ sung thêm một ràng buộc bất phương trình vào
miền ràng buộc của bài tốn trước đã biết lời giải của nó). Chứng minh định
lý khẳng định bài tốn tái tối ưu hóa nếu có lời giải thì sẽ có ít nhất một lời
giải thỏa mãn chặt ràng buộc bổ sung. Và nhờ tính chất này mà khi giải các
bài tốn quy hoạch tuyến tính tương ứng trong bước 2.2. của thuật tốn LandDoig trình bày trên chung ta chỉ phải giải các bải toán quy hoạch tuyến tính
với số chiều (số biến nguyên) là n-1 (n là số chiều của bài toán).
1.3. Bài toán quy hoạch tuyến tính với miền ràng buộc là hệ bất phƣơng
trình tuyến tính
Xét bài tốn quy hoạch tuyến tính với miền ràng buộc là hệ bất
phương trình tuyến tính sau:
n

 f ( x)  C , x   ci .xi  min
i 1
( L) 

n
 x  P :  x  R :  Ai , x  b  0, i  1,2,..., m
L
i


xRn, Ai là véc tơ dòng và AiRn, m n, Ai(ai1, ai2, ..., ain) ≠ O(0,…,0) ,

Số hóa bởi Trung tâm Học liệu – ĐHTN




16

C(c1, c2,…, cn), bi R1, i=1, 2, ..., m. Hạng của hệ Ai (i=1, 2, …, m)
bằng n, giả thiết này rất bình thường bởi miền ràng buộc PL của bài tốn quy
hoạch tuyến tính nói chung bao giờ cũng có ràng buộc về dấu của biến x.
1.3.1. Phương pháp nón xoay xấp xỉ ngồi tuyến tính
Xét bài tốn (L) trong trường hợp biết một nón – min của bài tốn (L).
Ý tưởng của thuật tốn nón xoay tuyến tính giải bài tốn (L) như sau:
Xuất pháp từ một nón-min M ban đầu của hàm mục tiêu bài toán,
chúng ta kiểm tra xem đỉnh của nó có thuộc miền chấp nhận của bài tốn
khơng (tức là đỉnh này có thoả mãn tất cả các ràng buộc không) nếu đỉnh này
thuộc miền chấp nhận thì nó là một lời giải của bài tốn (L). Ngược lại ta xây
dựng nón xoay mới M(r,s) (vẫn là nón-min) từ nón cũ M của bài tốn (L) và
lặp lại q trình kiểm tra nón xoay mới này tương tự như đối với nón M, q
trình này được thực hiện cho đến khi đỉnh của nón xoay mới M(r,s) thuộc
miền chấp nhận của bài toán (L) (khi miền ràng buộc của bài tốn (L) có
phương án) hoặc sẽ phát hiện ra miền ràng buộc của bài tốn (L) là rỗng.

Thuật tốn xấp xỉ ngồi LP
Bước chuẩn bị (bước 0). Giả sử ta đó biết M0 là nón - min của bài
tốn (L) với tập chỉ số cơ sở là I0:={ i10 , i20 ,..., in0 }, x0 = x M 0 là đỉnh của M0 và
các véc tơ chỉ phương của các cạnh i của nón M0 là z0i = z Mi 0 (i  I0).
Bước k ( k=0, 1, 2, ...). Giả sử Mk là nón - min của bài tốn (L) (đã
được xây dựng), với tập chỉ số cơ sở, đỉnh và các véc tơ chỉ phương của các
cạnh của nón Mk tương ứng là Ik:= i1k , i2k ,..., ink  ; xk = x M k và zki = z Mi k .
Xác định tập J+(xk) theo (1.6): J  ( x k ) :  j  1,2,..., m : A j , x k  b j  0
1. Nếu J+(xk) = thì dừng lại. xk chính là một lời giải của bài tốn (L),
Số hóa bởi Trung tâm Học liệu – ĐHTN




17

2. Nếu J+(xk)   , ta chọn chỉ số đưa vào cơ sở theo một trong hai
cách sau:
Ta chọn sk là một chỉ số tuỳ ý thuộc J+(xk) hoặc ta chọn sk=min{j:jJ+(xk)}
(gọi là qui tắc chọn min)

(1.13)

hoặc sk = max{j: j  J+(xk) (gọi là qui tắc chọn max) và xác định:





I sk : i  I k : Ask , zki  0 ;


(1.14)

 





I sk : i  I sk : Ask , zki  0  iskk 1, iskk 2 ,..., iskk qk ,

(1.15)

2.1. Nếu I sk =  thì dừng lại, suy ra bài tốn (L) khơng có phương án.
2.2. Nếu I sk   :

 C , zkv 
 C , zki 
 min{
}}
Gọi V :={ v  I : 
 Ask , zkv  iI sk  Ask , zki 
sk

sk


(1.16)

và chọn chỉ số đưa ra khỏi cơ sở theo một trong hai cách sau:

Ta chọn rk là chỉ số tuỳ ý thuộc V s . Hoặc ta chọn
k

rk = min{v: v V sk } hoặc rk = max{v: v V sk }

(1.17)

(cách chọn chỉ số này gọi là qui tắc chọn min (hoặc là qui tắc chọn max)) .
Và ta xây dựng nón xoay Mk+1 = Mk(rk , sk) sinh ra từ nón-min Mk, tập chỉ số
cơ sở là Ik+1= Ik(rk , sk) = (Ik  {sk}) \ {rk} và các véc tơ chỉ phương zki 1 (xem [4]) sao
cho:

 zi
khi i  I k0
k
 i  Ask , zki  rk
i
zk 1  ( zk  sk rk .zk ) khi i  I ksk , i  rk
 A , zk 


1
r
khi i  sk
 sk rk .zkk

A
,
z


k

Số hóa bởi Trung tâm Học liệu – ĐHTN

(1.18)




18


x

k+1

=x

= x =x +  .z = x -

M k ( rk , sk )

k

rk
k

k

rk

k

k
rk

 Ask , x k  bsk
 A ,z 
sk

rk
k

. zkrk =

 b .z
i

iI k 1

i
k 1

(1.19)

Quay trở lại bước k với k:= k+1.
1.3.2. Bảng lặp giải bài tốn quy hoạch tuyến tính bởi thuật tốn nón xoay
xấp xỉ ngồi tuyến tính
Để dễ tính tốn, trong mỗi bước lặp k ta thiết lập bảng dưới đây gọi là
bảng nón xoay thu gọn giải bài tốn quy hoạch tuyến tính dạng chuẩn khi biết
một nón – min của hàm mục tiêu của bài tốn.

Bảng lặp nón xoay thu gọn:
Bảng A
Chỉ số cơ sở

bj

c1

<Ai, x0 >+bi

c2 … c j … cn

<Ai, xk >+bi
k=1,2,…

1

b1

a11

a12 … a1 j … a1n

<A1, x0 >+b1

<A1, xk >+b1

2

b2


a21

a22 … a2 j … a2n

<A2, x0 >+b2

<A2, xk >+b2





……

……

( sk )

bsk





m

bm

i1k


bi k
1



…. ….

ask 1 ask 2 … ask j … ask n

… … …
am1
k

zki11

am 2 … amj ... amn

zki12 … zkji1 … zkni1
k

k

k

(< As , x0 >+ bs )

( As , xk >+ bs )




...

<Am, x0 >+bm

<Am, xk >+bm

0

0

 Ask , zki1 

i

bi k
2


( rk= isk p )
k k



z

i2k
k1

z …z …z

i2k
k2

i2k
kj

i2k
kn

… … … …

 Ask , zki2 

Số hóa bởi Trung tâm Học liệu – ĐHTN

ik

-



 C , zksk 1 
ik

 Ask , zksk 1 



[  As , zkr  ]
k


brk

k

k

k

k
2

k

k




19





zkrk1



zkrk2 … zkjrk … zknrk


(-

… … … …
k
n



k

 Ask , zkin 

bi k

i

n

 C , zkrk 
)
 Ask , zkrk 

ik

xk

Bước
k=0,1,2,…


ink

zk 1

zk 2 … zkj … zkn

x1k

x2k … xkj … xnk

ink

ink

-

ink

 C , zksk qk 
ik

 Ask , zksk qk 

Bảng lặp nón xoay thu gọn A gồm 2 phần (xem bảng A): Các số liệu
ban đầu được đưa vào bảng và các số liệu cần tính tốn theo các cơng thức
trong thuật tốn nón xoay được xây dựng thứ tự theo các bước từ trên xuống
dưới và từ trái sang phải như sau:
Bước k (k=0, 1, 2, …):
Phần thứ nhất của bảng là khai báo số liệu của bƣớc chuẩn bị:
Đưa vào các số liệu ban đầu của bài tốn nằm trong các cột bao gồm có

cột chỉ số cơ sở 1, 2, …, m, cột số liệu các giá trị bi (i=1, 2, …, m), dòng đầu
tiên trên cùng của phần này là các hệ số của hàm mục tiêu, và ma trận hệ số
các ràng buộc A cụ thể là:
- Dòng đầu tiên của bảng là dòng các toạ độ cj của véc tơ C của hàm
mục tiêu.
- Cột đầu tiên thứ nhất là cột chỉ số của các véc tơ dòng Ai của ma
trận ràng buộc A của bài toán (L) từ 1 đến m.
- Cột thứ hai là cột các giá trị bi (i  1,2,..., m) của véc tơ cột B của ma
trận ràng buộc.
- Tiếp theo bên phải cột thứ hai là bảng của ma trận hệ số gồm các giá
trị của ràng buộc A: aij (i=1,2,…,m; j =1,2,…,n)
Số hóa bởi Trung tâm Học liệu – ĐHTN




20

Phần thứ hai của bảng liền với phần thứ nhất là số liệu tính tốn
các giá trị của hệ véc tơ chỉ phƣơng zki (i  I k ) và các toạ độ của đỉnh xk:
Tại bước k (k = 0, 1, 2, …) bảng gồm các cột và ma trận của giá trị
các véc tơ chỉ phương zki (i  I k ) cụ thể như sau:
- Cột thứ nhất là cột chỉ số cơ sở iIk
- Cột thứ hai là cột giá trị bi với i  I k
- Tiếp theo bên phải cột thứ hai là bảng ma trận các véc tơ chỉ phương

zki (i  I k ) . Dòng cuối cùng là các giá trị toạ độ của xk là đỉnh của nón-min
Mk đã biết ở bước k.
Đến đây ta có bảng nón xoay tại bước k (k = 0, 1, 2, ….) đã xây dựng xong.
Bây giờ ta chuyển sang kiểm tra tiêu chuẩn tối ưu và xây dựng bảng

nón xoay mới ở bước tiếp theo k+1 nếu xk chưa phải là phương án tối ưu.
Từ dòng cuối cùng của phần thứ hai của bảng là dòng các toạ độ của xk ,
chúng ta đi tính các giá trị  Ai , xk  bi (i  0,1,2,..., m) và xây dựng tiếp các cột
chứa các giá trị này ở bên phải ma trận ràng buộc A trong phần thứ nhất của bảng.
Từ cột chứa giá trị  Ai , xk  bi (i  0,1,2,..., m) đã biết này ở bước lặp
k (vị trí bên phải ma trận ràng buộc A). Theo thuật tốn nón xoay ta xác định
được tập J  ( xk ) có hai khả năng:
- Nếu J  ( xk )   thì dừng và xk là một lời giải của bài (L)
- Nếu J  ( xk )   thì theo thuật tốn nón xoay ta chọn được chỉ số đưa
vào cơ sở sk và chúng ta tiến hành tính tốn các cột sau:
Bên phải bảng zki , i  I k ở phần thứ hai của bảng ta xây dựng cột chứa
giá trị  Ask , zki , i  I k
Số hóa bởi Trung tâm Học liệu – ĐHTN




×