Đối tượng và mục tiêu nghiên cứu của trí tuệ nhân tạo Trí tuệ nhân tạo nghiên cứu về cách hành xử thông minh intelligent behaviour với mục tiêu là xây dựng lý thuyết đầy đủ về thông m
Trang 1LỜI CẢM ƠN Sau một thời gian tìm hiểu đề tài “ Xây dựng phần mềm học tiếng anh giao tiếp trên nền tảng Android ”, em đã hoàn thành tiến độ dự kiến Để đạt
được kết quả này, em đã nỗ lực thực hiện và đồng thời cũng nhận được rất nhiều
sự giúp đỡ, quan tâm, ủng hộ của các thầy cô, bạn bè và gia đình
Em xin chân thành cảm ơn giảng viên hướng dẫn: Th.S Hoàng Thị Cành –
Bộ môn Công nghệ phần mềm – Trường Đại học Công nghệ thông tin và truyền thông – Đại học Thái Nguyên đã tận tình giúp đỡ em hoàn thành đồ án tốt nghiệp này
Em cũng xin chân thành cảm ơn Trung tâm nghiên cứu và phát triển ứng dụng di động, Đại học Công nghệ thông tin và truyền thông, đặc biệt là thầy
Nguyễn Quốc Bảo là người hướng dẫn em trong suốt quá trình em hoàn thiện đồ
án Cảm ơn thầy đã tận tình giúp đỡ, chỉ bảo em để em có thể hoàn thành báo cáo này
Em xin chân thành cảm ơn các thầy cô và ban lãnh đạo trường Đại học Công nghệ thông tin và truyền thông – Đại học Thái Nguyên đã nhiệt tình giảng dạy và truyền đạt kiến thức quý báu và bổ ích trong suốt quá trình em học tập tại trường
Em xin chân thành cảm ơn các thầy, cô giảng viên thuộc bộ môn Công nghệ phần mềm đã trang bị cho em những kiến thức chuyên ngành rất hữu ích để em hoàn thành đề tài và phục vụ cho công việc của em sau này
Vì thời gian có hạn nên không thể tránh khỏi những thiếu sót, em rất mong nhận được sự đóng góp ý kiến từ thầy cô và các bạn Em xin chân thành cảm ơn !
1
Trang 2LỜI CAM ĐOAN
Em xin cam đoan đây là công trình nghiên cứu của riêng em và được sự hướng dẫn của Ths Hoàng Thị Cành Các nội dung nghiên cứu, kết quả trong đề tài này là trung thực và chưa công bố dưới bất kỳ hình thức nào trước đây Những
số liệu trong các bảng biểu phục vụ cho việc phân tích, nhận xét, đánh giá được chính tác giả thu thập từ các nguồn khác nhau có ghi rõ trong phần tài liệu tham khảo
Ngoài ra, trong đồ án còn sử dụng một số nhận xét, đánh giá cũng như số liệu của các tác giả khác, cơ quan tổ chức khác đều có trích dẫn và chú thích nguồn gốc.Nếu phát hiện có bất kỳ sự gian lận nào em xin hoàn toàn chịu trách nhiệm về nội dung đồ án của mình Trường đại học Công nghệ thông tin và Truyền thông Thái Nguyên không liên quan đến những vi phạm tác quyền, bản quyền do em gây ra trong quá trình thực hiện (nếu có)
Trang 3MỤC LỤC
LỜI CAM ĐOAN 2
LỜI NÓI ĐẦU 5
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 8
1.1 Android và lịch sử phát triển 8
1.1.1 Lịch sử Android 8
1.1.2 Các phiên bản HĐH Android 9
1.2 Kiến trúc Android 12
1.2.1 Linux Kernel 12
1.2.2 Library và Android Runtime 13
1.2.3 Application 16
1.3 Các thành phần của Android 16
1.3.1 Thành phần của một chương trình Android 16
1.3.2 Các thành phần trong giao diện Widget 19
1.3.3 Bắt sự kiện trong Android 20
1.3.4 Menu 20
1.4 Hệ quản trị CSDL SQLite 21
1.4.1 Giới thiệ về SQLite 21
1.4.2 Các bước thực hiện 22
1.4.3 Sử dụng Cơ sở dữ liệu 24
1.5 Trí tuệ nhân tạo 25
1.5.1 Tổng quan về khoa học Trí tuệ nhân tạo 25
1.5.2 Đối tượng và mục tiêu nghiên cứu của trí tuệ nhân tạo 25
1.5.3 Vai trò của Trí Tuệ Nhân Tạo 26
1.5.4 Các kỹ thuật Trí tuệ nhân tạo 26
1.5.5 Lịch sử phát triển của Trí Tuệ Nhân Tạo 28
1.5.6 Một số vấn đề Trí tuệ nhân tạo quan tâm 29
1.5.7 Các khái niệm cơ bản 30
1.5.8 Một số chuyên ngành của Trí tuệ nhân tạo 31
1.6 Tổng quan về AIML 32
1.6.1 AIML là gì ? 32
1.6.2 Các Category và đặc tính của AIML 32
1.7 Tổng quan về Java 34
1.7.1 Lịch sử 34
1.7.2 Các đặc trưng của Java 36
3
Trang 4CHƯƠNG 2: KHẢO SÁT, PHÂN TÍCH THIẾT KẾ PHẦN MỀM 39
2.1 Xác định yêu cầu đề tài 39
2.1.1 Tóm tắt yêu cầu 39
2.1.2 Nội dung 39
2.1.3 Mục tiêu 39
2.1.4 Các bước nghiên cứu 39
2.2 Khảo sát 39
2.2.1 Các ứng dụng hiện có 39
2.2.2 Đề xuất ứng dụng mới 42
2.2.3 Xác định yêu cầu 42
2.3.4 Hướng giải quyết và kế hoạch thực hiện 43
2.3 Phân tích chương trình 43
2.3.1 Biểu đồ Use Case 43
2.3.2 Biểu đồ trình tự 48
2.3.3 Biểu đồ cộng tác 52
2.3.4 Biểu đồ Class 57
2.3.5 Biểu đồ hoạt động tổng quát 63
CHƯƠNG 3: XÂY DỰNG CHƯƠNG TRÌNH HỌC TIẾNG ANH GIAO TIẾP TRÊN NỀN TẢNG ANDROID 64 3.1 Giới thiệu chương trình 64
3.2 Hướng dẫn sử dụng 68
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN77 TÀI LIỆU THAM KHẢO 79 LỜI NHẬN XÉT 80 DANH MỤC HÌNH ẢNH Hình 1.1 : Logo các phiên bản hệ điều hành Android 9
Hình 1.2: Biểu tượng Robot Android 11
Hình 1.3: Kiến trúc Android 12
Hình 1.4: Kiến trúc Linux Kernel 13
Hình 1.5: Kiến trúc Framework 15
Hình 1.6: Vòng đời hoạt động của 1 ứng dụng Android 17
Trang 5Hình 1.7: Quá trình hoạt động của Itent 17
Hình 1.8 : Vòng đời của Service 18
Hình 2.1 Ứng dụng SpeakingPal 40
Hình 2.2 Ứng dụng Busuu 41
Hình 2.3 Ứng dụng Pera Pera 42
Hình 2.4 Biểu đồ UseCase 44
Hình 2.5 Biểu đồ trình tự UseCase Learn Pronunciation By Video 48
Hình 2.6 Biểu đồ trình tự UseCase Send Feedback to Developer 48
Hình 2.7 Biểu đồ trình tự UseCase Learn By Level 49
Hình 2.8 Biểu đồ trình tự UseCase Learn By Topic 49
Hình 2.9 Biểu đồ trình tự UseCase Learn Vocabulary 50
Hình 2.10 Biểu đồ trình tự UseCase Learn Contexual Communication 50
Hình 2.11 Biểu đồ trình tự UseCase Review Vocabulary 51
Hình 2.12 Biểu đồ trình tự UseCase Review Sentences Learned 51
Hình 2.13 Biểu đồ trình tự UseCase Practice With Bot 52
Hình 2.14 Biểu đồ cộng tác UseCase Pronuncication By Video 52
Hình 2.15 Biểu đồ cộng tác UseCase Send Feedback 53
Hình 2.16 Biểu đồ cộng tác UseCase Learn By Level 53
Hình 2.17 Biểu đồ cộng tác UseCase Learn By Topic 54
Hình 2.18 Biểu đồ cộng tác UseCase Learn Vocabulary 54
Hình 2.19 Biểu đồ cộng tác UseCase Learn Contexual Communocation 55
Hình 2.20 Biểu đồ cộng tác UseCase Review Vocabulary 55
Hình 2.21 Biểu đồ cộng tác UseCase Review Sentences Learned 56
Hình 2.22 Biểu đồ cộng tác UseCase Practice With Bot 56
Hình 2.23 Biểu đồ class MainActivity 57
Hình 2.24 Biểu đồ class ExerciseActivity 58
Hình 2.25 Biểu đồ class VocabularyActivity 59
Hình 2.26 Biểu đồ class DialogeActivity 60
5
Trang 6Hình 2.27 Biểu đồ class VocaPracActivity 61
Hình 2.28 Biểu đồ class DialogePracActivity 62
Hình 2.29 Biểu đồ class PronunciationActivity 63
Hình 2.30 Biểu đồ Hoạt động tổng quát 63
Hinh 3.1 Màn hình khởi động của chương trình 64
Hình 3.2 Giao diện màn hình chính 65
Hình 3.3 Giao diện màn hình chính 65
Hình 3.4 Giao diện menu 66
Hình 3.5 Giao diện bài học theo Level Elementary 66
Hình 3.6 Giao diện gửi phản hồi cho nhà phát triển 67
Hình 3.7 Giao diện học Phát âm theo video 67
Hình 3.8 Giao diện học Phát âm theo video 68
Hình 3.9 Giao diện bài học theo chủ đề Color ( Level Beginer ) 68
Hình 3.10 Giao diện bài học từ vựng 69
Hình 3.11 Giao diện chương trình đánh giá phát âm 70
Hình 3.12 Giao diện Flashcard câu ví dụ 71
Hình 3.13 Giao diện học bài hội thoại 71
Hình 3.14 Giao diện thu âm tiếng nói 72
Hình 3.15 Giao diện hội thoại và đánh giá 72
Hình 3.16 Giao diện đổi vai hội thoại 73
Hình 3.17 Giao diện luyện tập từ vựng 74
Hình 3.18 Giao diện luyện tập câu 75
Hình 3.19 Giao diện phím menu 75
Hình 3.20 Giao diện phím menu 76
Trang 7LỜI NÓI ĐẦU
Mạng điện thoại di động xuất hiện tại Việt Nam từ đầu những năm 1990 và theo thời gian số lượng các thuê bao cũng như các nhà cung cấp dịch vụ đi động tại Việt Nam ngày càng tăng Do nhu cầu trao đổi thông tin ngày càng tăng và nhu cầu sử dụng sản phẩm công nghệ cao nhiều tính năng, cấu hình cao, chất lượng tốt, kiểu dáng mẫu mã đẹp, phong phú nên nhà cung cấp phải luôn luôn cải thiện, nâng cao những sản phẩm của mình Do đó việc xây dựng các ứng dụng cho điện thoại
di động đang là một ngành công nghiệp mới đầy tiềm năng và hứa hẹn nhiều sự phát triển vượt bậc của ngành khoa học kĩ thuật
Cùng với sự phát triển của thị trường điện thoại di động là sự phát triển mạnh mẽ của xu hướng lập trình phần mềm ứng dụng cho các thiết bị di động Phần mềm, ứng dụng cho điện thoại di động, máy tính bảng hiện nay rất đa dạng
và phong phú trên các hệ điều hành di động cũng phát triển mạnh mẽ và đang thay đổi từng ngày Các hệ điều hành Android được phát triển nhằm cạnh tranh với các
hệ điều hành di động khác như iOS (Apple), BlackBerry OS, Windows Mobile (Microsoft), Symbian (Nokia), Bada (SamSung), WebOS (Palm)… đã có rất phát triển trên thị trường truyền thông di động
Trong vài năm trở lại đây, hệ điều hành Android ra đời với sự kế thừa những ưu việt của các hệ điều hành ra đời trước và sự kết hợp của nhiều công nghệ tiên tiến nhất hiện nay, đã được nhà phát triển bởi hãng công nghệ rất nổi tiếng hiện nay là Google hậu thuẫn Android đã nhanh chóng là đối thủ cạnh tranh mạnh
mẽ với các hệ điều hành trước đó và đang là hệ điều hành di động của tương lai và được nhiều người ưa chuộng nhất
Ngày nay, với sự phát triển chóng mặt của các thiết bị di động như vậy, cùng với nhu cầu học tập mọi lúc mọi nơi không chỉ trên sách vở, máy tính mà còn
có thể mang đi mọi nơi, dùng mọi thời điểm là rất cần thiết Chính vì vậy em đã
chọn đề tài “Xây dựng phần mềm học tiếng anh giao tiếp trên hệ điều hành
7
Trang 8Android” với mục đích nghiên cứu, tìm hiểu về hệ điều hành Android và xây
dựng chương trình học tiếng anh để có thể đáp ứng được nhu cầu học tập, giao tiếp tiếng anh mọi lúc, mọi nơi
Trang 9CHƯƠNG 1: CƠ SỞ LÝ THUYẾT
Và sau tiếp, vào cuối năm 2007, thuộc về Liên minh thiết bị cầm tay mã nguồn mở (Open Handset Alliance) Mục tiêu của liên minh này là nhanh chóng đổi mới để đáp ứng tốt hơn cho nhu cầu người tiêu dùng và kết quả đầu tiên của nó chính là nền tảng Android Android được thiết kế để phục vụ nhu cầu của các nhà sản xuất thiết bị, các nhà khai thác và các lập trình viên thiết bị cầm tay
Phiên bản SDK (Software Development Kit) lần đầu tiên phát hành vào tháng 11 năm 2007, hãng T-Mobile cũng công bố chiếc điện thoại Android đầu tiên đó là chiếc T-Mobile G1, chiếc smartphone đầu tiên dựa trên nền tảng Android Một vài ngày sau đó, Google lại tiếp tục công bố sự ra mắt phiên bản Android SDK release Candidate 1.0 Trong tháng 10 năm 2008, Google được cấp giấy phép mã nguồn mở cho Android Platform
Vào cuối năm 2008, Google cho phát hành một thiết bị cầm tay được gọi là Android Dev Phone 1 có thể chạy được các ứng dụng Android mà không bị ràng buộc vào các nhà cung cấp mạng điện thoại di động Mục tiêu của thiết bị này là cho phép các nhà phát triển thực hiện các cuộc thí nghiệm trên một thiết bị thực có thể chạy hệ điều hành Android mà không phải ký một bản hợp đồng nào Vào khoảng cùng thời gian đó thì Google cũng cho phát hành một phiên bản vá lỗi 1.1 của hệ điều hành này Ở cả hai phiên bản 1.0 và 1.1 Android chưa hỗ trợ soft-
9
Trang 10keyboard mà đòi hỏi các thiết bị phải sử dụng bàn phím vật lý Android cố định vấn đề này bằng cách phát hành SDK 1.5 vào tháng tư năm 2009, cùng với một số tính năng khác Chẳng hạn như nâng cao khả năng ghi âm truyền thông, vật dụng,
và các live folder
Các phiên bản HĐH Android
Android đã trải qua một số các cập nhật kể từ lần đầu phát hành Những cập nhật này nhìn chung có nhiệm vụ vá các lỗ hổng và thêm các tính năng mới vào hệ điều hành
Hình 1.1 : Logo các phiên bản hệ điều hành Android
Android những thế hệ đầu tiên 1.0 (9-2008) và 1.1 (2-2009) chưa có tên gọi chính thức Từ thế hệ tiếp theo, mỗi bản nâng cấp đều được đặt với những mã tên riêng dựa theo các món ăn hấp dẫn theo thứ tự bảng chữ cái từ “C-D-E-F-G-H-I-J-K-L-M” Hiện tại các phiên bản chính của Android bao gồm:
Trang 11Android 1.5 (Cupcake): Ra mắt tháng 4-2009: Phiên bản này có một số
tính năng đáng chú ý như: khả năng ghi lại và xem video thông qua chế độ máy ghi hình, tải video lên YouTube và ảnh lên Picasa trực tiếp từ điện thoại, tích hợp bàn phím ảo với khả năng đoán trước văn bản, tự động kết nối với một thiết bị Bluetooth trong một khoảng cách nhất định, các widget và thư mục mới có thể cài đặt linh động trên màn hình chủ
Android 1.6 (Donut): Ra mắt tháng 9-2009: Phiên bản này giúp nâng cao
trải nghiệm trên kho ứng dụng Android Market, tích hợp giao diện tùy biến cho phép người dùng xóa nhiều ảnh cùng lúc, nâng cấp Voice Search, nâng cấp khả năng tìm kiếm bookmarks, history, contacts và web trên màn hình chủ, bước đầu
hỗ trợ màn hình độ phân giải WVGA
Android 2.0/2.1 (Eclair): Ra mắt tháng 10-2009: Phiên bản này có sự cải thiện
rõ rệt trong giao diện người dùng, tối ưu hóa tốc độ phần cứng, hỗ trợ nhiều kích cỡ và
độ phân giải màn hình hơn, thay đổi giao diện duyệt web và hỗ trợ chuẩn HTML5, Exchange ActiveSync 2.5, nâng cấp Google Maps 3.1.2, camera zoom kĩ thuật số tích hợp đèn flash, nâng cấp bàn phím ảo và kết nối Bluetooth 2.1
Android 2.2 (Froyo): Ra mắt tháng 5-2010: Phiên bản này chú trọng nâng
cấp tốc độ xử lí, giới thiệu engine Chrome V8 JavaScript, hỗ trợ Adobe Flash10.1, thêm tính năng tạo điểm truy cập Wi-Fi Một tính năng đáng chú ý khác hỗ trợ chuyển đổi nhanh chóng giữa các ngôn ngữ và từ điển trên bàn phím đồng thời cho phép cài đặt và cập nhật ứng dụng ở các thiết bị mở rộng bộ nhớ Một trong những smartphone đầu tiên chạy phiên bản Android 2.2 Froyo là LG Optimus One
Android 2.3 (Gingerbread): Ra mắt tháng 12-2010: Phiên bản này được
nâng cấp đáng kể giao diện người dùng, cải thiện bàn phím ảo, thêm tính năng copy/paste, hỗ trợ công nghệ giao tiếp tầm sóng ngắn NFC, hỗ trợ chuẩn video WebM và nâng cao tính năng copy–paste Cùng với phiên bản Gingerbread, Google cũng ra mắt điện thoại đầu tiên của hãng sử dụng nền tảng này là Google Nexus S
11
Trang 12Android 3.2 (Honeycomb): Ra mắt tháng 2-2011: Đây là phiên bản hệ
điều hành dành riêng cho máy tính bảng tablet với giao diện mới tối ưu hóa cho tablet, từ các thao tác đều phụ thuộc màn hình cảm ứng (như lướt web, duyệt mail ) Honeycomb hỗ trợ bộ xử lí đa nhân và xử lý đồ họa đồng thời hỗ trợ nhiều màn hình home khác nhau, cho phép người dùng dễ dàng tùy biến giao diện nếu muốn
Android 4.0 (Ice-cream sandwich): Ra mắt tháng 10-2011, là sự kết hợp
giữa Gingerbread và Honeycomb và sẽ chạy trên tất cả các thiết bị như điện thoại, máy tính bảng, máy tính xách tay…
Android 4.1 (Jelly Bean): Ra mắt 9-7-2012: Máy tính bảngNexus 7, sản phẩm hợp tác giữa Google và Asus, là thiết bị dùng Jelly Bean đầu tiên ra mắt Android 4.1 nâng tầm hoạt động cho hệ điều hành của Google, trở thành hệ điều hành cho thiết bị di động hàng đầu hiện nay, đe dọa cả "ông lớn" Windows
Hình 1.2: Biểu tượng Robot Android
Android 4.2 (vẫn là Jelly Bean): Ra mắt tháng 11-2012: Chỉ sau gần năm
tháng ra mắt Android 4.1, Google tiếp tục bồi thêm sức nặng cho Android với phiên bản 4.2 và vẫn mang tên mã Jelly Bean
Android 4.2 tiếp tục mang đến những cải tiến hấp dẫn cho ứng dụng chụp
Trang 13ảnh (Camera) như HDR, Photo Sphere, hiệu ứng ảnh, Google Now, đưa tính năng lướt chọn từ rất hay trong bàn phím ảo Chức năng "bom tấn" hỗ trợ nhiều tài khoản người dùng (multi-user profile) lần đầu tiên được áp dụng trong Android 4.2 nhưng chỉ có người dùng máy tính bảng thừa hưởng chức năng này.
Android 4.3 (vẫn là Jelly Bean): Ra mắt vào ngày 24-7-2013, không có
thay đổi lớn về cả giao diện lẫn cấu trúc so với Android 4.1 và 4.2 trước đó, phiên bản 4.3 có thể coi là một bản nâng cấp nhỏ mà Google dành cho hệ điều hành của hãng
Android 4.4 (Kitkat): Ra mắt vào 1-11-2013, chấm dứt chuỗi ngày “nhàm
chán” với ba phiên bản khác nhau của Android Jelly Bean KitKat được coi là phiên bản Android “dễ tính” nhất từ trước đến nay khi nó được thiết kế cho tất cả các thiết bị có bộ nhớ RAM 512MB trở lên
Android 5.0 Lollipop: Sau hơn một năm Android 4.0 KitKat ra mắt,
Google đã chính thức trình làng phiên bản hậu duệ mới nhất với tên gọi Android Lollipop, được đánh giá là hệ điều hành có những thay đổi rõ rệt và đáng kể nhất trong lịch sử Android từ trước đến nay Thiết kế "Material" mới: Ngôn ngữ đồ họa mới của Android được lấy cảm hứng từ thiên nhiên, vật lý và phong cách đậm, đổ bóng giống như in ấn Nói cách khác, đó là một thiết kế dựa trên những đặc tính của giấy
Android M (Mash Mallow): ra mắt vào ngày 29-05-2015 là bản cập nhật
không quá lớn nhưng nó giúp hệ điều hành của Google trở nên thông minh, tối ưu
và hoàn hảo hơn so với phiên bản Lollipop
Kiến trúc Android
Mô hình tổng quát các thành phần của hệ điều hành Android:
13
Trang 14Hình 1.3: Kiến trúc Android
Linux Kernel
Hệ điều hành android được phát triển dựa trên hạt nhân linux, cụ thể là hạt nhân linux phiên bản 2.6, điều đó được thể hiện ở lớp dưới cùng này Tất cả mọi hoạt động của điện thoại muốn thi hành được thì đều được thực hiện ở mức cấp thấp ở lớp này bao gồm quản lý bộ nhớ (memory management), giao tiếp với phần cứng (driver model), thực hiện bảo mật (security), quản lý tiến trình (process)
Trang 15Hình 1.4: Kiến trúc Linux Kernel
Tuy được phát triển dựa vào nhân linux nhưng thực ra nhân linux đã được nâng cấp và sửa đổi rất nhiều để phù hợp với tính chất của những thiết bị cầm tay như hạn chế về bộ vi xử lý, dung lượng bộ nhớ, kích thước màn hình, nhu cần kết nối mạng không dây
Các thành phần của nhân Linux:
Display Driver: Điều khiển việc hiển thị lên màn hình cũng như thu nhận những điều khiển của người dùng lên màn hình (di chuyển, cảm ứng )
Camera Driver: Điều kiển hoạt động của camera, nhận luồng dữ liệu từ camera trả về
Bluetooth Driver: Điều khiển thiết bị phát và thu sóng Bluetooth
USB driver: Quản lý hoạt động của các cổng giao tiếp USB
Keypad driver: Điều khiển bàn phím
Wifi Driver: Chịu trách nhiệm về việc thu phát sóng wifi
Audio Driver: Điều khiển các bộ thu phát âm thanh, giải mã các tính hiệu dạng audio thành tín hiệu số và ngược lại
Power Madagement: Giám sát việc tiêu thụ điện năng
M-System Driver: Quản lý việc đọc ghi lên các thiết bị nhớ như thẻ
SD, flash
15
Trang 16 Binder IPC Driver: Chịu trách nhiệm về việc kết nối và liên lạc với mạng vô tuyến như CDMA, GSM, 3G, 4G, E để đảm bảo những chức năng truyền thông được thực hiện.
Library và Android Runtime
Phần này có 2 thành phần là phần Library và Android Runtime
Library
Thành phần này có nhiều thư viện được viết bằng C/C++ để các phần mềm
có thể sử dụng, các thư viện đó được tập hợp thành một số nhóm như:
Thư viện hệ thống (System C library)(Libc): Thư viện dựa trên chuẩn
C, được sử dụng chỉ bởi hệ điều hành
Thư viện Media (Media Libraries): Có nhiều codec để hỗ trợ việc phát
và ghi các loại định dạng âm thanh, hình ảnh, video thông dụng
Thư viện web (LibWebCore) : Đây là thành phần để xem nội dung trên web, được sử dụng để xây dựng phần mềm duyệt web (Android Browse) cũng như
để các ứng dụng khác có thể nhúng vào Nó cực kỳ mạnh, hỗ trợ được nhiều công nghệ mạnh mẽ như HTML5, JavaScript, CSS, DOM, AJAX
Surface Manage: Quản lý hiển thị 2D và 3D
SGL công nghệ 2D
SQLite : Quản lý database của ứng dụng
Free Type: Dùng cho hiển thị ảnh, font
SSL(Secure Socket Layer): Tầng thiết lập giao dịch an toàn trên 2 ứng dụng trên 1 cổng (socket)
Open GL/EL: Hỗ trợ thư viện tùy chọn 3D tĩnh và động
Android runtime
Phần này chứa các thư viện mà một chương trình viết bằng ngôn ngữ Java
có thể hoạt động Phần này có 2 bộ phận tương tự như mô hình chạy Java trên máy tính thường Thứ nhất là các thư viện lõi (Core Library), chứa các lớp như JAVA
Trang 17IO, Collections, File Access Thứ hai là một máy ảo java (Dalvik Virtual Machine).
Framework
Bằng cách cung cấp một nền tảng phát triển mở, Android cung cấp cho các nhà phát triển khả năng xây dựng các ứng dụng cực kỳ phong phú và sáng tạo Nhà phát triển được tự do tận dụng các thiết bị phần cứng, thông tin địa điểm truy cập, các dịch vụ chạy nền, thiết lập hệ thống báo động, thêm các thông báo để các thanh trạng thái, và nhiều, nhiều hơn nữa
Hình 1.5: Kiến trúc Framework
Nhà phát triển có thể truy cập vào các API cùng một khuôn khổ được sử dụng bởi các ứng dụng lõi Các kiến trúc ứng dụng được thiết kế để đơn giản hóa việc sử dụng lại các thành phần Cơ bản tất cả các ứng dụng là một bộ các dịch vụ
và các hệ thống, bao gồm:
View Manage: Một tập hợp rất nhiều các View có khả năng kế thừa lẫn nhau dùng để thiết kế phần giao diện ứng dụng như: gridview, tableview, linearlayout…
Activity Manager: Quản lý các chu kỳ sống của một ứng dụng cũng như cung cấp công cụ điều khiển các Activity
Telephony Manager: Cung cấp công cụ để thực hiện việc liên lạc như
17
Trang 18gọi điện thoại
Location Manager: Cho phép xác định vị trí của điện thoại thoại dựa vào
hệ thống định vị toàn cầu GPS và Google Maps
Window Manager: Quản lý việc xây dựng và hiển thị các giao diện người dùng cũng như tổ chức quản lý các giao diện giữa các ứng dụng
Notication Manager: Quản lý việc hiển thị các thông báo (như báo có tin nhắn, có e-mail mới)
Resource Manager: Quản lý tài nguyên tĩnh của các ứng dụng bao gồm các file hình ảnh, âm thanh, layout, string (Những thành phần không được viết bởi ngôn ngữ lập trình)
Content Provider: Cho phép các ứng dụng có thể truy xuất dữ liệu từ các ứng dụng khác (chẳng hạn như Contacts) hoặc là chia sẻ dữ liệu giữa các ứng dụng đó
Application
Đây là lớp ứng dụng giao tiếp với người dùng, bao gồm các ứng dụng như: Các ứng dụng cơ bản, được cài đặt đi liền với hệ điều hành là gọi điện (phone), quản lý danh bạ (Contacts), duyệt web (Browser), nhắn tin (SMS), lịch làm việc (Calendar), đọc e-mail (Email-Client), bản đồ (Map), quay phim chụp ảnh (camera) Các ứng dụng được cài thêm như các phần mềm chứng khoán (Stock), các trò chơi (Game), từ điển, các widget các ứng dụng của bên thứ 3…
Trang 19Class cơ sở Activity định nghĩa một loạt các sự kiện mà điều chỉnh vòng đời của một hoạt động Class Activity định nghĩa các sự kiện sau đây:
onCreate(): Được gọi khi hoạt động được tạo ra lần đầu tiên.
onStart(): Được gọi khi hoạt động trở nên hữu hình so với người dùng.
onResume(): Được gọi khi hoạt động bắt đầu tương tác với người sử
dụng
onPause(): Được gọi để dừng các hoạt động hiện tại và nối lại các hoạt
động trước đó
onStop(): Được gọi khi hoạt động không còn hiển thị với người dùng.
onDestroy(): Được gọi trước khi hoạt động bị phá hủy bởi hệ thống
(bằng tay hoặc bằng hệ thống để bảo tồn bộ nhớ)
onRestart(): Được gọi khi hệ thống đã được dừng lại và khởi động lại
một lần nữa
19
Trang 20Hình 1.6: Vòng đời hoạt động của 1 ứng dụng Android
Intent:
Là một cấu trúc dữ liệu mô tả cách thức, đối tượng thực hiện của một Activity Là cầu nối giữa các Activity: ứng dụng Android thường bao gồm nhiều Activity, mỗi Activity hoạt động độc lập với nhau và thực hiện những công việc khác nhau Intent chính là người đưa thư, giúp các Activity có thể triệu gọi cũng
Trang 21như truyền các dữ liệu cần thiết tới một Activity khác
Hình 1.7: Quá trình hoạt động của Itent
21
Trang 22 Service
Một service không có giao diện trực quan, nó chạy trên nền trong một khoảng thời gian không xác định Ví dụ một service có thể chơi nhạc nền, hay nó nạp dữ liệu trên mạng hay tính toán cái gì đó và cung cấp kết quả cho activity cần đến nó Mỗi service mở rộng từ lớp cơ sở Service
Hình 1.8 : Vòng đời của Service
Broadcast Reveive
Một Broadcast Rreceiver là một thành phần không làm gì ngoài việc nhận
Trang 23và đáp lại các thông báo broadcast Các ứng dụng có thể tạo ra các broadcast, chẳng hạn để ứng dụng khác biết được một số dữ liệu đã được tải về thiết bị và sẵn sàng cho việc sử dụng chúng.
Một ứng dụng có thể có một số Broadcast Receiver để đáp lại bất cứ thông báo nào mà nó cho là quan trọng Tất cả các receiver mở rộng từ lớp cơ sở BroadcastReceiver Broadcast Receiver không hiển thị một giao diện người dùng
Content Provider
Một content provider tạo ra một tập cụ thể các dữ liệu của ứng dụng khả dụng cho các ứng dụng khác Dữ liệu có thể được lưu trữ trong hệ thống file, trong một cơ sở dữ liệu SQLite, hay trong một cách khác nào đó Content provider mở rộng lớp cơ sở ContentProvider để cài đặt một tập các chuẩn các phương thức cho phép các ứng dụng khác đạt được và lưu trữ dữ liệu của kiểu mà nó điều khiển Tuy nhiên, các ứng dụng không gọi trực tiếp các phương thức này, chúng sử dụng một đối tượng ContentResolver và gọi các phương thức của nó Một ContentResolver có thể nói chuyện với bất cứ content provider nào, chúng cộng tác với provider để quản lý giao tiếp liên tiến trình
Manifest File
Trước khi Android có thể khởi động một thành phần ứng dụng, nó phải biết rằng thành phần đó tồn tại Vì vậy, ứng dụng khai báo những thành phần của mình trong một manifest file được gắn vào Android package, file apk này cũng giữ chứa mã của ứng dụng và các tài nguyên
Manifest file là một file XML có cấu trúc và thường được đặt tên là AndroidManifest.xml cho mọi ứng dụng Nó thực hiện một số bổ sung để khai báo các thành phần của ứng dụng, như là nêu tên các thư viện ứng dụng cần đến, và xác định các quyền hạn của ứng dụng muốn được cấp
Giao diện người dùng trong Android
Trong một ứng dụng Android, giao diện người dùng được xây dựng bằng cách sử dụng View và ViewGroup đối tượng Có nhiều loại quan điểm và các
23
Trang 24nhóm view, mỗi một trong số đó là hậu duệ của lớp View View objects là các đơn
vị cơ bản của biểu hiện giao diện người dùng trên nền tảng Android Các class xem như là cơ sở phục vụ cho class con được gọi là "widget", trong đó cung cấp đầy đủ các đối tượng thực hiện giao diện, giống như các lĩnh vực văn bản và nút Class ViewGroup phục vụ như là cơ sở cho lớp con được gọi là "layouts", cung cấp các loại khác nhau của kiến trúc bố trí, như linear và relative
Các thành phần trong giao diện Widget
Có rất nhiều cách bố trí giao diện Sử dụng nhiều hơn và các loại khác nhau của các view group, bạn có thể cấu trúc views con và view groups trong vô số cách Xác định các nhóm xem được cung cấp bởi Android (gọi là layouts) bao gồm LinearLayout, RelativeLayout, TableLayout, GridLayout và các layout khác Mỗi layout cung cấp một bộ duy nhất của các thông số bố trí được sử dụng để xác định
vị trí của views con và cơ cấu layout để tìm hiểu về một số các loại khác nhau của các view group được sử dụng cho một layout, đọc giao diện đối tượng thường gặp
Bắt sự kiện trong Android
Khi đã thêm một số Views/widgets đến giao diện Để được thông báo về UI events người dùng, cần phải làm một trong hai điều: Xác định một sự kiện nghe và đăng ký nó với các View Đây là cách lắng nghe sự kiện Các class View có một
phương pháp gọi là On<something>().
Ghi đè một callback method hiện cho View Đây là những gì nên làm gì khi
đã thực hiện lớp View của riêng bạn và muốn lắng nghe cho các sự kiện cụ thể xảy
ra trong nó Ví dụ về các sự kiện có thể xử lý bao gồm màn hình là
touchedonTouchEvent() khi trackball là di chuyển onTrackballEvent() hoặc khi một phím trên thiết bị được nhấn onKeyDown() Điều này cho phép xác định các
hành vi mặc định cho từng sự kiện bên trong tuỳ chỉnh View và xác định xem sự kiện này cần được thông qua ngày để View con khác Một lần nữa, đây là những callbacks View class, do đó, cơ hội duy nhất của bạn để xác định đó là khi bạn xây
Trang 25dựng một phần tùy chỉnh.
Menu
Menu đơn có một phần quan trọng của giao diện người dùng trong một ứng dụng Menus cung cấp một giao diện đáng tin cậy cho thấy rằng các chức năng ứng dụng và cài đặt Trong trình đơn ứng dụng phổ biến nhất là tiết lộ bằng cách bấm phím MENU trên thiết bị Tuy nhiên, cũng có thể thêm Context Menus, có thể hiển thị khi người sử dụng máy nhấn và nắm giữ phím trên một mục Thực đơn cũng được hệ thống phân cấp cấu trúc bằng cách sử dụng một xem, nhưng bạn không xác định cấu trúc này cho mình
Thay vào đó, xác định onCreateOptionsMenu() or onCreateContext Menu()
gọi method cho hoạt động của mình và tuyên bố các mục mà mình muốn bao gồm trong menu của mình Trong một thời gian thích hợp, Android sẽ tự động tạo ra hệ thống View phân cấp cần thiết cho menu, và rút ra trong mỗi menu items đó
Hệ quản trị CSDL SQLite
Mỗi ứng dụng đều sử dụng dữ liệu, dữ liệu có thể đơn giản hay đôi khi là cả
1 cấu trúc Trong Android thì hệ cơ sở dữ liệu được sử dụng là SQLite Database, đây là hệ thống mã nguồn mở được sử dụng rộng rãi trong các ứng dụng (Mozilla Firefox sử dụng SQLite để lưu trữ các dữ liệu về cấu hình, iPhone cũng sử dụng cơ
sở dữ liệu là SQLite)
Trong Androidd, cơ sở dữ liệu mà bạn tạo cho 1 ứng dụng thì chỉ ứng dụng
đó có quyền truy cập và sử dụng, các ứng dụng khác thì không Khi được tạo, cơ
sở dữ liệu SQLite được chứa trong thư mục:
/data/data/<package_name>/databases.
Giới thiệ về SQLite
SQLite là một SQL embedded database engine SQLite không có server,
nó đọc và ghi dữ liệu trực tiếp xuống file
Định dạng file của SQLite là cross-platform Ta có thể sao chép, sử dụng dữ liệu ở bất cứ hệ điều hành nào
25
Trang 26 SQLite rất nhẹ, kích thước tối đa cỡ 250KB SQLite thích hợp cho các ứng dụng chạy trên điện thoại di động, pda hay các thiết bị có bộ nhớ nhỏ.
SQLite rất ổn định
SQLite hoàn toàn miễn phí và mã mở
SQLite hỗ trợ ngôn ngữ SQL với đầy đủ table, trigger, view, transactional, index
Chương trình viết bằng SQLite khi cài đặt không cần phải cài thêm CSDL, có thể đem chạy bất cứ đâu
Ưu điểm:
Tin cậy: các hoạt động transaction (chuyển giao) nội trong cơ sở dữ liệu được thưc hiện trọn vẹn, không gây lỗi khi xảy ra sự cố phần cứng
Tuân theo chuẩn SQL92 (chỉ có một vài đặc điểm không hỗ trợ)
Không cần cài đặt cấu hình
Cho phép nhập kiểu dữ liệu động – dynamically typed VD: có thể chèn
1 dữ liệu kiểu string vào 1 cột column kiểu integer
Chưa hỗ trợ foreign key
Chưa hỗ trợ các lệnh alter table: drop column, alter column, add constraint
Trang 27 Nested transactions
Các binding (Các gói kèm theo)
Cũng như các thư viện nguồn mở nói chung, SQLite được phát triển các binding (gói kèm) các ngôn ngữ thông dụng: PHP, Perl, Java, Python, Ruby, Tcl
SQLite là một cơ sở dữ liệu đơn giản, nhanh chóng, không cần giao thức server/client, tất cả db được lưu trong duy nhất một file SQLite hỗ trợ khá nhiều các lệnh của SQL cơ bản SQLite rất thích hợp cho các site nhỏ, không cần các cơ
Trang 28Tạo 1 lớp bên trong DBAdapter được extend từ lớp SQLiteOpenHelper,
override 2 phương thức onCreate() và onUpgrade() để quản lý việc tạo CSDL và
version của CSDL đó
Trang 31Để test CSDL vừa tạo, có thể thêm 1 vài dòng code để thêm 1 user và hiển thị CSDL lên màn hình thông qua lớp Activity ban đầu.
Create 1 user thông qua câu lệnh :
mDB.createUser("Username");
1.5 Trí tuệ nhân tạo
1.5.1 Tổng quan về khoa học Trí tuệ nhân tạo
Trong Công Nghệ Thông Tin, Trí Tuệ Nhân Tạo (Artificial Intelligence) là một ngành mới, nhưng phát triển rất mạnh mẽ và đem lại nhiều kết quả to lớn Con người thường tự cho mình là sinh vật thông minh vì khả năng trí tuệ đóng vai trò quan trong trong cuộc sống Trong văn học cũng đã từng có những câu chuyện đề cao về trí thông minh của con người
Trí Tuệ Nhân Tạo chỉ mới hình thành từ năm 1956 Tuy nhiên, việc nghiên cứu trí tuệ đã có từ lâu Trên 2000 năm trước, các nhà triết học đã tìm hiểu về cách thức nhìn nhận, học tập, nhớ và suy lý Việc ra đời của máy tính điện tử vào những
31
Trang 32năm 50 của thế kỷ 20 đã sinh ra khuynh hướng đưa các lĩnh vực nghiên cứu trí tuệ
về các vấn đề lý thuyết và thực nghiệm trên máy
Đối tượng và mục tiêu nghiên cứu của trí tuệ nhân tạo
Trí tuệ nhân tạo nghiên cứu về cách hành xử thông minh (intelligent behaviour) với mục tiêu là xây dựng lý thuyết đầy đủ về thông minh để có thể giải thích được hoạt động thông minh của sinh vật và áp dụng được các hiểu biết vào các máy móc nói chung, nhằm phục vụ cho con người
- Về mặt kỹ thuật: Tạo ra các máy thông minh để giải quyết vấn đề thực tế
dùng các kỹ thuật AI
- Khoa học: Phát triển các khái niệm và thuật ngữ để hiểu được các hành
xử thông minh của sinh vật
1.5.3 Vai trò của Trí Tuệ Nhân Tạo
Trí tuệ nhân tạo bao quát rất nhiều lĩnh vực nghiên cứu hẹp Nó nghiên cứu
từ các lĩnh vực tổng quát như máy nhận biết, suy luận logic, đến các bài toán như chơi cờ, chứng minh định lý Thường thì các nhà khoa học ở các lĩnh vực khác tìm đến với trí tuệ nhân tạo ở các kỹ thuật hệ thống hoá và tự động hoá các xử lý tri thức cũng như các phương pháp thuộc lĩnh vực mang tính người
Trí tuệ nhân tạo nghiên cứu kỹ thuật làm cho máy tính có thể “suy nghĩ một cách thông minh” và mô phỏng quá trình suy nghĩ của con người khi đưa ra những quyết định, lời giải Trên cơ sở đó, thiết kế các chương trình cho máy tính để giải quyết bài toán
Sự ra đời và phát triển của Trí tuệ nhân tạo đã tạo ra một bước nhảy vọt về chất trong kỹ thuật và kỹ nghệ xử lý thông tin Trí tuệ nhân tạo chính là cơ sở của công nghệ xử lý thông tin mới, độc lập với công nghệ xử lý thông tin truyền thống dựa trên văn bản giấy tờ Điều này được thể hiện qua các mặt sau:
Nhờ những công cụ hình thức hoá (các mô hinh logic ngôn ngữ, logic mờ, ), các tri thức thủ tục và tri thức mô tả có thể biểu diễn được trong máy Do vậy quá trình giải bài toán được tiến hành hữu hiệu hơn
Trang 33 Mô hình logic ngôn ngữ đã mở rộng khả năng ứng dụng của máy tính trong lĩnh vực đòi hỏi tri thức chuyên gia ở trình độ cao, rất khó như: y học, sinh học, địa lý, tự động hóa
Một số phần mềm trí tuệ nhân tạo thể hiện tính thích nghi và tính mềm dẻo đối với các lớp bài toán thuộc nhiều lĩnh vực khác nhau
Khi máy tính được trang bị các phần mềm trí tuệ nhân tạo ghép mạng sẽ cho phép giải quyết những bài toán cỡ lớn và phân tán
1.5.4 Các kỹ thuật Trí tuệ nhân tạo
Có nhiều kỹ thuật nghiên cứu, phát triển ngành khoa học Trí tuệ nhân tạo Tuy vậy, các kỹ thuật Trí tuệ nhân tạo thường khá phức tạp khi cài đặt cụ thể, lý do
là các kỹ thuật này thiên về xử lý các ký hiệu tượng trưng và đòi hỏi phải sử dụng những tri thức chuyên môn thuộc nhiều lĩnh vực khác nhau
Do vậy, các kỹ thuật Trí tuệ nhân tạo hướng tới khai thác những tri thức về lĩnh vực đang quan tâm được mã hoá trong máy sao cho đạt được mức độ tổng quát; dễ hiểu, dễ diễn đạt thông qua ngôn ngữ chuyên môn gần gũi với ngôn ngữ
tự nhiên, dễ sửa đổi, hiệu chỉnh, dễ sử dụng, khai thác nhằm thu hẹp các khả năng cần xét để đi tới lời giải cuối cùng
Các kỹ thuật Trí tuệ nhân tạo cơ bản bao gồm :
Lý thuyết giải bài toán và suy diễn thông minh: Lý thuyết giải bài
toán cho phép viết các chương trình giải câu đố, chơi các trò chơi thông qua các suy luận mang tính người; các hệ thống chứng minh định lý Ngoài ra các hệ thống hỏi đáp thông minh còn cho phép lưu trữ và xử lý khối lượng lớn các thông tin
Lý thuyết tìm kiếm may rủi: Lý thuyết này bao gồm các phương pháp
và kỹ thuật tìm kiếm với sự hỗ trợ của thông tin phụ để giải bài toán một cách có hiệu quả
Các ngôn ngữ về Trí tuệ nhân tạo: Để xử lý các tri thức người ta
không chỉ sử dụng các ngôn ngữ lập trình dùng cho các xử lý dữ liệu số, mà cần có ngôn ngữ khác Các ngôn ngữ chuyên dụng này cho phép lưu trữ và xử lý thông tin
33
Trang 34ký hiệu Một số ngôn ngữ được nhiều người biết đến là IPL.V, LISP, PROLOG.
Lý thuyết thể hiện tri thức và hệ chuyên gia: Trí tuệ nhân tạo là khoa
học về thể hiện và sử dụng tri thức Mạng ngữ nghĩa, lược đồ, logic vị từ, khung là các phương pháp thể hiện tri thức thông dụng Việc gắn liền cách thể hiện và sử dụng tri thức là cơ sở hình thành hệ chuyên gia
Lý thuyết nhận dạng và xử lý tiếng nói: Giai đoạn phát triển đầu của
Trí tuệ nhân tạo gắn với lý thuyết nhận dạng Các phương pháp nhận dạng chính gồm: nhận dạng hình học, nhận dạng dùng tâm lý học, nhận dạng theo phương pháp hàm thế, dùng máy nhận dạng Ứng dụng của phương pháp này trong việc nhận dạng chữ viết, âm thanh
Người máy: Cuối những năm 70, người máy trong công nghiệp đã đạt
được nhiều tiến bộ Người máy có bộ phận cảm nhận và các cơ chế hoạt động được nối ghép theo sự điều khiển thông minh Khoa học về cơ học và Trí tuệ nhân tạo được tích hợp trong khoa học người máy
Tâm lý học xử lý thông tin: Các kết quả nghiên cứu của tâm lý học
giúp Trí tuệ nhân tạo xây dựng các cơ chế trả lời theo hành vi, có ý thức; nó giúp cho việc thực hiện các suy diễn mang tính người
Ngoài ra, xử lý danh sách, kỹ thuật đệ quy, kỹ thuật quay lui và xử
lý cú pháp hình thức là những kỹ thuật cơ bản của tin học truyền thống có liên
quan trực tiếp đến Trí tuệ nhân tạo
1.5.5 Lịch sử phát triển của Trí Tuệ Nhân Tạo.
Lịch sử của Trí tuệ nhân tạo cho thấy ngành khoa học này có nhiều kết quả đáng ghi nhận Theo các mốc phát triển, người ta thấy Trí tuệ nhân tạo được sinh
ra từ những năm 50 với các sự kiện sau:
Turing được coi là người khai sinh ngành Trí tuệ nhân tạo bởi phát hiện của ông về máy tính có thể lưu trữ chương trình và dữ liệu
Tháng 8-1956 J.Mc Carthy, M Minsky, A Newell, Shannon Simon,…
Trang 35đưa ra khái niệm “Trí tuệ nhân tạo”
Vào khoảng năm 1960 tại Đại học MIT (Massachussets Institure of Technology) ngôn ngữ LISP ra đời, phù hợp với các nhu cầu xử lý đặc trưng của trí tuệ nhân tạo - đó là ngôn ngữ lập trình đầu tiên dùng cho trí tuệ nhân tạo
Thuật ngữ Trí tuệ nhân tạo được dùng đầu tiên vào năm 1961 cũng tại MIT
Những năm 60 là giai đoạn lạc quan cao độ về khả năng làm cho máy tính biết suy nghĩ Trong giai đoạn này người ta đã được chứng kiến máy chơi cờ đầu tiên và các chương trình chứng minh định lý tự động
35
Trang 36 Một số vấn đề Trí tuệ nhân tạo quan tâm
Những vấn đề chung
Khoa học Trí tuệ nhân tạo liên quan đến cảm giác, tri giác và cả quá trình tư duy thông qua các hành vi, giao tiếp Nó có các định hướng nghiên cứu, ứng dụng sau:
1- Tìm và nghiên cứu các thủ tục giúp con người tiến hành các hoạt động sáng tạo Công việc sáng tạo được thực hiện trên mô hình theo cấu trúc, chức năng
và sử dụng công nghệ thông tin
2- Dùng ngôn ngữ tự nhiên Trước hết là ngôn ngữ được dùng để thể hiện tri thức, tiếp thu và chuyển hoá sang dạng có thể xử lý được
3- Hình thức hoá các khía cạnh, các hành vi liên quan đến Trí tuệ nhân tạo
Do vậy có thể xây dựng các bài toán mang tính người và thông minh
Các hoạt động lớn trong Trí tuệ nhân tạo bao gồm: chứng minh định lý, xử
lý ngôn ngữ tự nhiên, hiểu tiếng nói, phân tích ảnh và hình, người máy và hệ chuyên gia Về cài đặt hệ thống, khuynh hướng hiện tại của Trí tuệ nhân tạo là cài đặt các hệ Trí tuệ nhân tạo trong các hệ thống khác, đặc biệt là trong các hệ thống tin học
Những vấn đề chưa được giải quyết trong Trí tuệ nhân tạo
Những thành tựu nghiên cứu và ứng dụng các kỹ thuật Trí tuệ nhân tạo đã khẳng định tính thực tiễn của các dự án xây dựng máy tính có khả năng suy nghĩ
Tuy vậy trong một số phạm vi, máy tính còn thua xa so với hoạt động của hệ thần kinh con người:
Sự khác nhau trong hoạt động giữa máy tính và bộ não con người, điều này thể hiện ưu thế của máy tính so với bộ não người vì khả năng tính toán rất lớn (nhất là trong các chương trình xử lý dữ liệu lớn)
Xử lý song song: Mặc dù công nghệ điện tử hiện đại cho phép xây dựng các
bộ đa xử lý, song máy tính không thể hoạt động song song như bộ não con người
Trang 37được
Khả năng diễn giải: Con người có thể xem xét cùng một vấn đề theo những
phương pháp khác nhau, từ đó diễn giải theo cách dễ hiểu nhất Ngược lại, sự linh hoạt này không thể mô phỏng được trong các hệ thống Trí tuệ nhân tạo
Logic rời rạc và tính liên tục: Một thách đố lớn với các hệ thống Trí tuệ
nhân tạo là khả năng kết hợp các phương pháp xử lý thông tin trong môi trường liên tục với các thao tác xử lý thông tin rời rạc
Khả năng học: Mặc dù hiện nay máy tính có nhiều tính năng cao nhưng
cũng không thể mô phỏng được hoàn toàn khả năng học giống bộ não con người
Khả năng tự tổ chức: Cho tới nay, người ta chưa thể tạo lập được các hệ
thống Trí tuệ nhân tạo có khả năng tự tổ chức, tự điều khiển hoạt động của nó để thích nghi với môi trường
Những vấn đề đặt ra trong tương lai của Trí tuệ nhân tạo.
Trong tương lai, những nghiên cứu và ứng dụng của Trí tuệ nhân tạo tập trung vào các vấn đề lớn sau:
Nghiên cứu và thử nghiệm các mạng Neuron, các hệ thống Trí tuệ nhân tạo
mô phỏng chức năng hoạt động của bộ não với các khả năng học, tự tổ chức, tự thích nghi, tổng quát hoá, xử lý song song, có khả năng diễn giải, xử lý thông tin liên tục và rời rạc
Nghiên cứu và tạo lập các hệ thống có giao tiếp thân thiện giữa người và máy trên cơ sở nghiên cứu nhận thức máy, thu thập và xử lý tri thức, xử lý thông tin hình ảnh, tiếng nói
Nghiên cứu các phương pháp biểu diễn tri thức và các phương pháp suy diễn thông minh, các phương pháp giải quyết vấn đề đối với những bài toán phụ thuộc không gian, thời gian
Ngày nay, thế giới đang chuyển mình trong những nghiên cứu về Trí tuệ nhân tạo Chắc chắn rằng máy tính với trí tuệ như con người sẽ tác động mạnh đến cuộc sống xã hội
37
Trang 38 Các khái niệm cơ bản
Trí tuệ con người (Human Intelligence): Cho đến nay có hai khái niệm về
trí tuệ con người được chấp nhận và sử dụng nhiều nhất, đó là:
Khái niệm trí tuệ theo quan điểm của Turing :
“Trí tuệ là những gì có thể đánh giá được thông qua các trắc nghiệm thông minh”
Khái niệm trí tuệ đưa ra trong tụ điển bách khoa toàn thư:
“Trí tuệ là khả năng phản ứng một cách thích hợp những tình huống mới thông qua hiệu chỉnh hành vi một cách thích đáng.”
Hiểu rõ những mối liên hệ qua lại của các sự kiện của thế giới bên ngoài nhằm đưa ra những hành động phù hợp đạt tới một mục đích nào đó
Những nghiên cứu các chuyên gia tâm lý học nhận thức chỉ ra rằng quá trình hoạt động trí tuệ của con người bao gồm 4 thao tác cơ bản:
4) Áp dụng các cơ chế suy diễn cụ thể (inference mechanisms) để đưa các
sự kiện ban đầu đi đến đích
Trí tuệ máy: cũng không có một định nghĩa tổng quát, nhưng cũng có thể
nêu các đặc trưng chính:
1) Khả năng học
2) Khả năng mô phỏng hành vi của con người
3) Khả năng trừu tượng hoá, tổng quát hoá và suy diễn
4) Khả năng tự giải thích hành vi
5) Khả năng thích nghi tình huống mới kể cả thu nạp tri thức và dữ liệu.6) Khả năng xử lý các biểu diễn hình thức như các ký hiệu tượng trưng
Trang 397) Khả năng sử dụng tri thức heuristic.
8) Khả năng xử lý các thông tin không đầy đủ, không chính xác
1.5.8 Một số chuyên ngành của Trí tuệ nhân tạo
1 Các phương pháp tìm kiếm lời giải
<aiml> biểu thị phiên bản AIML đang được dùng, mỗi file này chứa các phần tử AIML gồm có các đối tượng dữ liệu được gọi là đối tượng AIML AIML, mô tả một lớp các đối tượng dữ liệu được gọi là đối tượng AIML và một phần mô tả hành vi của chương trình máy tính xử lý chúng Các đối tượng AIML được tạo thành từ các topic và các category, trong đó bao gồm cả dữ liệu được phân tích hoặc chưa phân tích cú pháp
Dữ liệu đã phân tích cú pháp được tạo thành từ các ký tự và một số mẫu yếu
tố AIML Những yếu tố AIML gói gọn kiến thức phản hồi trong tài liệu Dữ liệu
ký tự trong những yếu tố này đôi khi được phân tích bằng một trình thông dịch AIML và đôi khi để lại chưa phân tích sau khi xử lý bởi một Responder
Trang 40< template > Xin chao, ban ten la gi ? </ template >
</ category >
</ aiml >
1.6.2 Các Category và đặc tính của AIML
Các đơn vị kiến thức cơ bản trong AIML được gọi là một category Mỗi category bao gồm một câu hỏi đầu vào, một câu trả lời đầu ra, và một bối cảnh tùy chọn Các câu hỏi, hoặc sự kích thích, được gọi là pattern Câu trả lời, hoặc phản hồi, được gọi là template Hai loại bối cảnh tùy chọn này được gọi là "that" và
"topic" Ngôn ngữ mô hình AIML, chỉ gồm các từ ngữ, dấu cách, và các biểu tượng ký tự đại diện “_” và “*” Những lời nói có thể bao gồm chữ cái và chữ số, nhưng không có các ký tự khác Ngôn ngữ mô hình là trường hợp bất biến Từ ngữ được phân cách bởi một dấu cách duy nhất, và các ký tự đại diện chức năng giống như lời nói
Các phiên bản đầu tiên của AIML cho phép chỉ có một ký tự đại diện cho một mô hình Tiêu chuẩn AIML 1.01 cho phép nhiều ký tự đại diện trong mỗi template, nhưng ngôn ngữ được thiết kế để đơn giản nhất có thể cho các nhiệm vụ chính, đơn giản hơn cả biểu thức thông thường Template là một phản hồi hoặc trả lời AIML Ở dạng đơn giản nhất, mẫu chỉ bao gồm bản rõ, văn bản không dấu
Tổng quan hơn, các thẻ AIML chuyển đổi câu trả lời vào một chương trình máy tính thu nhỏ có thể lưu dữ liệu, kích hoạt các chương trình khác, cho phản ứng
có điều kiện và đệ quy gọi các khớp mẫu để chèn cách câu trả lời từ các category khác Hầu hết các thẻ AIML trong thực tế thuộc về mẫu bên ngôn ngữ con