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

Một cải tiến cách chọn véc tơ đưa vào cơ sở của phương pháp nón xoay giải bài toán quy hoạch 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 (480.77 KB, 34 trang )

..

đại học thái nguyên
Tr-ờng đại học khoa học

V VN CễNG

MT CẢI TIẾN CÁCH CHỌN VÉC TƠ ĐƯA
VÀO CƠ SỞ CỦA PHƯƠNG PHÁP NĨN XOAY
GIẢI BÀI TỐN QUY HOẠCH TUYẾN TÍNH

LUẬN VN THC S TON HC

thái nguyên - năm 2014


đại học thái nguyên
Tr-ờng đại học KHOA HọC

V VN CễNG
[

MT CẢI TIẾN CÁCH CHỌN VÉC TƠ ĐƯA
VÀO CƠ SỞ CỦA PHƯƠNG PHÁP NĨN XOAY
GIẢI BÀI TỐN QUY HOẠCH TUYẾN TÍNH

LUẬN VĂN THẠC SĨ TỐN HỌC

Chun ngành: Tốn ứng dụng
Mã số: 60 46 01 12


Người hướng dẫn khoa học: TS. NGUYỄN ANH TUẤN

Thái Nguyên, 2014


1

Mục lục

Mục lục ..................................................................................................1
Mở đầu...................................................................................................2
Chương 1 Bài toán quy hoạch tuyến tính và phương pháp giải........4
1. Bài tốn quy hoạch tuyến tính tổng quát .........................................4
1.1. Dạng chuẩn và dạng chính tắc ..................................................5
1.2. Đưa bài tốn quy hoạch tuyến tính về dạng chuẩn hoặc chính
tắc..... ................................................................................................5
2. Phương pháp đơn hình và phương pháp nón xoay ..........................7
2.1. Phương pháp đơn hình giải bài tốn QHTT dạng chính tắc .......7
2.2. Phương pháp nón xoay giải bài tốn quy hoạch tuyến tính với
miền ràng buộc là hệ bất phương trình tuyến tính...........................11
2.2.1. Khái niệm về nón đơn hình tuyến tính ...............................11
2.2.2. Khái niệm về cạnh của nón đơn hình .................................11
2.2.3. Khái niệm nón xoay M(r,s) sinh ra t nún M .....................14
2.2.4. Định nghĩa Nún cực tiểu (Nón-min) ..................................17
2.3. Phương pháp nón xoay tuyến tính............................................18
2.3.1. Thuật tốn nón xoay tuyến tính..........................................19
2.3.2. Bảng lặp giải bài tốn qui hoạch tuyến tính bởi thuật tốn
nón xoay tuyến tính và ví dụ minh hoạ ........................................21
Chương 2 Một cách chọn véc tơ đưa vào cơ sở ................................26
2.1. Lựa chọn chỉ số đưa vào cơ sở ....................................................26

2.2. Ví dụ bằng số minh hoạ ..............................................................30
Tài liệu tham khảo ..............................................................................32


2

Mở đầu
Như chúng ta đã biết, bài toán quy hoạch tuyến tính (QHTT) 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 tốn quy hoạch tuyến tính dạng chuẩn là bài tốn có miền ràng buộc
là một hệ bất phương trình tuyến tính, cịn bài tốn quy hoạch tuyến tính dạng
chính tắc là bài tố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. Trong thế kỷ trước, cùng với
sự phát triển mạnh mẽ của công nghệ thơng tin, lý thuyết tối ưu đã có những
bước tiến lớn, trong đó phải nói đến các phương pháp và các thuật tốn giải
bài tốn quy hoạch tuyến tính, gắn liền với tên tuổi của nhiều nhà toán học
như L.V. Kantorovich (1939), George Dantzig (1947), Lemke (1954), Leonid
Khachian (1979), Karmarkar (1984), ...
Nội dung của luận văn là đề nghị một quy tắc chọn chỉ số đưa vào cơ sở
trong thuật tốn nón xoay tuyến tính trình bày ở cuốn sách [5] giải trực tiếp
bài tốn quy hoạch tuyến tính với miền ràng buộc là hệ bất phương trình
tuyến tính. Cụ thể là chúng ta đề nghị một quy tắc chọn chỉ số ràng buộc đưa
vào cơ sở mới thay cho cơ sở cũ làm cho số bước lặp đi tới lời giải là giảm đi.
Luận văn gồm 2 chương:
Chương 1: Trình bày bài tốn quy hoạch tuyến tính tổng quát và hai dạng
cơ bản của bài toán quy hoạch tuyến tính là dạng chính tắc và dạng chuẩn với
hai phương pháp giải bài tốn quy hoạch tuyến tính là phương pháp đơn hình
và phương pháp nón xoay.
Chương 2: Nội dung dựa trên phương pháp nón xoay tuyến tính trình bày
trong chương 1, đề nghị một quy tắc MAX giải bài tốn quy hoạch tuyến tính

với miền ràng buộc là hệ bất phương trình tuyến tính và ví dụ bằng số minh
họa.


3

Luận văn này hoàn thành dựa trên cuốn sách “Quy hoạch tuyến tính với
phương pháp nón xoay” [5] và trên các sách, tài liệu có trong phần tài liệu tham
khảo.
Tác giả
Vũ Văn Công


4

Chương 1
Bài tốn quy hoạch tuyến tính và phương pháp giải
Trong chương này chúng tơi trình bày bài tốn quy hoạch tuyến tính tổng
qt và hai dạng của bài tốn quy hoạch tuyến tính là dạng chính tắc và dạng
chuẩn. Sau đó trình bày phương pháp đơn hình giải bài tốn quy hoạch tuyến
tính dạng chính tắc và phương pháp nón xoay giải bài tốn quy hoạch tuyến
tính với miền ràng buộc là hệ bất phương trình tuyến tính.

1. Bài tốn quy hoạch tuyến tính tổng qt
Để nhất qn lập luận ta xét bài tốn tìm cực đại, sau đó ta sẽ xét cách
chuyển bài tốn tìm cực tiểu sang tìm cực đại.
Bài tốn tổng qt của quy hoạch tuyến tính có dạng:
n

f ( x) =< C , x >= ∑ ci .xi → max

i =1

(1.1)

n

∑ a .x (≤, =, ≥)b , i = 1, 2,..., m
ij

j

i

j =1

(1.2)
(1.3)

x j ≥ 0, j = 1, 2,..., n.

Nếu gặp bài toán Min, tức là:
n

f ( x) = ∑ c j x j → min
j =1

x ∈ D
Thì giữ nguyên ràng buộc và đưa về bài toán Max bằng cách:
n


f ( x ) = −∑ c j x j → max
j =1

x∈D

Nếu bài tốn Max có phương án tối ưu là x* thì bài tốn Min cũng có
*
phương án là x và f min = − f max .
Thật vậy, vì x* là phương án tối ưu của bài toán Max nên ta có:


5
n

n

f max = − ∑ c j x ≥ −∑ c j x j , ∀x ∈ D
*
j

j =1

j =1

Hay
n

n

∑ c x ≤ ∑ c x , ∀x ∈ D

j

*
j

j

j =1

j

j =1

Chứng tỏ x* là phương án tối ưu của bài toán Min và
n

f min = ∑ c j x*j = − f max .
j =1

1.1. Dạng chuẩn và dạng chính tắc
Người ta thường xét bài tốn quy hoạch tuyến tính dưới hai dạng sau:
• Dạng chuẩn:
n

∑c x
j

→ max

j


j =1

n

∑a x
ij

j

≤ bi , i = 1,..., m

j =1

x j ≥ 0, j = 1,..., n
• Dạng chính tắc:
n

∑c x
j

j

→ max

j

= b j , i = 1,..., m

j =1


n

∑a x
ij

j =1

x j ≥ 0, j = 1,..., n

1.2. Đưa bài toán QHTT về dạng chuẩn hoặc chính tắc
Bất kỳ quy hoạch tuyến tính nào cũng có thể đưa về một trong hai dạng
chuẩn hoặc chính tắc nhờ phép biến đổi tuyến tính sau:
1. Một ràng buộc


6
n

∑a

≥ bi

ij

j =1

Có thể đưa về ràng buộc:
n


−∑ aij x j ≤ −bi ,
j =1

bằng cách nhân hai vế với (-1) và viết lại
n

∑a x
'
ij

≤ bi' .

j

j =1

2. Một ràng buộc đẳng thức
n

∑a x
ij

j

= bi

j =1

Có thể thay bằng hai ràng buộc bất đẳng thức:
n


∑a x
ij

n

j

≤ bi ; −∑ aij x j ≤ −bi .

j =1

j =1

3. Một biến x j khơng bị ràng buộc dấu có thể thay bởi hiệu của hai
biến không âm bằng cách đặt:

x j = x +j − x −j với x +j ≥ 0, x −j ≥ 0 .

4. Một ràng buộc bất đẳng thức
n

∑a x
ij

j

≤ bi

j =1


Có thể đưa về ràng buộc đẳng thức bằng cách đưa vào biến phụ yi ≥ 0 :
n

∑a x
ij

j

+ yi = bi .

j =1

Về nguyên tắc, áp dụng nhiều lần các phép biến đổi 1, 2 và 3 ta có thể đưa
một bài tốn quy hoạch tuyến tính bất kỳ về dạng chuẩn, sau đó áp dụng
nhiều lần phép biến đổi 4 ta sẽ đưa nó về dạng chính tắc.


7

2. Phương pháp đơn hình và phương pháp nón xoay
Trong mục này chúng tơi trình bày sơ lược về phương pháp đơn hình giải
bài tốn quy hoạch tuyến tính dạng chính tắc và phương pháp nón xoay [5]
giải bài tốn quy hoạch tuyến tính với miền ràng buộc là hệ bất phương trình
tuyến tính.

2.1. Phương pháp đơn hình giải bài tốn QHTT dạng chính tắc
Phương pháp đơn hình giải bài tốn QHTT dạng chính tắc do nhà tốn học
Dantzig người Mỹ đề xuất năm 1947, sau đây chúng tôi xin tóm tắt sơ lược
phương pháp này.

Xét bài tốn QHTT dạng chính tắc sau:

< c, x >→ max
Ax = b

x≥0

(1.4)
(1.5)
(1.6)

Trong đó A là ma trận kích thước m.n, với m ≤ n và hạng của ma trận A
bằng m. Cơ sở của thuật tốn đơn hình chúng ta có thể xem trong sách [3]. Để
ngắn gọn chúng tơi chỉ trình bày tóm tắt các bước giải của thuật tốn đơn hình
dưới đây như sau:
Thuật tốn đơn hình
Bước 1: Xây dựng bảng đơn hình xuất phát. Tìm một phương án cực biên
xuất phát x và cơ sở của nó Aj , j ∈ J
Xác định các số z jk bởi hệ phương trình:

∑z

jk

A j = Ak

(1.7)

j∈J


Đối với mỗi k ∉ J , tính các ước lượng:
∆ k = ∑ z jk c j − ck
j∈J

Cịn với j ≠ 0 thì ∆ j = 0 .

(1.8)


8

Tính giá trị hàm mục tiêu

Z0 = ∑ c j x j .
j∈J

Bước 2: Kiểm tra tối ưu
Nếu ∆ k ≥ 0, k ∉ J thì x là phương án tối ưu, dừng thuật toán. Trái lại,
chuyển sang bước 3.
Bước 3: Tìm véctơ đưa vào cơ sở . Có hai khả năng xảy ra:
Tồn tại k ∉ J sao cho ∆ k < 0 và z jk ≤ 0, j ∈ J thì bài tốn
QHTT khơng có lời giải tối ưu (Z khơng bị chặn trên). Dừng
thuật tốn.
Đối với mỗi k ∉ J sao cho ∆ k < 0 đều tồn tại j ∈ J : z jk > 0 .
Khi đó chọn chỉ số s theo tiêu chuẩn:
∆ s = min {∆ k / ∆ k < 0}

(1.9)

Đưa véctơ As vào cơ sở.

Bước 4: Tìm véctơ loại khỏi cơ sở. Xác định
 xj
 x
/ z jk > 0  = r
 zrs
 zrs

θ r = min 

(1.10)

Và đưa véctơ Ar ra khỏi cơ sở.
Bước 5: Chuyển sang phương án cực biên mới và cơ sở mới. Cơ sở mới là

{A , j ∈ J }
'

j

với J ' = J \ {r} ∪ {s} . ∀j ∈ J ' các thành phần của phương án cực

'
biên mới x được tính theo công thức:

 x − ( xr / zrs ) z js , nÕu j ≠ s
x 'j =  j
x r / zrs ,
nÕu j = s



(1.11)

Khai triển của các véctơ Ak theo các véctơ cơ sở mới được tính theo cơng
thức (1.12). Quay lên bước 2.


9

Cơng thức đổi cơ sở và bảng đơn hình
Ta xét các công thức chuyển từ phương án cực biên x với cơ sở J sang
phương án cực biên x ' với cơ sở J'. Ta đã có cơng thức (1.11) để tính các
thành phần của x ' .
'

Bây giờ ta thiết lập cơng thức tính các số z jk ta có:

As = ∑ z js Aj , từ đẳng thức này qua các phép biến đổi (xem [6]) ta có
j∈J

cơng thức sau:

 z − ( zrk / zrs )z js , nÕu j ≠ r
z 'jk =  jk
zrk / zrs ,
nÕu j = r


(1.12)

'

Sau khi có z jk ta tính:

∆'k = ∑ z 'jk c j − ck

(1.13)

j∈J '

Để dễ tính tốn, trong mỗi bước lặp ta thiết lập bảng đơn hình.
Nếu tất cả các số trong dịng cuối (trừ hàm mực tiêu f ) đều không âm,
nghĩa là ∆ k ≥ 0, ∀k , khi đó x là phương án tối ưu.

cj

Cơ sở

Phương
án

c1

A1

x1








cj

Aj

xj







cr

Ar

xr







cm

Am

c1 … c j




cr



cm

… ck



cs



A … Aj



Ar



Am

… Ak




As

… An

1

… 0



0



0

… z1k



z1s

… z1n

0

… 1




0



0



z jk

… z js

… z jn

cn

0 …

0



1



0




zrk

… zrs

… zrn

xm

0 …

0



0



1



zmk

… zms

… zmn

f


0 …

0



0



0



∆k

… ∆s … ∆n


10

Nếu dịng cuối (khơng kể f ) có những số âm thì xem thử có cột nào cắt
dịng cuối ở một số âm mà mọi số trong cột đó đều âm hay khơng. Nếu có cột
nào như thế thì bài tốn khơng có phương án tối ưu.
Nếu trái lại thì chọn cột s sao cho ∆ s = min {∆ k / ∆ k < 0} , rồi chọn (trong số
các dòng cắt cột s ở những số dương) dòng r sao cho:
xr
 x


= min  j / z js > 0  .
zrs
 z js

Cột s gọi là cột quay, véctơ As được đưa vào cơ sở. Dòng r gọi là dòng
θ0 =

quay. Véctơ Ar bị đưa ra khỏi cơ sở.
Phần tử zrs > 0 là giao của cột quay và dịng quay gọi là phần tử chính của
phép quay. Các phần tử z js , j ≠ r gọi là phần tử quay.
Các công thức (1.11), (1.12) và (1.13) gọi là các công thức đổi cơ sở. Bảng
đơn hình mới suy được từ bảng cũ bằng cách thay cr , Ar trong dòng quay
bằng cs , As . Sau đó thực hiện các phép biến đổi dưới đây:
1) Chia mỗi phần tử ở dòng quay cho phần tử chính (được số 1 ở vị trí của

zrs cũ). Kết quả thu được gọi là dịng chính.
2) Lấy mỗi dịng khác trừ đi tích của dịng chính nhân với phần tử quay
tương ứng được số 0 ở mọi vị trí còn lại của cột quay.
Dòng mới = dòng cũ tương ứng − dịng chính

× phần tử quay. Lưu ý

rằng sau phép quay thì ở vị trí ∆ s ta thu được số 0 vì lúc này As trở thành
véctơ đơn vị cơ sở, nghĩa là ta đã làm mất số âm nhỏ nhất ở dịng cuối của
bảng cũ.
Tồn thể phép biến đổi trên gọi là phép xoay quanh phần tử chính zrs . Sau
khi thực hiện phép quay ta có một phương án mới và một cơ sở mới. Nếu
chưa đạt yêu cầu, nghĩa là còn ∆ k < 0 thì ta lại tiếp tục quá trình.



11

2.2. Phương pháp nón xoay giải bài tốn QHTT với miền ràng
buộc là hệ bất phương trình tuyến tính
Chúng ta đã biết, bất kỳ một bài toán quy hoạch tuyến tính nào cũng dễ
dàng đưa về bài tốn quy hoạch tuyến tính với miền ràng buộc là hệ bất
phương trình tuyến tính sau đây:
n

=<
>=
f
(
x
)
C
,
x
ci .xi → min


i =1
( L) 
 x ∈ P := { x ∈ R n : < Ai , x > +b ≤ 0, i = 1, 2,..., m}
L
i


x∈Rn, Ai là véctơ dòng và Ai∈Rn, m≥ n, Ai (ai1, ai2, ..., ain) ≠ O(0,…,0),
C(c1, c2, …, cn), bi∈ R1, i=1, 2, ..., m. Hạng của hệ Ai (i=1, 2, …, m) bằng

n, giả thiết này rất bình thường bởi miền ràng buộc PL của bài tốn quy hoạch

tuyến tính bao giờ cũng có ràng buộc về dấu của biến x.

2.2.1. Khái niệm 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 PL , cụ thể
là:
M:={x ∈ Rn : <Ai, x>+ bi≤ 0 i ∈ I}

(2.1)

Trong ®ã I:= {i1 , i2 ,..., in } ⊂ {1, 2, ..., m}, /I/ = n (ở đây /I/ là số đo hay là số phần
tử của tập I) vµ Ai vi i I là một h độc lập tun tÝnh. Tập M gọi là nón đơn
hình tuyến tính ca h rng buc PL với đỉnh xM là nghiệm (đợc xác định)
tho món hệ sau:
<Ai, x>+ bi = 0, ∀ i ∈ I

(2.2)

Hệ véc tơ Ai víi i ∈ I được gọi là cơ sở của nón M, hay còn gọi là cơ sở
của đỉnh xM. Tập I gọi là tập chỉ số của cơ sở của nón M.
2.2.2. Khái niệm về cạnh của nón đơn hình
Với mỗi i ∈ I, tập hợp các điểm x ∈ Rn thỏa mãn hệ:


12

<Ar, x>+ br = 0, ∀r∈ I\{i}
gọi là đường thẳng i của nón M.


(2.3)

Tập các điểm x thoả mãn hệ:
r
< A , x > +br = 0, ∀r ∈ I \ {i}
gọi là cạnh i của nón M.
 i
< A , x > +bi ≤ 0

Với mỗi i (i∈ I), Véc tơ zMi (i I), xác định bởi h:
r
i
A , zM >= 0, ∀r ∈ I , r ≠ i
 i i
< A , zM >= −1

(2.4)

gọi là véc tơ chỉ phương của cạnh i của nón M.
Đỉnh xM của nón M có thể xác định từ (2.2), trong trường hợp biết hệ véc
tơ chỉ phương zMi (i∈ I) thì chúng ta có thể sử dụng cơng thức sau:
x M = ∑ bi .zMi

(2.5)

i∈I

Định lý 2.1. Nếu xM là đỉnh của nón đơn hình M được xác định từ (2.2) và
hệ véc tơ chỉ phương zMi (i∈ I) của cạnh i của nón M xác định từ (2.4) thì
chúng ta có thể xác định đỉnh xM từ cơng thức sau:

x M = ∑ bi .zMi
i∈I

Chứng minh:
Thật vậy, với mỗi i’ (i’∈ I), chúng ta thay x= ∑ bi .zMi vào vế trái của (2.2)
i∈I

ta được:
< Ai , ∑ bi .zMi > +bi, =∑ bi < Ai .zMi > +bi, = −bi, + bi, = 0
,

,

i∈I
i
M

i∈I

(Vì z thoả mãn (2.4))
Mặt khác do hệ Ai’ (∀ i’∈ I) là hệ độc lập tuyến tính nên nghiệm của hệ
(2.2) là duy nhất, suy ra ta có cơng thức (2.5)
Vậy từ định lý 2.1 ta suy ra trong trường hợp biết hệ véctơ chỉ phương zMi
(i∈ I) thì chúng ta có thể xác định đỉnh xM từ công thức sau:
x M = ∑ bi .zMi
i∈I


13


Dễ thấy tập các điểm x nằm trên cạnh i của nón M đều có thể biểu diễn
như sau:
x = xM + λi . zMi , λi ≥ 0, ∀ i∈ I

(2.6)

Định lý 2.2. Hệ véctơ chỉ phương zMi với i∈ I là một hệ độc lập tuyến
tính.
Chứng minh: Ta chứng minh bằng phản chứng, giả sử ngược lại hệ véc tơ
chỉ phương zMi với i∈ I là một hệ phụ thuộc tuyến tính. Khi đó sẽ tồn tại một
trong n véctơ của hệ được biểu diễn tuyến tính qua các véc tơ còn lại như sau:

zMi0 =



βi .zMi

i∈I ( i ≠ i0 )



Vậy: < Ai , zMi > = < Ai ,
0

0

0

.


βi .zMi > =

i∈I ( i ≠ i0 )



βi . < Ai , zMi > = 0

i∈I ( i ≠ i0 )

Điều này mâu thuẫn với < A , z >= −1 (từ (2.4))
i0

0

i0
M

.

Ta ký hiÖu:
J+(xM):= {j∈ {1, 2, ..., m}: <Aj, xM>+ bj > 0}
(2.7)
+ M
M
Râ rµng khi J (x ) = thì x chính là một điểm chấp nhận của bài toán
(L). Chúng ta giả sử J+(xM) . Với mỗi s J+(xM), chúng ta ký hiÖu nh−
sau:
Is := {i∈ I: < As, zMi > ≠ 0 } ⊂ I := {i1 , i2 ,..., in }

I0 := {i∈ I: < As, zMi > = 0} } ⊂ I := {i1 , i2 ,..., in }
Ta thy: I = I0 I s .

(2.8)
(2.9)

Với mỗi i Is thì đờng thẳng x=xM+. zMi sẽ giao vi siêu phẳng
<As, x>+ bs=0 tại điểm: xi = xM + αi. zMi .
Trong ®ã:

αi =-

< As , x M > +bs
< As , zMi >

(2.10)
(2.11)

Ta gäi
I +s := {i∈ Is : αi >0} = {i ∈ I s :< As , z Mi >< 0} ={ is1 , is 2 ,..., isq } (2.12)
và I −s := {i∈ Is : αi <0}.
s
s
Rõ ràng I + ⊂ I ⊂ I .


14

Định lý 2.3. s J + ( x M ) thì I s ≠ ∅ .
Chứng minh: Giả sử ngược lại I s = ∅ thì dễ dàng thấy I 0 = I := {i1 , i2 ,..., in }

tức là ta có < As , z i >= 0, ∀i ∈ I , mà theo định lý 2.2 thì hệ zMi (∀i ∈ I ) là một hệ n
véc tơ độc lập tuyến tính, suy ra As = O(0,0,…,0). Điều này mâu thuẫn vói giả
thiết của bài tốn (L) là Ai (ai1, ai2, ..., ain) ≠ O(0,…,0) , i = {1, 2,..., m} .
Định lý 2.4. I +s = ∅ thì tập phương án của bài tốn (L) l rng.
Chứng minh. (xem [5]).
Định lý này cho ta kết luËn r»ng , nÕu bài toán (L) cã Ýt nhÊt một điểm chấp
nhận đợc thì I +s là một tập khác rỗng.

2.2.3. Khỏi nim nún xoay M(r,s) sinh ra t nón M
Giả sử M là một nón đơn hình tuyến tính của hệ ràng buộc PL xác định bởi
(2.1) và J+(xM)≠Ø, khi đó với mỗi r∈ I s , tËp hợp các điểm x thoả m n hệ bất
đẳng thức:
i
< A , x > +bi ≤ 0, ∀i ∈ I , i ≠ r

s
< A , x > +bs ≤ 0

(2.13)

xác định một nón n hỡnh tuyn tớnh mi gi l nún xoay M(r,s), đỉnh là:
xM(r,s) =x r = xM + r. zMr
trong đó r xác định từ (2.11).

(2.14)

Đỉnh xr tho¶ m n: <Ai, xr>+ bi = 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.



15

Bổ đề 2.1. Hệ Ai với i ∈ I(r,s) là một hệ độc lập tuyến tính.
Chứng minh. Thật vậy, nếu ngược lại hệ Ai với i ∈ I(r,s) là phụ thuộc tuyến
tính thì dễ dàng suy ra tồn tại biểu diễn:



As =

βiAi => < As, zMr >=<

i∈I \{ r }



βiAi, zMr >=

i∈I \{ r }



βi<Ai, zMr >=0

i∈I \{ r }

Điều này mâu thuẫn với <A , z > ≠ 0 (vì r ∈ I ).
s


r
M

s

Bổ đề này cho ta thấy nún xoay M(r,s) vn l mt nún n hỡnh.
Các véctơ chØ ph−¬ng zMi ( r ,s ) , i∈ I(r,s) của nón xoay mi M(r,s) đợc xác
định từ (2.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 xi, xr, zMi , zMr (xác đinh từ (2.4), (2.10)
và (2.11)) với i, r thuộc I là tập chỉ số của cơ sở cũ:

zMi ( r , s )


 zi
 M
 i < As , z Mi > r
=  zM −
zM
s
r
<
,
>
A
z
M



1
.z Mr
−
s
r
 < A , zM >

khi i ∈ I 0
khi i ∈ I s , i ≠ r

(2.15)

khi i = s

Các công thức này gọi là các công thức đổi cơ sở, bổ đề dưới đây chứng
minh các công thức trên.
Bổ đề 2.2: Giả sử M là nón xác định bởi: M:={x ∈ Rn : <Ai, x>+ bi ≤ 0 i

∈ I } với các véc tơ chỉ phương

z Mi của các cạnh xác định theo (2.4), các giao

điểm xi xác định theo (2.10), (2.11). Khi đó nón xoay M(r,s) có đỉnh là
xM(r,s)=xr xác định từ (2.14) với cơ sở tương ứng là I(r,s) = (I∪ {s}\{r}) và các
véc tơ chỉ phương của các cạnh tương ứng là zMi ( r ,s ) được xác định bởi (2.15).


16

Chứng minh:

Ta có với mỗi i∈ I thì:
< Aj, zMi > = 0 ∀j ∈ I, j ≠ i
< Ai, zMi > = - 1
Ta cần phải chứng minh với mỗi i ∈ I(r,s) thì:

(2.16)
(2.17)

< Aj, zMi ( r ,s ) >= 0, ∀j∈ I(r,s), j ≠ i
< Ai, zMi ( r ,s ) >=-1
Thật vậy:
1) Với mỗi i ∈ I(r,s) mà i ∈ Is, i ≠ r và chý ý tới (2.16), (2.17) ta có:
< Aj, zMi ( r ,s ) >=< Aj, zMi −

αr r
α
z M ) >=< Aj, zMi > − r . < A j , zMr > = 0
αi
αi

Vậy < Aj, zMi ( r ,s ) >=0 ∀ j ∈ I(r,s), j ≠ i
Còn <Ai, zMi ( r ,s ) >=< Ai, zMi ( r ,s ) > = < Ai, zMi −
=<Ai, zMi > −

αr r
z )> =
αi M

αr
. < Ai , zMr > =< Ai, zMi > = -1

αi

Tóm lại ta có: Với mỗi i∈ Is, i ≠ r
< Aj, zMi ( r ,s ) >= 0, ∀j∈ I(r,s), j ≠ i
< Ai, zMi ( r ,s ) >=-1
(chú ý αi ≠ 0, vì i є Is).
3) Với i=s ta chứng minh như sau:
Ta có:
1
1
.zrM>=- s r .<Aj, zrM>=0, ∀j∈ I(r,s), j≠s
r
< A , zM >
< A , zM >
1
1
Còn <As, zsM(r,s)> = <As,.zrM>= - s r . <As, zrM>=-1.
< As , z Mr >
< A , zM >

<Aj, zMs ( r ,s ) >=
s

4) Với mỗi i ∈ I(r,s) mà i ∈ I0 và chý ý tới (2.16),(2.17) ta có:
< Aj, zMi ( r ,s ) >=< Aj, zMi >=0, ∀j∈ I(r,s), j ≠ i
Còn < Ai, zMi ( r ,s ) >=< Ai, zMi >=-1,
Tóm lại ta có: với mỗi i ∈ I(r,s) thì:
< Aj, zMi ( r ,s ) >= 0, ∀j∈ I(r,s), j ≠ i



17

< Ai, zMi ( r ,s ) >=-1
Bổ đề đã được chứng minh.
Sau đây chúng ta đưa ra khái niệm thế nào là một nón cực tiểu của hàm
f(x) = <C,x>
2.2.4. Định nghĩa Nún cc tiu (Nún-min)
Nón đơn hình tuyến tính M với đỉnh là xM đợc gọi là nún cực tiểu (nón –
min) cđa hàm f(x)=<C,x> của bài tốn (L) nÕu f(xM)≤ f(x) , ∀x ∈ M.
Ta nãi M là một nón - min của bài toán (L) khi M là một nón – min của
hàm mục tiêu f của bài tốn (L).
Giả sử M là một nón đơn hình xác định từ hệ (2.1) đỉnh là xM, víi vÐc t¬
chỉ phương của cạnh i là zMi (i∈ I), xác định bởi (2.4), ta cú nh lý sau.
nh lý 2.7. M là một nón - min của hàm f(x)=<C,x> khi và chỉ khi:
<C, zMi > ≥ 0, ∀i ∈ I.
Giả sử M là một nún - min ca hm mục tiêu f(x)=<C,x> của bài toán (L).
Gäi
(2.18)

Vs := {v ∈ I +s : f(xv) = min {f(xi)}}
i∈I +s

Vậy Vs= {v ∈ I +s : <C,xv> = min {<C,xi>}}
i∈I +s

i

Thay x và x xác định từ công thức (2.10) vào trên ta có:
v


Vs := {v ∈ I +s : <C,xv> = min {<C,xi>}}=
i∈I +s

={ v ∈ I :< C , x + α v .z >= min{< C , x M + α i .zMi >} }=
s
+

M

v
M

i∈I +s

={ v ∈ I : α v . < C , z >= min{α i . < C , zMi >} }=
s
+

={ v ∈ I +s : −(< As , x M > +bs ).
{ v ∈ I +s : −
Vậy

Vs:={ v ∈ I +s : −

v
M

i∈I +s


< C, z >
< C , z Mi >
s
M
=
min{

(
<
A
,
x
>
+
b
).
} }=
s
< As , z > i∈I+s
< As , zMi >
v
M
v
M

< C , z Mv >
< C , z Mi >
=
min{


}}
< As , z Mv > i∈I+s < As , z Mi >

< C , z Mv >
< C , zMi >
=
min{

}}
< As , z Mv > i∈I+s < As , z Mi >

(2.19)


18

nh lý 2.8. Vi mỗi r Vs xỏc nh t (2.19), nếu M là một nón cực tiểu
(nón – min) của hàm mục tiêu của bài tốn (L) thì nãn M(r,s) xác định từ
(2.13) cũng lµ mét nón cực tiểu (nún min) ca hm mc tiờu bài toán (L).
Chứng minh. (xem [5]).
Đỉnh x M ( r , s ) của nón xoay M(r,s) cịn có thể xác định cơng thức sau đây khi
biết các véctơ chỉ phương các cạnh của nón xoay M(r,s):

x M ( r ,s ) =



bi .z Mi ( r , s )

(2.20)


i∈I ( r , s )

Dới đây chúng ta sẽ xõy dng thut toỏn nún xoay giải bài toán (L) dựa
vo cơ sở lý thuyt trỡnh by cỏc phn trờn và định lý 2.8.

2.3. Phương pháp nón xoay tuyến tính
Một biến thể của phương pháp nón - min giải bài tốn qui hoạch gần lồigần lõm đề nghị trong cuốn sách “Quy hoạch gần lồi - gần lõm ứng dụng vào
quy hoạch tuyến tính” (NXB Khoa học và kỹ thuật năm 2011) ([1]) trình bày
dưới đây sẽ cho chúng ta một phương pháp giải trực tiếp bài tốn quy hoạch
tuyến tính với miền ràng buộc là hệ bất phương trình tuyến tính với cơ sở xuất
phát từ đỉnh một nón - min của hàm mục tiêu gọi là phương pháp nón xoay
tuyến tính được thể hiện dưới dạng thuật toán chi tiết.
Xét bài tốn (L) trong trường hợp biết một nón – min của bài tốn (L).
Ý tưởng của thuật tốn nón xoay tuyến tính giải bài tốn (L) như sau:
Xuất pháp từ một nón - min M ban đầu của hàm mục tiêu bài tốn, chúng
ta kiểm tra xem đỉnh của nó có thuộc miền chấp nhận của bài tốn khơng (tức
là đỉnh này có thoả mãn tất cả các ràng buộc khơng) nếu đỉnh này thuộc miền
chấp nhận thì nó là một lời giải của bài toán (L). Ngược lại ta xây dựng nón
xoay mới M(r,s) (vẫn là nón - min) từ nón cũ M của bài tốn (L) và lặp lại q
trình kiểm tra nón xoay mới này tương tự như đối với nón M, q trình này
được thực hiện cho đến khi đỉnh của nón xoay mới M(r,s) thuộc miền chấp


19

nhận của bài toán (L) (khi miền ràng buộc của bài tốn (L) có phương án)
hoặc sẽ phát hiện ra miền ràng buộc của bài toán (L) là rỗng.
2.3.1. Thuật tốn nón xoay tuyến tính.
B−íc chn bÞ (bước 0). Giả sử ta đã biết M0 lµ nãn - min cđa bài toán

(L) vi tp ch s c s l I0:={ i10 , i20 ,..., in0 }, x0 = x M là đỉnh của M0 và các véctơ
0

chỉ phơng ca cỏc cạnh i của nón M0 là z0i = zMi (i ∈ I0).
0

B−íc k ( k=0, 1, 2, ...). Gi¶ sư Mk lµ nón cực tiểu (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éctơ chỉ phơng ca
cỏc cnh ca nún Mk tơng ứng là Ik:= {i1k , i2k ,..., ink } ; xk = x M vµ zki = zMi .
k

k

Xác định tập J+(xk) theo (2.9): J + ( x k ) := { j ∈ {1, 2,..., m} :< A j , x k > +b j > 0}
1. Nếu J+(xk) = thì dừng lại. xk chính là một lời giải của bài toán (L),
2. Nếu J+(xk) ∅ , ta chọn chỉ số đưa vào cơ sở theo một trong hai cách
sau:
Ta chọn sk là một chỉ sô tuỳ ý thuộc J+(xk) hoặc ta chọn
(2.21)
sk=min{j:j∈J+(xk)} (gọi là qui tắc chọn min)
hoặc sk = max{j: j ∈ J+(xk) (gi l qui tc chn max)
và xác định: I s := {i ∈ I k :< As , zki >≠ 0} ;
k

k

} {

{


}

(2.22)

I +sk := i ∈ I sk :< Ask , zki >< 0 = iskk 1 , iskk 2 ,..., iskk qk ,

2.1. NÕu I +s = ∅ thì dừng lại, suy ra bài toán (L) không có phơng án.
k

2.2. Nếu I +s :
k

Gọi

V sk :={ v ∈ I +sk : −

< C , zkv >
< C , zki >
=
min{

}}
< Ask , zkv > i∈I+sk < Ask , zki >

(2.23)

vµ chọn chỉ số đưa ra khỏi cơ sở theo một trong hai cách sau:
Ta chọn rk là chỉ số tuỳ ý thuộc V s .
k


hoặc ta chọn
rk = min{v: v ∈ V s } hoặc rk = max{v: v ∈ V s }
(2.24)
(cách chọn chỉ số này gọi là qui tắc chọn min (hoặc là qui tắc chọn max)).
k

k


20

Và ta xây dựng nún xoay Mk+1 = Mk(rk, sk) sinh ra từ nón-min Mk (xem
mục 2.2.3), tập chỉ số cơ sở là Ik+1= Ik(rk, sk) = (Ik ∪ {sk}) \ {rk}; và các véc tơ
chỉ phơng zki +1 (sử dông (2.15)):


 zi
 k
 i < Ask , zki > rk
i
.zk )
zk +1 = ( zk −
sk
rk
<
A
,
z
>
k



1
.zkrk
−
sk
rk
 < A , zk >

khi i ∈ Ik0
khi i ∈ Iksk , i ≠ rk

(2.25)

khi i = sk

Tõ (2.5) và (2.14): xk+1=x M k ( rk , sk )= xkr =xk+ α rk .zkr =
k

k

k

k

= x -

< Ask , x k > +bsk
< Ask , zkrk >


. zkrk =

∑ b .z
i

i
k +1

(2.26)

i∈I k +1

Quay trở lại bước k với k ← k+1
Một số chú ý:
1) Từ định lý 2.8 ta d dng cú bổ đề 2.3 dưới đây và do đó dƠ thÊy nón
xoay Mk+1 đợc xây dựng (trong thut toỏn) sinh ra từ nón-min Mk vÉn lµ mét
nãn - min cđa bµi to¸n (L).
2) Sù lùa chän chỉ số đưa vào sk = min{j: j ∈ J+(xk)} và chỉ số đưa ra rk =
min{v: v ∈ Vks } 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ý 2.9 di õy.
3) Cụng thc (2.25) gọi là công thức xoay cơ sở và phần tử < As , zkr >
k

k

được gọi là phần tử xoay, nó là trung tâm để đổi các véc tơ chỉ phương zki của
hệ cơ sở cũ sang hệ cơ sở mới zki +1 theo công thức xoay (2.25).
4) Để cho gọn chúng ta đặt < Ai , x k > +bi = Ai ( x k ), i = 1, 2,..., m
Dựa trên định lý 2.9, chúng ta dễ dàng chứng minh được bổ đề sau:



21

Bổ đề 2.3. Tại mỗi bước lặp k, khi giải bài tốn (L) theo thuật tốn nón
xoay tuyến tính với qui tắc chọn chỉ số đưa vào cơ sở và đưa ra khỏi cơ sở là
(2.21), (2.22) và (2.23) thì nón xoay Mk+1 được xây dựng trong thuật tốn vẫn
k
k +1
là một nón – min của hàm mục tiêu và ta có: f ( x ) ≤ f ( x ), ∀k = 1, 2,...

Sù lùa chän sk = min{j: j ∈ J+(xk)} và rk(sk)= min{v: v ∈ V s }( hoặc sk =
k

max{j: j ∈ J+(xk)} và rk(sk) = max{v: v ∈ V s }) sÏ lµm cho thuËn toán đề nghị
k

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ý 2.9. Gii bi toỏn (L) theo tht to¸n nón xoay với chỉ số chọn
đưa vào cơ sở là sk = min{j: j ∈ J+(xk)} (hoặc sk = max{j: j ∈ J+(xk)}) và chỉ
số chọn đưa ra khỏi cơ sở tương ứng là rk(sk)= min{v: v ∈ V s } (hoặc tương
k

ứng là rk(sk)= max{v: v ∈ V s }) sẽ kÕt thóc sau mét số hữu hạn bớc lặp và
k

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 PL của bài
toán (L) là rỗng.
Chng minh nh lý ny có thể tìm thấy trong [5].

Năm 1977 RG. Bland đã đề xuất qui tắc tránh xoay vòng tương tự như
trên cho việc giải bài tốn qui hoạch tuyến tính dạng chính tắc.
2.3.2. Bảng lặp giải bài tốn qui hoạch tuyến tính bởi thuật tốn nón xoay
tuyến tính và ví dụ minh hoạ
Để dễ tính tốn, trong mỗi bước lặp k ta thiết lập bảng dưới đây gọi là
bảng nón xoay thu gọn giải bài tốn quy hoạch tuyến tính dạng chuẩn khi biết
một nón – min của hàm mục tiêu của bài toán:


22

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

bj

c1

c2 … c j

1
2

b1
b2


a11


a12 … a1 j … a1n

a21

a22 … a2 j … a2 n



bsk

( sk )

m



bm

… cn


a sk 1

am1

…. ….
a s 2 … as j … as n
… … …
am 2 … amj ... amn
k


k

k

k

i2
zki22 … zkji2 … zkn

< Ask , zki2 >

zki11

i2k

bi k


( rk= isk p )


zki21



… … … …
zkr1 zkr 2 … zkjr … zknr
… … … …


ink

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

brk

k


bi k
n

xk

<Am, x k >+bm

0

< Ask , zki1 >

1

k

<Am, x 0 >+bm

0

i1

zki12 … zkji1 … zkn

bi k

k

<A1, x 0 >+b1
<A2, x 0 >+b2
……
s
(< A , x 0 >+ bs )


<Ai, x k >+bi
k=1,2,…
<A1, x k >+b1
<A2, x k >+b2
……
s
( A , x k >+ bs )
...

k

i1k

2

<Ai, x 0 >+bi


k

zkin1
x1k

k

k

k

k

k

k

k

k

k

in
zkin2 … zkjin … zkn
k

k

x2k … x kj


k

k

k

k

ik

< C , zksk 1 >

-

k

ik

< Ask , zksk 1 >




[< A

sk

,z >
rk

k

]

(-



< C , zkrk >
)
< Ask , zkrk >

ik

k

< Ask , zkin >

-

< C , zksk qk >
ik

< Ask , zksk qk >

… xnk

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

và từ trái sang phải như sau:
Bước k (k=0, 1, 2, …):
Phần thứ nhất của bảng là khai báo số liệu của bước chuẩn bị:
Đưa vào các số liệu ban đầu của bài 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ị bi (i=1, 2, …, m), dòng đầu
tiên trên cùng của phần này là các hệ số của hàm mục tiêu, và ma trận hệ số
các ràng buộc A cụ thể là:


23

- Dòng đầu tiên của bảng là dòng các toạ độ cj của véc tơ C của hàm mục
tiêu.
- Cột đầu tiên thứ nhất là cột chỉ số của các véc tơ dòng Ai của ma trận
ràng buộc A của bài toán (L) từ 1 đến m.
- Cột thứ hai là cột các giá trị bi (i = 1, 2,..., m) của véc tơ cột B của ma trận
ràng buộc.
-Tiếp theo bên phải cột thứ hai là bảng của ma trận hệ số gồm các giá trị
của ràng buộc A: aij (i=1,2,…,m; j =1,2,…,n).
Phần thứ hai của bảng liền với phần thứ nhất là số liệu tính tốn các
giá trị của hệ véc tơ chỉ phương zki , ∀i ∈ I k và các toạ độ của đỉnh xk:
Tại bước k (k = 0, 1, 2, …) bảng gồm các cột và ma trận của giá trị các
véc tơ chỉ phương zki (∀i ∈ I k ) cụ thể như sau:
- Cột thứ nhất là cột chỉ số cơ sở i∈Ik .
- Cột thứ hai là cột giá trị bi với i ∈ I k .
- Tiếp theo bên phải cột thứ hai là bảng ma trận các véc tơ chỉ phương
k

zki (∀i ∈ I k ) . Dòng cuối cùng là các giá trị toạ độ của x là đỉnh của nón-min Mk


đã biết ở bước k.
Đến đây ta có bảng nón xoay tại bước k (k = 0, 1, 2, ….) đã xây dựng
xong.
Bây giờ ta chuyển sang kiểm tra tiêu chuẩn tối ưu và xây dựng bảng nón
xoay mới ở bước tiếp theo k+1 nếu xk chưa phải là phương án tối ưu.
Từ dòng cuối cùng của phần thứ hai của bảng là dòng các toạ độ của xk ,
chúng ta đi tính các giá trị < Ai , x k > +bi (i = 0,1, 2,..., m) và xây dựng tiếp các cột
chứa các giá trị này ở bên phải ma trận ràng buộc A trong phần thứ nhất của
bảng.


×