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

phương pháp giải một lớp bài toán quy hoạch nguyên phi tuyến

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 (582.34 KB, 49 trang )

ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC KHOA HỌC
NGUYỄN DUY LONG
PHƯƠNG PHÁP GIẢI MỘT LỚP
BÀI TOÁN QUY HOẠCH
NGUYÊN PHI TUYẾN
LUẬN VĂN THẠC SĨ TOÁN HỌC
Thái Nguyên - Năm 2012
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC KHOA HỌC
NGUYỄN DUY LONG
PHƯƠNG PHÁP GIẢI MỘT LỚP
BÀI TOÁN QUY HOẠCH
NGUYÊN PHI TUYẾN
Chuyên ngành: TOÁN ỨNG DỤNG
Mã số : 60.46.36
LUẬN VĂN THẠC SĨ TOÁN HỌC
NGƯỜI HƯỚNG DẪN KHOA HỌC
GS.TS. TRẦN VŨ THIỆU
Thái Nguyên - Năm 2012
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
i
Mục lục
Mục lục . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . i
LỜI NÓI ĐẦU 1
Nội dung 4
1 MỘT SỐ KIẾN THỨC CHUẨN BỊ 4
1.1 Tập lồi, hàm lồi và một số tính chất . . . . . . . . . . . . . 4
1.1.1 Tập hợp lồi. . . . . . . . . . . . . . . . . . . . . . . 4
1.1.2 Hàm lồi . . . . . . . . . . . . . . . . . . . . . . . . 6


1.2 Thuật toán đa thức . . . . . . . . . . . . . . . . . . . . . . 7
1.3 Bài toán quy hoạch nguyên phi tuyến . . . . . . . . . . . . 10
2 PHƯƠNG PHÁP TRỰC TIẾP GIẢI BÀI TOÁN (P) 13
2.1 Tính chất nghiệm của bài toán(P). . . . . . . . . . . . . . 13
2.2 Cơ sở phương pháp giải . . . . . . . . . . . . . . . . . . . 16
2.3 Thuật toán đa thức giải bài toán . . . . . . . . . . . . . . . 21
2.3.1 Thuật toán A. . . . . . . . . . . . . . . . . . . . . 21
2.3.2 Đánh giá độ phức tạp của thuật toán. . . . . . . . . 22
3 MỘT SỐ HƯỚNG MỞ RỘNG BÀI TOÁN (P) 28
3.1 Giảm kích thước bài toán (P) . . . . . . . . . . . . . . . . . 28
3.2 Thay đổi ràng buộc . . . . . . . . . . . . . . . . . . . . . . 33
3.2.1 Thêm, bớt sinh viên. . . . . . . . . . . . . . . . . . 33
3.2.2 Thêm, bớt chuyên đề. . . . . . . . . . . . . . . . . 34
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
i
3.2.3 Thêm điều kiện phụ vào bài toán (P) . . . . . . . . 35
3.3 Thay đổi hàm mục tiêu của bài toán (P) . . . . . . . . . . . 37
3.3.1 Bài toán với hàm mục tiêu mở rộng . . . . . . . . . 37
3.3.2 Bài toán với hàm mục tiêu lõm . . . . . . . . . . . . 40
3.3.3 Bài toán vận tải với điều kiện phụ. . . . . . . . . . . 42
KẾT LUẬN 44
Tài liệu tham khảo 45
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
1
LỜI NÓI ĐẦU
Tối ưu tổ hợp (Combinatorial Optimization) hay còn gọi là tối ưu rời
rạc là một bộ phận quan trọng của tối ưu hoá. Nó bao gồm nhiều bài toán
tối ưu với biến số nhận các giá trị rời rạc (không liên tục) và nhiều phương
pháp giải khác nhau cho các lớp bài toán tổng quát và riêng lẻ. Các bài
toán tối ưu tổ hợp rất phong phú, đa dạng và có nhiều ứng đụng rộng rãi

trong thực tiễn. Một số mô hình tối ưu tổ hợp thuộc loại các bài toán "dễ
giải" (có thuật toán đa thức để giải), nhưng phần lớn là các bài toán "khó
giải" (chưa có thuật toán đa thức để giải).
Nhiều vấn đề lý thuyết và thực tiễn có thể diễn đạt dưới dạng một bài
toán tối ưu rời rạc. Những bài toán như vậy thường có các cấu trúc riêng
nào đó. Nếu biết khai thác cấu trúc riêng đó thì có thể tìm ra cách giải
hiệu qủa.
Luận văn đề cập tới một lớp bài toán tối ưu rời rạc, cụ thể là bài toán
qui hoạch nguyên phi tuyến (biến số nhận các giá trị nguyên, hàm mục
tiêu phi tuyến), có thể giải được bằng thuật toán đa thức nhờ khai thác
đặc điểm cấu trúc của bài toán. Bài toán được xét trong luận văn có cấu
trúc khá đặc biệt và có nội dung thực tiễn thiết thực. Có thể xem nó như
mô hình toán học cho một số bài toán thường gặp trong thực tế (mô hình
xếp lịch học tập trong các trường học) và hoàn toàn có thể áp dụng được
trong thực tiễn. Việc phân tích lớp bài toán này giúp ích cho việc đi sâu
tìm hiểu sau này về các bài toán tối ưu rời rạc nói chung và những ứng
dụng của chúng nói riêng.
Nội dung luận văn được chia thành ba chương.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
2
Chương 1 với tiêu đề "Một số kiến thức chuẩn bị" trình bày những
kiến thức cơ bản cần thiết về tập lồi và hàm lồi làm cơ sở lý thuyết cho
việc phân tích cấu trúc và xây dựng các thuật toán ở những chương sau.
Tiếp theo, chương này trình bày vắn tắt khái niệm thuật toán thời gian
đa thức. Cuối chương giới thiệu khái quát mô hình và ý nghĩa thực tế của
lớp bài toán qui hoạch nguyên phi tuyến được xét trong luận văn.
Chương 2 với tiêu đề "Phương pháp trực tiếp giải bài toán (P)" phân
tích cấu trúc đặc biệt và nêu ra những tính chất nghiệm đáng chú ý của
bài toán qui hoạch nguyên phi tuyến xét trong luận văn, các tính chất này
giúp ích cho việc xây dựng thuật toán giải. Mục tiếp theo của chương trình

bày thuật toán thời gian đa thức giải bài toán, bằng cách sử dụng kỹ thuật
điều chỉnh dần phương án và kỹ thuật gán số cho các hàng và cột, tương
tự như trong các phương pháp giải bài toán vận tải thông thường của qui
hoạch tuyến tính. Thuật toán được minh hoạ qua một ví dụ số đơn giản
và trực quan.
Chương 3 với tiêu đề "Một số hướng mở rộng bài toán" xét vấn đề xử
lý sơ bộ (tiền xử lý) các dữ kiện ban đầu của bài toán nhằm giảm bớt kích
thước của bài toán cần giải (nếu có thể). Sau đó, xét sự mở rộng bài toán
theo hai hướng: thay đổi điều kiện ràng buộc (thêm hay bớt sinh viên,
thêm hay bớt chuyên đề, thêm điều kiện phụ ) và thay đổi hàm mục tiêu
(bài toán với hàm mục tiêu đơn điệu tăng và bài toán với hàm mục tiêu
lõm).
Do thời gian và kiến thức còn hạn chế nên chắc chắn luận văn còn có
những thiếu sót nhất định, kính mong quý thầy cô và các bạn đóng góp
để tác giả tiếp tục hoàn thiện luận văn này.
Nhân dịp này, tác giả xin bày tỏ lòng biết ơn sâu sắc tới thầy hướng
dẫn GS.TS Trần Vũ Thiệu đã tận tình hướng dẫn, giúp đỡ trong suốt quá
trình làm luận văn.
Tác giả xin trân trọng cảm ơn tập thể thầy cô giáo trường Đại học
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
3
Khoa học – Đại học Thái Nguyên, Viện Toán học – Viện Khoa học và
Công nghệ Việt Nam đã giảng dạy và tạo mọi điều kiện thuận lợi giúp đỡ
tác giả trong quá trình học tập và nghiên cứu.
Tác giả cũng xin chân thành cảm ơn Ban giám hiệu, tổ Toán – Tin
trường THPT số 1 huyện Bát Xát – Lào Cai và tập thể bạn bè, đồng
nghiệp và gia đình đã quan tâm giúp đỡ, động viên tác giả hoàn thành tốt
luận văn này.
Thái Nguyên, tháng 7 năm 2012
Người thực hiện

Nguyễn Duy Long
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
4
Chương 1
MỘT SỐ KIẾN THỨC CHUẨN BỊ
Chương này sẽ trình bày một số khái niệm và kiến thức cơ bản về giải
tích lồi, cần thiết cho việc phân tích lý thuyết và xây dựng thuật toán
trong các chương sau. Tiếp đó trình bày khái niệm thuật toán đa thức và
cuối cùng giới thiệu bài toán qui hoạch nguyên phi tuyến được xét trong
luận văn. Nội dung của chương được tham khảo từ các tài liệu [2], [3] và
[6].
1.1 Tập lồi, hàm lồi và một số tính chất
1.1.1 Tập hợp lồi.
Khái niệm về tập hợp lồi là một khái niệm cơ bản của giải tích lồi và
quy hoạch lồi. Nhiều tính chất quan trọng và thú vị của bài toán quy hoạch
có được trên miền ràng buộc là một tập hợp lồi.
Định nghĩa 1.1. Một tập X trong không gian Euclide R
n
được gọi là
một tập lồi nếu ∀x
1
, x
2
∈ X và ∀λ ∈ [0; 1] ta có λx
1
+ (1 − λ
2
)x ∈ X.
Như vậy nếu X là một tập lồi thì nó chứa trọn đoạn thẳng nối hai điểm
bất kỳ của nó.

Ví dụ 1.1:
• Các tập afin nói chung đều là tập lồi.
• Các nửa không gian đóng: {x :< a, x > α}, {x :< a, x > α} .
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
5
• Các nửa không gian mở: {x :< a, x >< α}, {x :< a, x >> α} .
• Siêu phẳng H = {x :< a, x >= b} trong R
n
.
Bao lồi của một tập A là một tập lồi nhỏ nhất chứa A, ký hiệu là coA.
Đây chính là giao của tất cả các tập lồi chứa A. Nếu X là một tập lồi thì
nó chứa bao lồi của mọi tập con của nó.
Cho A, B là hai tập bất kỳ trong R
n
, tổ hợp lồi của A và B là tập hợp tất
cả các điểm thuộc R
n
có dạng: x = λa+(1−λ)b, a ∈ A, b ∈ B, 0  λ  1.
Định lý 1.1. Tập lồi là đóng với phép giao, phép cộng, phép nhân với
một số và phép lấy tổ hợp tuyến tính, tức là nếu A và B là hai tập lồi trong
R
n
thì các tập hợp sau cũng là lồi:
1. A ∩ B := {x : x ∈ A, x ∈ B} .
2. λA + βB := {x = λa + βb : a ∈ A, b ∈ B, 0  λ, β  1} .
Hệ quả. Miền chứa nghiệm của hệ bất phương trình tuyến tính dạng:






a
11
x
1
+ a
12
x
2
+ + a
1n
x
n
 b
1
a
21
x
1
+ a
22
x
2
+ + a
2n
x
n
 b
2


a
m1
x
1
+ a
m2
x
2
+ + a
mn
x
n
 b
m
là một tập lồi. Người ta còn gọi đó là tập lồi đa diện hoặc còn gọi là một
khúc lồi. Một khúc lồi giới nội gọi là một đa diện lồi.
Định lý 1.2. Một tập lồi đa diện X (có thể không giới nội) có ít nhất
một đỉnh được biểu diễn bởi tập hợp tât cả những điểm có dạng:
x =

i∈I
λ
i
d
i
+

i∈I
µ
j

g
j
, trong đó

i∈I
λ
i
= 1, λ
i
, µ
j
 0 với mọi i, j còn
các d
i
với i ∈ I là đỉnh của X, với j ∈ J là phương các cạnh vô hạn của
X.
Chú ý rằng nếu X giới nội thì nó không có các cạnh vô hạn, do đó trong
biểu diễn trên chỉ còn lại tổng thứ nhất. Trong trường hợp này, mọi điểm
của X đều biểu diễn qua tổ hợp lồi của các đỉnh của X.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
6
1.1.2 Hàm lồi
Định nghĩa 1.2. Hàm số f(x) xác định trên tập lồi X ⊂ R
n
được gọi
là hàm lồi trên X, nếu với mọi x, y ∈ X, 0  λ  1 ta có:
f (λx + (1 − λ)y)  λf(x) + (1 − λ)f(y).
Hàm f (x) được gọi là hàm lồi chặt trên X nếu với ∀x
1
, x

2
∈ X, x
1
=
x
2
, 0 < λ < 1 ta có f

(1 − λ) x
1
+ λx
2

< (1 − λ) f

x
1

+ λf

x
2

.
Hiển nhiên hàm lồi chặt là hàm lồi, nhưng điều ngược lại chưa chắc
đúng. Hàm f (x) gọi là hàm tựa lồi trên tập lồi X nếu
f (λx + (1 − λ) y)  max {f (x) , f (y)} ∀x, y ∈ X, 0  λ  1.
Hàm f (x) được gọi là lõm (tựa lõm) trên tập lồi X nếu hàm −f (x) là
lồi (tựa lồi) trên X.
Như thường lệ, các hàm λf, f + g, max (f, g) được định nghĩa như sau:

(λf) (x) := λf (x) ,
(f + g) (x) := f (x) + g (x) ,
max (f, g) (x) := max (f (x) , g (x)) .
Các hàm lồi là đóng đối với phép tổ hợp tuyến tính không âm và phép
lấy max. Cụ thể ta có định lý như sau:
Định lý 1.3. Cho f là một hàm lồi trên tập lồi X và g là hàm lồi trên
tập lồi Y. Lúc đó các hàm sau là lồi trên X ∩ Y :
1. λf + βg ∀λ, β  0,
2. max (f, g) .
Định nghĩa 1.3. Cho X ⊂ R
n
khác rỗng và hàm f : X → R (không
nhất thiết lồi). Một điểm x

∈ X được gọi là cực tiểu địa phương của f
trên X, nếu tồn tại lân cận mở U của x

sao cho f (x

)  f (x) với mọi
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
7
x ∈ X ∩ U. Điểm x

∈ X được gọi là cực tiểu tuyệt đối của f trên X nếu
f (x

)  f (x) với ∀x ∈ X.
Dưới đây là một số tính chất cơ bản về cực trị của hàm lồi và hàm lõm.
Định lý 1.4. Bất kỳ cực tiểu địa phương nào của hàm lồi trên tập lồi

cũng là cực tiểu tuyệt đối.
Hệ quả. Bất kỳ cực đại địa phương nào của hàm lõm trên tập lồi cũng
là cực đại tuyệt đối.
Định lý 1.5. Cực tiểu của một hàm lõm (nếu có) trên một tập lồi có
điểm cực biên bao giờ cũng đạt tại một điểm cực biên.
1.2 Thuật toán đa thức
• Xét một bài toán X gồm một tập các ca (dữ kiện) của nó. Cỡ của một
ca dữ kiện d ∈ X của bài toán là độ dài l(d) (đo bằng tổng số bit) của dãy
ký tự 0-1 biểu diễn nhị phân dữ kiện đầu vào đó. Giả sử có một thuật toán
A có thể giải mỗi ca của X trong một số hữu hạn phép toán sơ cấp (cộng,
trừ, so sánh, v.v ). Nếu xem như mỗi phép toán sơ cấp tốn một đơn vị
thời gian để thực hiện thì thời gian chạy thuật toán bằng tổng số các phép
toán sơ cấp cần thực hiện. Thời gian ấy là một hàm t
A
: X → R
+
. Với
mỗi số s, ta xét tất cả các ca có cỡ bằng s và lấy thời gian tối đa để giải
một ca cỡ s, tức là số
f
A
(s) = max{t
A
(d) : d ∈ X, l(d) = s}
làm thời gian chạy của thuật toán A.
Thuật toán A được gọi là thuật toán có thời gian đa thức, hay nói tắt,
thuật toán thời gian đa thức hay nói gọn hơn, thuật toán đa thức, nếu
f
A
(s) = O(s

k
) với một k nào đó, nghĩa là có một hằng số c và một số tự
nhiên s’ sao cho f
A
(s)  cs
k
với mọi s  s

.
• Trong lý thuyết độ phức tạp tính toán, lớp các bài toán có thể giải
được trong thời gian đa thức gọi là lớp P, còn NP là lớp các bài toán mà
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
8
khi cho một lời giải đúng thì có thể kiểm tra xác nhận tính đúng đắn của
lời giải đó trong thời gian đa thức (chú ý đây không nói gì về lời giải sai);
nói cách khác, NP là lớp các bài toán có thể giải được trong thời gian đa
thức bằng một thuật toán "phi tất định" (non-deterministic) (một thuật
toán phi tất định gồm hai giai đoạn: 1) đoán một lời giải tối ưu; 2) kiểm
tra xác nhận đó đúng là lời giải tối ưu).
Đương nhiên P ⊂ NP, nhưng không rõ liệu có P = NP không. Có
nhiều bài toán tối ưu thuộc lớp P (chẳng hạn, bài toán qui hoạch tuyến
tính) nhưng cũng có rất nhiều bài toán mà cho đến nay mặc dù những cố
gắng của nhiều nhà toán học, chưa ai tìm ra được một thuật toán đa thức
để giải nó, mà cũng chưa ai chứng minh được không thể có một thuật toán
đa thức cho bài toán ấy, nghĩa là không ai biết bài toán ấy có thuộc P
không (bài toán người du lịch là một trong số rất nhiều bài toán như thế).
Giả thuyết P = NP cho đến nay vẫn chưa có ai chứng minh hay bác bỏ
được. Đó là một câu hỏi lớn của toán học có lẽ còn tồn tại lâu dài trong
thế kỷ XXI.
• Một bài toán X

1
gọi là qui dẫn đa thức được về một bài toán X
2
nếu
ứng với mỗi ca dữ kiện d ∈ X
1
có một thuật toán đa thức để qui d về một
ca dữ kiện g(d) ∈ X
2
. Như vậy, hễ X
2
giải được trong thời gian đa thức
thì X
1
cũng giải được trong thời gian đa thức.
Ta nói một bài toán X là NP - đầy đủ (NP - complete) nếu X ∈ NP
và mọi bài toán thuộc lớp NP đều qui dẫn đa thức được về X. Như vậy,
hễ X giải được trong thời gian đa thức thì mọi bài toán thuộc NP cũng
đều giải được trong thời gian đa thức, có nghĩa là NP = P.
Một bài toán NP - đầy đủ nổi tiếng là bài toán tìm chu trình Hamilton
của một đồ hình (graph). Một bài toán NP - đầy đủ khác là bài toán cái
túi (knapsack problem): tìm x ∈ R
n
nghiệm đúng.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
9
n

j=1
a

j
x
j
= b, x
j
∈ {0, 1}(j = 1, 2, , n)và đạt cực đại của
n

j=1
c
j
x
j
.
Ta nói một bài toán X là NP -khó (NP - hard) nếu mọi bài toán thuộc
NP đều qui dẫn đa thức được về X. Như vậy, mọi bài toán NP - đầy đủ
đều là NP - khó. Vì thế, lớp bài toán NP - khó rộng hơn lớp bài toán
NP - đầy đủ, vì nó bao gồm các bài toán thuộc lớp NP, cũng như các bài
toán không thuộc NP . Bài toán cái túi được xem như "dễ nhất" trong số
các bài toán NP - khó.
Bài toán sau là NP - khó, nhưng không biết có thuộc lớp NP không:
Cho các số tự nhiên c
1
, c
2
, , c
n
, k và L. Có chăng k tập con khác nhau
S
1

, S
2
, , S
k
⊂ {1, 2, , n} sao cho tổng số các phần tử của mỗi tập con
này đều không nhỏ hơn L, nghĩa là:

(S
i
) =

c
i
∈S
i
(c
j
)  L với mọi i = 1, 2, , k?
Không có thuật toán đa thức cho bất kỳ bài toán NP - khó nào, trừ khi
P = NP. Khi nghiên cứu giải quyết các bài toán thực tế, việc xác định
nó thuộc lớp nào trong số các lớp kể trên không chỉ có ý nghĩa lý thuyết
mà còn có ý nghĩa thực tế quan trọng. Nếu bài toán đang xét được xác
nhận là thuộc một trong các lớp NP, NP - đầy đủ hay NP - khó thì ít
có hy vọng tìm được thuật toán hiệu quả để giải nó. Vì vậy, tốt hơn hết là
hãy hướng tới việc xây dựng những thuật toán gần đúng cho các bài toán
như thế.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
10
1.3 Bài toán quy hoạch nguyên phi tuyến
Cho trước ma trận A =


a
ij

mxn
với a
ij
∈ {0, 1} và cho trước các số
nguyên dương p
i
(0 < p
i
 n) , i = 1, 2, , m. Xét bài toán tối ưu sau đây:
(P ) f (x) = max
1jn
m

i=1
x
ij
→ min, (1.1)
n

j=1
x
ij
= p
i
, i = 1, 2, , m, (1.2)
0  x

ij
 a
ij
, x
ij
nguyên, i = 1, 2, , m, j = 1, 2, , n. (1.3)
Hệ thống số x =

x
ij

thỏa mãn các điều kiện (1.2), (1.3) được gọi là
một phương án của bài toán (P). Một phương án đạt cực tiểu của (1.1)
gọi là phương án tối ưu hay lời giải của bài toán (P).
Một số nhận xét:
- Hàm mục tiêu (1.1) là hàm lồi, các ràng buộc (1.2), (1.3) là ràng buộc
nguyên, tuyến tính. Vì thế (P) thuộc lớp bài toán quy hoạch nguyên phi
tuyến (nếu bỏ điều kiện x
ij
nguyên thì lời giải của bài toán nói chung sẽ
khác). Tuy nhiên như dưới đây sẽ thấy, bài toán (P) có thể quy về bài
toán quy hoạch nguyên tuyến tính có cấu trúc đặc biệt.
- Ràng buộc (1.2) có thể thay bằng ràng buộc nới lỏng (1.2’) mà không
làm ảnh hưởng tới lời giải của (P):
n

i=1
x
ij
 p

i
, i = 1, 2, , m. (1.2’)
Có thể thấy bài toán (P) tương đương với bài toán quy hoạch nguyên
phi tuyến tính sau đây:
(P

) min

t





n

i=1
x
ij
 p
i
, ∀i;
m

i=1
x
ij
 t, ∀j; 0  x
ij
 a

ij
, ∀i, j; t nguyên

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
11
Lưu ý rằng, bài toán (P’) rất giống với bài toán vận tải thông thường,
nhưng ở đây có thêm biến số t và biến số t đòi hỏi phải có điều kiện nguyên.
Vì t nguyên nên (P’) sẽ có lời giải nguyên.
Bài toán (P) là mô hình toán học cho một số bài toán lập lịch thường
gặp trong thực tiễn. Dưới đây là hai ví dụ điển hình.
Bài toán xếp lịch học tập: Có m sinh viên và n chuyên đề cho các
sinh viên này. Với mỗi sinh viên i cho biết:
a
ij
=

1 nếu sinh viên i ưa thích chuyên đề j,
0 nếu ngược lại.
với i = 1, 2, , m; j = 1, 2, , n và p
i
nguyên dương là số chuyên đề mà
sinh viên i cần học, i=1,2,. . ., m.
Hãy tìm cách bố trí sinh viên học các chuyên đề phù hợp với họ sao cho
mỗi sinh viên học đủ số chuyên đề cần học và số người trong các chuyên
đề có nhiều sinh viên tham dự nhất là nhỏ nhất có thể được? Đặt các biến
số:
x
ij
=


1 nếu sinh viên i tham gia chuyên đề j,
0 nếu ngược lại.
với i = 1, 2, , m; j = 1, 2, , n.
Rõ ràng các x
ij
phải thỏa mãn điều kiện 0  x
ij
 a
ij
(mỗi sinh viên chỉ
tham dự những chuyên đề mà họ ưa thích) và x
i1
+ x
i2
+ + x
in
= p
i
(tổng số chuyên đề sinh viên i tham dự vừa đủ yêu cầu). Khi đó, số lượng
sinh viên tham dự nhóm chuyên đề j là x
1j
+ x
2j
+ + x
mj
và dễ thấy mô
hình toán học cho bài toán đặt ra chính là bài toán (P).
Bài toán lập lịch cho hội nghị: Một hội nghị có m tiểu ban, mỗi
tiểu ban cần sinh hoạt trong một ngày tại phòng họp phù hợp với nó. Có
n phòng họp dành cho việc sinh hoạt của các tiểu ban. Cho biết:

a
ij
=

1 nếu phòng họp j thích hợp với tiểu ban i,
0 nếu ngược lại.
với i = 1, 2, , m; j = 1, 2, , n.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
12
Hãy bố trí các phòng họp cho các tiểu ban sao cho hội nghị kết thúc
sau ít ngày làm việc nhất?
Đặt các biến số:
x
ij
=

1 nếu tiểu ban i làm việc tại phòng họp j,
0 nếu ngược lại.
với i = 1, 2, , m; j = 1, 2, , n.
Khi đó, dễ dàng thấy mô hình toán học cho bài toán đặt ra chính là bài
toán (P), trong đó p
i
= 1 với mọi i = 1, 2, . . . , m (trong trường hợp này
hàm mục tiêu (1.1) biểu thị số ngày làm việc của hội nghị).
Tóm lại, chương này đã nhắc lại ngắn gọn một số kiến thức cơ bản
về tập lồi vầ hàm lồi (có thể xem chứng minh đầy đủ các kết quả nêu ở
chương này trong [2]). Khái niệm thuật toán đa thức giải bài toán cũng
được trình bày ngắn gọn và dễ hiểu ở chương này. Cuối chương đề cập tới
lớp bài toán qui hoạch nguyên phi tuyến, có cấu trúc đặc biệt, được xét
trong luận văn: nêu mô hình và ý nghĩa thực tế của bài toán này.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
13
Chương 2
PHƯƠNG PHÁP TRỰC TIẾP
GIẢI BÀI TOÁN (P)
Chương này phân tích cấu trúc của bài toán qui hoạch nguyên phi tuyến
được xét trong luận văn và nêu các tính chất đáng chú ý về nghiệm của bài
toán. Sau đó, trình bày thuật toán đa thức giải bài toán, nhờ sử dụng kỹ
thuật điều chỉnh dần phương án và kỹ thuật đánh số các hàng, cột trong
bài toán. Nội dung của chương được tham khảo từ các tài liệu [1], [4] và
[5].
2.1 Tính chất nghiệm của bài toán(P).
Trong mục này sẽ nêu điều kiện để bài toán (P) có nghiệm và nêu ra
ước lượng khoảng cho giá trị tối ưu (1.1) của bài toán.
Bổ đề 2.1. Bài toán (P) có phương án khi và chỉ khi:
n

j=1
a
ij
 p
i
, i = 1, 2, , m (2.1)
Chứng minh. Điều kiện cần của Bổ đề là hiển nhiên, vì từ các điều
kiện (1.2) và (1.3) ta suy ra các bất đẳng thức trong (2.1). Để chứng minh
điều kiện đủ, ta chỉ cần chỉ ra rằng, nếu điều kiện (2.1) được thực hiện
thì bài toán (P) luôn có phương án. Thực vậy, giả sử điều kiện (2.1) được
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
14
thực hiện. Khi đó, nếu đặt:

I
i
=

j : a
ij
= 1, 1  j  n

thì |I
i
|  p
i
, i = 1, 2, , m. Do đó, nếu chọn tùy ý các tập I
+
i
⊂ I
i
thỏa
mãn |I
i
| = p
i
, i = 1, 2, , m, thì X

=

x

ij


với các thành phần được xác
định theo công thức
x

ij
= 1, j ∈ I
+
i
, x

ij
= 0, j /∈ I

i
, i = 1, 2, , m,
là phương án của bài toán (P). Bổ đề được chứng minh. 
Điều kiện (1.3) cho thấy tập phương án của bài toán (P) là bị chặn, vì
thế (2.1) cũng là điều kiện cần và đủ để bài toán (P) có nghiệm (phương
án tối ưu).
Để tìm khoảng ước lượng cho giá trị tối ưu (1.1) ta đưa vào các ký hiệu:
a
i
=
n

j=1
a
ij
, i = 1, 2, , m,
b

j
=
m

i=1
a
ij
, j = 1, 2, , n,
p =
m

i=1
p
i
(a
i
biểu thị số chuyên đề mà sinh viên i ưa thích, b
j
biểu thị số sinh viên
ưa thích chuyên đề j, còn p là tổng số chuyên đề mà mọi sinh viên cần
tham dự).
Ta giả thiết a
i
 p
i
, ∀i = 1, 2, , m, và b
j
> 0 với mọi j = 1, 2, . . . , n,
nghĩa là mỗi chuyên đề phải có ít nhất một sinh viên muốn tham dự. Rõ
ràng, ta có b

j
 m, ∀j.
Ký hiệu k

là trị tối ưu của hàm mục tiêu (1.1). Khi đó, ta có:
Bổ đề 2.2.Ký hiệu k =

p
n

, trong đó ]x[ biểu thị số nguyên nhỏ nhất
lớn hơn hay bằng x và k = max
1jn
b
j
. Khi đó ta có ước lượng sau đây:
k  k

 k.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
15
Chứng minh. Tổng số chuyên đề mà mọi sinh viên cần tham dự là p,
mà mỗi chuyên đề có tối đa k

sinh viên tham dự nên k

.n  p hay k


p

n
.
Vì k* nguyên nên k

 k. Mặt khác, do x
ij
 a
ij
nên
m

i=1
x
ij

m

i=1
a
ij
= b, ∀j = 1, 2, , n.
Từ đó suy ra:
max
1jn
m

i=1
x
ij
 max

1jn
b
j
= k
và do đó k

 k. Bổ đề được chứng minh. 
Không giảm tính tổng quát, ta có thể giả thiết
0 < b
1
 b
2
  b
n
 m. (2.2)
Nếu k được xác định như trong bổ đề 2.2 thỏa mãn k > b
1
thì có thể cải
tiến cận dưới của k

như sau:
Bổ đề 2.3.Với các giả thiết đã nêu trên, nếu k > b
1
thì
k

 k

 k,
trong đó k


là số nguyên nhỏ nhất thỏa mãn
b
s
< k

 b
s+1
và p 
s

i=1
b
i
+ k

. (n − s) , 1  s  n − 1. (2.3)
Chứng minh. Từ Bổ đề 2.3 và giả thiết k > b
1
ta có k

> b
1
. Theo cách
sắp xếp (2.2) nên tìm được chỉ số t, 1  t  n−1, thỏa mãn b
t
< k

 b
t+1

.
Vì các chuyên đề j với j  t có tối đa b
j
< k

sinh viên tham dự, nên k*
phải thỏa mãn điều kiện
t

j=1
b
j
+ k

(n − t)  p. (2.4)
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
16
Vì thế, nếu k

là một cận dưới của k

, nghĩa là k

 k

, thì k

cũng phải
thỏa mãn bất đẳng thức có dạng (2.4) với t thay bởi s, trong đó s là chỉ
số thỏa mãn b

s
< k

 b
s+1
. Bổ đề được chứng minh. 
Chú ý. Ví dụ sau đây cho thấy cận dưới k

tính theo (2.3) tốt hơn cận
dưới k trong bổ đề 2.2.
Xét bài toán (P) với các số liệu: m = 4, n = 6, p
1
= 5, p
2
= 4, p
3
=
3, p
4
= 3.
Bảng 2.1
Rõ ràng a
i
 p
i
, (i = 1, 2, 3, 4) , p =
4

i=1
p

i
= 15.
Theo bổ đề 1.2, k =

15
6

= 3, k = 4.
2.2 Cơ sở phương pháp giải
Xét bài toán (P) ở chương 1:
(P ) f (x) = max
1jn
m

i=1
x
ij
→ min, (2.5)
m

i=1
x
ij
= p
i
, i = 1, 2, , m, (2.6)
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
17
0  x
ij

nguyên  a
ij
, i = 1, 2, , m, j = 1, 2, , n (2.7)
trong đó a
ij
∈ {0, 1} và p
i
∈ {1, 2, , n} là những hằng số cho trước.
Với các ký hiệu: a
i
=
n

j=1
a
ij
, i = 1,2, ,m, b
j
=
m

i=1
a
ij
, j = 1,2, ,n,
p =
m

i=1
p

i
> 0
thì trong bổ đề 2.1 đã chứng minh được rằng điều kiện cần và đủ để bài
toán (P) có lời giải là:
a
i
 p
i
với ∀i = 1, 2, , m. (2.8)
Ta có giả thiết bài toán (P) thỏa mãn điều kiện (2.8). Giả thiết mọi
b
j
> 0 là tự nhiên vì nếu có b
j
= 0 thì chuyên đề j sẽ bị loại (do không có
sinh viên nào muốn theo học).
Giả sử x = {x
ij
} là một phương án của bài toán (P), nghĩa là x thỏa
mãn (2.6) và (2.7). Để dễ hình dung, ứng với mỗi phương án x, ta kẻ một
bảng gồm m hàng và n cột, mỗi hàng tương ứng với mỗi một sinh viên,
mỗi cột tương ứng với một chuyên đề. Ô nằm ở hàng i cột j được gọi là ô
(i,j). Phương án x = {x
ij
} sẽ tương ứng với một bảng m hàng và n cột các
số 0 và 1.
Ta quy ước gọi ô (i,j) là ô đen nếu a
ij
= 0 (ô đen sẽ bị cấm do sinh
viên i không ưa thích chuyên đề j nên x

ij
= 0). Các ô còn lại sẽ được phân
thành hai loại: ô trắng nếu x
ij
= 0 ( sinh viên i ưa thích chuyên đề j nhưng
không được bố trí học chuyên đề này trong phương án x) và ô xanh nếu
x
ij
= 1 (sinh viên i được bố trí học chuyên đề j trong phương án x).
Ký hiệu:
t
x
j
=
m

i=1
x
ij
, ∀j = 1, 2, , n; t
x
= maxt
x
j
1jn
(2.9)
(t
x
j
biểu thị số sinh viên được bố trí học chuyên đề j trong phương án x và

t
x
là giá trị hàm mục tiêu (2.5) tương ứng với phương án x).
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
18
Nếu ta xây dựng mạng G = g

k

với khả năng thông qua các cung
đi tới đỉnh đích của mạng đều bằng k = max
1jn
b
j
thì mỗi phương án của
(P) có thể xem như một luồng ξ trên G với ξ (s, u
i
) = p
i
, ξ (u
i
, w
j
) = x
ij
,
ξ (w
j
, t) = t
x

j
. Khi đó bài toán (P) có thể xem như bài toán tìm luồng cực
đại trên G có giá trị của luồng bằng p và t
x
= max
1jn
t
x
j
(giá trị lớn nhất của
luồng cực trên các cung đi tới đỉnh đích của mạng) đạt giá trị nhỏ nhất.
Với bất kỳ phương án của bài toán (P), theo (2.9) ta luôn có:
n

j=1
t
x
j
=
n

i=1
m

j=1
x
ij
=
m


i=1
p
i
= p. (2.10)
Cột j được gọi là cột đầy nếu t
x
j
= t
x
, gọi là cột gần đầy nếu t
x
j
= t
x
− 1
và gọi là cột vơi nếu t
x
j
 t
x
− 2. Để ý rằng các khái niệm ô trắng, ô xanh,
cột đầy, gần đầy, cột vơi đều gắn liền với một phương án cụ thể nào đó.
Từ các khái niệm nêu trên, ta có ngay quy tắc đơn giản sau đây cho
phép nhận biết lời giải của bài toán (P).
Mệnh đề 2.2.1. Nếu phương án x không có cột vơi, nghĩa là:
t
x
= t
x
i

0
, t
x
j
 t
x
− 1, ∀j = j
0
(2.11)
thì x là phương án tối ưu của bài toán (P).
Chứng minh. Từ (2.10) và (2.11) suy ra
p =
n

j=1
t
x
j
> n (t
x
− 1) . (2.12)
Giả sử tồn tại phương án y tốt hơn x, nghĩa là:
t
y
j
 t
x
− 1, ∀j = 1, 2, , n. (2.13)
Từ (2.10) và (2.13) suy ra:
p =

n

j=1
t
y
j
 n (t
x
− 1) .
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
19
Điều này trái với (2.12). Chứng tỏ x là phương án tối ưu và mệnh đề được
chứng minh. 
Xét phương án x =

x
ij

của bài toán (P). Giả sử C là một dây chuyền
các ô xanh và trắng (trong phương án x) xen kẽ nhau nối cột j
0
với cột j
k
:
C = {(i
0
, j
0
) , (i
0

, j
1
) , , (i
k−1
, j
k−1
) , (i
k−1
, j
k
) , (k  1)} (2.14)
trong đó (i
t
, j
t
) , t = 0, 1, , k − 1 là các ô trắng, còn (i
t
, j
t+1
) ,
t = 0, 1, , k − 1 là các ô xanh. Ta đưa vào phép biến đổi phương án x
sau:
Phép biến đổi A. Trên dây chuyền C đổi các ô trắng cũ thành xanh
và ô xanh cũ thành trắng, nghĩa là đặt
x

i
t
j
t

= 1, x

i
t
j
t+1
= 0, t = 0, 1, , k − 1, x

ij
= x
ij
, ∀ (i, j) ∈ C.
Bổ đề sau đây cho thấy phép biến đổi trên không làm thay đổi giá trị hàm
mục tiêu (2.5) của phương án x.
Bổ đề 2.4.Giả sử x’ nhận được từ x nhờ thực hiện phép biến đổi A
trên dây chuyền các ô xanh và trắng xen kẽ nhau nối hai cột không đầy.
Khi đó, ta có t
x

= t
x
.
Chứng minh. Giả sử có dây chuyền (2.14) nối 2 cột không đầy j
0
, j
k

t
x
j

0
< t
x
, t
x
j
k
< t
x

. Do trên mỗi hàng i
t
, t = 0, 1, , k − 1 có vừa đúng
hai ô trắng và xanh thuộc C nên x

=

x

ij

thỏa mãn (2.6), (2.7), nghĩa
là x’ cũng là một phương án của bài toán (P). Tương tự, do trên mỗi cột
j = j
1
, j
2
, , j
k−1
có vừa đúng hai ô trắng và xanh thuộc C nên:

t
x

j
= t
x
j
, ∀j = j
0
, j
k
. (2.15)
Mặt khác, do cột j
0
chỉ có một ô thuộc C, đó là ô trắng (i
0
, j
0
) nên:
t
x

j
0
= t
x
j
0
+ 1 (2.16)
và do cột i

k
chỉ có một ô thuộc C, đó là ô xanh (i
k−1
, j
k
) nên:
t
x

j
k
= t
x
j
k
− 1. (2.17)
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
20
Do j
0
, j
k
là các cột không đầy nên từ (2.15) – (2.17) suy ra
t
x

= t
x
.
Bổ đề được chứng minh. 

Tương tự, giả sử C là một chu trình các ô xanh và trắng xen kẽ nhau:
C = {(i
0
, j
0
) , (i
0
, j
1
) , , (i
k
, j
k
) , (i
k
, j
0
) , (i
0
, j
0
) , (k  1)}
với (i
t
, j
t
) , t = 0, 1, , k là các ô trắng, còn (i
t
, j
t+1

) , t = 0, 1, , k − 1 và
(i
k
, j
0
) là các ô xanh. Ta đưa vào phép biến đổi phương án x sau:
Phép biến đổi B. Trên chu trình C đổi các ô trắng cũ thành xanh và
ô xanh cũ thành trắng, nghĩa là đặt:
x

i
t
j
t
= 1, x

i
t
j
t+1
= 0, t = 0, 1, , k−1, x

i
k
j
k
= 1, x

i
k

j
0
= 0, x

ij
= x
ij
, ∀ (i, j) /∈ C.
Bổ đề 2.5. Giả sử x’ nhận được từ x nhờ thực hiện phép biến đổi B
trên chu trình các ô xanh và trắng xen kẽ nhau. Khi đó, ta có t
x

= t
x
.
Mệnh đề 2.2.2. Nếu tồn tại dây chuyền các ô xanh và trắng xen kẽ
nhau nối một cột đầy với một cột vơi thì ta có thể điều chỉnh phương án
hiện có thành phương án mới tốt hơn hoặc có số cột đầy ít hơn.
Chứng minh. Giả sử tìm được dây chuyền C nối cột đầy nối với cột
vơi j
0
. Khi đó, ta thực hiện phép biến đổi A trên C. Lập luận tương tự như
trong chứng minh Bổ đề 2.4 ta nhận được các hệ thức (2.15) và (2.17).
Do cột j
0
vơi nên từ (2.15) và (2.17) suy ra rằng nếu j
k
là cột đầy duy
nhất trong phương án x thì t
x


= t
x
− 1, nghĩa là phương án mới tốt hơn
phương án cũ x. Nếu trái lại, ta có t
x

= t
x
, nghĩa là x’ không tồi hơn x,
nhưng số cột đầy trong x’ bớt đi một cột (cột j
k
). Mệnh đề được chứng
minh. 
Sau đây, ta công nhận một mệnh đề nhận ra phương án tối ưu hiện có:
Mệnh đề 2.2.3.Nếu không tồn tại dây chuyền các ô xanh và trắng xen
kẽ nhau nối một cột đầy với một cột vơi thì phương án hiện có là phương
án tối ưu.
Ba mệnh đề trên là cơ sở của phương pháp trực tiếp giải bài toán (P).
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
21
2.3 Thuật toán đa thức giải bài toán
Từ các kết quả nêu trên, ta đi đến thuật toán sau đây để giải bài toán
(P).
2.3.1 Thuật toán A.
Bước 0: Lập bảng gồm m hàng, n cột, mỗi hàng tương ứng với một
sinh viên, mỗi cột tương ứng một chuyên đề. Tô đen các ô (i, j) có a
ij
= 0
(ô đen không thay đổi trong suốt quá trình giải bài toán), các ô còn lại gọi

là ô trắng.
Bước 1: Xây dựng phương án ban đầu.
Với mỗi hàng i, từ hàng 1 tới hàng m, ta lần lượt ghi số 1 vào các ô
trắng, từ trái qua phải cho đến khi đủ p
i
số (các ô còn lại của hàng xem như
được ghi số 0), rồi chuyển sang hàng tiếp theo. Kết quả là ta nhận được
phương án ban đầu x
1
=

x
1
ij

. Cũng có thể xuất phát từ một phương án
đã biết bất kỳ của (P). Đặt k = 1. Chuyển sang bước 2.
Bước 2: Kiểm tra tối ưu.
Với phương án x
k
nhận được, ta quy ước gọi các ô được ghi số 1 là
xanh, các ô (khác ô đen) được ghi số 0 là trắng. Tính các số:
t
k
j
≡ t
x
k
j
=

m

i=1
x
k
ij
, j = 1, 2, , n,
t
k
≡ t
x
k
= max
1jn
t
x
k
j
= max
1jn
t
k
j
.
Với phương án x
k
, ta quy ước gọi cột j là cột đầy nếu t
k
j
= t

k
, gọi là
cột gần đầy nếu t
k
x
= t
k
− 1 và là cột vơi nếu t
k
j
 t
k
− 2. Nếu không có
cột vơi thì theo Mệnh đề 2.2.1, x
k
là phương án tối ưu. Nếu trái lại, ta
thực hiện gán số cho các hàng và các cột của bảng. Sau khi gán số, nếu
không có cột vơi nào được gán số thì x
k
là phương án tối ưu (Mệnh đề
2.2.3). Trái lại, ta tìm được một dây chuyền C có dạng (2.14), gồm các ô
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

×