Thuật toán xấp xỉ và ứng dụng tìm nghiệm bài toán thuộc lớp NP - Khó

Trong bài báo này, chúng tôi giới thiệu một số bài toán thuộc lớp NP

– khó (NP – Hard) và đề xuất một thuật toán xấp xỉ tìm lời giải cho

bài toán tìm tập con lớn nhất, tập con có số phần tử xác định trước.

Đối với mỗi bài toán tối ưu tổ hợp, hiện nay có khá nhiều phương

pháp hữu hiệu với chi phí khá thấp về thời gian tính toán để tìm lời

giải, có thể kể đến như thuật toán xấp xỉ nhanh. Phương pháp này đã

được ứng dụng rộng rãi để giải các bài toán mà không yêu cầu đòi

hỏi phải tìm được nghiệm chính xác, bởi ngay từ dữ liệu đầu vào của

bài toán có thể đã là dữ liệu xấp xỉ. Vì vậy tìm được thuật toán xấp xỉ

giải bài toán có chi phí thời gian tính toán thấp mà vẫn đảm bảo độ

chính xác theo yêu cầu là mục tiêu của bài báo này cần đạt được. Theo

cách tiếp cận này, chúng tôi xây dựng được thuật toán có độ phức tạp

về thời gian tính toán là đa thức khi bài toán được xét trong không gian

Euclide và nghiệm tìm được có độ chính xác chấp nhận được

Thuật toán xấp xỉ và ứng dụng tìm nghiệm bài toán thuộc lớp NP - Khó trang 1

Trang 1

Thuật toán xấp xỉ và ứng dụng tìm nghiệm bài toán thuộc lớp NP - Khó trang 2

Trang 2

Thuật toán xấp xỉ và ứng dụng tìm nghiệm bài toán thuộc lớp NP - Khó trang 3

Trang 3

Thuật toán xấp xỉ và ứng dụng tìm nghiệm bài toán thuộc lớp NP - Khó trang 4

Trang 4

Thuật toán xấp xỉ và ứng dụng tìm nghiệm bài toán thuộc lớp NP - Khó trang 5

Trang 5

Thuật toán xấp xỉ và ứng dụng tìm nghiệm bài toán thuộc lớp NP - Khó trang 6

Trang 6

Thuật toán xấp xỉ và ứng dụng tìm nghiệm bài toán thuộc lớp NP - Khó trang 7

Trang 7

pdf 7 trang xuanhieu 4160
Bạn đang xem tài liệu "Thuật toán xấp xỉ và ứng dụng tìm nghiệm bài toán thuộc lớp NP - Khó", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Thuật toán xấp xỉ và ứng dụng tìm nghiệm bài toán thuộc lớp NP - Khó

Thuật toán xấp xỉ và ứng dụng tìm nghiệm bài toán thuộc lớp NP - Khó
ation Technology and Communication 
 ARTICLE INFO ABSTRACT 
 Received: 23/02/2021 In this paper, we introduce some NP-hard problems and present an 
 approximation algorithm to find a cluster (subset) of the largest 
 Revised: 24/5/2021 cardinality and subset of points of a given cardinality. There is a 
 Published: 27/5/2021 radically different way of dealing with difficult optimization prob-
 lems: solve them approximately by a fast algorithm. This approach is 
KEYWORDS particularly appealing for applications where a good but not 
 necessarily optimal solution will suffice. Besides, in real-life 
Polynomial-time algorithm applications, we often have to operate with inaccurate data to begin. 
Approximation algorithm Under such circumstances, going for an approximate solution can be a 
NP – Hard particularly sensible choice. Algorithm that is given is a polynomial-
 time approximation algorithm. This algorithm finds a feasible solution 
Euclide space to problems when we consider the problem of searching a subset in a 
Fast Approximate finite set of points of Euclidean space. 
THUẬT TOÁN XẤP XỈ VÀ ỨNG DỤNG TÌM NGHIỆM BÀI TOÁN 
THUỘC LỚP NP - KHÓ 
Nguyễn Đình Dũng 
Trường Đại học Công nghệ thông tin và Truyền thông - ĐH Thái Nguyên 
 THÔNG TIN BÀI BÁO TÓM TẮT 
 Ngày nhận bài: 23/02/2021 Trong bài báo này, chúng tôi giới thiệu một số bài toán thuộc lớp NP 
 – khó (NP – Hard) và đề xuất một thuật toán xấp xỉ tìm lời giải cho 
 Ngày hoàn thiện: 24/5/2021 bài toán tìm tập con lớn nhất, tập con có số phần tử xác định trước. 
 Ngày đăng: 27/5/2021 Đối với mỗi bài toán tối ưu tổ hợp, hiện nay có khá nhiều phương 
 pháp hữu hiệu với chi phí khá thấp về thời gian tính toán để tìm lời 
TỪ KHÓA giải, có thể kể đến như thuật toán xấp xỉ nhanh. Phương pháp này đã 
 được ứng dụng rộng rãi để giải các bài toán mà không yêu cầu đòi 
Thuật toán đa thức hỏi phải tìm được nghiệm chính xác, bởi ngay từ dữ liệu đầu vào của 
Thuật toán xấp xỉ bài toán có thể đã là dữ liệu xấp xỉ. Vì vậy tìm được thuật toán xấp xỉ 
 giải bài toán có chi phí thời gian tính toán thấp mà vẫn đảm bảo độ 
NP – khó 
 chính xác theo yêu cầu là mục tiêu của bài báo này cần đạt được. Theo 
Không gian Euclide cách tiếp cận này, chúng tôi xây dựng được thuật toán có độ phức tạp 
Xấp xỉ nhanh về thời gian tính toán là đa thức khi bài toán được xét trong không gian 
 Euclide và nghiệm tìm được có độ chính xác chấp nhận được. 
Email: dungnd@tnu.edu.vn 
 175 Email: jst@tnu.edu.vn 
 TNU Journal of Science and Technology 226(07): 175 - 181 
1. Giới thiệu 
 Tìm lời giải cho bài toán thuộc lớp bài toán NP - khó là chủ đề được nhiều tác giả trong và 
ngoài nước quan tâm. Một bài toán được gọi là thuộc lớp bài toán NP - khó nếu bài toán đó 
không có thuật toán thời gian tính đa thức để giải nó (ngoại trừ trường hợp P=NP), mà chỉ có các 
thuật toán giải trong thời gian hàm mũ [1]. Bài toán tìm tập con chung lớn nhất là bài toán thuộc 
vào lớp bài toán này và có nhiều ứng dụng đa dạng khác nhau, có thể kể đến như lĩnh vực học 
máy [2], [3]. Trong lĩnh vực học máy, tiền xử lý dữ liệu là một bước rất quan trọng trong việc 
giải quyết bất kỳ một vấn đề nào. Hầu hết các bộ dữ liệu được sử dụng trong các vấn đề liên quan 
đến học máy cần được xử lý, làm sạch và biến đổi trước khi một thuật toán học máy có thể được 
huấn luyện trên những bộ dữ liệu này. Dữ liệu có thể không được thu thập trực tiếp bởi con người 
vì các lý do xoay quanh vấn đề về chi phí, cơ sở hạ tầng, con người. Do đó, dữ liệu có thể bị thiếu 
bởi một sai sót của máy móc, hoặc thực tế nó không tồn tại tại một thời điểm nhất định trong khi 
thu thập dữ liệu. Vì vậy việc tìm ra tập dữ liệu đủ lớn từ tập dữ liệu thu thập được và thoả mãn 
các tính chất theo yêu cầu thực tiễn, đồng thời đảm bảo mô hình học máy không bị ảnh hưởng là 
rất cần thiết. 
 Bài toán tìm tập con có thể phát biểu như sau [4]: Trong không gian Euclide ℝd , cho tập Χ 
gồm N phần tử và hàm mục tiêu f(U) xác định với mọi tập con U⊆ Χ và hàm ràng buộc g(U). Cần 
tìm tập nghiệm tối ưu S sao cho: 
 f(S)=opt{f(U)| U⊆ Χ , g(U)} 
 Hiện nay, có nhiều thuật toán tìm lời giải chính xác cho bài toán trên, như thuật toán vét cạn, 
thuật toán nhánh cận [5],Tuy nhiên, các thuật toán tìm lời giải chính xác thường gặp phải hạn chế 
về chi phí thời gian tính toán khá cao khi kích thước dữ liệu đầu vào lớn, độ phức tạp thời gian tính 
toán thường là hàm mũ. Vì vậy, bài báo này tập trung vào nghiên cứu thuật toán xấp xỉ để tìm lời 
giải với độ chính xác chấp nhận được và độ phức tạp về thời gian tính toán là hàm đa thức. 
 Để tìm lời giải xấp xỉ cho bài toán, hiện nay, đã có nhiều kết quả được công bố. Năm 1991, 
Aggarwal [6] đã đề xuất thuật toán xấp xỉ giải bài toán trên với độ phức tạp về thời gian đa thức 
là O(dNd+1). Tuy nhiên, trong trường hợp số chiều của không gian lớn thì chi phí về thời gian 
tính toán khá cao. Khắc phục nhược điểm này, năm 2012, Kelmanov [7] công bố thuật toán xấp 
xỉ - 2 với độ phức tạp tính toán là O(dN2), Shenmaier [8] công bố thuật toán đạt độ chính xác  
cho trước với độ phức tạp thời gian tính toán phụ thuộc liên tục vào sai số là 
 O( dN 2/+ 1 (9 / ) 3/ ) 
 Năm 2016, Shenmaier [4] đề xuất thuật toán dựa vào lược đồ Voronoi bậc cao với độ phức tạp 
tính toán đa thức là O(dNd+1). 
 Về cơ bản những thuật toán trên đều cho độ phức tạp tính toán là đa thức nhưng chi phí thời 
gian tính toán là khá cao nếu số chiều không gian lớn. Một số thuật toán có thời gian tính toán 
chấp nhận được nhưng độ chính xác còn hạn chế [9]. Nhằm khắc phục 2 vấn đề này, chúng tôi đề 
xuất thuật toán xấp xỉ ½ với độ phức tạp tính toán là đa thức. Trước hết chúng tôi trình bày một 
số bài toán cụ thể cho lớp bài toán trên. 
2. Một số bài toán thuộc lớp NP – khó 
 Khái niệm về các lớp bài toán P, NP, NPC, NP – khó [5]. 
 Định nghĩa 1: 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). 
 Định nghĩa 2: Bài toán A được gọi là “dẫn về được” bài toán B sau thời gian đa thức nếu có 
một thuật toán đa thức để giải bài toán B thì cũng có một thuật toán đa thức để giải bài toán A. 
 Định nghĩa 3: P là lớp các bài toán có thể giải được bằng thuật toán đơn định trong thời gian 
đa thức. 
 Định nghĩa 4: NP là lớp các bài toán có thể giải được bằng thuật toán không đơn định trong 
thời gian đa thức. 
 176 Email: jst@tnu.edu.vn 
 TNU Journal of Science and Technology 226(07): 175 - 181 
 Định nghĩa 5: Một bài toán quyết định A được gọi là NP - đầy đủ (NPC) nếu như: 
- A là một bài toán trong NP. 
 - Mọi bài toán trong NP đều có thể quy dẫn được về A. 
 Định nghĩa 6: 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. 
 Ký hiệu: 
 d
 ||x|| là chuẩn Euclide của x trong không gian ℝ . 
 |S| là số phần tử thuộc S. 
2.1. Bài toán tìm tập con có số phần tử cho trước 
 Cho trước K ℝ 
 Bài toán 1A. Tìm tập con S⊆ Χ sao cho: 
 2
 f1( S )= x − c ( S ) → min , (1) 
 xS 
 1
 trong đó c() S=  x (2) 
 K xS 
 |S|=K (3) 
 Bài toán 2A. Tìm tập con S⊆ Χ sao cho: 
 22
 f2 ( S )= x − c ( S ) + x → min , (4) 
 x S x X\ S
 |S|=K (5) 
2.2. Bài toán tìm tập con có số phần tử lớn nhất 
 Bài toán 1B. Tìm tập con S⊆ Χ sao cho: 
 S→ max , (6) 
 22
 g1()()() S= x − c S x − c X , (7) 
 x S x X
 trong đó 
 1
 c() X=  x , (8) 
 X xX 
 1
 c() S=  x , (9) 
 S xS 
 (0,1) (10) 
 Bài toán 2B. Tìm tập con S⊆ Χ sao cho: 
 , (11) 
 22
 g2 ()() S= x − c S + x
 x S x X\ S , (12) 
 2
 −  x c() X
 xX 
 Trên đây là các bài toán được đề cập trong phân tích dữ liệu tại các tài liệu [9] và [10]. Kết 
quả trong [4] đã chỉ ra sự tồn tại nghiệm của các bài toán trên. Dễ thấy các bài toán 1B, 2B là 
những bài toán mà vế phải của ràng buộc không phụ thuộc vào tập nghiệm cần tìm mà là những 
hằng số không âm. 
 Các bài toán 1B, 2B có thể phát biểu như sau: 
 177 Email: jst@tnu.edu.vn 
 TNU Journal of Science and Technology 226(07): 175 - 181 
 d
 Bài toán 2.2B: Trong không gian Euclide ℝ Cho tập X ={x1, x2,, xN}, số thực dương B, số 
nguyên dương M. Bài toán đặt ra là liệu có tồn tại tập con S sao cho SM và gi () S B (I 
=1 hoặc i=2). 
 Các kết quả trong [11] đã chỉ ra rằng, bài toán sau đây (Bài toán 2.2C) là bài toán NPC và bài 
toán Clique thuộc lớp NPC cũng quy dẫn được về Bài toán 2.2C. 
 d
 Bài toán 2.2C (Bài toán thuộc lớp NPC): Trong không gian Euclide ℝ Cho tập X ={x1, x2,, 
xN}, số thực dương C, số nguyên dương M. Bài toán đặt ra là liệu có tồn tại tập con S sao cho 
SM= và gi () S C (i =1 hoặc i=2). 
 Dễ thấy Bài toán 2.2B và 2.2C là tương đương, vì vậy Bài toán 2.2B cũng thuộc lớp NPC, từ 
đó cho thấy các Bài toán 1B, 2B là những bài toán thuộc lớp NP - khó. 
3. Thuật toán xấp xỉ ½ 
 Thuật toán 1A (thuật toán tìm lời giải cho Bài toán 1A) 
 Input: Tập X ={x1, x2,, xN} và số nguyên dương K. 
 Output: Tập con S. 
 1. for (i=1;i<=N;i++){ 
 2. for(j=i;j<=N;j++) { 
 dist(,) i j=− xij x ; 
 dist( j,i) = dist(i, j); 
 } 
 3. Với mỗi chỉ số i, sắp xếp dist(,) i j theo thứ tự không giảm. Sau khi sắp xếp ta thu được dãy 
Y ={y1, y2,, yN}; 
 4. T(i)=0; 
 5. j=1; 
 6. S(i)=∅; 
 7. While(j<=K) { 
 2
 8. T(i)=T(i)+ xyij− ; 
 9. S(i)=S(i)∪ yj; 
 10. j=j+1; 
 } 
 } 
 11. l=1; 
 12. for (i=1;i<=N;i++) 
 13. if(T(i) <T(l)) l=i; 
 14. Return S(l); 
 Thuật toán 1B (thuật toán tìm lời giải cho Bài toán 1B) 
 Input: Tập X ={x1, x2,, xN} và số thực 
 Output: Tập con S 
 2
 1. B=  x− c() X ; 
 xX 
 2. for (i=1;i<=N;i++){ 
 3. for(j=i;j<=N;j++) { 
 ; 
 ; 
 } 
 178 Email: jst@tnu.edu.vn 
 TNU Journal of Science and Technology 226(07): 175 - 181 
 4. Với mỗi chỉ số i, sắp xếp dist(,) i j theo thứ tự không giảm. Sau khi sắp xếp ta thu được dãy 
Y ={y1, y2,, yN}; 
 5. T=0; 
 6. j=1; 
 7. S(i)=∅; 
 2
 8. While(T+ xyij− <=B && j<=N) { 
 2
 9. T=T+ xyij− ; 
 10. S(i)=S(i)∪ yj; 
 11. j=j+1; 
 } 
 } 
 12. l=1; 
 13. for (i=1;i<=N;i++) 
 14. if(|S(i)|>|S(l)|) l=i; 
 15. Return S(l); 
 Vì tính chất tương đương của Bài toán 1A và Bài toán 1B, nên trong mục này chúng tôi chỉ 
đánh giá 1 thuật toán, ở đây, chúng tôi chọn thuật toán 1B để đánh giá. Đánh giá độ phức tạp 
thuật toán 1B, ta lần lượt đánh giá thời gian thực hiện các lệnh theo thứ tự sau: 
 1. O(dN). 
 2. O(N). 
 3. O(dN). 
 4. Nếu sắp xếp bằng thuật toán Heapsort [5] thì độ phức tạp là O(NlogN). 
 5,6,7. O(1). 
 8. Trong trường hợp xấu nhất là O(dN). 
 9. O(d). 
 10,11. O(1). 
 12. O(1). 
 13. O(N). 
 14, 15. O(1). 
 Áp dụng các quy tắc cộng và nhân, ta hoàn toàn thu được độ phức tạp của thuật toán là 
 O(dN+N(dN+NlogN+1+dN(d+1))+1+N). Vậy độ phức tạp về thời gian tính toán là 
O(N2(logN+d2)). 
 Nếu ta gọi OPT(S) là nghiệm tối ưu của bài toán, H(S) là nghiệm xấp xỉ tìm được theo thuật 
toán thì ta có: 
 (OPT () S− H ())/ S OPT ()1/2 S 
 .
 Vì vậy thuật toán này còn gọi là thuật toán xấp xỉ ½. 
 Bài toán 2B có thể được giải bằng thuật toán tương tự như thuật toán 1B. 
4. Một số kết quả thực nghiệm 
 Để minh chứng cho sự đúng đắn, khả thi của thuật toán xấp xỉ trong mục 3. Chúng tôi cài đặt 
thuật toán 1B trên môi trường Matlab 2014 và chạy chương trình cho một số kết quả sau: 
 Kết quả thử nghiệm 1: Trong không gian ℝ2 , cho tập X={(0,20), (1,20), (2,10), (3,200), 
(4,200), (5,20), (6,80), (7,1000)}. =1/8. Nếu sử dụng thuật toán vét cạn thì ta có nghiệm đúng 
là S*={(0,20), (1,20), (2,10), (3,200), (4,200), (5,20), (6,80)}. 
 Sau khi chạy thuật toán 1B cho ta kết quả như sau: 
 B= 9.8429e+04; Tập nghiệm tìm được là S= {(0,20), (1,20), (2,10), (3,200), (4,200), (5,20), 
(6,80)} là tập con lớn nhất và có tâm c(S)=(3, 78.5714). Theo thuật toán tâm xấp xỉ được chọn là 
 179 Email: jst@tnu.edu.vn 
 TNU Journal of Science and Technology 226(07): 175 - 181 
(0,20) thì |S|=7. Kết quả trực quan thể hiện trên Hình 1. 
 Hình 1. Kết quả thử nghiệm 1 Hình 2. Kết quả thử nghiệm 2 
 Về ý nghĩa thực tiễn khi quan sát Hình 1, cho thấy điểm (7,1000) là dữ liệu nhiễu, không đáng 
tin cậy, nên trong quá trình làm sạch dữ liệu thì dữ liệu này có thể được loại bỏ mà không ảnh 
hưởng đến mô hình. 
 Kết quả thử nghiệm 2: Trong không gian ℝ2 , cho tập X={(x,y)} gồm 30 phần tử và được 
phân bố như Hình 2. 
 Sau khi chạy thuật toán với =1/30 thì ta có B= 2.1060e+06, kết quả ta thu được nghiệm S là 
tập con lớn nhất có 24 phần tử. Hình 2 cho thấy dữ liệu thuộc S mô tả mô hình hàm hồi quy tuyến 
tính, dữ liệu thuộc miền A, miền B là dữ liệu nhiễu không thuộc vào tập dữ liệu đặc trưng, nên dữ 
liệu này hoàn toàn có thể loại bỏ mà không ảnh hưởng đến mô hình. 
5. Kết luận 
 Trong bài báo này, chúng tôi giới thiệu một số bài toán thuộc lớp NP – khó và xây dựng được 
thuật toán xấp xỉ ½ tìm lời giải cho bài toán tìm tập con. Thuật toán xây dựng có độ phức tạp là 
thời gian đa thức và chi phí tính toán tốt hơn các kết quả trước đó. Thuật toán được cài đặt trên 
môi trường Matlab 2014. Các kết quả thực nghiệm của chương trình là hoàn toàn phù hợp với lý 
thuyết làm minh chứng khẳng định tính đúng đắn, khả thi của thuật toán. 
 TÀI LIỆU THAM KHẢO/ REFERENCES 
[1] M. Garey and D. Johnson, Computers and Intractability. A Guide to the theory of NP-completeness. W. 
 H. Freeman and Company, NewYork, 1979. 
[2] J. W. Osborne, Best Practices in Data Cleaning: A Complete Guide to Everything You Need to Do 
 Before and After Collecting Your Data, 1st Edition, Los Angeles: SAGE Publication, 2013. 
[3] C. Aggarwal, Data Mining. Springer International Publishing, 2015. 
[4] V. V. Shenmaier, “Solving Some Vector Subset Problems by Voronoi Diagrams,” J. Appl. Indust. 
 Math., vol. 10, no. 4, pp. 560-566, 2016. 
[5] J. Kleinberg and E. Tardos, Algorithm Design. Addison Wesley, first edition, 2006. 
[6] A. Aggarwal, H. Imai, N. Katoh, and S. Suri, “Finding k points with minimum diameter and related 
 problems,” J. Algorithms, vol. 12, no. 1, pp. 38-56, 1991. 
[7] A. V. Kelmanov and S. M. Romanchenko, “An Approximation Algorithm for Solving a Problem of 
 Search for a Vector Subset,” J. Appl. Indust. Math., vol. 6, no. 1, pp. 90-96, 2012. 
[8] V. V. Shenmaier, “An Approximation Scheme for a Problem of Search for a Vector Subset,” J. Appl. 
 Indust. Math., vol. 6, no. 3, pp. 381-386, 2012. 
 180 Email: jst@tnu.edu.vn 
 TNU Journal of Science and Technology 226(07): 175 - 181 
[9] V. V. Shenmaier, “An Approximation Scheme for a Problem of Search for a Vector Subset,” J. Appl. 
 Indust. Math., vol. 6, no. 3, pp. 381-386, 2012. 
[10] B. Aronov and S. Har-Peled, “On Approximating the Depth and Related Problems,” SIAM J. Comput., 
 vol. 38, no. 3, pp. 899-921, 2008. 
[11] A. V. Kelmanov and A. V. Pyatkin, “NP-Completeness of Some Problems of Choosing a Vector 
 Subset,” J. Appl. Indust. Math., vol. 5, no. 3, pp. 352-357, 2011. 
 181 Email: jst@tnu.edu.vn 

File đính kèm:

  • pdfthuat_toan_xap_xi_va_ung_dung_tim_nghiem_bai_toan_thuoc_lop.pdf