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

Kết hợp khai phá dữ liệu và phương pháp hình thức cho bài toán tổ hợp và kiểm chứng dịch vụ web (tt)

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.52 MB, 30 trang )

CHƢƠNG 1
1.1

GIỚI THIỆU

Bối cảnh nghiên cứu

Tái sử dụng thành phần được xem là phương pháp phát triển nhanh phần mềm
có nhiều ưu điểm và được sử dụng rộng rãi. Kiến trúc hướng dịch vụ (SOA) là
kiến trúc phần mềm giúp xây dựng các hệ thống CNTT thông qua các thành
phần được đóng gói dưới dạng các dịch vụ. Do vậy, có thể nói phương pháp
phát triển phần mềm dựa trên tái sử dụng được áp dụng trong SOA. Dịch vụ
Web là dịch vụ mà chúng hoạt động và giao tiếp thông qua môi trường mạng,
sử dụng các giao thức Web. Một dịch vụ Web cung cấp hoàn chỉnh một chức
năng nào đó. Tuy nhiên, một dịch vụ đơn lẻ khó có thể đáp ứng được các yêu
cầu người dùng. Do đó, tổ hợp dịch vụ Web (Web Services Composition –
WSC) là một vấn đề hết sức quan trọng của SOA. Ngoài các ràng buộc về chức
năng, người dùng còn quan tâm đến các ràng buộc về chất lượng dịch vụ
(Quality of Service – QoS) và thứ tự kết hợp giữa các dịch vụ, gọi là ràng buộc
quan hệ thời gian.
Bài toán tổ hợp nói chung và tổ hợp dịch vụ Web nói riêng là bài toán có độ
phức tạp hàm mũ, làm bùng nổ không gian trạng thái tổ hợp, điều này đặc biệt
nghiêm trọng khi kích thước các kho dữ liệu tăng lên. Để giảm độ phức tạp tính
toán, chúng ta cần sàng lọc dịch vụ ứng viên ở mỗi bước tổ hợp bằng các kỹ
thuật khai phá dữ liệu như gom cụm dữ liệu. Ngoài ra, để tổ hợp thỏa các loại
ràng buộc khác nhau thì phương pháp hình thức, mà cụ thể là kiểm tra mô hình
cần được áp dụng, do các phương pháp truyền thống như lập kế hoạch không
thể kiểm tra các ràng buộc này.
1.2

Phát biểu vấn đề



Luận án này nêu lên bài toán cần phải giải quyết là phát triển một phương pháp
kết hợp giữa việc sử dụng phương pháp hình thức với kỹ thuật khai phá dữ liệu
để giải quyết bài toán tổ hợp và kiểm chứng kết quả tổ hợp các dịch vụ Web.

1.3

Câu hỏi nghiên cứu

Để thực hiện nghiên cứu này, luận án phải giải quyết và trả lời các câu hỏi sau:
1


[RQ1] Đã có một khung thức hay công cụ tổng quát cho việc tổ hợp thành
phần phần mềm nói chung và tổ hợp dịch vụ Web nói riêng hay chưa?
Khung thức phải bao hàm các bước: đặc tả thành phần, tổ hợp đáp ứng
các loại ràng buộc khác nhau và làm việc tốt với các kho thành phần
quy mô lớn.
[RQ2] Làm sao để đặc tả hình thức cho dịch vụ Web? Việc đặc tả hình thức
giúp cho quá trình tổ hợp được thực hiện bằng phương pháp kiểm tra
mô hình. Đồng thời đặc tả hình thức giúp đảm bảo tính đúng và đầy đủ
khi áp dụng các kỹ thuật khai phá dữ liệu để truy xuất dịch vụ.
[RQ3] Tổ hợp được xem là bài toán NP-hard và sẽ làm bùng nổ không gian
trạng thái. Vậy làm cách nào để kiểm soát vấn đề bùng nổ không gian
trạng thái nhưng vẫn đảm bảo tính đúng và đầy đủ của kết quả tổ hợp?
1.4

Mục tiêu nghiên cứu

Mục tiêu của luận án là giải quyết ba câu hỏi nghiên cứu đã đề ra, cụ thể là:

[OB1] Đưa ra một khung thức tổng quát cho việc tổ hợp các thành phần phần
mềm nói chung và tổ hợp dịch vụ Web nói riêng.
[OB2] Đưa ra phương pháp đặc tả hình thức cho dịch vụ Web và xây dựng mô
hình cho thư viện dịch vụ. Đặc tả này phải phù hợp với kỹ thuật kiểm
tra mô hình nhưng có thể biến đổi để áp dụng được trong khai phá dữ
liệu.
[OB3] Kiểm soát vấn đề bùng nổ không gian trạng thái của bài toán tổ hợp. Để
đạt mục tiêu này, chúng ta phải kết hợp phương pháp gom cụm dữ liệu
và áp dụng tìm kiếm heuristic trong quá trình tổ hợp.
1.5

Những đóng góp chính của nghiên cứu

Các đóng góp chính của luận án được tóm tắt như sau:
i. Luận án đề xuất một khung thức tổng quát cho bài toán tổ hợp và tái sử
dụng thành phần phần mềm nói chung và dịch vụ Web nói riêng một cách tự
động. Các công bố liên quan đến đóng góp này là [CT4], [CT6] và [CT10].
ii. Luận án đề xuất cách đặc tả hình thức cho dịch vụ Web và mô hình hóa thư
viện dịch vụ dưới dạng mô hình LTS4WS. Do đó, việc tổ hợp và kiểm chứng
2


được thực hiện theo phương pháp kiểm tra mô hình. Đóng góp này được
trình bày trong [CT5], [CT7].
iii. Luận án đưa ra giải pháp kiểm soát vấn đề bùng nổ không gian trạng thái
của bài toán tổ hợp bằng cách áp dụng phương pháp tìm kiếm heuristic và
lập chỉ mục dựa trên bit. Các công trình liên quan gồm [CT1], [CT7], [CT9],
[CT12].
iv. Luận án đưa ra phương pháp gom cụm các dịch vụ Web dựa trên luận lý
nhằm hỗ trợ truy xuất đúng các dịch vụ cần cho quá trình tổ hợp. Đóng góp

này được trình bày trong các công trình [CT2], [CT3], [CT11].
v. Cuối cùng, luận án cũng đã xây dựng công cụ hoàn chỉnh tên là WSCOVER
cho việc tổ hợp và kiểm chứng dịch vụ Web tự động. Công bố liên quan đến
công cụ WSCOVER là [CT8], [CT10].
1.6

Bố cục của luận án

Luận án được chia thành 8 chương.
Chƣơng 1 trình bày về bối cảnh nghiên cứu, đặt vấn đề, câu hỏi nghiên cứu,
mục tiêu nghiên cứu, những đóng góp chính, cũng như bố của luận án.
Chƣơng 2 trình bày tổng quan về tình hình nghiên cứu và các kiến thức nền
tảng làm tiền đề cho các công việc trong luận án.
Chƣơng 3 trình bày về khung thức tổng quát cho bài toán tổ hợp các thành
phần phần mềm một cách tự động.
Chƣơng 4 trình bày về phương pháp tổ hợp và kiểm chứng việc tổ hợp dịch vụ
Web bằng phương pháp kiểm tra mô hình thông qua việc đặc tả hình thức cho
dịch vụ và mô hình hóa thư viện dịch vụ dưới dạng một mô hình LTS4WS.
Chƣơng 5 trình bày về các phương pháp kiểm soát vấn đề bùng nổ không gian
trạng thái của bài toán tổ hợp, gồm có phương pháp tìm kiếm dựa trên heuristic
và kỹ thuật lập chỉ mục dựa trên bit nhị phân.
Chƣơng 6 trình bày về phương pháp gom cụm dịch vụ Web dựa trên luận lý.
Chương này cũng đưa ra cách tính độ tương tự giữa các dịch vụ dựa trên độ
3


tương tự giữa các biểu thức luận lý và phương pháp gom cụm kiểm soát chất
lượng.
Chƣơng 7 trình bày về công cụ WSCOVER. Đây là công cụ hiện thực hóa tất
cả các lý thuyết đã được trình bày trong luận án.

Chƣơng 8 trình bày kết luận và các định hướng nghiên cứu mở rộng của luận
án.

4


CHƢƠNG 2
2.1

TÌNH HÌNH NGHIÊN CỨU VÀ KIẾN THỨC NỀN TẢNG

Tình hình nghiên cứu

2.1.1 Tổ hợp các dịch vụ Web
Rostami đã phân các phương pháp tổ hợp dịch vụ Web ra thành bốn nhóm sau:
Phương pháp tổ hợp tĩnh thủ công: W. Dong và cộng sự sử dụng lưu đồ công
việc để tổ hợp dịch vụ Web. Hamadi và Benatallah đề xuất cấu trúc đại số dựa
trên Petri Net và việc tổ hợp được thực hiện trên Petri Net.
Phương pháp tổ hợp tĩnh bán tự động: R. Wang và cộng sự trình bày cơ chế đề
xuất dịch vụ cho từng tác vụ. L. A. Cotfas và cộng sự đưa ra cách tiếp cận phân
đoạn, chia nhỏ yêu cầu tổ hợp và chọn dịch vụ cho từng tác vụ sau khi phân
chia.
Phương pháp tổ hợp tĩnh tự động: PORSCE II là khung thức tổ hợp dịch vụ
Web tự động sử dụng kỹ thuật lập kế hoạch. M. AllamehAmiri và cộng sự đã
đề xuất cách tiếp cận tổ hợp dịch vụ Web tự động bằng cách áp dụng giải thuật
di truyền.
Phương pháp tổ hợp tự động và thực hiện động lúc chạy: T. H. Tan và cộng sự
đề xuất cách khôi phục và tổ hợp dịch vụ Web động dựa trên lược đồ các cách
tổ hợp được mô tả bằng ngôn ngữ BPEL. A. K. Tripathy và cộng sự đề xuất
phương pháp gom cụm và lựa chọn dịch vụ Web để tổ hợp động dựa trên đồ thị

tác vụ.
2.1.2 Kiểm chứng việc tổ hợp dịch vụ Web
Kiểm chứng yêu cầu chức năng: H. Foster và cộng sự kiểm chứng tổ hợp dịch
vụ dựa trên mô hình LTS. Y. Qian và cộng sự chuyển tổ hợp dịch vụ thành
dạng automat thời gian và sử dụng công cụ UPPAAL để kiểm tra.
Kiểm chứng yêu cầu phi chức năng: S. Koizumi và K. Koyama đã kiểm tra
thuộc tính thời gian bằng mô hình Timed Petri Net. C. K. Fung và cộng sự đề
xuất mô hình theo dõi thông điệp để kiểm tra các thuộc tính QoS của tổ hợp.
5


Kiểm chứng kết hợp: H. Xiao và cộng sự kiểm chứng tổ hợp dựa trên việc mô
phỏng các thuộc tính phi chức năng của dịch vụ. M. Chen và cộng sự thực hiện
kiểm chứng dựa trên mô hình LTS và dùng LTL để biểu diễn các yêu cầu.
2.1.3 Nhận xét về các nghiên cứu hiện có
– Chưa có nghiên cứu nào thực hiện việc tổ hợp và kiểm chứng cùng lúc
– Việc kiểm chứng được thực hiện từ các lược đồ tổ hợp sẳn có và khó tích
hợp kiểm chứng các loại ràng buộc khác nhau
– Các nghiên cứu chưa đưa ra dạng đặc tả tổng quát, phù hợp cho dịch vụ
Web mà sử dụng các dạng trung gian sẳn có như BPEL, LTS, …
– Các nghiên cứu chỉ nêu phương pháp xử lý cho từng vấn đề cụ thể mà chưa
có sự kết hợp để tạo thành một nghiên cứu toàn diện, tổng thể
– Các nghiên cứu chưa giải quyết vấn đề bùng nổ trạng thái của bài toán tổ
hợp cũng như áp dụng tổ hợp đối với các kho dịch vụ có kích thước lớn.
2.2
2.2.1

Kiến thức nền tảng
Các phương pháp hình thức


Các phương pháp hình thức là các phương pháp được sử dụng cho việc đặc tả
và kiểm chứng hay kiểm tra (verifying) các hệ thống.
Đặc tả hình thức là một đặc tả được biểu diễn bằng một ngôn ngữ hình thức,
với bộ từ vựng, cú pháp và ngữ nghĩa được định nghĩa dựa trên các khái niệm
toán học như lý thuyết tập hợp, luận lý toán học và đại số.
Kiểm tra hình thức là quá trình kiểm tra xem thiết kế của một hệ thống có thoả
mãn một số ràng buộc trên các thuộc tính của hệ thống hay không. Kiểm tra
hình thức được chia làm hai nhánh chính là kiểm tra mô hình và chứng minh
định lý.
Kiểm tra mô hình là kỹ thuật kiểm tra xem thuộc tính mong muốn có thỏa trên
mô hình của hệ thống hay không. Điều kiện cần kiểm tra có thể được đặc tả bởi
các luận lý thời gian như luận lý thời gian tuyến tính (LTL).
Chứng minh định lý là quá trình tìm ra một chứng minh khẳng định rằng một
thuộc tính được suy luận ra từ tập tiên đề (thông qua tập các luật suy diễn).
6


2.2.2

Khai phá dữ liệu

Giới thiệu về khai phá dữ liệu
Khai phá dữ liệu là một phần của quá trình khám phá tri thức, nhằm mục đích
trích xuất các thông tin từ một tập dữ liệu lớn và chuyển chúng thành các cấu
trúc có thể hiểu được cho mục đích sử dụng sau này. Khai phá dữ liệu bao gồm
các vấn đề như phân loại dữ liệu, gom cụm dữ liệu và khai phá luật kết hợp.
Trong đó, gom cụm dữ liệu được sử dụng rộng rãi, nhất là trong lĩnh vực Big
Data.
Giới thiệu về phân tích gom cụm dữ liệu
Phân tích gom cụm (hay gọi đơn giản là gom cụm) là một kỹ thuật phân tích,

thăm dò dữ liệu nhằm phân loại các đối tượng dữ liệu thành các nhóm, hay các
cụm, và khám phá ra các kiến thức tiềm ẩn từ các cụm này.
Các phương pháp gom cụm dữ liệu
– Phương pháp gom cụm theo cách phân hoạch gồm các phương pháp là kmeans và k-medoids với các giải thuật như PAM, CLARA.
– Phương pháp gom cụm theo cách phân cấp có hai cách tiếp cận là từ dưới
lên và từ trên xuống với các giải thuật HAC, CURE, ROCK, Chameleon.
– Phương pháp gom cụm dựa trên mật độ gồm các giải thuật tiêu biểu như
DBSCAN, DENCLUE.
– Các phương pháp khác: gom cụm dựa trên lưới, dựa trên mô hình, dựa trên
mạng nơ ron nhân tạo, dựa trên giải thuật tiến hóa và gom cụm mờ.

2.2.3

Tìm kiếm dựa trên heuristic

Giới thiệu về tìm kiếm dựa trên heuristic và giải thuật A*
Heuristic trong bài toán tìm kiếm là sự ước lượng chi phí còn lại từ trạng thái
hiện hành đến trạng thái đích. Chi phí này được dùng để đánh giá và lựa chọn
trạng thái triển vọng để chuyển đến trong số các trạng thái có thể chuyển tiếp.
Tổng chi phí của một giải pháp mà nó đi qua trạng thái u sẽ là:
f(u) = g(u) + h(u)
Giải thuật tìm kiếm heuristic nổi bật nhất là giải thuật A*. Để đánh giá kết quả
tìm kiếm, A* sử dụng hàm tính chi phí như trong công thức (2.1).
7


Một số ứng dụng của tìm kiếm heuristic
- Bài toán lập kế hoạch
- Kiểm tra hệ thống tự động (Automated System Verification)
Các bài toán lập kế hoạch có thể được giải quyết thông qua bài toán kiểm tra

mô hình. Giả sử chúng ta cần lập kế hoạch thỏa mãn điều kiện g, kết quả của
việc lập kế hoạch này sẽ là một phản ví dụ khi thực hiện kiểm tra mô hình trên
hệ thống với thuộc tính cần kiểm tra được biểu diễn dưới dạng biểu thức LTL là
f=G(¬g).

8


CHƢƠNG 3

KHUNG THỨC TỔNG QUÁT TỔ HỢP THÀNH PHẦN

PHẦN MỀM TỰ ĐỘNG
Đặc tả hình thức tổng quát cho thành phần phần mềm

3.1
3.1.1

Đặc tả thành phần dựa trên luận lý bậc nhất

Luận lý bậc nhất (FOL) hay luận lý vị từ là một ngôn ngữ hình thức, là một
dạng mở rộng của luận lý mệnh đề với việc bổ sung các vị từ, lượng từ và các
biến. Do đó, FOL cho phép biểu diễn tri thức linh hoạt và nhỏ gọn hơn. Trong
khung thức đề xuất, chúng tôi sử dụng FOL để đặc tả các thành phần phần
mềm. Một thành phần phần mềm được xem như một hộp đen và gồm các thành
phần sau:
 Name là định danh của thành phần.
 Thẻ input chứa danh sách tham số đầu vào kèm theo kiểu dữ liệu của chúng.
 Thẻ output chứa danh sách tham số đầu ra kèm theo kiểu dữ liệu của chúng.
 Thẻ pre chứa biểu thức FOL mô tả tiền điều kiện của thành phần.

 Thẻ post chứa biểu thức FOL mô tả những tác động sau khi sử dụng thành
phần.
3.1.2

Tính độ tương tự giữa các thành phần dựa trên luận lý bậc nhất

Gọi Γ là tập các biểu thức FOL, T = {t1, ..., tm} là tập các ký hiệu (symbol) và
các mệnh đề (term) trong Γ, và c, p là hai biểu thức FOL trong Γ.
Định nghĩa 3-1 (Ma trận đặc trưng). Ma trận đặc trưng Φ là một ánh xạ
*

+

*

+, với:

(

)

{

Định nghĩa 3-2 (Vector đặc trưng). Cho ma trận đặc trưng Φ, gọi φc là vector
đặc trưng của biểu thức c∈Γ, φc có m thành phần, mỗi thành phần

được định

nghĩa:
=1


Φ(c,i) = 1

Định nghĩa 3-3 (Hàm phân loại). Với mỗi biểu thức p trong Γ, một hàm phân
loại (Cp(.)) cho biểu thức này được định nghĩa như sau:
9


Cp( ):
Hàm phân loại Cp(c) dùng để đo mức độ phù hợp của thành phần p so với yêu
cầu c. Để tính Cp(c), chúng ta tính góc lệch giữa hai vector đại diện của hai biểu
thức này, hoặc có thể áp dụng một phương pháp học máy như Naive Bayes.
3.2

Khung thức tổ hợp thành phần phần mềm tổng quát

Hình 3-1 mô tả kiến trúc tổng quát của khung thức, với ba thành phần chính là:
Thành phần xử lý giao diện người dùng: Cung cấp một giao diện trực quan và
thân thiện người dùng để người dùng thiết lập các yêu cầu và nhận kết quả trả
về.
Thành phần xử lý giao diện người dùng
Kết quả tổ hợp

Model checker/AI Planning

Gom cụm/ Mô hình xác suất/


Hình 3-1. Kiến trúc tổng quát của khung thức
Chức năng tổ hợp thành phần: Chức năng này có thể được thực hiện bằng cách

áp dụng kỹ thuật lập kế hoạch trí tuệ nhân tạo hoặc phương pháp kiểm tra mô
hình tùy vào từng yêu cầu hiện thực.
Chức năng lựa chọn thành phần: Chức năng này hoạt động như là bước tiền xử
lý của khung thức, giúp chúng ta lọc bớt ứng viên cho quá trình tổ hợp. Chức
năng lựa chọn thành phần có vai trò rất quan trọng, ảnh hưởng đến hiệu suất
10


của quá trình tổ hợp. Các kỹ thuật áp dụng trong việc lựa chọn thành phần phụ
thuộc vào tính chất, đặc trưng của từng loại thành phần.

11


CHƢƠNG 4

TỔ HỢP VÀ KIỂM CHỨNG TỔ HỢP DỊCH VỤ WEB

DỰA TRÊN KIỂM TRA MÔ HÌNH
Để tổ hợp dịch vụ Web thỏa các loại ràng buộc, đặc biệt là ràng buộc về quan
hệ thời gian, chúng tôi sử dụng phương pháp kiểm tra mô hình. Vì vậy, việc
đầu tiên là chúng ta cần phải xây dựng mô hình cho bài toán.
4.1

Xây dựng mô hình

4.1.1

Đặc tả hình thức cho dịch vụ Web


Để xây dựng mô hình cho bài toán tổ hợp dịch vụ Web, chúng ta phải biểu diễn
một cách hình thức cho từng dịch vụ.
Định nghĩa 4-1 (Dịch vụ Web). Một dịch vụ Web
(


là một bộ sáu,

), trong đó:
là tên định danh của

,

+ là tập thuộc tính chức năng đầu vào. Gọi ̃ là mệnh đề luận
lý đại diện của , ̃
nghĩa là thông tin về đã có và ngược lại.

*
+ là tập thuộc tính chức năng đầu ra. Gọi ̃ là mệnh đề luận
lý đại diện của , ̃
nghĩa là thông tin về đã có và ngược lại.





*

là biểu thức luận lý thể hiện cho tiền điều kiện của
̃ ̃

giao của tất cả các mệnh đề luận lý ̃ ,
là tập biểu thức mô tả cho tác động của
+ với



là phép gán,

.

.
̃

có dạng chuẩn
⋀ ̃.


có dạng *

: ̃ +.

được thể hiện đơn giản là *

là tập thuộc tính QoS, mỗi phần tử có dạng một cặp 〈

:

〉, với

name là tên của thuộc tính và value giá trị tương ứng.

Định nghĩa 4-2 (Hệ thống chuyển trạng thái có gán nhãn). Một hệ thống
chuyển trạng thái có gán nhãn (Labelled Transition System – LTS) là bộ năm:
= (V, S, s0, L, δ), với V là tập các biến, S là tập các trạng thái, s0 ∈ S là trạng
thái khởi đầu, L là tập các nhãn hành động, và δ: S × L → S là tập quan hệ
chuyển trạng thái. Một quan hệ (s, a, s') ∈ δ được ký hiệu là (s × a → s').

12


Một chuyển trạng thái có thể có tiền điều kiện (hay điều kiện đảm bảo – guard)
và tác động. LTS hỗ trợ các chuyển trạng thái như vậy được gọi là guarded
LTS.
Định nghĩa 4-3 (Hệ thống chuyển trạng thái có gán nhãn cho dịch vụ Web).
Cho tập dịch vụ Web WS = {

, …,

}, một hệ thống chuyển trạng thái có

gán nhãn cho dịch vụ Web (hay mô hình LTS4WS) của tập dịch vụ WS là một
= (V, {s0}, s0, L, δ), với V = (⋃ ) ⋃ (⋃
), {s0} là tập
trạng thái trong đó chỉ có một trạng thái s0, s0 là trạng thái khởi đầu, L= { ,
guarded LTS
…,

}, δ là một tập các quan hệ chuyển trạng thái, mỗi quan hệ chuyển trạng

thái có dạng [ ] s0 ×


→ s0 [ ].

Mô hình LTS4WS được trình bày một cách trực quan trong Hình 4-1. Trong
đó,

,

lần lượt là tiền điều kiện và tác động của dịch vụ X.

Hình 4-1. Ví dụ trực quan về mô hình LTS4WS
4.1.2

Tổ hợp và kiểm chứng tổ hợp dịch vụ Web dựa trên kiểm tra mô hình

Trong luận án này, chúng tôi sử dụng và mở rộng công cụ kiểm tra mô hình
PAT. Chi tiết về các mở rộng được chúng tôi trình bày trong Chương 5 và
Chương 6. Để áp dụng kiểm tra mô hình vào bài toán tổ hợp dịch vụ Web,
chúng ta thực hiện việc phủ định biểu thức LTL mô tả yêu cầu người dùng. Giả
sử yêu cầu người dùng được mô tả bởi biểu thức LTL g, kết quả tổ hợp sẽ là
một phản ví dụ khi thực hiện kiểm tra mô hình với biểu thức f = G(¬g). Khi đó,
bộ kiểm tra mô hình sẽ tìm trên không gian trạng thái được tạo ra từ mô hình
LTS4WS trạng thái vi phạm biểu thức f, nghĩa là thỏa biểu thức g.
13


4.2

Kết quả thực nghiệm

Để tiến hành thực nghiệm, chúng tôi sử dụng kho dịch vụ Web thực tế được lấy

từ dự án OWLS-TC. Từ tập dữ liệu này, chúng tôi chọn ra 5 tập con với số
lượng từ 20 đến 1000 dịch vụ như được trình bày trong Bảng 4-1.
Bảng 4-1. Tập dữ liệu thực nghiệm
Số lƣợng Mô tả
20
Các dịch vụ Web cung cấp các thông tin phục vụ cho
việc đặt chuyến du lịch.
50
Các dịch vụ Web cung cấp thông tin cho việc tìm
kiếm bệnh viện, tra cứu thuốc, phương pháp điều trị,

Education
100
Các dịch vụ Web cung cấp thông tin cho việc tìm
Services (EDS)
kiếm trường học, khóa học và các chương trình học
bổng.
Economy
200
Các dịch vụ Web cung cấp các thông tin về thực
Services (ECS)
phẩm, nhà hàng, món ăn và việc đặt món, ...
Global
1000
Gồm 1000 dịch vụ ngẫu nhiên lấy từ dự án OWLS-TC
Tập dữ liệu
Travel
Booking (TB)
Medical
Services (MS)


Để đánh giá và so sánh, chúng tôi tiến hành thực nghiệm với hai cách tiếp cận
là:
 Tổ hợp và kiểm chứng dựa trên lược đồ tổ hợp đầy đủ: Đây là cách tổ hợp
dựa trên các buộc chức năng, sau đó kiểm chứng lại với các ràng buộc khác.
 Tổ hợp và kiểm chứng on-the-fly: Đây là cách tiếp cận chúng tôi đề xuất,
trong đó việc tổ hợp và kiểm chứng được thực hiện cùng lúc.
Chúng tôi đo đạc 3 yếu tố ảnh hưởng đến hiệu suất của quá trình tổ hợp là: số
trạng thái được mở rộng, số trạng thái được duyệt và thời gian xử lý. Hình 4-2
là biểu đồ so sánh trực quan giữa các cách tiếp cận.
250,000
200,000
150,000
100,000
50,000
0
TB (20) MS (50) EDS (100) ECS (200)
Tổ hợp và kiểm chứng dựa trên lược đồ tổ hợp đầy đủ
Tổ hợp và kiểm chứng theo cách on-the-fly

14


Số trạng thái được mở rộng
250,000
200,000
150,000
100,000
50,000
0


250,000
200,000
150,000
100,000
50,000
0

TB (20) MS (50)

EDS
(100)

ECS
(200)

TB (20) MS (50)

Số trạng thái được duyệt

EDS
(100)

ECS
(200)

Thời gian xử lý (ms)

Hình 4-2. Biểu đồ so sánh trực quan giữa các cách tiếp cận
CHƢƠNG 5 KIỂM SOÁT BÙNG NỔ KHÔNG GIAN TRẠNG THÁI

CHO BÀI TOÁN TỔ HỢP DỊCH VỤ WEB
Bài toán tổ hợp nói chung là bài toán NP-hard nên bùng nổ không gian trạng
thái là vấn đề mà chúng ta phải đối mặt. Để kiểm soát vấn đề này, chúng tôi đề
xuất hai cách tiếp cận. Thứ nhất, chúng tôi áp dụng phương pháp tìm kiếm
heuristic vào kiểm tra mô hình, thay thế cách tìm kiếm vét cạn. Thứ hai, chúng
tôi áp dụng kỹ thuật lập chỉ mục dựa trên bit nhị phân cho thư viện dịch vụ
Web.
5.1
5.1.1

Tìm kiếm heuristic cho bài toán tổ hợp dịch vụ Web
Tìm kiếm trong kiểm tra mô hình

Kiểm tra mô hình nói chung và bộ kiểm tra mô hình PAT nói riêng sử dụng
chiến lược tìm kiếm vét cạn theo chiều rộng hoặc theo chiều sâu. Vì vậy, khi sử
dụng PAT, dựa vào tính chất của dịch vụ Web, chúng tôi đã đề xuất sử dụng
giải thuật tìm kiếm heuristic A* để cải tiến quá trình tìm kiếm, giúp có được lời
giải tối ưu và không phải vét cạn không gian trạng thái.
5.1.2

Các hàm xử lý tính toán

Tổng chi phí của một giải pháp – F(n)
Tổng chi phí của một giải pháp mà nó đi qua trạng thái n là:
F(n) =G(n) + H(n)
trong đó:

là các trọng số đánh giá tác động của từng loại chi phí, mặc định là 1.
 G(n) là chi phí thực đã trải qua, H(n) là chi phí ước lượng (heuristic).
Chi phí thực đã trải qua từ trạng thái khởi đầu đến trạng thái n – G(n)

15


( )

( )

( )

trong đó:
 G1(n) là hàm tính thực dựa trên các thuộc tính chức năng của dịch vụ.
 G2(n) là hàm tính thực chi phí ước lượng dựa trên các thuộc tính QoS.


là các trọng số tương ứng, thỏa điều kiện 0 ≤

,

,

≤ 1,

+

= 1.

Chi phí thực đã trải qua dựa trên các thuộc tính chức năng – G1(n)
( )
với k là số bước tổ hợp đã trải qua từ trạng thái khởi đầu đến trạng thái n.
Chi phí thực đã trải qua dựa trên các thuộc tính QoS – G2(n)

( ) ∑(

)
trong đó,


là trọng số của thuộc tính QoS thứ i.



là chi phí của thuộc tính chất lượng thứ i của trạng thái j.

Chi phí ước lượng từ trạng thái n đến trạng thái đích – H(n)
( )

(

(

)
(

( ))
)

Trong đó:
 funcvar(x) là tập thuộc tính chức năng đạt được (có giá trị là 1) ở trạng thái
x.
 diff(funcvar(goal), funcvar(n)) là số lượng thuộc tính chức năng mà trạng
thái n chưa thỏa yêu cầu (goal).

5.2
5.2.1

Lập chỉ mục dịch vụ Web dựa trên bit nhị phân
Giới thiệu

Tại mỗi bước tổ hợp, chúng ta cần mở rộng không gian trạng thái để tính chi
phí heuristic. Việc mở rộng mọi trạng thái này chỉ nên xem xét với các dịch vụ
có liên quan. Để biết được dịch vụ nào là có liên quan, trong phần này, chúng
tôi đề xuất kỹ thuật lập chỉ mục dựa trên bit nhị phân để lập chỉ mục các dịch
vụ Web.

16


5.2.2

Phương pháp thực hiện

Các vector nhị phân của dịch vụ Web và của yêu cầu tổ hợp
Định nghĩa 5-1 (Vector nhị phân của tập thuộc tính). Cho S là tập có thứ tự các
thuộc tính, gọi ∈ (S) là phần tử thứ i của S. Khi đó, vector nhị phân của một tập
con s của S được định nghĩa như sau:
,-

∈ ( )∈

{

Định nghĩa 5-2 (Cặp vector nhị phân của dịch vụ Web). Cặp vector nhị phân

của một dịch vụ Web là một bộ 〈

〉, với



là các vector nhị phân

tương ứng của tập thuộc tính chức năng đầu vào (vector đầu vào) và đầu ra
(vector đầu ra) của dịch vụ Web.



được định nghĩa như trong Định

nghĩa 5-1.
Tương tự, yêu cầu của người dùng cũng được thể hiện bởi một bộ gồm có hai
vector nhị phân, gọi là vector cung cấp và vector mục tiêu.
Lập chỉ mục dựa trên bit nhị phân cho tập dịch vụ Web
Bảng chỉ mục được xây dựng dựa trên vector đầu vào của các dịch vụ. Quá
trình này được trình bày như trong Giải thuật 5-1.
Giải thuật 5-1. Xây dựng bảng chỉ mục
Đầu vào: Một tập gồm có n dịch vụ Web
Đầu ra: Bảng chỉ mục
Bước 1. Xây dựng tập có thứ tự các thuộc tính chức năng – S
1: Xây dựng tập có thứ tự – S từ các thuộc tính chức năng của các dịch vụ
Bước 2. Khởi tạo bảng chỉ mục – T
2: for i chạy từ 0 đến S.size() − 1 do
3:
Tạo vector đơn vị vi với bit thứ i có giá trị là 1, các bit còn lại là 0

4:
T[i][0] ← vi
Bước 3. Cập nhật bảng chỉ mục
5: for each dịch vụ Web w trong kho lưu trữ do
6:
Xây dựng vector đầu vào –
và vector đầu ra –
của w
7:
for i chạy từ 0 đến T.size() − 1 do
8:
vi ← T[i][0]
9:
if vi ̅
≠ 0 then
// ̅ là phép toán AND nhị phân
10:
T[i][1].add(w)
11: return T
17


Lựa chọn các chỉ mục và lựa chọn các dịch vụ Web
Định nghĩa 5-3 (So trùng dựa trên bit nhị phân). Gọi V là vector cung cấp của
mục tiêu hiện hành, Vk là vector nhị phân đơn vị đại diện cho chỉ mục thứ k.
Phần tử chỉ mục thứ k so trùng được với mục tiêu hiện hành nếu:
V ̅ Vk = Vk
̅
Với là toán tử nhị phân AND.
Định nghĩa 5-4 (Vector tổ hợp). Gọi V là vector cung cấp của mục tiêu hiện

hành, Wk là dịch vụ Web được chọn để tổ hợp,
là vector nhị phân đầu ra
của Wk. Vector tổ hợp Vc cũng là một vector nhị phân và được tính theo công
thức sau:
Vc = V
Với là toán tử nhị phân OR.
Thu giảm số lượng dịch vụ Web được chọn
Định nghĩa 5-5 (Mối quan hệ chứa nhau giữa hai vector nhị phân). Gọi V và
là hai vector nhị phân.
V

được chứa trong vector V nếu:
=

Dịch vụ Web tổ hợp thỏa mãn mục tiêu
Quá trình tổ hợp dừng lại khi vector tổ hợp (Vc) chứa vector mục tiêu (Vg), hay:
Vc Vg = Vg
5.3

Kết quả thực nghiệm

Chúng tôi tiến hành thực nghiệm nghiên cứu của mình với tập dữ liệu thực lấy
từ dự án OWLS-TC với năm tập dữ liệu con như được trình bày trong Bảng
4-1.
Thực nghiệm được tiến hành dựa trên bốn hướng tiếp cận: tổ hợp và kiểm
chứng dựa trên lược đồ tổ hợp đầy đủ; tổ hợp và kiểm chúng theo cách on-thefly; tổ hợp và kiểm chứng theo cách on-the-fly có áp dụng tìm kiếm heuristic;
và cuối cùng là tổ hợp và kiểm chúng theo cách on-the-fly có áp dụng tìm kiếm
heuristic kết hợp lập chỉ mục dựa trên bit nhị phân. Kết quả thực nghiệm được
đánh giá theo ba thông số: số trạng thái được mở rộng, số trạng thái được
18



duyệt và thời gian thực thi. Kết quả thực nghiệm được trình bày trực quan trong
Hình 5-1.
Tổ hợp và kiểm chứng dựa trên
lược đồ tổ hợp đầy đủ

250,000
200,000

Tổ hợp và kiểm chứng theo cách
on-the-fly

150,000

Tổ hợp và kiểm chứng theo cách
on-the-fly có áp dụng tìm kiếm
heuristic

100,000
50,000
0
TB (20)

MS (50)

EDS (100)

ECS (200)


Tổ hợp và kiểm chứng theo cách
on-the-fly có áp dụng tìm kiếm
heuristic kết hợp lập chỉ mục dựa
trên bit nhị phân

(a) Số trạng thái được mở rộng
300,000

300,000

200,000

200,000

100,000

100,000

0

0
TB (20) MS (50) EDS
(100)

ECS
(200)

TB (20) MS (50) EDS
(100)


(b) Số trạng thái được duyệt

ECS
(200)

(c) Thời gian xử lý (ms)

Hình 5-1. Kết quả trực quan về kiểm soát bùng nổ không gian trạng thái

19


CHƢƠNG 6
6.1

GOM CỤM CÁC DỊCH VỤ WEB DỰA TRÊN LUẬN LÝ

Thí nghiệm động cơ

Chúng ta xét hai tình huống của yêu cầu người dùng như trong Bảng 6-1. Kết
quả tổ hợp trong từng tình huống và từng cách tiếp cận được cho trong Hình 61.
Bảng 6-1. Các tình huống đặt chuyến du lịch của người dùng
Loại ràng buộc
Ràng buộc chức năng:

(S1)
(S2)

Giá trị
Đầu vào: Dates, Sightseeing

Đầu ra: Price, HotelReservation
Đầu vào: Dates, Sightseeing
Đầu ra: Price, HotelReservation, Weather

(a) Mô hình và kết quả tổ hợp của cách gom cụm truyền thống cho tình huống S1

(b) Mô hình và kết quả tổ hợp của cách gom cụm truyền thống cho tình huống S1

Tình huống S1

Tình huống S2

(c) Mô hình và kết quả tổ hợp của cách gom cụm dựa trên luận lý cho cả 2 tình huống

Hình 6-1. Mô hình và không gian trạng thái của bài toán tổ hợp dịch vụ Web
20


Với cách gom cụm truyền thống thì với từng yêu cầu, chúng ta phải chọn cụm
và xây dựng mô hình (Hình 6-1(a) và Hình 6-1(b)). Kích thước không gian
trạng thái phụ thuộc vào số cụm được chọn. Cách tiếp cận gom cụm dựa trên
luận lý xây dựng mô hình từ tất cả các cụm. Việc chọn cụm diễn ra ở từng bước
tổ hợp dựa vào độ tương tự dựa trên luận lý giữa yêu cầu với biểu thức đại diện
của cụm. Như vậy, chúng ta chỉ gom cụm và xây dựng mô hình một lần cho
mọi yêu cầu. Nó cũng tạo ra không gian trạng thái nhỏ hơn cách truyền thống
(Hình 6-1(c)).
6.2

Gom cụm dịch vụ Web dựa trên luận lý


6.2.1

Biểu diễn luận lý của dịch vụ Web

Định

nghĩa
(

6-1

thức

(Biểu

luận



của

dịch

vụ

Web).

Gọi

) là một dịch vụ Web như trong Định nghĩa 4-1, biểu


thức luận lý của dịch vụ Web



) được định nghĩa như

(hay

sau:
̃
6.2.2

̃

̃

̃

̃

̃

Độ tương tự giữa các dịch vụ Web dựa trên luận lý

Độ tương tự dựa trên đặc trưng
Định nghĩa 6-2 (Thành phần giống nhau). Gọi f và g là hai biểu thức luận lý,
thành phần giống nhau ( ) của f và g được định nghĩa như sau:
*
∈ + *

∈ +
Gọi

là hệ số giống nhau giữa

và , chúng ta có:

Định nghĩa 6-3 (Thành phần khác biệt). Gọi
Thành phần khác biệt ( ) của
(

Gọi

là hệ số khác biệt giữa

)



là hai biểu thức luận lý.

được định nghĩa như sau:


(*

∈+

*


∈ +)

và , chúng ta có:

Định nghĩa 6-4 (Độ tương tự dựa trên đặc trưng). Cho
luận lý. Độ tương tự dựa trên đặc trưng của
sau:
21





là hai biểu thức

được tính theo công thức


(

)

(

)

Độ tương tự dựa trên luận lý
Để tính độ tương tự dựa trên luận lý, chúng tôi đưa ra khái niệm xấp xỉ trên
giữa hai biểu thức luận lý. Ý tưởng của phương pháp này là nếu hai biểu thức là
tương tự nhau thì xấp xỉ trên của chúng cũng sẽ tương tự với cả hai biểu thức

ban đầu.
Định nghĩa 6-5 (Xấp xỉ trên của hai biểu thức luận lý). Gọi
thức luận lý. Xấp xỉ trên của
Với

là hai biểu

được định nghĩa như sau:



gọi là phép toán xấp xỉ trên.

Định nghĩa 6-6 (Độ tương tự dựa trên luận lý giữa hai dịch vụ Web). Gọi
là hai dịch vụ Web,



là xấp xỉ trên của

,

,

là hai biểu thức luận lý đại diện của



, độ tương tự dựa trên luận lý giữa






được tính bởi công thức sau:
(
6.2.3

(

)

(

)

)

Gom cụm dịch vụ Web dựa trên luận lý
*

Định nghĩa 6-7 (Phần tử đại diện cụm). Gọi

+ là một cụm các

biểu thức luận lý đại diện cho các dịch vụ Web, phần tử đại diện cho cụm ,
được ký hiệu là ( ) cũng là một biểu thức luận lý được định nghĩa như sau:
( )
Với


( )

là phép toán đại diện cho mọi biểu thức

trong .

Định nghĩa 6-8 (Biểu thức luận lý đại diện cho mục tiêu tổ hợp). Gọi
tiêu tổ hợp trên các thuộc tính chức năng.

là mục

được mô tả bởi các thuộc tính do

người dùng cung cấp (input) và các thuộc tính mà người dùng muốn đạt được
(output). Gọi

,

là tập thuộc tính chức năng của input và output tương

ứng của , và biểu thức luận lý đại diện cho
(


)

được định nghĩa là:
(

)


Với ( ) là hàm tạo ra biểu thức luận lý dưới dạng chuẩn giao từ tập các thuộc
tính chức năng như đã định nghĩa trong Định nghĩa 6-1.
22


Gọi



là hai dịch vụ Web,

lượt là biểu thức luận lý đại diện cho
hợp được với



lần


. Điều kiện để



.

Định nghĩa 6-9 (Biểu thức luận lý đại diện cho tổ hợp). Gọi
từ




, ký hiệu



diện cho tổ hợp . Khi đó,
Với

có thể tổ

là tổ hợp kết quả

là biểu thức luận lý đại

,

được xây dựng theo công thức sau:

được gọi là phép toán tổ hợp luận lý.

Định nghĩa 6-10 (Tổ hợp dịch vụ Web thỏa mục tiêu). Gọi
vụ Web và mục tiêu của người dùng,
diện cho

. Điều kiện để tổ hợp

,




là tổ hợp dịch

lần lượt là biểu thức luận lý đại

thỏa mục tiêu , ký hiệu

, là:

{
6.2.4

Hướng tiếp cận gom cụm kiểm soát chất lượng cụm dịch vụ Web

Do kết quả của việc gom cụm sẽ ảnh hưởng đến hiệu suất của quá trình tổ hợp
sau này, nên chúng ta cần phải có độ đo để đánh về chất lượng của các cụm
được tạo ra. Trong nghiên cứu này, chúng tôi sử dụng độ đo về độ tương tự bên
trong cụm (intra-cluster similarity) để đo độ tương tự giữa các phần tử trong
một cụm.
Độ tương tự bên trong cụm
Định nghĩa 6-11 (Độ tương tự bên trong cụm). Gọi C là một cụm có m phần tử,
độ tương tự bên trong của cụm C (ký hiệu là

(C)) được tính theo công thức

sau:
(C) =






(

)



Phương pháp gom cụm kiểm soát chất lượng
Phương pháp k-means có ưu điểm là thời gian gom cụm nhanh nhưng lại nhạy
cảm với nhiễu và không thể đảm bảo chất lượng của các cụm được tạo ra.
Ngược lại, phương pháp HAC luôn tạo ra kết quả gom cụm tốt nhất có thể
nhưng lại có thời gian xử lý chậm với độ phức tạp O(n2). Từ những ưu và
23


nhược điểm này, chúng tôi đề xuất một phương pháp gom cụm kết hợp cả hai
phương pháp này, gọi là phương pháp gom cụm kiểm soát chất lượng. Ý tưởng
của phương pháp này là: Ban đầu, k-means được sử dụng để gom cụm với số
lượng cụm nhỏ. Sau đó, HAC sẽ được áp dụng trên các cụm này cho đến khi
đạt được các cụm mong muốn. Như vậy, đầu vào của HAC là các phần tử trong
từng cụm được k-means tạo ra, do đó nó sẽ tương đối nhỏ, điều này giúp cho
HAC chạy nhanh hơn. Hình 6-2 trình bày trực quan sự so sánh giữa phương
pháp HAC, k-means với phương pháp gom cụm kiểm soát chất lượng của
chúng tôi.

Gom cụm theo HAC

Gom cụm theo k-means

Gom cụm

kiểm soát chất lượng

Hình 6-2. Minh họa về cơ chế hoạt động của các phương pháp gom cụm
6.3

Kết quả thực nghiệm

Để kiểm chứng sự đúng đắn và hiệu quả của nghiên cứu, chúng tôi tiến hành
thực nghiệm nghiên cứu của mình với tập dữ liệu thực lấy từ dự án OWLS-TC,
gồm năm bộ dữ liệu như trong Bảng 4-1. Các kịch bản thực nghiệm dựa trên ba
hướng tiếp cận: không gom cụm, gom cụm dựa trên đặc trưng (đề xuất bởi
Kumara và cộng sự) và gom cụm dựa trên luận lý. Thực nghiệm được đánh giá
theo ba tiêu chí: số trạng thái mở rộng, số trạng thái được duyệt và thời gian
thực hiện. Kết quả thực nghiệm được trình bày trực quan trong Hình 6-3.

24


150,000

Không gom cụm

100,000

Gom cụm dựa trên
đặc trưng
Gom cụm dựa trên
luận lý

50,000

0
TB (20)

MS (50)

EDS (100) ECS (200)

(a) Số trạng thái được mở rộng
600

30,000

400

20,000

200

10,000

0

0
TB (20) MS (50)

EDS
(100)

ECS
(200)


TB (20) MS (50) EDS
(100)

ECS
(200)

(b) Số trạng thái được duyệt
(c) Thời gian xử lý (ms)
Hình 6-3. So sánh trực quan về hiệu suất tổ hợp với các trường hợp gom cụm
CHƢƠNG 7

CÔNG CỤ TỔ HỢP VÀ KIỂM CHỨNG TỔ HỢP DỊCH

VỤ WEB TỰ ĐỘNG WSCOVER
7.1

Chức năng của WSCOVER

Nhằm mục đích tổ hợp và kiểm chứng dịch vụ Web tự động và phù hợp với các
thư viện dịch vụ quy mô lớn, công cụ WSCOVER cung cấp các tính năng sau:

25


×