Các kí hiệu tiệm cận Thông thường, trong các ứng dụng thực tế thời gian chính xác mà thuật toán đòi hỏi để thực hiện nó được quan tâm ít hơn so với việc xác định tốc độ tăng của thông s
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
-
LUẬN VĂN THẠC SỸ KHOA HỌC
GIẢI THUẬT DI TRUYỀN GIẢI
BÀI TOÁN P-MEDIAN
CÓ HẠN CHẾ KHẢ NĂNG
NGÀNH: CÔNG NGHỆ THÔNG TIN
MÃ SỐ: 04.3898
DƯƠNG MINH TUẤN
Người hướng dẫn khoa học: PGS.TS NGUYỄN ĐỨC NGHĨA
HÀ NỘI 2008
Trang 2Lời cảm ơn
Với tất cả lòng kính trọng và biết ơn sâu sắc em xin gửi lời cảm ơn chân thành tới thầy Nguyễn Đức Nghĩa Người đã tận tình dạy dỗ và hướng dẫn em trong quá trình hoàn thành đồ án
Trang 3MỤC LỤC
MỤC LỤC 3
Lời nói đầu 5
Chương 1 6
KIẾN THỨC CƠ SỞ 6
1.1 Các kí hiệu tiệm cận 6
1.2 Độ phức tạp tính toán của bài toán 9
1.3 NP- đầy đủ 10
1.3.1 Bài toán quyết định 10
1.3.2 Bằng chứng ngắn gọn dễ kiểm tra 11
1.3.3 Lớp bài toán P, NP và co-NP 13
1.3.4 Qui dẫn 14
1.3.5 Lớp bài toán NP-khó và NP-đầy đủ 15
1.4 Sai số tỉ lệ của thuật toán gần đúng 17
Chương 2 21
GIỚI THIỆU BÀI TOÁN P-MEDIAN CÓ HẠN CHẾ KHẢ NĂNG VÀ CÁC HƯỚNG TIẾP CẬN 21
2.1 Giới thiệu chung về bài toán p-median có hạn chế khả năng 21
2.2 Các hướng tiếp cận để giải quyết bài toán p-median có hạn chế khả năng 22
2.2.1 Phương pháp sinh cột 22
2.2.1.1.Giới thiệu 22
2.2.1.2.Tổng quan 22
2.2.1.3.Mô hình toán học của bài toán CPMP 24
2.2.1.4.Nới lỏng Lagrăng rút gọn và sinh cột 26
2.2.1.5.Kết luận 30
2.2.2 Phương pháp tìm kiếm địa phương heuristic 31
2.2.2.1.Giới thiệu 31
2.2.2.2.Cách tiếp cận Lagrăng rút gọn 32
2.2.2.3.Lagrăng rút gọn ứng dụng vào bài toán CPMP 36
Trang 42.2.3 Phương pháp Bionomic 44
2.2.3.1.Giới thiệu 44
2.2.3.2.Công thức của bài toán CPMP 44
2.2.3.3.Giải thuật Heuristic cho bài toán CPMP 46
2.2.3.4.Giải thuật Bionomic 49
2.2.3.5.Giải thuật bionomic cho bài toán CPMP 52
2.2.3 Kết luận 55
Chương 3 56
GIẢI THUẬT DI TRUYỀN GIẢI QUYẾT BÀI TOÁN P-MEDIAN CÓ HẠN CHẾ KHẢ NĂNG 56
3.1 Giới thiệu chung về giải thuật di truyền 56
3.2 Giải thuật di truyền cho bài toán p-median có hạn chế khả năng 67
3.2.1 Mã hóa 67
3.2.2 Hàm đánh giá độ tốt của nhiễm sắc thể 68
3.2.3 Khởi tạo quần thể ban đầu 69
3.2.4 Lựa chọn bố mẹ lai ghép 70
3.2.5 Đột biến 73
3.2.6 Thay thế 77
3.2.7 Sơ đồ thuật toán 77
Chương 4 79
KẾT QUẢ THỰC NGHIỆM 79
4.1 Mô tả dữ liệu thực nghiệm 79
4.2 Mô tả hệ thống chương trình 81
4.3 Kết quả tính toán 83
4.3.1 Lựa chọn thông số 83
4.3.2 Kết quả thực nghiệm 86
4.4 Phân tích đánh giá 93
TÀI LIỆU THAM KHẢO 96
Trang 5Lời nói đầu
Trong cuộc sống, việc đạt lợi nhuận cao hay thấp trong kinh doanh buôn bán, cung cấp dịch vụ phụ thuộc rất nhiều yếu tố Trong đó, có một yếu tố quan trọng đầu tiên, đóng góp một phần rất lớn đó là xác định được địa điểm đặt dịch vụ thuận lợi – nơi cung cấp dịch vụ Có rất nhiều tiêu chí đặt ra khi chọn địa điểm: thuận tiện về giao thông, là nơi tập trung đông dân cư, để làm sao thu được lợi nhuận cao nhất Đặc biệt, đối với các trường hợp khẩn cấp như cứu thương, cứu hỏa thì yêu cầu về khoảng cách nhỏ nhất là vô cùng quan trọng, có thể nói là quan trọng nhất trong các yếu tố Bài toán đặt ra là: đặt các trạm dịch vụ ở đâu để thời gian di chuyển bệnh nhân từ nơi xa bệnh viện nhất (hoặc ngược lại, từ các trạm dịch vụ đến nơi bệnh nhân xa nhất) là nhỏ nhất có thể Còn với các dịch vụ phổ biến như trạm xăng, thùng phiếu, bốt điện thoại, thì yêu cầu lại là tổng chi phí từ các khách hàng (hay người có nhu cầu) đến địa điểm phục vụ gần khách hàng nhất là nhỏ nhất
Sau khi tìm hiểu kiến thức tổng quan cũng như một số giải thuật cơ bản của bài toán p-median, mục tiêu của đồ án là: tập trung xây dựng giải thuật di
truyền để giải bài toán p-median có hạn chế khả năng
Đồ án bao gồm 3 chương:
Chương 1: Nhắc lại một số kiến thức cơ sở liên quan đến các bài toán NP Chương 2: Giới thiệu về bài toán p-median có hạn chế khả năng, và các hướng
tiếp cận với bài toán
Chương 3: Giải thuật di truyền để giải quyết bài toán p-median có hạn chế khả
năng
Trang 6Chương 1 KIẾN THỨC CƠ SỞ
1.1 Các kí hiệu tiệm cận
Thông thường, trong các ứng dụng thực tế thời gian chính xác mà thuật toán đòi hỏi để thực hiện nó được quan tâm ít hơn so với việc xác định tốc độ tăng của thông số này khi tăng kích thước của đầu vào Ví dụ, giả sử thời gian tính tồi nhất của một thuật toán là:
t (n) = 90 n2 + 9n + 9 với đầu vào kích thước n Khi n lớn số hạng 90n2 xấp xỉ bằng t(n) (xem bảng 1) Trong trường hợp này t (n) có tốc độ tăng giống như 90n2
sẽ cho ta thời gian tính đo bằng phút của thuật toán Rõ hơn sự thay đổi này
không ảnh hưởng đến tốc độ tăng của thời gian tính khi kích thước đầu vào n
Trang 7thời gian tính của thuật toán khi kích thước đầu vào tăng, không những chúng
ta chỉ cần quan tâm đến số hạng trội (60 n2), mà có thể bỏ qua các hằng số Với
giả thiết như vậy, thời gian tính t (n) tăng giống như n2 khi n tăng Ta sẽ nói
Giả sử f và g là các hàm đối số nguyên dương:
9 Ta viết f(n) = O(g(n)) và nói f(n) có bậc không quá g(n) nếu tồn
tại hằng số dương c và số nguyên dương n0 sao cho
| f(n) | ≤ c | g(n) | với mọi n ≥ n0
9 Ta viết f(n) = Ω(g(n)) và nói f(n) có bậc ít nhất là g(n) nếu tồn tại
hằng số dương c và số nguyên dương n0 sao cho
| f(n) | ≥ c | g(n) | với mọi n ≥ n0
9 Ta viết f(n) = Θ(g(n)) và nói f(n) có bậc là g(n) nếu
f(n) = O(g(n)) và f(n) = Ω(g(n))
9 Ta viết f(n) = o(g(n)) và nói f(n) có bậc thấp hơn g(n) nếu với mọi
hằng số c > 0 luôn tìm được số n0 sao cho 0 ≤ f(n) < cg(n) với
mọi n ≥ n0
Hình vẽ dưới đây minh hoạ cho khái niệm O, Ω, Θ
Trang 8
Hình 1.1 Giải thích khái niệm O, Ω, Θ
Định nghĩa:
9 Nếu thuật toán đòi hỏi thời gian tính tốt nhất là t (n) với kích
thước đầu vào n và t(n) = O(g(n)) thì thời gian tính tốt nhất của thuật toán có bậc không quá g(n) hay thời gian tính tốt nhất của thuật toán là O(g(n))
9 Nếu thuật toán đòi hỏi thời gian tính tồi nhất là t (n) với kích
thước đầu vào n và t (n) = O(g(n)) thì thời gian tính tồi nhất của thuật toán có bậc không quá g(n) hay thời gian tính tồi nhất của thuật toán là O(g(n))
Trang 99 Nếu thuật toán đòi hỏi thời gian tính trung bình là t (n) với kích
thước đầu vào n và t(n) = O(g(n)) thì thời gian tính trung bình của thuật toán có bậc không quá g(n) hay thời gian tính trung bình của thuật toán là O(g(n))
Thông thường khi nói thuật toán có thời gian tính là O(f(n)), ta hiểu là thuật toán có thời gian tính trong tình huống tồi nhất là O(f(n)) Còn khi nói
thuật toán có thời gian tính là Ω(f(n)) ta hiểu là thời gian tính trong tình huống tốt nhất của thuật toán là Ω(f(n))
1.2 Độ phức tạp tính toán của bài toán
Gọi T A (X) là thời gian tính của thuật toán A đối với đầu vào X Khi đó, thời gian tính trong tình huống tồi nhất của thuật toán A đối với dữ liệu đầu vào kích thước n được định nghĩa như là:
)(max)(
Độ phức tạp trong tình huống tồi nhất của bài toán P là thời gian tính trong tình huống tồi nhất của thuật toán nhanh nhất để giải nó:
))(max(min)(min)
n X A A
A P
trong đó ∆ là tập tất cả các thuật toán giải bài toán P
Việc đánh giá đúng độ phức tạp của bài toán là một vấn đề hết sức phức tạp Vì vậy chúng ta quan tâm đến việc đưa ra các cận trên và cận dưới cho nó
Nếu ta có thuật toán A với thời gian tính trong tình huống tồi nhất là T A (n) =
O(f(n)) thì:
Trang 10tức là ta có cận trên cho độ phức tạp của bài toán P Thuật toán nhanh hơn sẽ
cho cận trên tốt hơn
Chúng ta còn quan tâm đến việc đánh giá cận dưới độ phức tạp của bài toán, nghĩa là quan tâm đến việc nó khó đến mức độ nào
Để chỉ ra rằng:
T P (n) = Ω(f(n))
ta cần phải chỉ ra rằng:
i) Có thuật toán với thời gian tính Ω(f(n)) để giải bài toán P
ii) Mọi thuật toán giải bài toán P đều đòi hỏi thời gian tính trong tình
huống tồi nhất là Ω(f(n))
Đòi hỏi ii) có thể thay bởi:
ii*) Cận dưới cho độ phức tạp tính toán của bài toán P là Ω(f(n))
1.3 NP- đầy đủ
1.3.1 Bài toán quyết định
Bài toán quyết định là bài toán mà đầu ra chỉ có thể là ‘yes’ hoặc ‘no’ (Đúng/sai, 0/1, chấp nhận/từ chối, accept/reject) Đối với một bài toán quyết định, có những bộ dữ liệu vào của nó có câu trả lời (đầu ra) là ‘yes’ và cũng có những bộ dữ liệu vào có câu trả lời là ‘no’ Những bộ dữ liệu vào với câu trả lời ‘yes’ (‘no’) sẽ được gọi là bộ dữ liệu vào ‘yes’ (‘no’)
Ví dụ 1:
9 Bài toán về tính nguyên tố: “Hỏi số nguyên n có là số nguyên tố
hay không?” N=23 là bộ dữ liệu vào ‘yes’, còn n=24 là bộ dữ liệu
Trang 119 Bài toán tổng con: “Cho tập I gồm n số nguyên dương x1, x2, , x n
và số nguyên dương T Hỏi có thể tìm được tập con S của I với tổng các số trong S là bằng T?”
hay chăng hành trình của người du lịch với tổng chi phí không
vượt quá số K cho trước?”
9 Đối với bài toán kiểm tra tính hợp số: “Có phải số n là hợp số?”,
để xác nhận câu trả lời ‘yes’ cho đầu vào n, ta có thể đưa ra một ước số b (1<b < n) của n Để kiểm tra xem b đúng là ước số của n
ta có thể thực hiện phép chia n cho b sau thời gian đa thức Trong
ví dụ này b là bằng chứng ngắn gọn (vì b<n) và dễ kiểm tra: có thuật toán thời gian tính đa thức để kiểm tra b đúng là ước số của
n
9 Đối với bài toán tổng con, bằng chứng xác nhận câu trả lời ‘yes’
đối với bộ dữ liệu (x1, , x n ) là vectơ c = (c1, , c n ), trong đó c i = 1
nếu x i được chọn vào tập S và c i =0 nếu trái lại Việc kiểm tra xem tập S gồm các số được chọn có thoả mãn yêu cầu đặt ra hay không, rõ ràng, có thể thực hiện sau thời gian đa thức
Trang 129 Đối với bài toán người du lịch dạng quyết định, bằng chứng xác
nhận câu trả lời ‘yes’ cho ma trận chi phí C = {c ij : i, j = 1, ,n}
của bài toán là dãy các thành phố trên hành trình Việc kiểm tra xem dãy các thành phố đã cho có phải là hành trình với chi phí
không vượt quá K có thể thực hiện xong sau thời gian đa thức
Ta gọi bằng chứng ngắn gọn dễ kiểm tra xác nhận câu trả lời 'yes' cho
bộ dữ liệu vào ‘yes’ của bài toán là một bằng chứng có độ dài bị chặn bởi một
đa thức bậc cố định của độ dài dữ liệu đầu vào của bài toán, và việc kiểm tra
nó là bằng chứng xác nhận câu trả lời ‘yes’ đối với đầu vào đã cho của bài toán
có thể thực hiện xong sau thời gian đa thức
Như vừa chỉ ra ở trên, các bài toán trong ví dụ 2 đều có bằng chứng ngắn gọn dễ kiểm tra để xác nhận câu trả lời ‘yes’ của bộ dữ liệu vào ‘yes’
Hoàn toàn tương tự, có thể đưa ra khái niệm bằng chứng ngắn gọn dễ kiểm tra để xác nhận câu trả lời 'no'
Đối với một số bài toán việc đưa ra bằng chứng ngắn gọn xác định câu trả lời ‘no’ là dễ hơn so với việc đưa ra bằng chứng ngắn gọn xác định câu trả lời ‘yes’
Ví dụ 3:
Đối với bài toán kiểm tra tính nguyên tố, để đưa ra bằng chứng ngắn gọn
dễ kiểm tra xác nhận câu trả lời ‘no’ cho đầu vào n của nó, ta có thể đưa ra một
ước số b của n
Có những bài toán mà việc đưa ra bằng chứng ngắn gọn dễ kiểm tra xác nhận câu trả lời ‘yes’ cũng như ‘no’ đều là không dễ dàng
Trang 13Cho đơn đồ thị vô hướng G = (V, E) Hỏi đường đi đơn dài nhất nối hai đỉnh s và t của đồ thị G có tồn tại duy nhất?
1.3.3 Lớp bài toán P, NP và co-NP
Trước hết, ta nêu khái niệm về lớp các bài toán dễ giải – đó là các bài toán có thể giải được nhờ các thuật toán thời gian tính đa thức
Định nghĩa: Ta gọi P là lớp các bài toán có thể giải được sau thời gian đa
thức
Ví dụ 5:
Bài toán về tính liên thông của đồ thị có thể giải được nhờ thuật toán với
thời gian tính là O(n2), vì vậy, nó là bài toán thuộc lớp P Bài toán cây khung
nhỏ nhất giải được nhờ thuật toán Prim với thời gian O(n2), cũng thuộc vào lớp
P
Định nghĩa: Ta gọi NP là lớp các bài toán quyết định mà để xác nhận câu trả
lời ‘yes’ của nó ta có thể đưa ra bằng chứng ngắn gọn dễ kiểm tra
Ví dụ 6:
Các bài toán trình bày trong ví dụ 2 đều thuộc lớp NP
Định nghĩa Ta gọi co-NP là lớp các bài toán quyết định mà để xác nhận câu
trả lời ‘no’ của nó ta có thể đưa ra bằng chứng ngắn gọn dễ kiểm tra
Ví dụ 7:
Các bài toán nêu trong ví dụ 3 là thuộc lớp co-NP
Bài toán trong ví dụ 4 còn chưa biết có thuộc vào lớp nào trong hai lớp NP và co-NP hay không
Trang 14Rõ ràng, nếu một bài toán thuộc lớp P, thì ta có thể tìm được lời giải của nó
sau thời gian đa thức, và vì thế ta cũng có thể xác nhận được câu trả lời ‘yes’ của nó (bằng việc giải nó) sau thời gian đa thức Vì vậy:
phép qui dẫn sau thời gian đa thức, vì thế để ngắn gọn, ta sẽ gọi là phép qui dẫn thay cho phép qui dẫn sau thời gian đa thức
Nếu A qui dẫn được về B và để giải B đã có thuật toán đa thức thì A cũng sẽ giải được sau thời gian đa thức
Trang 15Thuật toán giải A
Phép qui dẫn đưa đến thuật toán
Tư tưởng qui dẫn đã giải thích vai trò quan trọng của lớp bài toán P Nếu ta có bài toán A thuộc lớp P và một bài toán B có thể qui dẫn về A, thế thì B cũng
thuộc vào P
Ta sẽ đưa ra định nghĩa về những bài toán khó nhất trong lớp NP: bài toán
NP-đầy đủ (NP-complete)
Định nghĩa:
Một bài toán quyết định A được gọi là NP-đầy đủ nếu như:
i) A là bài toán trong NP;
ii) Mọi bài toán trong NP đều có thể qui dẫn về A
Như vậy, có thể nói khái niệm về “bài toán khó nhất” trong lớp NP được xây
dựng trên cơ sở phép qui dẫn Nếu tất cả các bài toán trong NP có thể qui dẫn
về một bài toán A thì A khó không kém bất cứ bài toán nào trong số chúng Điều đáng ngạc nhiên là sự tồn tại của những bài toán có tính chất như vậy Khó khăn nhất là việc tìm ra được một bài toán như vậy Bởi vì hễ chúng ta đã
R(x)
Đầu ra cho B Đầu ra cho A
yes/no
Thụât toán giải B
Trang 16Bổ đề: Giả sử bài toán A là NP-đầy đủ, bài toán B là thuộc NP, và bài toán A
qui dẫn về B Khi đó bài toán B cũng là NP-đầy đủ
Định nghĩa: Một bài toán A được gọi là NP-khó (NP-hard) nếu như sự tồn tại
thuật toán đa thức để giải nó kéo theo sự tồn tại thuật toán đa thức để giải mọi
bài toán trong NP
Một cách không hình thức, có thể nói rằng nếu ta có thể giải được một cách
hiệu quả một bài toán NP-khó cụ thể, thì ta cũng có thể giải hiệu quả bất kỳ bài toán nào trong NP bằng cách sử dụng thuật toán giải bài toán NP-khó như là
Ta có bức tranh tạm thời đầy đủ hơn về phân lớp các bài toán trên hình 2:
Hình 1.1.5 Phân lớp tạm thời các bài toán
Từ phần trình bày trên, ta thấy rằng có rất nhiều bài toán ứng dụng quan trọng thuộc vào lớp NP-khó, và vì thế khó hy vọng xây dựng được thuật toán đúng
Trang 17hiệu quả để giải chúng Một trong những hướng phát triển thuật toán giải các bài toán như vậy là xây dựng các thuật toán gần đúng
1.4 Sai số tỉ lệ của thuật toán gần đúng
Xét bài toán tối ưu:
(P) f(x) → extr, x ∈ D
để đánh giá chất lượng của lời giải gần đúng ta đưa ra khái niệm cận sai số tỷ
lệ
Định nghĩa:
Ta nói thuật toán A giải bài toán (P) có cận sai số tỷ lệ là p(n), nếu với mọi bộ
dữ liệu vào độ dài n ta có
)()(,)(max
*
x f
f f
x f
trong đó f* là giá trị tối ưu, x A là phương án tìm được theo thuật toán A
Đối với bài toán tìm max:
f f
x f
=
)(
*
A
x f f
vì thế p(n) cho biết giá trị tối ưu không vượt quá giá trị gần đúng bao nhiêu lần
Đối với bài toán tìm min:
f f
x f
Trang 189 Trong trường hợp bài toán max, ta có:
)()(,)(max)(
*
*
*
A A
A
x f
f x
f
f f
x f n
)(1
)(1)(
f
f n
(
f
x f x
f
f f
x f n
f x f n
p − ≥ A − − = A −
Trong những năm gần đây một trong những hướng phát triển thuật toán để giải
các bài toán NP-khó là xây dựng các thuật toán gần đúng đảm bảo chất lượng
của lời giải gần đúng, nghĩa là thuật toán gần đúng với cận sai số tỷ lệ bị chặn
Input: Đồ thị vô hướng G = (V, E)
Output: Phủ định với lực lượng nhỏ nhất Thuật toán gần đúng được mô tả
như sau: Bắt đầu từ tập S = ∅ Chọn e = (u,v) ∈ E Đặt S = S ∪{u, v} Loại bỏ khỏi đồ thị cạnh e và tất cả các cạnh có ít nhất một đầu mút trong S Ký hiệu
G* là đồ thị thu được Lặp lại quá trình với đồ thị G*
Trang 19Xét tập phủ đỉnh S cho bởi ApproxVC Gọi S* là phủ đỉnh tối ưu Gọi A là tập
các cạnh được chọn trong thuật toán ApproxVC Do ở mỗi lần lặp ta đã thêm
cả hai đầu mút của cạnh được chọn vào S nên:
| S | = 2 | A | Mặt khác, rõ ràng S* phải chứa ít nhất một trong hai đầu mút của mỗi cạnh
trong A, suy ra:
|
S A
S = ≤
Trang 20Định lý được chứng minh
Ví dụ:
Hình 1.4 Minh hoạ cho ApproxVC
Trong ví dụ này ta có |S| = 6, |S*| = 3 Ví dụ này cho thấy bất đẳng thức trong
bổ đề có thể xảy ra dưới dạng dấu bằng
Đồ thị G và S* Xây dựng phủ đỉnh gần đúng S
Trang 21Chương 2 GIỚI THIỆU BÀI TOÁN P-MEDIAN CÓ HẠN CHẾ KHẢ NĂNG
VÀ CÁC HƯỚNG TIẾP CẬN
2.1 Giới thiệu chung về bài toán p-median có hạn chế khả năng
Bài toán p-median là dạng bài toán đặt ra yêu cầu xác định các địa điểm tối ưu (hoặc gần tối ưu) đặt các dịch vụ phục vụ sinh hoạt hàng ngày ở sân bay, nhà máy, kho hàng, trường học, nhà tù… cũng như các dịch vụ trong trường hợp khẩn cấp như cứu thương, cứu hoả…, với điều kiện các địa điểm phải
được chọn từ một tập giới hạn các vị trí (site) cho trước
Cần xác định vị trí đặt một số các trạm chức năng (dịch vụ) cho trước sao cho chi phí vận chuyển trung bình (thời gian vận chuyển trung bình) từ người dùng đến các chức năng đó hoặc ngược lại từ các chức năng đến người dùng là cực tiểu
Bài toán median có hạn chế khả năng phục vụ (Uncapacitated
p-median problems): Cho trước một tập các địa điểm, chi phí mở dịch vụ tại mỗi địa điểm, và lợi nhuận thu được ở các địa điểm từ việc phục vụ các khách hàng, vấn đề đặt ra là cần chọn ra các địa điểm để đặt dịch vụ và gắn các khách vào các dịch vụ để có được một mạng lưới dịch vụ đem lại tổng lợi nhuận lớn nhất và quan tâm đến khả năng phục vụ của mỗi điểm phục vụ Tổng khả năng
Trang 222.2 Các hướng tiếp cận để giải quyết bài toán p-median có hạn chế khả
có hạn chế khả năng Phương pháp sinh cột nhanh tương đối nhanh hơn so với một số phương pháp khác Tuy nhiên trong một số trường hợp nó có thể hội tụ chậm Trong phần này chúng ta nghiên cứu cách để làm ổn định phương pháp sinh cột khi ứng dụng giải bài toán định vị vị trí
Trong phần này chúng ta sử dụng phương pháp sinh cột để giải quyết bài toán p-median có hạn chế khả năng (CPMP) Trước tiên phải giải bài toán tối
ưu 1-median mà đáp ứng điều kiện về khả năng phục vụ của median sau đó các cột mới được sinh ra như là bài toán cái túi Các phương pháp Lagrăng rút gọn
gần đây được sử dụng để thực hiện gradient con Trong phần này nới lỏng
Lagrăng được xác định trực tiếp từ bái toán đối ngẫu chính và cung cấp các cận
mới và các cột hiệu quả thông qua bài toán cái túi cải biên
2.2.1.2 Tổng quan
CPMP được biết như là một bài toán NP khó Một vài cách tiếp cận gần
đây ứng dụng Lagrăng heuristics vào bài toán CPMP Koskosidis and Powell
[1] and in [2] Các phương pháp gần đây sử dụng metaheuristics như
Trang 23nhận và bộ dữ liệu test chuẩn được báo cáo trên trang web http://mscmga.ms.ic.ac.uk/info.html
Phương pháp sinh cột là một công cụ mạnh để giải quyết bài toán quy hoạch tuyến tính Quy hoạch tuyến tính xuất hiện khi số lượng cột chưa biết và toàn bộ việc liệt kê các cột không phải là lựa chọn hoặc bài toán được viết lại
sử dụng phân tích Dantzig-Wolfe (Các cột ứng với các điểm xa nhất của tập điều kiện) [3] Cách tiệp cận này trước đó chưa được ứng dụng để giải quyết bài toán CPMP nhưng đã thành công trong một số ứng dụng khác như bài toán cutting-stock, vedicle routing [3,4, 5, 6, 7, 8, 9,10, 11, 12] Tuy nhiên trong một số trường hợp việc sử dụng phương pháp sinh cột gây ra hội tụ chậm cho bài toán Nới lỏng Lagrăng rút gọn được giới thiệu trong phần này làm tăng tốc quá trình xử lý với phương pháp sinh cột Tạo ra các tập cột hữu ích
Trong phần này chúng ta ứng dụng phương pháp sinh cột vào bài toán CPMP Bài toán chính giới hạn tối ưu bài toán 1-median thỏa mãn các điều kiện của bài toán CPMP về hạn chế khả năng Các cột mới sinh ra để giải quyết các khả năng của bài toán con mà có tính đến các biến đối ngẫu chính có giới hạn và khả năng của các median Trong phần này nới lỏng Largăng rút gọn được xác định trực tiếp từ bài toán đối ngẫu chính và cung cấp các cận mới, các cột hữu ích từ bài toán cái túi cải biên Toàn bộ quá trình sinh cột được thực hiện nhanh chóng
Trang 242.2.1.3 Mô hình toán học của bài toán CPMP
Mô hình toán học của bài toán CPMP được trình bày theo 2 cách:
i
x d Min
P
N j
N i ji
9 [ ]x ij n×n là ma trận định vị, nếu 1x ij = tức là median j phục vụ cho nút i
Ngược lại thì x ij =0 Nếu x jj =1 thì nút j là median, ngược lại x jj =0
Điều kiện (2) và (3) để ràng buộc mỗi một nút được phục vụ bởi duy nhất 1 median và tổng số median là p Điều kiện (4) để ràng buộc về khả năng phục
vụ của median Điều kiện (5) ràng buộc về giá trị củax ij
Để đơn giản hóa ta giả sử khả năng phục vụ của các median là bằng nhau
Trang 251
)(
d Min
k S i k
Trang 262.2.1.4 Nới lỏng Lagrăng rút gọn và sinh cột
Phương pháp sinh cột và nới lỏng Lagrăng rút gọn được biết đến tương
tự như phân rã Dantzig-Wolfe Giải quyết bài toán quy hoạch tuyến tính nguyên bằng phân tích Dantzig-Wolfe cũng giống như giải Lagrăng bằng phương pháp cắt phẳng (cutting plane) [14] Tuy nhiên trong nhiều trường hợp các ứng dụng của phương pháp sinh cột hội tụ chậm [15,16,17,18] Dưới đây Lagrăng rút gọn gắn liền với phương pháp sinh cột, xác định việc tối ưu hóa bài toán bằng cách tối ưu quá trình xử lý Lagrăng rút gọn và giảm thiểu chi phí của bài toán Lagrăng rút gọn cho phép xác định giới hạn cận dưới tốt và sinh
ra cột mới mà làm tăng quá trình sinh cột
Cho λ∈R+n và t ≥0 Nới lỏng lagrăng rút gọn và sinh cột được xác định như sau:
L
kèm theo các điều kiện (3), (4), (5)
Bài toán L t Pλ được giải quyết tính toán đến yếu tố điều kiện (3), và phân tích cho chỉ số j đạt được từ bài toán cái túi n 0-1:
kèm theo các điều kiện (4) và (5)
Mỗi bài toán được giải quyết sử dụng mã Horowitz và Sahni (Martello and Toth [19]) Cho j là chỉ số của tập p với v(knap tλ)j,j∈N nhỏ nhất (có quan tâm đến điều kiện (3)) Giá trị của Lagrăng rút gọn được cho bởi:
Trang 27Đặc điểm thú vị của L t Pλ nới lỏng là với t=1 biểu thức (9) là Lagrăng nới lỏng với sai số λ đối ngẫu kép có thể được xác định ở đây, đối ngẫu bên ngoài cho biến đa chiều λ Giá trị tốt nhất cho t có thể được xác định qua đối ngẫu
0
λ
λ Max v L P D
t
triển tới cận thông thường Lagrăng rút gọn và làm nhanh hơn toàn bộ quá trình
xử lý Để tìm sai số Lagrăng rút gọn gần đúng nhất sử dụng thủ tục tìm kiếm phân đôi SH được mô tả trong [20]
Lorena và Senne [21] ứng dụng Lagrăng rút gọn để giải quyết bài toán đối ngẫu bằng bởi phương pháp subgradient Chất lượng của lời giải đạt được có thể so sánh với phương pháp metaheuristics, nhưng chiếm thời gian tính toán nhỏ trên dữ liệu thực quy mô lớn đạt được khi sử dụng phần mềm Geographic Information System [22]
Bài toán được giải quyết bởi phương pháp sinh cột là quy hoạch tuyến tính được mô tả (SCP):
=
k k
k x c Min SCP
v
1
)(
trong đó ∑
=
≥
m k
Trang 28Sau khi xác định các cột chung khởi tạo, bài toán SCP và kết quả giá trị đối ngẫu cuối cùng πi,i=1, ,n và µ được sử dụng để sinh cột mới bằng việc giải quyết bài toán con sau đây (để đơn giản hóa ta coi với mỗi j, x ij = ) z i
)
N
j v knap Min
P Sub
∈
=Bài toán SubπP được giải quyết phân tích cho chỉ số j, đạt được n 0-1 bài toán
cái túi của (8) Việc kết hợp làm giảm chi phí v(SubπP)−π và cột ⎟
i z
có thể được thêm vào cột các cột chung, làm tăng quá trình sinh cột
Chú ý rằng với λ = , n bài toán cái túi giống nhau của biểu thức (8) xác định π
trong giải pháp của L1Pπ (với Lagrăng trong đó t = 1) và SubπP Sau đó nếu sai số πi (i = 1, , n) của bài toán SCP được dùng lại cho bài toán L1Pπ, bài toán Lagarăng được sử dụng để sinh cột và cũng để đem lại cận dưới của P và SCP
Lagrăng rút gọn được tích hợp với quá trình sinh cột, chuyển sai số πi
(i=1, ,n) của bài toán SCP sang bài toán ( )
0
π
P L v
t≥ và trả về cột tương ứng Nếu cột mới thỏa mãn điều kiện (11) thì thêm cột mới vào các cột chung (pool
of columns) Ảnh hưởng của kết quả làm tăng quá trình hội tụ, thậm chí khi các cột được thêm vào pool tại mỗi bước lặp của quá trình
Lagrăng rút gọn là giới hạn cận dưới của quá trình sinh cột Đặc thù nó tốt hơn với cận Lagrăng (t=1) và hữu ích để xác định thiết lập hội tụ cho bài toán giới hạn
Trang 29Giải thuật CG(t):
(i) Thiết lập tập cột khởi tạo SCP
(ii) Xử lý SCP sử dụng CPLEX [23] và trả về giá kép πj, j = 1, , n
t≥ Lagrăng rút gọn gần đúng, trả về các cột được xác định
(iv) Thêm vào SCP cột ⎢⎣⎡1⎥⎦⎤
i z
(vi) Thực hiện kiểm thử và xóa bỏ các cột và trở lại bước (ii)
Nếu t=1, CG(1) cho quá trình sinh cột truyền thống: bước (iii) tính toán giới hạn Lagrăng v(L1Pπ) Trong bất cứ trường hợp nào thì các giới hạn v(SCP)
và )v(L1Pπ được tính toán tại mỗi vòng lặp
Trang 30Đoạn chương trình sau đây sử dụng trong bước (i)
Nc=0 và C={}
while nc<NCOLS do:
Dtotal=0;
N={1, ,n};
while Q>=dtotal do:
K là giá trị ngẫu nhiên của N
Tìm median tốt nhất trong cluster C
Thêm vào SCP cột tương ứng với cluster C
Kết quả tính toán thực nghiệm chỉ ra rằng bài toán con Lagrăng rút gọn sinh ra một số lượng nhỏ các cột hiệu quả và có thể kiểm soát được với số lượng cột nhỏ
Cận dưới Lagrăng rút gọn rất hữu ích với cây nhánh cận và hiện đang tiếp tục được nghiên cứu
Trang 312.2.2 Phương pháp tìm kiếm địa phương heuristic
2.2.2.1 Giới thiệu
Bài toán cluster nhìn chung xuất hiện trong việc phân loại dữ liệu cho
một số mục đích như lưu trữ và phục hồi hoặc phân tích dữ liệu Bất cứ thuật toán “cluster” nào đều cố gắng xác định sự kế thừa hoặc nhóm dữ liệu sử dụng việc đánh giá “khoảng cách” hoặc “tính tương đối” giữa các dữ liệu riêng biệt (Spath [24]) Trong phần này chúng ta tìm hiểu phương pháp tìm kiếm địa phương heuristics vào bài toán “clustering” trong đồ thị, tên gọi là bài toán p-median có hạn chế khả năng
Phương pháp Lagrăng rút gọn được mô tả trong phần này gần giống như Lagrăng heuristics, như công thức quy hoạch tuyến tính nguyên Nới lỏng Lagrăng rút gọn được sử dụng để làm tăng subgradient, mà thường được sử dụng tối ưu hóa bài toán Lagrăng đối ngẫu tương ứng Nó đã được kiểm thử trước khi ứng dụng thành công bài toán Set Covering [25], các bài toán Generalized Assignment [26,27] và vài bài toán định vị [28,29] Narciso và Lorean [27] đặt ra tên Lagrăng rút gọn cho loại nới lỏng này Cận đối ngẫu Lagrăng rút gọn có chất lượng như cận đối ngẫu Lagrăng nhưng nó chỉ đạt được với thời gian tính toán vừa phải
Mục này mô tả cải tiến của giới hạn trên Nới lỏng Lagrăng rút gọn được kết hợp với tìm kiếm heuristic, được đề xuất bởi Cooper [30] và được sử dụng trước đó với Taillard [31] và Senne và Lorena [29] Heuristics cải tiến lời giải làm cho có thể khả thi được bởi quá trình tối ưu hóa Lagrăng rút gọn, tráo đổi các median và các đỉnh trong cluster, định vị lại các đỉnh, và lặp lại như vậy cho đến khi không thể cải tiến hơn Một trong những mục đích của cách tiếp
Trang 32Geographic Information System Đề xuất này được so sánh với metaHeuristics
và dường như được ám chỉ dữ liệu do thời gian tính toán nhỏ
Tiếp theo ta sẽ tìm hiểu cách tiếp cận Lagrăng rút gọn, và ứng dụng của Lagrăng rút gọn vào bài toán CPMP để tích hợp trong phương pháp tìm kiếm heuristics địa phương
2.2.2.2 Cách tiếp cận Lagrăng rút gọn
Phương pháp Lagrăng rút gọn thay thế thành công nới lỏng Lagrăng nguyên thủy Cận đối ngẫu Lagrăng rút gọn tốt giống như cận đối ngẫu Lagrăng nhưng chỉ đạt được với thời gian tính toán trung bình Mô tả chung cho nới lỏng Lagrăng rút gọn được mô tả trong [27], [28] Ta xem lại quy hoạch tuyến tính nguyên 0-1 Phần tiếp theo ứng dụng nới lỏng Lagrăng rút gọn vào bài toán CPMP
Giả sử bài toán quy hoạch tuyến tính 0-1 như sau:
Trang 33Xác định đối ngẫu Lagrăng sau đó là bài toán tối ưu với λ:
)(D λ v(Dλ)=Max{v(LPλ)} với m
)(SP λ v(SPλ)=Min cx, với ,λ(Ax − b)≥0 x∈ X
)
(SP là một bài toán khó (giống như (P)) mà biện minh cho nới lỏng λ
Lagrăng của điều kiện rút gọn trong bài toán (SP Cho λ) λ∈R+m, và thông số 0
≥
t , nới lỏng Lagrăng rút gọn của (P) được xác định bởi
)(LP tλ v(LP tλ)=Min{cx−tλ(Ax−b)} với x∈X
Hình 2.2.2.2: Các cận Lagrăng rút gọn Thông số t được gọi là sai số Lagrăng rút gọn và sai số Lagrăng λ được chia
Trang 34(Hình 1) Sai số Lagrăng rút gọn t* tốt nhất đạt được khi giải quyết vấn đề đối
0
λ λ
trị t0 ≤T ≤t1 (với t0 =1 hoặc 1t1 = ) cũng làm cải thiện các giới hạn cho nới lỏng thông thường
Phương pháp tìm kiếm line được sử dụng để giải gần đúng v(D tλ), tính toán trong một khoảng giá trị t0 ≤T ≤t1 (với t0 =1 hoặc t1 =1)
Tìm kiếm Heuristics (SH)
s Giá trị khởi tạo số bước
k Số lượng bước lặp
kmax Số lớn nhất của các bước lặp
tinit Giá trị khởi tạo của sai số Lagrangean/surrogate
t Giá trị hiện tại của sai số Lagrangean/surrogate
tleft Giá trị gần đúng bên phải trái tốt nhất hiện tại của t*
tright Giá trị gần đúng bên phải phải tốt nhất hiện tại của t*
T Giá trị của sai số Lagrangean/surrogate (Giá trị gần đúng tốt nhất
của t*)
tleft Giá trị của (LP tλ) với t=tleft
tright Giá trị của )(LP tλ với t=tright
z Giá trị lớn nhất của )(LP tλ , đó chính là giá trị của )(LP tλ
Trang 35zright tright
zleft tleft
t
+
×+
Trang 36Đối ngẫu Lagrăng (Dλ) được tối ưu bởi phương pháp subgradient Nếu nới lỏng Lagrăng rút gọn được sử dụng thì giá trị đối ngẫu mới (D tλ) có cùng giới hạn như (D nhưng dãy λ) v(LP Tλ) có thể cung cấp các giới hạn tốt hơn dãy
)
(LPλ
v , làm tăng phương pháp subgradient
2.2.2.3 Lagrăng rút gọn ứng dụng vào bài toán CPMP
CPMP là bài toán NP-khó và một số hướng tiếp cận gần đây ứng dụng Lagrăng heuristics vào CPMP được giới thiệu trong Koskosidis và Powell [32]
và [33] Các hướng tiếp cận gần đây ứng dụng metaHeuristics như simulated annealing và tabu search (Franca, Sosa và Pureza [27] và [34]), giải thuật di truyền (Maniezzo, Mingozzi và Baldacci[35])
Trang 37Bài toán CPMP trong phần này được mô tả theo quy hoạch tuyến tính nguyên:
i
x d Min
q ; (4)
y j∈{0,1};x ij ∈{0,1};i∈N; j∈M (5)
Trong đó:
9 N={1, ,n} tập hợp chỉ số của các phần tử để xác định M={1, ,m}
là tập chỉ số của các median, p là các median được xác định
9 q là yêu cầu của mỗi phần tử và i Q là khả năng phục vụ của j
median
9 [d ij]n×m là ma trận khoảng cách
9 [x ij]n×m là ma trận định vị với 1x ij = nếu phần tử i được phục vụ
bởi median j, và 0 x ij = thì ngược lại Nếu 1y j = nếu phần tử j là median, 0y j = là ngược lại
Điều kiện (2) và (3) để bắt buộc mỗi phần tử được phục vụ bởi duy nhất median
Điều kiện (4) bắt buộc về khả năng phục vụ hạn chế của median, điều kiện (5)
để ép buộc về giá trị nguyên
Cho λ∈R+n và t≥0 thì nới lỏng Lagrăng rút gọn của CPMP có giá trị:
LCPMP
Trang 38Bài toán (LCPMP tλ) phải quan tâm điều kiện ràng buộc (3) Phân tích bởi chỉ
số j, m dẫn đến bài toán cái túi 0-1 dưới đây:
Với điều kiện (4) (5)
Mỗi bài toán được giải quyết sử dụng mã Horowitz và Sahni (xem Martello và Toth [36]) Cho J là tập chỉ số của p giá trị v(knap j) nhỏ nhất, j∈M Giá trị Lagrăng rút gọn được cho bởi:
Subgradient Heuristics (SubG)
Cho λ≥0,λ ≠0;
Gán lb=−∞,ub=+∞
Vòng lặp
Giải quyết nới lỏng (LCPMP Tλ) đạt được x và λ v(LCPMP Tλ)
Đạt được x và giá trị f v của nó sử dụng f x (mục 4) f
Trang 39Gán λi =max{0,λi +θg iλ},i∈N;
Cho đến khi dừng bước thử
Trong thủ tục này T là giá trị tối ưu gần đúng của t đạt được bằng cách sử dụng
thủ tục SH (với thông số s=0.25,kmax=10 và tinit=1.0) Giá trị T được cập
nhật cho mỗi bước lặp của SubG Tuy nhiên nếu thủ tục SH sinh ra cùng sai số
T sau 5 lần lặp của SubG thì giá trị tiếp của Lagrăng rút gọn sẽ sử dụng giá trị
cố định T như là sai số là thủ tục tìm kiếm SH dừng lại
M j
∈ { },min
λ
θ =π ( ub − lb ) / g 2 Kiếm soát giá trị tham số π sử dụng kiểm sóat cổ điển Held và Karp Giá trị π : 0≤π ≤2, bắt đầu với π =2, kết thúc π khi lb không tăng sau 30 vòng lặp
2.2.2.4 Tìm kiếm địa phương Heuristics
Cách tiếp cận Lagrăng mô tả trong mục c được tích hợp với tìm kiếm địa phương heuristics để tạo ra các lời giải đối ngẫu có khả thi Heuristics này được mô tả sau đây
Kết quả xλ trong thủ tục SubG không cần thiết với CPMP, nhưng tập J
xác định các nút median mà có thể được sử dụng để tạo ra các lời giải có khả
Trang 40∑∑
∈N ∈
i j J
f ij
ij x p Max (9)
x i N
J j
f ij
Giải thuật MTHG được giới thiệu [36] được sử dụng để cung cấp các lời giải gần đúng x f vào GAP Heuristics MTHG sử dụng f ij = p ij để đánh giá tính khả dụng xác định phần tử i với median j Nó lặp đi lặp lại với các phần tử, xác định phần tử i’ có sự chênh lệch lớn nhất giữa giá trị f ij(i∈N) lớn nhất và lớn thứ nhì Nếu i’ được chọn cho mà f 'j là lớn nhất Nếu lời giải đạt được kết quả khả thi, trong phần thứ 2 của thuật toán thì lời giải hiện tại được cải tiến qua sự tráo đổi địa phương
Lời giải x được cải tiến bởi thủ tục heuristics location-allocation f
(LAH) dựa trên sự phân tích rằng sau định nghĩa x f chính xác p cluster có thể được xác định, C1, ,C p tương ứng với p medians và các non-median chưa xác định Lời giải x được cải tiến với thủ tục tìm kiếm median mới bên trong mỗi f
cluster, tráo đổi median hiện tại với non-median và xác định lại Nếu tập J thay đổi thì phải tính toán lại giá trị x f trên GAP mới, nếu lời giải mới có giá trị tốt
hơn thì lặp lại quá trình xử lý xác định lại với cluster mới và cho đến khi không
có sự cải tiến nào xảy ra
f