Khoa Công nghệ thông tin - Trường Đại học Bách Khoa

THỰC HÀNH TRÍ TUỆ NHÂN TẠO
(AI: Artificial Intelligence) 1. Khối lượng: : 1TC (15 tiết) - Giờ hướng dẫn : 2 tiết các công cụ phần mềm Pascal, C, Java, VisuaBasic, .NET, Prolog, Scheme... Các phần mềm ứng dụng có trên mạng... 2. Học phần tiên quyết: 3. Học phần song hành: : Trí tuệ nhân tạo. 4. Mục tiêu: 5. Tài liệu học tập: - Trí tuệ nhân tạo_Lập trình tiến hóa. Ts Nguyễn Đình Thúc. Nhà xuất bản giáo dục. - Nhập môn trí tuệ nhân tạo. Học viện Công nghệ bưu chính viễn thông. - Phương pháp giải các bài toán trong Tin học. ThS Trần Đức Huyên. - Các tài liệu trên Internet.... 6. Nội dung chi tiết học phần:

Bài 1:
Câu 1: Trò chơi 8 quân cờ (Cờ ta canh) Tám (8) quân cờ được chỉ ra trong hình, gồm một bảng kích thước 3x3 với 8 quân cờ dược đánh số từ 1 đến 8 và một ô trống. Một quân cờ đứng cạnh ô trống có thể đi vào ô trống. Mục tiêu là luôn luôn tiến tới vị trí các quân cờ như ở trong hình bên phải (trạng thái đích). Trạng thái đầu 1 7 5 2 4 3 6 8 Trạng thái đích 1 4 7 2 5 8 3 6

Hãy trình bày thuật toán và viết chương trình demo để di chuyển các quân cờ sao cho số bước di chuyển là thấp nhất (tối ưu). Dữ liệu được đọc từ file là ma trận vuông 3x3. Câu 2: Trò chơi viết số Hai người chơi với nhau trò chơi như sau: với 1 số a đang có sẵn, đến lượt mình chơi, người đó sẽ viết số a+1 hay 2a với điều kiện số mới viết này không vượt qua số nguyên dương N cho trước. Với số bắt đầu là 1, ai viết được số N trước thì xem như thắng. Xem như máy là người đi sau. Trình bày thuật toán và viết chương trình mô tả trò chơi sao cho khả năng thắng của máy cao. Dữ liệu được đọc từ bàn phím. Câu 3: Bài toán phân việc Có n chi tiết máy J1, J2, ..., Jn cần gia công lần lượt trên 3 máy A, B, C với thời gian hoàn thành tương ứng của 1 chi tiết là TA, TB, TC. Các chi tiết từ J1, J2, ..., Jn có thể gia Giáo viên hướng dẫn: Võ Đức Hoàng -1-

Khoa Công nghệ thông tin - Trường Đại học Bách Khoa công theo thứ tự bất kỳ tuy nhiên một chi tiết Ji phải được gia công lần lượt theo thứ tự trên máy A máy B máy C. Trình bày thuật toán và viết chương trình mô tả sao cho tổng thời gian gia công hoàn thành n chi tiết là thấp nhất (tối ưu). Dữ liệu được đọc từ file có dạng như sau: DULIEU.INP n //số chi tiết cần gia công J1A, J2A,...., JnA //thời gian gia công các chi tiết trên máy A J1B, J2B,...., JnB //thời gian gia công các chi tiết trên máy B J1C, J2C,...., JnC //thời gian gia công các chi tiết trên máy C Kết quả xuất ra là thứ tự các công việc Câu 4: Bài toán người du lịch Một người khách du lịch muốn đi thăm n thành phố được đánh số từ 1 n và quay lại thành phố xuất phát. Mạng lưới giao thông giữa n thành phố này là hai chiều và được cho bởi ma trận A[i,j] trong đó A[i,j]=1 nếu có đường đi từ thành phố i đến thành phố j, A[i,j]=0 trong trường hợp ngược lại. Hãy thiết lập lộ trình cho người khách hay thông báo không tồn tại lời giải. Dữ liệu được đọc từ file có dạng như sau: DULIEU.INP Dòng 1: Ghi số nguyên n (n<=20). Dòng i+1 (1<=i<=n) ghi n*n số nguyên không âm (0 hoặc 1). Kết quả xuất ra chu trình đường đi. (Chu trình HAMILTON) Câu 5: Bài toán hệ thống dây diện Một công ty cần thay toàn bộ hệ thống dây điện cho N phòng làm việc. Cho biết sơ đồ mạng lưới điện hiện có của n căn phòng được biểu diễn bằng ma trận A[i,j] trong đó A[i,j] chính là độ dài của dây điện nối giữa 2 phòng i và j (A[i,j]=A[j,i], A[i,j]=0 nếu không có (không thể) dây nối giữa phòng i và j). Hãy lập trình tính độ dài của dây dẫn cần sử dụng sao cho cả N phòng dều có điện và số lượng này là ít nhất. Dữ liệu được đọc từ file có N+1 dòng dạng như sau: DULIEU.INP Dòng 1: Ghi số nguyên N. Dòng i+1 (1<=i<=N) ghi N số nguyên A[i,1] A[i,2] .........A[i,N]. Các số ghi trên 1 dòng cách nhau ít nhất 1 dấu cách. Kết quả xuất ra màn hình cách nối và tổng độ dài nhỏ nhất. Câu 6: Trò chơi đoán số Cậu bé nghĩ ra 1 số (Gọi là S) gồm bỗn chữ số (không nhất thiết khác nhau) trong sáu chữ số từu 1 đến 6. Để tìm số đó máy lần lượt đưa ra các số dự đoán (gọi là M), mỗi số gồm 4 chữ số không nhất thiết khác nhau. Với mỗi lần dự đoán, máy nhận được 2 câu trả lời của cậ bé cho 2 câu hỏi sau. + Có bao nhiêu chữ số trong M là chữ số trong S nhưng vị trí xuất hiện của mỗi chữ số đó là sai? + Có bao nhiêu chữ số trong M là chữ số trong S và đồng thời vị trí xuất hiện của mỗi chữ số đều đúng?

Giáo viên hướng dẫn: Võ Đức Hoàng

-2-

Khoa Công nghệ thông tin - Trường Đại học Bách Khoa Yêu cầu: Hãy hiện lên màn hình các số máy dự đoán và nói mỗi số đó nhận 2 câu trả lời từ bàn phím của cậu bé cho đến khi được số đúng như cậu bé nghĩ. (Số lần dự đoán không quá 6 lần). Ví dụ: Số cần tìm là 5436 1234 Đúng số - Đúng vị trí : 1 Đúng số - Sai vị trí : 1 2156 Đúng số - Đúng vị trí : 1 Đúng số - Sai vị trí : 1 1416 Đúng số - Đúng vị trí : 2 Đúng số - Sai vị trí : 0 5436 Đúng số - Đúng vị trí : 4 Đúng số - Sai vị trí : 0 Chọn đúng số Câu 7: Triệu phú và tên cướp Có ba nhà triệu phú và ba tên cướp ở bên bờ tả ngạn một con sông, cùng một chiếc thuyền chở được một hoặc hai người. Hãy tìm cách đưa mọi người qua sông sao cho không để lại ở bên bờ sông kẻ cướp nhiều hơn triệu phú. Biểu điễn thuật toán và lời giải tối ưu. Câu 8: Chia quà Trong ngày sinh nhật Tom và Jerry nhận được N đồ chơi (N<=40). Trên đồ chơi i có giá tiền là Xi. Hai anh em quyết định mỗi người phải có trách nhiệm bảo quản 1 phần số quà và phân chia sao cho chênh lệch tổng giá trị tiền đồ chơi mà mỗi người phải bảo quản là ít nhất. Hãy giúp Tom bà Jerry phân chia trách nhiệm. Dữ liệu đọc từ file text có dạng sau: Dòng 1 : ghi số nguyên dương N. Dòng 2 : Ghi N số nguyên dương tương ứng với giá trị N đồ vật. Câu 9: Tô màu bản đồ Có 1 bản đồ có N nước. Mỗi nước được tô 1 màu để phân biệt. Các nước liền kề nhau không được tô cùng màu với nhau. Hãy xác định số màu tối thiểu để tô bản đồ sao cho các miền kề nhau không được tô cùng màu. ◊ File dữ liệu đầu vào: GRAPH.INP có cấu trúc n m (n đỉnh:1,2,...,n; m là số cạnh) x1 y1 (danh sách m cạnh) y2 x2 .... xm ym ................ ◊ File kết quả: COLOR.OUT VERTEX: 1 2 ... n

Giáo viên hướng dẫn: Võ Đức Hoàng

-3-

Khoa Công nghệ thông tin - Trường Đại học Bách Khoa COLOR: ◊ Ví dụ: GRAPH.INP 10 18 5 6 1 2 1 1 1 4 1 5 5 1 8 3 2 3 2 5 2 6 3 5 3 6 3 8 4 7 5 7 5 8 5 9 6 9 6 10 8 9 9 10 -----5 5 1 2 2 3 3 4 4 5 5 1 c1 c2 ... cn 1 2 1 1 2 3 2 2 3 2 3 1 4 1 4 2

7 2

8 3

COLOR.OUT VERTEX: 9 10 COLOR: 2 3 ---------VERTEX: COLOR:

Câu 10: Người lái đò Viết chương trình mô phỏng bài toán người lái đò (có thể có giao diện đồ họa). Bài toán phát biểu như sau: Tại bến sông nọ có bắp cải, sói và dê muốn bác lái đò chở qua sông. Biết rằng tại một thời điểm thuyền của bác lái đò chỉ chở tối đa được 2 khách. Nếu sói và dê đứng riêng với nhau (không có mặt bác lái đò và bắp cải) thì sói sẽ ăn thịt dê. Nếu dê và bắp cải đứng riêng với nhau (không có mặt bác lái đò và sói) thì dê sẽ ăn bắp cải. Ký hiệu bờ sông mà sói, dê, bắp cải và bác lái đò đang đứng là 1, bờ sông bên kia là 2. Hãy viết chương trình giải quyết bài toán trên.

Giáo viên hướng dẫn: Võ Đức Hoàng

-4-

Khoa Công nghệ thông tin - Trường Đại học Bách Khoa

Bài 2:
Câu 1: Biểu diễn tri thức và suy diễn Cho tập mênh đề: 1) Ông Tư ăn táo 2) Ông Tư ăn cam 3) Cam là thức ăn 4) Món ăn mà người ăn không chết (sống) gọi là thức ăn 5) Ông Tư đang sống Hỏi táo có phải là thức ăn? Hãy: a. Dùng logic vi từ để mô tả các mệnh đề trên b. Dùng thuật toán Havard (hoặc Robinson) để giải. Câu 2: Biểu diễn tri thức và suy diễn Ta có cơ sở tri thức của hệ chuyên gia về bệnh cảm cúm như sau: 1) “Nếu bệnh nhân rát họng và viêm nhiễm thì viêm họng và đi chữa họng”. 2) “Nếu thân nhiệt >37o thì sốt” 3) “Nếu ốm trên 7 ngày và sốt thì viêm nhiễm” 4) “Nếu sốt và ho và kèm theo khó thở hoặc kèm theo tiếng ran thì viêm phổi” a. Hãy biểu diễn các tri thức trên dưới logic mệnh đề. b. Có bệnh nhân khai: “Thân nhiệt >37o” và “Ốm trên 7 ngày”. Dùng phương pháp chứng minh Robinson và Vương Hạo để kết luận bệnh nhân này bị “viêm nhiễm”. Câu 3: Biểu diễn tri thức và suy diễn Ta có cơ sở tri thức mô tả mối quan hệ các thành phần trong 1 tam giác như sau: 1) Nếu biết 3 cạnh của tam giác thì ta có thể biết nửa chu vi của tam giác đó. 2) Nếu biết 2 cạnh và nửa chu vi của 1 tam giác thì ta có thể biết được cạnh còn lại của tam giác. 3) Nếu biết được diện tích và một cạnh của tam giác thì ta có thể biết được chiều cao tương ứng với cạnh đó. 4) Nếu biết 2 cạnh và 1 góc kẹp giữa 2 cạnh đó của 1 tam giác thì ta có thể biết được cạnh còn lại của tam giác đó. 5) Nếu biết 2 cạnh và 1 góc kẹp giữa 2 cạnh đó của 1 tam giác thì ta có thể biết được diện tích của tam giác đó. 6) Nếu biết 3 cạnh và nửa chu vi của 1 tam giác thì ta biết được diện tích của tam giác đó. 7) Nếu biết diện tích và đường cao của 1 tam giác thì ta biết được cạnh tương ứng với đường cao của tam giác đó. Giả sử biết được 2 cạnh và góc kẹp giữa 2 cạnh đó. Bằng phương pháp Robinson, hãy chứng minh rằng ta có thể suy ra được đường cao tương ứng với cạnh còn lại. Câu 4: Biểu diễn tri thức và suy diễn Giả sử chúng ta biết các thông tin sau đây: 1) Ông Ba nuôi 1 con chó. 2) Hoặc ông Ba hoặc ông An đã giết con mèo BiBi. 3) Mọi người nuôi chó đều yêu quý động vật. 4) Ai yêu quý động vật cũng không giết động vật.

Giáo viên hướng dẫn: Võ Đức Hoàng

-5-

Khoa Công nghệ thông tin - Trường Đại học Bách Khoa 5) Chó mèo đều là động vật. Dùng phương pháp chứng minh Robinson và Vương Hạo để kết luận ai đã giết con mèo BiBi. Câu 5: Biểu diễn tri thức và suy diễn Giả sử chúng ta biết các thông tin sau đây: 1) Mọi người đều chết. 2) Mọi phụ nữ đều chết. 3) Thần thánh không chết. 4) Tất cả những người bệnh phải được điều trị. 5) Beatrice là phụ nữ. 6) Christel là phụ nữ. 7) Marta là phụ nữ. 8) Socrate là người. 9) Zeus là thần thánh. 10) Socrate bị bệnh. Dùng phương pháp phân giải Robinson để có thể suy ra được Socrate có được điều trị hay không? Câu 6: Biểu diễn tri thức và suy diễn Trong 1 lớp học, có một nhóm học sinh gồm 10 bạn có tên lần lượt là: A, B, C, D, E ,F , G, H, I, J. Giữa các bạn học sinh đó có mối quan hệ gọi là quan hệ ảnh hưởng. Ví dụ: nếu ta viết AB>C thì có ngĩa là 2 bạn đồng thời thuyết phục bạn C tham gia một hoạt động nào đó. Giả sử ban đầu có 4 bạn E, F, H, I tham gia dự thi sản phẩm phần mềm do trường tổ chức và ta cũng biết được rằng: 1) ACH>B. 2) DH>ACD. 3) ABCI>BDI. 4) ADEI>BCG. 5) CGI>AJE. 6) H>BC. Hãy dùng phương pháp suy diễn tiến để chứng minh rằng cả 10 bạn trong nhóm trên đều tham gia dự thi sản phẩm phần mềm. Câu 7: Biểu diễn tri thức và suy diễn 1) Nước giải khát đóng chai có nhiều đường. 2) Những người ăn kiêng không nên ăn/uống những loại thức ăn có nhiều đường. 3) Tâm là một người ăn kiêng. 4) Coca Cola là một loại nước giải khát đóng chai Hỏi Tâm có nên uống Coca Cola không? Hãy: a. Dùng logic vi từ để mô tả các mệnh đề trên b. Dùng thuật toán Havard (hoặc Robinson) để giải. Câu 8: Biểu diễn tri thức và suy diễn Cho các câu sau: 1) Marcus là một người.

Giáo viên hướng dẫn: Võ Đức Hoàng

-6-

Khoa Công nghệ thông tin - Trường Đại học Bách Khoa 2) Marcus là người xứ Pompeii. 3) Mọi người Pompeii đều là người La mã. 4) Ceasar là một kẻ cầm quyền. 5) Người La Mã hoặc là trung thành với Ceasar, hoặc là thù ghét Ceasar. 6) Mỗi người đều trung thành với người nào đó. 7) Nhân dân chỉ muốn giết những kẻ cầm quyền mà họ không trung thành 8) Marcus muốn hiết Ceasar. Hỏi: Marcus có trung thành với Ceasar không? Hãy: a. Dùng logic vi từ để mô tả các mệnh đề trên b. Dùng thuật toán Havard (hoặc Robinson) để giải. Câu 9: Biểu diễn tri thức và suy diễn Cho các câu sau: 1) Marcus là một người. 2) Marcus là người xứ Pompeii. 3) Marcus sinh năm 40 trong công nguyên (A.D). 4) Mọi người đều (ai cũng phải) chết. 5) Tất cả người dân Pomoeii đều bị chết vì núi lửa phun vào năm 79 A.D. 6) Không có người nào (không ai) sống hơn 150 tuổi. 7) Bây giờ là năm 2009. 8) Còn sống có nghĩa là không chết. 9) Nếu ai đó chết, thì người ấy chết ở mọi thời điểm sau đó. Hỏi: Marcus còn sống không? Hãy: a. Dùng logic vi từ để mô tả các mệnh đề trên b. Dùng thuật toán Havard (hoặc Robinson) để giải. Câu 10: Biểu diễn tri thức và suy diễn Cho các câu sau: 1) Sinh viên nào học giỏi logic cũng học giỏi tin học và giỏi toán. 2) Một số sinh viên giỏi toán nhưng không thích tin học. 3) Ai không thích tin học thì không học giỏi tin học. 4) Những người học giỏi tin học dễ xin được việc làm. 5) Mai không thích học logic, nhưng thích học toán. 6) Bình thích học toán nhưng học tin học dở. Hỏi: Vậy Mai dễ xin được việc làm hay không? Bình dễ xin được việc làm hay không? Hãy: a. Dùng logic vi từ để mô tả các mệnh đề trên b. Dùng thuật toán Havard (hoặc Robinson) để giải.

Bài 3: Tìm hiểu ứng dụng trí tuệ nhân tạo
Câu 1: Tìm hiểu ứng dụng trí tuệ nhân tạo trong lập trình game cờ tướng. Câu 2: Tìm hiểu ứng dụng trí tuệ nhân tạo trong lập trình game Minesweeper của Windows. Câu 3: Tìm hiểu ứng dụng trí tuệ nhân tạo trong lập trình cho 1 từ điển (ví dụ Lạc Việt). Câu 4: Tìm hiểu ứng dụng trí tuệ nhân tạo trong chương trình dịch tự động của Google.

Giáo viên hướng dẫn: Võ Đức Hoàng

-7-

Khoa Công nghệ thông tin - Trường Đại học Bách Khoa Câu 5: Tìm hiểu ứng dụng trí tuệ nhân tạo trong chương trình nhận dạng tiếng nói của V_Speech. Câu 6: Tìm hiểu ứng dụng trí tuệ nhân tạo trong lập trình phân loại tài liệu (văn bản) tự động. Câu 7: Tìm hiểu ứng dụng trí tuệ nhân tạo trong tìm kiếm thông tin của Google. Câu 8: Tìm hiểu ứng dụng trí tuệ nhân tạo trong lập trình game Caro. Câu 9: Tìm hiểu ứng dụng trí tuệ nhân tạo trong 1 số trang Web có sử dụng VoiceXML. Câu 10: Tìm hiểu ứng dụng trí tuệ nhân tạo trong 1 số trang Web có sử dụng RSS.

Giáo viên hướng dẫn: Võ Đức Hoàng

-8-

Sign up to vote on this title
UsefulNot useful