Các thuật toán như tìm kiếm không có thông tin /vét cạn tìm kiếm trên danh sách, trên cây hoặc đồ thị sử dụng phương pháp đơn giảnnhất và trực quan nhất hoặc các thuật toán tìm kiếm có
Trang 1ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
Giáo viên HD : PGS TS Nguyễn Phi Khứ
Họ tên học viên : Nguyễn Trọng Ngân
Mã số học viên : CH1101107 Cao học : Khóa 6 Chuyên ngành : Khoa học máy tính - Mã số: 60.48.01
Tháng 07/2013
Trang 2Em chân thành cám ơn quý Thầy Cô trong khoa Khoa học máy tính, phòng đào tạo sau đại học, trường đại học Công nghệ thông tin – đại học Quốc gia TP Hồ Chí Minh đã tận tình giảng dạy, hướng dẫn, giúp đỡ và tạo điều kiện cho em thực hiện tiểu luận này Mặc dù rất cố gắng, song tiểu luận vẫn còn nhiều thiếu sót Em mong nhận được nhiều sự thông cảm và góp ý của thầy.
Xin chân thành gửi lời cám ơn sâu sắc đến quý thầy.
Tp.Hồ Chí Minh, ngày /03 / 2013
Trang 3NHẬN XÉT CỦA GIẢNG VIÊN
NHẬN XÉT CỦA GIẢNG VIÊN
Trang 4
NHẬN XÉT CỦA GIẢNG VIÊN
MỤC LỤC
LỜI CÁM ƠN 1
NHẬN XÉT CỦA GIẢNG VIÊN 2
MỤC LỤC 3
DANH MỤC CÁC HÌNH 5
1 CHƯƠNG 1 – GIỚI THIỆU CHUNG 6
1.1 Thông tin chung về môn học 6
1.2 Giới thiệu về đề tài tiểu luận và lý do chọn đề tài 6
1.3 Mục tiêu nghiên cứu 6
2 CHƯƠNG 2 - CƠ SỞ LÝ THUYẾT 8
2.1 Tổng quan về tính toán lưới 8
2.1.1 Giới thiệu về tính toán lưới 8
2.1.2 Các đặc trưng của Grid 9
2.1.3 Các tài nguyên của Grid 10
2.1.4 Phân loại Grid 11
2.1.5 Một số lợi ích của Grid 13
2.2 Giải thuật di truyền 15
2.2.1 Xác định tính thích nghi của cá thể 15
2.2.2 Chọn lọc cá thể 17
2.2.3 Lai ghép 2 cá thể 18
2.2.4 Đột biến cá thể 19
3 CHƯƠNG 3 – LOAD BALANCING TRONG TÍNH TOÁN LƯỚI SỬ DỤNG GENETIC ALGORITHM 20
3.1 Giới thiệu sơ lược 20
Trang 5NHẬN XÉT CỦA GIẢNG VIÊN
3.2 Áp dụng giải thuật di truyền giải quyết vấn đề cân bằng tải 20
3.2.1 Hàm mục tiêu 20
3.2.2 Mô hình 21
3.2.3 Thuật toán 22
3.2.4 Kết quả thử nghiệm, đánh giá 23
4 CHƯƠNG 4 -TỔNG KẾT 25
4.1 Kết quả đối với bản thân 25
4.2 Hạn chế và hướng phát triển 25
5 TÀI LIỆU THAM KHẢO 26
Trang 6DANH MỤC CÁC HÌNH 5
DANH MỤC CÁC HÌNH
Hình 2-1 Mô hình Grid Computing 9
Hình 2-2 Mô hình Grid tính toán 12
Hình 2-3 Mô hình Data Grid 13
Hình 2-4 Mô tả độ thích nghi xếp hạng 17
Hình 2-5 Mô hình vòng xoay Roulete 17
Hình 2-6 Ví dụ về lai ghép đơn điểm hai nhiễm sắc thể dạng tế bào FAT trong phân bố mảnh CSDL phân tán 18
Hình 3-1 Lược đồ tổng quát của thuật toán 22
Hình 3-2 Thông số thay đổi tải di truyền qua các thế hệ với số node 20-50 24
Hình 3-3 Thông số thay đổi tải di truyền qua các thế hệ với số node 60-100 24
Trang 7CHƯƠNG 1- GIỚI THIỆU CHUNG 6
1 CHƯƠNG 1 – GIỚI THIỆU CHUNG
1.1 Thông tin chung về môn học
Môn học Tính toán lưới với thời lượng 45 tiết Đây là một môn học thuộc dạng tựchọn trong nội dung chương trình khung đào tạo cao học tại trường đại học Công nghệthông tin Môn học cung cấp cho học viên các kiến thức về các phương pháp tính toántrên hệ thống điện toán lưới và hệ thống điện toán đám mây Ngoài ra, môn học còn giớithiệu các công nghệ, ứng dụng đang được sử dụng rộng rãi trên thế giới trong các lĩnh vựcnày
1.2 Giới thiệu về đề tài tiểu luận và lý do chọn đề tài
Trong ngành khoa học máy tính nói chung và lĩnh vực trí tuệ nhân tạo nói riêng, tìmkiếm lời giải tối ưu cho các bài toán là vấn đề được các nhà khoa học máy tính đặc biệt rấtquan tâm Mục đích chính của các thuật toán tìm kiếm lời giải là tìm ra lời giải tối ưu nhấtcho bài toán trong thời gian nhỏ nhất Các thuật toán như tìm kiếm không có thông tin /vét cạn ( tìm kiếm trên danh sách, trên cây hoặc đồ thị ) sử dụng phương pháp đơn giảnnhất và trực quan nhất hoặc các thuật toán tìm kiếm có thông tin sử dụng heurictics để ápdụng các tri thức về cấu trúc của không gian tìm kiếm nhằm giảm thời gian cần thiết choviệc tìm kiếm được sử dụng nhiều nhưng chỉ với không gian tìm kiếm nhỏ và không hiệuquả khi tìm kiếm trong không gian tìm kiếm lớn
Tuy nhiên, trong thực tiễn có rất nhiều bài toán với không gian giả thuyết rất lớn vàviệc tìm kiếm lời giải theo phương pháp vét cạn không thể thực hiện được trên không giantìm kiếm rất lớn cần phải giải quyết, đặc biệt trong lĩnh vực tính toán lưới Việc tìm giảipháp để giúp cân bằng, chia sẽ tải giữa các node trong tính toán lưới là một vấn đề khó vàGiải thuật di truyền là phương án để giúp cân bằng tải giữa các node khi tính toán Vì vậy,trong bài tiểu luận này, em sẽ tìm hiểu các đặc điểm của tính toán lưới và việc áp dụnggiải thuật di truyền để giải quyết bài toán cân bằng tải trong tính toán lưới
1.3 Mục tiêu nghiên cứu
Bài tiểu luận này sẽ tập trung vào các vấn đề như sau:
Trang 8CHƯƠNG 1- GIỚI THIỆU CHUNG 7
- Tìm hiểu cơ chế hoạt động của giải thuật di truyền
- Tìm hiểu cơ sở lý thuyết về tính toán lưới;
- Tìm hiểu về cơ sở toán học di truyền và ứng dụng trong việc xử lý các bài toàn tốiưu;
- Tìm hiểu về ứng dụng giải thuật load balancing trên tính toán lưới
Trang 9CHƯƠNG 2- CƠ SỞ LÝ THUYẾT 8
2 CHƯƠNG 2 - CƠ SỞ LÝ THUYẾT
2.1 Tổng quan về tính toán lưới
2.1.1 Giới thiệu về tính toán lưới
Thuật ngữ grid computing ban đầu do tác giả Ian Foster thuộc Phòng thí nghiệmquốc gia Argonne (Mỹ) nêu ra vào cuối thập kỷ trước Ian Foster đưa ra 3 tiêu chuẩn củamột lưới tính toán:
1 Không điều khiển tập chung mà phân tán theo địa lý
2 Sử dụng các giao thức tổng quát, mở và chuẩn hóa
3 Nhiều máy tính kết hợp tạo nên những dịch vụ tích hợp chất lượng cao (HighQos)
Tuy nhiên, 3 tiêu trên được đưa ra trong thời điểm mới khai sinh ra Grid và từ đóđến nay đã có nhiều thay đổi Định nghĩa thế nào là một Grid vẫn là vấn đề gây tranh cãi.Ian Foster đã định nghĩa Grid như sau:
“Grid là một loại hệ thống song song, phân tán cho phép chia sẻ, lựa chọn, kết hợpcác tài nguyên phân tán theo địa lý, thuộc nhiều tổ chức khác nhau dựa trên tính sẵn sàng,khả năng, chi phí của chúng và yêu cầu về chất lượng dịch vụ (QoS) của người dùng đểgiải quyết các bài toán, ứng dụng có quy mô lớn trong khoa học, kỹ thuật và thương mại
Từ đó hình thành nên các “tổ chức ảo” (Virtual Organization (VO)), các liên minh tạmthời giữa các tổ chức và tập đoàn, liên kết với nhau để chia sẻ tài nguyên và/hoặc kỹ năngnhằm đáp ứng tốt hơn các cơ hội kinh doanh hoặc các dự án có nhu cầu lớn về tính toán
và dữ liệu, toàn bộ việc liên minh này dựa trên các mạng máy tính”
Trang 10CHƯƠNG 2- CƠ SỞ LÝ THUYẾT 9
Hình 2-1 Mô hình Grid Computing
2.1.2 Các đặc trưng của Grid
1 Có sự kết hợp, chia sẻ các tài nguyên không được quản lý tập trung
Grid kết hợp và phân phối tài nguyên, người dùng thuộc nhiều vùng quản lý khácnhau, nhiều đơn vị khác nhau trong một hay nhiều tổ chức khác nhau Công nghệ Gridtập trung giải quyết các vấn đề về bảo mật, chính sách quản trị, chi phí, thành viên,… nảysinh trong quá trình chia sẻ và sử dụng tài nguyên
2 Sử dụng các giao diện và giao thức chuẩn, mang tính mở, đa dụng
Grid được xây dựng trên các giao thức và giao diện tổng quát, đa dạng để giải quyếtcác vấn đề cơ bản như chứng thực người dùng, phân quyền, tìm kiếm và truy xuất tàinguyên
3 Đáp ứng yêu cầu cao về chất lượng dịch vụ
Grid cho phép sử dụng phối hợp các tài nguyên để cung cấp nhiều loại dịch vụ vớicác mức chất lượng khác nhau như thời gian đáp ứng, hiệu suất, tính sẵn sàng, bảo mật,cho phép kết hợp nhiều kiểu tài nguyên để đáp ứng nhu cầu phức tạp của người dùng.Mục tiêu phối hợp để khả năng của hệ thống sau khi kết hợp lớn hơn tổng khả năng củatừng đơn vị cấu thành nên Grid
Trang 11CHƯƠNG 2- CƠ SỞ LÝ THUYẾT 10
2.1.3 Các tài nguyên của Grid
2.1.3.1 Tài nguyên tính toán
Đây là tài nguyên phổ biến nhất gồm các chu kỳ tính toán (computing cycles) đượccung cấp bởi bộ vi xử lý của các thiết bị trong Grid Các bộ vi xử lý có thể có tốc độ, kiếntrúc, chạy phần mềm khác nhau
Có 3 cách để khai thác tài nguyên tính toán của Grid:
1 Chạy các ứng dụng hiện có trên một node của Grid thay vì chạy trên máy tính cục
bộ
2 Thiết kế ứng dụng, tách các công việc thành các phần riêng lẽ để có thể thực thisong song trên nhiều bộ xử lý khác nhau
3 Chạy ứng dụng thực thi nhiều lần trên nhiều node khác nhau trong Grid
2.1.3.2 Tài nguyên lưu trữ
Tài nguyên phổ biến khác trong Grid là tài nguyên lưu trữ Mỗi thiết bị trong Gridthường cung cấp một số dung lượng lưu trữ phục vụ cho việc thực thi ứng dụng trên Grid.Tài nguyên lưu trữ có thể là bộ nhớ trong, ổ đĩa cứng hoặc các thiết bị lưu trữ khác Bộnhớ trong thường dùng để lưu trữ dữ liệu tạm thời cho ứng dụng, trong khi các thiết bị lưutrữ ngoài có thể được sử dụng để tăng không gian lưu trữ, tăng hiệu suất, khả năng chia sẻ
và đảm bảo tính tin cậy của dữ liệu
2.1.3.3 Phương tiện liên lạc
Ở đây bao gồm việc liên lạc, trao đổi dữ liệu giữa các thành phần trong Grid và giaotiếp giữa Grid với bên ngoài Một số công việc đòi hỏi một lượng dữ liệu lớn nhưng các
dữ liệu này thường không nằm trên máy đang thực thi công việc Khả năng về băng thôngtrong những trường hợp như vậy là một tài nguyên then chốt, ảnh hưởng đến khả năngcủa Grid Việc giao tiếp với bên ngoài được thực hiện thông qua mạng Internet Grid cóthể sử dụng các kết nối Internet để liên lạc giữa các node Vì các kết nối này không chia
sẻ một đường truyền nên làm tăng băng thông truy cập Internet Các đường truyền dự
Trang 12CHƯƠNG 2- CƠ SỞ LÝ THUYẾT 11
phòng đôi khi cần thiết để giải quyết tốt hơn các vấn đề về hư hỏng mạng và truyền dữliệu lớn
2.1.3.4 Phần mềm, ứng dụng
Grid các phần mềm mà có thể không yêu cầu phải cài đặt trên tất cả mọi máy tínhtrong Grid Các phần mềm này chỉ cần được cài trên một số node Thông qua Grid, khimột công việc cần đến chúng, nó sẽ gửi dữ liệu đến node đã được cài đặt phần mềm vàcho thực thi Đây có thể là một giải pháp tốt để tiết kiệm chi phí về bản quyền phần mềm
2.1.4 Phân loại Grid
2.1.4.1 Grid tính toán (computational grid)
Loại Grid này tập trung chủ yếu vào việc sử dụng năng lực tính toán Ở dạng này,phần lớn các node là các máy tính hay các nhóm máy tính(cluster) có năng lực xử lý, tínhtoán rất lớn thông qua việc chia tác vụ tính toán lớn thành nhiều công việc nhỏ thực thisong song trên các node của Grid Việc phân tán các tác vụ tính toán trong Grid sẽ làmgiảm rất đáng kể toàn bộ thời gian xử lý và tăng khả năng tận dụng hệ thống
Thông thường một hệ thống chính sẽ chia khối dữ liệu cần xử lý thành các phần nhỏ,sau đó phân phối đến các node trên Grid Mỗi node sẽ thực hiện xử lý dữ liệu và trả kếtquả về hệ thống chính để hệ này tổng hợp và trình diễn kết quả toàn cục cho người dùng
Trang 13CHƯƠNG 2- CƠ SỞ LÝ THUYẾT 12
Hình 2-2 Mô hình Grid tính toán
2.1.4.2 Grid dữ liệu (data grid)
Một Grid Dữ liệu chịu trách nhiệm lưu trữ và cung cấp khả năng truy cập dữ liệucho nhiều tổ chức khác nhau Người dùng không cần biết chính xác vị trí dữ liệu khi thaotác với dữ liệu Các cơ sở dữ liệu, đặc biệt các cơ sở dữ liệu liên hợp đóng vai trò quantrọng trong các Grid Dữ liệu, nhất là khi có nhiều nguồn dữ liệu và xuất hiện nhu cầu kếthợp các thông tin từ các nguồn dữ liệu này
Các Grid Dữ liệu có thể được sử dụng trong lĩnh vực khai mỏ dữ liệu(data mining)hoặc các hệ thống thương mại thông minh
Trang 14CHƯƠNG 2- CƠ SỞ LÝ THUYẾT 13
Hình 2-3 Mô hình Data Grid
2.1.4.3 Scavenging Grid
Một Scavenging Grid thường được dùng với một lượng lớn các máy tính để bàn.Các máy tính thường được kiểm tra định kỳ để xem khi nào bộ xử lý và các tài nguyênkhác rảnh rỗi để thực hiện các tác vụ Grid Chủ nhân của máy để bàn thường có quyềnxác định khi nào thì chia sẻ chiếc máy của mình
2.1.5 Một số lợi ích của Grid
2.1.5.1 Khai thác, tận dụng các tài nguyên nhàn rỗi
Hầu hết các tổ chức đều có một lượng lớn các tài nguyên tính toán nhàn rỗi, các máytính cá nhân thường chỉ sử dụng hết 5% thời gian xử lý CPU, ngay cả các server cũngthường “rảnh rỗi” Grid có thể tối ưu sử dụng các tài nguyên nhàn rỗi này theo nhiều cáchkhác nhau và cân bằng sử dụng tài nguyên Một tổ chức thường gặp các vấn đề khó khănkhi các hoạt động đòi hỏi thêm nhiều tài nguyên hơn Với Grid, có thể chuyển hoạt độngđến các tài nguyên nhàn rỗi khác, hoặc có thể thêm các tài nguyên mới một cách dễ dàng,
Trang 15CHƯƠNG 2- CƠ SỞ LÝ THUYẾT 14
2.1.5.2 Sử dụng CPU song song
Khả năng sử dụng các CPU song song là một đặc tính tuyệt vời của Grid, ngoài việc
hỗ trợ các nhu cầu tính toán của các nhà khoa học, sức mạnh tính toán do Grid cung cấp
có thể giúp giải quyết các bài toán đòi hỏi năng lực xử lý lớn trong các ngành khác như ydược, tính toán tài chính, kinh tế, khai thác dầu hỏa, dự báo thời tiết, công nghiệp vũ trụ,thiết kế sản phẩm, … và rất nhiều lĩnh vực khác
2.1.5.3 Cho phép hợp tác trên toàn thế giới
Một trong những đóng góp quan trọng của công nghệ Grid Computing là cho phép
và đơn giản hoá hợp tác chia sẻ, làm việc giữa một cộng đồng rộng lớn trên toàn thế giới.Grid cho phép mở rộng trên phạm vi toàn cầu khi đưa ra những chuẩn quan trọng chophép các hệ thống không đồng dạng làm việc chung với nhau để tạo nên một hệ thốngtính toán ảo cung cấp rất nhiều dạng tài nguyên khác nhau
2.1.5.4 Cho phép chia sẻ, sử dụng tất cả các loại tài nguyên
Grid có thể cho phép chia sẻ tất cả các loại tài nguyên mà trước đây chưa được chia
sẻ như băng thông mạng, các thiết bị đặc biệt, phần mềm, bản quyền, các dịch vụ,…
2.1.5.5 Tăng tính tin cậy cho các hệ thống máy tính
Hiện nay, các hệ thống tính toán sử dụng các phần cứng chuyên dụng, với chi phícao để tăng độ tin cậy Các giải pháp này làm tăng độ tin cậy của hệ thống, tuy nhiên vớichi quá đắt khi phụ kiện đi kèm cũng phải nhân lên Các hướng tiếp cận mới để giải quyếtvấn đề độ tin cậy dựa nhiều hơn vào các công nghệ phần mềm hơn là các phần cứng đắttiền Grid là sự khởi đầu cho các công nghệ đó Các hệ thống trong Grid thường có chi phíthấp và phân tán theo địa lý Do đó, nếu có sự cố về nguồn điện hay các lỗi hệ thống kháctại một vị trí, toàn bộ phần còn lại không bị ảnh hưởng Các phần mềm quản trị Grid cókhả năng thực thi lại công việc trên một node khác khi phát hiện có lỗi hệ thống Nếuquan trọng hơn nữa, trong các hệ thống theo thời gian thực, nhiều bản dự phòng của cáccác công việc quan trọng có thể được chạy trên nhiều máy tính khác nhau trong Grid đểđảm bảo độ tin cậy tối đa
Trang 16CHƯƠNG 2- CƠ SỞ LÝ THUYẾT 15
2.1.5.6 Tăng khả năng quản trị các hệ thống
Mục tiêu ảo hoá tất cả các tài nguyên và cung cấp giao diện quản lý đơn nhất các hệthống hỗn tạp đem lại những cơ hội mới để quản trị tốt hơn trong các cơ sở hạ tầng côngnghệ thông tin lớn, phân tán
2.2 Giải thuật di truyền
Giải thuật di truyền (Genetic Algorithm) là kỹ thuật chung giúp giải quyết vấn bài toán bằng cách mô phỏng sự tiến hóa của con người hay của sinh vật nói chung (dựatrên thuyết tiến hóa muôn loài của Darwin) trong điều kiện qui định sẵn của môi trường.Giải thuật di truyền là một thuật giải và mục tiêu của Giải thuật di truyền không nhằm đưa
đề-ra lời giải chính xác tối ưu mà là đưa đề-ra lời giải tương đối tối ưu
Sự phổ biến của Giải thuật di truyền được thúc đẩy bởi các yếu tố sau:
- Tiến hóa là một phương pháp mạnh, thành công cho sự thích nghi bên trong các hệthống sinh học
- Giải thuật di truyền có thể tìm kiếm trên các không gian giả thuyết có các phầntương tác phức tạp, ở đó ảnh hưởng của mỗi phần lên toàn thể độ thích nghi giả thuyếtkhó có thể mô hình
- Giải thuật di truyền có thể được thực hiện song song và có thể tận dụng thành tựucủa phần cứng máy tính mạnh
Do các thế mạnh này, trong bài tiểu luận em đề cập tới việc giải thuật di truyền đểtính toán việc cân bằng tải giữa các node trong grid tính toán (Computational Grid)
2.2.1 Xác định tính thích nghi của cá thể
2.2.1.1 Hàm mục tiêu
Hàm mục tiêu là hàm dùng để đánh giá độ tốt của một lời giải hoặc cá thể Hàm mụctiêu nhận và tham số là gen của một cá thể và trả ra một số thực Tùy theo giá trị của sốthực này mà ta biết độ tốt của cá thể đó Trong bài toán tìm cực đại thì giá trị trả ra cànglớn thì cá thể càng tốt Ngược lại, đối với bài toán tìm cực tiểu thì giá trị trả ra càng nhỏthì cá thể càng tốt