Báo cáo thực hành trí tuệ nhân tạo

24 1.2K 1
Báo cáo thực hành trí tuệ nhân tạo

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Báo cáo thực hành trí tuệ nhân tạo

ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA CÔNG NGHỆ THÔNG TIN ---------- BÁO CÁO THỰC HÀNH TRÍ TUỆ NHÂN TẠO Giáo viên hướng dẫn : Võ Đức Hoàng Đà Nẵng, 11/2014 MỤC LỤC I. Nội dung buổi 2 1. Bài 1  Đề bài: 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 2 3 7 4 6 5 Trạng thái đích 8 1 2 3 4 5 6 7 8 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.  Thuật toán - Dùng thuật toán A* để giải quyết bài toán 8 quân cờ nêu trên.Thuật toán A* sẽ đảm bảo lời giải phát hiện ra có chi phí thấp nhất nếu ước lượng các đỉnh đang xét đến đích nhỏ hơn khoảng cách thực Thuật toán A* sẽ sử dụng khoảng cách từ đỉnh xuất phát đến đỉnh x đang xét: g(x) và khoảng cách ước lượng từ đỉnh x đang xét đến đích: h’(X) - Các bước của thuật toán A* như sau:  1. Cho đỉnh xuất phát vào open  2. Nếu open rỗng thì tìm kiếm thất bại, kết thúc việc tìm kiếm  3. Lấy đỉnh đầu trong open ra và gọi đó là O. Cho O vào closed  4. Nếu O là đỉnh đích thì tìm kiếm thành công, keeys thúc việc tìm kiếm  5. Tìm tất cả các đỉnh con của O không thuộc open và closed cho vào open theo thứ tự tăng dần đối với hàm f(x)=g(x)+ h’(x)  6. Trở lại bước 2. - - Để áp dụng được thuật toán A* vào bài toán 8 quân cờ, ta cần xác định hàm heuristic để ước lượng giá trị của mỗi trạng thái ở bảng số.Ta sử dụng thuật toán Manhattan để xây dựng hàm đánh giá chi phí, khi đó giá trị của hàm heuristic sẽ bằng tổng số ô chênh lệch của ô số ở trạng thái hiện tại so với trạng thái đích của nó. Manhattan đo khoảng cách chênh lệch bằng cách đếm các hướng ngang học sao cho đường đi từ vị trí đang xét với vị trí đúng là ngắn nhất. Tọa độ đúng của ô có địa chỉ ID trên ma trận vuông kích thước nxn ta sử dụng công thức sau: RowID=ID/n, ColID=ID%n Khi đó chi phí từ vị trí hiện tại có tọa độ (x2,y2) đến vị trí đích có tọa độ (x1,y1) là: h=| x1-x2 | + | y1-y2 |  Demo - Các bước di chuyển : Bước 0 Bước 2 Bước 1 Bước 3 Bước 4 Bước 5 2. Bài 2  Đề bài: 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.  Thuật toán - Dùng thuật toán MiniMax để giải quyết bài toán nêu trên - Giả sử cả các người chơi đều lựa chọn chiến thuật chơi tối ưu, thì khi một người viết số x, ta có thể biết người đó sẽ chắc chắn thắng hay thua. - Với N không quá lớn thì có thể lập 1 bảng các trạng thái của trò chơi này. - Thuật toán như sau:  Mảng A[] với A[i] sẽ có các giá trị là 0 hoặc 1 để biểu diễn các trạng thái của bài toán, với A[i]=0 là trạng thái chắc chắn thua và A[i]=1 là trạng thái chắc chắn thắng  Khởi tạo A[n]=1 : thắng  Tại một điểm i nào đó với x=2*i hoặc x=i+1, và nếu A[x]=1 thì A[i]=0 , ngược lại thì A[i]=1. Vì nếu người đi hiện tại để người đi sau mình cộng 1 hoặc nhân 2 đụng tới điểm chắc chắn thắng thì người đó sẽ thua.  Sau khi có được bảng các trạng thái thì có thể áp dụng thuật toán MiniMax để tìm kiếm để khả năng thắng của máy là cao nhất - Giả sử như với n=10, ta sẽ có bảng trạng thái như sau:  A[10]=1  A[9]=0 vì A[9+1]=1  A[8]=1 vì A[8+1]=0  A[7]=0 vì A[7+1]=1  A[6]=1 vì A[6+1]=0  A[5]=0 vì A[5*2]=1     A[4]=0 vì A[4*2]=1 A[3]=0 vì A[3*2]=1 A[2]=1 vì A[2+1]=0 A[1]=0 vì A[1+1]=1  Demo Nếu Bấm +1 tiếp tục thì máy sẽ thắng - Trường hợp nhìn bảng trạng thái ở trên, có thể biết mình thắng hay thua 3. Bài 3  Đề bài: 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 công theo thứ tự bất kỳ tuy nhiên một chi tiết J i 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  Thuật toán - Sử dụng thuật toán Johnson để giải quyết bài toán trên. - Thuật toán lập lịch Johnson đối với 2 máy A,B như sau:  Chia các chi tiết thành 2 nhóm: nhóm N1: gồm các chi tiết Di thoả mãn a1< b1, tức là min(ai,bi) = ai và nhóm N2 gồm các chi tiết Di thoả mãn ai>bi tức là min(ai,bi)=bi. Các chi tiết Di thoả mãn ai =bi xếp vào nhóm nào cũng được.  Sắp xếp các chi tiết trong N1 theo chiều tăng của các ai và sắp xếp các chi tiết trong N2 theo chiều giảm của các bi  Nối N2 vào đuôi N1, dãy thu được (đọc từ trái sang phải) sẽ là lịch gia công. - Thuật toán lập lịch Johnson đối với 3 chi tiết máy theo thứ tự A,B,C phải có điều kiện ràng buộc max bi ≤ min ai hoặc max bi ≤ min ci - Lịch gia công tối ưu trên 3 máy sẽ trùng với lịch gia công tối ưu trên 2 máy: máy thứ nhất với thời gian ai + bi và máy thứ hai với thời gian bi + ci.  Demo 4. Bài 4  Đề bài: 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[...]... 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ố  Thuật toán - Sử dụng mảng save[2000][6] để lưu các tập số lọc ra từ câu trả lời của người chơi Begin Đưa ra 1... 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? 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í. .. nhiều ứng dụng khác như nhận dạng dáng đi, người máy, khai thác dữ kiệu và xác thực chữ ký tự động Và đề tài này ta sử dụng DTW để xác thực chữ ký tự động 2 Chữ kí tự động  Hệ thống xác thực chữ lý tự động như sau: a Thu thâp dữ liệu về tiến trình - Việc thu nhận trực tuyến các hàm thời gian của chữ ký tay có thể được thực hiện bằng các thiết bị số hóa hay màn hình cảm ứng,hoăc những thiết bị được... tương ứng đường warp giữa S1(i) và S2(j) b) Xây dựng ma trận DTW - Khởi tạo ma trận khoản cách 2 • d[i,j] = (u[i] – v[j]) Khởi tạo phần tử [0,0] của ma trận DTW • DTW[0,0] = d[0,0] Tính tích lũy các phần tử dòng 0 trên ma trận DTW DTW[0,j] = d[0,j] + DTW[0,j-1] (for j = 1 to M) Khởi tạo ma trận khoản cách 2 • d[i,j] = (u[i] – v[j]) Khởi tạo phần tử [0,0] của ma trận DTW • DTW[0,0] = d[0,0] Tính tích lũy... Sau khi được thu nhận từ các thiết bị điện tử thì chữ ký đươc tiền xử lý trước khi nó được chuyển đến tiến trình chọn đặc trưng Một số bước tiền xử lý quan trọng đó là lọc nhiễu và tái tạo mẫu b Trích chọn đặt trưng - Để trích chọn ra những đặc trưng cơ bản trong chữ ký tự động, người ta sử dụng 2 phương thức cơ bản, đó là feature-based (dựa trên tính năng) và function-based(dựa trên chức năng) Phương... đó chuỗi thời gian mô tả các đặc trưng cục bộ của chữ ký được sử dụng để nhận dạng o Trích chọn đặc trưng từ chữ ký mẫu c Đăng kí chữ ký mẫu - - - Tùy theo tiến trình đối sánh mà đăng ký có thể được chia thành 2 loại: reference-based hoặc model-based Trong phương thức đăng ks reference-based, những đặc trưng mà được trích chọn từ một tập các chữ ký huấn luyện sẽ được lưu trữ như là một tập các chữ ký... do If (i và 1 2 3 4 có a1 số chung vị trí) và (i và 2 1 5 6 có a2 số chung vị trí) If các chữ số còn lại có b1 số giống nhau hoặc b2 số giống nhau Lưu i vào save EndIf Endif EndFor While số lần đoán < 7 Chọn ngẫu nhiên 1 số k trong save và đưa ta cho người chơi chọn lưu kết quả vào a1, b1 If đúng số thì dừng For i trong tập Save If (i và k không có a1 số chung vị trí) If các số chữ số còn lại có không... chữ ký huấn luyện Sau đó, tiến trình đối sánh được thực hiện bằng cách so sánh chữ ký đầu vào với tập chữ ký mẫu và sử dụng kỹ thuật hợp nhất mức điểm để kết hợp các điểm số thu được lại với nhau Trong phương thức đăng ký model-based, tập các chữ ký huấn luyện của một đối tượng cho trước được sử dụng để ước lượng một mô hình thống kê trong đó mô tả hành vi của một người ký cụ thể Khi tập chữ ký huấn... Trong cách tiếp cận function-based, thì tùy thuộc vào chiến lược so khớp mà người ta phân thành 2 loại: cục bộ và miền  Phương thức local sử dụng cách thức đo lường khoảng cách đàn hồi như thuậttoán DTW (Dynamic Time Warping) để đối sánh các hàm thời gian  Phương thức regional, các hàm số thời gian được chuyển thành một tập các véc tơ Mỗi một véc tơ như thế biểu diễn cho một tập các thuộc tính miền... chia_qua() là hàm xử lý chính của chương trình, có nhiệm vụ chia quà cho Tom và Jerrry Hàm sẽ xử lý như sau: ban đầu cho tongtom=0 và tongjerry=0 Cho vòng lặp thực thiện : nếu tongtom ... Đúng vị trí : Đúng số - Sai vị trí : 2156 Đúng số - Đúng vị trí : Đúng số - Sai vị trí : 1416 Đúng số - Đúng vị trí : Đúng số - Sai vị trí : 5436 Đúng số - Đúng vị trí : Đúng số - Sai vị trí :... lịch muốn thăm n thành phố đánh số từ 1 n quay lại thành phố xuất phát Mạng lưới giao thông n thành phố hai chiều cho ma trận A[i,j] A[i,j]=1 có đường từ thành phố i đến thành phố j, A[i,j]=0... đường từ vị trí xét với vị trí ngắn Tọa độ ô có địa ID ma trận vuông kích thước nxn ta sử dụng công thức sau: RowID=ID/n, ColID=ID%n Khi chi phí từ vị trí có tọa độ (x2,y2) đến vị trí đích có

Ngày đăng: 12/10/2015, 20:46

Từ khóa liên quan

Mục lục

  • ĐẠI HỌC ĐÀ NẴNG

  • I. Nội dung buổi 2

    • 1. Bài 1

    • 2. Bài 2

    • 3. Bài 3

    • 4. Bài 4

    • 5. Bài 5

    • 6. Bài 6

    • 7. Bài 7

    • 8. Bài 8

    • 9. Bài 9

    • 10. Bài 10

    • II. Nội dung buổi 3

      • 1. Đề tài và giới thiệu

      • 2. Chữ kí tự động

        • a. Thu thâp dữ liệu về tiến trình

        • b. Trích chọn đặt trưng

        • c. Đăng kí chữ ký mẫu

        • d. So khớp

        • 3. Thuật toán DTW

          • a) Mô tả kí kiệu

          • b) Xây dựng ma trận DTW

          • 4. Tìm warp-path nhỏ nhất

Tài liệu cùng người dùng

Tài liệu liên quan