1. Trang chủ
  2. » Giáo Dục - Đào Tạo

BÁO cáo CHUYÊN đề học PHẦN NHẬP môn TRÍ TUỆ NHÂN tạo đề TÀI GAME GHÉP TRANH 8 ô số DÙNG THUẬT TOÁN BFS và BEST FRIST SEARCH

21 26 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 21
Dung lượng 800,64 KB

Nội dung

TRƯỜNG ĐẠI HỌC ĐIỆN LỰC KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO CHUN ĐỀ HỌC PHẦN NHẬP MƠN TRÍ TUỆ NHÂN TẠO ĐỀ TÀI: GAME GHÉP TRANH Ô SỐ DÙNG THUẬT TOÁN BFS VÀ BEST FRIST SEARCH Sinh viên thực : NGUYỄN TUẤN NHẬT NGUYỄN ĐÌNH SANG NGUYỄN VĂN ANH Giảng viên hướng dẫn : PHẠM ĐỨC HỒNG Ngành : CÔNG NGHỆ THÔNG TIN Chuyên ngành : CÔNG NGHỆ PHẦN MỀM Lớp : D14CNPM4 Khóa : 2019-2024 Hà Nội, tháng 12 năm 2021 PHIẾU CHẤM ĐIỂM Sinh viên thực hiện: STT Họ tên Nguyễn Tuấn Nhật Nguyễn Đình Sang Nguyễn Văn Anh Chữ ký Nhiệm vụ Giảng viên chấm: Họ tên Giảng viên chấm 1: Giảng viên chấm 2: Chữ ký Ghi MỤC LỤC Trang Lời Mở Đầu…………………………………………………………………………… Chương 1: Giới thiệu mơ tả tốn thực tế giải quyết………………… 1.1 Tên Đề Tài………………………………………………………………………… 1.2 Lý chọn đề tài 1.3 Mơ tả tốn thực tế giải Chương 2: Các chi tiết phương pháp dùng để giải toán 2.1 Thuật toán Breadth First Search 2.2 Thuật toán Best First Search Chương 3: Các chức trị chơi 3.1 Tổng quan giao diện 3.2 Chức random hình ảnh 3 Chức đếm bước 3.4 Chức chơi lại 3.5 Chức tạm dừng 3.6 Chức giải BFS 3.7 Chức giải tối ưu 3.8 Chức thoát 3.9 Chức lui tới 3.10 Chức tính thời gian Chương 4: Các vấn đề khó khăn, tranh luận hướng phát triển……… KẾT LUẬN TÀI LIỆU THAM KHẢO LỜI MỞ ĐẦU Ngày nay, bước vào kỷ 21, kỷ nguyên Công nghệ thông tin, đặc biệt trí tuệ nhân yếu tố quan trọng định thành công ngành hay quốc gia Trí tuệ nhân tạo làm thay đổi sống chúng ta, với phát triển mạnh mẽ việc áp dụng nghiên cứu trí tuệ nhân tạo áp dụng cho sống Tất ngành như: Quân đội, y tế, giáo dục, kinh tế thương mại, tài chính,… Đều áp dụng trí tuệ nhân cách rộng rãi, Việc áp dụng trí tuệ nhân tạo để giải vấn đề xã hội việc phát triển kinh tế nhà nước khuyến khích đầu tư lớn Trên giới Việt Nam, CNTT có ảnh hưởng mạnh mẽ đến phát triển đất nước giới đặc biệt trí tuệ nhân tạo Nó chở thành yếu tố khơng thể thiếu có tính định đến thành công hay thất bại nhiều ngành nước ta, CNTT phát triển với tốc độ mạnh mẽ ứng dụng rộng rãi tất lĩnh vực, đặc biệt công tác ứng dụng công nghệ vào sống Như biết, sức mạnh kinh tế phụ thuộc lớn vào hoạt động nước doanh nghiệp, thành cơng kinh doanh doanh nghiệp mục tiêu riêng doanh nghiệp, mà cịn nhân tố định vị đất nước trường quốc tế Việc đưa AI vào áp dụng cho doanh nghiệp ngành y tế, công nghiệp nặng ưu tiên phát triển mạnh mẽ Tại Việt Nam, Nhà nước vào phát triển dịch vụ, đầu tư mạnh mẽ vào trí tuệ nhân tạo hay cịn gọi AI Vì thế, việc đầu phát triển xu hot ưu chuộng Chính thơng qua việc học mơn trí tuệ nhân tạo (AI) nhóm em nghĩ ý tưởng nhỏ áp dụng thuật tốn học để làm Game xếp hình số Phục vụ cho việc chứng minh áp dụng trí tuệ nhân tạo mang lại lợi ích tối ưu không gian thời gian cho người Chúng em xin chân thành cảm ơn! CHƯƠNG 1:GIỚI THIỆU VÀ MÔ TẢ BÀI TOÁN THỰC TẾ ĐƯỢC GIẢI QUYẾT 1.1 Tên Đề Tài - Game Ghép Tranh ô số 1.2 Lí Do Chọn Đề Tài - Mơ tả khác nhau, thời gian tìm kiếm, độ tối ưu hai thuật tốn “Breadth First Search” “Best First Search” thơng qua trị chơi Ghép Tranh số 1.3 Mơ tả toán thực tế giải - - - Vị trí hình trị chơi nằm ngẫu nhiên trộn lẫn ơ, có đen để người dùng dịch chuyển bước Mỗi lần di chuyển người dùng bước theo chiều qua trái, qua phải, lên xuống để ghép thành hình hồn chỉnh theo hình mẫu cho theo Người dùng khơng chéo Trong q trình chơi có trường hợp người dùng khơng thể đến trạng thái hồn chỉnh hình Vì áp dụng trí tuệ nhân tạo vào trị chơi này, cụ thể chúng em áp dụng thuật toán Breadth-FirstSearch Best-First-Search game để đưa người chơi đến trạng thái hoàn chỉnh (giải đường đến trạng thái hoàn chỉnh) Vậy tốn thực tế tìm đường đến trạng thái hoàn thành game ghép tranh ô số, đưa trạng thái ngẫu nhiên chưa hoàn chỉnh tranh tranh hồn chỉnh áp dụng thuật tốn trí tuệ nhân tạo CHƯƠNG 2: CÁC CHI TIẾT CỦA PHƯƠNG PHÁP DÙNG ĐỂ GIẢI QUYẾT BÀI TỐN 2.1 Thuật tốn Breadth First Search: - Đây thuật tốn tìm đường từ đỉnh xuất phát đến đỉnh kết thúc duyệt theo chiều rộng Đây thuật toán nằm nhóm thuật tốn tìm kiếm mù, thuật tốn khơng quan tâm đến trọng số đường mà duyệt theo đỉnh kề liên tiếp Xuất phát tử đỉnh tới đỉnh kề nó, tiếp tục khơng cịn đỉnh để Trong trình đến đỉnh kề, tiến hành lưu lại đỉnh kề để ngược lại từ đỉnh kết thúc đến đỉnh xuất phát ta có đường ngắn Mơ tả thuật tốn: Cách đỉnh xét khơng thể xét lại lần Cơ chế lưu lại đỉnh kề lưu đỉnh kề thành danh sách lấy từ từ danh sách đỉnh kề để xét, mà đỉnh kề đỉnh xét thêm vào danh sách thêm vào cuối danh sách hay gọi chế Queue(hàng đợi) Cơ chết có nghĩa thêm phần tử phần tử thêm cuối danh sách hàng đợi, lấy phần tử lấy đầu danh sách hàng đợi Đó điểm bật để phân biệt thuật toán với thuật toán khác  Ưu điểm o Dễ cài đặt o Nếu số đỉnh hữu hạn, thuật tốn chắn tìm kết  Khuyết điểm o Mang tính chất vét cạn, khơng nên áp dụng duyệt số đỉnh lớn o Mang tính chất mù qng, duyệt tất đỉnh, khơng ý đến thông tin đỉnh để duyệt hiệu quả, dẫn đến duyệt qua đỉnh không cần thiết o Chiếm thời gian không gian nhớ số đình duyệt nhiều - Chi tiết chạy bước thuật toán BFS: Breadth_First_Search (BFS) Begin Bước 1: Khởi tạo danh sách L chứa trạng thái ban đầu Bước 2: Loop 2.1 If L rỗng then {Thông báo tìm kiếm thất bại; Stop}; 2.2 Loại trạng thái u đầu danh sách L; 2.3 If u trạng thái kết thúc then {Thơng báo tìm kiếm thành công; Stop}; 2.4 for trạng thái v kề với trạng thái u {Đặt v vào cuối danh sách L; father(v) = u}; Ví dụ 1: Trong ví dụ trên, trạng thái danh sách kề thêm vào cuối danh sách L(Queue hàng đợi), lần đỉnh duyệt lấy trạng thái danh sách L để duyệt Cứ tiếp tục đến đỉnh kết thúc cần tìm Danh sách L (Queue hàng đợi ) rỗng 2.2 Thuật tốn Best First Search - - Tìm kiếm theo bề rộng hướng dẫn hàm đánh giá hay cịn gọi hàm Heuristic Nằm nhóm thuật tốn tìm kiếm kinh nghiệm Hàm đánh giá tính theo phương thức: đếm số sai vị trí so với trạng thái người dùng mong muốn tính theo khoảng cách Mahattan Trong trò chơi hàm đánh giá (Heuristic) tính theo đếm số sai vị trí so với trạng thái đích mong muốn Mơ tả thuật toán: Cũng tương tự thuật toán Breadth First Search Nhưng Best First Search khác chổ: Đỉnh chon để phát triển đỉnh tốt - xác định hàm đánh giá (đỉnh có giá trị hàm đánh giá nhỏ nhất) Có nghĩa lần thêm vào hàng đợi danh sách trạng thái xếp theo thứ tự tăng dần dựa theo hàm đánh giá, hàm đánh giá thấp tương đương số bị sai vị trí Từ ta chọn trạng thái tốt để tiếp Ưu điểm thuật tốn duyệt qua đỉnh có hàm đánh giá nên duyệt việc xếp hàm đánh giá giúp tìm tới đỉnh cuối nhanh tốn thời gian  Ưu điểm o Khá dễ cài đặt o Nếu số đỉnh hữu hạn, thuật toán chắn tìm kết o Có xét thêm hàm Heuristic nên duyệt trạng thái Breadth First Search => nhanh hơn, tốn khơng gian  Khuyết điểm o Chiếm thời gian không gian nhớ số đỉnh duyệt lớn - Chi tiết chạy bước thuật toán Best First Search: Begin Bước 1: Khởi tạo danh sách L chứa trạng thái ban đầu Bước 2: Loop 2.1 If L rỗng then {Thơng báo tìm kiếm thất bại; Stop}; 2.2 Loại trạng thái u đầu danh sách L; 2.3 If u trạng thái kết thúc then {Thông báo tìm kiếm thành cơng; Stop}; 2.4 for trạng thái v kề với trạng thái u Xen v vào danh sách L cho L theo thứ tự tăng dần hàm đánh giá; End; Ví dụ 2: Trong ví dụ ta thấy đường cuối A->E->F->I ví dụ Nhưng số trạng thái mà thuật toán phải duyệt có đỉnh tìm đường Do danh sách L (Queue hàng đợi) lúc đưa trạng thái tốt đầu danh sách để lấy duyệt tiếp 2.3 Ứng dụng thuật tốn vào Game ghép tranh số Áp dụng thuật tốn nói vào game ô số Lúc trạng thái hay đỉnh mà thuật tốn duyệt qua danh sách số từ đến 9, có số đánh dấu đen trống người chơi di chuyển - Mỗi lần thuật toán duyệt qua trạng thái, đưa vào hàng đợi, ta có danh sách chứa danh sách - Kết đường tìm trả danh sách trạng thái mà tìm ra(cũng danh sách số từ đến 9) - *Hướng dẫn chơi game Ghép Tranh ô số: - - Khi người dùng khởi động chương trình lên Màn hình hiển thị bên táy phải hình gốc(hình hồn chỉnh sau ghi ghép tranh), bên tay trái ô số chứa phần nhỏ cắt từ tranh hồn chỉnh, số có màu đen trống để người chơi di chuyển ô lân cận, ô trộn lẫn ngẫu nhiên khơng hồn chỉnh thành tranh Nhiệm vụ người chơi di chuyển ô lên, xuống, trái, phải không chéo dựa theo ô trống đen, cho ghép thành tranh hồn chỉnh hình bên tay phải Khi người chơi bắt đầu chơi, thời gian tính, số bước đếm nhằm thống kê thời gian số bước người chơi đến kết cuối - - Người chơi tạm ngưng lúc chơi, chọn nút tạm ngưng hình số ngẫu nhiên bị tắt đi, phòng trường hợp người chơi xem trước đường Người chơi chọn nút chơi lại để bắt đầu chơi lại từ đầu, lúc ô số trộn ngẫu nhiên lại lần thời gian bước cài đặt trạng thái ban đầu Nếu người chơi khơng thể đến ghép thành tranh hồn chỉnh người chơi chọn nút giải theo BFS hay giải Tối Ưu hình, sau chọn thuật toán giải số bước hiển thị lên, thời gian số trạng thái duyệt qua hiển thị lên, từ người chơi click vào nút tới để bắt đầu xem kết bước thuật toán hồn chỉnh tranh Người dùng lui để xem lại bước trước Người dùng khỏi chương trình CHƯƠNG 3: CÁC CHỨC NĂNG CHÍNH CỦA TRỊ CHƠI 3.1 Tổng quan chức năng, giao diện 3.2 Chức random hình ảnh lên hình - Khi bước vào trị chơi hình ảnh random cách ngẫu nhiên 3.3 Chức đếm bước - Khi di chuyển trang thái để xếp hình ảnh lần di chuyển tính bước Chức giúp đánh giá bạn sử dụng trạng thái để ghép thành cơng tấp hình Hay gọi cách khác bạn sử dụng trang thái để hồn thành trị chơi Ngồi đánh giá chức cịn giúp bạn ghi nhận lại số bước để lần tới bạn cải thiện số trạng thái dùng để chiến thắng trò chơi Một bạn dùng trạng thái để chiến thắng bạn đánh giá khả chơi trò chơi 3.4 Chức chơi lại -Khi người chơi muốn chơi gặp khó khăn việc di chuyển hình trị chơi người chơi tìm cách để chiến thắng trị chơi mà tốt thời gian tốn số bươc để đến chiến thắng người chơi chơi lại từ đầu -Khi bạn cảm thấy chơi hồi mà khơng chiến thắng bạn bấm chơi lại để bắt đầu lại từ đầu Khi có thơng báo hỏi bạn có muốn chơi lại từ đầu hay khơng -Khi bạn chắn chơi lại từ đầu hình chơi random lại trạng thái cách ngẫu nhiên 3.5 Chức tạm dừng -Khi vào hình chơi game nút tạm dừng bị ẩn Tới bạn chơi bước thời gian tính bạn tạm dừng -Chức giúp bạn chơi bạn tạm dừng -Để đảm báo tính hấp dẫn thú vị cho trị chơi bạn bấm tạm dừng hình ảnh hình bạn cịn để lại hình mẫu bên phải mà thơi Cịn trạng thái bạn xếp dở biến Khiến cho bạn tạm dừng để suy nghĩ bước -Khi button tạm dừng chuyển thành tiếp tục để người chơi chọn chơi tiếp 3.6 Chức giải BFS -Click vào button giải BFS người dừng phải đợi chút để máy tự giải Tới phần đếm bước hiển thị số bước: -Thì thuật tốn giải hiển thị hình thời gian số bước duyệt để chọn trạng thái cuối để người chơi đến chiến thắng: 3.7 Chức giải tối ưu -Khi bạn click vào button giải tối ưu người dùng chờ chút Tới mà phần đến bước hiển thị số bước trị chơi tự máy giải xong -Chức hiển thi thời gian số trạng thái duyệt qua để đến trạng thái kết thúc -Việc hiển thị số bước để duyệt hay gọi số trạng thái để đến trạng thái cuối cùng, giúp người dùng so sánh hai phương pháp giải với 3.8 Chức thoát -Khi muốn tắt chương trình người dùng có chức Khí bạn click vào hiển thị thơng báo xác nhận bạn có muốn hay khơng -Người dùng chọn có chương trình cịn chọn khơng chương trình tiếp tục 3.9 Chức lui tới -Khi bạn chọn chức giải BFS giải tối ưu chương trình thực thi xong bạn chọn chức tới lui để bước tới trạng thái kết thúc -Chức giúp người chơi hiểu bước giải máy thông qua việc bước bước -Khi hết tất bước bạn tới trạng thái kêt thúc 3.10 Chức tính thời gian -Khi bắt đầu vào trị chơi thời gian chưa tính, bạn bắt đầu di chuyển trạng thái ô khung thời gian bắt đầu tính Hiểu nơm na bạn di chuyển thời gian bắt đầu tính kể sau bạn khơng di chuyển thêm khác thời gian tính -Chức tính thời gian chức đánh giá khả bạn tương tự đếm bước bạn Bạn hoàn thành thời gian ngắn chứng tỏ bạn thơng minh chơi game tốt -Thời gian dừng trạng thái bạn hoàn thành trạng thái kết thúc Hay nói cách khác bạn xếp hình thời gian dừng lại CHƯƠNG 4: CÁC VẤN ĐỀ KHÓ KHĂN, TRANH LUẬN VÀ HƯỚNG PHÁT TRIỂN 4.1 Vấn đề khó khăn -Trường hợp trạng thái đầu truyền vào mảng random gặp random số vị trí sai nhiều thuật toán Breadth-Frist-Search Best First Search nhiều thời gian để tìm đường  Chổ chúng em khắc phục cách tạo trường hợp tương đương testcase có sẵn, trường hợp trạng thái mà thuật tốn tìm đường thời gian không lâu từ 0.01-> 10 giây Và cho trạng thái đầu vào chạy random testcase -Nếu người chơi bấm nút tạm ngừng, sau bấm nút chơi lại chương trình bị lỗi -Trị chơi khó mở rộng lên 16 ô, 25 ô v v… 4.2 Đề xuất cải tiến game: -Đối với trường hợp có q nhiều bị sai thuật tốn Best First Search hay Breadth First Search tìm đường lâu, cần áp dụng thuật toán tối ưu A*, Nhánh Cận, AKT để có quan sát độ tối ưu, thời gian …v…v… cao -Nên in đường trạng thái duyệt qua lên hình giao diện dạng mảng chiều, thay in Console -Đề xuất bấm nút giải label thời gian phải bắt đầu đếm giải xong hiển thị thời gian cuối lên lable -Đề xuất bấm nút giải tự động picture box phải tự di chuyển đến trạng thái cuối hồn chỉnh mà khơng cần người chơi phải click nút “đi tới” để xem -Mở rộng trò chơi lên 16 ô, 25 ô KẾT LUẬN -Kết đạt  Báo cáo nêu tổng quát nội dung đề tài  Tìm hiểu hai thuật toán Breadth First Search BFS để xây dựng nên game ghép tranh ô số đơn giản  Xây dưng thành công game ghép tranh ô số đơn giản -Hạn chế đề tài  Trò chơi chưa hồn thiện đầy đủ  Trị chơi khó mở rộng lên 16 ô, 25 ô v v… -Đề xuất hướng phát triển  Đối với trường hợp có q nhiều bị sai thuật tốn Best First Search hay Breadth First Search tìm đường lâu, cần áp dụng thuật toán tối ưu A*, Nhánh Cận, AKT để có quan sát độ tối ưu, thời gian … v…v… cao  Mở rộng trị chơi lên 16 ơ, 25  Đề xuất có nút tạm dừng trị chơi TÀI THAM KHẢO https://www.brainkart.com/article/Best-First-Search Concept,-Algorithm,Implementation,-Advantages,-Disadvantages_8881/ https://en.wikibooks.org/wiki/Artificial_Intelligence/Search/ Exhaustive_search/Breadth-first_search https://www.geeksforgeeks.org/c-sharp-random-next-method/ https://docs.microsoft.com/en-us/dotnet/api/ system.diagnostics.stopwatch.elapsedmilliseconds?view=netframework-4.8 https://stackoverflow.com/questions/6068856/c-sharp-swapping-objectswithout-a-placeholder ... dựng nên game ghép tranh ô số đơn giản  Xây dưng thành công game ghép tranh ô số đơn giản -Hạn chế đề tài  Trị chơi chưa hồn thiện đầy đủ  Trị chơi khó mở rộng lên 16 ô, 25 ô v v… -Đề xuất... game ghép tranh ô số, đưa trạng thái ngẫu nhiên chưa hoàn chỉnh tranh tranh hoàn chỉnh áp dụng thuật tốn trí tuệ nhân tạo CHƯƠNG 2: CÁC CHI TIẾT CỦA PHƯƠNG PHÁP DÙNG ĐỂ GIẢI QUYẾT BÀI TỐN 2.1 Thuật. .. Chính thơng qua việc học mơn trí tuệ nhân tạo (AI) nhóm em nghĩ ý tưởng nhỏ áp dụng thuật tốn học để làm Game xếp hình số Phục vụ cho việc chứng minh áp dụng trí tuệ nhân tạo mang lại lợi ích

Ngày đăng: 01/08/2022, 14:47

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w