MỤC LỤC LỜI CAM ĐOAN LỜI CẢM ƠN MỤC LỤC DANH MỤC CÁC CHỮ VIẾT TẮT DANH MỤC HÌNH DANH MỤC BẢNG PHẦN MỞ ĐẦU 1 1. Tính cấp thiết của đề tài 1 2. Tổng quan về đề tài nghiên cứu 1 3. Mục đích nghiên cứu 1 4. Đối tượng nghiên cứu và phạm vi nghiên cứu 2 5. Phương pháp nghiên cứu 2 6. Những đóng góp của báo cáo 2 7. Kết cấu của báo cáo 3 CHƯƠNG 1: TỔNG QUAN VỀ CƠ SỞ LÝ THUYẾT 4 1.1. Tổng quan về lý thuyết đồ thị 4 1.1.1. Định nghĩa 4 1.1.2. Biểu diễn đồ thị trên máy tính 7 1.1.3. Ý nghĩa của lý thuyết đồ thị 11 1.2. Tổng quan về trí tuệ nhân tạo 13 1.2.1. Định nghĩa trí tuệ nhân tạo 13 1.2.2. Các nền tảng của trí tuệ nhân tạo 15 1.2.3. Các lĩnh vực trong trí tuệ nhân tạo 16 1.2.4.Các thành tựu nổi bật của trí tuệ nhân tạo hiện nay 20 1.3. Giới thiệu về thuật toán A 23 1.3.1. Sơ lược các bài toán tìm đường đi ngắn nhất 23 1.3.2. Thuật toán A 24 CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 32 2.1. Phân tích yêu cầu 32 2.1.1. Bài toán 32 2.1.2. Mục tiêu cần đạt 32 2.2. Phân tích hệ thống thông tin 32 2.2.1. Xác định tác nhân và các chức năng của chương trình 32 2.2.2. Biểu đồ Use Case tổng quát 33 2.2.3. Biểu đồ tuần tự 34 2.2.4. Biểu đồ hoạt động 35 CHƯƠNG 3: XÂY DỰNG CHƯƠNG TRÌNH GAME ỨNG DỤNG THUẬT TOÁN A 37 3.1. Giới thiệu về chương trình Game 37 3.2. Áp dụng thuật toán A vào Game 38 3.3. Xây dựng giao diện Game 41 3.3.1. Môi trường xây dựng 41 3.3.2. Giới thiệu về giao diện của Game 41 KẾT LUẬN VÀ KIẾN NGHỊ 48 HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI 49 TÀI LIỆU THAM KHẢO 51
Trang 1TRƯỜNG ĐẠI HỌC TÀI NGUYÊN VÀ MÔI TRƯỜNG HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
LẬP TRÌNH GAME ỨNG DỤNG THUẬT TOÁN A*
1
Trang 2Hà Nội – Năm 2017
2
Trang 3TRƯỜNG ĐẠI HỌC TÀI NGUYÊN VÀ MÔI TRƯỜNG HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
SINH VIÊN: NGUYỀN THỊ MY LINH
LẬP TRÌNH GAME ỨNG DỤNG THUẬT TOÁN A*
Chuyên ngành : Công nghệ thông tin Người hướng dẫn : Thạc sỹ Vũ Văn Huân
\
Hà Nội – Năm 2017
3
Trang 4LỜI CAM ĐOAN
Những nội dung trong đồ án tốt nghiệp này là thành quả từ sự nghiêncứu và được thực hiện dưới sự trực tiếp hướng dẫn của giảng viên hướng dẫnThạc sỹ Vũ Văn Huân
Đồ án được thực hiện hoàn toàn mới, là thành quả của riêng em, khôngsao chép theo bất cứ đồ án tương tự nào Mọi sự tham khảo sử dụng trong đồ
án đều được trích dẫn các nguồn tài liệu trong danh mục tài liệu tham khảo
Mọi sao chép không hợp lệ, vi phạm quy chế của nhà trường, em xinhoàn toàn chịu trách nhiệm
Sinh viên thực hiện
Nguyễn Thị My Linh
4
Trang 5LỜI CẢM ƠN
Trong suốt quá trình học tập tại Trường Đại Học Tài Nguyên và MôiTrường Hà Nội, chúng em đã được các thầy cô giảng dạy, giúp đỡ và đượctruyền đạt nhiều kiến thức vô cùng quý giá Ngoài ra, chúng em còn được rènluyện bản thân trong một môi trường học tập đầy sáng tạo và khoa học Đây
là một quá trình hết sức quan trọng giúp em có thể thành công khi bắt tay vàonghề nghiệp tương lai sau này Em xin chân thành cảm ơn Ban giám hiệu nhà
trường, Ban chủ nhiệm khoa công nghệ thông tin, cùng toàn thể các thầy cô
đã tận tình giảng dạy và trang bị cho em nhiều kiến thức bổ ích trong suốt quátrình học tập tại trường vừa qua Đây là quãng thời gian vô cùng hữu ích, đãgiúp em trưởng thành lên rất nhiều và là hành trang rất quan trọng không thểthiếu khi chuẩn bị ra trường và công việc sau này
Đặc biệt em xin cảm ơn đến thầy Vũ Văn Huân, thầy đã tận tình giúp
đỡ, trực tiếp chỉ bảo, hướng dẫn em trong suốt quá trình làm đồ án tốt nghiệp.Trong thời gian làm việc với thầy, em không ngừng tiếp thu thêm nhiều kiếnthức bổ ích mà còn học tập được tinh thần làm việc thái độ nghiên cứunghiêm túc, hiệu quả, đây là những điều rất cần thiết cho em trong quá trìnhhọc tập và công tác sau này
Mặc dù đã cố gắng trong suốt quá trình thực tập và làm đồ án, nhưng
do kinh nghiệm thực tế và trình độ chuyên môn chưa được nhiều nên emkhông tránh khỏi những thiếu sót, em rất mong được sự chỉ bảo, góp ý chânthành từ các thầy, cô giáo cùng tất cả các bạn
Em xin chân thành cảm ơn!
Sinh viên thực hiện
Nguyễn Thị My Linh
5
Trang 6MỤC LỤC
6
Trang 7DANH MỤC CÁC CHỮ VIẾT TẮT
Chữ viết tắt Tên tiếng anh Nghĩa tiếng việt
7
Trang 8DANH MỤC HÌNH
8
Trang 9DANH MỤC BẢNG
9
Trang 10PHẦN MỞ ĐẦU
1 Tính cấp thiết của đề tài
Trí tuệ nhân tạo là một lĩnh vực gắn liền với ngành công nghệ thông tin,hiện nay các sản phẩm game trí tuệ nhân tạo xuất hiện rất nhiều, và trí tuệnhân tạo đã trở nên quen thuộc dần với cuộc sống ngày nay
Thuật toán A* là một thuật toán tìm kiếm đồ thị nhằm đưa ra lựa chọntìm kiếm thông minh, tối ưu nhất để thỏa mãn yêu cầu bài toán đưa ra Trênthực tế, người ta sử dụng các thuật toán tìm kiếm tạo nên các chương trìnhnhằm phục vụ cho thực tiễn rất nhiều chẳng hạn như:
- Tạo nên các trạng thái di chuyển thông minh và an toàn nhất cho Robot
- Các chương trình tìm kiếm các đối tượng được định vị
- Các chức năng tìm kiếm đường đi ngắn nhất trên bản đồ…
Vậy nên em muốn đề xuất và thực hiện đề tài này để hiểu rõ hơn về thuậttoán tìm kiếm A* và ứng dụng được thuật toán vào một chương trình Gamecụthể sử dụng thuật toán để tìm kiếm đường đi tới đích một cách tối ưu nhất
2 Tổng quan về đề tài nghiên cứu
Đề tài sẽ hệ thống lại một số cơ sở lý thuyết về đồ thị và về thuật toántìm đường, từ đó sẽ áp dụng thuật toán tìm kiếm A* vào game
Đề tài được thực hiện nhằm mục đích xây dựng một hệ thống giải quyếtmột bài toán tìm kiếm đường đi thực tế dựa trên chiến lược tìm kiếmHeuristic và xây dựng một trò chơi ứng dụng thuật toán này
Trang 11• Vận dụng tốt các kiến thức lập trình nền tảng và kỹ thuật lập trình để tạo rasản phẩm Game ứng dụng thuật toán A*
4 Đối tượng nghiên cứu và phạm vi nghiên cứu
Đối tượng nghiên cứu gồm có:
• Tổng hợp kiến thức về lý thuyết đồ thị tìm kiếm
• Tìm hiểu thuật toán tìm kiếm A*
• Phân tích thiết kế cho chương trình game
• Ngôn ngữ lập trình: Java
• Công cụ lập trình: Phần mềm Eclipse
• Phầm mềm hỗ trợ phân tích thiết kế: Visual Paradigm
6 Những đóng góp của báo cáo
Đồ án hoàn thành có những đóng góp sau đây:
- Hệ thống hóa những vấn đề lý thuyết cơ bản về lý thuyết đồ thị, trí tuệ nhântạo
- Lý thuyết của thuật toán A*
- Chương trình Game ứng dụng thuật toán A*
Trang 127 Kết cấu của báo cáo
Đồ án gồm có 3 chương như sau:
Chương 1: Tổng quan về cơ sở lý thuyết
Chương này trình bày tổng quan về Lý thuyết đồ thị và giới thiệu về Trítuệ nhân tạo Đồng thời đề cập và giải thích về thuật toán A*
1.1 Tổng quan về lý thuyết đồ thị
1.2.Tổng quan về trí tuệ nhân tạo
1.3.Giới thiệu về thuật toán A*
Chương 2: Phân tích thiết kế hệ thống
Mô tả các chức năng của chương trình game và xây dựng các biểu đồcần thiết như Biểu đồ Use Case, biểu đồ Hoạt động, biểu đồ Tuần tự
2.1 Phân tích yêu cầu
2.2 Phân tích hệ thống thông tin
Chương 3: Xây dựng chương trình Game ứng dụng thuật toán A*
Trong chương này sẽ giải thích việc áp dụng thuật toán vào game nhưthế nào và Demo chương trình Game
3.1 Giới thiệu về chương trình Game
3.2 Áp dụng thuật toán A* vào Game
3.3 Xây dựng giao diện Game
CHƯƠNG 1: TỔNG QUAN VỀ CƠ SỞ LÝ THUYẾT
1.1 Tổng quan về lý thuyết đồ thị
1.1.1 Định nghĩa
Lý thuyết đồ thị là một lĩnh vực đã có từ lâu và có nhiều ứng dụng hiệnđại Những tư tưởng cơ bản của lý thuyết đồ thị được đề xuất vào những nămđầu của thế kỷ 18 bởi nhà toán học lỗi lạc người Thụy Sỹ Lenhard Eurler
Trang 13Chính ông là người đã sử dụng đồ thị để giải bài toán nổi tiếng về các cây cầu
ở thành phố Konigsberg
Năm 1852 Francis Guthrie đưa ra bài toán bốn màu về vấn đề liệu chỉvới bốn màu có thể tô màu một bản đồ bất kì sao cho không có hai nước nàocùng biên giới được tô cùng màu Bài toán này được xem như đã khai sinh ra
lý thuyết đồ thị và chỉ được giải sau một thế kỷ vào năm 1976 bởi KennenthAppel và Wolfgang Haken
Trong toán học và tin học, lý thuyết đồ thị (Graph Theory) nghiên cứucác tính chất của đồ thị (Graph) Một cách không chính thức, đồ thị là một tậpcác đối tượng được gọi là các đỉnh (hoặc nút) nối với nhau bởi các cạnh (hoặccung) Cạnh có thể có hướng hoặc vô hướng Đồ thị thường được vẽ dướidạng một tập các điểm (các đỉnh) nối với nhau bằng các đoạn thẳng (cáccạnh)
Đồ thị (Graph) là một cấu trúc rời rạc gồm các đỉnh và các cạnh nối cácđỉnh đó Đồ thị được ký hiệu là G = (V,E), trong đó:
V là tập đỉnh (vertex)
E ⊆ V x V là tập hợp các cạnh (edge)
Trang 14Một số hình ảnh minh họa của đồ thị(Hình 1.1)
Hình 1.1 : Một số hình ảnh của đồ thị
Các dạng đồ thị đặc biệt gồm có 5 dạng phổ biến:
a) Đơn đồ thị
Hình 1.2: Đơn đồ thịMột đơn đồ thị (simple graph) G = (V,E) gồm một tập không rỗng V vàmột tập cạnh E là các cạnh không sắp thứ tự của các đỉnh phân biệt
b) Đa đồ thị
Hình 1.3: Đa đồ thị
Trang 15Một đa đồ thị (multigraph) G = (V, E) gồm một tập các đỉnh V, một tậpcác cạnh E và một hàm f từ E tới {{u, v} | u, v ϵ V, u ≠ v} Các cạnh ,được gọi là cạnh song song (parallel) nếu f( ) = f().
c) Giả đồ thị
Một giả đồ thị (pseudo graph) G = (V, E) gồm một tập đỉnh V, một tậpcác cạnh E và một hàm f từ E tới {{u, v} | u, v ϵ V} Một cạnh là khuyên(loop) nếu f(e) = {u, u} = {u} với một đỉnh u nào đó
Hình 1.4: Giả đồ thị
d) Đồ thị có hướng
Một đồ thị có hướng (derected graph hoặc digraph) G = (V, E) gồm tậpcác đỉnh V và tập các cạnh E là các cặp có thứ tự của các phần tử thuộc V.Các cạnh ở đây còn được gọi là cung (arc)
Hình 1.5: Đồ thị có hướng
e) Đa đồ thị có hướng
Một đa đồ thị có hướng (directed multigraph) G = (V, E) gồm một tậpcác đỉnh V, tập các cạnh E và một hàm f từ E tới {{u, v} | u, v ϵ V} Cáccạnh , được gọi là cạnh bội nếu f( ) = f()
Trang 161.1.2 Biểu diễn đồ thị trên máy tính
Để lưu trữ đồ thị và thực hiện các thuật toán khác nhau với đồ thị trênmáy tính cần phải tìm những cấu trúc dữ liệu thích hợp để mô tả đồ thị Việcchọn cấu trúc dữ liệu nào để biểu diễn đồ thị có tác động rất lớn đến hiệu quảcủa thuật toán Vì vậy, việc chọn lựa cấu trúc dữ liệu để biểu diễn đồ thị phụthuộc vào từng tình huống cụ thể (bài toán và thuật toán cụ thể)
Dưới đây là ba phương pháp biểu diễn đồ thị trên máy tính cơ bản:
Trang 17Bảng 1.1 : Tóm tắt đồ thị GTrong đó mảng 2 chiều sẽ lưu những đỉnh kề và cần có số đỉnh kề để biếtvới mỗi đỉnh như vậy thì số đỉnh kề là bao nhiêu Chẳng hạn như hình đồ thịcho ở trên, ta cần một ma trận gồm có 5 dòng và 3 cột ( 5 x 3), số dòng tươngứng với số đỉnh của đồ thị, ma trận sẽ lưu số đỉnh kề của đỉnh đó Mảng nàychỉ lưu các cạnh kề của từng đỉnh nền ta tự hiểu từ trên xuống lần lượt là cácđỉnh a, b, c, d, e.
Mỗi dòng này chính là một mảng một chiều, khi chúng ta làm việc trênmảng một chiều ngoài mảng lưu dữ liệu thì cần thêm một mảng nữa để ghi lại
số phần tử thực dùng để máy tính hiểu được mỗi dòng có bao nhiêu phần từ(tức là có bao nhiêu đỉnh) Vậy ta cần có một mảng một chiều để lưu số phần
tử thực dùng của mỗi đỉnh, minh họa như hình 1.7
Hình 1.7: Minh họa mảng 2 chiều lưu đỉnh kề và mảng 1 chiều lưu số phần tử
Trang 18Cách 2:
Sử dụng danh sách liên kết: List ke[MAX];
Với mỗi dòng ta sẽ tạo một danh sách liên kết tương ứng để lưu trữ Vớidòng thứ nhất của đỉnh a thì tạo danh sách liên kết để lưu, phần tử đầu tiênchứa b, sau đó liên kết đến phần tử thứ 2 là đỉnh e rồi đến null Tiếp đến làđỉnh b, và danh sách liên kết chứa các đỉnh kề tương tự như đỉnh a Cuối cùngmỗi đỉnh a, b, c, d, e là tập hợp các danh sách, khi đó ta có mảng một chiềucác danh sách liên kết để lưu trữ các đỉnh kề
Hình 1.8: Minh họa biểu diễn bằng danh sách liên kếtCác danh sách liên kết giúp ta quản lí số phần tử tối đa và số phần tửthực dùng trong mảng, đây là một ưu điểm của việc sử dụng danh sách liênkết so với cách 1 Tuy nhiên có hạn chế là không thể truy xuất ngẫu nhiênđược mà phải truy xuất lần lượt
b) Biểu diễn bằng ma trận kề
Sử dụng mảng hai chiều để biểu diễn:
int a[MAX][MAX];
Trang 19Giả sử G = (V, E) là một đơn đồ thị có số đỉnh Không mất tính tổng quát
có thể coi các đỉnh được đánh số 1, 2, , n Khi đó ta có thể biểu diễn đồ thịbằng một ma trận vuông A = [] cấp n Trong đó:
• = 1 nếu (i, j) ∈ E
• = 0 nếu (i, j) E∉
Quy ước = 0 với ∀i Đối với đa đồ thị thì việc biểu diễn cũng tương tựtrên, chỉ có điều nếu như (i, j) là cạnh thì không phải ta ghi số 1 vào vị trí mà
là ghi số cạnh nối giữa đỉnh i và đỉnh j
Hình 1.9: Biểu diễn đồ thị dưới dạng ma trận kề
c) Biểu diễn bằng ma trận liên thuộc
Sử dụng mảng hai chiều để biểu diễn:
int a[MAX][MAX];
Xét trong cây đồ thị G = (V, E) Ma trận liên thuộc M của G là một matrận 0 – 1, có phần tử tại dòng i, cột j bằng 1 nếu cạnh nối với đỉnh vi vàbằng 0 nếu cạnh không nối với đỉnh
Trang 20Bảng 1.2: Biểu diễn đồ thị dưới dạng ma trận liên thuộc
1.1.3 Ý nghĩa của lý thuyết đồ thị
Lý thuyết đồ thị là ngành khoa học xuất hiện từ lâu nhưng có nhiều ứngdụng hiện đại, có vị trí quan trọng của mình trong việc áp dụng để giải các bàitoán thực tế nhờ vào việc áp dụng các định lý, công thức và thuật toán Một
bộ phận quan trọng của lý thuyết đồ thị là dạng bài toán Tìm kiếm đường đi,được hình thành và có nhiều thuật toán giải quyết khác nhau đưa ra kết quảphù hợp với từng bài toán
Lý thuyết đồ thị rất đa dạng và có nhiều lĩnh vực con Trong đó có:
• Lý thuyết đồ thị đại số (Algebraic graph theory)
• Lý thuyết đồ thị tô pô(Topological graph theory)
• Lý thuyết đồ thị hình học(Geometric graph theory)
Trang 21• Lý thuyết đồ thị cực trị(Extremal graph theory)
• Lý thuyết đồ thị mê-tríc(Metric graph theory)
• Lý thuyết đồ thị xác suất(Probabilistic graph theory)
Lý thuyết đồ thị được ứng dụng nhiều trong phân tích lưới Có hai kiểuphân tích lưới Kiểu thứ nhất là phân tích để tìm các tính chất về cấu trúc củamột lưới, chẳng hạn nó là một scale-free network hay là một small-worldnetwork Kiểu thứ hai, phân tích để đo đạc, chẳng hạn mức độ lưu thông xe cộtrong một phần của mạng lưới giao thông (transportation network)
Lý thuyết đồ thị còn được dùng trong nghiên cứu phân tử Trong vật lývật chất ngưng tụ, cấu trúc ba chiều phức tạp của các hệ nguyên tử có thểđược nghiên cứu một cách định lượng bằng cách thu thập thống kê về các tínhchất lý thuyết đồ thị có liên quan đến cấu trúc tô pô của các nguyên tử Ví dụ,các vành đường đi ngắn nhất Franzblau (Franzblau's shortest-path rings).Với sự xuất hiện của nhiều của các hệ thống mạng như: hệ thống mạngđiện, mạng sản xuất, mạng lưới giao thông, mạng Internet… đã làm nảy sinh
ra các nhu cầu vận chuyển các chất liệu trên các mạng này sao cho đạt hiệuquả cao nhất, chất liệu ở đây có thể là dòng điện, dữ liệu, hàng hóa…; hiệuquả ở đây có thể xét theo tiêu chuẩn về thời gian, độ dài quãng đường, chi phí
và độ an toàn Vậy nên các bài toán Tìm kiếm đường đi nói riêng và các bàitoán đồ thị nói chung có vai trò quan trọng trong các ngành khoa học hiện đại,
nó giúp giải quyết các bài toán luồng hiệu quả và tối ưu hơn, đem lại nhiềuứng dụng thực tiễn, đảm bảo các yêu cầu thời gian, chi phí, tiền bạc… đượctốt hơn
1.2 Tổng quan về trí tuệ nhân tạo
1.2.1 Định nghĩa trí tuệ nhân tạo
Trí tuệ nhân tạo là trí thông minh của máy do con người tạo ra Ngay từkhi chiếc máy tính điện tử đầu tiên ra đời, các nhà khoa học máy tính đã
Trang 22hướng đến phát hiển hệ thống máy tính (gồm cả phần cứng và phần mềm) saocho nó có khả năng thông minh như loài người Mặc dù cho đến nayước mơnày vẫn còn xa mới thành hiện thực, tuy vậy những thành tựu đạt được cũngkhông hề nhỏ: chúng ta đã làm được các hệ thống (phần mềm chơi cờ vuachạy trên siêu máy tinh GeneBlue) có thể thắng được vua cờ thế giới; chúng
ta đã làm được các phần mềm có thể chứng minh được các bài toán hình học;các loại Robot xử lý dữ liệu thông minh Hay nói cách khác, trong một sốlĩnh vực, máy tính có thể thực hiện tốt hơn hoặc tương đương con người (tấtnhiên không phải tất cả các lĩnh vực) Đó chính là các hệ thống thông minh
Có nhiều cách tiếp cận để làm ra trí thông minh của máy (hay là trí tuệ nhântạo), chẳng hạn là nghiên cứu cách bộ não người sản sinh ra trí thông minhcủa loài người như thế nào rồi ta bắt chước nguyên lý đó, nhưng cũng cónhững cách khác sử dụng nguyên lý hoàn toàn khác với cách sản sinh ra tríthông minh của loài người mà vẫn làm ra cái máy thông minh như hoặc hơnngười; cũng giống như máy bay hiện nay bay tốt hơn con chim do nó có cơchế bay không phải là giống như cơ chế bay của con chim Như vậy, trí tuệnhân tạo ở đây là nói đến khả năng của máy khi thực hiện các công việc màcon người thường phải xử lý; và khi dáng vẻ ứng xử hoặc kết quả thực hiệncủa máy là tốt hơn hoặc tương đương với con người thì ta gọi đó là máy thôngminh hay máy đó có trí thông minh Hay nói cách khác, đánh giá sự thôngminh của máy không phải dựa trên nguyên lý nó thực hiện nhiệm vụ đó cógiống cách con người thực hiện hay không mà dựa trên kết quả hoặc dáng vẻứng xử bên ngoài của nó có giống với kết quả hoặc dáng vẻ ứng xử của conngười hay không
Các định nghĩa (quan điểm) về TTNT được chia thành 4 nhóm:
(1) Các hệ thống suy nghĩ (thông minh) như con người
Trang 23"[The automation of] acticvities that we associate with human thinking, activities such as decision-making, problem solving, learning " (Bellman,
1978)
(2) Các hệ thống suy nghĩ một cách hợp lý
"The study of the computations that make it possible to perceive, reason, and act." (Winston, 1992)
(3) Các hệ thống hành động thông minh như con người
"The art or creating machines that perform functions that require intelligence when performed by people." (Kurzweil, 1990)
"The study or how to make computers do things at which, at the moment, people are better.” (Rich and Knight, 1991)
(4) Các hệ thống hành động một cách hợp lý
"AI… is concerned with intelligent behavior in artifacts." (Nilsson,
1998)
- Các định nghĩa (1) và (2) liên quan đến các quá trình suy nghĩ và suy diễn
- Các định nghĩa (3) và (4) liên quan đến cách hành động
- Các định nghĩa (1) và (3) đánh giá mức độ thành công (sự thông minh) theotiêu chuẩn của con người
- Các định nghĩa (2) và (4) đánh giá mức độ thành công (sự thông minh) theotiêu chuẩn của sự hợp lý Một hệ thống hành động hợp lý nếu nó làm các việcphù hợpđối với những gì nó (hệ thống) biết
1.2.2 Các nền tảng của trí tuệ nhân tạo
a) Triết học
- Các phương pháp suy diễn
- Các cơ sở (nền tảng) của việc học
- Bài toán (vấn đề) giải quyết được và không giải quyết được
- Bài toán (vấn đề) áp dụng được và không áp dụng được (độ phức tạp tính toán
- thời gian để giải quyết bài toán chính là hàm mũ)
Trang 24- Các dấu hiệu của nhận thức và điều khiển vận động
- Các kỹ thuật thực nghiệm (ví dụ: tâm sinh lý học,…)
f) Công nghệ máy tính
- Xây dựng các máy tính có tốc độ tính toán nhanh
g) Lý thuyết điều khiển
- Thiết kế các hệ thống nhằm cực đại hóa một hàm mục tiêu nào đó
- Tác tử con người
• Các bộ phận cảm biến: mắt, tai, và một số bộ phận cơ thể khác
• Các bộ phận hoạt động: tay, chân, miệng, và một số bộ phận cơ thểkhác
• Các bộ phận cảm biến: các máy quay (cameras), các bộ truy tìm tínhiệu hồng ngoại
• Các bộ phận hoạt động: các loại động cơ (motors)
Có thể hiểu hơn về tác tử thông qua minh họa sau đây về máy hút bụi
Ở máy hút bụi, khi nó vận hành làm việc sẽ được chia tác tử theo 2 hướng đó
là các nhận thức và các hành động
Trang 25Hình 1.11: Máy hút bụi làm việc dựa trên các tác tử
Cụ thể ở đây tác tử của máy sẽ nhận biết và hoạt động như sau:
Các nhận thức bao gồm : Vị trí và mức độ sạch sẽ Ví dụ: [A, Bẩn], [B,
Bẩn]
Các hành động là trạng thái di chuyển của máy gồm: sang trái, sang
phải, hút bụi hoặc không làm gì
b) Giải quyết vấn đề
Giải quyết vấn đề bao gồm 2 phương pháp chính là Tìm kiếm và Thỏa
mãn ràng buộc Tùy vào từng bài toán cụ thể, không gian trạng thái đưa ra …
sẽ áp dụng những phương pháp giải quyết phù hợp Đối với từng phươngpháp luôn chứa đựng rất nhiều giải thuật khác nhau để vận dụng nhằm đưa rađược lời giải Ở đề tài này sẽ tìm hiểu khái quát chung về 2 phương pháp
chính này và tìm hiểu kĩ về thuật toán A* (giải quyết vấn đề trong bài toán
tìm kiếm đường đi).
- Giải quyết vấn đề bằng phương pháp tìm kiếm
• Giải quyết vấn đề bằng tìm kiếm: giúp tìm chuỗi các hành động cho phép đạtđến (các) trạng thái mong muốn
o Xác định mục tiêucần đạt đến (goal formulation)gồm một tập hợp của cáctrạng thái (đích) vàdựa trên trạng thái hiện tại (của môi trường) và đánh giáhiệu quả hành động (của tác tử)
Trang 26o Phát biểu bài toán (problem formulation) với một mục tiêu, xác định các hànhđộng và trạng thái cần xem xét.
o Quá trình tìm kiếm (search process): Xem xét các chuỗi hành động có thể vàchọn chuỗi hành động tốt nhất
Trang 27- Giải quyết vấn đề thỏa mãn ràng buộc
• Một ràng buộc (constraint) là một quan hệ trên một tập các biến, mỗi biến có(gắn với) một tập g các giá trị có thể nhận – gọi là miền giá trị (domain)
• Một ràng buộc có thể được biểu diễn bằng:
o Một biểu thức (toán học/logic)
o Một bảng liệt kê các phép gán giá trị phù hợp cho các biến
c) Lập luận và suy diễn
Khái niệm lập luận (reasoning) và suy diễn (reference) được sử dụng rất
phổ biến trong lĩnh vực AI Lập luận là suy diễn logic, dùng để chỉ một tiến
trình rút ra kết luận (tri thức mới) từ những giả thiết đã cho (được biểu diễndưới dạng cơ sở tri thức) Như vậy, để thực hiện lập luận người ta cần có cácphương pháp lưu trữ cơ sở tri thức và các thủ tục lập luận trên cơ sở tri thứcđó
Logic là ngôn ngữ hình thức cho phép (giúp) biểu diễn thông tin dướidạng cấc kết luận có thể được đưa ra
Logic = Cú pháp (Syntax) + Ngữ nghĩa (Semantics)
Cú pháp dùng để xác định các mệnh đề (Sentences) trong một ngôn ngữ.
Còn ngữ nghĩa giúp xác định ý nghĩa của các mệnh đề trong một ngôn ngữ(tức là xác định sự đúng đắn của một mệnh đề) Cú pháp của một logic baogồm:
Cú pháp = Ngôn ngữ (Language) + Lý thuyết chứng minh (Proof
theory)
Ngôn ngữ chứa các ký hiệu (symbols), biểu thức (expressions), thuật ngữ(terms), công thức hợp lệ Lý thuyết chứng minh là tập hợp các luật suy diễncho phép chứng minh (suy luận ra) các biểu thức
Ngữ nghĩa của một logic chính là ý nghĩa (diễn giải) của các kí hiệu.
d) Biểu diễn tri thức
Muốn máy tính có thể lưu trữ và xử lý tri thức thì cần có các phươngpháp biểu diễn tri thức Các phương pháp biểu diễn tri thức ở đây bao gồm
Trang 28các ngôn ngữ biểu diễn và các kỹ thuật xử lý tri thức Một ngôn ngữ biểu diễntri thức được đánh giá là “tốt” nếu nó có tính biểu đạt cao và các tính hiệu quảcủa thuật toán lập luận trên ngôn ngữ đó Tính biểu đạt của ngôn ngữ thể hiệnkhả năng biểu diễn một phạm vi rộng lớn các thông tin trong một miền ứngdụng Tính hiệu quả của các thuật toán lập luận thể hiện chi phí về thời gian
và không gian dành cho việc lập luận Tuy nhiên, hai yếu tố này dường nhưđối nghịch nhau, tức là nếu ngôn ngữ có tính biểu đạt cao thì thuật toán lậpluận trên đó sẽ có độ phức tạp lớn (tính hiệu quả thấp) và ngược lại (ngôn ngữđơn giản, có tính biểu đạt thấp thì thuật toán lập luận trên đó sẽ có hiệu quảcao) Do đó, một thách thức lớn trong lĩnh vực AI là xây dựng các ngôn ngữbiểu diễn tri thức mà có thể cân bằng hai yếu tố này, tức là ngôn ngữ có tínhbiểu đạt đủ tốt (tùy theo từng ứng dụng) và có thể lập luận hiệu quả
e) Học máy
Học máy (machine learning) là một lĩnh vực nghiên cứu của AI đangđược phát triển mạnh mẽ và cónhiều ứng dụng trong các lĩnh vực khác nhaunhư khai phá dữ liệu, khám phá trithức,…
Đây là một lĩnh vực của trí tuệ nhân tạo liên quan đến việc nghiên cứu vàxây dựng các kĩ thuật cho phép các hệ thống "học" tự động từ dữ liệu để giảiquyết những vấn đề cụ thể Ví dụ như các máy có thể "học" cách phânloại thư điện tử xem có phải thư rác (spam) hay không và tự động xếp thư vàothư mục tương ứng Học máy rất gần với suy diễn thống kê (statisticalinference) tuy có khác nhau về thuật ngữ
Học máy có liên quan lớn đến thống kê, vì cả hai lĩnh vực đều nghiêncứu việc phân tích dữ liệu, nhưng khác với thống kê, học máy tập trung vào
sự phức tạp của các giải thuật trong việc thực thi tính toán Nhiều bài toán suyluận được xếp vào loại bài toán NP-khó, vì thế một phần của học máy lànghiên cứu sự phát triển các giải thuật suy luận xấp xỉ mà có thể xử lý được
Trang 29Học máy có hiện nay được áp dụng rộng rãi bao gồm máy truy tìm dữliệu, chẩn đoán y khoa, phát hiện thẻ tín dụng giả, phân tích thị trường chứngkhoán, phân loại các chuỗi DNA, nhận dạng tiếng nói và chữ viết, dịch tựđộng, chơi trò chơi và cử động rô-bốt (robot locomotion).
1.2.4. Các thành tựu nổi bật của trí tuệ nhân tạo hiện nay
a) Xử lý ngôn ngữ tự nhiên
Nổi lên gần đây nhất là Watson - một hệ thống máy tính có khả năng trảlời các câu hỏi nêu ra bằng ngôn ngữ tự nhiên Cùng với hệ thống machinelearning ưu việt, trí tuệ nhân tạo Watson được giao nhiệm vụ xử lý tất cả cácnhu cầu về phân tích dữ liệu lớn cho các tổ chức, doanh nghiệp,… qua nềntảng mở IBM Watson Analytics Tức là con người có thể giao tiếp với siêumáy tính này bằng ngôn ngữ nói bình thường, được trả về bằng các câu trả lờinhư con người thật
Đỉnh cao của khả năng này là Watson – trong Game show Jeopardy! –một trò chơi đưa ra các câu trả lời gợi ý và yêu cầu người chơi phải đoán câuhỏi hợp lý cho chúng Tháng 2 năm 2010, Watson đã có thể thường xuyêngiành phần thắng trước người chơi Jeopardy, thậm chí còn thắng được cả giảithưởng lớn 1 triệu USD
Các AI của Apple hay Google qua sự thể hiện của Siri hay Google Dịch,Google tìm kiếm bằng giọng nói… cũng có thể thực hiện được điều này, dùvẫn có những sai sót nhưng trải nghiệm của người dùng vẫn cảm thấy vô cùngthú vị với việc tương tác này
Trang 30b) Đưa ra ý kiến và phương hướng chữa bệnh
Ngoài khả năng xử lý ngôn ngữ tự nhiên một cách chính xác, Wastoncòn là một cỗ máy đưa ra ý kiến và phương hướng chữa bệnh trong vài giây.Báo chí không ngớt lời ca ngợi “bác sỹ” Watson về chiến tích cứu sống mộtbệnh nhân Nhật qua việc tìm ra chứng ung thư máu hiếm gặp ở bà sau khi cácbác sỹ bằng xương bằng thịt đã bó tay Chưa hết, hàng loạt các bệnh viện tạiThái Lan, Ấn Độ và Trung Quốc cũng đang bắt đầu đồng bộ sâu Watson vàocác hệ thống máy tính của mình để phục vụ cho công tác chẩn đoán và điềutrị Sau khi thu thập và phân tích hết các dữ liệu bệnh án (có thể duyệt cùnglúc 1,5 triệu bệnh án), các kết quả xét nghiệm cũng như các nghiên cứu trướcđây trên toàn cầu, Watson đưa ra ý kiến và gợi ý phương hướng cứu chữa chỉsau vài giây
c) Xử lý dữ liệu không có cấu trúc, dữ liệu Big data
Cứ mỗi năm lượng dữ liệu của nhân loại lại tăng lên gấp đôi, việc nàyđòi hỏi những siêu máy tính có khả năng xử lý dữ liệu phức tạp và tốc độ Giờđây các cỗ máy trí tuệ nhân tạo hoàn toàn có khả năng “hấp thụ” và “tiêu hóa”mọi loại dữ liệu, từ cấu trúc (structured data – các thuộc tính được định nghĩasẵn như họ tên, giới tính,…) cho đến phi cấu trúc (unstructured data – dạng tự
do và không có cấu trúc định sẵn như dữ liệu văn bản, tập tin video, hình ảnh,
âm thanh,…) đến từ mọi nguồn được đăng tải hoặc có khả năng tiếp cận đượcthông qua loạt giao diện lập trình ứng dụngcủa hệ thống Watson
Đó là AI với tên gọi Lucy của công ty Equals 3 hay IBM Watson của IBM
d) Trí tuệ nhân tạo chiến thắng các game khó
AlphaGo, phần mềm trí tuệ nhân tạo do Deepmind, công ty con củaGoogle xây dựng đã đánh bại nhà vô địch cờ vây thế giới Lee Se-dol trongván đấu cuối cùng để giành chiến thắng áp đảo 4-1 trong môn thể thao trí tuệđược đánh giá là phức tạp nhất lịch sử