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

luận văn về bài toán quy hoạch nguyên tuyến tính

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 (530.23 KB, 75 trang )


- 1 -

Mục Lục
Nội dung Trang
Mở đầu 2
Chơng 1: Các kiến thức bổ trợ
1.1. Bài toán quy hoạch tuyến tính tổng quát 5
1.2. Thuật toán đơn hình giải bài toán quy hoạch tuyến tính 7
1.3. Thuật toán đơn hình đối ngẫu giải bài toán quy hoạch tuyến tính chính tắc 9
Chơng 2: Bài toán quy hoạch nguyên tuyến tính
2.1. Bài toán tối u rời rạc 19
2.2. Một số thuật toán giải bài toán quy hoạch nguyên tuyến tính 26
Chơng 3: Bài tập vận dụng
3.1. Bài tập vận dụng thuật toán cắt Gomory 50
3.2. Bài tập vận dụng thuật toán Land - Doig 58
3.3. Bài tập đa bài toán về bài toán cái túi để giải 64
Tài liệu tham khảo 74














- 2 -

Lời Nói đầu
1. Lí do chọn đề tài
Tối u hoá là một lĩnh vực toán học nghiên cứu lý thuyết về thuật toán giải
các bài toán cực trị. Nó là một phần kiến thức không thể thiếu đợc cho những
ngời làm việc trong các lĩnh vực ứng dụng của khoa học và kỹ thuật. Trong lý
thuyết tối u, một trong những lớp bài toán đầu tiên đợc nghiên cứu trọn vẹn cả
về phơng diện lý thuyết lẫn thuật toán là bài toán quy hoạch tuyến tính. Ngay từ
khi ra đời, quy hoạch tuyến tính đ chiếm một vị trí hết sức quan trọng; nó là
môn toán ứng dụng rất cần thiết đối với sinh viên thuộc nhiều ngành học khác
nhau. Các thuật toán giải bài toán quy hoạch tuyến tính không những giúp giải
quyết các bài toán quy hoạch tuyến tính tổng quát cỡ lớn mà nó còn là điểm xuất
phát quan trọng trong việc nghiên cứu lý thuyết giải các bài toán tối u tổng
quát.
Trong lý thuyết tối u ta gặp một lớp bài toán mà đối tợng của nó không
thể chia cắt nhỏ tuỳ ý, trong lớp bài toán này tất cả (hoặc một bộ phận) các biến
chỉ nhận giá trị nguyên, đó là bài toán quy hoạch nguyên. Trong bài toán quy
hoạch nguyên, nếu hàm mục tiêu và hệ ràng buộc là các hàm tuyến tính thì ta có
bài toán quy hoạch nguyên tuyến tính. Đối với các bài toán quy hoạch nguyên
tuyến tính, các thuật toán giải bài toán quy hoạch tuyến tính tổng quát cơ bản
hầu hết không thể sử dụng đợc nữa do yêu cầu về tính nguyên của các biến số.
Năm 1958 Gomory (nhà toán học ngời mỹ) đ công bố thuật toán cắt nối tiếng
để giải bài toán quy hoạch nguyên tuyến tính mở đầu cho sự ra đời và phát triển
của lý thuyết bài toán quy hoạch nguyên. Tiếp đó, một số kết quả nghiên cứu về
tập nghiệm và lời giải cho lớp bài toán này lần lợt đợc ra đời. Tuy xuất hiện
sau thuật toán đơn hình giải bài toán quy hoạch tuyến tính gần ba thập kỷ nhng
các thuật toán giải bài toán quy hoạch nguyên tuyến tính đ có những đóng góp
không nhỏ cho lĩnh vực nghiên cứu lý thuyết tối u tổng quát.
Bài toán quy hoạch nguyên tuyến tính là phần kiến thức khá mới mẻ đối

với sinh viên s phạm toán. Với mong muốn khai thác sâu kiến thức môn quy
hoạch tuyến tính nói riêng; mở rộng tầm hiểu biết của bản thân về tri thức toán

- 3 -

nói chung, việc nghiên cứu lý thuyết bài toán quy hoạch nguyên tuyến tính là hết
sức cần thiết.
Vì những lý do trên chúng tôi chọn "Về bài toán quy hoạch nguyên
tuyến tính" làm đề tài nghiên cứu.
2. Mục đích nghiên cứu
Hệ thống lại một cách chi tiết các vấn đề lý thuyết về bài toán quy hoạch
nguyên tuyến tính; xây dựng hệ thống bài tập vận dụng, để từ đó thấy đợc tầm
quan trọng và tính thiết thực của lý thuyết bài toán quy hoạch nguyên tuyến tính
đối với các lĩnh vực khoa học kỹ thuật, các hoạt động thực tiễn của đời sống x
hội.
3. Nhiệm vụ nghiên cứu
Nghiên cứu các kiến thức liên quan đến bài toán quy hoạch tuyến tính
tổng quát, một số thuật toán giải bài toán quy hoạch tuyến tính.
Nghiên cứu các phơng pháp giải bài toán quy hoạch nguyên tuyến tính.
Nghiên cứu một số bài tập vận dụng phơng pháp giải bài toán quy hoạch
nguyên tuyến tính.
4. Đối tợng và phạm vi nghiên cứu
Đối tợng nghiên cứu: Lý thuyết tối u hoá.
Phạm vi nghiên cứu: Nghiên cứu lý thuyết bài toán quy hoạch nguyên tuyến tính.
5. Phơng pháp nghiên cứu
Phơng pháp nghiên cứu lý luận: Đọc các tài liệu về môn quy hoạch tuyến
tính, các tài liệu liên quan đến tối u hoá, các khoá luận tốt nghiệp về quy
hoạch tuyến tính của các khoá trớc ở trờng Đại học Hùng Vơng.
Phơng pháp lấy ý kiến chuyên gia: Tham khảo ý kiến của giảng viên
hớng dẫn và các giảng viên dạy tối u hoá; quy hoạch tuyến tính của

trờng.
Phơng pháp tổng kết kinh nghiệm: Tổng kết kinh nghiệm của bản thân
qua quá trình học học phần quy hoạch tuyến tính và của các bạn sinh viên
đ học tối u hóa của các lớp s phạm và các lớp quản trị kinh doanh
trong trờng.

- 4 -

6. ý nghĩa khoa học và thực tiễn
Sản phẩm khoa học: Hệ thống lại một số kiến thức của lý thuyết tối u tuyến
tính, giới thiệu một số thuật toán giải bài toán quy hoạch nguyên tuyến tính, xây
dựng hệ thống bài tập vận dụng lý thuyết đ xây dựng.
Sản phẩm thực tiễn: Khóa luận là tài liệu tham khảo cho sinh viên toán, tin học
và sinh viên các ngành kinh tế, quản trị kinh doanh.
7. Bố cục khoá luận
Khóa luận gồm 74 trang, ngoài phần mục lục, mở đầu, kết luận và tài liệu
tham khảo nội dung chính của khoá luận bao gồm 3 chơng
Chơng 1. Các kiến thức bổ trợ
1.1. Bài toán quy hoạch nguyên tuyến tính tổng quát
1.2. Thuật toán đơn hình giải bài toán quy hoạch tuyến tính
1.3. Thuật toán đơn hình đối ngẫu giải bài toán quy hoạch tuyến tính
chính tắc
Chơng 2. Bài toán quy hoạch nguyên tuyến tính
2.1. Bài toán tối u rời rạc
2.2. Một số thuật toán giải bài toán quy hoạch nguyên tuyến tính
Thuật toán cắt của Gomory
Phơng pháp nhánh cận (Thuật toán Land - Doig)
Phơng pháp phơng trình truy toán của quy hoạch động giải bài
toán cái túi
Chơng 3. Bài tập vận dụng

3.1. Bài tập vận dụng thuật toán cắt của Gomory
3.2. Bài tập vận dụng thuật toán Land - Doig
3.3. Bài tập đa bài toán về bài toán cái túi để giải





- 5 -

CHƯƠNG 1
CáC KIếN THứC Bổ TRợ

1.1. Bài toán quy hoạch tuyến tính tổng quát
1.1.1. Bài toán quy hoạch tuyến tính tổng quát
Tìm vectơ
1 2
( , , , )
n
x x x x
=
sao cho hàm f(x) =
1
n
j j
j
c x
=

min với các điều

kiện:

1
1
2
1
3
1
1
2
3
, (1.1)
, (1.2)
, (1.3)
0, (1.4)
, (1.5)
0, (1.6)
n
ij j i
j
n
ij j i
j
n
ij j i
j
j
j
j
a x b i I

a x b i I
a x b i I
x j J
x R j J
x j J
=
=
=







=




















Với I
1
I; I
2


I; I
3
I; I={ 1, , m}; I
1
I
2
I
3
= I; I
i
I
k
=ỉ; i k; i, k = 1,2,3.
J
1
J; J
2
J; J
3

J; J = { 1, , n}; J = J
1
J
2
J
3
,

J
i
J
k
= ỉ; I k; i,k = 1,2,3.
b
i
,

c
j
, a
ij
là các hằng số cho trớc.
Trong bài toán trên:
f đợc gọi là hàm mục tiêu.
Mỗi hệ thức ở (1.1), (1.2), (1.3), (1.4), (1.5), (1.6) gọi là một ràng buộc.
Mỗi ràng buộc (1.1), (1.2), (1.3) gọi là ràng buộc cỡng bức (hay cơ bản).
Ràng buộc (1.4), (1.5), (1.6) gọi là ràng buộc tự do (hay ràng buộc dấu).
+ Mỗi vectơ
1 2
( , , , )

n
x x x x
=
R
n
thoả mn mọi ràng buộc của bài toán
gọi là một phơng án. Tập hợp tất cả các phơng án (ký hiệu D) gọi là miền ràng

- 6 -

buộc hay miền chấp nhận đợc. Phơng án làm cho hàm mục tiêu đạt cực tiểu
hoặc cực đại đợc gọi là phơng án tối u hay một lời giải của bài toán đ cho.
+ Giải bài toán quy hoạch tuyến tính là tìm phơng án tối u của bài toán
(có thể là phơng án tối u duy nhất hoặc vô số phơng án tối u) hoặc chứng tỏ
bài toán vô nghiệm.
1.1.2. Một số kí hiệu quy ớc
a) Nếu A là ma trận cỡ (m,n) thì A
i
=(a
i1
,a
i2
, ,a
in
) là vectơ dòng (ma trận
dòng) thứ i (i = 1,2, , m) của A; A
j
= (a
1j
, a

2j
, ,a
mj
) là vectơ cột (ma trận
cột) thứ j (j = 1,2, ,n) của A.
b) A
t
là ma trận chuyển vị của A.
c) Nếu A = (a
ij
) và B = (b
ij
) là hai ma trận cùng kiểu thì bất đẳng thức ma trận
A B đợc hiểu là a
ij
b
ij
với i,j.
Đặc biệt với vectơ (ma trận)
1 2
( , , , )
n
x x x x
=
thì x 0 đợc hiểu là x
j
0 j.
d) Mỗi vectơ đợc xem nh ma trận cột trong các phép tính ma trận ( nếu
không nói gì thêm hoặc không có quy ớc gì khác).
e) Biểu thức tích vô hớng của hai vectơ

1 2
( , , , )
n
x x x x
=
; y = (y
1
, y
2
, , y
n
)
đợc viết: (x, y) =
1
n
j j
j
x y
=


g) Nếu xem c và x là hai ma trận cột thì c
t
x =
1
n
j j
j
c x
=


là ma trận cấp 1 ( c
t

ma trận chuyển vị của c).
Với những quy ớc nh trên bài toán quy hoạch tuyến tính tổng quát đợc
viết gọn nh sau:
Tìm vectơ
1 2
( , , , )
n
x x x x
=
R
n
thoả mn:
f(x) = c
t
x min.

- 7 -

1
2
1
2
,
,
0,
,

i
i
j
j
A x b i I
A x b i I
x j J
x R j J



=








Trong đó A = (a
ij
) là hai ma trận cỡ (m,n).
1.1.3. Dạng chính tắc và dạng chuẩn tắc của bài toán quy hoạch tuyến tính
Dạng chuẩn tắc:
f(x) = c
t
xmin

0,

j
Ax b
x j J






Dạng chính tắc:
f(x) = c
t
x min

0,
j
Ax b
x j J
=





1.2. Thuật toán đơn hình giải bài toán quy hoạch tuyến tính
Xét bài toán quy hoạch tuyến tính chính tắc (bài toán I)

1
( ) min
n

j j
j
f x c x
=
=



1
0, 1,
n
ij j i
j
j
a x b
x j n
=

=



=


(I)

- 8 -

Bớc xuất phát: Tìm một phơng án cực biên

0
x
và cơ sở
{
}
;
j
B
B A j J
=
tơng ứng, trong đó
{
}
/
j
B
J j J A B
=
. Tìm các hệ
số khai triển
ij
a
và các ớc lợng
j

(
ij
a
: hệ số khai triển vectơ A
i

qua các
vectơ A
j
).
Bớc 1:Kiểm tra dấu hiệu tối u:
a) Nếu
0
j

j

J thì
0
x
là phơng án tối u. Thuật toán kết thúc.
b) Nếu
j

> 0 thì chuyển sang bớc hai.
Bớc 2: Kiểm tra dấu hiệu hàm mục tiêu giảm vô hạn. Với mỗi j


B
J

j

> 0 thì kiểm các hệ số khai triển
ij
a

của cột
j
A
tơng ứng.
a) Nếu tồn tại
j

> 0 mà tất cả
ij
a
0 j J thì kết luận hàm mục
tiêu giảm vô hạn trên miền ràng buộc. Bài toán không có lời giải
hữu hạn. Thuật toán kết thúc.
b) Nếu với mỗi j
B
J

j

> 0 đều tồn tại ít nhất một hệ số
0
ij
a
>

thì tiến hành tìm phơng án cực biên mới tốt hơn với cơ sở
1
( \ )
B
J J r s

=
theo quy tắc sau:
Bớc 3:
- Tìm cột xoay: Tìm
{
}
0,
s j B
max j J
= >

Cột
s
A
gọi là cột xoay (cột đa vào cơ sở ).
- Tìm dòng xoay: tìm
0 0
min , 0
r i
ij
rs ij
x x
a
a a



= = >





Dòng
r
A
gọi là dòng xoay.

- 9 -

Phần tử nằm trên giao của dòng xoay và cột xoay của bảng đơn hình đợc
gọi là phần tử xoay.
Bớc 4: Thực hiện phép biến đổi đơn hình chuyển từ phơng án cơ sở
chấp nhận đợc x sang phơng án cơ sở chấp nhận đợc
x
: Bảng đơn hình
tơng ứng với
x
(gọi tắt là bảng mới) có thể thu đợc từ bảng đơn hình
tơng ứng với x (gọi tắt là bảng cũ) theo các quy tắc biến đổi sau đây:
a) Các phần tử ở vị trí dòng xoay trong bảng mới (
rj
a
) bằng các phần
tử tơng ứng trong bảng cũ chia cho phần tử xoay:
,
rj
rj
rs
a
a j J

a
=

b) Các phần tử ở vị trí cột xoay trong bảng mới, ngoại trừ phần tử nằm
trên vị trí phần tử xoay bằng 1, còn tất cả là bằng 0.
c) Các phần tử cần tính còn lại trong bảng mới
( , )
j
ij
a

đợc tính từ
các phần tử tơng ứng trong bảng cũ theo các công thức sau:

rj
ij
ij is
rs
a
a a a
a
=
,
( )
B
i J i r

,
( )
B

j J j s



rj s
j
j
rs
a
a

=

1.3. Thuật toán đơn hình đối ngẫu giải bài toán quy hoạch tuyến tính chính tắc
1.3.1. Cơ sở chấp nhận đợc đối ngẫu
Xét bài toán quy hoạch tuyến tính dạng chính tắc (P) và bài toán đối ngẫu (Q).
(P)
( ) min
t
f x c x=
(Q)
( )
g y by max
=


0
Ax b
x
=






t
A y c
y





R

Giả thiết rằng rankA = m. Giả sử
{
}
;
j
B A j J
=
là một hệ gồm m vectơ
cột độc lập tuyến tính của ma trận A. Ta gọi hệ vectơ này là cơ sở của ma trận A.

- 10 -

Ký hiệu
{
}

1 2
, , ,
n
N A A A
=
\ B. Phơng án cơ sở (x
B
, x
N
) của bài toán (P) tơng
ứng với cơ sở B thu đợc bằng cách giải hệ phơng trình tuyến tính x
N
= 0, A
B
x
B

= b.
Định nghĩa : Ta gọi B là cơ sở chấp nhận đợc gốc nếu phơng án cơ sở
tơng ứng với nó là phơng án chấp nhận đợc của bài toán gốc, (tức là nếu
1
0
B B
x A b

=
). Ta gọi phơng án cơ sở đối ngẫu tơng ứng với cơ sở B là vectơ y
thu đợc bằng cách giải hệ phơng trình tuyến tính
t
B B

A y c
=
(tức là
1
( )
t
B B
y A c

=
)
Cơ sở B đợc gọi là cơ sở chấp nhận đợc đối ngẫu nếu phơng án cơ sở đối
ngẫu ứng với nó là phơng án chấp nhận đợc của bài toán đối ngẫu.
Nếu phơng án cơ sở tơng ứng với B là phơng án tối u thì B sẽ đợc
gọi là cơ sở tối u.
Nh vậy nếu B là cơ sở chấp nhận đợc đối ngẫu thì phơng án cơ sở đối
ngẫu tơng ứng với nó
1
( )
t
B B
y A c

=
phải thoả mn tất cả các ràng buộc của bài
toán đối ngẫu
t
A y c

hay

1
( ) 0
t t
B B
A A c c


(1.7)
Dễ thấy nếu B là cơ sở chấp nhận đợc gốc, thì điều kiện (1.7) chính là
tiêu chuẩn tối u. Nh vậy, cơ sở B sẽ là tối u nếu nh nó vừa là chấp nhận
đợc gốc vừa là chấp nhận đợc đối ngẫu.
Nhận xét
Thuật toán đơn hình gốc là bắt đầu từ một cơ sở chấp nhận đợc gốc, sau
một số hữu hạn lần chuyển cơ sở sẽ đi đến cơ sở tối u.
Thuật toán đơn hình đối ngẫu lại bắt đầu từ một cơ sở chấp nhận đối ngẫu
nhng cha phải chấp nhận đợc gốc, ta tiến hành dịch chuyển sang các
cơ sở chấp nhận đợc đối ngẫu mới cho đến khi gặp đợc cơ sở tối u thì
dừng lại.
1.3.2. Thuật toán đơn hình đối ngẫu khi đã biết cơ sở chấp nhận đợc đối ngẫu

- 11 -

Xét bài toán quy hoạch tuyến tính dạng chính tắc.
f(x) = c
t
x min

0
A x b
x

=





Giả sử B là cơ sở chấp nhận đợc đối ngẫu. Không giảm tổng quát ta coi B
= (A
1
,A
2
, ,A
m
).
Ta lập bảng đơn hình ứng với cơ sở B của bài toán gốc.

sở
c
j
cơ sở

Giả
phơng án

c
1
A
1



c
j
A
j


c
n
A
n
A
1
A
2

A
m
c
1
c
2

c
m
1
b

2
b



m
b


1
j
a

2
j
a


mj
a





j



Bảng 1
Trong đó:
1
1 2
( , , , )'

m
b b b b B b

= =


1
1 , 2
( , , ) , 1,
j
j
j j mj
A a a a B A j n

= = =


1 j
j B j
c B A c

=
;
1,
j n
=

Cột giả phơng án có thể chứa các thành phần âm vì B cha chắc đ là
một cơ sở chấp nhận đợc gốc.


- 12 -

Do B là một cơ sở chấp nhận đợc đối ngẫu nên
0
j


1,
j n
=

Các bớc của thủ tục đơn hình đối ngẫu.
Bớc 1: Kiểm tra tiêu chuẩn tối u. Cơ sở đang xét sẽ là tối u nếu mọi
thành phần
i
b
,
1,
i m
=
của cột giả phơng án đều không âm vì khi đó cơ sở đang
xét sẽ chấp nhận đợc gốc và vì thế nó là tối u.
Nếu
0
i
b


1,
i m

=
thì giả phơng án (x
B
, x
N
) là một phơng án tối u.
Thuật toán kết thúc.
Nếu i,
1,
i m
=

i
b
< 0 thì ta tìm
r
b
= min{
i
b
,
1,
i m
=
}.
Nếu có nhiều chỉ số cùng đạt cực tiểu thì chọn r là một chỉ số tuỳ ý trong số đó.
Bớc 2: Kiểm tra điều kiện để tập phơng án của bài toán là không rỗng: nếu có
1,
i m
=


i
b
< 0 thì trên dòng i phải tồn tại ít nhất một phần tử
0
ij
a
<
.
Nếu có dòng ứng với
i
b
< 0 (i = 1,2, ,m) mà
ij
a
0
1,
j n
=
. Khi đó
bài toán gốc (P) không có phơng án.
Thật vậy. Giả sử (P) có phơng án, tức là x R
n
thoả mn Ax = b, x 0
hay
1
, ( 1, )
n
i j j i
j

a x b i m
=
= =

(*)
(*) không thể xảy ra vì
ij
a
0, x
j
0 (
1,
j n
=
) còn b
i
< 0. Vậy bài toán (P)
không có phơng án.
Nếu trên mỗi dòng ứng với
i
b
< 0 đều tồn tại ít nhất một phần tử
0
ij
a

. Khi đó ta tiến hành một bớc lặp đơn hình đối ngẫu để
chuyển sang một cơ sở chấp nhận đợc đối ngẫu mới. Giả sử đ chọn
dòng xoay r. Ta tìm cột đa vào cơ sở thay cho cột A
r

. Cột đa vào
thay cho A
r
phải đảm bảo sao cho cơ sở mới vẫn là cơ sở chấp nhận

- 13 -

đợc đối ngẫu. Giả sử cột A
s
đợc đa vào thay cho cột A
r
, khi đó
phần tử trục a
rs
và sau khi thực hiện tính toán đổi cơ sở thì các phần tử
ở dòng ớc lợng ứng với cơ sở mới sẽ là
( )
rj
j s
rs
a
a


Do đó muốn cơ sở mới vẫn là chấp nhận đợc đối ngẫu ta phải chọn chỉ số
s ứng với
min ; 0
j
s
rj

rs rj
a
a a



= <


. Cột A
s
gọi là cột xoay.
Sau khi đ xác định đợc dòng xoay, cột xoay ta tiến hành các tính toán
trong phép biến đổi đơn hình giống nh đ làm trong bài toán gốc.
1.3.3. Thuật toán đơn hình đối ngẫu khi cha biết cơ sở xuất phát chấp
nhận đợc đối ngẫu
Xét bài toán quy hoạch tuyến tính dạng chính tắc sau:
f(x) = c
t
x min

0
A x b
x
=






Giả sử cơ sở chấp nhận đợc đối ngẫu là cha biết. Tuy vậy ta có thể tìm
đợc cơ sở B của ma trận A. Không giảm tổng quát ta coi rằng B = {A
1
, A
2
, ,
A
m
}. Giả sử cơ sở B không phải là cơ sở chấp nhận đợc đối ngẫu (có thể nó
cũng không chấp nhận đợc gốc).
Đa thêm vào một biến giả x
0
0 với hệ số hàm mục tiêu c
0
= 0, và thêm
vào hệ ràng buộc của bài toán xuất phát một ràng buộc giả sau:
x
0
+ x
m +1
+ + x
n
= M
trong đó (x
m+1
, , x
n
) là vectơ các biến phi cơ sở, còn M là một số dơng lớn
hơn bất kỳ một số cụ thể nào cần so sánh với nó. Bài toán thu đợc ta sẽ gọi là


- 14 -

bài toán mở rộng. Đối với bài toán mở rộng ta có một cơ sở của nó là
0 1
( , , , )
m
B A A A
=



Ta xây dựng bảng đơn hình tơng ứng với cơ sở
B

của bài toán mở rộng.
Phơng án c
0
c
1


c
j


c
n

sở
B



c
j

sở
M
0
A


1
A




j
A




m
A


0
A



1
A



m
A


c
0

c
1

c
m

0
1
b


m
b

1
0


0
1
1
j
a


mj
a

1
1
n
a


mn
a


0


1



j




n


Chú ý rằng, khi tính giá trị các thành phần của cột phơng án ta viết nó
dới dạng
i i
b b M
+

. Khi đó trong bảng đơn hình cột phơng án đợc tách ra làm
hai cột, một cột ghi hệ số
i
b

của M, còn cột kia ghi hệ số tự do
i
b

.
Giả sử
s

= max {
j

;
1,
j n
=

}. Do
B

không phải là cơ sở chấp nhận đợc
đối ngẫu của bài toán nên
s

> 0. Thực hiện một phép biến đổi đơn hình với phần
tử xoay a
0s
(nghĩa là đa biến x
s
vào cơ sở còn đa x
0
ra khỏi cơ sở) ta sẽ đi đến
bảng đơn hình mới mà trong đó tất cả các phần tử của dòng ớc lợng
j

;
1,
j n
=

đều là không dơng tức là thu đợc bảng đơn hình đối ngẫu với cơ sở chấp nhận
đợc đối ngẫu nên ta có thể tiến hành thủ tục đơn hình đối ngẫu với cơ sở chấp
nhận đợc đối ngẫu để giải bài toán mở rộng.
Thuật toán đơn hình đối ngẫu giải bài toán mở rộng sẽ kết thúc ở một
trong các trờng hợp sau.

- 15 -


1) Bài toán mở rộng không có phơng án. Khi đó bài toán xuất phát cũng
không có phơng án. Thật vậy, nếu bài toán xuất phát có phơng án chấp
nhận đợc x = (x
1
, x
2
, , x
n
) thì rõ ràng
x
= (x
0
, x
1
, , x
n
) với x
0
= M -
x
m+1
x
n
cũng là một phơng án của bài toán mở rộng.
2) Bài toán mở rộng có phơng án tối u
0 1
( , , , )
n
x x x x

=
và x
0
là biến cơ
sở. Trong trờng hợp này hàm mục tiêu của bài toán không phụ thuộc vào
M, do đó
1
( , , )
n
x x
là phơng án tối u của bài toán ban đầu.
3) Bài toán mở rộng có phơng án tối u
0 1
( , , , )
n
x x x x
=
và x
0
không là
biến cơ sở. Trong trờng hợp này các biến cơ sở sẽ phụ thuộc vào M. Có
hai khả năng xảy ra
Nếu giá trị hàm mục tiêu của bài toán mở rộng phụ thuộc vào M thì
khi M giá trị hàm mục tiêu sẽ dần đến .Trong trờng hợp
này bài toán xuất phát có phơng án chấp nhận đợc nhng hàm
mục tiêu không bị chặn dới nên bài toán không có lời giải.
Nếu giá trị hàm mục tiêu của bài toán mở rộng không phụ thuộc
vào M thì bài toán xuất phát có phơng án tối u và có thể chấp
nhận đợc nó bằng cách bỏ
0

x
và giảm dần giá trị M cho đến khi có
một trong các
1
x
,
2
x
, ,
n
x
trở thành 0.
1.3.4. áp dụng thuật toán đơn hình đối ngẫu để giải bài toán quy hoạch
tuyến tính với số ràng buộc tăng dần
Xét bài toán quy hoạch tuyến tính (I):
Giả sử ta đ giải bài toán (I) bằng thuật toán đơn hình và thu đợc phơng
án tối u cơ sở
*
x
với cơ sở tối u B. Không giảm tổng quát ta có thể coi rằng
{
}
1 2
, , ,
m
B A A A
=
. Ta có bảng đơn hình tối u là bảng 1 phần 1.3.2.

- 16 -


Bây giờ bổ sung vào hệ ràng buộc của bài toán một phơng trình:

1, 1
1
(1.8)
n
m j j m
j
a x b
+ +
=



Nếu
*
x
thoả mn ràng buộc ( 1.8) thì nó vẫn là phơng án tối u của bài
toán có ràng buộc bổ sung này. Giả sử
*
x
không thoả mn ràng buộc bổ sung,
tức là:

*
1, 1
1
n
m j m

j
j
a b
x
+ +
=
>

(1.9)
Vấn đề đặt ra: Liệu ta có thể sử dụng phơng án tối u
*
x
và cơ sở tối u B để
giải bài toán với ràng buộc bổ sung hay không?
Đa thêm vào biến phụ
1
n
x
+
0 chuyển ràng buộc (1.8) về dạng đẳng
thức ta thu đợc:

1, 1 1
1
n
m j j n m
j
a x x b
+ + +
=

+ =

(1.10)
Xét bài toán (I) với ràng buộc bổ sung (1.10) mà ta sẽ gọi là bài toán bổ
sung.

1
1
( ) 0 min
n
j j n
j
f x c x x
+
=
= +



1
1, 1 1
1
; 1,
0; 1, 1
n
ij j i
j
n
m j j n m
j

j
a x b i m
a x x b
x j n
=
+ + +
=

= =



+ =



= +






- 17 -

Đối với bài toán bổ sung cơ sở của nó là
1 2 1
( , , , , )
m n
B A A A A

+
=


. Bảng
đơn hình tơng ứng với cơ sở này có thể thu đợc từ bảng đơn hình tối u của bài
toán ban đầu và có dạng sau.
Cơ sở
B


c
j
cơ sở

Phơng
án
c
1
1
A


c
2
2
A





c
j
j
A




c
n
n
A


c
n+1
1
n
A
+


1
A


2
A




m
A


1
n
A
+


c
1
c
2

c
m
c
n+1
1
b

2
b


m
b


1
m
b
+


1
j
a

2
j
a


mj
a

1,
m j
a
+

0
0
0
0
1
j




1


2



j



n


0
Trong đó:

1,
1, 1,
1
; 1,
m
m j
m j m i ij
i
a a a a j m n
+

+ +
=
= = +



1,
0; 1,
m j
a j m
+
= =


1
1 1,
1
m
m
m m i i
i
b b a b
+
+ +
=
=


Do (1.9) nên bảng đơn hình thu đợc không phải là chấp nhận đợc gốc.
Thế nhng rõ ràng nó là chấp nhận đợc đối ngẫu. Vì vậy ta có thể áp dụng thuật

toán đơn hình đối ngẫu từ bảng này để giải bài toán bổ sung. Kỹ thuật vừa mô tả
ở trên đợc gọi là " kĩ thuật tái tối u hoá".


- 18 -

Kết luận chơng 1
Chơng 1 đ trình bày một số vấn đề cơ sở của lý thuyết tối u: bài toán
quy hoạch tuyến tính tổng quát, thuật toán đơn hình gốc giải bài toán quy hoạch
tuyến tính, thuật toán đơn hình đối ngẫu giải bài toán quy hoạch tuyến tính. Đây
là các nội dung cơ bản làm cơ sở để tiến hành nghiên cứu các thuật toán giải bài
toán quy hoạch nguyên tuyến tính ở chơng 2.














- 19 -

Chơng 2
bài toán quy hoạch nguyên tuyến tính

2.1. Bài toán tối u rời rạc
2.1.1. Xây dựng mô hình tối u rời rạc
Trớc tiên chúng ta bàn về những nguyên nhân dẫn đến tính rời rạc của
biến số trong việc xây dựng mô hình tối u hoá cho các bài toán thực tế.
Một trong những nguyên nhân đầu tiên dẫn đến tính rời rạc của biến số là
tính không chia cắt đợc của đối tợng nghiên cứu. Ngoài ra, trong nhiều bài
toán thực tế chính do cấu trúc tổ hợp ban đầu của bài toán mà các biến số chỉ có
thể nhận các giá trị rời rạc. Cuối cùng, tính rời rạc của các biến số có thể xuất
hiện từ tính không liên tục, đa cực trị của hàm mục tiêu của bài toán. Ta sẽ minh
hoạ cho các vấn đề vừa bàn tới ở các ví dụ sau này.
Mô hình bài toán tối u rời rạc tổng quát
Bài toán tối u rời rạc tổng quát có thể phát biểu nh sau:

1 2
( , , , ) min( )
n
f x x x max

, (2.1)

1 2
( , , , )
n
n
x x x x D=
R

Trong đó D là tập các vectơ
1 2
( , , , )

n
x x x x
=
mà một số (hoặc tất cả) các
thành phần của nó chỉ nhận giá trị rời rạc.
Thông thờng tập D đợc xác định bởi một hệ thống các phơng trình và
bất phơng trình với điều kiện bổ sung về tính nguyên của các biến số sau đây:

1
( ) 0, 1,2, , ,
i
g x i m
= =
(2.2)

1
( ) 0, 1, ,
i
g x i m m
= +
(2.3)

- 20 -


j
x
- nguyên,
1
1,2, ,

j n
=
(2.4)
Khi đó bài toán (2.1) - (2.4) đợc gọi là bài toán quy hoạch nguyên.
Nếu
1
n n
=
ta có bài toán quy hoạch nguyên hoàn toàn, còn nếu
1
n n
<
ta
có bài toán quy hoạch nguyên bộ phận.
Một trờng hợp riêng quan trọng của bài toán quy hoạch nguyên là bài
toán quy hoạch nguyên tuyến tính thu đợc từ bài toán tổng quát khi các hàm
( )
f x

( )
i
g x
(i = 1,2, ,m) là tuyến tính.
2.1.2. Một số tình huống thờng gặp khi xây dựng các mô hình thực tế của
tối u rời rạc
2.1.2.1. Bài toán điều kiện không chia cắt đợc
Trong việc mô hình hoá nhiều vấn đề ứng dụng, từ ý nghĩa thực tế các
biến số phải nhận giá trị nguyên. Chẳng hạn, xét bài toán lập kế hoạch sản xuất
với sản phẩm cuối cùng là không chia cắt đợc. Một nhà máy có khả năng sản
xuất n loại sản phẩm. Để sản xuất các loại sản phẩm này cần sử dụng m loại

nguyên liệu. Biết

ij
a

( 1, ; 1, )
i m j n
= = - chi phí nguyên liệu loại i để sản xuất ra một sản
phẩm loại
j


i
b

( 1, )
i m
=
- dự trữ nguyên liệu loại i của nhà máy ;

j
c
(
1,
j n
=
) - tiền li từ việc bán một sản phẩm loại
j
;
Nếu nh sản phẩm đợc sản xuất với số lợng lớn (ví dụ nh bi xe đạp hay

nan hoa xe đạp) thì việc bỏ qua tính nguyên của biến số không dẫn đến những
sai lệch đáng kể. Thế nhng nếu sản phẩm đợc sản xuất với số lợng không lớn
và giá trị một sản phẩm là cao (ví dụ cỗ máy kéo), thì tính nguyên của biến số

- 21 -

không thể bỏ qua. Ta thu đợc mô hình toán học của bài toán là bài toán quy
hoạch nguyên tuyến tính sau:

1
n
j j
j
c x max
=




1
, 1,
n
ij j i
j
a x b i m
=
=




0
j
x

,
j
x
- nguyên,
1,
j n
=

2.1.2.2. Bài toán với điều kiện logic
Xét điều kiện logic dới dạng hoặc là - hoặc là. Những điều kiện nh
vậy thờng gặp khi chúng ta phải lựa chọn các phơng án sản xuất, xây dựng. Ví
dụ, khi phải quyết định áp dụng các phơng thức sản xuất mới vào sản xuất
chúng ta thờng gặp tình huống sau: hoặc là không sản xuất sản phẩm
j
(
j
x
= 0)
hoặc là nếu chấp nhận sản xuất nó thì phải sản xuất với số lợng không ít hơn
j
d

(
j
d
là số lợng sản phẩm loại

j
tối thiểu cần sản xuất để bù lại đợc những chi
phí cần bỏ ra khi đa phơng thức sản xuất sản phẩm mới này vào hoạt động ).
Tức là chúng ta gặp phải điều kiện hoặc là
j
x
= 0, hoặc là
j j
x d

. Giả sử biết
cận trên
j
p
của biến
j
x
trong bài toán đang xét. Khi đó đa vào biến logic

1,
0,
j
neu chap nhan san xuat san pham j
y
neu nguoc lai

=




Ta có thể đa ràng buộc lôgic nói trên về hệ ràng buộc tơng đơng sau:

0
j j j
x d y

,
0
j j j
x p y

,
{
}
0,1
j
y

2.1.2.3. Bài toán với biến số rời rạc
Trong thực tế có trờng hợp biến số chỉ nhận một số giá trị nhất định:

- 22 -


{
}
1 2
, , ,
j j j j mj
x Q q q q

=

Ví dụ nếu
j
x
là quy mô công suất của nhà máy điện cần xây dựng ở địa
điểm
j
, thì
j
Q
là tập các quy mô công suất tiêu chuẩn.
Bằng cách đa vào các biến phụ
ij
t
ràng buộc nói trên là tơng đơng với hệ

1
m
j ij ij
i
x q t
=
=



1
1
m

ij
i
t
=
=



{
}
0,1 , 1,
ij
t i m
=

Phép biến đổi vừa trình bày có thể sử dụng để đa điều kiện

0
j j
x d

,
j
x
- nguyên
về biến logic:
0
2
m
i

j ij
i
x t
=
=



1
1
m
ij
i
t
=
=



{
}
0,1 , 0,
ij
t i m
=

trong đó
2
log
j

m d

=

(nếu là số thực thì kí hiệu [] để chỉ số nguyên lớn nhất
không vợt quá mà ta sẽ gọi là phần nguyên của ), tức là mọi bài toán quy
hoạch nguyên đều có thể đa về bài toán với biến logic.
2.1.2.4. Bài toán với chi phí cố định
Trong nhiều bài toán thực tế hàm mục tiêu
( )
f x
có dạng

- 23 -


1
( ) ( )
n
j j
j
f x f x
=
=


trong đó
, 0
( )
0, 0

j j j j
j j
j
d c x x
f x
x
+ >


=

=



với
j
d
> 0,
1,
j n
=
. Các số
j
d
thờng đợc hiểu là 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 phơng thức này (

j
x
).
Giả sử biết
j
p
là cận trên của biến
j
x
trong bài toán tối u hoá

{
min ( ) : }
f x x D

,
khi đó bài toán đặt ra có thể dẫn về bài toán tơng đơng sau

1
min
n
j j j j
j
c x d t
=
+

,

,

j j j
x D x p t

,
{
}
0,1 ,
j
t
1,
j n
=
.
2.1.3. Một số mô hình phổ biến của tối u rời rạc
Trong phần này ta trình bày một số mô hình đ đóng vai trò quan trọng
trong việc phát triển lí thuyết tối u rời rạc đồng thời cũng là những mô hình có
nhiều ứng dụng rộng ri trong thực tế của tối u rời rạc.
2.1.3.1. Bài toán cái túi
Một nhà thám hiểm cần đem theo một cái túi có trọng lợng không quá b. Có
n loại đồ vật có thể đem theo. Đồ vật thứ
j
có trọng lợng là
j
a
và giá trị sử
dụng là
j
c
(
1,

j n
=
). Hỏi rằng nhà thám hiểm cần đem theo các loại đồ vật nào và
với số lợng là bao nhiêu để cho tổng giá trị sử dụng của các đồ đem theo là lớn
nhất?

- 24 -

Gọi
j
x
là số lợng đồ vật loại
),1( njj =
mà nhà thám hiểm sẽ đem theo. Khi
đó, mô hình toán học của bài toán có dạng sau:

1
1
0; , 1, .
n
j j
j
n
j j
j
j j
c x max
a x b
x x nguyen j n
=

=









=





2.1.3.2. Bài toán ngời du lịch
Một ngời du lịch muốn đi tham quan n +1 thành phố
0 1
, , ,
n
T T T
. Xuất
phát từ
0
T
ngời du lịch muốn đi qua tất cả các thành phố còn lại, mỗi thành phố
đúng một lần, rồi quay trở lại thành phố xuất phát. Biết
ij
c

là chi phí đi từ thành
phố
i
T
đến thành phố
j
T
(
0,
i n
=
,
0,
j n
=
) hy tìm hành trình với tổng chi phí là
nhỏ nhất.
Ta có thể thiết lập tơng ứng 1-1 giữa hành trình

0 1 2 0

i i in
T T T T T


với một hoán vị
1 2
( , , , )
n
i i i


=
của n số tự nhiên 1,2, ,n. Đặt

( )
f

=
1 1 2 1
0 0

n n n
i i i i i i
c c c c

+ + + +

và kí hiệu P
P P
P

là tập

tất cả

các hoán vị
1 2
( , , , )
n
i i i


=
của n số tự nhiên 1,2, ,n.
Khi đó bài toán ngời du lịch có thể phát biểu dới dạng bài toán tối u
rời rạc sau

( )
f

min,





P
PP
P


2.1.3.3. Bài toán phân hoạch
Giả sử F
FF
F

=
{
}
1 2
, , ,

n
A A A
là một họ các tập con của tập m phần tử X. Hỏi
rằng có thể tìm đợc F F
FF
F

sao cho

,
i
i
A F
X A

=


i j
A A
=
,
i j

,
,
i j
A A F

,


- 25 -

(tức là các tập trong F tạo thành một phân hoạch của tập X). Không giảm tổng
quát ta coi rằng
{
}
1,2, ,
X m
=
. Đa vào ma trận liên thuộc
( )
ij
A a
=
, với các
phần tử đợc xác định nh sau

1,
0,
j
ij
j
khi i A
a
khi i A



=






1, , 1,
i m j n
= =
. Kí hiệu
j j
c A
=
= số phần tử của tập
j
A
. Đa vào biến số

1,
0,
j
j
neu A F
x
neu nguoc lai



=





1,
j n
= . Khi đó bài toán phân hoạch có thể dẫn về bài toán tối u rời rạc sau

1
max,
n
j j
j
c x
=




1
1, 1,
n
ij j
j
a x i m
=
= =



{
}

0,1 , 1,
j
x j n
=
.
Rõ ràng nếu giá trị tối u của bài toán vừa viết bằng m thì ta có trả lời
khẳng định cho bài toán phân hoạch, ngợc lại bài toán phân hoạch không có lời
giải.
Một trờng hợp riêng của bài toán tối u rời rạc là bài toán quy hoạch
nguyên tuyến tính khi ta đa thêm vào bài toán quy hoạch tuyến tính tổng quát
điều kiện các biến số là nguyên. Dạng tổng quát của bài toán.
Tìm vectơ
1 2
( , , , )
n
x x x x
=
sao cho hàm
( )
f x
=
1
n
j j
j
c x
=

min với hệ điều
kiện

×