6
---------------------------------------------------------------------------------------------Thuật toán cộng Balas
Chương 1
BÀI TOÁN QUY HOẠCH TUYẾN TÍNH VỚI BIẾN
BOOLEAN
Trong chương này trình bày bài toán quy hoạch rời rạc, bài toán quy
hoạch tuyến tính với biến Boolean và một số bài toán thực tế dẫn đến bài toán
này.
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 thì phương pháp đơn hình sẽ cho lời giải 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 luận văn 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.
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:
g i ( x, y ) ≤ 0
, i = 1,2,..., m; x ∈ D
trong đó, x = ( x1 , x2 ,..., x p ) , y = ( y1 , y 2 ,..., y q ) , p > 0 , q ≥ 0 , D là tập hữu
cho trước
trước của
của n biến số (
hạn các véc tơ p - chiều, còn f , g i là những hàm cho
n = p + q ).
7
---------------------------------------------------------------------------------------------Thuật toán cộng Balas
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ơ có các
thành phần là 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 ,..., x p 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 quy hoạch nguyên bộ phậ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 số chỉ nhận các
giá trị nguyên.
Ví dụ.
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 :
x = a1u1 + a2 u 2 + ... + ak u k ,
với u1 + u 2 + ... + u k = 1 , u j ∈{0,1} , j = 1,2,..., k
thì biến rời rạc x có thể được thay thế bởi một số biến u j chỉ nhận giá trị 0
hay 1, gọi tắt là biến 0 - 1 hay biến Boolean.
Tương tự, nếu x ∈{0,1,..., k } thì ta có thể viết
x = u1 + u 2 + ... + u k , u j ∈{0,1} , j = 1,2,..., k .
nghĩa là bất kỳ bài toán với các biến nguyên
nguyên bị chặn tuỳ ý, đều có thể quy về
bài toán với các biến 0 - 1. Điều này cho thấy bài toán quy hoạch nguyên 0 - 1
giữ vai trò quan trọng trong quy hoạch rời rạc.
2. MỘT SỐ BÀI TOÁ
TOÁN
N DẪN ĐẾN BÀI TOÁN
TOÁN QUY HOẠCH
HOẠCH TUYẾN
TUYẾN
TÍNH VỚI BIẾN BOOLEAN
2.1. Bài toán cái túi
8
---------------------------------------------------------------------------------------------Thuật toán cộng Balas
Có một cái túi chứa được nhiều nhất một trọng lượng là
vật cần mang, đồ vật
j
nặng a , giá trị của nó là
j
c j
b,
có n đồ
. Bài toán đặt ra là cho
những đồ vật nào vào túi để tổng giá trị của nó lớn nhất. Ký hiệu
x j
là số đồ
j
vật
được đưa vào túi. Dạng toán học của bài toán là:
n
∑c j x j
→max
j =1
n
∑a j x j
≤b
j =1
x j ≥ 0, x j ∈ Z
Ví dụ. Có một cái túi chứa được nhiều nhất là 62 kg, có 10 đồ vật cần
mang
30 x1 +19 x2 +13 x3 + 38 x4 + 20 x5 + 6 x6 + 8 x7 +19 x8 +10 x9 +11 x10 →max
15 x1 +12 x2 + 9 x3 + 27 x4 +15 x5 + 5 x6 + 8 x7 + 20 x8 +12 x9 +15 x10 ≤ 62
x j ∈{ 0,1}, j =1,2,...,10
Đáp số: trị tối ưu hàm mục tiêu là 95, phương án tối ưu là (1,1,0,1,0,0,1,0,0,0)
2.2. Bài toán phân việc
Có n đơn vị cần sản xuất n loại sản phẩm, cij 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í nhỏ nhất.
Dạng toán họcn của
bài toán là:
n
∑ ∑ cij xij → min
i =1 j =1
n
∑ xij = 1, i = 1,2,..., n
j =1
n
∑ xij = 1, j = 1,2,..., n
i =1
xij ∈ { 0;1} ; i = 1,2,..., n ; j = 1,2,..., n.
9
----------------------------------------------------------------------------------------------
Thuật toán cộng Balas
Ví dụ. Có 4 đơn vị sản xuất 4 loại sản phẩm với ma trận chi phí sau:
10000
400000
0
20000
0
40000
0
30000
0
3500000
0
200000
0
500000
0
800000 550000
750000 500000
700000 400000
600000 450000
Đáp số . Trị tối ưu hàm mục tiêu là 3200000 .
Phương án tối ưu là: x[1,1] = x[ 2,4] = x[ 3,2 ] = x[ 4,3] = 1.
2.3. 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
độ dài của cung nối từ đỉnh i đến đỉnh j, có thể
cij ≠ c ji
và
cii = ∞
cij
là
với mọi i .
Một chu trình Hamilton
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 =1 nếu cung (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 toán là:
n
n
∑∑cij xij
→min
i =1 j =1
n
∑ x
j =1
ij
=1, i =1, 2, ..., n
10
---------------------------------------------------------------------------------------------Thuật toán cộng Balas
n
x
∑
=
ij
=1, j =1, 2, ...,
n
i 1
xij
∈{0, 1}, i, j =1, 2, ...,
n
u i − u j + nx ij ≤ n − 1 , 2 ≤ i ≠ j ≤ n
trong đó
ui
nhận giá trị nguyên hay thực.
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ư
phương
ơng pháp
pháp nhánh
nhánh cận để giải bài toán
toán ngườ
ngườii du lịch
lịch và cho
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.4. Bài toán với chi phí cố định
Xét bài toán tối ưu có dạng sau:
n
min f ( x ) = ∑ f j ( x j ) : x = ( x1 , x 2 ,..., x n ) ∈ D
j −1
trong đó D ⊂ R n là một tập lồi đóng và:
+
d j + c j x j
f j ( x j ) =
0
khi x j > 0
khi x j = 0
( j = 1, 2, ..., n )
11
---------------------------------------------------------------------------------------------Thuật toán cộng Balas
Giả thiết
d j > 0
với mọi j =1,2,...,
Các số
n.
d j
thường đượ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
Giả sử đã biết
x j
.
j
là cận trên của biến x , tức là:
p j ≥ max x j : x ∈ D j 1, 2, ..., n .
p j
=
Khi đó ta có thể đưa bài toán trên về bài toán tương đương với nó dạng:
n
∑(c j x j + d i xi ) →min
j =1
x ∈ D, 0 ≤ x j ≤ p j y j , y j ∈{0, 1}, j =1, 2, .., n.
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
j
có trọng lượng
=1, 2, ...,
n
a j
, khối lượng
b j
và số lượng cần vận chuyển là
s j
(
). 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
xij
là số đồ vật
j
được chở trên công ten nơ i ,
giá trị 0 hay 1 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à:
yi
là biến nhận
12
---------------------------------------------------------------------------------------------Thuật toán cộng Balas
m
y
∑
=
i
→min
i 1
n
∑a x
j =1
j
ij
≤Ty i ,
i
=1, 2, ...,
m
n
∑b x ≤ Ky , i =1, 2, ..., m
x = s , j =1, 2, ..., n
∑
=
j =1
j
ij
i
m
ij
j
i 1
∈{0, 1, 2, ..., s j } i =1, 2, ...,
yi ∈{0, 1} i =1, 2, ..., m.
xij
m, j
=1, 2, ..., n
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ông ten nơ
không sử dụng ( y i = 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ông ten nơ.
2.6. 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
trongg các thời kỳ khác nhau, tất nhiên
tron
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 ≤ P ), mỗi địa điểm
đặt nhiều nhất là một nhà máy.
13
---------------------------------------------------------------------------------------------Thuật toán cộng Balas
M là số các vật phẩm khác nhau được sản xuất hay tiêu dùng.
ais
ais <
là lượng vật phẩm
i
được sản xuất (nếu
0) ở nhà máy s ( i =1, 2, ...,
M ; s
=1, 2, ...,
ais >
N
0), hay tiêu dùng (nếu
).
bi
là nhu cầu về vật phẩm i do các nhà máy sản xuất (nếu
do các nhà máy tiêu dùng (nếu bi < 0).
bi
> 0), hay
d ps là chi phí lắp đặt nhà máy s tại địa điểm p( p =1, 2, ...,
P )
.
c pq
là chi phí vận chuyển một đơn vị hàng giữa các địa điểm
p
và
q.
f st 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ư.
x ps
là biến xác định vị trí, nhận giá trị 1 hay 0 tuỳ thuộc vvào
à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. Ta đi đến bài toán quy
hoạch nguyên phi tuyến:
P
N
P
ps
ps
ps
ps
∑∑d x
∑∑a x
p =1 s =1
P
N
is
ps
ps
P
N
N
p
pq
q st p
ps
s qt
+ λ p∑
=1 ∑
q =1 s =1 t =1
∑∑c f x x →min
≥ bi , i =1, 2, ..., M
p =1 s =1
N
∑ x
ps
ps
≤1, p =1, 2, ..., P
s =1
x ps
ps ∈{0, 1}, p =1, 2, ..., N .
2.7. Tìm tập ổn định trên đồ thị
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.
14
---------------------------------------------------------------------------------------------Thuật toán cộng Balas
Ta thêm vào một biến 0-1:
=1 nếu đỉnh
x j
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à:
n
∑ x j
→max
j =1
xi + x j ≤1 ∀(i, j )∈ E
x j ∈{0, 1}, j =1, 2, ..., n.
Nếu đỉnh j có trọng số
c j
>0 thì ta có bài toán tìm tập ổn định có
trọng số lớn nhất:
n
∑c j x j
→max
j =1
xi + x j ≤1 ∀(i, j )∈ E
x j ∈{0, 1}, j =1, 2, ..., n.
2.8. Bài to
toán tì
tìm sắc tố
tố
Tìm số màu tối thiểu để tô mọi đỉnh của đồ thị sao cho hai đỉnh kề nhau
có màu khác nhau. Giả sử đồ thị
G = (V , E ) , V
là tập n đỉnh, E là tập m
cạnh. Cần tối đa n màu nếu đồ thị có n đỉnh. Đặt hai biến
yk =1
x jk
nếu màu
k
được dùng, và bằng 0 nếu trái lại.
=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à:
n
∑ y
k =1
k
→ min
n
∑ x jk =1, j =1, 2, ...,
n
k =1
+ x jk ≤ y k , ∀(i, j )∈ E , k =1, 2, ...,
y k , x jk ∈{0, 1}, k , j =1, 2, ..., n
xik
n
trong đó, ràng buộc thứ nhất biểu thị mỗi đỉnh chỉ được tô bằng một màu,
ràng buộc thứ hai biểu thị hai đỉnh kề nhau không được tô cùng một màu.
15
---------------------------------------------------------------------------------------------Thuật toán cộng Balas
2.9. 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ị
kề nhau không được tô cùng màu. Giả sử đồ thị
G
G
sao cho hai cạnh
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
yk =1 nếu màu k được dùng, và bằng 0 nếu trái lại.
x jk
aij
=1 nếu cạnh j được tô màu
=1 nếu đỉnh
i
k ,
và bằng 0 nếu trái lạ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à:
m
∑ y
k =1
k
→ min
m
x
∑
=
=1, j =1, 2, ..., m
jk
k 1
m
a x
∑
=
ij
jk
≤ y k , k =1, 2, ..., m; i =1, 2, ..., n
k 1
y k , x jk ∈{0,1}, j , k =1, 2, ..., m
trong đó, ràng buộc thứ nhất biểu thị mỗi cạnh chỉ tô một màu, ràng buộc thứ
hai biểu thị không tô cùng một màu các cạnh có chung một đỉnh.
2.10. 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.
Ứ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 j
nếu trái lại. Dạng toán học của bài toán:
=1 nếu đỉnh
j
được chọn, và bằng 0
16
---------------------------------------------------------------------------------------------Thuật toán cộng Balas
n
∑ x
j =1
j
→min
+ x j ≥1, ∀(i, j )∈ E
{0, 1}; j =1, 2, ..., n.
x j ∈
xi
2.11. Bài toán phủ
phủ cạnh
Cho đồ thị
G = (V , E )
cạnh ít nhất của đồ thị
G
,
V
là tập n đỉnh,
sao cho mỗi đỉnh thuộc
E là
V
tập m cạnh. Tìm số
đều là đầu mút của ít
nhất một cạnh đã chọn.
Ứng dụng:
- Có một pháo đài với các tháp canh ở cuối mỗi hành lang, một lính gác
ở hành lang có thể quan sát được cả hai tháp canh ở hai đầu hành lang. Hãy
tìm số lính canh ít nhất để quan sát được mọi tháp canh của pháo đài (chính là
số hành lang ít nhất để phủ được hết các tháp canh).
- 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ườ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: 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, x =1 nếu cạnh j được chọn và bằng 0 nếu
j
trái lại. Dạng toán học của bài toán:
m
∑ x j
→min
j =1
m
∑aij x j
≥1, i =1, 2, ..., n
j =1
{
}
x j ∈ 0, 1 ; j =1, 2, ..., m.
2.12.
2.1
2. Bài toán
toán ghép
ghép cặp
cặp trên
trên đồ thị
thị
17
---------------------------------------------------------------------------------------------Thuật toán cộng Balas
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:
=1 nếu đỉnh
nếu trái lại.
aij
x j
i
là một trong các đầu mút của cạnh
j
, và bằng 0
=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à:
m
∑ x j
→max
j =1
m
∑aij x j
≤1, i =1, 2, ..., n
j =1
x j ∈ 0, 1 ; j =1, 2, ..., m.
{ }
Nếu mỗi cạnh có gắn một trọng số
ghép cặp với tổng trọng số lớn nhất
c j ≥ 0
thì có thể xét bài toán tìm
m
c j x j → max
∑
j =
1
2.13. Bài toán tìm các tập hợp con
co n của một tập hợp thoả mãn một số tính
chất
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
18
---------------------------------------------------------------------------------------------Thuật toán cộng Balas
có 1000 người/tuần và 1500 triệ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.
Gọi 10 dự án tương ứng là: x1 , x2 , ....,
+
+
+
+
+
+
x10
+
. Khi đó, ta có
+
70 x1 50 x2 60 x3 20 x4 10 x5 20 x6 30 x7 450
450 x8 10 x9
25
250
0 x1 + 195
195 x2 + 200
200 x3 + 70 x4 + 30 x5 + 40 x6 + 10
100
0 x7 + 170 x8 + 40 x9
+
→
40 x10
max
+ 120 x10 ≤ 1000
40
400
0 x1 + 30
300
0 x2 + 35
350
0 x3 + 100
100 x4 + 70 x5 + 70 x6 + 250 x7 + 250
250 x8 + 100 x9
+ 200 x10 ≤ 1500
x j ∈ { 0,1} , j = 1, 2, ...,10.
Chương 2
THUẬT TOÁN CỘNG BALAS
1. PHÁT BIỂU BÀI TOÁN
Dạng tổng quát của bài toán quy hoạch tuyến tính với biến 0-1 có thể
phát biểu như sau:
Tìm x , làm cực tiểu (cực đại)
c′ x′ ,
( 1′
)
thoả mãn
( 2′ )
A′ x′ ≥ b′ ,
x j′
= 0 hoặc 1, ( j ∈N )
)
trong đó x ′ = ( x′ j ) là véc tơ cột n - thành phần,
c ′ = (c j′ ) là véc tơ hàng n - thành phần,
A′ = (aij′ )
b ′ = (b j′ )
( 3′
là ma trận cỡ q × n ,
là véc tơ cột
q
thành phần,
với Q ={1,2,..., q}; N ={1,2,..., n} .
Tuy nhiên, ta sẽ xét bài toán có dạng đơn giản hơn, đó là tất cả các ràng
buộc là bất phương trình dạng ≤, và tất cả hệ số của hàm mục tiêu (bài toán
19
----------------------------------------------------------------------------------------------
Thuật toán cộng Balas
cực tiểu) là không âm. Bất cứ bài toán dạng ( 1′), ( 2′ ), ( 3′ ) có thể đưa về
dạng này bởi phép biến đổi như sau:
(a) Thay tất cả các ràng buộc đẳng thức bởi 2 ràng buộc bất đẳng thức
(b) Nhân −1 với tất cả các ràng buộc dạng bất đẳng thức ≥
(c) Đặt
Đặt
x j
x j,
=
,
1 − x j
Với sự biến đổi này và đưa thêm véc tơ y gồm m thành phần không
âm, bài toán có thể phát biểu lại như sau:
Tìm x sao cho
z = cx = min,
(1)
thoả mãn
A
Ax
x + y = b
x j
,
(2)
=0 hoặc 1, ( j ∈N )
y ≥0
(3)
,
(4)
trong đó, c ≥ 0 và x, c ,
A, b
thu được từ
x′, c′, A′, b′
trong phép mô tả
ở trên. Chiều của véc tơ x và c là n . Véc tơ b có chiều là m , với
M ={1, 2, ..., m}
,
m ≥q
( vì một ràng buộc đẳng thức biến thành hai ràng
buộc bất đẳng thức).
Bài toán gồm (1), (2), (3) và (4) gọi là bài toán P . Gọi
a j
là cột thứ j
của ma trận A .
Một véc tơ ( n + m ) chiều
P
u
= ( x, y)
được gọi là nghiệm (solution) của
nếu nó thoả mãn (2) và (3); gọi là nghiệm chấp nhận được (feasible
solution) nếu nó thoả mãn (2), (3) và (4); gọi là nghiệm (chấp nhận được) tối
ưu (optimal solution) nếu nó thoả mãn (1), (2), (3) và (4).
2. TƯ TƯỞNG CƠ BẢN CỦA THUẬT TOÁN
Gọi P s là bài toán xác định bởi (1), (2), (4) và ràng buộc
20
---------------------------------------------------------------------------------------------Thuật toán cộng Balas
x j ≥ 0, ( j ∈N )
(3a)
x j =1, ( j ∈J s )
(3 bs )
trong đó
J s là
tập con của
N .
Đặt J 0 =
, và như vậy
0
P
là bài toán xác
định bởi (1), (2), (3a) và (4).
Tư tưởng cơ bản của
của thuật toán như
như sau: ta bắt đầu với bài toán
toán quy
hoạch tuyến tính thông thường
P 0
với
u 0 = ( x 0 , y 0 ) = (0, b)
, hiển nhiên
u0
là
phương án đối ngẫu chấp nhận được của P 0 (do c ≥ 0 ). Cơ sở tương ứng của
u0
là ma trận đơn vị I (
mỗi
i
nào đó sao cho
a j1
sao cho
a j1
m)
=(ei ), (i =1, 2, ..., m)
y i ≤ 0
,
ei
là véc tơ đơn vị thứ i . Với
ta chọn theo một quy tắc nhất định một véc tơ
< 0 để đưa vào cơ sở. Nhưng thay vì đưa
a j1
vào vị trí của
véc tơ ei trong cơ sở như trường hợp trong phương pháp đơn hình đối ngẫu,
ta thêm vào P 0 ràng buộc x j = 1 , và viết nó dưới dạng cải tiến
x j1 + y m+1 =
1
−1 , trong đó
y m+1
là biến giả tạo. Như vậy, ta thu được bài toán
định nghĩa ở trên với
J 1
= { j1},
P 1
như
tức là bài toán bao gồm (1), (2), (3a), (4) và
ràng buộc bổ sung
x j1 = 1 .
(3 b1
)
Dễ dàng thấy rằng, tập
x j = 0 ( j ∈ N ), yi = bi (i ∈M ), y m+1 = −1
I
1
+
( m 1)
là một
= (e ),
i
nghiệm đối ngẫu chấp nhận được của P . Trong cơ sở mở rộng
( i =1,2,..., m +1 ), véc tơ đơn vị thứ m + 1 tương ứng với ym+1 . Thay cho việc
đưa
em +1
mới của
vào cơ sở ta sẽ đưa
P 1
biến giả tạo
a j1
vào cơ sở và như vậy x j = 1 trong ngiệm
và hiển nhiên nghiệm vẫn còn là đối ngẫu chấp nhận được. Vì
y m +1
sẽ trở thành 0 và không đóng vai trò gì về sau, nó có thể bỏ
đi và nghiệm mới được viết là
1
u1 = ( x1 , y1 ) = ( x11 ,..., x1n , y11 ,..., y1m ) .
21
---------------------------------------------------------------------------------------------Thuật toán cộng Balas
Do dạng đặc biệt đơn giản của ràng buộc bổ sung, phép xoay bảng đơn
b − a j1 .
hình xung quanh phần tử -1 thục chất bao gồm phép cộng đại số
vậy, nghiệm đối ngẫu chấp nhận được mới
1
1
1
u =( x , y )
Như
của P 1 là
( j = j1 ),
)),
0 ( j ∈( N − j1 )),
1
x j1 =
y1i = bi − aij1
( i ∈ M ).
Vì các phép toán thực hiện tại mỗi bước lặp bao gồm chỉ có phép cộng
và phép trừ nên ta gọi thuật toán là thuật toán cộng.
Nếu véc tơ nghiệm
u1
vẫn có các thành phần âm, thì theo như những
quy tắc chỉ ra ở trên, ta chọn một véc tơ a j khác để đưa vào cơ sở và ta bổ
2
sung vào
ym+2
P 1
một ràng buộc mới
x j2 =1
dưới dạng
− x j2 + ym+2
= −1 ,
là biến giả tạo khác. Như vậy bài toán P 2 bao gồm (1), (2), (3a), (4) và
tập ràng buộc phụ (3 b2 ) tạo bởi từ
x j1 = 1 , x j2 =
j ∈( N \{ j1 })], yi = bi − aij ( i ∈ M ), ym+2 =
1
1. Tập
x j1 = 1 , x j =
−1 là nghiệm đối ngẫu chấp
nhận được của P 2 . Bây giờ, véc tơ a j được đưa vào vị trí của
2
nhận giá trị 1 trong nghiệm mới của
P 2 ,
đối ngẫu chấp nhận được. Vì biến giả tạo
em+2
và x j
2
nghiệm mới này hiển nhiên vẫn là
ym+2
không đóng vai trò gì về sau
(luôn luôn bằng 0) nên có thể loại bỏ nó (giống như trường hợp
nghiệm đối ngẫu chấp nhận được mới của P 2 là u
2
= ( x 2 , y 2 ) ,
y m +1 ),
và
trong đó
( j = j1 , j2 )
1
0 { j ∈ ( N − { j1 , j2 } )} ,
x j =
yi2 = y1i − aij2
2
0[
( i ∈ M ).
Cứ tiếp tục lặp lại thủ tục này cho đến khi nhận được hoặc một nghiệm
u s với
các thành phần không âm hoặc chứng tỏ là bài toán
nghiệm.
s
P
không tồn tại
22
---------------------------------------------------------------------------------------------Thuật toán cộng Balas
Nếu thu được một véc tơ nghiệm không âm
u
s
=( x
s
, y s
) thì nó chính là
nghiệm chấp nhận được tối ưu của P s .
Như vậy, nghiệm có thể hoặc không có thể là nghiệm tối ưu đối với bài
toán P , nhưng nó luôn là nghiệm chấp nhân được của P .
Tiếp theo, thủ tục này được bắt đầu lại từ một nghiệm
u
p
( p < s ).
Nghiệm này được chọn theo quy tắc nhất định cùng vời những quy tắc chọn
các véc tơ đưa vào cơ sở, cho đến khi nhận được nghiệm chấp nhận được
khác u t thỏa mãn z < z ( z p là giá trị của z tại u p ) ( p = 0, 1, …) hoặc
t
p
chứng tỏ không tồn tại nghiệm như thế.
Dãy u q ( q = 0, 1, …) hội tụ tới nghiệm tối ưu.
Thủ tục này cũng có thể được gọi là thuật toán giả đối ngẫu, bởi vì như
trong phương pháp đơn hình đối ngẫu nó bắt đầu với một nghiệm đối ngẫu
chấp nhận đựoc và sau đó xấp xỉ hữu hiệu miền chấp nhận được của bài toán
gốc trong khi luôn đảm bảo tính đối ngẫu chấp nhận được của nghiệm. Tuy
nhiên, không khi nào một bước lặp thực sự của đơn hình đối ngẫu được thực
hiện, tiêu chuẩn đơn hình đối ngẫu để chọn một véc tơ đưa vào cơ sở cũng
không được sử dụng, cũng không có bất kỳ một véc tơ nào
ei
( i =1,2,...,
m
)
bị loại khỏi cơ sở theo nghĩa được thay thế bởi một véc tơ khác. Tất cả sự
thay đổi trong cơ sở xảy ra qua việc bổ sung các dòng đơn vị và các cột đơn
vị mới hoặc loại chúng đi, điều quan trọng nhất là ma trận hệ số
A
giữ
nguyên không thay đổi. Như vậy, các dòng đơn vị và các cột đơn vị mới được
đưa vào tại mỗi bước lặp không đóng bất kỳ vai trò nào trong bước lặp nên
chúng ta không cần giữ lại và cũng không cần viết ra rõ ràng.
23
---------------------------------------------------------------------------------------------Thuật toán cộng Balas
Hình 1
Thực chất của thuật toán cộng sẽ được chỉ ra tốt nhất bằng việc so sánh
với những gì được làm nếu ta liệt kê tất cả các nghiệm tồn tại. Vì các biến của
24
---------------------------------------------------------------------------------------------Thuật toán cộng Balas
P
chỉ nhận giá trị 0 hoặc 1 nên tập U ={u} tất cả các nghiệm của (2) và (3)
tất nhiên là hữu hạn, và số phần tử của tập
trình liệt kê tất cả
2n
U
là
2n ,
n là số biến
x j
. Quá
tổ hợp có thể (tức là, các nghiệm) được minh họa cho
bài toán với 5 biến ở trong Hình 1. Hình vẽ có 5 mức. Bắt đầu từ đỉnh, tại
mỗi mức ta lần lượt gán các giá trị 0 và 1 đến biến ứng với số của mức. Tất cả
những điểm dọc theo đường thẳng chạy xuống ở phía bên trái biểu diễn cùng
một nghiệm, trong khi tất cả những điểm dọc theo đường thẳng chạy xuống ở
phía bên phải biểu diễn các nghiệm khác nhau. Tiếp tục thủ tục này cho đến
khi tất cả các biến được gán giá trị 0 và 1, ta thu được tập hợp đầy đủ
5
2 = 32
nghiệm.
Thực chất thuật toán cộng của ta là một tập những quy tắc mà theo đó
ta có thể nhận được nghiệm tối ưu (nếu nghiệm như thế tồn tại) bằng cách đi
theo một số nhánh của cây trong Hình 1, trong khi bỏ qua không xét hầu hết
các nhánh. Bắt đầu từ tình huống tất cả n biến đều bằng 0, thuật toán của ta
bao gồm một quá trình có tính hệ thống để gán giá tri 1 cho một số biến sao
cho sau khi liệt kê một phần nhỏ của toàn bộ
2n
tổ hợp có thể, ta thu được
hoặc một nghiệm tối ưu hoặc không tồn tại nghiệm chấp nhận được như vậy.
Điều này đạt được qua tập những quy tắc xác định tại mỗi bước lặp: (a) tập
con các biến là ứng cử để gán giá trị 1; (b) biến được chọn trong số những
ứng cử. Tại một giai đoạn nào đó của quá trình, có thể trở nên rõ ràng rằng
hoặc nhận được một nghiệm tối ưu hoặc không có nghiệm tối ưu với giá trị 1
cho tất cả các biến đã được gán giá trị này. Khi đó, thủ tục dừng và được bắt
đầu lại từ một giai đoạn trước. Nói cách khác, những quy tắc của thuật toán
đồng nhất với các nhánh của cây lời giải mà chúng có thể được bỏ qua, bởi vì
chúng không dẫn đến một nghiệm chấp nhận được tốt hơn nghiệm đã nhận
được. Như vậy, trong Hình 1, minh họa
h ọa ví dụ số đầu tiên được trình bày trong
phần cuối, chỉ dòng kẻ tô đậm là được xét và những nghiệm tương ứng được
25
---------------------------------------------------------------------------------------------Thuật toán cộng Balas
kiểm tra. Điều này nghĩa là, để thay cho tất cả
5
2 = 32
nghiệm,, chỉ 3 nghiệm
nghiệm
sau đây được xét
u0
với x
u1
với x1
2
u
0
j
j
( j =1, 2, ...,
=0
5
)
=
1
( j = 3)
0 ( j =1, 2, 4, 5)
với x =
2
j
1 ( j = 2, 3)
0 ( j = (1, 4, 5)
Và nghiệm cuối cùng tìm thấy là tối ưu. Dấu hiệu dừng của thuật toán
(biểu thị bởi đường tròn tại điểm cuối của đường kẻ tô đậm) chỉ ra chắc chắn
rằng không có nghiệm chấp nhận được tốt hơn nghiệm đã nhận được. Hiệu
quả của thuật toán phụ thuộc phần lớn vào hiệu quả của dấu hiệu dừng này,
tức là trên số lượng nhánh cần xét. Về sau này sẽ chỉ ra chi tiết hơn, trong đa
số trường hợp thuật toán thành công nhờ tập con các nghiệm cần kiểm tra
không lớn lắm so với tập nghiệm đầy đủ.
3. CÁC ĐỊNH NGHĨA VÀ KÍ HIỆU
Ta xét bài toán
P .
Vì mỗi ràng buộc của tập (2) bao gồm đúng một
thành phần của
y
nhất bởi tập J
={j | j ∈ N,
N, x jp =1} .
p
nên một nghiệm
( j ∈ J p )
0
{ j ∈ ( N − J )}
yi p = bi −
(5)
p
thì
được xác định một cách duy
Do đó, nếu
1
x j =
p
u p = ( x p , y p )
∑aij ( i ∈ M ).
j∈ J
(6)
p
Như đã chỉ ra, thuật toán cộng sinh ra một dãy nghiệm. Ta kí hiệu phần
tử thứ s của dãy này bởi
trong đó,
s
s
s
u = u( j1 ,..., jr ) = ( x , y )
(7)
26
---------------------------------------------------------------------------------------------Thuật toán cộng Balas
{ j1 , . . j. r ,} = J s = { j | j ∈N , x
s
j
=1
},
(8)
trong khi z s sẽ biểu diễn giá trị của hàm mục tiêu (1) tại
Dãy bắt đầu với
Hiển nhiên, J
0
tương ứng J 0 = φ , tức là x
u0
0
u s .
=0
,
y
0
=b
và z 0 = 0.
⊂ J p , ∀p ≠ 0 .
Tập giá trị hàm mục tiêu với nghiệm chấp nhận được thu được cho đến
bước lặp s sẽ được kí hiệu là
Z s =
{ z p | p ≤ s , u p ≥ 0 }
(9)
Nếu tập này khác tập rỗng, phần tử nhỏ nhất của nó sẽ được gọi là trị
tốt nhất đối với
u s .
Nếu Z s
hiệu trị tốt nhất đối với
u
s
s )
z *(
= φ ,
thì trị tốt nhất bằng + ∞ . Như vậy, ta sẽ kí
là
Z = φ ,
∞,
s
min z p , Z s ≠ φ .
=
Z s
(10)
Tại mỗi bước lặp s +1 , véc tơ mới được đưa vào cơ sở sẽ được chọn từ
một tập con của { a
j
u s .
Ta sẽ kí hiệu
| j ∈N
N s
} mà được gọi là tập véc tơ cải tiến đối với nghiệm
là tập những chỉ số
tương ứng này và ta sẽ định
j
nghĩa N s chính xác về sau (tất nhiên N s ⊂ N ).
Bây giờ, ta định nghĩa các giá trị liên quan đến tiêu chuẩn chọn một véc
tơ đưa vào cơ sở. Với mỗi nghiệm
u
s
và với mỗi
j ∈ N s ,
ta định nghĩa các
giá trị
∑ ( y si − aij ),
v s j = i∈M js −
0,
( j ∈ N s , M j −
≠ φ )
M s j −
= φ )
s
( j ∈ N s ,
(11)
trong đó
M j s− = {i | y si − a ij < 0} .
Ý nghĩa của giá trị này là:
nghiệm
u s
+1
,
u s +1
s
v j*
(12)
là tổng của các thành phần âm của véc tơ
thu được từ véc tơ nghiệm
u
s
bởi đặt J s +1 = J s {j*} .
27
---------------------------------------------------------------------------------------------Thuật toán cộng Balas
Ta có thể nói giá trị
dùng như một tiêu chuẩn để chọn véc tơ mới
s
v j
đưa vào cơ sở. Tiêu chuẩn này là hiệu quả, tuy nhiên, cần nhấn mạnh rằng nó
được chọn theo kinh nhgiệm, tiêu chuẩn khác có thể tốt hơn. Sự lựa chọn tiêu
chuẩn đưa một véc tơ mới vào cơ sở tất nhiên có ảnh hưởng nhiều đến hiệu
quả của thuật toán, nhưng không ảnh hưởng đến tính hữu hạn của thuật toán.
Trong thuật toán cộng, các giá trị
k
v j
gắn liền với một nghiệm
đó bị xóa bỏ trong các bước lặp theo quy tắc nào đó. Đặt
j
nghiệm
( C k k = 0 theo định nghĩa).
u
s
mà giá trị
ứng với nghiệm
của những
v jk
u k đã
s
C k
u k
nào
( k ≤ s ) là tập
bị xóa trước
trước khi thu được
Kí hiệu
C s
là tập của những
p < s
và J
p
⊂ J s
a j
C
s
p
p| J p ⊂J s
j
mà giá trị
v jk
ứng với bất kì một nghiệm
đã được xóa trước khi thu được nghiệm
Đối với nghiệm
sao cho nếu
=
u s
ta định nghĩa một tập
D
=
{
| j ∈( N − C ) ,
Nghĩa là, với j ∈ D s ta có
s
những j ∈( N − C ) ,
s
u s :
c j ≥ z *( s ) − z s
j ∈( N − C s )
là nếu sang
sang bước
bước lặp s +1 ta chọn
z *( s ) .
u s .
D s của
}
s
hơn trị
p
{j} , thì giá trị hàm mục
được đưa vào cơ sở, tức là J s +1 = J s {j}
tiêu không nhỏ hơn trị tốt nhất ứng với
u
(13)
sao cho
,
*( s )
c j ≥ z
x j =1
− z s
(14)
c j + c j ≥ z *( s )
, tức
hay j∑
∈ J
s
thì trị hàm mục tiêu sẽ không tốt
Vì thế với những j ∈ D s không được chọn để đưa vào tập
(tập các vectơ cải tiến đối với nghiệm
u s ).
N s
28
---------------------------------------------------------------------------------------------Thuật toán cộng Balas
Ngoài ra, tập
sao cho, nếu
a j
của những
E s
j ∈ [ N − (C
s
D s ) ]
sẽ được định nghĩa
{j} , thì không có
được vào cơ sở, tức là J s +1 = J s {j}
âm mà
s
yi
được tăng giá trị:
E s ={ j
thì
s
aij ≥ 0
+1
y s
i
D s ) ], y si ≤ 0 ⇒ aij ≥ 0 }
(15)
càng âm hơn
s
yi
. Thật vậy, nếu đưa
−( ∑aij
j∈
J s
Do vậy, với những
aij
+ aij ) = bi − j∑
∈
J
−aij
a j
s
j ∈ E
s
ij
không được chọn đưa vào N s .
Rõ ràng, N s =
D s E s ) .
với
với bất
bất kì nghi
nghiệm
ệm chấp
chấp nhận
nhận được
được u s .
j ∈ ( N k − C k s )
sao cho nếu
a j
u k và u s
={ j|
( k < s ) một
đựoc đưa vào cơ sở, tức là
thì z s +1 không nhỏ hơn trị tốt nhất ứng với
s
Dk
đó là
(16)
Tương tự, với D s ta định nghĩa cho cặp gnhiệm
J s +1 = J k {j}
u s ,
mà j thuộc vào
N s = N − (C s
tập của những
vào
= y si −a < y si < 0.
Bây giờ, ta sẽ định nghĩa tập các véc tơ cải tiến cho lời giải
tập của những
a j
thì
yi s +1 = bi
s
j ∈ E
Nghĩa là, với
cơ sở mà
j ∈ [ N − (C
|
u s :
*( s )
− z k }
j ∈ ( N k − C k s ) , c j ≥ z
(17)
Cuối cùng, khi cho một cặp nghiệm u s và u k sao cho u s = u( j1 ,..., jr )
và u k = u ( j1 ,..., jr −h ) , (1 ≤ h ≤ r , J k ⊂ J s ), ta định nghĩa tập của những véc tơ
cải tiến đối với nghiệm
u
k
sau bước lặp s . Đó là tập của những
a j
mà
j
nằm trong
N sk = N k − (C sk Dk s )
(18)
Những tập định nghĩa bởi (16) và (18) đóng vai trò rất quan trọng trong
thuật toán. Mỗi khi tìm được nghiệm
nghiệm
u s thì
u
s
, chỉ những véc tơ cải tiến cho
mới được xét để đưa vào cơ sở. Mỗi khi tập véc tơ cải tiến cho
29
---------------------------------------------------------------------------------------------Thuật toán cộng Balas
nghiệm
u
bằng rỗng, điều này được giải thích như một tín hiệu dừng, có
s
nghĩa là không có một nghiệm chấp nhận được
z t < z *( s ) .
u t
sao cho
Trong những trường hợp như vậy ta quay lại nghiệm
u
J s ⊂ J t
k
và
được xác
định theo một quy tắc nào đó và với bất kì một nghiệm như vậy thì chỉ những
véc tơ cải tiến của nghiệm u k sau bước lặp s mới được xét để đưa vào cơ sở.
4. PHÁT BIỂU THUẬT TOÁN CỘNG
Ta bắt đầu với nghiệm chấp nhận được
,
,
0
0
x = 0 y =b z 0
u0
=0
(19)
Giả sử sau s bước lặp ta thu được nghiệm
s
x j
yi
s
mà
u s = u ( j1 ,..., j r )
( j ∈ J s )
1,
=
0, { j ∈ ( N − J s )}
mà
(20)
aij
, ( i ∈ M )
= bi − j∑
∈ J
s
và
z s =
∑c j
(21)
j∈ J s
Khi đó, ta làm theo quá trình như sau:
Bước 1. Kiểm tra
1a. Nếu
s
yi
cả
( i ∈ M ).
≥ 0 ( i ∈ M ), tức là
z = z *( s )
s
s
yi
u s là
nghiệm chấp nhận được, thì đặt
k < s
D s
k
v jk
như định nghĩa bởi (17) với mọi
. Tính các tập
với j ∈ Dk s , k < s và chuyển sang Bước 5.
Nếu điều này xảy ra đối với trường hợp
u0
thì
u0
. Xóa bỏ tất
là một nghiệm tối ưu
và thuật toán dừng.
< 0, chuyển sang Bước 2.
1b. Nếu tồn tại
Bước 2. Tìm các véc tơ cải tiến ứng với nghiệm
N s
i1
sao cho
theo định nghĩa (16).
y s
i1
u
s
nhờ xác định tập
30
---------------------------------------------------------------------------------------------Thuật toán cộng Balas
2a. Nếu N s =
, tức là không có các véc tơ cải tiến đối với
u
s
, chuyển
sang bước 5.
2b. Nếu N s ≠ φ , chuyển sang Bước 3.
Bước 3. Kiểm tra các bất đẳng thức
∑aij− ≤ y si , ( i | y si < 0 )
j∈ N
(22)
s
trong đó
ai−
j
là thành phần âm của A .
3a. Nếu tồn tại i1 ∈M mà (22) không đúng, tức là
s
yi1 <
1
u s không
chấp nhận được đối với bài toán P , chuyển sang Bước 5.
3b. Nếu tất cả các quan hệ (22) đều là bất đẳng thức chặt, tính các giá
s
v j
như định nghĩa bởi (11) và (12) với mọi j ∈ N s , hãy chọn j s +1 sao cho
v s j s +1 = max v s j
s
v j s +1
và chuyển sang Bước 8.
3c. Nếu tất cả quan hệ (22) đúng và tồn tại một tập con
cho quan hệ (22) là đẳng thức với
i ∈M s
M s
của
M
sao
thì chuyển sang Bước 4.
Bước 4 . Kiểm tra quan hệ
∑c j
*( s )
< z
− z s
(24)
j∈ F s
trong đó F s là những tập j ∈ N s mà
(23)
j∈ N s
xóa bỏ
<0
j∈ N s
khi đó,
trị
−
∑ai j
4a. Nếu
Nếu (24) đúng, xóa
của chúng). Đặt J s +1 = J s
s
v j
với ít nhất một
i ∈M s .
với tất cả j ∈ F s (không cần tính giá trị số
F s , tính trị hàm mục tiêu
z s +1 = z s +
aij < 0
∑c j
j∈ F s
(25)
và của các biến nới lỏng
y si +1 = y si −
∑aij , ( i ∈ M )
j∈ F s
(26)