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

THUẬT TOÁN CỘNG BALAS LUẬN VĂN TOÁN HỌC

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 (738.39 KB, 64 trang )

 

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




cii = ∞

cij



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 >



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



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



đượ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

 




→ 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



→ 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

,



là tập n đỉnh,

sao cho mỗi đỉnh thuộc

 E là


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



 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 ),



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


 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





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í


 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ị



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



sau bước lặp  s . Đó là tập của những

a  j



  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 




đượ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



u s = u (  j1 ,...,   j r  )

( j ∈  J  s )
 1,
=
0, {  j ∈ ( N  −  J  s )}


(20)

aij
, ( i ∈ M  )
= bi −   j∑
∈ J 
 s


 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


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



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)


×