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

Một phương pháp xấp xỉ ngoài giải bài toán quy hoạch tuyến tính với hàm mục tiêu có hệ số không âm và ứng dụng

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


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



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




BÙI THỊ HỒNG HẠNH





MỘT PHƢƠNG PHÁP XẤP XỈ NGOÀI GIẢI
BÀI TOÁN QUY HOẠCH TUYẾN TÍNH VỚI HÀM
MỤC TIÊU CÓ HỆ SỐ KHÔNG ÂM
VÀ ỨNG DỤNG





LUẬN VĂN THẠC SĨ TOÁN HỌC










THÁI NGUYÊN – 2014

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



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




BÙI THỊ HỒNG HẠNH



MỘT PHƢƠNG PHÁP XẤP XỈ NGOÀI GIẢI
BÀI TOÁN QUY HOẠCH TUYẾN TÍNH VỚI HÀM
MỤC TIÊU CÓ HỆ SỐ KHÔNG ÂM
VÀ ỨNG DỤNG




Chuyên ngành: TOÁN ỨNG DỤNG

Mã số: 60 46 01 12



LUẬN VĂN THẠC SĨ TOÁN HỌC


NGƢỜI HƢỚNG DẪN KHOA HỌC
TS. NGUYỄN ANH TUẤN


THÁI NGUYÊN– 2014

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


LỜI CẢM ƠN

Để hoàn thành luận văn này, tôi đã nhận đƣợc sự động viên đóng góp nhiệt
tình từ các thầy cô giáo của trƣờng Đại học Khoa học – Đại học Thái Nguyên, tôi
xin gửi lời cảm ơn chân thành tới các thầy cô giáo. Đặc biệt tôi gửi lời cảm ơn sâu
sắc tới TS. Nguyễn Anh Tuấn là ngƣời thầy đã đề xuất các hƣớng nghiên cứu, động
viên thƣờng xuyên và tận tâm chỉ bảo nghiêm túc về chuyên môn trong suốt thời
gian qua để tôi hoàn thành luận văn này. Tôi cũng xin bày tỏ lòng biết ơn đối với
gia đình, bạn bè và ngƣời thân đã động viên khuyến khích và giúp đỡ tôi trong suốt
quá trình hoàn thành luận văn này.
Tôi xin chân thành cảm ơn!
Thái Nguyên, tháng 08 năm 2014
Tác giả


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

MỤC LỤC
LỜI CẢM ƠN i
MỤC LỤC ii
MỞ ĐẦU iv
Chƣơng 1 1
PHƢƠNG PHÁP NÓN XOAY VÀ THUẬT TOÁN NÓN XOAY TUYẾN TÍNH
GIẢI BÀI TOÁN QUY HOẠCH TUYẾN TÍNH VỚI HÀM MỤC TIÊU CÓ HỆ
SỐ KHÔNG ÂM 1
1.1. Bài toán quy hoạch tuyến tính 1
1.2. Khái niệm về nón đơn hình tuyến tính, cạnh và phƣơng của nón và Nón –
min (nón cực tiểu) 2
1.2.1. Khái niệm về nón đơn hình tuyến tính 2
1.2.2. Khái niệm về cạnh của nón đơn hình 2
1.2.3. Khái niệm nón xoay M(r,s) sinh ra từ nón M 5
1.2.4. §Þnh nghÜa Nón – min (Nón cực tiểu) 7
1.3. Phƣơng pháp nón xoay tuyến tính 8
1.3.1. Thuật toán nón xoay tuyến tính 9
1.3.2. Bảng lặp giải bài toán quy hoạch tuyến tính bởi thuật toán nón xoay
tuyến tính và ví dụ minh hoạ 12
1.4. Thuật toán nón xoay giải bài toán quy hoạch tuyến tính dạng chuẩn với hàm
mục tiêu có hệ số không âm 17
1.4.1. Bài toán quy hoạch tuyến tính dạng chuẩn với hàm mục tiêu có hệ số
không âm 17
1.4.2 Xây dựng nón – min (nón cực tiểu) xuất phát 18
1.4.3. Thuật toán nón xoay tuyến tính LD giải bài toán quy hoạch tuyến tính
với hàm mục tiêu có hệ số không âm 18


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

1.4.4. Giải bài toán quy hoạch tuyến tính dạng chuẩn với hàm mục tiêu có hệ
số không âm bằng thuật toán nón xoay LD dƣới dạng bảng nón xoay thu gọn
và các ví dụ minh hoạ 19
1.4.5. Minh hoạ hình học thuật toán nón xoay tuyến tính LD 20
Chƣơng 2 26
ỨNG DỤNG THUẬT TOÁN NÓN XOAY LD GIẢI MỘT VÀI LỚP BÀI TOÁN
QUY HOẠCH TUYẾN TÍNH THƢỜNG GẶP 26
2.1. Bài toán quy hoạch tuyến tính dạng chuẩn có tổng các biến bị chặn trên 26
2.1.1. Bài toán 26
2.1.2. Ví dụ minh họa 33
2.2. Thuật toán nón xoay LD giải bài toán quy hoạch tuyến tính dạng chính tắc
khi biết một cơ sở đối ngẫu 36
KẾT LUẬN 47
TÀI LIỆU THAM KHẢO 48


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

MỞ ĐẦU
Bài toán quy hoạch tuyến tính có hai dạng cơ bản là dạng chuẩn và dạng chính
tắc, hai dạng này có quan hệ mật thiết với nhau. Bài toán quy hoạch tuyến tính
dạng chuẩn là bài toán có miền ràng buộc là một hệ bất phương trình tuyến tính
với các biến không âm, còn bài toán quy hoạch tuyến tính dạng chính tắc là bài
toán quy hoạch có miền ràng buộc là một hệ phương trình tuyến tính với các biến
của nó có dấu không âm.

Thuật toán đơn hình và đơn hình đối ngẫu do George Dantzig và Lemke đề xuất
vào những năm 1947 và 1954 đã giải bài toán quy hoạch tuyến tính ở dạng chính
tắc. Nhiều bài toán quy hoạch tuyến tính trên thực tế thường bắt đầu ở dạng chuẩn
tắc, do vậy luận văn này trình bày phương pháp nón xoay giải trực tiếp bài toán
quy hoạch tuyến tính với miền ràng buộc là hệ bất phương trình tuyến tính, từ đó
xây dựng thuật toán nón xoay tuyến tính giải bài toán quy hoạch tuyến tính dạng
chuẩn với hàm mục tiêu có hệ số không âm và một vài ứng dụng của nó.
Luận văn gồm 2 chương:
Chương 1 trình bày phương pháp nón xoay và thuật toán nón xoay tuyến tính giải
bài toán quy hoạch tuyến tính với hàm mục tiêu có hệ số không âm với cơ sở xuất
phát ban đầu là gốc tọa độ O(0,0,…,0).
Chương 2 trình bày ứng dụng của thuật toán nón xoay tuyến tính trình bày trong
chương 1 giải cho hai lớp bài toán quy hoạch tuyến tính thường gặp sau khi đã đưa
hai lớp bài toán này về dạng bài toán quy hoạch tuyến tính với hàm mục tiêu có hệ
số không âm.
Các thuật toán nón xoay trình bày trong luận văn này được xây dựng chi tiết,
các bước của thuật toán được trình bày sao cho chúng ta có thể dễ dàng lập trình
chuyển sang các chương trình trên máy tính bằng các ngôn ngữ như Pascal, C,
Java,
Luận văn này hoàn thành dựa trên các tài liệu [5]. [6], và các tài liệu có trong
phần tài liệu tham khảo.

Tác giả

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

Bùi Thị Hồng Hạnh

1

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

Chƣơng 1
PHƢƠNG PHÁP NÓN XOAY VÀ THUẬT TOÁN NÓN XOAY TUYẾN
TÍNH GIẢI BÀI TOÁN QUY HOẠCH TUYẾN TÍNH VỚI HÀM MỤC TIÊU
CÓ HỆ SỐ KHÔNG ÂM

Nội dung chƣơng này, chúng tôi trình bày một phƣơng pháp giải bài toán
quy hoạch tuyến tính với miền ràng buộc là hệ bất phƣơng trình tuyến tính thuộc
lƣợc đồ xấp xỉ ngoài (vì nó xuất phát giải từ đỉnh của một nón đơn hình tuyến tính
ngoài miền chấp nhận đƣợc) gọi là thuật toán nón xoay tuyến tính [5]. Từ đó trình
bày một trƣờng hợp riêng biến thể của nó giải bài toán quy hoạch tuyến tính dạng
chuẩn khi hàm mục tiêu có các hệ số không âm, đây là lớp bài toán thƣờng hay gặp
trong thực tế.
1.1. Bài toán quy hoạch tuyến tính
XÐt bài toán quy hoạch tuyến tính với miền ràng buộc là hệ bất phƣơng trinh
tuyến tính sau:
1
( ) , . min
()
: : , 0, 1,2, ,
n
ii
i
ni
Li
f x C x c x
L
x P x A x b i mR


x
n
R
, A
i
là véc tơ dòng và A
i
n
R
, m n, A
i
(a
i1
, a
i2
, , a
in
) ≠ O(0,…,0) ,
C(c
1
, c
2
,…, c
n
), b
i

1
R
, i=1, 2, , m. Hạng của hệ A

i
(i=1, 2, …, m) bằng n, giả
thiết này rất bình thƣờng bởi miền ràng buộc P
L
của bài toán quy hoạch tuyến tính
nói chung bao giờ cũng có ràng buộc về dấu của biến x.

2
S húa bi Trung tõm Hc liu

1.2. Khỏi nim v nún n hỡnh tuyn tớnh, cnh v phng ca nún v Nún
min (nún cc tiu)
1.2.1. Khỏi nim v nún n hỡnh tuyn tớnh
Xột tp M đ-ợc xác định từ n ràng buộc tuyến tính nào đó của P
L
, cụ thể là:
M:={x
n
R
: <A
i
, x>+ b
i
0 i I} (1.1)
trong đó I:=
12
, , ,
n
i i i
{1, 2, , m}, /I/ = n ( õy /I/ l s o hay l s phn t

ca tp I) và A
i
vi i I là một h độc lập tuyến tính. Tp M gi l nún n hỡnh
tuyn tớnh ca h rng buc P
L
với đỉnh x
M
là nghiệm (đ-ợc xác định) tho món hệ
sau:
<A
i
, x>+ b
i
= 0, i I (1.2)
H vộc t A
i
với i I c gi l c s ca nún M, hay cũn gi l c s ca nh
x
M
. Tp I gi l tp ch s ca c s ca nún M.
1.2.2. Khỏi nim v cnh ca nún n hỡnh
Vi mi i I, tp hp cỏc im x R
n
tha món h:
<A
r
, x>+ b
r
= 0, r I\{i} (1.3)
gi l ng thng i ca nún M.

Tp cỏc im x tho món h:
, 0, \
,0
r
r
i
i
A x b r I i
A x b

gi l cnh i ca nún M.
Vi mi i (i I), Véc tơ
i
M
z
(i I), xác định bởi h:

, 0, ,
,1
ri
M
ii
M
A z r I r i
Az
(1.4)
gi l vộc t ch phng ca cnh i ca nún M.

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


Đỉnh x
M
của nón M có thể xác định từ (1.2), trong trƣờng hợp biết hệ véc tơ chỉ
phƣơng
i
M
z
(i I) thì chúng ta có thể sử dụng công thức sau:

.
Mi
iM
iI
x b z
(1.5)

4
S húa bi Trung tõm Hc liu

nh lý 1.1 [5]
Nu x
M
l nh ca nún n hỡnh M c xỏc nh t (1.2), v h vộc t ch
phng
i
M
z
(i I) ca cnh i ca nún M xỏc nh t (1.4) thỡ chỳng ta cú th xỏc
nh nh x

M
t cụng thc sau:
.
Mi
iM
iI
x b z

T nh lý 1.1 ta suy ra trong trng hp bit h vộc t ch phng
i
M
z
(i I) thỡ
chỳng ta cú th xỏc nh nh x
M
t cụng thc sau:
.
Mi
iM
iI
x b z

Ta ký hiệu:
J
+
(x
M
):= {j {1, 2, , m}: <A
j
, x

M
>+ b
j
> 0} (1.6)
Rõ ràng khi J
+
(x
M
) = thì x
M
chính là một điểm chấp nhận của bài toán (L).
Chúng ta giả sử J
+
(x
M
) . Với mỗi s J
+
(x
M
), chúng ta ký hiệu nh- sau:
I
s
:= {i I: < A
s
,
i
M
z
> 0 }
12

: , , ,
n
I i i i
(1.7)
I
0
:= {i I: < A
s
,
i
M
z
> = 0} }
12
: , , ,
n
I i i i
(1.8)
Ta thy: I = I
0
s
I
.
Với mỗi i I
s
thì đ-ờng thẳng x=x
M
+.
i
M

z

sẽ giao vi siêu phẳng <A
s
, x>+ b
s
=0
tại điểm: x
i
= x
M
+
i
.
i
M
z
. (1.9)
Trong đó:
i
=-
,
,
sM
s
si
M
A x b
Az



(1.10)
Ta gọi

s
I
:= {i I
s
:
i

>0} =
: , 0
s s i
M
i I A z
={
12
, , ,
s s sq
i i i
} (1.11)
v
s
I
:= {i I
s
:
i


<0}.
Rừ rng
ss
III
.
Định lý 1.2
()
M
s J x
thỡ
s
I


5
S húa bi Trung tõm Hc liu

Chng minh (xem [5])
Định lý 1.3 [5]
s
I
thỡ tp phng ỏn ca bi toỏn (L) l rng.
Định lý này cho ta kết luận rằng, nếu bi toỏn (L) có ít nhất một điểm chấp nhận
đ-ợc thì
s
I
là một tập khác rỗng.
1.2.3. Khỏi nim nún xoay M(r,s) sinh ra t nún M
Gi s M l mt nún n hỡnh tuyn tớnh ca h rng buc P
L

xỏc nh bi
(1.1) v J
+
(x
M
)ỉ, khi ú vi mi r
s
I
, tập hợp các điểm x thoả mãn hệ bất đẳng
thức:

, 0, ,
,0
i
i
s
s
A x b i I i r
A x b
(1.12)
xác định một nón n hỡnh tuyn tớnh gi l nún xoay M(r,s), đỉnh là:
x
M(r,s)
=x
r
= x
M
+
r
.

r
M
z
(1.13)
trong đó
r
xác định từ (1.10)
Đỉnh x
r
thoả mãn:
<A
i
, x
r
>+ b
i
= 0 i I(r,s) = (I {s}\{r}).
Tập chỉ số cơ sở mới I(r,s) nhận đ-ợc từ tập chỉ số cơ sở cũ I bằng cách loại chỉ số r
ra khỏi tập cơ sở cũ, đ-a chỉ số s vào thay. Ta núi nún xoay M(r,s) sinh ra t nún M.
B 1.1
H A
i
vi i I(r,s) l mt h c lp tuyn tớnh.
Chng minh
Tht vy, nu ngc li h A
i
vi i I(r,s) l ph thuc tuyn tớnh thỡ d dng
suy ra tn ti biu din:
A
s

=
\{ }i I r

i
A
i
< A
s
,
r
M
z
>=<
\{ }i I r

i
A
i
,
r
M
z
>=
\{ }i I r

i
<A
i
,
r

M
z
>=0

6
S húa bi Trung tõm Hc liu

iu ny mõu thun vi <A
s
,
r
M
z
> 0 (vỡ r
s
I
).
B ny cho ta thy nún xoay M(r,s) vn l mt nún n hỡnh.
Các véc tơ chỉ ph-ơng
( , )
i
M r s
z
, i I(r,s) của nón xoay mi M(r,s) đ-ợc xác
định từ (1.4) với tập chỉ số c s mới I(r,s), hoc xác định t mt trong cỏc công
thức đơn giản di õy theo cỏc x
i
, x
r
,

i
M
z
,
r
M
z
(xỏc inh t (1.4), (1.9), (1.10)) vi i,
r thuc I l tp ch s ca c s c:
0
r
( , )

, (1.14)
1
.
,
i
M
i i s
r
M r s M M
i
r
M
sr
M
z khi i I
z z z khi i I i r
z khi i s

Az

Hay:
0
r
( , )

,
, (1.15)
,
1
.
,
i
M
si
i i s
M
M r s M M
sr
M
r
M
sr
M
z khi i I
Az
z z z khi i I i r
Az
z khi i s

Az


Cỏc cụng thc ny gi l cỏc cụng thc i c s, b di õy chng minh cỏc
cụng thc trờn.
B 1.2 [5]
Gi s M l nún xỏc nh bi:
M:={x R
n
: <A
i
, x>+ b
i
0 i I } vi cỏc vộc t ch phng
i
M
z
ca cỏc cnh
xỏc nh theo (1.4), cỏc giao im x
i
xỏc nh theo (1.9), (1.10). Khi ú nún xoay
M(r,s) cú nh l x
M(r,s)
= x
r
xỏc nh t (1.12) vi c s tng ng l I(r,s) = (I

7
S húa bi Trung tõm Hc liu


{s}\{r}) v cỏc vộc t ch phng ca cỏc cnh tng ng l
( , )
i
M r s
z
c xỏc nh
bi (1.15).
1.2.4. Định nghĩa Nún min (Nún cc tiu)
Nón đơn hình tuyến tính M với đỉnh là x
M
đ-ợc gọi là nón - min của hm
f(x)=<C,x> ca bi toỏn (L) nếu f(x
M
) f(x) , x M.
Ta nói M là một nón - min của bài toán (L) khi M l mt nún min ca hm
mc tiờu f ca bi toỏn (L).
Gi s M l mt nún n hỡnh xỏc nh t h (1.1) nh l x
M
, với véc tơ ch
phng ca cnh i l
i
M
z
(i I), xác định bởi (1.4), ta cú nh lý sau.
nh lý 1.4
Nu f(x
M
) f(x
M
+

i
M
z
) i I thỡ M l mt nún - min ca hm f. Chng
minh (xem [1])
H qu 1.1
M l mt nún - min ca hm f(x)=<C,x> khi v ch khi:
<C,
i
M
z
> 0, i I.
Giả sử M là một nún - min ca hm mc tiờu f(x)=<C,x> ca bi toỏn (L).
Gọi
V
s
:= {v
s
I
: f(x
v
) =
min
s
iI
{f(x
i
)}} (1.16)
Vy V
s

= {v
s
I
: <C,x
v
> =
min
s
iI
{<C,x
i
>}}
Thay x
v
v x
i
xỏc nh t cụng thc (1.9) vo trờn ta cú:
V
s
:= {v
s
I
: <C,x
v
> =
min
s
iI
{<C,x
i

>}}=
={
: , . min{ , . }
s
s M v M i
v M i M
iI
v I C x z C x z
}=
={
: . , min{ . , }
s
s v i
v M i M
iI
v I C z C z
}=

8
S húa bi Trung tõm Hc liu

={
,,
: ( , ). min{ ( , ). }
,,
s
vi
s s M s M
MM
ss

s v s i
iI
MM
C z C z
v I A x b A x b
A z A z
}=
={
,,
: min{ }
,,
s
vi
s
MM
s v s i
iI
MM
C z C z
vI
A z A z
}
Vy, V
s
:={
,,
: min{ }
,,
s
vi

s
MM
s v s i
iI
MM
C z C z
vI
A z A z
} (1.17)
nh lý 1.5
Vi mỗi r V
s
xỏc nh t (1.17), nu M l mt nún min ca hm mc tiờu
ca bi toỏn (L) thỡ nón M(r,s) xỏc nh t (1.12) cng là một nón - min ca hm
mc tiờu bài toán (L)
Chứng minh (xem [5])
nh
( , )M r s
x
ca nún xoay M(r,s) cũn cú th xỏc nh cụng thc sau õy khi bit cỏc
vộc t ch phng cỏc cnh ca nún xoay M(r,s):
( , )
( , )
( , )
.
M r s i
i M r s
i I r s
x b z
(1.18)

Phần d-ới đây chúng ta sẽ xõy dng thut toỏn nún xoay gii bi toỏn (L) da vo
cơ sở lý thuyt trỡnh by cỏc phn trờn và định lý 1.5.
1.3. Phng phỏp nún xoay tuyn tớnh
Mt ỏp dng hay núi ỳng hn l mt bin th ca phng phỏp nún min
gii bi toỏn quy hoch gn li-gn lừm ngh trong sỏch Quy hoch gn li-gn
lừm ng dng vo quy hoch tuyn tớnh (Nxb Khoa hc v k thut nm 2011)
([6]) trỡnh by di õy s cho chng ta mt phng phỏp gii trc tip bi toỏn
quy hoch tuyn tớnh dng chun vi c s xut phỏt t nh mt nún-min ca hm
mc tiờu gi l phng phỏp nún xoay tuyn tớnh c th hin di dng thut
toỏn chi tit.

9
S húa bi Trung tõm Hc liu

Vic bit mt nún-min ca bi toỏn núi chung khụng khú khn gỡ. Chng hn
trong trng hp min rng buc P
L
ca bi toỏn (L) l a din, ta cú th d dng
ch ra c mt chúp n hỡnh vi n+1 nh ó bit cha P
L
, nh no ca chúp
n hỡnh ny cú giỏ tr ca hm mc tiờu nh nht ti ú so vi cỏc giỏ tr ca hm
mc tiờu ti cỏc nh cũn li ca chúp thỡ nún cha chúp n hỡnh tng ng vi
nh ny chớnh l mt nún-min ca bi toỏn (L).
Xột bi toỏn (L) trong trng hp bit mt nún min ca bi toỏn (L). í
tng ca thut toỏn nún xoay tuyn tớnh gii bi toỏn (L) nh sau:
Xut phỏt t mt nún-min M ban u ca hm mc tiờu bi toỏn, chỳng ta
kim tra xem nh ca nú cú thuc min chp nhn ca bi toỏn khụng (tc l nh
ny cú tho món tt c cỏc rng buc khụng), nu nh ny thuc min chp nhn
thỡ nú l mt li gii ca bi toỏn (L). Ngc li ta xõy dng nún xoay mi M(r,s)

(vn l nún-min) t nún c M ca bi toỏn (L) v lp li quỏ trỡnh kim tra nún
xoay mi ny tng t nh i vi nún M, quỏ trỡnh ny c thc hin cho n
khi nh ca nún xoay mi M(r,s) thuc min chp nhn ca bi toỏn (L) ( khi min
rng buc ca bi toỏn (L) cú phng ỏn) hoc s phỏt hin ra min rng buc ca
bi toỏn (L) l rng.
1.3.1. Thut toỏn nún xoay tuyn tớnh
B-ớc chuẩn bị (bc 0).Gi s ta ó bit M
0
là nón - min của bài toán (L) vi tp
ch s c s l I
0
:={
0 0 0
12
, , ,
n
i i i
}, x
0
=
0
M
x
là đỉnh của M
0
và các véc tơ chỉ ph-ơng
ca cỏc cnh i ca nún M
0
l
0

i
z
=
0
i
M
z
(i I
0
).
B-ớc k ( k=0, 1, 2, ). Giả sử M
k
là nón - min của bài toán (L) (đã đ-ợc xây dựng),
vi tập chỉ số c s , đỉnh và các véc tơ chỉ ph-ơng ca cỏc cnh ca nún M
k
t-ơng
ứng là I
k
:=
12
, , ,
k k k
n
i i i
; x
k
=
k
M
x


i
k
z
=
k
i
M
z
.
Xác định tập J
+
(x
k
) theo (1.6):
( ): 1,2, , : , 0
k j k
j
J x j m A x b


10
S húa bi Trung tõm Hc liu

1. Nếu J
+
(x
k
) = thì dừng lại. x
k

chính là một lời giải của bài toán (L),
2. Nếu J
+
(x
k
) , ta chn ch s a vo c s theo mt trong hai cỏch sau:
Ta chn s
k
l mt ch sụ tu ý thuc J
+
(x
k
)
hoc ta chn s
k
=min{j:j J
+
(x
k
)} (gi l quy tc chn min) (1.19)
hoc s
k
= max{j: j J
+
(x
k
) (gi l quy tc chn max)
và xác định:
: : , 0
kk

ss
i
kk
I i I A z
;
12
: : , 0 , , ,
k k k
k k k k
s s s
kk
ik
k s s s q
I i I A z i i i
, (1.20)
2.1. Nếu
k
s
I
= thì dừng lại, suy ra bài toán (L) không có ph-ơng án.
2.2. Nếu
k
s
I

:
Gọi
k
s
V

:={
,,
: min{ }
,,
k
s
kk
k
vi
s
kk
ss
vi
iI
kk
C z C z
vI
A z A z
} (1.21)
và chn ch s a ra khi c s theo mt trong hai cỏch sau:
Ta chn r
k
l ch s tu ý thuc
k
s
V
.
hoc ta chn
r
k

= min{v: v
k
s
V
} hoc r
k
= max{v: v
k
s
V
} (1.22)
(cỏch chn ch s ny gi l quy tc chn min (hoc l quy tc chn max)) .
Và ta xây dựng nún xoay M
k+1
= M
k
(r
k
, s
k
) sinh ra t nún-min M
k
(xem mc 1.2.3),
tp ch s c s l I
k+1
= I
k
(r
k
, s

k
) = (I
k
{s
k
}) \ {r
k
}; và các véc tơ chỉ ph-ơng
1
i
k
z

(sử dụng (1.15)):

11
S húa bi Trung tõm Hc liu

0
1

,
( . ) ,
,
1
.
,
k
kk
kk

k
kk
i
kk
s
i
rs
ii
k
k k k k k
sr
k
r
kk
sr
k
z khi i I
Az
z z z khi i I i r
Az
z khi i s
Az

(1.23)
Từ (1.5) v (1.13):
x
k+1
=x
k
M

(
k
r
,
k
s
)
=
k
r
k
x
=x
k
+
.
k
k
r
k
rk
z
= x
k
-
,
.
,
kk
k

kk
s
s
sr
k
A x b
Az
k
r
k
z
=
1
1
.
k
i
ik
iI
bz
(1.24)
Quay trở lại b-ớc k với k k+1
Mt s chú ý:
1) Từ định lý 1.5 ta d dng cú b 1.3 di õy v do ú dễ thấy nón xoay M
k+1

đ-ợc xây dựng (trong thut toỏn) sinh ra t nún-min M
k
vẫn là một nón - min của
bài toán (L).

2) Sự lựa chọn ch s a vo s
k
= min{j: j J
+
(x
k
)} v ch s a ra r
k
= min{v: v

s
k
V
} sẽ làm cho thuận toán đề nghị trên kết thúc sau một số hữu hạn b-ớc lặp
(không xảy ra xoay vòng). Điều này đ-ợc chng minh bởi định lý 1.6 di õy.
3) Cụng thc (1.23) gi l cụng thc xoay c s v phn t
,
kk
sr
k
Az
c gi l
phn t xoay, nú l trung tõm i cỏc vộc t ch phng
i
k
z
ca h c s c sang
h c s mi
1
i

k
z
theo cụng thc xoay (1.23).
4) cho gn chỳng ta t
, ( ), 1,2, ,
i k i k
i
A x b A x i m


Da trờn nh lý 1.5, chỳng ta d dng chng minh c b sau:
B 1.3
Ti mi bc lp k, khi gii bi toỏn (L) theo thut toỏn nún xoay tuyn tớnh
vi quy tc chn ch s a vo c s v a ra khi c s l (1.19), (1.20) v

12
S húa bi Trung tõm Hc liu

(1.21) thỡ nún xoay M
k+1
c xõy dng trong thut toỏn vn l mt nún min ca
hm mc tiờu v ta cú:
1
( ) ( ), 1,2,
kk
f x f x k

Sự lựa chọn s
k
= min{j: j J

+
(x
k
)} v r
k
(s
k
)= min{v: v
k
s
V
}( hoc s
k
= max{j: j
J
+
(x
k
)} v r
k
(s
k
)= max{v: v
k
s
V
}) sẽ làm cho thuận toán đề nghị trên kết thúc sau
một số hữu hạn b-ớc lặp (không xảy ra xoay vòng). Điều này đ-ợc chứng minh bởi
định lý sau.
Định lý 1.6

Gii bi toỏn (L) theo thuật toán nún xoay vi ch s chn a vo c s l
s
k
= min{j: j J
+
(x
k
)} (hoc s
k
= max{j: j J
+
(x
k
)}) v ch s chn a ra khi c
s tng ng l r
k
(s
k
)= min{v: v
k
s
V
} (hoc tng ng l r
k
(s
k
)= max{v: v
k
s
V

})
s kết thúc sau một số hữu hạn b-ớc lặp và cho ta lời giải của bài toán (L), hoặc
phát hiện ra miền ràng buộc P
L
của bài toán (L) là rỗng.
Chng minh nh lý ny cú th tỡm thy trong [5]

nh lý ny vn ỳng khi gii bi toỏn quy hoch gn li-gn lừm theo thut toỏn
nún-min ó c chng minh trong [6].
Nm 1977 RG. Bland ó xut quy tc trỏnh xoay vũng tng t nh trờn cho
vic gii bi toỏn quy hoch tuyn tớnh dng chớnh tc.
1.3.2. Bng lp gii bi toỏn quy hoch tuyn tớnh bi thut toỏn nún xoay tuyn
tớnh v vớ d minh ho
d tớnh toỏn, trong mi bc lp k ta thit lp bng di õy gi l bng
nún xoay thu gn gii bi toỏn quy hoch tuyn tớnh dng chun khi bit mt nún
min ca hm mc tiờu ca bi toỏn.


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

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

1
c


2
c

j
c

n
c

<A
i
,
0
x
>+b
i

<A
i
,
k
x
>+b
i

k=1,2,…
1

2




(
k
s
)

m
b
1

b
2


k
s
b



m
b

11
a

12
a


1 j
a

1n
a

21
a

22
a

2 j
a

2n
a

… …. ….

1
k
s
a

2
k
s
a


k
sj
a

k
sn
a

… … …
1m
a

2m
a

mj
a

mn
a

<A
1
,
0
x
>+b
1

<A

2
,
0
x
>+b
2

……
(<
0
s
A
,
0
x
>+
0
s
b
)


<A
m
,
0
x
>+b
m


<A
1
,
k
x
>+b
1

<A
2
,
k
x
>+b
2

……
(
k
s
A
,
k
x
>+
k
s
b
)



<A
m
,
k
x
>+b
m


1
k
i

2
k
i


( r
k
=
kk
k
sp
i
)


k

n
i

1
k
i
b

2
k
i
b


k
r
b



k
n
i
b


1
1
k
i

k
z

1
2
k
i
k
z

1
k
i
kj
z

1
k
i
kn
z

2
1
k
i
k
z

2

2
k
i
k
z

2
k
i
kj
z

2
k
i
kn
z

… … … …
1
k
r
k
z

2
k
r
k
z


k
r
kj
z

k
r
kn
z

… … … …

1
k
n
i
k
z

2
k
n
i
k
z

k
n
i

kj
z

k
n
i
kn
z

1
,
k
k
s
i
k
Az
2
,
k
k
s
i
k
Az


[
,
kk

sr
k
Az
]


,
k
kn
si
k
Az

-
1
1
,
,
k
s
k
k
s
kk
i
k
i
s
k
Cz

Az


(-
,
,
k
kk
r
k
sr
k
Cz
Az
)

-
,
,
k
sq
kk
k
sq
k k k
i
k
i
s
k

Cz
Az

Bƣớc
k=0,1,2,…
x
k

1
k
x

2
k
x

k
j
x

k
n
x




Bảng lặp nón xoay thu gọn A gồm 2 phần (xem bảng A): Các số liệu ban
đầu đƣợc đƣa vào bảng và các số liệu cần tính toán theo các công thức trong thuật
toán nón xoay đƣợc xây dựng thứ tự theo các bƣớc từ trên xuống dƣới và từ trái

sang phải nhƣ sau:

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


Bƣớc k (k=0, 1, 2, …):
Phần thứ nhất của bảng là khai báo số liệu của bƣớc chuẩn bị:
Đƣa vào các số liệu ban đầu của bài toán nằm trong các cột bao gồm có cột chỉ số
cơ sở 1, 2, …, m, cột số liệu các giá trị b
i
(i=1, 2, …, m), dòng đầu tiên trên cùng
của phần này là các hệ số của hàm mục tiêu, và ma trận hệ số các ràng buộc A cụ
thể là:
- Dòng đầu tiên của bảng là dòng các toạ độ c
j
của véc tơ C của hàm mục tiêu.
- Cột đầu tiên thứ nhất là cột chỉ số của các véc tơ dòng A
i
của ma trận ràng buộc
A của bài toán (L) từ 1 đến m.
- Cột thứ hai là cột các giá trị
( 1,2, , )
i
b i m
của véc tơ cột B của ma trận ràng
buộc.
-Tiếp theo bên phải cột thứ hai là bảng của ma trận hệ số gồm các giá trị của ràng
buộc A: a
ij

(i=1,2,…,m; j =1,2,…,n)
Phần thứ hai của bảng liền với phần thứ nhất là số liệu tính toán các giá trị
của hệ véc tơ chỉ phƣơng
()
i
kk
z i I
và các toạ độ của đỉnh x
k
:
Tại bƣớc k (k = 0, 1, 2, …) bảng gồm các cột và ma trận của giá trị các véc tơ chỉ
phƣơng
()
i
kk
z i I
cụ thể nhƣ sau:
- Cột thứ nhất là cột chỉ số cơ sở i I
k

- Cột thứ hai là cột giá trị b
i
với
k
iI

- Tiếp theo bên phải cột thứ hai là bảng ma trận các véc tơ chỉ phƣơng
()
i
kk

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

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

Từ dòng cuối cùng của phần thứ hai của bảng là dòng các toạ độ của x
k
,
chúng ta đi tính các giá trị
, ( 0,1,2, , )
ik
i
A x b i m
và xây dựng tiếp các cột
chứa các giá trị này ở bên phải ma trận ràng buộc A trong phần thứ nhất của bảng.
Từ cột chứa giá trị
, ( 0,1,2, , )
ik
i

A x b i m
đã biết này ở bƣớc lặp k (vị
trí bên phải ma trận ràng buộc A). Theo thuật toán nón xoay ta xác định đƣợc
tập
()
k
Jx
có hai khả năng:
- Nếu
()
k
Jx
thì dừng và x
k
là một lời giải của bài (L)
- Nếu
()
k
Jx
thì theo thuật toán nón xoay ta chọn đƣợc chỉ số đƣa vào cơ sở s
k

và chúng ta tiến hành tính toán các cột sau:
Bên phải bảng
,
i
kk
z i I
ở phần thứ hai của bảng ta xây dựng cột chứa giá trị
,,

k
s
i
kk
A z i I

Từ cột giá trị này ta xác định đƣợc tập
k
s
I
và theo thuật toán ta có hai khả
năng:
+ Nếu
k
s
I
thì dừng và kết luận bài toán (L) không có phƣơng án.
+ Nếu
k
s
I
thì từ thuật toán nón xoay chúng ta phải xây dựng cột tính giá trị
,
,
,
k
k
i
s
k

s
i
k
Cz
iI
Az
. Từ đây theo (1.21) và (1.22) của thuật toán nón xoay tuyến
tính ta chọn đƣợc chỉ số đƣa ra cơ sở là r
k
.
Đến đây các thông tin để xây dựng bảng lặp ở bƣớc k+1 từ bảng lặp ở bƣớc k
đã đầy đủ, chúng ta xây dựng bảng lặp ở bƣớc k+1 phía dƣới bảng lặp ở bƣớc k
nhƣ sau:
- Cột đầu tiên của bảng lặp ở bƣớc k+1 là cột chỉ số cơ sở
1
( )\
k k k k
I I s r

đƣợc xây dựng bằng cách chuyển cột chỉ số cơ sở của bảng ở bƣớc lặp k xuống và
chỉ cần thay chỉ số r
k
bằng chỉ số s
k
ở bảng mới là đƣợc.

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

- Cột tiếp theo là cột chứa các giá trị b

i
với
1k
iI
(bên phải cột chỉ số cơ sở
1k
I
)
đƣợc xây dựng bằng cách chuyển cột chứa các giá tri b
i
với
k
iI
của bảng ở bƣớc
lặp thứ k xuống và thay giá trị
k
r
b
bằng giá trị
k
s
b
ở bảng mới (bƣớc k+1) .
- Tiếp theo bên phải cột
1
()
ik
b i I
là bảng ma trận các véc tơ chỉ phƣơng
11

,
i
kk
z i I
của nón-min M
k+1
đƣợc tính từ các véc tơ chỉ phƣơng
i
k
z
của nón –
min M
k
ở bảng lặp bƣớc k theo công thức xoay (1.23).
Sau đó ta tính toán đến dòng cuối cùng tiếp theo của bảng này là dòng các
toạ độ của đỉnh nón – min M
k+1
là x
k+1
=
1
1
.
k
i
ik
iI
bz
(theo công thức (1.24))
Đến đây bảng nón xoay mới ở bƣớc lặp k+1 đã đƣợc xây dựng xong.

Quá trình lặp này sẽ kết thúc sau hữu hạn bƣớc bởi định lý 1.6.

Một số phần tử trung tâm cần chú ý khi xây dựng bảng nón xoay thu gọn là:
- Giá trị
, ( 0,1,2, )
k
k
s
k
s
A x b k
dƣơng nằm trong cột chứa các giá trị
, ( 0,1,2, , )
ik
i
A x b i m
đƣợc ở trong dấu móc tròn (
,
k
k
s
k
s
A x b
) tƣơng
ứng với dòng s
k
(đƣợc chọn đƣa vào cơ sở ở bƣớc lặp k) theo mục b
1
) hay b

2
) trong
thuật toán nón xoay tuyến tính.
- Giá trị
,
,
k
kk
r
k
sr
k
Cz
Az
nằm trong cột chứa các giá trị
,
,
,
k
k
i
s
k
s
i
k
Cz
iI
Az
đƣợc ở

trong dấu móc tròn (
,
,
k
kk
r
k
sr
k
Cz
Az
) tƣơng ứng với dòng r
k
(đƣợc cnọn đƣa ra cơ sở ở
bƣớc lặp k) theo tiêu chuẩn (1.21) và (1.22) của thuật toán nón xoay tuyến tính.
- Phần tử xoay
,
kk
sr
k
Az
thuộc cột chứa các giá trị
,,
k
s
i
kk
A z i I
đƣợc nằm
trong dấu móc vuông là [

,
kk
sr
k
Az
].

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

1.4. Thuật toán nón xoay giải bài toán quy hoạch tuyến tính dạng chuẩn với
hàm mục tiêu có hệ số không âm
Trong phần này chúng ta sẽ áp dụng thuật toán nón xoay tuyến tính đã trình bày
trong mục 1.3.1 xây dựng thuật riêng giải bài toán quy hoạch tuyến tính dạng chuẩn
với hàm mục tiêu có hệ số không âm.
1.4.1. Bài toán quy hoạch tuyến tính dạng chuẩn với hàm mục tiêu có hệ số
không âm
Xét bài toán quy hoạch tuyến tính với hàm mục tiêu có hệ sô không âm sau đây:

1
( ) , . min
( ) 0
, 0, 1, ,
n
jj
j
i
i
f x C x c x
Mx

C x d i N

Trong đó x, C
i
, C
n
R
, x (x
1
, x
2
, , x
n
), C
i
(c
i1
,c
i2
, , c
in
), C (c
1
,c
2
, , c
n
) là các
véc tơ dòng bất kỳ, c
j

, d
i
1
R
với

i=1, 2, , N(N 1), và
0, : 1,2, ,
j
c j n
.
Ta viết lại bài toán quy hoạch tuyến tính (M) này ở dạng nhƣ bài toán (L) trong
mục 1.1 và chúng ta gọi là bài toán (M
+
):

j
j=1
i
i
f(x)=<C,x>= . min
()
<A , x>+ b 0, i= 1, 2, , m
n
j
cx
M

Trong đó: m =N+n;
A

i
=-E
i
(i=1, …, n); b
i
=0 (i=1, …,n);
A
n+i
=C
i
(i=1, …, N); b
n+i
= d
i
(i=1, …, N);
Dễ thấy hạng của hệ véc tơ A
i
(i=1, 2, …, m=n+N) bằng n (vì có hệ con là hệ véc
tơ đơn vị
( 1,2, , )
ii
A E i n
là độc lập tuyến tính)

18
S húa bi Trung tõm Hc liu

1.4.2 Xõy dng nún min (nún cc tiu) xut phỏt
D dng thy, vỡ cỏc h s ca hm mc tiờu bi toỏn (M
+

) l khụng õm nờn nún
0
n
E R
chớnh l mt nún min nh l gc to O, cỏc vộc t ch phng ca
cỏc cnh l
0
i
M
z
=
i
E
(i=1, 2, , n). V do ú ỏp dng thut toỏn nún xoay tuyn tớnh
trỡnh by trong phn trờn, chỳng ta thu c mt thut toỏn gii bi toỏn (M
+
)
trong mc sau õy.
1.4.3. Thut toỏn nún xoay tuyn tớnh LD gii bi toỏn quy hoch tuyn tớnh vi
hm mc tiờu cú h s khụng õm
Thut toỏn nún xoay tuyn tớnh LD
B-ớc chuẩn bị (bc 0). Chn nún min ban u M
o
:=
0
n
E R
, nh l
0
M

x
:=
E
0
=O, tp ch s c s I
0
:={1,2, ,n}, cỏc vộc t ch phng ca cỏc cnh ca M
o

l
0
i
M
z
=
i
E
, vi i = 1,2, ,n.
B-ớc k ( k=0, 1, 2, ). Giả sử M
k
là nón - min của bài toán (M
+
) (đã đ-ợc xây
dựng), vi tập chỉ số c s , đỉnh và các véc tơ chỉ ph-ơng ca cỏc cnh ca nún M
k
t-ơng ứng là I
k
:=
12
, , ,

k k k
n
i i i
; x
k
=
k
M
x

i
k
z
=
k
i
M
z
.
Xác định tập J
+
(x
k
) theo (1.6):
( ): 1,2, , : , 0
k j k
j
J x j m A x b
.
1. Nếu J

+
(x
k
) = thì dừng lại. x
k
chính là một lời giải của bài toán (M),
2. Nếu J
+
(x
k
) , ta chn ch s a vo c s theo mt trong hai cỏch sau:
Ta chn s
k
l mt ch sụ tu ý thuc J
+
(x
k
) hoc ta chn s
k
=min{j:j J
+
(x
k
)} (gi l
quy tc chn min) hoc s
k
= max{j: j J
+
(x
k

) (gi l quy tc chn max) và xác
định:
: : , 0
kk
ss
i
kk
I i I A z
;
12
: : , 0 , , ,
k k k
k k k k
s s s
kk
ik
k s s s q
I i I A z i i i
,

×