1. Trang chủ
  2. » Luận Văn - Báo Cáo

Chuẩn mã dữ liệu DES và xây dựng chương trình ứng dụng

66 162 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 66
Dung lượng 1,11 MB

Nội dung

Header Page of 128 LỜI CẢM ƠN Em xin bày tỏ lời cảm ơn sâu sắc tới PGS.TS Lê Huy Thập tận tình hướng dẫn, bảo em q trình làm khóa luận để tìm hiểu, nghiên cứu đề tài “Một số thuật tốn trò chơi trí tuệ xây dựng chương trình thử nghiệm” để em hồn thành tốt đề tài tốt nghiệp Em xin chân thành cảm ơn dạy bảo thầy, cô giáo khoa CNTT – Trường Đại học sư phạm Hà Nội trang bị cho em kiến thức để em hồn thành tốt đề tài tốt nghiệp Mặc dù cố gắng để hồn thành khóa luận cách tốt dựa nỗ lực thân, song chắn khóa luận khơng tránh khỏi sai sót hạn chế Em mong thầy, giáo dẫn, đóng góp cho em ý kiến quý báu để giúp em hoàn thiện đề tài để phát triển mở rộng đề tài sau Em xin chân thành cảm ơn! Hà Nội, tháng năm 2013 Sinh viên thực Nguyễn Thị Huệ luan van thac si - luan van kinh te - khoa luan - tai lieu -Footer Page of 128 Header Page of 128 LỜI CAM ĐOAN Tên em là: NGUYỄN THỊ HUỆ Sinh viên lớp: K35 – Tin học, khoa Công nghệ thông tin, trường Đại học sư phạm Hà Nội Em xin cam đoan: Đề tài: “Một số thuật toán trò chơi trí tuệ xây dựng chương trình thử nghiệm” nghiên cứu riêng em, hướng dẫn thầy giáo PGS.TS Lê Huy Thập Khóa luận hồn tồn khơng chép tác giả khác Nếu sai em xin hoàn toàn chịu trách nhiệm Hà Nội, tháng năm 2013 Người cam đoan Nguyễn Thị Huệ luan van thac si - luan van kinh te - khoa luan - tai lieu -Footer Page of 128 Header Page of 128 MỤC LỤC LỜI CẢM ƠN LỜI CAM ĐOAN MỤC LỤC DANH MỤC HÌNH VẼ MỞ ĐẦU Chương 1: CƠ SỞ LÝ THUYẾT 1.1 Tổng quan trí tuệ nhân tạo 1.1.1 Mở đầu 1.1.2 Thông tin, liệu tri thức 1.1.3 Các phương pháp biểu diễn tri thức máy tính 1.2 Giới thiệu lý thuyết trò chơi 20 1.3 Giới thiệu Java 21 1.3.1 Lịch sử phát triển Java 21 1.3.2 Các đặc điểm Java 22 1.3.3 Máy ảo Java 23 1.3.4 Bộ công cụ phát triển JDK 24 Chương 2: MỘT SỐ THUẬT TOÁN TRONG TRỊ CHƠI TRÍ TUỆ 27 2.1 Cấu trúc chung tốn tìm kiếm 27 2.2 Các phương pháp tìm kiếm heuristic 28 2.2.1 Tìm kiếm theo bề rộng tìm kiếm theo độ sâu 28 2.2.2 Tìm kiếm leo đồi 32 2.2.4 Thuật giải AT 36 2.2.5 Thuật giải AKT 37 2.2.6 Thuật giải A* 37 Chương 3: XÂY DỰNG CHƯƠNG TRÌNH THỬ NGHIỆM 41 3.1 Giới thiệu toán 41 luan van thac si - luan van kinh te - khoa luan - tai lieu -Footer Page of 128 Header Page of 128 3.2 Giải toán 44 3.2.1 Áp dụng giải thuật A* 44 3.2.2 Áp dụng giải thuật A* lặp sâu dần 45 3.3 Xây dựng chương trình 46 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 59 TÀI LIỆU THAM KHẢO 61 luan van thac si - luan van kinh te - khoa luan - tai lieu -Footer Page of 128 Header Page of 128 DANH MỤC HÌNH VẼ Hình 1.1: Tình hình ngành trí tuệ nhân tạo Hình 1.2: Sơ đồ điện trở (R), điện (U), cường độ dòng điện (I) Hình 1.3: Đồ thị AND/OR 14 Hình 1.4: Ví dụ mạng ngữ nghĩa 15 Hình 1.5: Ưu khuyết điểm phương pháp biểu diễn tri thức 19 Hình 2.1: Mơ hình chung vấn đề - tốn 28 Hình 2.2: Hình ảnh tìm kiếm theo bề rộng 29 Hình 2.3: Hình ảnh tìm kiếm theo độ sâu 31 Hình 2.4: Khơng gian trạng thái 33 Hình 2.5: Cây tìm kiếm leo đồi 33 Hình 2.6: Cây tìm kiếm tốt – 35 Hình 2.7: Đồ thị khơng gian trạng thái với hàm đánh giá 37 Hình 2.8: Cây tìm kiếm theo thuật tốn A* 38 Hình 2.9: Đỉnh n tìm kiếm nằm đường tối ưu 40 Hình 3.1: Trạng thái ban đầu trạng thái kết thúc toán số 41 Hình 3.2: Một trạng thái toán số 42 Hình 3.3: Phát triển trạng thái 43 Hình 3.4: Một trạng thái ban đầu trạng thái kết thúc tốn số 44 Hình 3.5: Bài toán số 56 Hình 3.6: Sắp xếp 25 ô (5×5) 57 Hình 3.7: Xếp tranh thỏ 57 Hình 3.8: Xuất hộp thoại tự động tìm lời giải 58 luan van thac si - luan van kinh te - khoa luan - tai lieu -Footer Page of 128 Header Page of 128 MỞ ĐẦU Lý chọn đề tài Ngày với phát triển không ngừng khoa học kỹ thuật đặc biệt Công nghệ thông tin lĩnh vực ln đưa lên vị trí hàng đầu thúc đẩy tăng trưởng phát triển kinh tế quốc gia Công nghệ thông tin dần khẳng định vai trò lĩnh vực khoa học, kỹ thuật giải trí Xuất phần mềm trò chơi giải trí ln mang lại lợi nhuận cao cho quốc gia có ngành tin học phát triển mạnh Khi máy tính cá nhân trở thành phần đời sống người, sản phẩm giải trí máy ngày có hội để phát triển, đặc biệt game mini game chơi cờ Tuy nhiên yêu cầu game hay cao đồ họa, xử lý kiện…Do viết game vừa hội vừa thách thức người lập trình phương pháp tốt để hồn thiện kỹ lập trình lập trình viên Hiện nay, có nhiều ngơn ngữ lập trình dùng để viết game, Java ngơn ngữ lập trình Với kỹ thuật xử lý hình ảnh, âm hỗ trợ sẵn Java có đầy đủ sức mạnh để xây dựng game hồn hảo, lý để Java chọn làm ngơn ngữ viết game trình bày đề tài Tuy rằng, lĩnh vực xây dựng trò chơi game khơng mẻ qua học tập nghiên cứu với mong muốn vận dụng kiến thức học để triển khai thiết kế trò chơi game, em lựa chọn đề tài khóa luận là: “Một số thuật tốn trò chơi trí tuệ xây dựng chương trình thử nghiệm” Mục tiêu nghiên cứu Tìm hiểu số thuật tốn vận dụng kiến thức mơn Trí tuệ nhân tạo ngơn ngữ lập trình Java mà em học để xây dựng trò chơi trí tuệ cụ thể trò chơi xếp hình luan van thac si - luan van kinh te - khoa luan - tai lieu -Footer Page of 128 Header Page of 128 Đối tượng phạm vi nghiên cứu Đối tượng nghiên cứu: Thuật tốn trò chơi trí tuệ Phạm vi nghiên cứu: Trò chơi trí tuệ Phương pháp nghiên cứu a Phương pháp nghiên cứu lý luận Nghiên cứu qua việc đọc sách, báo tài liệu liên quan nhằm xây dựng sở lý thuyết đề tài biện pháp cần thiết để giải vấn đề đề tài b Phương pháp chuyên gia Tham khảo ý kiến chuyên gia để thiết kế chương trình phù hợp với yêu cầu thực tiễn Nội dung xử lý nhanh đáp ứng yêu cầu ngày cao người sử dụng c Phương pháp thực nghiệm Thông qua quan sát thực tế, yêu cầu sở, lý luận nghiên cứu kết đạt qua phương pháp Ý nghĩa khoa học thực tiễn đề tài Ý nghĩa khoa học: Trí tuệ nhân tạo có ý nghĩa to lớn khoa học, kỹ thuật đời sống Ý nghĩa thực tiễn: Đề tài giới thiệu hướng nghiên cứu quan tâm xây dựng game máy tính nâng cấp thành game điện thoại Cấu trúc khóa luận Ngồi phần mở đầu, kết luận hướng phát triển khóa luận bao gồm chương: Chương 1: Cơ sở lý thuyết Chương 2: Một số thuật tốn trò chơi trí tuệ Chương 3: Xây dựng chương trình thử nghiệm luan van thac si - luan van kinh te - khoa luan - tai lieu -Footer Page of 128 Header Page of 128 Chương 1: CƠ SỞ LÝ THUYẾT 1.1 Tổng quan trí tuệ nhân tạo 1.1.1 Mở đầu Chế tạo cỗ máy thông minh người (thậm chí thơng minh người) ước mơ cháy bỏng loài người từ hàng ngàn năm Năng lực máy tính ngày mạnh mẽ điều kiện thuận lợi cho trí tuệ nhân tạo Điều cho phép chương trình máy tính áp dụng thuật giải trí tuệ nhân tạo có khả phản ứng nhanh hiệu trước Sự kiện máy tính Deep Blue đánh bại kiện tướng cờ vua giới Casparov minh chứng hùng hồn cho bước tiến dài công nghiên cứu trí tuệ nhân tạo Tuy đánh bại Casparov Deep Blue cỗ máy biết đánh cờ Nó chí khơng có trí thơng minh sơ đẳng đứa bé lên ba nhận diện người thân, khả quan sát nhận biết giới, tình cảm thương, ghét, Ngành trí tuệ nhân tạo có bước tiến đáng kể, trí tuệ nhân tạo thực có phim khoa học giả tưởng Hollywood Vậy nghiên cứu trí tuệ nhân tạo? Điều tương tự ước mơ chế tạo vàng nhà giả kim thuật thời Trung Cổ, chưa thành cơng q trình nghiên cứu làm sáng tỏ nhiều vấn đề Mặc dù mục tiêu tối thượng ngành trí tuệ nhân tạo xây dựng máy có lực tư tương tự người khả tất sản phẩm trí tuệ nhân tạo khiêm tốn so với mục tiêu đề Tuy vậy, ngành khoa học mẻ tiến ngày tỏ ngày hữu dụng số cơng việc đòi hỏi trí thơng minh người Hình ảnh sau giúp bạn hình dung tình hình ngành trí tuệ nhân tạo luan van thac si - luan van kinh te - khoa luan - tai lieu -Footer Page of 128 Header Page of 128 Hình 1.1: Tình hình ngành trí tuệệ nhân tạo Mục tiêu ngành ng khoa học trí tuệ nhân tạo: Tạo ạo máy tính có khả nhận thức, suy luận vvà phản ứng Nhận thức ợc hiểu l khảả quan sát, học hỏi, hiểu biết nh ững kinh nghiệm giới xung quanh Quá trình trình nhận nh thức giúp người ời có tri thức Suy luận l khả vận dụng ụng tri thức sẵn có để phản ản ứng với tình t hay vấn đề - toán gặp g phải ộc sống Nhận thức v suy luận để từ đưa ững phản ứng thích hợp ba hành vi có thểể nói l đặc trưng cho trí tuệệ ng người Do đó, khơng có ngạc ạc nhiên nhi muốn ốn tạo máy tính thơng minh, ta cần ần phải trang bị cho khả n Cảả ba khả n cần đến yếu tố ản llà tri thức Dưới góc nhìn ìn c báo cáo này, xây dựng ựng trí tuệ nhân tạo l tìm cách biểu ểu diễn tri thức, thức tìm cách vận dụng tri thức đểể giải vấn đề v tìm cách bổ ổ sung tri thức ằng cách "phát hiện" tri thức từ thông tin sẵn có (máy học) luan van thac si - luan van kinh te - khoa luan - tai lieu -Footer Page of 128 Header Page 10 of 128 1.1.2 Thông tin, liệu tri thức Tri thức khái niệm trừu tượng Do đó, không cố gắng đưa định nghĩa hình thức xác Thay vào đó, cảm nhận khái niệm "tri thức" cách so sánh với hai khái niệm khác thông tin liệu Nhà bác học tiếng Karan Sing nói rằng: "Chúng ta ngập chìm biển thơng tin lại khát tri thức" Câu nói làm bật khác biệt lượng lẫn chất hai khái niệm thông tin tri thức Trong ngữ cảnh ngành khoa học máy tính, người ta quan niệm liệu số, chữ cái, hình ảnh, âm mà máy tính tiếp nhận xử lý Bản thân liệu thường khơng có ý nghĩa người Còn thơng tin tất mà người cảm nhận cách trực tiếp thông qua giác quan (khứu giác, vị giác, thính giác, xúc giác, thị giác giác quan thứ 6) gián tiếp thông qua phương tiện kỹ thuật tivi, radio, cassette, Thông tin người có ý nghĩa định Với phương tiện máy tính (mà cụ thể thiết bị đầu ra), người tiếp thu phần liệu có ý nghĩa Nếu so lượng, liệu thường nhiều thông tin Cũng quan niệm thơng tin quan hệ liệu Các liệu xếp theo thứ tự tập hợp lại theo quan hệ chứa đựng thơng tin Nếu quan hệ cách rõ ràng tri thức Chẳng hạn: - Trong toán học: Bản thân số riêng lẻ 1, 1, 3, 5, 2, 7, 11, liệu Tuy nhiên, đặt chúng lại với theo trật tự chúng bắt đầu có mối liên hệ luan van thac si - luan van kinh te - khoa luan - tai lieu -Footer Page 10 of 128 Header Page 52 of 128 Thuật toán A* public void solveAstar() { //Giải A* KQ.clear(); long startTime = System.currentTimeMillis(); initialnode.f = initialnode.h = initialnode.estimate(goalnode); initialnode.g = 0; FRINGE.add(0, initialnode); // cho nút đầu vào FRINGE total_nodes = 0; count = 0; while (true) { if (FRINGE.isEmpty() || !(Main.window.issolu)) //điều kiện dừng { FRINGE.clear(); M.clear(); Stop = "stop"; return; } if (System.currentTimeMillis()- startTime > 180000) //điều kiện dừng { FRINGE.clear(); M.clear(); Stop = ":D \n"; return; } lowIndex = 0; fmin = FRINGE.elementAt(0).f; 47 luan van thac si - luan van kinh te - khoa luan - tai lieu -Footer Page 52 of 128 Header Page 53 of 128 for (int i = 0; i < FRINGE.size(); i++) // tìm nút có f nhỏ FRINGE { number = FRINGE.elementAt(i).f; if (number < fmin) { lowIndex = i; //vị trí nút có fmin FRINGE fmin = number; } } n = FRINGE.elementAt(lowIndex); //xét nút n có fmin FRINGE.removeElement(n); //xóa nút xét FRINGE if(n.h == 0) //if (n.equals(goalnode)) //kiểm tra nút xét có phải đích { long endTime = System.currentTimeMillis(); time_solve = endTime - startTime; total_nodes = count + FRINGE.size(); AddKQ(n); //đưa kết vào KQ FRINGE.clear(); M.clear(); return; } M = n.successors(); // sinh tâp trạng thái n if(n.Parent != null) { for(int i = 0; i < M.size(); i++) 48 luan van thac si - luan van kinh te - khoa luan - tai lieu -Footer Page 53 of 128 Header Page 54 of 128 { if(isKT(n.Parent,M.elementAt(i))) // xóa trạng thái n trùng với trạng thái Cha(n) M.remove(i); } } for (int i = 0; i < M.size(); i++) // tính thơng số trạng thái { Node s = M.elementAt(i); s.g = n.g + s.cost; s.h = s.estimate(goalnode); s.f = s.g + s.h; tempNode = (Node)M.elementAt(i); tempNode.Parent = n; // đặt n cha trạng thái FRINGE.add(0, M.elementAt(i)); // thêm trạng thái vào FRINGE } count++; //tăng số nút duyệt } } Thuật toán IDA* public void solveIDAstar() { //giải IDA* KQ.clear(); long startTime = System.currentTimeMillis(); initialnode.f = initialnode.h = initialnode.estimate(goalnode); initialnode.g = 0; FRINGE.add(0, initialnode); 49 luan van thac si - luan van kinh te - khoa luan - tai lieu -Footer Page 54 of 128 Header Page 55 of 128 cutOff = 0; total_nodes = 0; count = 0; while (true) { while (FRINGE.size() != 0) //quá trình tìm kiếm sâu dần { if (FRINGE.isEmpty() || !(Main.window.issolu)) { FRINGE.clear(); M.clear(); VISIT.clear(); Stop = "stop"; return; } if (System.currentTimeMillis()- startTime > 180000) //điều kiện dừng { FRINGE.clear(); M.clear(); Stop = ":D \n"; return; } n = FRINGE.elementAt(0); //lấy nút FRINGE if(n.f

Ngày đăng: 30/03/2018, 22:36

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w