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

Bài toán quy hoạch nguyên, thuật toán Gomory và ứng dụng trong cắt thép xây dựng (LV thạc sĩ)

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.57 MB, 82 trang )

ĐẠI HỌC THÁI NGUYÊN
TRƢỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
VÀ TRUYỀN THÔNG

HOÀNG QUANG HƢNG

BÀI TOÁN QUY HOẠCH NGUYÊN, THUẬT TOÁN
GOMORY VÀ ỨNG DỤNG TRONG CẮT THÉP XÂY DỰNG

UẬN V N THẠC S

HOA HỌC MÁY T NH

Thái Nguyên 2015

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




ĐẠI HỌC THÁI NGUYÊN
TRƢỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
VÀ TRUYỀN THÔNG

HOÀNG QUANG HƢNG

BÀI TOÁN QUY HOẠCH NGUYÊN, THUẬT TOÁN
GOMORY VÀ ỨNG DỤNG TRONG CẮT THÉP XÂY DỰNG
Chuyên ngành: Khoa học máy tính
Mã số: 60.48.01


UẬN V N THẠC S

HOA HỌC MÁY T NH

NGƢỜI HƢỚNG DẪN

HOA HỌC

TS. NGUYỄN HẢI MINH

Thái Nguyên 2015

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




LỜI CAM ĐOAN
Tôi xin cam đoan luận văn “Bài toán quy hoạch nguyên, thuật toán
Gomory và ứng dụng trong cắt thép xây dựng” là công trình nghiên cứu do tôi
thực hiện d

i sự h

ng d n c a TS. Nguyễn Hải Minh và TS. Vũ Vinh Quang.

Các nội dung đ ợc trình bày trong luận văn là những kết quả đạt đ ợc trong thời tôi
gian thực đề tài d

i sự h


ng c a tập thể giáo viên h

ng d n, tôi không sao chép

nguyên bản lại kết quả c a các nghiên cứu đã từng đ ợc công bố và đây cũng là kết
quả c a quá trình nghiên cứu, học tập và làm việc nghiêm túc c a tôi trong quá trình
học cao học. Bên cạch đó, trong một số nội dung luận văn là kết quả phân tích,
nghiên cứu, tổng hợp từ nhiều nguồn tài liệu khác. Các thông tin tổng hợp hay các
kết quả lấy từ nhiều nguồn tài liệu khác đã đ ợc tôi trích d n một cách đầy đ và
hợp lý. Nguồn tài tài liệu tham khảo có xuất xứ rõ ràng và đ ợc trích d n hợp pháp.
Các số liệu và thông tin sử dụng trong luận văn này là trung thực.
Thái Nguyên, ngày

tháng

năm 2015

Ngƣời cam đoan

Hoàng Quang Hƣng

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




ỜI CẢM ƠN
Tôi xin chân thành cảm ơn các thầy, cô trong Viện Công nghệ thông tin,
Tr ờng Đại học Công nghệ thông tin và Truyền thông - Đại học Thái Nguyên đã

tham gia giảng dạy, giúp đỡ tôi trong suốt quá trình học tập nâng cao trình độ kiến
thức để phục vụ cho công tác giảng dạy c a tôi hiện tại và sau này.
Tôi xin bày tỏ lòng biết ơn chân thành t i TS. Nguyễn Hải Minh và TS.Vũ Vinh
Quang, các Thầy đã tận tình h

ng d n h

ng d n tôi trong suốt thời gian thực hiện luận

văn.
Vì điều kiện thời gian và trình độ có hạn nên luận văn cũng không thể tránh
khỏi những thiếu sót. Tôi xin kính mong các Thầy, Cô giáo, các bạn đồng nghiệp
đóng góp ý kiến để đề tài đ ợc hoàn thiện hơn.
Tôi xin chân thành cảm ơn!

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




i

MỤC LỤC
MỞ ĐẦU .....................................................................................................................1
NỘI DUNG .................................................................................................................2
Ch ơng 1
CÁC KIẾN THỨC CƠ BẢN VỀ BÀI TOÁN QUY HOẠCH TUYẾN TÍNH .........3
1.1. Mô hình tổng quát về bài toán quy hoạch tuyến tính .......................................3
1.1.1. Gi i thiệu bài toán quy hoạch tuyến tính ...................................................3
1.1.2. Bài toán tổng quát ......................................................................................3

1.1.3. Dạng chuẩn và dạng chính tắc ...................................................................4
1.1.4. Đ a quy hoạch tuyến tính về dạng chuẩn hoặc dạng chính tắc .................4
1.2. Thuật toán đơn hình ..........................................................................................5
1.2.1. Đ ờng lối chung và cơ sở c a thuật toán ..................................................6
1.2.2. Cơ sở c a thuật toán ..................................................................................6
1.2.3. Thuật toán đơn hình ...................................................................................8
1.2.4. Công thức đổi cơ sở, bảng đơn hình ..........................................................9
1.3. Lý thuyết đối ng u ..........................................................................................12
1.3.1. QHTT d

i dạng chuẩn, cặp bài toán tuyến tính đối ng u đối xứng ......12

1.3.2. Ý nghĩa cặp bài toán đối ng u .................................................................15
1.3.3. Ph ơng pháp đơn hình đối ng u từ vựng ................................................15
Ch ơng 2
BÀI TOÁN QUY HOẠCH NGUYÊN VÀ THUẬT TOÁN GOMORY.................19
2.1. Mô hình tổng quát ..........................................................................................19
2.2. Một số mô hình thực tế ...................................................................................20
2.2.1. bài toán v i điều kiện không chia cắt đ ợc .............................................20
2.2.2. Bài toán v i điều kiện logic .....................................................................20
2.2.3. Bài toán v i biến số rời rạc ......................................................................21
2.2.4. Bài toán v i vốn đầu t ban đầu ..............................................................21
2.3. Cơ sở lý thuyết về thuật toán nhát cắt Gomory ..............................................22


ii

2.3.1. T t ởng ..................................................................................................22
2.3.2. Khái niệm lát cắt đúng .............................................................................24
2.3.3. T t ởng ph ơng pháp cắt Dantzig .........................................................24

2.4. Thuật toán Gomory giải bài toán quy hoạch nguyên ....................................25
2.4.1. Thuật toán Gomory thứ nhất ....................................................................25
2.4.2. Thuật toán Gomory thứ hai ......................................................................36
2.4.3. Thuật toán Gomory thứ ba .......................................................................44
Ch ơng 3
CÀI ĐẶT BÀI TOÁN CẮT THÉP TRONG XÂY DỰNG .....................................60
3.1. Đánh giá thuật toán Gomory ..........................................................................60
3.2. Ứng dụng giải bài toán cắt thép trong xây dựng ............................................61
3.2.1 Mô hình bài toán thực tế ...........................................................................61
3.2.2 Mô hình toán học ......................................................................................61
3.2.3 Thuật toán giải bài toán ............................................................................61
3.3. Cách sử dụng ch ơng trình ............................................................................64
3.3.1. Các biến sử dụng trong ch ơng trình ......................................................64
3.3.2. Cách sử dụng ch ơng trình ......................................................................64
3.4. Kết quả cài đặt ................................................................................................65
KẾT LUẬN ...............................................................................................................71
TÀI LIỆU THAM KHẢO .........................................................................................72
PHẦN PHỤ LỤC ......................................................................................................73


1

MỞ ĐẦU
Kể từ khi máy vi tính xuất hiện thì công nghệ thông tin và toán học luôn là
hai lĩnh vực song song cùng phát triển. Tr

c đây, việc giải các bài toán, đặc biệt là

các bài toán phức tạp th ờng tốn rất nhiều thời gian và công sức, thì ngày nay, việc
giải các bài toán đó, có thể diễn ra nhanh chóng trên máy vi tính bằng cách sử dụng

các thuật giải. Việc giải các bài toán một cách nhanh chóng trên máy tính không
những giúp cho toán học phát triển mà nó còn giúp cho rất nhiều ngành khác cùng
phát triển theo. Một trong các lĩnh vực c a toán học th ờng ứng dụng công nghệ
thông tin để giải quyết đó là các bài toán về quy hoạch tuyến tính. Mô hình bài toán
quy hoạch tuyến tính là một mô hình đã đ ợc phát triển từ rất lâu. Trong mô hình
tổng quát, đã xuất hiện rất nhiều các thuật toán nổi tiếng để xác định ph ơng án tối
u nh , thuật toán đơn hình gốc c a Dantzig, thuật toán đơn hình cải biên hay thuật
toán đối ng u. Trong mô hình bài toán tổng quát nếu thêm vào điều kiện ràng buộc
là các nghiệm c a bài toán phải thỏa mãn nguyên, thì chúng ta nhận đ ợc bài toán
quy hoạch nguyên. Do tính chất nguyên c a nghiệm nên bài toán quy hoạch nguyên
có rất nhiều ứng dụng trong thực tế, nh bài toán vận tải, bài toán lập lịch biểu, bài
toán cái túi, bài toán pha cắt vật t …Để tìm nghiệm c a bài toán quy hoạch nguyên
thì thuật toán Gomory đóng vai trò quan trọng đặc biệt là trong công nghệ thông tin.
Nhận thấy tính thiết thực c a vấn đề này và đ ợc sự gợi ý c a giảng viên
h

ng d n, tôi đã chọn đề tài “Bài toán quy hoạch nguyên, thuật toán Gomory và

ứng dụng trong cắt thép xây dựng” làm đề tài cho luận văn tốt nghiệp c a mình.


2

NỘI DUNG
Chƣơng 1: Ch ơng này trình bày nh ng kiến thức cơ bản về quy hoạch
tuyến tính, bài toán tổng quát, dạng chuẩn và dạng chính tắc c a bài toán quy hoạch
tuyến tính. Cách đ a bài toán về dạng chuẩn hoặc dạng chính tắc. thuật toán đơn
hình giải bài toán quy hoạch tuyến tính.
Chƣơng 2: Ch ơng này trình bày về bài toán quy hoạch nguyên, một số bài
toán trong thực tế. Cơ sở lý thuyết c a ba thuật toán Gomory để giải bài toán quy

hoạch nguyên.
Chƣơng 3: Ch ơng này là kết quả cài đặt bài toán cắt thép trong xây dựng
dựa vào thuật toán Gomory.


3

Chƣơng 1

CÁC

IẾN THỨC CƠ BẢN VỀ BÀI TOÁN QUY HOẠCH TUYẾN
TÍNH

1.1. Mô hình tổng quát về bài toán quy hoạch tuyến tính
1.1.1. Giới thiệu bài toán quy hoạch tuyến tính
Quy hoạch tuyến tính là một trong những l p bài toán tối u đ ợc nghiên
cứu trọn vẹn cả về ph ơng diện lý thuyết l n thực hành.
Quy hoạch tuyến tính bắt nguồn từ những nghiên cứu c a nhà toán học Nga
nổi tiếng, viện sĩ Kantorovich L.V đ ợc nêu trong một loạt công trình về bài toán kế
hoạch hóa sản xuất, công bố năm 1938. Năm 1947 nhà toán học Mỹ Dantzig đã
nghiên cứu và đề xuất ph ơng án đơn hình để giải bài toán quy hoạch tuyến tính.
Năm 1952 ph ơng pháp đơn hình đã đ ợc chạy trên máy tính điện tử ở Mỹ.
Quy hoạch tuyến tính là lĩnh vực toán học nghiên cứu các bài toán tối u mà
hàm mục tiêu và các ràng buộc đều là hàm và các ph ơng trình hoặc bất ph ơng
trình tuyến tính.
Các b

c nghiên cứu và ứng dụng một bài toán quy hoạch tuyến tính điển


hình nh sau:
- Xác định vấn đề cần giải quyết, thu thập dữ liệu.
- Lập mô hình toán học.
- Xây dựng các thuật toán để giải bài toán đã mô hình hóa bằng ngôn ngữ
thuận lợi cho việc lập trình cho máy tính.
- Tính toán thử và điều chỉnh mô hình nếu cần.
- Áp dụng giải các bài toán thực tế.
1.1.2. Bài toán tổng quát
Ta xét bài toán tìm cực đại, sau đó ta sẽ xét cách chuyển bài toán tìm cực tiểu
sang tìm cực đại.
Bài toán tổng quát c a quy hoạch tuyến tính có dạng:


4

n

å

c j x j ® max

j= 1

íï n
ïï
å aij x j (£ , = , ³ )bi , i = 1,m
D ïì j = 1
ïï
ïïî x j ³ 0, j = 1,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 ta đ a nó về dạng bài toán max:
n

f (x ) = -

å

c j x j ® max

j= 1

Nếu bài toán max có ph ơng án tối u là x ' thì bài toán min cũng có
ph ơng án tối u là x * và. fmin = - f m ax .
1.1.3. Dạng chuẩn và dạng chính tắc
ng ời ta xét quy hoạch tuyến tính d
Dạng chuẩn
n


å

i 2 dạng sau đây:
Dạng chính tắc
n

c j x j ® max

j= 1

å

c j x j ® max

j= 1

íï n
ïï
ïì å aij x j £ bi , i = 1,m
j= 1
ïï
ïïî x j ³ 0, j = 1,n

íï n
ïï
ïì å aij x j = bi , i = 1,m
j= 1
ïï
ïïî x j ³ 0, j = 1, n


1.1.4. Đƣa quy hoạch tuyến tính về dạng chuẩn hoặc dạng 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 dạng chính tắc nhờ các phép biến đổi tuyến tính sau:


5

n

1. Một ràng buộc

å

n

aij x j ³ bi có thể đ a về ràng buộc -

j= 1

å

a ij x j £ - bi

j= 1
n

å

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


aij' x j ³ bi'

j= 1
n

å

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

aij x j = bi , có thể thay thế bằng 2 ràng buộc

j= 1
n

bất đẳng thức:

å

n

aij x j £ bi ;

-

j= 1

å

aij x j £ - bi


j= 1

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

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

å

aij x j £ bi có thể đ a về ràng buộc đẳng

j= 1

thức bằng cách đ a vào biến phụ y i ³ 0
n

å

aij + y i = 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 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.
1.2. Thuật toán đơn hình
Cơ sở c a ph ơng pháp này đ ợc Dantzig công bố năm 1947 có tên gọi là
ph ơng pháp đơn hình. Sở dĩ có tên gọi nh vậy vì những bài toán đầu tiên đ ợc
giải bằng ph ơng pháp đó có các ràng buộc dạng:

n

å

x j = 1, x j > 0, j = 1, n

j= 1

mà tập các điểm x Î R n thỏa mãn các ràng buộc trên là một đơn hình trong không
gian n chiều.


6

1.2.1. Đƣờng lối chung và cơ sở của thuật toán
Đường lối chung
ph ơng pháp đơn hình dựa trên hai nhận xét sau:
- Nếu bài toán quy hoạch tuyến tính có ph ơng án tối u thì có ít nhất một
đỉnh c a D là ph ơng án tối u
- Đa diện lồi D có một số hữu hạn đỉnh
Nh vậy phải tồn tại một thuật toán hữu hạn. Thuật toán gồm 2 giai đoạn:
- Giai đoạn I: Tr

c hết tìm một ph ơng án cực biên (một đỉnh).

- Giai đoạn II: Kiểm tra điều kiện tối u v i ph ơng án đó.
- Nếu điều kiện tối u đ ợc thỏa mãn thì ph ơng án đó là tối u. Nếu không
ta chuyển sang ph ơng án cực biên m i sao cho cải tiến giá trị hàm mục tiêu
- Kiểm tra điều kiện tối u đối v i ph ơng án m i.
Ng ời ta thực hiện một dãy các th tục nh vậy cho đến khi nhận đ ợc

ph ơng án tối u, hoặc đến tình huống bài toán không có ph ơng án tối u.
1.2.2. Cơ sở của thuật toán
Xét bài toán quy hoạch tuyến tính d

i dạng chính tắc.

< c, x > ® m ax
íï Ax = b
ï
ì
ïï x ³ 0
î
Trong đó A là ma trận kích th

c m ´ n và giả sử rằng hạng c a ma trận A

là m (điều này không làm mất tính tổng quát).
Giả sử x là một ph ơng án cực biên nào đó.
Ta ký hiệu: J * = { j | x j > 0}
Vì rằng các vectơ A j , j Î J * là độc lập tuyến tính nên | J * | £ m
 Định nghĩa: Ph ơng án cực biên x đ ợc gọi là không thoái hóa nếu

| J * |= m , thoái hóa nếu | J * |< m .


7

Ta chọn một hệ thống m vectơ độc lập tuyến tính Î {A j , j Î J } sao cho

j Ê J * . Hệ thống đó là cơ sở c a x , các vectơ A j , j Î J và biến x j , j Î J đ ợc

gọi là các vectơ và các biến cơ sở t ơng ứng. Các vectơ và các biến A j , x j ( j Ï J )
gọi là vectơ và các biến phi cơ sở.
Nếu x không thoái hóa thì tồn tại một cơ sở duy nhất, đó là j = J * .
Mọi vectơ Ak phi cơ sở có thể biểu diễn d

i dạng tổ hợp tuyến tính c a các

vectơ cơ sở:

Ak =

å

jÎ J

z jk A j

Trong đó các hệ số z ik đ ợc xác định duy nhất bởi việc giải hệ ph ơng trình

a jk =

å

jÎ J

z jkaij , i = 1,m

Bài toán quy hoạch tuyến tính đ ợc gọi là không thoái hóa nếu tất cả các
ph ơng án cực biên c a nó đều không thoái hóa.
giả sử bài toán không thoái hóa và ta đã tìm đ ợc một ph ơng án cực biên


x = (x 1, x 2,..., x m , 0,..., 0) và cơ sở c a nó A1, A2,..., Am .
Đối v i ph ơng án cực biên này ta có:
m

å

x j A j = b, x j > 0, j = 1, m

j= 1

V i giá trị c a hàm mục tiêu
m

å

c j x j = z 0, x j > 0, j = 1, m

j= 1

Ta tính các đại l ợng sau:
m

å

j= 1

Ký hiệu:

z jkc j = z k



8

m

D k = z k - ck =

å

z jkc j - ck

j= 1

 Định lý 1: Nếu đối v i ph ơng án cực biên

x = (x 1, x 2,..., x m , 0,..., 0)
Các điều kiện sau đ ợc thỏa mãn

Vk ³ 0, " k = 1, n
thì x là ph ơng án tối u.
 Định lý 2: Nếu tồn tại một chỉ số k sao cho Vk < 0 thì ta có thể tìm đ ợc ít
nhất một ph ơng án x ' mà đối v i nó z ' > z .
1.2.3. Thuật toán đơn hình
Giả sử ta đã đ a quy hoạch tuyến tính về dạng chính tắc:

cx = z (max)
íï A x = b
ï
ì

ïï x ³ 0
î
Giai đoạn 1: 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
Giai đoạn 2: xác định các số z jk bởi hệ thống Ak =
Đối v i mỗi k Ï J tính các
1) Nếu ( " k Ï J ) D k ³ 0 Þ

c l ợng : D k =

å

jÎ J

å

jÎ J

z jk A j

z jkc j - ck

x là nghiệm tối u. Dừng.

2) Nếu không x không phải là nghiệm tối u.
- ( $ k Ï J ) D k < 0 và z jk £ 0, " j Î J Þ bài toán quy hoạch tuyến tính
không có nghiệm tối u ( z không bị chặn trên). Dừng thuật toán.
- Đối v i mỗi k Ï J sao cho D k < 0 , đều tồn tại j Î J : z jk > 0 Þ chọn


D s = min {D k | D k < 0}


9

Đ a vectơ As vào cơ sở.

íï x
ü
ï
x
j
ï
Xác định: q = min ì
| z js > 0ïý = r
ï z rs
ïï
z rs
îï
þ
Đ a vectơ Ar ra khỏi cơ sở. Ta đ ợc ph ơng án cực biên m i x ' v i
cơ sở J ' = J \ {r } È {s } . Quay trở lại khởi đầu c a giai đoạn 2.
1.2.4. Công thức đổi cơ sở, 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 ' .

íï
ïï x - x r z nÕu j ¹ r
ïï j z js'
'

rs
Ta có công thức x j = ì
ïï x r
nÕu j = r
ïï
ïïî z rs
Bây giờ ta thiết lập công thức tính các số z jk
Ta có:

As =

å

jÎ J

z ij A j Þ

Mặt khác: Ak =

1
(A z rs s

Ar =

å

jÎ J

å


jÎ J

(1.1)

z js A j )
j¹ r

(1.2)

(z jk A j + z rk Ar )

Thay biểu thức c a Ar từ (1.1) vào (1.2) ta có

Ak =

Ak =

å

jÎ J

å

z jk A j +

jÎ J
j¹ r

z rk
(A z rs s


( z jk A j -

å

jÎ J

z js A j )
j¹ r

z rk
z
z js )A j + sk
z rs
z rs

Đây là công thức biểu diễn Ak qua cơ sở m i J ' = J \ {r } È {s } . bởi vậy ta
có:


10

íï
ïï z - z rk z , nÕu j ¹ r
ï jk z js
rs
z jk' = ïì
ïï z rk
, nÕu j = r
ïï

ïïî z rs
Sau khi có z jk ta tính: D k' =
Để dễ tính toán trong mỗi b

å

jÎ J

z'jkc j - ck

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ừ f ) đều ³ 0, nghĩa là D k ³ 0 " k , khi
đó x là ph ơng án tối u.
 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 £ 0 hay không ?
- Nếu có thì bài toán không có ph ơng án tối u.
- Nếu không thì chọn cột s sao cho D s = min {D k | D k < 0}
rồi chọn trong số những dòng cắt cột s ở những số d ơng dòng r mà tỉ số

qr =

x
xr
= min{ j | z js > 0}
z rs
z js

Cột s gọi là cột xoay, vectơ A đ a vào cơ sở.
Dòng r gọi là dòng xoay. Vectơ A , bị đ a ra khỏi cơ sở.

Phần tử z rs > 0 là giao c a cột xoay và dòng xoay gọi là phần tử trục. Các
phần tử z js , j ¹ r gọi là phẩn tử xoay.
Theo các công thức :

íï
ïï x - x r z nÕu j ¹ r
ïï j z js'
'
rs
xj = ì
ïï x r
nÕu j = r
ïï
ïïî z rs

A j , j Î J ' = J \ {r } È {s }
D k' =

å

jÎ J

z jk' c j - ck


11

gọi là các công thức đổi cơ sở
bảng đơn hình m i đ ợc suy từ bảng cũ bằng cách thay cr , Ar trong dòng
xoay bằng cs , As . Sau đó thực hiện phép biến đổi d


i đây:

1) Chia mỗi phần tử dòng xoay cho phần tử trục (đ ợc số 1 ở vị trí trụ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ử xoay
t ơng ứng (đ ợc số 0 ở mọi vị trí còn lại c a cột xoay).
Dòng m i = dòng cũ t ơng ứng - dòng chính ´ phần tử xoay.
L u ý rằng sau phép xoay thì ở vị trí D s ta thu đ ợc số 0 vì lúc này As trở
thành vectơ đơ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ũ.
Toàn thể phép biến đổi trên gọi là phép xoay xung quanh trục z rs . Sau khi
thực hiện phép xoay 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 D k <0 thì ta lại tiếp tục quá trình.
Chú ý : trong bảng đơn hình ở bảng 1.1, không giảm tổng quát ta coi các
vectơ cơ sở đ ợc đánh số A1, A2,..., Am nghĩa là: J = {1, 2,...m }


12

bảng 1.1

sở

Ph ơng
án

c1

c 2 ...


c j ...

cr ...

cm ...

ck

... cs

... cn

A1

A2 ...

A j ...

Ar ...

Am ...

Ak

... As

... An

A1


x1

1

0 ...

0...

0...

0

z 1k

... z 1s

... z 1n

c2 . A2

x2

0

1

0

0


0

z 2k

... z 2s

... z 2n

.

.
.

.
.

.
.

.
.

.
.

.
.

.

.

.
.

.
.

xj

0

0

1

0

0

z jk

... z js

... z jn

.

.
.


.
.

.
.

.
.

.
.

.
.

.
.

.
.

.
.

cr

Ar

xr


0

0

1

0

0

z rk

... z rs

... z m

.
.

.
.

.
.

.
.

.

.

.
.

.
.

.
.

.
.

.
.

cm

Am

xm

0

0

0

0


1

z mk

.. z ms

.
.
...

cj

c1

.

cj . .
Aj .
.

z mn
f

0

0 ...

0...


0...

0 ...

Dk

... D s

... D n

1.3. ý thuyết đối ngẫu
Ta chứng tỏ ở đây rằng đối v i mọi bài toán quy hoạch tuyến tính ta có thể
thiết lập t ơng ứng cho nó một bài toán khác gọi là bài toán đối ng u c a nó. Khái
niệm đối ng u là một trong các khái niệm cơ bản c a quy hoạch tuyến tính. Trong
rất nhiều tr ờng hợp để có đ ợc những kết luận chấp nhận đ ợc cho một trong các
bài toán trên thì việc nghiên cứu bài toán đối ng u c a nó lại tỏ ra thuận tiện hơn.
Hơn nữa khi ta phân tích song song một cặp bài toán đối ng u ta có thể nhận đ ợc
những kết luận hay cả về toán học cả về ý nghĩa kinh tế.
1.3.1. QHTT dƣới dạng chuẩn, cặp bài toán tuyến tính đối ngẫu đối xứng
 Định nghĩa 1. Cho QHTT d

< c, x > = z (min)

i dạng chuẩn.


13

íï A x ³ b
( p) ïì

ïï x ³ 0
î
Ta gọi đối ng u c a nó là bài toán QHTT dạng:

< b, y > = w(max)
íï A y £ c
( p) ïì
ïï y ³ 0
î
Ở đây A là ma trận chuyển vị c a A , y là vectơ cột.
Ta chú ý rằng các biến đổi ng u t ơng ứng một – một v i các ràng buộc c a
quy hoạch ban đầu (mà ta sẽ gọi là quy hoạch gốc), trong khi những ràng buộc c a
bài toán đối ng u t ơng ứng một – một các biến c a quy hoạch gốc. Điều đó thể
hiện rõ trong sơ đồ sau:
x2
x 3 ... x n
x1

y1

a11

a12

a13

... a1n

y2
.

ym

a21
....
am 1

a21

a22

... a2n

am 2

am 3 ... amn

/

/

/

c1

c2

c3

 b
1

 b2
.

bm
min

... cn

max

Khi đọc theo hàng c a sơ đồ này ta đ ợc các ràng buộc (ngoài x ³ 0 ) và
hàm mục tiêu c a quy hoạch gốc.
Khi đọc theo cột ta đ ợc các ràng buộc (ngoài y  0 ) và hàm mục tiêu c a
quy hoạch đối ng u.
Ví dụ: quy hoạch đối ng u c a bài toán

8x1  7x 2  3x 3  z (min)
íï 2x + x ³ 4
ïï 1
2
ïì x + 2x + x ³ 5
2
3
ïï 1
ïï x 1, x 2, x 3 ³ 0
î


14


là quy hoạch

4y1 + 5y 2 = W (max)

íï 2y + y
2
ïï 1
ïï y + 2y
2
ïì 1
ïï
y3
ïï
ïïî y 1, y 2

£
£
£
³

8
7
3
0

 Định lý 1. Cho ( p) và ( p ' ) là một cặp quy hoach tuyến tính đối ng u:

< b, y > = W (max)

< c, x > = z (min)

íï A x ³ b
( p) ïì
ïï x ³ 0
î

íï A 'y £ c
( p' ) ïì
ïï y ³ 0
î

Đối v i mọi cặp ph ơng án chấp nhận đ ợc x , y t ơng ứng c a ( p) và ( p ' ) ta có:

< b, y > £ < c, x >
Hệ quả: Nếu x là các ph ơng án chấp nhận đ ợc t ơng ứng c a cặp quy
hoạch tuyến tính đối ng u ( p ) và nếu < c, x'>   b, y  thì :
(1) < c, x'> = < b, y >
(2) x và y là các ph ơng án tối u t ơng ứng c a ( p ) và ( p ’).
 Định lý 2. Cho 1 quy hoạch tuyến tính.
- Nếu nó có ph ơng án chấp nhận đ ợc thì nó có ph ơng án cực biên.
- Nếu nó có ph ơng án tối u thì nó có ph ơng án cực biên tối u.
- Nếu nó có ph ơng án chấp nhận đ ợc và nếu giá trị hàm mục tiêu chặn
(chặn trên nếu là bài toán cực đại hoá, chặn d

i nếu là bài toán cực tiểu hoá), thì nó

có ph ơng án cực biên tối u.
 Định lý 3. Nếu 2 QHTT đối ng u ( p ) và ( p ’) đều có ph ơng án chấp nhận
đ ợc thì chúng đều có ph ơng án tối u và giá trị tối u c a các hàm mục tiêu bằng
nhau.



15

 Định lý 4. (định lý đối ng u).
Cho hai quy hoạch tuyến tính đối ng u ( p ) và ( p ’).
- Nếu chúng đều có ph ơng án chấp nhận đ ợc thì chúng đều có ph ơng án
tối u và giá trị tối u c a các hàm mục tiêu bằng nhau.
- Nếu một trong hai quy hoạch có một l p các ph ơng án chấp nhận đ ợc mà
đối v i chúng hàm mục tiêu không bị chặn (chặn d

i đối v i ( p ' ) , chặn trên đối

v i ( p ' ) ), khi đó quy hoạch khác không có ph ơng án chấp nhận đ ợc.
- Nếu ( p) (t ơng ứng ( p ' ) , có một ph ơng án chấp nhận đ ợc nh ng ( p ' ) ,
(t ơng ứng ( p) ) không có thì ( p) (t ơng ứng ( p ' ) ) có một l p các ph ơng án chấp
nhận đ ợc mà đối v i chúng hàm mục tiêu không bị chặn d

i (t ơng ứng không bị

chặn trên).
- Có thể xảy ra là cả ( p) và ( p ' ) đều không có ph ơng án chấp nhận đ ợc.
 Định lý 5. (Định lý về độ lệch bù).
Điều kiện cần và đ để cặp ph ơng án chấp nhận đ ợc c a các quy hoạch tuyến tính
đối ng u ( p) và ( p ' ) là cặp ph ơng án tối u là:
1.3.2. Ý nghĩa cặp bài toán đối ngẫu
- Khi có c j >0, " j thì bài toán đối ng u biết ngay đ ợc ph ơng án cực biên.
- Nếu Y là ph ơng án cực biên c a bài toán đối ng u thì khi bài toán gốc
thêm một ràng buộc ta có ( y , 0) v n là ph ơng án cực biên c a bài toán đối ng u.
- Đôi khi dùng cặp bài toán đối ng u để giải gần đúng theo ý nghĩa sau: giải
cả hai bài toán và nếu hiệu giữa các giá trị t ơng ứng c a các hàm mục tiêu đ nhỏ

thì dừng lại và ph ơng án cực biên thu đ ợc này là nghiệm gần đúng.
1.3.3. Phƣơng pháp đơn hình đối ngẫu từ vựng
 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

X 0, X 1,..., X k . Giả ph ơng án cuối cùng là X k là ph ơng án c a bài

toán dạng chính tắc. Hàm mục tiêu x 0 = x 0 (X r ) không tăng khi r tăng khi r mỗi


16

gi ph ng ỏn X r ng v i bng T r v cỏc tp B r , N r . Quỏ trỡnh gii gm b
ban u (xõy dng gi ph ng ỏn xut phỏt X 0 ) v dóy b

c lp

c lp tng quỏt.

Tỡm cc i t vng c a ph ng ỏn m rng

= (x , x , ..., x ) =
X
0
1
n

ổn

ỗỗ c x , x , ..., x ữ


nữ
ỗỗốồ j j 1


j= 1

V i cỏc iu kin
n



aij x j = bi (i = 1, ..., m )

j= 1

xj 0

( j = 1, 2, ..., n )

Ký hiu bi toỏn l (L , C ) hay l- bi toỏn. Ph ng phỏp n hỡnh i ng u t
vng gi gn l l- ph ng phỏp.
B

c lp r 0 tng quỏt

Cú l- gi ph ng ỏn X r v i x 0 j 0, j ẻ N r v t ng ng v i T r , B r , N r ,
cỏc ct l R jr ( j ẻ N r0 ) .
Kim tra xem cú T r


cú chp nhn c hay khụng

x i 0 0" i = 1,.., n ). Nu ỳng thỡ

(tc l

X r l ph ng ỏn l- ti u. Nu khụng thỡ

tỡm bin X k loi khi c s theo quy tc:

k = min{i | i = 1,..., n ; x i 0 < 0}
Tỡm x l a vo c s theo quy tc

ùớ R
ùỹ
Rl
= lex min ùỡ j j ẻ N r ; x kj < 0ùý
ùù | x kj |
ùù
x kl


Nu trong cỏc s x kj ( j ẻ N r ) khụng cú s õm thỡ bi toỏn khụng gii c.
nu cú thỡ bin i bng n hỡnh theo mc (1.2.4), ta c X r + 1,T r + 1, B r + 1, N r + 1


17

 Tính l giả ph ơng án X 0
Giả sử ta xây dựng bảng đơn hình T ứng v i bài toán dạng chính tắc không

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

å

jÎ N

x j bị chặn

íï n
ïï
å aij x j = bi , i = 1,m
trên tập ïì j= 1
ïï
ïïî x j ³ 0, j = 1, n
Khi đó ta tìm đ ợc số M sao cho:

å

jÎ N

x j £ M ( có thể dùng đơn hình th ờng để

xác định M ).

íï x = M +
ï n+1
Đ a vào biến m i ïì
ïï x ³ 0
ïî n + 1


å

jÎ N

1.(- x j )

Viết ràng buộc này vào cuối bảng đơn hình, chọn x k loại khỏi có sở theo quy
tắc k = n + 1. Chọn biến x l đ a vào cơ sở theo quy tắc Rl = lex min{R j | j Î N }
Thực hiện một b

c biến đổi bảng đơn hình theo công thức c a mục (1.2.4)

ta nhận đ ợc bảng đơn hình T0 là l- chuẩn ( R j ³ 0 v i j Î N 0 ) và ứng v i nó ta có
tập B 0 và N 0 :

B 0 = (B È {l}), N 0 = (N È {n + 1}) \ {l} .


18

 Sơ đồ khối của thuật toán đơn hình đối ngẫu từ vựng
Bảng T 0

T 0 chuẩn

Đ

S

xn+ 1 = M +


å

jÎ N

1.(- x j )

x i 0 ³ 0" i Î n

xn+ 1 ³ 0

Đ

S

k = n+1

k = min{i | i Î n ; x io < 0}

Rl = l ex min{R j | j Î N }
x kj ³ 0 " j Î N r
Biến đổi bảng
S

R
Rl
= l ex min{ j |j Î N r ;x kj <0}
| x kl |
| x kj |


Không có
ph ơng án
tối u

Dừng

In kết quả

x - tối uu

Đ


19

Chƣơng 2

BÀI TOÁN QUY HOẠCH NGUYÊN VÀ THUẬT TOÁN GOMORY
2.1. Mô hình tổng quát
Bài toán quy hoạch nguyên tổng quát có thể phát biểu d

i dạng sau:

Tìm cực đại hoặc cực tiểu c a hàm mục tiêu.

Z = f (x 1, x 2,..., x n )
Trên tập D Í R n các vectơ x = (x 1, x 2,..., x n ) mà một số hoặc tất cả các
thành phần c a nó chỉ nhận các giá trị rời rạc. Thông th ờng tập D đ ợc xác định
bởi một hệ thống các ph ơng trình và bất ph ơng trình đ ợc bổ sung bởi các điều
kiện về tính rời rạc c a biến số.

Trong các bài toán quy hoạch nguyên ta cần phải tìm cực đại hoặc cực tiểu
c a hàm mục tiêu ở trên, còn các biến số x 1, x 2,..., x n phải thỏa mãn các điều kiện
sau:

gi (x 1, x 2, ..., x n ) = 0, i = 1, 2, ..., m i
gi (x 1, x 2, ..., x n ) £ 0, i = m i + 1...m
xi ³ 0
x i nguyên

J = 1, n
j = 1, 2, ..., n 1

nếu n 1 = n ta có bài toán quy hoạch nguyên hoàn toàn. Còn nếu n 1 < n thì
điều kiện nguyên c a x chỉ có đối v i một bộ phận các biến số và ta có bài toán quy
hoạch nguyên bộ phận. Một tr ờng hợp riêng phổ biến nhất c a các bài toán

Z = f (x 1, x 2,..., x n ) - x j

nguyên

j = 1, 2,..., n 1

thu

đ ợc

các

hàm


số

f , gi , i = 1,..., m là tuyến tính. Do đó ta có bài toán quy hoạch nguyên tuyến tính
(toàn phần hay bộ phận).


×