1. Trang chủ
  2. » Giáo Dục - Đào Tạo

QUY HOẠCH RỜI RẠC - CHƯƠNG 2 doc

18 378 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 18
Dung lượng 487,35 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Bùi Thế Tâm II.1 Quy hoạch rời rạc Chương 2 NHỮNG KHÁI NIỆM MỞ ĐẦU Trong chương này sẽ trình bày những khái niệm cơ bản về quy hoạch tuyến tính, phương pháp đơn hình bình thường, phươ

Trang 1

Bùi Thế Tâm II.1 Quy hoạch rời rạc

Chương 2

NHỮNG KHÁI NIỆM MỞ ĐẦU

Trong chương này sẽ trình bày những khái niệm cơ bản về quy hoạch tuyến tính, phương pháp đơn hình bình thường, phương pháp đơn hình đối ngẫu từ vựng, và khái niệm về bài toán quy hoạch tuyến tính nguyên

1 NHỮNG KHÁI NIỆM CƠ BẢN VỀ QUY HOẠCH TUYẾN TÍNH 1.1. Bài toán qui hoạch tuyến tính là bài toán có dạng:

0 1

1

1

, 1, 2 , , ( 2 ) , 1, , (3 )

n

j j j

n

ij j i j

n

ij j i j

j

=

=

=

y Miền xác định: tập hợp các véc tơ x thoả mãn (2) và (4)

y Phương án bài toán: véc tơ x thoả mãn (2) và (4)

y Nếu (x1,…,xn) là phương án của bài toán, 0

1

n

j j j

=

=∑ thì X = (x0 ,x1,…,xn) gọi

là phương án mở rộng của bài toán (1) – (4)

y Phương án X* làm cực đại (1) gọi là phương án tối ưu Phương án mở rộng

*

X gọi là phương án tối ưu mở rộng nếu X* là phương án tối ưu

y Kí hiệu:

L - miền xác định của bài toán (1)-(4)

( , )L C – kí hiệu bài toán qui hoạch tuyến tính (1) - (4)

( , )

X L C – phương án tối ưu của bài toán (1) - (4)

( , )

X L C - phương án tối ưu mở rộng của bài toán (1) - (4)

C

L là tập hợp các phương án tối ưu của bài toán ( , )L C

y Bài toán qui hoạch tuyến tính gọi là giải được nếu tồn tại phương án tối ưu

Trang 2

Bùi Thế Tâm II.2 Quy hoạch rời rạc

1.2 Dạng chính tắc của bài toán qui hoạch tuyến tính

0

1

1

a x , 1 , 2 , ,

0 , 1 , 2 , ,

n

j j j

n

i j j i j

j

=

=

y Gọi

1

2

j

j j

mj

a a A

a

 

 

 

 

 

=

 

 

 

 

 

là véc tơ điều kiện thứ j của bài toán (5)-(7)

1 2

B=

m

b

b b

 

 

 

 

 

 

 

là véc tơ ràng buộc của bài toán (5)-(7)

y Phương án X của bài toán (5)-(7) gọi là tựa nếu các véc tơ điều kiện ứng với các thành phần dương của nó là độc lập tuyến tính

y Cơ sở của phương án tựa X là tập hợp { Aj|x j >0 } Các thành phần của phương án tựa ứng với các véc tơ cơ sở gọi là các thành phần cơ sở (các biến tương ứng gọi là biến cơ sở), các thành phần còn lại gọi là các thành phần phi cơ sở (các biến tương ứng gọi là biến phi cơ sở)

y Nếu X =( , ,x1 x n)phương án tựa của bài toán quy hoạch tuyến tính,

1

(A j , ,A jk)là cơ sở của phương án tựa, B={j1, ,j k}, N ={1, ,n B}\ thì hàm mục tiêu x x0, , ,1 x có thể biểu diễn qua các biến phi cơ n sở:

0 i j( ), 0,1, ,

j N

Kí hiệu Qn ={0,1,…,n}

B0=B∪{0}, N0=N∪{0}

Bảng đơn hình 0

,

ij i Q j N n

∈ ∈

= gọi là bảng đơn hình đầy đủ

y Phương án tựa bài toán (5) - (7) gọi là không suy biến nếu số ràng buộc của hệ (6) - (7) mà phương án thỏa mãn với dấu bằng bằng đúng n (các ràng buộc này là độc lập tuyến tính) Phương án tựa là suy biến nếu số ràng buộc mà phương án tựa thỏa mãn chặt là lớn hơn n

(5) (6) (7)

Trang 3

Bùi Thế Tâm II.3 Quy hoạch rời rạc

Phương án tựa X của bài toán (5) - (7) là không suy biến nếu các thành phần cơ sở của nó là dương Cơ sở của phương án tựa không suy biến xác định duy nhất Ứng với phương án tựa suy biến có nhiều cơ sở

y Tiêu chuẩn tối ưu: để cho phương án mở rộng X' ( , , ,= x x0' 1' x n' )là tối ưu điều kiện cần và đủ là tồn tại cơ sở B sao cho

'

i j

0

( ), 0,1, , 0,

j N j

y Giả sử ràng buộc (6) của bài toán (5) - (7) viết ở dạng:

0 i j( ), 0,1 ,

j N

= + ∑ − =

Bảng đơn hình tương ứng 0

,

ij i Q j N n

∈ ∈

1

, , , ) ( , , , ), ( , , , ) ( , , , )

1

0

X=(x

x

n

j

=

=



Nếu xi0 ≥ 0 (i = 1, 2, , n) thì bảng đơn hình T gọi là chấp nhận được, véc tơ X

là phương án tựa của bài toán quy hoạch tuyến tính

Nếu x0j ≥ 0 , j∈N thì bảng đơn hình T là chuẩn (đối ngẫu chấp nhận được), véc tơ

X gọi là giả phương án, X gọi là giả phương án mở rộng

2 SO SÁNH THEO NGHĨA TỪ VỰNG

2.1. Véc tơ X =( , , , )x x1 2 x n gọi là dương từ vựng X>0 nếu X≠(0,…,0) và thành phần đầu tiên khác 0 là dương

y Véc tơ X gọi là không âm từ vựng X ≥ 0 nếu X>0 hay X=0

y Véc tơ X gọi là lớn hơn từ vựng véc tơ Y (ký hiệu X > Y) nếu X – Y >0

y Véc tơ X ≥ Y (không nhỏ hơn từ vựng) nếu X – Y ≥0

y X gọi là âm từ vựng (ký hiệu là X < 0) nếu –X >0

y Tương tự ta có các định nghĩa X ≤ 0, X < Y, X ≤ Y

2.2. Phương án X* (phương án mở rộng X*) của bài toán (5)- (7) gọi là phương

án tối ưu từ vựng (phương án l - tối ưu) nếu đối với mọi phương án mở rộng X ta có

( , , , n) ( , , , n)

X = x x xX = x x x

Định lý 1 Nếu tập hợp các phương án tối ưu của bài toán (5) - (7) khác rỗng và

bị chặn thì tồn tại phương án tối ưu từ vựng X*

Định lý 2. Nếu X* phương án tối ưu từ vựng của bài toán (5)-(7) thì X* là phương án tựa

Trang 4

Bùi Thế Tâm II.4 Quy hoạch rời rạc

Bảng đơn hình 0

,

ij i Q j N n

∈ ∈

= gọi là chuẩn từ vựng (hay là l - chuẩn) nếu

0 1

j j j

n j

x x R

x

 

 

 

 

 

=

 

 

 

 

 

> 0 , ∀j∈N

Định lý 3 Để cho phương án tựa X* của bài toán (5) – (7) là l - tối ưu, điều kiện

cần và đủ là tồn tại cơ sở B sao cho bảng đơn hình 0

,

ij i Q j N n

∈ ∈

= là l - chuẩn

Giả phương án X (giả phương án mở rộngX ) của bài toán (5) – (7) gọi là dương

từ vựng nếu bảng đơn hình tương ứng là l - chuẩn, nói gọn lại là l - giả phương án ( l -

giả phương án mở rộng)

3 BẢNG ĐƠN HÌNH, PHƯƠNG ÁN, GIẢ PHƯƠNG ÁN

Phép biến đổi cơ bản của bảng đơn hình: đưa xk ra khỏi cơ sở, đưa xl vào cơ sở Phần tử xkl gọi là phần tử quay

,

ij i Q j N n

∈ ∈

= , cơ sở là B, N={1, ,n B}\ , l N∈ , k B∈ , x kl ≠ 0 Gọi N*=(N∪{ }k )\{ }l , các biến x0, x1, , xn có thể biểu diễn qua các biến

*

N và ta được bảng * 0

,

*

ij i Q j N n

∈ ∈

= và cơ sở mới B*=(B∪{ }l )\{ }k Gọi R jlà cột của T, R j*là cột của T*, ta có công thức tính lại như sau

*

*

l k

kl kj

kl

R R

x x

x

 = −

 = −



hay viết ở dạng toạ độ

{ } { }

*

*

, 0,1, 2, , , ( \ ) 0 , 0,1, ,

il ik

kl kj

ij ij il

kl

x

x x

x

 = − =



{ } ( \ ) { }0

Trang 5

Bùi Thế Tâm II.5 Quy hoạch rời rạc

4 PHƯƠNG PHÁP ĐƠN HÌNH

4.1 Thuật toán

Phương pháp đơn hình cho phép xây dựng dãy hữu hạn các phương án tựa X0, X1,

…, Xk, trong đó Xk là phương án tối ưu của bài toán (5) - (7) Hàm mục tiêu x0 = x0(Xr) không giảm khi r tăng Ứng với mỗi phương án tựa Xr có Tr, Br, Nr Quá trình giải gồm bước lặp xuất phát (xây dựng phương án tựa xuất phát X0) và dãy các bước lặp tổng quát

Bước lặp tổng quát r ≥ 0 có phương án Xr, tương ứng với nó có bảng đơn hình Tr

và các tập Br , Nr Kiểm tra bảng Tr có là chuẩn không (tức là x0j≥0 ∀ ∈j N r) Nếu đúng thì Xr là tối ưu, nếu không thì xác định x đưa vào cơ sở theo công thức : l

0l min 0j| r

Đưa biến x ra khỏi cơ sở theo tiêu chuẩn k

0 min 0 | 1, 2, , ; 0

il

Nếu không có xil (i = 1, 2, , n) dương thì bài toán không giải được, hàm mục tiêu tiến ra dương vô cùng

Tính Xr+1, Tr+1, Br+1, Nr+1 theo các công thức ở tiết 3

4.2 Cách tính phương án xuất phát

Giải bài toán phụ ứng với bài toán (5) – (7) có bi ≥ 0 ( i=1, ,m) :

1 2

1

1

( , , ) max

, 1, 2, ,

0, 1, 2, ,

n m

j n n

ij j n i i j

j

+ +

= +

+

=

Bài toán này có phương án tựa ( , ,1 n m) (0, 0, , 0, , ,1 m)

n

Dùng phương pháp đơn hình giải bài toán phụ, nếu f x x( 1*, 2* ,x*n m+ ) 0= thì

*n i 0

x + = (i = 1, , m) và véc tơ * * *

1 2

(x x, ,x n) là phương án tựa phải tìm X0 Nếu f*< 0 thì bài toán (5) – (7) không giải được (không có phương án chấp nhận được)

Ví dụ Giải bài toán sau:

Trang 6

Bùi Thế Tâm II.6 Quy hoạch rời rạc

0 1 2

1 2

1 2

1 2

max x

2 11 38

7

4 5 5 , 0

x x

x x

x x

= + + ≤ + ≤

− ≤

≥ Bài toán được viết lại thành

0 1 2

ax x

38 2 11 7

5 4 5 , j 0 ( 1, ,5)

= +

= − −

= − −

= − − ≥ = "

Ta có các bảng đơn hinh như sau:

1 -x5 -x4 x0 7 0 1 x1 40/9 1/9 5/9 x2 23/9 -1/9 4/9 x3 1 1 -6 x4 0 0 -1 x5 0 -1 0

Vậy phương án tối ưu là (40/9; 23/9; 1; 0 ;0) với trị hàm mục tiêu là 7 Cách trình bày

của bảng đơn hình ở trên còn gọi là dạng toạ độ của phương pháp đơn hình

5 PHƯƠNG PHÁP ĐƠN HÌNH ĐỐI NGẪU TỪ VỰNG

5.1 Phương pháp đơn hình đỗi ngẫu xây dựng một dãy hữu hạn các giả phương

án Xo, X1, , Xk Giả phương án cuối cùng Xk là phương án (vì vậy là phương án tối ưu) của bài toán (5) - (7) Hàm mục tiêu xo = xo(Xr) không tăng khi r tăng Mỗi giả phương án Xr ứng với bảng Tr và các tập Br , Nr

1 -x1 -x2

x0 0 -1 -1

x1 0 -1 0

x2 0 0 -1

x3 38 2 11

x4 7 1 1

x5 5 4* -5

1 -x5 -x2 x0 5/4 1/4 -9/4 x1 5/4 1/4 -5/4 x2 0 0 -1 x3 71/2 -1/2 27/2 x4 23/4 -1/4 9/4*

x5 0 -1 0

Trang 7

Bùi Thế Tâm II.7 Quy hoạch rời rạc

Quá trình giải gồm bước lặp ban đầu (xây dựng giả phương án xuất phát Xo) và dãy bước lặp tổng quát

5.2. Tìm cực đại từ vựng của phương án mở rộng

~

X = (xo, x1, , xn) = 1

1

, , ,

n

j

c x x x

=

với các điều kiện

1

n

j

a x b

=

=

∑ (i = 1, , m)

0 ( 1, 2, , )

j

xj= " n

Ký hiệu bài toán là ( , )L C hay l - bài toán Phương pháp đơn hình đỗi ngẫu từ

vựng gọi gọn là l - phương pháp

5.3 Bước lặp r ≥ 0 tổng quát

l - giả phương án Xr với x0j ≥ 0, j∈ Nr, và tương ứng Tr , Br , Nr, các cột là

0

r

R j N

Kiểm tra xem Tr có chấp nhận được hay không (tức là xio≥ 0 với mọi i = 1, ,n) Nếu đúng thì Xr là phương án l - tối ưu Nếu không thì tìm biến xk loại khỏi cơ sở theo quy tắc:

k = min { i | i = 1, , n ; xio <0}

Tìm xl đưa vào cơ sở theo quy tắc

l

r kj

R R

Nếu trong các số xkj (j∈ Nr) không có số âm thì bài toán không giải được Nếu có thì biến đổi bảng đơn hình theo các công thức ở tiết 3 ta được Xr+1, Tr+1 , Br+1 , Nr+1

5.4 Tính l giả phương án Xo

Giả sử ta xây dựng bảng đơn hình T ứng với bài toán (5) - (7) không phải

l -chuẩn, ứng với nó có các tập B và N Giả sử hàm ∑

∈N

j j

x bị chặn trên tập (6)- (7) Khi đó ta tìm được số M sao cho: ∑

∈N

j j

x ≤ M (có thể dùng đơn hình thường để xác định M)

Đưa vào biến mới



− +

=

+

0 x

) x (

1 M x

1 n

N

1 n

Viết ràng buộc mới này vào cuối bảng T, chọn xk loại khỏi cơ sớ theo quy tắc: k = n+1 Chọn biến xl đưa vào cơ số theo quy tắc

Trang 8

Bùi Thế Tâm II.8 Quy hoạch rời rạc

Rl = lex min {Rj | j ∈ N }

Thực hiện một bước biến đổi bảng đơn hình theo các công thức của tiết 3

ta nhận được bảng To là l - chuẩn (Rj ≥ 0 với j ∈ No ) và ứng với nó ta có các tập Bo và No:

Bo = (B ∪ {l}), No = (N ∪ {n + 1})\ {l}

5.5 Ví dụ bằng số

Giải bài toán sau bằng phương pháp đơn hình đối ngẫu

Max x0 = 3 x1 − x2 − 2 x3

0 0

0

2

4 3

10 4

2

3 2

1

3 2 1

3 2 1

3 2 1

= +

≥ + +

− +

x x

x

x x x

x x x

x x x

, ,

Sau khi thay ràng buộc đẳng thức bằng hai ràng buộc bất đẳng thức bài toán trên trở thành:

Max x0 = 3 x1 − x2 − 2 x3

0 ,

0 ,

0

2 2

4 3

10 4

2

3 2

1

3 2 1

3 2 1

3 2 1

3 2 1

− +

≤ +

− +

x x

x

x x x

x x x

x x x

x x x

Tiếp theo thêm các biến bù ta được bài toán:

Max x0 = 3 x1 − x2 − 2 x3

0 , , , , , , 2 2

3 4

4 2 10

7 6 5 4 3 2 1

3 2 1 7

3 2 1 6

3 2 1 5

3 2 1 4

+

− +

=

− +

=

+ + +

=

+

=

x x x x x x x

x x x x

x x x x

x x x x

x x x x

Ta có các bảng đơn hình sau khi thêm ràng buộc phụ :

Trang 9

Bùi Thế Tâm II.9 Quy hoạch rời rạc

Bảng 1

Bảng 2

Bảng 3

Trang 10

Bùi Thế Tâm II.10 Quy hoạch rời rạc

Bảng 4

Bảng 5

Vậy phương án tối ưu là (3, 1, 0, 0, 6, 0, 0) với trị hàm mục tiêu bằng x[0]=-8

5.6 Chương trình máy tính

Chương trình nhằm giải bài toán quy hoạch tuyến tính có dạng:

max

1

0 = ∑ →

= j

m

j j

x c

i j m

j ij

b x

=1

, i = 1 , , p

0

j

x , j = 1 , 2 , , m

Trang 11

Bùi Thế Tâm II.11 Quy hoạch rời rạc

các b[i] có thể dương và âm, phương án xuất phát không đối ngẫu chấp nhận được Nếu bài toán giải có ràng buộc đẳng thức dạng: i i

m j

ijx b

=1

thì ta thay thế bằng hai bất

đẳng thức: i i

m

j ij

b x

=1

i i

m

j ij

b x

=1

•Sau khi thêm biến bù bài toán trên có thể viết ở dạng:

max )

)(

(

1

0 = ∑ − − →

=

m

x c x

m j

x

xj = ( − 1 )( − j) = 1 , 2 , ,

, , 2 , 1 )

)(

(

1

p i

x a b

j ij i

i

= +

, ,

2 , 1

xj ≥ = +

•Trong chương trình sử dụng các biến và mảng sau:

- m: số biến chính, n: số biến chính và biến bù của bài toán (n=m+p), gz là một

số dương đủ lớn và thường lấy bằng max { aij, bi, cj}, ss = 1 nếu bảng s là l- chuẩn nhưng không chấp nhận được và = 0 nếu bảng không là l- chuẩn

- Mảng s gồm n + 2 dòng và m+1 cột lúc đầu ghi dữ liệu của bài toán sau đó lưu bảng đơn hình ở mỗi bước Dòng n+1 để chứa ràng buộc phụ (8)

- s[0][0] hàm mục tiêu, cột 0 là cột phương án, dòng 0 là các ước lượng

- cs : các biến ở bên trái bảng đơn hình, nc : các biến phi cơ sở

Cách nhập dữ liệu

Các dữ liệu ban đầu của bài toán được ghi trong một tệp văn bản, gồm:

- n, m,gz, ss

- Mảng s dữ liệu ban đầu bố trí dạng ở dưới và được ghi vào tệp dữ liệu theo từng dòng :

Trang 12

Bùi Thế Tâm II.12 Quy hoạch rời rạc

- Mảng cs: nhập các số 0,1,2,…,n

- Mảng nc: nhập các số 1,2,…,m

Với dữ liệu bài toán trong mục 5.5 thì tệp dữ liệu DN.SLI có dạng :

7 3 100 0

0 -3 1 -2

0 -1 0 0

0 0 -1 0

0 0 0 -1 10 2 4 -1 -4 -3 -1 -1 2 1 -1 1 -2 -1 1 -1 0 1 2 3 4 5 6 7 1 2 3 •Văn bản chương trình #include <stdio.h> #include <conio.h> #include <math.h> #include <dos.h> #define M 30 #define N 30 double s[N+2][M+1],r,gz; int blap,kgd, kgd2,ss,sb,cmin; int m,n,i,j,k,l,tg,cs[N+2],nc[M+1]; unsigned long far *t; long int t1,t2; char *s1,*s2; FILE *f1,*f2; -x1 -x2 –xm 0 -c1 -c2 –cm x0 x1 x2 # xm 0 0 # 0 -1 0 0

0 -1 0

# # % #

0 0 -1

xm+1 # xn b1 # bp -a11 - a1m # # #

-ap1 .-ap,m

Trang 13

Bùi Thế Tâm II.13 Quy hoạch rời rạc

int cotquay();

void biendoi();

void inbang(int cuoi);

int dhdoingau();

void main()

{ clrscr();

t= (unsigned long far *)MK_FP(0,0X46C); t1=*t;

printf("\nCo in trung gian hay khong 1/0 ? ");

scanf("%d%*c",&tg);

// Nhap du lieu ban dau printf("\nVao ten tep so lieu : "); gets(s1);

f1= fopen(s1,"r");

fscanf(f1,"%d%d%lf%d",&n,&m,&gz,&ss);

for (i=0;i<=n;i++) for (j=0; j<=m;j++)

{ fscanf(f1,"%lf",&r); s[i][j]=r; }

for (i=0; i<=n;i++) fscanf(f1,"%d",&cs[i]) ;

for (j=1; j<=m; j++) fscanf(f1,"%d",&nc[j]);

fclose(f1); sb=1;

// In so lieu de kiem tra printf("\n n,m,gz,ss = %d %d %13.5lf %d\n",n,m,gz,ss);

if (tg==1){ printf("\nVao ten tep chua ket qua : "); gets(s2);

f2=fopen(s2,"w");

fprintf(f2,"\n n,m,gz,ss = %d %d %13.5lf %d\n",n,m,gz,ss);

}

printf("\nBang 1, so lieu ban dau");

if (tg==1) fprintf(f2,"\nBang 1, so lieu ban dau");

inbang(0);

if (ss==1){

printf("\nBang 1, so lieu ban dau, l- chuan, khong chap nhan duoc");

if (tg==1)

fprintf(f2,"\nBang 1, so lieu ban dau, l- chuan, khong c.nhan duoc");

goto L1;}

// Them rang buoc phu cs[n+1]=n+1; s[n+1][0]=gz;

for (j=1;j<=m; j++) s[n+1][j]=1;

printf("\nBang 1, so lieu ban dau them rang buoc phu");

if (tg==1) fprintf(f2,"\nBang 1, so lieu ban dau them rang buoc phu");

inbang(1);

l=n+1;

// Chon cot quay Rl = lexmin { Rj | j (- N }

cmin=1;

for (j=2;j<=m;j++)

{ for (i=0; i<=n;i++)

{ if (s[i][cmin] > s[i][j]) {cmin=j; break;}

if (s[i][cmin] < s[i][j]) break; }

}

printf("\nDong quay = %d, Cot quay = %d Ptq = %13.5lf",l,cmin,s[l][cmin]);

if (tg==1) {

fprintf(f2,"\nDong quay = %d, Cot quay = %d Ptq = %13.5lf",

l,cmin,s[l][cmin]); } biendoi();sb++;

printf("\nBang %d, l- chuan dau tien",sb);

Ngày đăng: 22/07/2014, 06:20

HÌNH ẢNH LIÊN QUAN

Bảng đơn hình  0 - QUY HOẠCH RỜI RẠC - CHƯƠNG 2 doc
ng đơn hình 0 (Trang 2)
Bảng đơn hình tương ứng  0 - QUY HOẠCH RỜI RẠC - CHƯƠNG 2 doc
ng đơn hình tương ứng 0 (Trang 3)
Bảng đơn hình  0 - QUY HOẠCH RỜI RẠC - CHƯƠNG 2 doc
ng đơn hình 0 (Trang 4)
Bảng đơn hình T mà tất cả các phần tử của nó đều là nguyên gọi là bảng  đơn hình nguyên - QUY HOẠCH RỜI RẠC - CHƯƠNG 2 doc
ng đơn hình T mà tất cả các phần tử của nó đều là nguyên gọi là bảng đơn hình nguyên (Trang 16)

TỪ KHÓA LIÊN QUAN

w