Hệ thống quản lý luồng công việc khoa học được sử dụng để quản lý những thử nghiệm khoa học này bằng cách che giấu các chi tiết khi thực thi luồng công việc trên các tài nguyên phân tán
Trang 1ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
KIỀU TUẤN DŨNG
BÀI TOÁN WORKFLOW SCHEDULING TRONG MÔI
TRƯỜNG ĐIỆNTOÁN ĐÁM MÂY
LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
Hà Nội – Năm 2012
Trang 2ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
KIỀU TUẤN DŨNG
BÀI TOÁN WORKFLOW SCHEDULING TRONG MÔI
TRƯỜNG ĐIỆNTOÁN ĐÁM MÂY
Chuyên ngành: Công nghệ phần mềm
LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
NGƯỜI HƯỚNG DẪN KHOA HỌC: TS PHẠM NGỌC HÙNG
Hà Nội – Năm 2012
Trang 3MỤC LỤC
TÓM TẮT i
LỜI CẢM ƠN iii
LỜI CAM ĐOAN iv
DANH MỤC HÌNH VẼ vi
DANH MỤC BẢNG vii
GIỚI THIỆU 1
CHƯƠNG 1: LẬP LỊCH WORKFLOW TRONG MÔI TRƯỜNG ĐIỆN TOÁN ĐÁM MÂY 3
1.1 Tổng quan về Điện toán đám mây 3
1.1.1 Định nghĩa về Điện toán đám mây 5
1.1.2 Năm đặc điểm thiết yếu của Điện toán đám mây 7
1.1.3 Các dịch vụ của Điện toán đám mây 8
1.1.4 Các mô hình triển khai của Điện toán đám mây 12
1.2 Workflow (Bussiness Process) 15
CHƯƠNG 2: PHƯƠNG PHÁP TỐI ƯU BẦY ĐÀN 19
2.1 Giới thiệu 19
2.2 Bầy đàn thông minh 19
2.3 PSO truyền thống 21
2.3.1 Định nghĩa 21
2.3.2 Mô tả thuật toán 24
2.3.3 Xây dựng giải thuật PSO 25
2.3.4 Tối ưu lựa chọn tham số cải tiến trong giải thuật PSO 27
CHƯƠNG 3: GIẢI THUẬT LẬP LỊCH HEURISTIC DỰA TỐI ƯU BẦY ĐÀN ĐỀ XUẤT 28
3.1 Bài toán lập lịch ứng dụng luồng công việc 28
3.1.1 Vấn đề lập lịch ứng dụng luồng công việc 28
3.1.2 Đặc tả vấn đề lập lịch hỗ trợ ứng dụng luồng công việc 28
3.2 Xử lý các dữ liệu bài toán dùng giải thuật PSO 31
3.3 Giải thuật Heuristic dựa PSO 32
CHƯƠNG 4 THỰC NGHIỆM 34
4.1 Cài đặt giải thuật PSO với ngôn ngữ Java 34
4.1.1 Sử dụng gói thư viện Jswarm-PSO 34
4.1.2 CloudSim - môi trường mô phỏng điện toán đám mây 35
4.2 Đánh giá thực nghiệm 38
4.2.1 Độ đo hiệu năng 38
4.2.2 Dữ liệu và thực hiện 38
4.3 Thực nghiệm và kết quả 42
CHƯƠNG 5: KẾT LUẬN 44
TÀI LIỆU THAM KHẢO 46
PHỤ LỤC 48
Trang 4DANH MỤC HÌNH VẼ
Hình 1 1: Sự phát triển của cloud computing từ clustering [1] 4
Hình 1 2: Mô hình điện toán đám mây 5
Hình 1 3: Các đặc điểm thiết yếu, các mô hình dịch vụ và các mô hình triển khai của Điện toán đám mây 6
Hình 1 4: Tài nguyên đi thuê của Software as a Service 8
Hình 1 5: Tài nguyên đi thuê của Platforms as a Service 10
Hình 1 6: Tài nguyên đi thuê của Infrastructures as a Service 12
Hình 1 7: Các mô hình triển khai Điện toán đám mây 13
Hình 1 8: Mô hình quy trình nghiệp vụ [14] 15
Hình 1 9: DAG biểu diễn một workflow [14] 16
Hình 2 1: Mô tả kiến tìm đường 20
Hình 2 2: Mô tả chim tìm đường 20
Hình 2 3: Bầy đàn với 10 cá thể trong không gian tìm kiếm 2 chiều 21
Hình 2 4: Quan hệ vị trí – vận tốc trong không gian 2 chiều 22
Hình 2 5: Một bầy đàn toàn cục và lân cận cục bộ[12] 23
Hình 2 6: Các topology lân cận đơn giản [12] 23
Hình 2 7:Chuyển động của cá thể 26
Hình 3 1: Một workflow ví dụ 29
Hình 3 2: Ví dụ về một cá thể PSO 31
Hình 3 3: Ví dụ về một cá thể PSO 31
Hình 4 1: Kiến trúc lõi của CloudSim 37
Hình 4 2: Biểu đồ so sánh kết quả thực nghiệm workflow sau 30 lần chạy 40
Hình 4 3:Biểu đồ so sánh kết quả thực nghiệm workflow với giá trị w tăng dần từ 0.15 đến 0.95 sau mỗi 05 lần chạy 41
Trang 5DANH MỤC BẢNG
Bảng 1 1: Một số nhà cung cấp Softwares as a Service 9
Bảng 1 2: Một số nhà cung cấp dịch vụ PaaS 11
Bảng 3 1: Chi phí thực thi của mỗi Ti trên các PCj [6] 30
Bảng 3 2: Chi phí truyền thông giữa các PCj [6] 30
Bảng 3 3: Kích thước input/output của Task i 30
Bảng 4 1:Kết quả tính toán chi phí thực thi workflow sau 30 lần chạy 39
Bảng 4 2: Kết quả tính toán chi phí thực thi workflow sau 5 lần chạy với giá trị w chạy tăng dần từ 0.15 – 0.95 41
Trang 6GIỚI THIỆU
Mô hình hợp tác ở nhiều thử nghiệm khoa học trong nhiều lĩnh vực như sinh học cấu trúc, vật lý năng lượng cao, khoa học thần kinh liên quan đến việc sử dụng các nguồn dữ liệu phân tán Kết quả, việc phân tích các tập dữ liệu này được biểu diễn và cấu trúc hóa như là các luồng công việc (workflow) khoa học Những luồng công việc khoa học này thường cần phải xử lý lượng dữ liệu rất lớn và các hoạt động tính toán chuyên sâu Hệ thống quản lý luồng công việc khoa học được sử dụng để quản lý những thử nghiệm khoa học này bằng cách che giấu các chi tiết khi thực thi luồng công việc trên các tài nguyên phân tán được cung cấp bởi các nhà cung cấp dịch vụ đám mây
Điện toán đám mây (cloud computing) là một mô hình mới cho tính toán phân tán
mà cung cấp hạ tầng, nền tảng và phần mềm (các ứng dụng) như là các dịch vụ Các dịch vụ này được tạo sẵn như là các dịch vụ thuê bao (trả phí cho những gì mình sử dụng) dành cho các khách hàng Điện toán đám mây giúp cung cấp linh hoạt nhiều tài nguyên tính toán cho các ứng dụng của khách hàng ở vị trí xác định (US ở amazon là một ví dụ 1
) dựa trên các yêu cầu của họ Cũng như vậy, các ứng dụng có thể lựa chọn
vị trí lưu trữ để lưu trữ các dữ liệu (Amazon S3 2) ở các vị trí toàn cầu Để đạt được hiệu quả tính toán và chi phí hiệu quả lập lịch công việc (task) và dữ liệu của ứng dụng trong môi trường điện toán đám mây, bộ lập lịch phải có các chính sách lập lịch khác nhau thay đổi theo hàm mục tiêu: tối thiểu tổng thời gian thực thi, tối thiểu tổng chi phí thực thi, cân bằng tải trên tài nguyên được sử dụng khi gặp ràng buộc deadline của ứng dụng, v.v Luận văn này tập trung vào nghiên cứu tối thiểu tổng chi phí thực thi của ứng dụng trên các tài nguyên được cung cấp bởi các nhà cung cấp dịch vụ đám mây, như Amazon và GoGrid 3
Luận văn đạt được điều này bằng cách sử dụng một phương pháp meta-heuristic được gọi là tối ưu bầy đàn (Particle Swarm Optimization – PSO)
PSO là một kỹ thuật tìm kiếm tối ưu toàn cục bộ tự thích nghi được giới thiệu bởi Kennedy và Eberhart [5] Giải thuật tương tự các giải thuật dựa vào quần thể khác như giải thuật di truyền nhưng nó không có sự tổ hợp lại của các tác nhân trong quần thể Thay vào đó, nó dựa trên ứng xử xã hội của các cá thể Trong mỗi thế hệ, mỗi cá thể tự điều chỉnh quỹ đạo dựa trên vị trí tốt nhất của nó (local best) và vị trí của cá thể tốt nhất (global best) trong cả quần thể Khái niệm này làm tăng tính tự nhiên của các cá thể và nhanh chóng đạt tới giá trị tối ưu toàn cục với giải pháp tốt nhất
PSO trở nên phổ biến, phát triển và trở thành hướng nghiên cứu rộng rãi trong nhiều ứng dụng trong những năm gần đây bởi tính đơn giản mà hiệu quả của nó với
Trang 7chi phí thấp Một số ứng dụng đã sử dụng PSO: vấn đề điều khiển phản ứng điện áp (reactive voltage control problem), khai phá dữ liệu, kỹ thuật hóa học, nhận dạng mẫu,
và kỹ thuật môi trường PSO cũng được ứng dụng để giải quyết các vấn đề NP-Hard như lập lịch và phân bổ công việc
Những kết quả chính của luận văn này là:
Xây dựng một mô hình phân bổ công việc (task) trên tập tài nguyên (resource), tức là phân bổ các công việc tới các tài nguyên tính toán để xử lý sao cho chi phí thực thi là tối thiểu
Đề xuất một giải thuật heuristic mới theo kiểu PSO để giải quyết vấn đề phân bổ công việc – tài nguyên dựa trên mô hình đề xuất
Tiến hành kiểm chứng thuật toán đề xuất bằng thực nghiệm
Luận văn được cấu trúc như sau: chương 1 trình bày tổng quan về điện toán đám mây, các khái niệm và sự cần thiết của việc thực thi workflow trong môi trường điện toán đám mây Chương 2 trình bày các khái niệm về phương pháp tối ưu bày đàn PSO và cách xây dựng giải thuật PSO để giải quyết các bài toán tối ưu Bài toán lập lịch luồng công việc (workflow scheduling) được phát biểu ở phần đầu chương 3 cùng với các ràng buộc của nó Phần chính của chương 3, đồng thời cũng là nội dung chính của luận văn, là phần đề xuất thuật toán mới theo chiến lược PSO nhằm giải quyết bài toán phân bổ công việc – tài nguyên dựa trên mô hình đã đề xuất Để kiểm chứng hiệu quả của thuật toán đề xuất, chương 4 sẽ trình bày các bước cài đặt, quá trình tiến hành và bảng số liệu thử nghiệm cùng với những phân tích Phần cuối của luận văn nhằm tổng kết lại các kết quả đã đạt được và nêu những dự định nghiên cứu tiếp theo
Trang 8CHƯƠNG 1: LẬP LỊCH WORKFLOW TRONG MÔI TRƯỜNG ĐIỆN TOÁN ĐÁM MÂY
1.1 Tổng quan về Điện toán đám mây
Từ năm 2015 sẽ có khoảng 15 tỉ thiết bị kết nối đến internet 4và hầu hết đó là những thiết bị thông minh ví dụ như note book, netbook, điện thoại thông minh, ô tô thông minh và thậm chí là cả những chiếc ti vi thông minh tất cả chúng đều kết nối đến internet vì thế cần phải có một giải pháp sao cho linh hoạt để đáp ứng được những dịch vụ cho hàng loạt những thiết bị Điện toán đám mây là một mô hình đáp ứng được các yêu cầu đặt ra Theo dự báo của Intel thì giá trị thị trường dịch vụ của điện toán đám mây có thể đạt tới con số 43 tỉ đô la Mỹ vào năm 2012 và khẳng định trong vòng 3 năm tới dịch vụ điện toán đám mây có thể đạt tới mức tăng trưởng gộp hằng năm là 27% một con số cực kỳ ấn tượng cao gấp năm lần so với dịch vụ truyền thống khác trong lĩnh vực IT Tại Việt Nam, IBM là doanh nghiệp tiên phong trong khai trương trung tâm điện toán đám mây đầu tiên vào tháng 9 năm 2008 với khách hàng đầu tiên là Công ty cổ phần công nghệ và truyền thông Việt Nam Còn Microsoft trong tháng 5 vừa qua đã chính thức ký kết biên bản ghi nhớ với tập đoàn FPT nhằm thúc đẩy Điện toán đám mây tại Việt Nam
Sự phát triển của Điện toán đám mây được sơ đồ hóa theo như Hình 1.1 dưới đây:
mở đầu là công nghệ Clustering xuất phát từ nhu cầu đảm bảo hoạt động cho máy chủ
và hệ thống mạng, clustering cho phép sử dụng nhiều máy chủ kết hợp với nhau tạo một cụm (cluster) có độ tin cậy cao (giảm thiểu khả năng rủi ro), có khả năng chịu đựng và chấp nhận các sai sót Grid Computing, một hệ thống phân tán được bố trí song song, tận dụng mọi nguồn tài nguyên độc lập và rải rác về mặt địa lý, gần giống như Clustering, ra đời để giải quyết các bài toán lớn không giới hạn về mặt không gian địa lý và nền tảng hệ điều hành Theo sau đó lại là nhu cầu tính toán cao với mục đích tiết kiệm phi phí, tính toán theo nhu cầu (utility computing) Người sử dụng chỉ phải trả chi phí cho những gì mà họ sử dụng giống như trả tiền theo hóa đơn điện, nước hàng tháng Nhu cầu thuê phần cứng và trả tiền cho những gì mình sử dụng đã chuyển tiếp sang mô hình đi thuê phần mềm có trả phí Người sử dụng không cần phải đầu tư nhiều phần mềm, khi nào cần sử dụng họ sẽ thuê của nhà cung cấp và trả phí theo dịch
vụ Và cuối cùng, điện toán đám mây là tổng hợp toàn bộ các nhu cầu, tiện ích và các dịch vụ mà các mô hình trước đem lại Tất cả các tài nguyên (phần cứng, phần mềm) đều được sử dụng như là một dịch vụ, sẵn sàng đáp ứng mọi lúc, mọi nơi với chi phí hợp lý
4
Theo www.xahoithongtin.com.vn
Trang 9Sự phát triển của công nghệ tính toán và hình thành Điện toán đám mây
Hình 1 1: Sự phát triển của cloud computing từ clustering [1]
Tính toán phân cụm
(Clustering)
Tính toán hiệu năng cao
Máy tính trao đổi qua
các giao thức
Điện toán lưới (Grid Computing)
Các phân cụm độc lập liên kết với nhau
Tính toán song song cho các bài toán lớn
Điện toán theo nhu cầu (Utility Computing)
Dịch vụ cung cấp các tài nguyên tính toán
Dịch vụ phần mềm
(SaaS)
Dịch vụ cho thuê các ứng dụng qua mạng Internet
Điện toán đám mây (Cloud Computing)
Trang 10Ý tưởng nền tảng của Điện toán đám mây đã phát triển từ khá lâu trên thế giới nhưng cho đến gần đây cùng với sự bùng nổ của Internet và công nghệ mạng cũng như nhu cầu của thị trường các tên tuổi lớn trên thế giới mới bắt đầu đưa những ý tưởng trở thành những ứng dụng thật tại thị trường Việt Nam
1.1.1 Định nghĩa về Điện toán đám mây
Theo NIST [2], “Điện toán đám mây là mô hình cho phép ở mọi nơi, một cách thuận tiện, truy cập theo nhu cầu các tài nguyên tính toán (mạng, máy chủ, lưu trữ, các ứng dụng, các dịch vụ, v.v) mà có thể nhanh chóng cung cấp và từ chối với nỗ lực tối thiểu quản lý và tương tác với nhà cung cấp dịch vụ Mô hình đám mây gồm năm đặc điểm thiết yếu, ba mô hình dịch vụ và ba mô hình triển khai thực hiện”
Ví dụ: dịch vụ Google AppEngine cung cấp những ứng dụng kinh doanh trực tuyến thông thường, có thể truy nhập từ một trình duyệt web, còn các phần mềm và dữ liệu đều được lưu trữ trên các máy chủ Hình 1.2 bên trên cho thấy mô hình tổng quát
về đám mây và các nhà cung cấp dịch vụ đám mây lớn trên thế giới như: Microsoft, Google, Amazon …
Hình 1 2: Mô hình điện toán đám mây
Điện toán đám mây là một mô hình sử dụng các tài nguyên điện toán dựa trên internet để cung cấp theo nhu cầu có khả năng thay đổi cho người sử dụng, mà người
Trang 11sử dụng sẽ chỉ phải trả chi phí cho mức độ sử dụng nhờ đó nhà cung cấp tận dụng được tối đa tài nguyên hiện có và người sử dụng tích kiệm được chi phí đầu tư cơ sở
hạ tầng ban đầu, linh hoạt hơn khi mở rộng phạm vi hoạt động và do đó có thể tập trung vào mục đích chính là các hoạt động sản xuất kinh doanh
Bằng cách sử dụng Điện toán đám mây mà các doanh nghiệp không cần phải mua
và duy trì hàng trăm, thậm chí là hàng nghìn máy tính cũng như phần mềm Họ chỉ cần tập trung vào sản xuất bởi vì đã có người khác lo cơ sở hạ tầng Theo định nghĩa của NIST, có năm đặc điểm thiết yếu làm nên điện toán đám mây bao gồm:
- Tự phục vụ theo nhu cầu (On-demand Self Service),
- Việc sử dụng các tài nguyên cho thuê được quản lý và theo dõi chính xác (Measured Service),
- Khách hàng dễ dàng thay đổi qui mô dịch vụ (Rapid Elasticity),
- Hệ thống tài nguyên phong phú với quy mô lớn (Broad Network Access)
- Tổng hợp tài nguyên (Resource Pooling);
Ba mô hình dịch vụ của điện toán đám mây bao gồm: dịch vụ phần mềm (Software as
a services – SaaS), dịch vụ nền (Platform as a services – PaaS) và dịch vụ hạ tầng (Infrastructure as a services – IaaS); Ba mô hình triển khai bao gồm: mô hình đám mây công cộng (Public Cloud), mô hình đám mây riêng (Private Cloud) và mô hình đám mây lai (Hybrid Cloud) Các đặc điểm, các mô hình dịch vụ và mô hình triển khai được sơ đồ hóa trên Hình 1.3 dưới đây:
Hình 1 3: Các đặc điểm thiết yếu, các mô hình dịch vụ và các mô hình triển khai của
Điện toán đám mây
Trang 121.1.2 Năm đặc điểm thiết yếu của Điện toán đám mây
Tự phục vụ theo nhu cầu (On-demand Self Service): các dịch vụ máy tính như
email, các ứng dụng, mạng hoặc dịch vụ máy chủ có thể được cung cấp mà không yêu cầu con người tương tác với nhà cung cấp dịch vụ Một số nhà cung cấp dịch vụ điện toán đám mây dựa trên nhu cầu bao gồm: Amazon Web Services (AWS), Microsoft, Google, IBM và Saleforces.com
Hệ thống tài nguyên phong phú với quy mô lớn (Broad Network Access): khả
năng sẵn có trên mạng, truy cập theo chuẩn từ xa với mọi thiết bị (điện thoại di động, máy tính bảng, máy tính xách tay, máy trạm, v.v)
Tổng hợp tài nguyên (Resource Pooling): tài nguyên tính toán của nhà cung cấp
dịch vụ được gộp lại với nhau để phục vụ cùng lúc nhiều khách hàng giống như mô hình nhiều người thuê nhà, với các tài nguyên vật lý và tài nguyên ảo hóa được cấp phát động phân phối và tái phân phối theo nhu cầu của khách hàng
Khách hàng dễ dàng thay đổi qui mô dịch vụ: dịch vụ điện toán đám mây có thể
được nhanh chóng và cung cấp một cách linh hoạt, trong một số trường hợp tự động hóa, nó nhanh chóng được mở rộng để đáp ứng nhu cầu khách hàng Đối với khách hàng, khả năng này có thể cung cấp thường xuyên không giới hạn và có thể đăng ký dịch vụ ở bất cứ thời điểm nào, ở bất cứ nơi đâu với số lượng bất kỳ
Theo dõi và quản lý các tài nguyên cho thuê (Meassured Service): vấn đề sử
dụng các tài nguyên điện toán đám mây có thể được đo lường mức độ sử dụng, được kiểm soát và được cung cấp các báo cáo minh bạch cho cả nhà cung cấp dịch vụ và khách hàng như một dịch vụ tiện ích cho phép kiểm soát và tối ưu hóa việc sử dụng tài nguyên Nó giống như việc sử dụng các dịch vụ điện, nước, ga ở các đô thị…,
khách hàng phải trả phí cho các mỗi đơn vị mà họ sử dụng dịch vụ đó – pay per use
Cũng giống như các công ty bán điện cho các hộ sản xuất kinh doanh, các hộ gia đình, các công ty điện thoại bán các dịch vụ thoại và dữ liệu thì các dịch vụ trong lĩnh vực công nghệ thông tin như quản lý bảo mật mạng, lưu trữ dữ liệu … cũng có thể được cung cấp như là hợp đồng dịch vụ
Năm đặc tính này có ý nghĩa gì?
Đứng ở góc độ của một nhà phát triển: điện toán đám mây cho phép linh hoạt
cung cấp các nội dung tích hợp, các ứng dụng, các dịch vụ cho bất cứ thiết bị nào, ở bất cứ nơi đâu, bất cứ thời điểm nào, trong một mô hình hoàn hảo có khả năng mở rộng, sử dụng và trả phí cho các tài nguyên mà khách hàng cần và khi khách hàng cần
Trang 13Đứng ở góc độ của công nghệ thông tin: điện toán đám mây cho phép các tổ chức
giải phóng mình ra khỏi nỗi lo về việc mua sắm và phân bổ các phần cứng đắt tiền, các phần mềm, các tài nguyên mạng hoặc đội ngũ nhân viên công nghệ thông tin lớn để quản lý và hỗ trợ hạ tầng
Đứng ở góc độ kinh doanh: điện toán đám mây cho phép các nhà cung cấp phục
vụ mọi doanh nghiệp có quy mô khác nhau, đặc biệt là các doanh nghiệp vừa và nhỏ
1.1.3 Các dịch vụ của Điện toán đám mây
Theo NIST [2], dịch vụ của Điện toán đám mây hiện nay được chia làm 3 loại dịch vụ khác nhau bao gồm:
Softwares as a Services – SaaS: Người dùng sẽ không cần phải cài đặt trực
tiếp phần mềm với mô hình này của Điện toán đám mây Dễ dàng sử dụng các dịch vụ như là phần mềm được cài đặt trực tiếp trên máy tính thông qua trình duyệt (tài
nguyên đi thuê là lớp ứng dụng trong hình 1.4): ví dụ như Google Docs Toàn bộ dữ
liệu sẽ được xử lý trên các trung tâm tính toán của nhà cung cấp dịch vụ điện toán đám
mây
Hình 1 4: Tài nguyên đi thuê của Software as a Service
Trang 14Phần mềm hoạt động như một dịch vụ , hoạt động trên nền tảng Internet được quản lý bởi nhà cung cấp dịch vụ cho người sử dụng có thể truy cập từ xa bằng bất cứ thiết bị nào có thể kết nối đến Internet Khách hàng có thể lựa chọn phần mềm hay ứng dụng nào phù hợp với nhu cầu sử dụng và chạy ứng dụng đó trên cơ sở hạ tầng Cloud.Người dùng không cần phải quan tâm đến quản lý tài nguyên bên dưới bao gồm mạng, thiết
bị lưu trữ, hệ điều hành, máy chủ, công cụ lưu trữ, môi trường phát triển ứng dụng v.v… Tất cả sẽ do nhà cung cấp dịch vụ quản lý và kiểm soát để đảm bảo ứng dụng luôn sẵn sàng và hoạt động ổn định
Bảng 1 1: Một số nhà cung cấp Softwares as a Service
Microsoft Microsoft Online Services Exchange Online
Sharepoint Online Dynamics CRM Online Office Live Meeting Office Communications Online Salesforce.com SalesForce CRM Sales
Marketings Services Partners
Lotus Live Connections LotusLive Meetings LotusLive Events LotusLive iNotes LotusLive Notes
Vấn đề lựa chọn dịch vụ của nhà cung cấp nào cũng như là một thách thức đặt
ra cho các khách hàng Theo bảng 1.1 ở trên, chúng ta có thể thấy một số dịch vụ cạnh tranh với nhau: dịch vụ Email cho doanh nghiệp cung cấp qua Internet (Microsoft Exchange Online của Microsoft, Google Mail của Google, LotusLive iNotes của IBM), hệ quản trị quan hệ khách hàng và bán hàng online (Dynamic CRM Online của Microsoft, SalesForce CRM), ứng dụng hội thảo web trực tuyến (Office Live Meeting, LotusLive Meeting), dịch vụ phần mềm truyền thông hợp nhất trực tuyến (Office Communication Online với phiên bản mới Lync Online được tích hợp trong bộ Office
365 của Microsoft cạnh tranh với tính năng của dịch vụ Google App) cho phép làm việc chung và chỉnh sửa tài liệu cùng lúc với nhau
Trang 15Platforms as a Service – PaaS: Môi trường PaaS cung cấp sức mạnh điện toán bằng việc cung cấp môi trường chạy cho ứng dụng Đặc điểm của PaaS: bị phụ thuộc
vào nền tảng của nhà cung cấp
Hình 1 5: Tài nguyên đi thuê của Platforms as a Service
Theo Hình 1.5 dưới, ta nhận thấy PaaS là lớp giữa trung chuyển của các hệ thống hạ tầng cơ bản (hệ điều hành, mạng, lưu trữ .) và phần mềm ứng dụng bao gồm: các chức năng của kho chứa ứng dụng, công cụ phát triển ứng dụng, hệ thống quản lý cơ
sở dữ liệu, môi giới tích hợp, cổng thông tin, quản lý quy trình kinh doanh được cung cấp như là dịch vụ
Ba nhà cung cấp lớn nhất PaaS hiện nay là Google, Microsoft và Salesforce.com với một số dịch vụ thuộc nền tảng này được liệt kê trong Bảng 1.2 bên dưới Ví dụ điển hình của PaaS là Google App Engine (GAE) là nền tảng cho phép phát triển các ứng dụng web và triển khai trên cơ sở hạ tầng của Google Hiện tại GAE hỗ trợ phát triển các ứng dụng web bằng hai ngôn ngữ Python và Java Ngoài GAE, còn có một số nền tảng khác đang là đối thủ cạnh tranh mạnh mẽ như Force.com của Salesforce.com hay Windows Azure của Microsoft được phát triển để mang đến cho cộng đồng các nhà phát triển ứng dụng cơ hội được xây dựng và cung cấp các dịch vụ trực tuyến trên nền tảng cơ sở hạ tầng Windows
Trang 16Datastore (Java, Python), Google Accounts (Java,
Python), Image Manipulation (Java,
Python), Mail (Java, Python), Memcache (Java, Python), URL Fetch (Java, Python) Microsoft Azure Services
Platform
Window Azure Access Control Services,
SQL Services, Workflow Services,
Service Bus, Live Services Salesforce.com Force.com Apex Code for
Business Logic
Database Services, Web Services APIs
Infrastructures as a Services – IaaS: Nhà cung cấp dịch vụ điện toán đám
mây sẽ cho thuê cơ sở hạ tầng như là một dịch vụ: tập các tài nguyên vật lí như các máy chủ, các thiết bị mạng và các đĩa lưu trữ được đưa ra như là các dịch vụ cung cấp cho khách hàng để khách hàng có thể phát triển và chạy các phần mềm của mình (bao gồm cả hệ điều hành và ứng dụng) Khách hàng không cần phải quan tâm đến những vấn đề như mua bán bảo trì thiết bị hay khấu hao tài nguyên qua thời gian sử dụng Đặc điểm của IaaS là các hệ điều hành ở đây được triển khai trên các máy ảo (bản chất của Điện toán đám mây) và hệ điều hành được tải lên các máy ảo của nhà cung cấp dịch vụ nơi mà khách hàng có thể sử dụng các tài nguyên lưu trữ, tính toán của nhà cung cấp.IaaS mềm dẻo và có khả năng tùy biến theo kiến trúc cơ sở hạ tầng thay đổi.Hình 1.6 dưới đây cho thấy các sản phẩm IaaS là các cơ sở hạ tầng: tài nguyên lưu trữ, tài nguyên mạng, v.v Khi khách hàng có nhu cầu thuê một máy với cấu hình do bạn
đề ra (Vídụ: 4 core, ram 2G, ổ cứng 80G) thì sẽ có các nhà cung cấp đáp ứng vấn đề này, họ sẽ trích xuất mỗi thứ một ít để tạo nên máy ảo đáp ứng nhu cầu khách hàng Như vậy, cùng một nền tảng phần cứng có thể chia sẻ cho nhiều khách hàng để phục
Trang 17vụ nhiều nhu cầu khác nhau Các máy ảo này chƣa cài đặt bất cứ ứng dụng nào, nó giống nhƣ một chiếc máy tính mới mua, khách hàng sẽ truy cập từ xa thông qua mạng Internet hoặc sử dụng các cơ chế đăng nhập từ xa để tự cài đặt Nếu khách hàng muốn
sử dụng sẵn nền tảng, họ sẽ đăng ký sử dụng các dịch vụ của PaaS
Hình 1 6: Tài nguyên đi thuê của Infrastructures as a Service
1.1.4 Các mô hình triển khai của Điện toán đám mây
Theo NIST [2], các mô hình triển khai của điện toán đám mây bao gồm: đám mây công cộng (Public Cloud), đám mây riêng (Private Cloud) và đám mây lai (Hybrid Cloud):
Trang 18Hình 1 7: Các mô hình triển khai Điện toán đám mây
Mô tả trên hình 1.7 cho thấy khu vực Enterprise là khu vực riêng của doanh nghiệp sẽ
do doanh nghiệp chịu trách nhiệm thiết lập và quản lý sử dụng hệ thống mạng Intranet nội bộ mà không đưa ra bên ngoài Thường dùng để quản lý và bảo mật dữ liệu riêng
tư Các nghiệp vụ cơ bản và không cần bảo mật thì có thể xử lý bên ngoài đám mây công cộng để giảm thiểu chi phí và độ phức tạp quản lý
Đám mây công cộng (Public Cloud): Được các nhà cung cấp dịch vụ quảng
bá cho toàn thể người sử dụng với phần lớn là các sản phẩm phi thương mại với cộng đồng người sử dụng không phân biệt khác hàng là cá nhân hay tổ chức, doanh nghiệp
và một đặc điểm của Public Cloud là nhà cung cấp đám mây chịu trách nhiệm về cài đặt, quản lý, cung cấp và bảo trì Khách hàng chỉ chịu phí cho các tài nguyên mà họ
thực sử sử dụng
Ví dụ: ứng dụng Google Mail Các công ty, tổ chức, cá nhân có thể đăng ký sử
dụng dịch vụ Google Mail với một tài khoản miễn phí (đối với cá nhân) cùng với một dung lượng lưu trữ nhất định, hoặc với một số tài khoản miễn phí hạn chế (đối với công ty) Nếu công ty có số lượng nhân viên lớn (số tài khoản email) cần cấp lớn thì
họ bắt buộc phải đăng ký dịch vụ với Google và phải trả phí
Trang 19Đám mây riêng (Private Cloud): có các đặc điểm đám mây riêng được cung cấp
cho tổ chức, doanh nghiệp là duy nhất.Doanh nghiệp có trách nhiệm thiết lập và bảo trì
hệ thống đám mây này hoặc doanh nghiệp có thể thuê một nhà cung cấp dịch vụ đảm nhiệm thêm công việc này vì vậy mang lại sự an toàn và sự tin cậy đáng kể cho dữ liệu của công ty.Chi phí mà doanh nghiệp bỏ ra để đầu tư sẽ lớn hơn rất nhiều so với mô hình public.Doanh nghiệp hoàn toàn chủ động được việc cấu hình và thay đổi hệ thống, cài đặt những chương trình, ứng dụng, phần mềm cần thiết và riêng biệt cho tổ
chức
Đám mây lai (Hybrid Cloud): có đặc điểm là một sự kết hợp của các đám mây công cộng và riêng Đám mây lai sử dụng các dịch vụ có trong cả không gian công cộng và riêng Các doanh nghiệp sẽ đi thuê các dịch vụ Public Cloud để giải quyết và
xử lý các chức năng nghiệp vụ và dữ liệu không quá quan trọng, họ sẽ giữ lại những
chức năng nghiệp vụ và dữ liệu quan trọng trong tầm kiểm soát của đám mây riêng
1.1.5 Lợi ích và hạn chế của Điện toán đám mây
Lợi ích của Điện toán đám mây:
Giảm thiểu chi phí: chi phí giao dịch thấp, giảm thiểu tối đa đầu tư vào phần cứng,
giảm thiểu việc đầu tư vào đội ngũ quản trị công nghệ thông tin
Khả năng mở rộng: các doanh nghiệp sử dịch dịch vụ điện toán đám mây chỉ phải
trả cho những gì họ sử dụng, do vậy, ban đầu họ có thể đăng ký thuê dịch vụ với mức hợp lý, khi phát triển, họ có thể mở rộng nhu cầu và có thể yêu cầu dịch vụ nhiều hơn
Linh hoạt và Dễ dàng hợp tác: các nhân viên của công ty, doanh nghiệp có thể truy
cập mọi lúc, mọi nơi với một thiết bị truy cập internet, vì vậy, họ vẫn có thể làm việc, trao đổi với nhau ở các địa điểm xa xôi
Hạn chế của Điện toán đám mây:
Khả năng sẵn sàng: các dịch vụ điện toán đám mây có thể bị tê liệt không báo
trước làm ảnh hưởng đến hoạt động của khách hàng Ví dụ điẻn hình gần đây là sự kiện hãng MegaUpload bị chính phủ Mỹ dừng hoạt động đã khiến hàng ngàn cá nhân
mất các dữ liệu, phim, ảnh để trên đó
Tính di động của dữ liệu và quyền sở hữu: khi ngừng sử dụng dịch vụ điện toán
đám mây, khách hàng có thể nhận lại tất cả các dữ liệu của mình hay không? sau đó
chúng có được hủy đi hay nhà cung cấp sẽ tự ý giữ lại một bản sao mà không ai biết?
Tính riêng tư: dữ liệu của khách hàng đưa lên đám mây có thể bị nhà cung cấp
dịch vụ khai thác hay lợi dụng?
Trang 201.2 Workflow (Bussiness Process)
Luồng công việc (workflow): Theo Ravneet [14], một luồng công việc hay một quy
trình nghiệp vụ (bussiness process) là thứ tự các bước, tác vụ, sự kiện hoặc tương tác làm nên một quy trình để thực hiện một công việc nào đó
Một quy trình nghiệp vụ bao gồm: có mục đích (goal), có dữ liệu đầu vào cụ thể (event), có dữ liệu đầu ra xác định (event), sử dụng tài nguyên, có các hoạt động được thực thi theo một thứ tự định trước theo mô hình như ở Hình 2.8
Hình 1 8: Mô hình quy trình nghiệp vụ [14]
Biểu diễn luồng công việc
Mỗi luồng công việc cho phép cấu trúc hóa các ứng dụng trong một đồ thị không có chu trình (Directed Acyclic Graph - DAG), với mỗi nút (node) đại diện cho một công việc và mỗi cạnh (edge) biểu diễn sự phụ thuộc giữa các công việc cũng như các dữ liệu đầu vào, dữ liệu đầu ra của các công việc, của ứng dụng
Một DAG có thể chia thành nhiều cấp độ khác nhau (level) theo sự phụ thuộc giữa các công việc trong luồng công việc đó Mỗi cấp độ tiếp theo phụ thuộc vào các công việc ở cấp độ trên nó và bất kỳ cấp độ nào ở phía trước Trong Hình 1.9 bên dưới cho thấy, cấp độ 2 phụ thuộc vào cấp độ 1 và lấy dữ liệu từ đầu ra của cấp 1, cấp độ 3 lại phụ thuộc vào cấp độ 2 Các công việc được thực thi theo thứ tự từ cấp độ 1 trở
đi
Trang 21Hình 1 9: DAG biểu diễn một workflow [14]
Quản lý luồng công việc
Theo Ravneet [14], quản lý luồng công việc là một kỹ thuật phát triển nhanh chóng
mà ngày càng được chấp nhận tại các doanh nghiệp Đặc điểm chính của nó là tự động hóa các quá trình kết hợp giữa con người và các hoạt động dựa máy móc, đặc biệt là các tương tác với các công cụ và các ứng dụng của công nghệ thông tin Mặc dù nó được sử dụng phổ biến nhất trong môi trường văn phòng với đội ngũ nhân viên chuyên ngành như bảo hiểm, ngân hàng, luật và quản lý chung nhưng nó cũng được áp dụng trông một số phân lớp của sản xuất và công nghiệp [8] Một đặc tả luồng công việc xác định: các hoạt động của luồng công việc (các task), các điều khiển chúng và sự phụ
thuộc dữ liệu
Hệ thống quản lý luồng công việc là một phần mềm cung cấp các hỗ trợ cho các dịch vụ cần thiết: định nghĩa luồng công việc và tạo quy trình, xác định các luật cho luồng công việc, quản trị và giám sát việc thực thi luồng công việc Hệ thống quản lý luồng công việc định nghĩa, quản lý và thực thi luồng công việc trên các tài nguyên tính toán Mục đích của quản lý luồng công việc là để đảm bảo chắc chắn các hoạt
động thích hợp được thực thi đúng bởi các dịch vụ và ở thời điểm thích hợp
Lập lịch luồng công việc là một trong những vấn đề quan trọng của quản lý thực thi luồng công việc Lập lịch luồng công việc là một quy trình ánh xạ và quản lý thực thi các công việc phụ thuộc lẫn nhau vào các tài nguyên tính toán Việc lập lịch sẽ phân
bổ hợp lý các nguồn tài nguyên tới các công việc của luồng công việc để đảm bảo việc thực thi hoàn thành sẽ đáp ứng các mục đích đề ra của người dùng Một chính sách lập
lịch hợp lý sẽ tác động đáng kể tới hiệu năng hoạt động của hệ thống
Trang 22Lợi ích của việc thực thi luồng công việc trong môi trường Điện toán đám mây:
Theo Ravneet [14], đưa luồng công việc vào thực thi trong môi trường điện toán đám mây cho phép sử dụng các dịch vụ đám mây khác nhau Lợi ích chính của việc này chính là khả năng mở rộng ứng dụng Không giống như môi trường lưới, môi trường điện toán đám mây cho phép mở rộng các tài nguyên đám mây theo thời gian thực để đáp ứng nhu cầu thực thi Khả năng co giãn của đám mây cho phép mở rộng quy mô linh hoạt khi có nhu cầu lớn hơn hoặc giảm đi khi nhu cầu thấp Điều này cho phép hệ thống quản lý luồng công việc đáp ứng được nhu cầu về chất lượng dịch vụ theo yêu cầu của ứng dụng Mô hình lấy người dùng làm trung tâm trong môi trường điện toán đám mây làm tăng tính thân thiện và thỏa mãn yêu cầu của người dùng Mô hình kinh doanh "trả cho những gì bạn đã sử dụng" làm giảm các chi phí thực thi luồng công
việc Cụ thể, lợi ích của việc thực thi trong môi trường điện toán đám mây bao gồm:
Ảo tưởng về một nguồn tài nguyên vô hạn (Illusion of infinite resources): người dùng
có thể đưa ra yêu cầu tài nguyên cần thiết cho ứng dụng ở bất cứ thời điểm nào; Tài nguyên đi thuê (Lease): người sử dụng trực tiếp xác định nguồn tài nguyên cần thuê một cách hợp lý để lập lịch cho các tính toán của họ Mô hình này là lý tưởng vì nó làm giảm chi phí lập lịch; Tính co giãn (Elasticly): cho phép người dùng có thể thuê được và phân bổ tài nguyên theo nhu cầu Hệ thống workflow dễ dàng phát triển hoặc
thu nhỏ nguồn tài nguyên theo thời gian
Thách thức của việc thực thi luồng công việc trong môi trường Điện toán đám mây: Theo Ravneet [14], những thách thức gặp phải khi thực thi luồng công việc
trong môi trường Điện toán đám mây bao gồm:
Chi phí: trong thực tế, một số dịch vụ điện toán đám mây là miễn phí, nhưng một số
dịch vụ thì không Điều này đồng nghĩa với việc người sử dụng sẽ phải tiền cho những
gì mà họ sử dụng Do vậy, chi phí trở thành một mối quan tâm lớn của các ứng dụng workflow Nếu đưa ra cả hai thuộc tính về thời gian và chi phí, người sử dụng sẽ phải đưa ra ngay quyết định là trả nhiều chi phí hơn để giảm thời gian thực hiện hoặc tiết kiệm chi phí bằng cách cho phép kéo dài thời gian thực thi lâu hơn miễn là thời hạn cuối cùng để thực hiện công việc vẫn có thể được đáp ứng
Thỏa thuận cấp độ dịch vụ: với hầu hết các dịch vụ điện toán đám mây đến từ các tổ
chức thương mại lớn, các thỏa thuận cấp độ dịch vụ trở thành một mối quan tâm quan trọng cho cả nhà cung cấp dịch vụ và khách hàng Do cạnh tranh trong cung cấp dịch
vụ đang nổi lên, các nhà cung cấp phải đảm bảo: chất lượng dịch vụ (QoS) tốt cho
Trang 23khách hàng và các điều khoản phải rõ ràng cho việc bồi thường trong trường hợp vi phạm
Khối lượng dữ liệu: tùy thuộc vào dịch vụ được cung cấp, khối lượng dữ liệu cần
thiết được vận chuyển qua dịch vụ
Nền tảng hỗ trợ: tùy thuộc vào dịch vụ, nền tảng hỗ trợ yêu cầu của các dịch vụ ứng
dụng đám mây cũng có thể là một nhân tố hạn chế Ngoài vấn đề trên, có thể có những thách thức khác như vấn đề an ninh, tuân thủ các quy định và minh bạch dữ liệu
Sự cần thiết của việc thực thi workflow trong môi trường Điện toán đám mây:
Chúng ta đã thấy được những lợi ích khi thực thi luồng công việc [14] trong môi trường điện toán đám mây ở trên Hơn nữa, các ứng dụng luồng công việc thường yêu cầu một môi trường thực thi phức tạp bao gồm: hệ điều hành cụ thể, các thư viện, cấu trúc tệp tin hệ thống, nhiều chương trình ứng dụng và các tệp tin cấu hình Môi trường này thường khó có thể tạo trên các tài nguyên lưới Ngoài ra, mỗi một vị trí lưới đều
có cấu hình khác nhau, vì vậy các kết quả thường phải nỗ lực thêm thời gian để chuyển tới các vị trí mới Máy ảo cho phép phát triển các ứng dụng tạo ra đầy đủ các tùy biến,
cấu hình các môi trường thực thi đặc biệt cho các ứng dụng của họ
Trang 24CHƯƠNG 2: PHƯƠNG PHÁP TỐI ƯU BẦY ĐÀN
2.1 Giới thiệu
Tối ưu hóa bầy đàn (Particle Swarm Optimization – PSO) [5] là kỹ thuật giải quyết các vấn đề phổ biến nhất thuộc mô hình quần thể thông minh hay bầy đàn thông minh (Swarm Intelligence – SI) PSO được giới thiệu lần đầu tiên bởi Kennedy và Eberhat vào năm 1995 Họ phát triển các phương pháp đơn giản nhưng hiệu quả trong tối ưu hóa các hàm toán học phi tuyến liên tục, áp dụng thành công để giải nhiều bài toán cực trị hàm số và một số bài toán tối ưu khác Các ý tưởng xuất phát từ việc quan sát các quần thể sinh học trong tự nhiên, dựa trên các quan hệ, các ứng xử của các cá thể trong bầy đàn, cách thức tổ chức và hoạt động của quần thể PSO mô phỏng bầy đàn như đàn chim, đàn cá tìm kiếm thức ăn… [12]
PSO nằm trong tính tiến hóa (Evolution Computation – EC) nhưng nó cũng có một vài điểm khác [12] Giống như nhiều kỹ thuật tiến hóa khác, PSO khởi tạo quần thể bởi các giải pháp phân bố ngẫu nhiên Tuy nhiên, PSO khác ở chỗ, nó đánh giá và tiến hóa các giải pháp dựa trên kinh nghiệm cá nhân và kinh nghiệm của bầy đàn, tốt hơn
so với việc sử dụng các hoạt động tiến hóa (phép lai ghép và đột biện trong giải thuật
di truyền …) Nó giả định xã hội chia sẻ thông tin giúp tiến hóa quần thể, nói cách khác, quần thể cập nhật các thế hệ và tìm kiếm tối ưu với thông tin được chia sẻ
Kể từ khi ra đời, PSO đã được phát triển nhanh chóng và có rất nhiều hướng nghiên cứu trong việc cải tiến các tham số, các nghiên cứu đã chỉ ra nhiều kết quả chứng minh trong các hàm kiểm tra nổi tiếng như các hàm Shaffer, Sphere, Rosenbrock, Rastrigin, Griewank [12]
PSO đã được ứng dụng vào để giải nhiều lớp bài toán khác nhau như: Tối ưu hóa không ràng buộc (Unconstrained Optimization), tối ưu hóa ràng buộc (Constrained Optimization), tối ưu đa mục tiêu (Multi Objective Optimization), tối ưu hóa động (Dynamic Optimization Problem), v.v
2.2 Bầy đàn thông minh
Một bầy đàn là một nhóm các sinh vật có tương tác với nhau Thuật ngữ bầy đàn thông minh (SI) được sử dụng lần đầu tiên trong hệ thống robot di động của Beni và Wang trong những năm 1980 Sau đó, đầu những năm 1990, các nghiên cứu bầy đàn thông minh được lấy cảm hứng từ xã hội của các loài côn trùng, các loài chim, cá và nhận thức của con người Hình ảnh đàn chim, đàn các tìm kiếm thức ăn, nguồn nước, đàn kiếm tìm kiếm thức ăn và đổi hướng tránh kẻ thù …Nó được gọi là kiểu quan hệ bầy đàn Trong những năm gần đây, các nhà khoa học đã tập trung nghiên cứu mô hình bầy đàn như là một giải pháp chiến lược trong việc giải quyết cả hai loại bài toán tối ưu ràng buộc và không có ràng buộc Họ ứng dụng những nghiên cứu để giải quyết
Trang 25các bài toán tối ưu như thiết kế mạng viễn thông, nghiên cứu robot, ứng dụng trong quân sự …
Các lĩnh vực nghiên cứu chính dựa bầy đàn thông minh:
Giải thuật tối ưu hóa bầy kiến (Ant Colony Optimization – ACO) [15]: lấy ý tưởng
từ cách đàn kiến tìm đường từ tổ tới nguồn thức ăn, cách chúng xây dựng đường đi bằng dấu vết sinh học
Hình 2 1: Mô tả kiến tìm đường
Hình 2.1 mô tả cách thức tìm kiếm thức ăn của bầy kiến:
1: Kiến đầu tiên sẽ tìm thấy thực phẩm (F) thông qua bất kỳ cách nào đó, sau đó trở
về làm tổ (N), để lại đằng sau dấu vết pheromone trên đoạn đường đã qua
2: Đàn kiến đi ngẫu nhiên theo bốn cách có thể, dấu vết pheromone trên các đoạn đường càng nhiều, càng hấp dẫn đàn kiến lựa chọn như là đoạn đường ngắn nhất
3: Đàn kiến đi theo đoạn đường ngắn nhất, các đoạn đường không đi đến sẽ dần dần mất đi dấu vết pheromone
Hình 2 2: Mô tả chim tìm đường
Trang 26Giải thuật tối ưu hóa bầy đàn (Particle Swarm Optimization – PSO) lấy ý tưởng từ
cách đàn chim tìm thức ăn, nguồn nước Theo giả thuyết của bài toán, các cá thể ban đầu được dựng lên trong không gian đó Mỗi cá thể có một vận tốc ban đầu, và giữa các cá thể cũng có kênh liên lạc Các cá thể sau đó di chuyển trong không gian lời giải, mỗi cá thể sẽ được đánh giá bằng một hay nhiều tiêu chuẩn thích nghi, dần dần các cá thể này sẽ di chuyển về phía những cá thể tốt hơn trong phạm vi của chúng
2.3 PSO truyền thống
2.3.1 Định nghĩa
Trong PSO, vấn đề bài toán được mô hình hóa như là không gian giải pháp n – chiều, quần thể sẽ tìm kiếm cá thể cho giải pháp tối ưu trong không gian n – chiều [12]
Định nghĩa 1: trong PSO, mỗi cá thể Pi mô phỏng như một cá thể của đàn chim Ở mỗi thế hệ, cá thể Pi có một vài vị trí xi
k
trong không gian tìm kiếm n – chiều và xik+1biểu diễn vị trí của cá thể sau khi cập nhật tại thế hệ sau đó Mỗi cá thể biểu diễn một lời giải của bài toán nhưng chưa phải là lời giải tối ưu Tùy từng bài toán mà mỗi cá thể sẽ được biểu diễn ở các cách khác nhau như cây, chuỗi số, mã nhị phân … Mỗi lời giải trong bài toán có thể được coi như là một vị trí trong không gian đó Trong ngữ cảnh giải quyết bài toán, một cá thể với vị trí của nó biểu diễn một giải pháp tiềm năng Hình 2.3 bên dưới biểu diễn các cá thể trong không gian tìm kiếm 2 chiều
Hình 2 3: Bầy đàn với 10 cá thể trong không gian tìm kiếm 2 chiều
Định nghĩa 2: Trong PSO, một bầy đàn P = {P1, P2, P3, … Pn) là một tập các cá thể (một tập các lời giải của bài toán) Các cá thể có thể có thông tin về toàn bộ quần thể hoặc thông tin về một phần quần thể Thông tin đó thường là thông tin về cá thể tốt nhất trong quần thể, nó được đánh giá qua giá trị của hàm mục tiêu
Trang 27Định nghĩa 3: Vận tốc của cá thể vi
k
=[u1, u2, u3 …un] là một vector n – chiều làm thay đổi (di chuyển) vị trí của các thể Pi ở thế hệ k Về mặt toán học, quan hệ vị trí – vận tốc có mối quan hệ như sau:
Hình 2.4 biểu diễn quan hệ vị trí – vận tốc trong không gian hai chiều với giá trị vik+1
được cập nhật theo kinh nghiệm bay tốt nhất của cá thể trong quá khứ và kinh nghiệm bay tốt nhất của cá thể tốt nhất trong quần thể Nó sẽ tiến hành thay đổi (điều chỉnh hướng bay) tới vị trí mới xik+1
Hình 2 4: Quan hệ vị trí – vận tốc trong không gian 2 chiều
Mỗi cá thể sẽ có một vận tốc riêng, nó dùng để tính vị trí tiếp theo của cá thể trong không gian lời giải của bài toán Mỗi cá thể sẽ di chuyển trong không gian bài toán để tìm ra lời giải tối ưu Tùy vào bài toán cụ thể mà hàm vận tốc sẽ được biểu diễn phù hợp
Định nghĩa 4: Lân cận (neighbourhood) xác định cấu trúc xã hội của bầy đàn và chỉ ra
các nhóm cá thể nên tương tác Với cùng một lân cận, các cá thể sẽ tương tác, giao tiếp
và chia sẻ thông tin.Để hình thành một lân cận, chúng ta không thể giới hạn bằng khoảng cách vật lý giữa các cá thể; trong thực thế, chúng được xác định bằng các nhãn của các cá thể trong PSO [12] Ví dụ: 9 cá thể được liệt kê với các nhãn P1, P2, P3, P4, P5,
Trang 28P6, P7, P8, P9 Liên quan đến khoảng cách vật lý, (P1, P2, P3) là lân cận với kích thước 3, tương tự ta có các lân cận (P4, P5, P6), (P7, P8, P9)
Hình 2 5: Một bầy đàn toàn cục và lân cận cục bộ[12]
Các lân cận có thể chồng nhau và một cá thể có thể thuộc nhiều lân cận
Các cấu trúc liên kết (topology) theo dạng hình sao (star), dạng vòng (ring) và bánh xe (wheel) là các cấu trúc lân cận thường được sử dụng:
Hình 2 6: Các topology lân cận đơn giản [12]
Trong ngữ cảnh của giải thuật PSO, có hai thuật ngữ thường được sử dụng là
“local” và “global” “Local” xem như một lân cận cá nhân trong khi đó “global” - một thực thể bầy đàn được xem như là lân cận lớn nhất Trong hình 2.5, chúng ta có ba lân cận cục bộ.Ví dụ khác: theo topology ở hình 2.6b, chúng ta có các cá thể P1, P2, P3, P4,
P5 hình thành các lân cận với kích thước 3 thì tổng số các lân cận là 5 với { P1, P2, P3), {P2, P3, P4}, {P3, P4, P5}, { P4, P5, P1} và { P5,P1, P2} Cá thể trong lân cận trên sẽ lấy thông tin từ hai cá thể trong cùng lân cận có kết nối trực tiếp tới nó.
Cấu trúc lân cận khác nhau có thể ảnh hưởng trực tiếp tới hiệu năng của bầy đàn Chúng xác định cách thức truyền thông giữa các cá thể do đó ảnh hưởng trực tiếp đến
sự hội tụ của các cá thể Tức là khi nào và làm thế nào các cá thể có thể đến với nhau, đến các trạng thái ổn định và dừng cải tiếp các giải pháp Các cá thể có thể hội tụ trên
Trang 29các tối ưu cục bộ khác nhau hoặc thời gian khác nhau với các topology lân cận khác nhau
Trong topology hình sao như hình 2.6a, tất cả các cá thể bị ảnh hưởng bởi một vị trí tốt nhất toàn cục trong mỗi lần lặp thế hệ, và di chuyển theo hướng cục bộ, vì vậy chúng có xu hướng hội tụ nhanh chóng tới tốt nhất toàn cục
Trong topology dạng vòng như hình 2.6b, các phân đoạn lân cần chồng chéo lên nhau, vị vậy sự hội tụ có thể ảnh hưởng từ lân cận này tới lân cận khác và kéo theo tất
cả các cá thể Bằng cách dần dần lan rộng thông tin, sự hội tụ trên mạng vòng sẽ chậm hơn mạng hình sao
Đối với bầy đàn có topology dạng bánh xe quay, tồn tại một và chỉ một cá thể trung tâm phục vụ như bộ đệm Cá thể trung tậm sẽ thu thập và so sánh vị trí của tất cả các
cá thể, tìm ra vị trí tốt nhất và di chuyển hướng tới vị trí tốt nhất Tất cả các cá thể khác sẽ lấy thông tin từ cá thể trung tâm và bắt đầu di chuyển hướng tới vị trí tương tự Bởi ảnh hượng bộ nhớ đêm, một topology dạng bánh xe sẽ bảo đảm việc hội tụ lâu hơn một chút và ngăn cho bầy đàn hội tụ quá nhanh trên tối ưu cục bộ
Định nghĩa 5: Hàm mục tiêu (objective function) hay hàm thích ứng (fitness function)
hay hàm đánh giá (evaluation function) F(x) là hàm mô tả yêu cầu của bài toán cần đạt tới Hàm này dùng để đánh giá các lời giải của bài toán Tùy vào bài toán khác nhau, hàm mục tiêu sẽ khác nhau Bằng cách đánh giá và so sánh giải pháp hiện tại với giải pháp tốt nhất, các cá thể sẽ xác định bước đi tiếp theo Ba giải pháp (vị trí) tốt nhất là: tốt nhất cá nhân (pbest), tốt nhất toàn cục (gbest) và tốt nhất cục bộ (lbest)
2.3.2 Mô tả thuật toán
Quần thể ban đầu gồm n cá thể (mỗi cá thể là một lời giải cho bài toán, nhưng chưa tối ưu) Mỗi cá thể thứ i trong quần thể được biểu diễn bởi một vector xi m chiều (giá trị m tùy thuộc vào mỗi bài toán khác nhau và cách xử lý khác nhau), và một vector vận tốc
vi m chiều với i = 1,…,n Hàm mục tiêu của bài toán là f: Rm →R
Mô tả thuật toán chi tiết như sau:
B1: Khởi tạo quần thể với việc khởi tạo vector vị trí xi và vector vận tốc vi cho cá thể
thứ i, i = 1, , n (cho mỗi cá thể P i trong quần thể P(n))
B2: Khởi tạo các thông tin ban đầu về vị trí tốt nhất của các cá thể và cả quần thể
pbesti = xi (khởi tạo vị trí tốt nhất của cá thể thứ i bằng vị trí được khởi tạo
hiện tại)
gbest = min (f(xi)), i = 1, n (khởi tạo vị trí tốt nhất của cả quần thể bằng vị
trí nhỏ nhất trong tất cả các vị trí của tất cả các cá thể được khởi tạo)
B3: Bước lặp với điều kiện lặp xác định trước (sau một số lần lặp cho trước hoặc sau
một số lần lặp mà không thu được kết quả tốt hơn)
for 1<= i <= n (với mỗi cá thể)