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

Thuật toán đơn hình với việc thay đổi một số dữ liệu ban đầu

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 (496.41 KB, 65 trang )


1

Trờng đại học hùng vơng
Khoa khoa học tự nhiên
o0o









Thuật toán đơn hình với việc Thay
đổi một số dữ liệu ban đầu









Khoá luận tốt nghiệp: Đại học S phạm Toán










2

Mục lục

Nội dung Trang

Lời nói đầu 3
Chơng 1: Các kiến thức bổ trợ 5
1.1. Bài toán QHTT tổng quát
5
1.2. Một số kí hiệu và quy ớc
5
1.3. Thuật toán đơn hình tổng quát
6
1.4. Phần bài tập về thuật toán đơn hình
14
1.4.1. Phần đề bài
14
1.4.2. Phần lời giải
16
Chơng 2: Thuật toán đơn hình với việc thay đổi một số
dữ liệu ban đầu
22
2.1. Trờng hợp thay đổi một số thành phần vế phải
22

2.2. Trờng hợp thay đổi hệ số hàm mục tiêu
24
2.3. Trờng hợp bổ sung thêm các ràng buộc mới
25
2.4. Phần bài tập về sự thay đổ một số dữ liệu ban đầu
28
2.4.1. Phần đề bài
28
2.4.2. Phần lời giải
31
Chơng 3: Một số bài toán thực tế ứng dụng sự thay đổi
một số dữ liệu ban đầu để ra quyết định tối u
50
3.1. Một số bài toán về lập kế hoạch sản xuất
50
3.2. Một số bài toán về cực tiểu hoá cớc phí
Kết luận

55
64
Tài liệu tham khảo 65


3

Lời nói đầu

Là một thuật toán lớn của quy hoạch tuyến tính (QHTT), thuật toán đơn hình
đợc ra đời từ những năm 40 của thế kỷ XX, xuất phát từ yêu cầu tìm lời giải cho
các bài toán kinh tế của nhà toán học ngời Mỹ (Dantzig). Với hệ thống lý thuyết

chặt chẽ, thuật toán giúp giải quyết chính xác và đầy đủ các bài toán QHTT cỡ lớn
với những số liệu tính toán phức tạp. Việc khai thác bài toán theo hớng phục vụ
cho các bài toán thực tế đặc biệt có ý nghĩa. Trong cuộc sống thực tiễn (đặc biệt là
thực tiễn sản xuất của các doanh nghiệp) khi sử dụng thuật toán đơn hình để tìm
phơng án sản xuất tối u thì doanh nghiệp phải thực hiện những tính toán phức tạp
trên các yếu tố có liên quan mật thiết với nhau và liên quan trực tiếp đến sản xuất
nh: Lợng nhân công, nguyên liệu đầu vào và các chi phí sản xuất
Nhng trong
trờng hợp các yếu tố kể trên không còn bền vững mà nó thay đổi do những điều
kiện khách quan hay chủ quan mang lại thì doanh nghiệp phải điều chỉnh lại
phơng án sản xuất. Trong tình huống ấy, việc giải lại các bài toán từ đầu bằng
thuật toán đơn hình là khó khăn và phức tạp. Vì vậy việc tìm ra cách thức xử lý các
vấn đề hậu tối u khi thay đổi một số dữ liệu ban đầu bằng thuật toán đơn hình là
việc làm cần thiết cho những ngời học và làm QHTT.
Với mong muốn nâng cao chất lợng học tập môn QHTT và tăng cờng việc
vận dụng kết quả học tập của bộ môn vào đời sống thực tiễn, tôi đã tìm hiểu và xây
dựng đề tài : Thuật toán đơn hình với việc thay đổi một số dữ liệu ban đầu.
Ngoài lời nói đầu, tài liệu tham khảo khoá luận gồm có 60 trang chia làm 3
chơng:
Chơng 1. Các kiến thức bổ trợ.
Chơng 2. Thuật toán đơn hình việc thay đổi một số dữ liệu ban đầu.
Chơng 3. Một số bài toán thực tế ứng dụng sự thay đổi một số dữ liệu ban đầu để
ra quyết định tối u .

4

Trong mỗi chơng cơ bản gồm 3 phần chính: Phần trình bày các kết quả lý
thuyết, phần đề bài các bài tập và phần lời giải các bài tập.
Phần trình bày các kết qủa lý thuyết: Trình bày các định nghĩa, định lý đặc biệt
là các kết quả nghiên cứu lý thuyết về sự thay đổi một số dữ liệu ban đầu.Tài liệu

quan tâm đa ra các nhận xét, chú ý cần thiết giúp ngời đọc hiểu sâu hơn lý thuyết
để vận dụng làm bài tập.
Phần đề bài các bài tập: Bao gồm các dạng bài tập áp dụng lý thuyết của thuật
toán, các bài tập có tính ứng dụng thực tiễn.
Phần lời giải các bài tập: Trình bày chi tiết lời giải các bài toán, theo thứ tự đã
trình bày ở phần lý thuyết đặt ra. Có lu tâm phân tích các kết quả ứng dụng thực
tiễn của các bài toán thực tế.
Do lần đầu tiên đợc nghiên cứu đề tài cùng với những hạn chế về thời gian
cũng nh vốn kiến thức của mình, tài liệu không tránh khỏi có thiếu sót. Em kính
mong các thầy cô giáo đã dành thời gian đọc và cho em những chỉ bảo giúp em
hoàn chỉnh khoá luận này.

Phú Thọ, tháng 5 năm 2008
Sinh viên

Vũ Thị Thu Trang








5

Chơng 1. các kiến thức bổ trợ

1.1. Bài toán QHTT tổng quát
Tìm vectơ x= ( x

1
, x
2
, , x
n
)

R
n
sao cho hàm f(x) =

=
n
j 1
c
j
x
j
đạt giá trị nhỏ nhất
(hay lớn nhất) với các điều kiện:


=
n
j 1
a
ij
x
j
b

i
i

I
1
(1)


=
n
j 1

a
ij
x
j
b
i
i

I
2
(2)


=
n
j 1
a
ij

x
j
= b
i
i

I (3)
x
j
0 j

J
1
(4)
x
j
0 j

J
2
(5)
x
j


R j

J (6)
Trong đó: I
1


I
2

I = M = { 1, 2, , m }
J
1

J
2

J

= N = { 1, 2, , n }
Mỗi bộ ba (I
1
,

I
2
,

I) và (J
1
,J
2
,J) đều có tính chất đôi một không giao nhau.
* f(x) đợc gọi là hàm mục tiêu.
* Mỗi ràng buộc (1), (2), (3) đợc gọi là ràng buộc cỡng bức (ràng buộc cơ
bản).

* Mỗi ràng buộc (4), (5), (6) đợc gọi là ràng buộc tự nhiên (ràng buộc dấu).
* Mỗi vectơ x thỏa mãn mọi ràng buộc đợc gọi là một phơng án.
* Mỗi vectơ mà tại đó hàm mục tiêu đạt giá trị nhỏ nhất (hay lớn nhất) đợc gọi
là phơng án tối u.
1.2. Một số kí hiệu và quy ớc
Gọi A = (a
ij
) là ma trận cấp m x n
A
i
= (a
i1
, a
i2
, , a
in
); i =
m,1
là vectơ dòng (hay ma trận dòng) thứ i của A.

6

A
j
= (a
1j
, a
2j
, , a
mj

) ; j = 1,n là vectơ cột (hay ma trận cột) thứ j của A.
Ta luôn kí hiệu một vectơ là vectơ cột (hay ma trận cột)
Ta kí hiệu A
t
là ma trận chuyển vị của A.
Ta kí hiệu c = ( c
1
, c
2
, ,c
n
); x= ( x
1
, x
2
, , x
n
).
Tích vô hớng của 2 vectơ c và x là: (c, x) = c.x
Thì bài toán QHTT tổng quát có thể viết dới dạng: f(x) = c
t
x

min ( max)
A
i
x

b
i

i

I
1
(1)
A
i
x

b
i
i

I
2
(2)
A
i
x

= b
i
i

I (3)
x
j
0 j

J

1
(4)
x
j
0 j

J
2
(5)
x
j


R j

J (6)
Chú ý. 1) Về mặt lý thuyết ta chỉ cần xét các bài toán dạng min (Tìm giá trị nhỏ
nhất) bởi vì:
f(x)
= max f(x); x

X

-
f(x)
= min [-f(x)] ; y

Y.
2) Nếu I
1

=

; I
2
=

; J
1
= N thì ta có bài toán QHTT chính tắc.
Nếu I
2
=

; I=

; J
1
= N thì ta có bài toán QHTT chuẩn tắc.
3) Bằng phép biến đổi đơn giản trên hệ phơng trình tuyến tính ta có thể
đa bài toán QHTT bất kì về dạng chính tắc.
1.3. Thuật toán đơn hình tổng quát
Xét bài toán QHTT dạng chính tắc
f(x) = c
t
x

min.
Ax
=
b. (P)

x

0.
A là ma trận cấp m x n, (m < n) và hạng A=m .
1.3.1. Định nghĩa phơng án cực biên.
Phơng án x
0
=(
j0
x
) ; j =
n,1
của bài toán QHTT chính tắc (P) đợc gọi là phơng
án cực biên nếu hệ véctơ cột của ma trận A ứng với các thành phần dơng của
phơng án x
0
là độc lập tuyến tính (nếu số thành phần dơng của x
0
ít hơn m thì

7

x
0
đợc gọi là phơng án cực biên suy biến, nếu số thành phần dơng của x
0
bằng
m thì x
0
đợc gọi là phơng án cực biên không suy biến).

1.3.2. Định nghĩa cơ sở của phơng án cực biên

Giả sử x
0
= (
j0
x
) ; j =
1,n
(khác 0) là một phơng án cực biên của bài toán
QHTT dạng chính tắc (P). Kí hiệu J là 1 bộ phận gồm đủ m chỉ số:
J

J
+
( x
0
) ( J
+
( x
0
)=
{
}
>
j0
j; x 0
). Ta gọi một bộ gồm m véctơ cột độc lập tuyến
tính
{

}

j
a ;j J
của ma trận A là một cơ sở của phơng án cực biên x
0

1.3.3. Cơ sở lý thuyết của thuật toán đơn hình
Giả sử đã biết một phơng án cực biên của bài toán (P) là
x
= (x
10
, x
20
, , x
n0
)
ứng với cơ sở {A
i
; i

J
0
}. Số phần tử của J
0
là |J
0
| = m. Để cho gọn ta cũng nói
x


ứng với cơ sở J
0
. Nh vậy giá trị các ẩn cơ sở trong
x
là x
i0
(i

J
0
) giá trị của ẩn
phi cơ sở là x
j0
= 0 (j = N \ J
0
) ; N = {1, 2, , n} để cho gọn ta viết: x
j0
= 0 với j

J
0
.

Gọi B = ( A
1
A
2
A
m
) là ma trận có các cột là m vectơ trong cơ sở và đặt:

x
0
= (x
i0
)

R
m
;
c
= ( c
i
)

R
m
với i

J
0
.
Khi đó ta có: Bx
0
= b hay
0
i
i 0
i J
x A = b



; f(
x
) = c
t
x
= c
t
x
0
.
Biểu thị tuyến tính vectơ A
j
(j

N) qua cơ sở { A
i
; i

J
0
}
A
j
=
0
i
ij
i J
x A



(j

N) (1.1)
Đặt x
j
= (x
ij
)

R
m
; (i

J
0
, j

N ). Nh vậy x
i
(i

J
0
) là các vectơ đơn vị và ta có
Bx
j
= A
j

hay x
j
= B
-1
A
j
; (j =
n,0
; b
0


A
0
).
Biểu thức

j
=
c
t
x
j
- c
j
hay

j
=
0

i ij
i J
c x


- c
j
(j

N) đợc gọi là ớc lợng của
biến x
j
(hay của vectơ A
j
) tơng ứng với
x
.
Chú ý
.

i
= 0 nếu i

J
0
.
Định lý 1.1
. Nếu
x
= x

0
= ( x
10
, x
20
, , x
n0
) là phơng án cực biên ứng với cơ sở J
0
.
Đặt x
j0
=
x
j
(j =
1,n
) tức là
x
= (
x
1
,
x
2
, ,
x
n
) bất kì ta có hệ thức:


8

x
i
=
x
i
-


0
Ji
x
ij
x
j
(i

J
0
) (1.2)
f(x) = f(
x
)-
0
j j
j J
x




(1.3)
Định lý 1.2
. (
Tiêu chuẩn tối u
)
Nếu ứng với phơng án cực biên x
0
của cơ sở J
0


j
< 0 (

j

J ) thì x
0

phơng án tối u của bài toán QHTT dạng chính tắc.
Hệ quả.
Nếu ứng với phơng án cực biên x
0
của cơ sở A
i



j

= 0 ( j

J
0
) thì x
0

là phơng án tối u không duy nhất của bài toán (P) .
Định lí 1.3.
(
Dấu hiệu hàm mục tiêu không bị chặn trên tập phơng án
)
Nếu ứng với phơng án x
0
của cơ sở A
i
tồn tại một chỉ số j ( j

J
0
) để

j
> 0 và
x
j



0

thì hàm mục tiêu của bài toán (P) không bị chặn dới trên tập phơng án.
Định lí 1.4
. (
Dấu hiệu xây dựng phơng án cực biên tốt hơn
)
Nếu ứng với phơng án cực biên x
0
của cơ sở A
i
và với mỗi j mà

j
> 0 vectơ x
j

có ít nhất 1 thành phần dơng thì có thể xây dựng đợc một phơng án cực biên
mới tốt hơn phơng án cực biên của cơ sở A
i
.
Tìm phơng án cực biên mới tốt hơn, công thức đổi cơ sở.
Giả sử phơng án x
0
của cơ sở {A
i
; i

J
0
} không thỏa mãn dấu hiệu tối u và
dấu hiệu hàm mục tiêu không bị chặn trên tập phơng án. Khi đó ta chuyển sang

phơng án cực biên
x
= (
'
ik
x
) với i =
n,1
của cơ sở mới là hệ { A
i
; i

( J
0
\ {s})

{k}}. Các thành phần của phơng án x đợc xác định nh sau:
x
i0
-

k
x
ik
nếu i

J
0
\ {s}


'
ik
x
=

k
nếu i = k (1.4)
0 nếu i

( J
0
\ {s})

{k}.
Với

k
=
i 0
ik
x
x
; i

J
0
với x
ik
> 0


đó f(
x
) < f(
x
) và { A
i
; i

( J
0
\ {s})

{k}} là cơ sở đợc xây dựng từ A
i
theo
thủ tục sau:

9

*
Chọn vectơ A
k
vào cơ sở:

k
= max {

j
;


j
> 0} (1.5)
*
Chọn vectơ A
s
đa ra khỏi cơ sở: min {
i 0
ik
x
x
; x
ik
> 0 ; i

J
0
} =
s0
sk
x
x
(1.6)
Định lý 1.5
.
Phơng án
x
= (
'
ik
x

) đợc xác định nh công thức (1.4) là phơng án cực biên
ứng với cơ sở { A
i
; i

( J
0
\{s})

{k}}.
Công thức đổi cơ sở khi A
s
bị loại khỏi cơ sở thì các thành phần (x
i
) = (
'
ij
x
) ;
i

( J
0
\{s})

{k}; i =
n,0
, đợc tính theo công thức sau gọi là
công thức đổi cơ


sở
:
x
kj
=
sj
sk
x
x
; (j =
n,0
) (1.7)
x
ij
= x
ij
-
sj
sk
x
x
.x
ik
; (i

J
0
\{s}) và
'
j


=
j

-
sj
sk
x
x
.

k

1.3.4. Thuật toán đơn hình gốc

Bớc 1
: Tìm một phơng án cực biên x
0
và cơ sở { A
i
} tơng ứng. Tính các hệ
số khai triển x
ij
và các ớc lợng

j
.
Bớc 2
: Kiểm tra dấu hiệu tối u.


Nếu

j


0 ; mọi j thì x
0
là phơng án tối u. Thuật toán kết thúc.

Nếu


j
> 0 , j

J
0
thì chuyển sang bớc 3.
Bớc 3
: Kiểm tra dấu hiệu hàm mục tiêu giảm vô hạn, cải tiến phơng án. Với
mỗi j

J
0


j
> 0 ta kiểm tra hệ số khai triển x
ij
của cột A

i
tơng ứng.
Nếu


j
> 0 , j

J
0
mà tất cả các x
ij


0,

i

J
0
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 trên miền ràng
buộc. Thuật toán kết thúc.
Nếu

i

J
0



j
> 0 đều tồn tại ít nhất một hệ số x
ij
> 0 thì chuyển sang cơ sở
mới {A
i
; i

( J
0
\{s})

{k}}. với phơng án cực biên
x
đợc xác định theo quy
tắc ba bớc (1), (2), (3).
Bớc 4
: Tính các
'
ik
x
; f(
x

) ;
'
j

; x


ij
. Theo công thức (1.7) rồi quay lại bớc 2.

10

Chú ý.
Trong thực hành ta thờng lập bảng giải bài toán QHTT bằng thuật toán đơn
hình gốc nh sau:
Ta giả thiết đã biết một cơ sở xuất phát:
A
i
= { A
1
, A
2
, , A
m
} và B = [A
1
A
2
A
m
] = E ( E là ma trận đơn vị ) ở đây
x
j
= B
-1
A

j
= A
j
(i =
n,0
; A
0
= b) ; J
0
= [1, 2, , m] .
Các dữ kiện về phơng án, các ớc lợng

j
của vectơ A
j
véctơ hệ số khai triển A
j

theo cơ sở J
0
đợc sắp xếp vào bảng dới đây:

c
1
c
2
c
s
c
m

c
m + 1
c
j
c
k
c
n



c

cơ sở x
0

x
1
x
2
x
s
c
m
c
m+1
x
j
x
k

x
n

c
1

A
1

x
10
1 0 0 0 x
1,m+1
x
1j
x
1k
x
1n

c
2

A
2


x
20
0 1 0 0 x

2,m+2
x
2j
x
2k
x
2n


c
s

A
s

x
s0
0 0 1 0 x
s,m+1
x
si
x
sk
x
sn


c
m


A
m

x
m0
0 0 0 1 x
m,m+2
x
mj
x
mk
x
mn


f(

x
)

0 0 0 0

m+1


j


k



n

Thực hiện phép biến đổi bảng chuyển từ cơ sở A
i
{A
i
; i

J
0
} sang cơ sở:
{ A
i
; i

( J
0
\{s})

{k}}.
Trong bảng đơn hình : Cột ứng với vectơ đa vào A
k
đợc gọi là cột xoay, hàng ứng
với vectơ đa vào A
s
đợc gọi là hàng xoay, phân tử x
sk
đợc gọi là phần tử xoay.
Bảng đơn hình mới có đợc từ bảng đơn hình cũ theo các công thức đổi cơ sở sau

khi chọn ẩn vào, ẩn ra cụ thể bằng lời nh sau:
+ Trong cột cơ sở thay A
s
bằng A
k
.
+ Trong cột
c
thay c
s
bằng c
k
.
+ Chia các phần tử của hàng xoay cho phần tử xoay x
sk
ta đợc hàng k của bảng
mới.

11

+ Mỗi phần tử khác ngoài hàng xoay trừ đi tích của phần tử cùng hàng với nó
trên cột xoay với phần tử cùng cột với nó trên hàng chuẩn đợc phần tử cùng vị trí
trong bảng đơn hình mới.
1.3.5. Thuật toán bài toán M
Giả sử cần giải bài toán (P) với giả thiết b
0

Tơng ứng với bài toán chính là bài toán sau mà sẽ gọi là bài toán M.
f(x,w) = c
t

x + M (w
1
+ w
2
+ + w
m
)

min
Ax

+ w = b
x
0 ; w 0
Trong đó w
t
= (w
1
; w
2
; ; w
m
), A là ma trận cấp m

x n
Các ẩn w
i
= x
n+i
(i =

m
,1
) mới đa vào đợc gọi là các ẩn giả, còn M là một tham
số dơng đợc coi là rất lớn, lớn hơn bất cứ số cụ thể nào cần so sánh với nó.
Rõ ràng bài toán M đã ở dạng chuẩn với phơng án cực biên (0, b) = ( 0, , 0, b
1
, b
2-
, , b
m
) ứng với cơ sở đơn vị { A
n+i
= E
i
; i =
m
,1
}; A
n+i
là vectơ đơn vị thứ i - vectơ
cột các hệ số của ẩn w
i
= x
n+i
(i =
m
,1
) . Ta có thể bằng thuật toán đơn hình gốc giải
bài toán M.
Các ớc lợng


j
=

j
M +

j

Do tính chất của tham số M nên việc so sánh các ớc lợng đợc quy ớc nh sau:
+

j
> 0 nếu


>


= >


j
j j
0
0; 0


+


j
< 0 nếu


<


= <


j
j j
0
0; 0

+

k
>

j
nếu


>


= >



k j
k j k j
;

Khi tính toán, dòng ghi

j
=

j
M +
j

nên tách thành 2 dòng, dòng trên ghi
j

,
dòng dới ghi

j
.

j
là ớc lợng nếu hàm mục tiêu là hàm mục tiêu của bài phụ (trong thuật toán 2

12

pha).

j

là ớc lợng nếu hàm mục tiêu là hàm mục tiêu của bài chính.
Khi giải bài toán M , các trờng hợp sau có thể xảy ra:
Trờng hợp 1
: Thu đợc phơng án tối u (
x
,
w
).
Nếu
w
= 0 (trong phơng án tối u mọi ẩn giả đều bằng 0) thì ta kết luận
x

phơng án tối u của bài toán chính.
Nếu
w


0 (trong phơng án tối u có ít nhất 1 ẩn giả nhận giá trị dơng) thì ta
kết luận bài toán chính có tập phơng án rỗng.
Trờng hợp 2
: Xuất hiện dấu hiệu hàm mục tiêu không bị chặn khi đó ta kết
luận bài toán chính có hàm mục tiêu không bị chặn.
Chú ý:
1) Nếu bài toán chính đã có sẵn một vài vectơ đơn vị thì ta chỉ cần đa vào một số
ẩn giả vừa đủ để có đúng một cơ sở đơn vị.
2) Nếu ở một bớc nào đó vectơ có dạng A
n+i
(ứng với ẩn giả) bị loại khỏi cơ sở thì
các bớc sau cột x

n+i
không cần tính nữa.

1.3.6. Thuật toán đơn hình đối ngẫu
1.3.6.1. Bài toán đối ngẫu của bài toán QHTT dạng chính tắc

Bài toán gốc (P) Bài toán đối ngẫu (Q )

f(x) = c
t
x

min
Ax
=
b
x

0


g(y) = b
t
y

max
A
t
y


c


1.3.6.2. Định nghĩa cơ sở đối ngẫu
Ta gọi hệ gồm đúng m vectơ độc lập tuyến tính { A
i
; i

J
0
} là cơ sở đối ngẫu
(khi đó ta cũng nói J
0
là cơ sở đối ngẫu) nếu có phơng án cực biên
y
của bài toán
đối ngẫu (Q) thỏa mãn điều kiện:

13


y
t
A
i
= c
i
nếu i

J

0
(a)

y
t
A
j


c
j
nếu j

J
0
(b)
Chú ý:
1)
Nếu x
0


0 thì
x
là phơng án cực biên tối u của bài toán gốc khi đó
y

phơng án tối u của bài toán đối ngẫu và ta nói
x
,

y
là phơng án cực biên tối u
tơng ứng của bài toán gốc và đối ngẫu.
2)
Nếu tồn tại i

J
0
sao cho x
i0
< 0 và x
ij


0 (j =
n
,1
) thì bài toán có tập
phơng án là rỗng, trong đó x
j
= (x
ij
) với j

J
0
(khi đó bài toán đối ngẫu có hàm
mục tiêu không bị chặn ).

1.3.6.3. Thuật toán đơn hình đối ngẫu trong trờng hợp đ có cơ sở đối ngẫu

Giả sử cần giải bài toán (P) trong đó c

0
Giả sử đã biết cơ sở đối ngẫu (xuất phát) là cơ sở đơn vị trong R
m
. Khi đó
x
j
= A
j
(j =
n
0,
). Tính

j
=
c
t
x
j
- c
j
(j =
n
1,
) theo bảng giống nh bảng đơn hình
gốc. Các bớc thực hiện thuật toán:

Nếu x

0
0 thì
x
= (
x
i
) là phơng án tối u (của bài toán gốc) với
x
i
= x
i0

(i

J
0
) ;
x
j
= 0 (j

J
0
) và kết thúc thuật toán.

Nếu trái lại thì chọn x
s0
= min {x
i0
: i


J
0
}.
+ Nếu x
sj
0 với

j = n
,1
thì kết luận tập phơng án rỗng và kết thúc thuật toán.
+ Nếu trái lại thì chọn
k

=
k
sk
x

= min {
j
sj
x

: x
sj
< 0}
Thực hiện phép xoay (đối ngẫu) xung quanh phần tử xoay x
sk
ta đợc giả phơng án

mới, coi nó nh giả phơng án ban đầu và quá trình tính toán lặp lại từ bớc 1.
1.3.6.4. Thuật toán đơn hình đối ngẫu trong trờng hợp cha biết cơ sở đối ngẫu
Từ bài toán (P) ta luôn xác định đợc H = { A
i
; i

J
0
} là hệ gồm đúng m vectơ
độc lập tuyến tính.


Nếu H là cơ sở đối ngẫu, nghĩa là

j


0 với

j cũng nghĩa là hệ


14


y
t
A
i
= c

i
nếu i

J
0


y
t
A
j


c
j
nếu j

J
0

có nghiệm thì ta biến đổi sơ cấp trên các dòng của ma trận [A/b] để thu đợc ma
trận có m vectơ đơn vị khác nhau tơng ứng với cơ sở H.


Nếu H không phải là cơ sở đối ngẫu hoặc không biết nó là cơ sở đối ngẫu hay
không thì ta xét bài toán sau (bài toán gốc mở rộng): F (x
0
,x)

= c

t
x

min
x
0
+
0
j
j J
x


= M
Ax = b
x 0 ; x
0
0
Trong đó x
0
là một ẩn mới, M là một tham số dơng đợc coi là rất lớn, (x
j
) là
vectơ các biến phi cơ sở.
Đối với bài toán này ta có ngay 1 cơ sở
^
B
= {
^
A

0
;
^
A
1
; ;
^
A
m
}. Xây dựng bảng đơn
hình ứng với cơ sở
^
B
giống nh trờng hợp có sẵn cơ sở đơn vị. Kết thúc thuật toán
ta có thể gặp một trong các tình huống sau:

Bài toán mở rộng vô nghiệm khi đó bài toán ban đầu cũng vô nghiệm.

Bài toán mở rộng có phơng án tối u là : (
x
0
,
x
1
, ,
x
n
) và
^
A

0
thuộc cơ sở
tơng ứng. Khi đó các biến cơ sở sẽ phụ thuộc vào M. Có 2 khả năng sau:
Một là: Giá trị hàm mục tiêu của bài toán mở rộng phụ thuộc M khi đó F(x)

+


khi M

+

suy ra bài toán ban đầu không có phơng án tối u.
Hai là: Giá trị tối u của bài toán không phụ thuộc M, khi đó bài toán ban đầu
không có phơng án tối u mà ta có thể thu đợc từ phơng án tối u của bài toán
mở rộng khác bằng cách loại bỏ x
0
và giảm dần giá trị của M cho đến khi triệt tiêu
giá trị của một biến cơ sở nào đó trong bài toán mở rộng.
1.4. Phần bài tập về thuật toán đơn hình
1.4.1. Phần đề bài
Bài 1. Cho bài toán với tham số

:
f(x) = x
1
+ x
3
-


x
4


min

15

- x
1
+ x
2
+ 12x
3
- 2

x
4
+ 4x
5
= 9
2x
1
+ 8x
3
+ (1-

)x
4
+ 2x

5
= 14
x
1
+ (

- 1) x
4
= 4
x
j
0 ; j =
5,1

a)
Biết rằng
x
là một phơng án cực biên ứng với cơ sở A
1
, A
2
, A
5
. Hãy lập bảng
đơn hình ứng với
x
.
b) Từ bảng đơn hình đã lập đợc, hãy tìm tất cả các giá trị của

sao cho

x

phơng án tối u.
Bài 2. Giải bài toán sau: f(x) = -x
1
+ 3x
2
+ x
3
+ 2x
4
+ x
5


min
x
1
+ 3x
3
+ 2x
4
- 9x
5
= 5
3x
2
- 2x
3
+ 2x

4
- 7x
5
= 19
3x
2
- 3x
3
+ x
5
= 15
x
j
0 ; j =
5,1

Bài 3. Giải bài toán sau: f(x)= x
1
+ x
2
- x
3

min
2x
1
- x
2
+ x
3


= 2

4x
1
- x
2
+ 2x
3
= 1
x
1
+ 2x
2
- 4x
3

4

x
j
0 ; j = 1,2,3
Bài 4. Giải bài toán: f(x)= x
1
+ 5x
2
+ 2x
3
- x
4

+ 6x
5


min
3x
1
+ 6x
2
+ 4x
3
+ 2x
4
+ x
5

= 83
-3x
1
- 4x
2
+ 4x
3
+ 2x
5
= 3
2x
2
+ x
3

+ x
5
= 36


x
j
0 ; j =
5,1

Bài 5. Giải bài toán: f(x) = -x
1
+ 3x
2
- 3x
3

min

4x
1
+ 3x
2
- 3x
3

12

-x
1

+ 5x
2
- 5x
3


6
x
j
0 ; j =
3,1


16

1.4.2. Phần lời giải
Bài 1.
Với cơ sở A
1
, A
2
, A
5
ta thực hiện phép biến đổi cơ sở cấp ma trận của hệ phơng
trình ràng buộc.
2 3 2
2
1 1 12 2 4 9
2 0 8 1 2 14
1 0 0 1 0 4

d d d












d d d
d d



+




+




1 3 1
2 2

1
2
1 1 12 2 4 9
0 0 8 3 3 2 6
1 0 0 1 0 4
d d d







+






1 2 1
4
0 1 12 1 4 13
( 3 3)
0 0 4 1 3
2
1 0 0 1 0 4
0 1 4 5 7 0 1
(3 3 )
0 0 4 1 3

2
1 0 0 1 0 4













Ta có bảng đơn hình ứng với
x
:
1 0 1 -

0
c

cơ sở

x
0

x
1

x
2
x
3
x
4
x
5

0
0
1

A
2

A
5

A
1

1
4
3
0
0
1
1
0

0
-4
4
0
5

-7
(3-3

)/2

-1
0
1
0
4 0 0 -1 2

-1 0

b) Vì
x
là phơng án cực biên không suy biến nên để
x
là phơng án tối u điều
kiện cần và đủ là:

j


0;


j =
5,1
các ớc lợng

1
,

2
,

3
,

5
, đã thỏa mãn. Vậy
để
x
là phơng án tối u thì điều kiện cần và đủ là:

4
= 2

-1

0 hay


2
1


Vậy với


2
1
thì
x
là phơng án tối u của bài toán.
Bài 2. Ta đã có một vectơ đơn vị, đa thêm vào 2 ẩn giả x
6
, x
7
ta đợc bài toán phụ:
F(x,w) = x
6
+ x
7


min

17

x
1
+ 3x
3
+ 2x
4

- 9x
5
= 5
3x
2
- 2x
3
+ 2x
4
- 7x
5
+ x
6
= 19
3x
2
- 3x
3
+ x
5
+ x
7
= 15
x
j
0 ; j =
7,1

Ta có bảng đơn hình:


-1 3 1 2 1 1 1
c


sở

x
0

x
1
x
2
x
3
x
4
x
5
x
6
x
7
Ghi chú
0
1
1

A
1


A
6

A
7

5
19
15

1
0
0
0
3
(3)
3
-2
-3
2
2
0
-9
-7
1
0
1
0
0

0
1
max

j
=

6
>0

A
2
ra.
A
7
vào
0 6 -5 2 -6 0 0
0
1
0

A
1

A
6

A
2


5
4
5
1
0
0
0
0
1
3
1
-1
2
(2)
0
-9
-8
1/3
0
1
0

max

j
=

4

=2>0


A
4
vào.
min{
2
5
;
2
4
}=2

0 0 1 2 -8 0

A
6
ra.

-1
2
3

A
1

A
4

A
2


1
2
5
1
0
0
0
0
1
2
(2)
-1
0
1
0
-1
-4
1/3


j


0 dấu
hiệu tối u


x
*

( 1,5,0,2,0)
18

0 0 -5 0 -7
min f = 18

Bài 3. Đa vào ẩn bù x
4
và 3 ẩn giả x
5
,x
6
, x
7
. Ta có bài toán M.
f(x,w) = x
1
+ x
2
- x
3
+ M( x
5
+ x
6
+ x
7
)

min

2x
1
- x
2
+ x
3
+ x
5

= 2

4x
1
- x
2
+ 2x
3
+ x
6
= 1
x
1
+ 2x
2
- 4x
3
- x
4
+ x
7

= 4
.


18

x
j
0 ; j =
7,1
.
Ta có bảng đơn hình:

1 1 -1 0 M

M
M


c

Cơ sở x
0
x
1
x
2
x
3


x
4
x
5
x
6

x
7

Ghi chú
M
M
M
A
5

A
6

A
7

2
1
4
2
4
1
-1

-1
2
1
2
-4
0
0
-1
1
0
0
0
1
0
0
0
1

max

j
= 7

A
1
vào.
min{
2
2
;

4
1
;
1
4
}=
4
1
= 0

A
6
ra.



i

j
-1
7
-1
0
1
-1
0
-1
0
0
0

0
0
0

M
1
M
A
5

A
1

A
7

3/2
1/4
15/4

0
1
0
-1/2
-1/4
9/4
0
1/2
-9/2


0
0
-1
1
0
0

0
0
1

max

j
= 7/4

A
2
vào.
min{
4
15
;
4
9
}=
9
15
= 0


A
7
ra.



i

j
0
0
-5/4
7/4
3/2
-9/2

0
-1
0
0

0
0


M
1
1
A
5

A
1
A
2
7/3
2/3
5/3
0
1
0
0
0
1
0
0
-2
-2/9
-1/9
-4/9

1
0
0




i

j

0
0
0
0
-1
0
-5/9
-2/9

0
0


ở bớc 3,

j


0

j nên phơng án tối u của bài toán M là (
3
2
;
3
5
, 0, 0,
3
7
, 0, 0)

trong đó mọi ẩn giả x
5
=
3
7
> 0. Vậy bài toán chính có tập phơng án là rỗng.
Bài 4. Với điều kiện bài toán đã cho, bằng thuật toán bài toán M với ba ẩn giả x
6
,
x
7
, x
8
ta có bài toán M tơng ứng là:
x
1
+ 5x
2
+ 2x
3
- x
4
+ 6x
5
+ M ( x
6
+ x
7
+ x
8

)

min
3x
1
+ 6x
2
+ 4x
3
+ 2x
4
+ x
5
+ x
6
= 83

19

-3x
1
- 4x
2
+ 4x
3
+ 2x
5
+ x
7
= 3

2x
2
+ 4x
3
+ x
5
+ x
8
= 36
x
j
≥ 0 ; j =
8,1

1 5 2 -1 6 M

M

M


c

C¬ së

x
0
x
1
x

2
x
3

x
4
x
5
x
6

x
7

x
8
Ghi chó
M
M
M
A
6

A
7

A
8

83

3
36
3
-3
0
6
-4
2
4
4
4
(2)
0
0
1
2
1
1
0
0
0
1
0
0
0
1

j
=


4
> 0

A
4
vµo.

A
6
ra.



γ
i
δ
j
-1
0
-5
4
-2
12
1
2
-6
4
0
0
0

0
0
0

-1
M
M
A
4

A
7

A
8

83/2
3
36
3/2
-3
0
3
-4
2
2
(4)
4
1
0

0
1/2
2
1

0
1
0
0
0
1

j
=

3
= 8 > 0

A
3
vµo.
min{
4
3
;
4
83
;
4
36

}=
4
3


A
7
ra.



γ
i
δ
j
-5/2
-3
-8
-2
-4
8
0
0
-13/2
3


0
0
0

0

-1
2
M
A
4
A
3
A
8
40
3/4
33
3
-3/4
(3)
5
-1
6
0
1
0
1
0
0
-1/2
1/2
-1



0
0
1

j
=

1
= 3 > 0

A
1
vµo,A
8
ra


γ
i
δ
j

-11/2
3
-12
6
0
0
0

0
-9/2
-1


0
0

-1
2
1
A
4
A
3
A
1
7
9
11
0
0
1
-1
1/2
2
0
1
0
1

0
0
1/2
1/4
-1/3




j
< 0

x
=(11,0,9,7,0)
lµ ph−¬ng ¸n tèi−u.

22
0
-1 0
0 -19/3



min f = 22

Bµi 5. Víi c¸c Èn bï x
4
, x
5
, x

6
ta cã hÖ rµng buéc míi:

20

- 4 x
1
- 3x
2
+ 3x
3
+ x
4
= -12
- x
1
+ x
2
- x
3
+ x
5
= 5
x
1
+ 5x
2
- 5x
3
+ x

6
= 6
x
j
0 ; j =
6,1

V
ì A
4
, A
5
,A
6
lập thành một cơ sở đơn vị nên ta thiết lập bài toán mở rộng bằng
cách thêm vào ràng buộc.

x
0
+ x
1
+ x
2
+ x
3
= M với x
0
0
Còn hàm mục tiêu giữ nguyên, các thành phần cơ sở trong giả phơng án có dạng
p + qM nên cột

~
x
0
đợc tách thành 2 nhánh, nhánh trái ghi số p, nhánh phải ghi q. Ta có
bảng sau:
~
x
0
0 -1 3 -3 0 0 0
~
c


sở

M x
0
x
1
x
2
x
3

x
4
x
5

x

6

Ghi chú
0
0
0
0

A
0

A
4

A
5

A
6

0
-12
5
6
1
0
0
0
1
0

0
0
1
-4
-1
1
1
-3
1
5
(1)
3
-1
-5
0
1
0
0
0
0
1
0
0
0
0
1
^

=max{
^


j
;j=
n
,0
}=
=

3


đa A
3
vào
cơ sở thay cho A
0

0 1 -3 3 0 0 0
-3

0
0
0

A
3

A
4


A
5

A
6

0
-1
2

5
6
1
-3
1
5
1
-3
1
5
1
(-7)
0
6
1
-6
2
10
1
0

0
0
0
1
0
0
0
0
1
0
0
0
0
1


-3 -2 -6 0 0 0 0
-3

-1

0
0

A
3

A
1


A
5

A
6

-12/7
12/7
5
-30/7

4/7
3/7
1
17/7

4/7
3/7
1
17/7

0
1
0
0
1/7
6/7
2
34/7


1
0
0
0
1/7
-1/7
0
6/7

0
0
1
0
0
0
0
1

j


0

cơ sở đối
ngẫu
{A
3
, A
4
, A

5
,
A
6
}

min
{x
i0
;x
i0
< 0}=-
12

A
4
ra.

min{
3
3


;
7
2


;
6

6


}
=
7
2

A
1
vào.

24/7 -15/7

-15/7

0
-30/7

0 -2/7 0 0


21

ở bớc 3,
~
x
0

0 ( v

ới M > 0 đủ lớn ),
~
x
0
có các thành phần là
~
x
30
=
7
412 M
+

;
~
x
10
=
7
312 M
+
;
~
x
50
= 5 + M ;
~
x
60
=

7
1730 M
+

đó là dấu hiệu tối u mà A
0
không
thuộc cơ sở tối u. Mặt khác vì giá trị của hàm mục tiêu là
7
24
-
7
15
M, trong đó hệ
số của M là một số âm (-
7
15
) nên ta kết luận bài toán cần giải có tập phơng án
khác rỗng nhng hàm mục tiêu không bị chặn.
Kết luận chơng 1
Trình bày khái quát về bài toán QHTT, các định lí, định nghĩa cơ bản của bài
toán QHTT. Thuật toán đơn hình gốc; thuật toán bài toán M; thuật toán đơn hình
đối ngẫu và một số bài toán áp dụng thuật toán đơn hình để từ đó làm cơ sở, nền
tảng cho phần lý thuyết trình bày ở chơng 2.











22

Chơng 2. Thuật toán đơn hình với việc thay đổi
một số dữ liệu ban đầu

2.1. Trờng hợp thay đổi một số thành phần vế phải
2.1.1. Cơ sở lý thuyết
Xét bài toán QHTT dạng chính tắc: f(x) = c
T
x min

Ax = b
(P)
x 0





Trong đó A là ma trận cấp m x n và hạng (A) = m, ( m < n ); b
i
0, i =
m,1

Giả sử x
0



phơng án tối u vừa tìm đợc và B là ma trận cơ sở tơng ứng của
phơng án. Ký hiệu là
1
i
B
vectơ hàng thứ i của ma trận B
-1
. Giá trị các biến cơ sở,
các hệ số trong bảng đơn hình cho bởi:

0
i
x
=
1
i
B
.b 0 ; i J
0
(2.1)

x
ij
=
1
i
B
A

j
(
1
i
B
: dòng i của ma trận B
-1
)

f
min
= f(x
0
) = c
t
x
0
= c
B
.B
-1
.b
(c
B
là các thành phần của hàm mục tiêu ứng với các chỉ số cơ sở)



j
= c

B
.B
-1
A
j
- c
j
=


0
Ji
ij
cx
- c
j
; (j N) . (2.2)
Vì một lý do nào đó vectơ hạn chế b bị thay đổi thành
__
b
. Bài toán mới cần phải
giải là: f (x) = c
T
x min
Ax =
b

x
0
Để giải bài toán mới ta làm nh sau:

Đặt
b =
__
b
- b khi đó
__
b
= b + b. Vì sự thay đổi này không xảy ra ở vectơ hệ số
hàm mục tiêu nên

j
vẫn thoả mãn công thức (2.2). Phơng án x
0
= (x
0
j
); j N của


23

bài toán (P) đợc chuyển thành phơng án
__
x
= (
j
x
); j N
Giá trị các biến cơ sở mới sẽ là:
i

x
= (
1
i
B
,
__
b
) = (
1
i
B
; b + b)
= (
1
i
B
, b) + (
1
i
B
, b) = (
1
i
B
, b) + (
1
i
B
, b) = x

i0
+ x
io
(2.3)

Với x
io
= (
1
i
B
; b) ; i J
0
;
__
j
x
= 0 ; i N / J
0

Từ (2.2) và (2.3) ta thấy
__
x
là một giả phơng án của bài toán mới từ đó ta áp dụng
thuật toán đơn hình đối ngẫu để giải bài toán.
2.1.2. Nhận xét
Với cơ sở lý thuyết trên trong thực hành ta sẽ gặp bài toán ở một trong hai tình
huống sau:
+ Tình huống 1:


j
0 (j) ở bớc cuối cùng khi giải bài toán (P). Ta tiến
hành giải bài toán mới nh sau:

Tách cột x
0
thành 2 phần ứng b và
__
b
(nếu các số liệu ở bớc 1 thu đợc do
biến đổi sơ cấp ma trận (A/b) thì nhất thiết phải thực hiện phép biến đổi sơ cấp
tơng ứng đối với ma trận (A/ b/
__
b
).

Thực hiện phép xoay phần tử trục đã đợc xác định khi giải bài toán (P) khi
đó mọi số liệu ở mỗi bớc đợc giữ nguyên trừ cột x
0
(nhánh
__
b
).
Việc tính toán sẽ kết thúc khi đã xuất hiện hoặc dấu hiệu tối u hoặc dấu hiệu
hàm mục tiêu không bị chặn, hoặc dấu hiệu tập phơng án là rỗng (có thể kết thúc
tại bớc cuối cùng sau khi giải bài toán (P) cũng có thể kết thúc trớc hoặc sau
bớc đó, nếu phải kéo dài thêm một số bớc thì phải sử dụng thuật toán đang dùng).
+ Tình huống 2:
j


J
0
sao cho
j
> 0 ở bớc cuối cùng khi giải bài toán (P).
Ta sẽ gặp tình huống này trong trờng hợp bài toán (P) có hàm mục tiêu không bị
chặn (thuật toán đơn hình gốc).
Nếu sau khi tiến hành các bớc nh tình huống 1, nhng cha xuất hiện dấu hiệu
có thể kết thúc thuật toán tại bớc cuối (đối với bài toán (P)) . Đó chính là cột

24

x
0
(nhánh
__
b
) có ít nhất một thành phần âm thì ta phải dùng thuật toán đơn hình đối
ngẫu đối với bài toán gốc mở rộng (bổ sung một ràng buộc giả tạo với ẩn giả tạo
x
0
0).
2.2. Trờng hợp thay đổi hệ số hàm mục tiêu
2.2.1. Cơ sở lý thuyết
Giả sử x
0
= (
0
j
x

) ; ( j
N) là phơng án tối u của bài toán (P) vì một lý do nào
đó, hệ số các biến trong hàm mục tiêu c bị thay đổi nh (chi phí sản xuất hoặc lợi
nhuận ) thành
c

.

Thì bài toán mới cần giải có dạng:

(x) =
__
f
=
c

t
x

min

0
Ax b
x
=






Đặt

c =
c

- c


c

= c +

c.
Do sự thay đổi này không ảnh hởng đến vế phải và ma trận hệ số nên điều kiện
( 2.1) vẫn thoả mãn.
Giá trị các ớc lợng mới của x
j
; j

N sẽ là

__

j
= (
c

B
, B
-1


A
j
) -
j
c


= (c
B
+

c
B
, B
-1
A
j
)-
j
c


= (c
B
+

c
B
, B

-1
A
j
) - (c
j
+

c
j
)
=

j
+

(

j
) (2.4)
Với

(

j
) = (

c
B
, B
-1

A
j
) -

c
j

=
0
Bi ij j
i J
c x - c



; j =
___
,1 n

(

c
Bi
: Là các phần tử của số gia hệ số hàm mục tiêu tơng ứng với các vectơ A
i
của
sơ sở B).
Giá trị hàm mục tiêu với hệ số mới của bài toán tại phơng án x
0
đợc tính nh sau:


25

__
f
(x
0
) =
c

B
. B
-1
.b = (c
B
+

c
B
) B
-1
. b
= c
B
.B
-1
.b +

c
B

. b
-1
.b
= f(x
0
) +

f(x
0
) (2.5)

f(x
0
) =

c
B
. B
-1
.b =
0
Bi i 0
i J
c x




Từ (2.4) và (2.5) ta thấy công thức (2.2) có thể sẽ không thoả mãn cho bài toán mới.
Tuy nhiên từ (2.1) ta thấy x

0
vẫn là phơng án cơ sở chấp nhận đợc của bài toán
mới (do sự thay đổi chỉ diễn ra ở vectơ c). Từ đây có thể áp dụng thuật toán đơn
hình để tiếp tục giải bài toán với cách tính các ớc lợng và tính giá trị hàm mục
tiêu đợc cho ở ( 2.4 ) và ( 2.5 )
2.2.2. Nhật xét

Từ cơ sở lý thuyết ở 2.2.1 trong thực hành ta tiến hành giải bài toán mới nh sau:

Thêm một dòng các hệ số của

(x) vào phía trên cùng của bảng đơn hình đã
có (khi giải bài toán với hàm mục tiêu f(x) ).

Căn cứ vào bớc cuối cùng sau khi chỉnh lại cột đầu tiên
c
cho phù hợp, ta
tính các ớc lợng

j
(

) đối với bài toán mới rồi viết ngay vào bảng (ngay dới
dòng ghi các ớc lợng

j
(f) ở bớc cuối cùng).

Tiếp tục tính toán theo các số liệu mới bằng một trong các thuật toán đơn
hình đã cải biên.

2.3. Trờng hợp bổ sung thêm các ràng buộc mới
2.3.1. Cơ sở lý thuyết

Giả sử bằng thuật toán đơn hình ta thu đợc phơng án tối u của bài toán (P)

x
ứng với cơ sở tối u J
0


j


0 (

j =
___
1,n
). Nhng trong trờng hợp, do sơ
xuất khi lập mô hình, ngời ta đã bỏ sót một số điều kiện nào đó hoặc khi giải xong
bài toán QHTT một số điều kiện nào đó thay đổi làm cho lời giải tối u vừa tìm
thấy không sử dụng đợc nữa. Ta sử dụng kết quả hiện có để giải bài toán sau khi
bổ sung một ràng buộc mới có dạng:

×