Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 34 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
34
Dung lượng
1,56 MB
Nội dung
Ket-noi.com kho tài liệu miễn phí TRƯỜNG ĐẠI HỌC CƠNG NGHỆ - ĐHQGHN KHOA CƠNG NGHỆ THƠNG TIN CƠNG TRÌNH DỰ THI GIẢI THƯỞNG “SINH VIÊN NGHIÊN CỨU KHOA HỌC” NĂM 2015 Tên cơng trình: Phương pháp SAT Encoding hiệu giải trò chơi Logic Hitori Họ tên sinh viên: Trần Trọng Tiệp Nam Lớp: K56CLC Vũ Đình Thắng Nam Lớp: K56CLC Đào Thị Thúy Nữ Nguyễn Tuấn Anh Nam Lớp: K58CA Nguyễn Thị Mai Hương Nữ Lớp: K56CLC Lớp: K58CA Khoa: Công nghệ thông tin Người hướng dẫn: TS Tô Văn Khánh i Ket-noi.com kho tài liệu miễn phí MỞ ĐẦU Bài tốn SAT (Satisfiability) tốn chứng minh tính thỏa mãn hay khơng thỏa mãn (SAT/UNSAT) công thức logic mệnh đề Các công cụ chứng minh tự động cho toán gọi SAT Solver, chúng có nhiều ứng dụng trí tuệ nhân tạo hay tốn kiểm chứng, kiểm thử phần mềm Các SAT Solver đóng vai trị cơng cụ (backend engine) cho SMT (SAT Modulo Theories) Solver, công cụ chứng minh tính thỏa mãn cơng thức logic xây dựng lý thuyết logic vị từ cấp I (First Order Logic - FOL) Một số tốn giải việc đưa toán SAT, biểu diễn vấn đề công thức logic mệnh đề áp dụng SAT Solver vào giải công thức logic mệnh đề đó, cách tiếp cận gọi SAT Encoding Trong báo cáo chúng tơi trình bày thuật toán giải Hitori giải thuật tìm kiếm kết hợp quay lui SAT Encoding Cũng báo cáo đề xuất phương pháp SAT Encoding để giải trị chơi Lơgic Hitori, đặt tên Connectivity Encoding Chúng tiến hành thực nghiệm 120 toán liệu đầu vào để đánh giá tính hiệu phương pháp Connectivity Encoding so với phương pháp đề xuất trước Connectivity Encoding cho kết vượt trội so với phương pháp Chains & Cycles Encoding (một phương pháp SAT Encoding đề xuất trước đó) kết cạnh tranh so với giải thuật tìm kiếm kết hợp quay lui ii Ket-noi.com kho tài liệu miễn phí DANH MỤC CÁC THUẬT NGỮ VIẾT TẮT Thuật ngữ Tên đầy đủ SAT Satisfiability UNSAT Unsatisfiability CNF Conjunctive Normal Form NP Nondeterministic Polynomial SMT SAT Modulo Theories iii Ket-noi.com kho tài liệu miễn phí MỤC LỤC MỞ ĐẦU ii I GIỚI THIỆU I.1 Trò chơi logic Hitori I.2 Luật chơi Hitori II CÁC GIẢI THUẬT TÌM KIẾM ĐỂ GIẢI QUYẾT HITORI II.1 Thuật tốn tìm kiếm thứ II.2 Thuật tốn tìm kiếm thứ hai III PHƯƠNG PHÁP SAT ENCODING III.1 Các khái niệm SAT Encoding III.2 SAT Encoding giải Hitori 10 III.2.1 SAT Encoding cho hai luật đầu Hitori 10 III.2.2 Chains & Cycles Encoding 11 III.2.3 Phương pháp Connectivity Encoding 14 III.2.4 Tối ưu dựa liệu đầu vào 18 IV THỰC NGHIỆM 21 IV.1 Môi trường thực nghiệm 21 IV.2 Kết thực nghiệm 21 IV.2.1 Kết so sánh hai thuật toán SAT Encoding 21 IV.2.2 So sánh giải thuật Hitori 24 KẾT LUẬN…………………………………………………………………………… 28 iv Ket-noi.com kho tài liệu miễn phí DANH MỤC CÁC HÌNH ẢNH Hình 1.1: Ví dụ câu đố Hitori Hình 1.2: Ví dụ luật Hitori Hình 1.3: Ví dụ vi phạm luật Hitori Hình 1.4: Cách giải luật Hitori Hình 1.5: Ví dụ vi phạm luật Hình 1.6: Cách giải luật không vi phạm Hình 1.7: Đầu vào Hitori Hình 1.8: Lời giải hồn chỉnh Hitori Hình 2.1: Một số mẫu điển hình Hình 2.2: Một số mẫu Hình 2.3: Các mẫu nâng cao Hình 3.1: Game Sudoku Hình 3.2: Sơ đồ giải SAT Hình 3.3: Các lân cận 12 Hình 3.4: Ví dụ Chains 12 Hình 3.5: Ví dụ Cycles 12 Hình 3.6: Áp dụng quy tắc loại bỏ Chains 13 Hình 3.7: Áp dụng luật loại bỏ Cycles 13 Hình 3.8: Ví dụ liên kết Connectivity Encoding 15 Hình 3.9: Lân cận 15 Hình 3.10: Các biên đen ngăn cách trắng 16 Hình 3.11: Kết nối có hướng 17 Hình 3.12: Ví dụ tập bội số ma trận 18 v Ket-noi.com kho tài liệu miễn phí DANH MỤC BẢNG BIỂU VÀ BIỂU ĐỒ Bảng 3.1: Số lượng Chains Cycles 14 Bảng 3.2: So sánh số lượng mệnh đề, biến, thời gian tối ưu 19 Bảng 4.1: So sánh kết hai phương pháp Encoding optimize 22 Biểu đồ 4.1: Số lượng mệnh đề hai phương pháp Encoding 23 Biểu đồ 4.2: So sánh thời gian chạy hai phương pháp Encoding 24 Bảng 4.2: So sánh kết giải thuật 25 Biểu đồ 4.3: So sánh thời gian chạy thuật toán 26 vi Ket-noi.com kho tài liệu miễn phí I GIỚI THIỆU I.1 Trị chơi logic Hitori Hitori [4] (Hitori ni shite kure; nghĩa "hãy để tơi mình") trị chơi logic từ Nhật Bản, chơi ma trận với kích thước n x n với cho trước số từ đến n Người chơi phải bôi đen ô số cho chúng thỏa mãn luật trị chơi Nó lần xuất Nikoli [4] (tháng năm 1990) Hình 1.1: Ví dụ câu đố Hitori I.2 Luật chơi Hitori Luật chơi Hitori bao gồm luật bôi đen hàng, cột trình bày đây: Luật 1: Giá trị số ô không xuất nhiều lần hàng, cột 2 3 1 5 1 Ket-noi.com kho tài liệu miễn phí Hình 1.1: Ví dụ luật Hitori Trên hàng cột, số xuất nhiều lần phải bơi đen (xóa đi) để thỏa mãn luật Hình 1.2 thể cho ta thấy luật Hitori, cột thứ giá trị 2, xuất nhiều lần, hai có giá trị 2, cột xóa (bơi đen) Luật 2: Các ô bôi đen không nằm liền kề hàng cột 2 2 3 5 1 1 5 5 Hình 1.4: Cách giải luật Hitori Hình 1.3: Ví dụ vi phạm luật Hitori Nếu có vị trí (i, j) (hàng i, cột j) bơi đen vị trí liền kề (i+1,j), (i, j+1), (i-1, j), (i, j-1) không bơi đen Như ta thấy hình 1.3 Tại hàng 3, hai có giá trị cạnh bôi đen, điều vi phạm luật Hitori Hình 1.4 trình bày cách giải với đầu vào tương tự hình Luật 3: Mọi ô không bôi đen (ô trắng) phải kết nối với Nói cách khác ln tồn đường từ ô trắng đến ô trắng lại 5 5 3 5 1 1 5 5 Hình 1.5: Ví dụ vi phạm luật Hình 1.6: Cách giải luật khơng vi phạm Ket-noi.com kho tài liệu miễn phí Ở hình 1.5 hai có giá trị bơi đen tạo thành đường ngăn cách trắng có giá trị góc với trắng khác (vi phạm luật Hitori) Hình 1.6 cách giải luật 2 2 3 5 1 1 5 5 Hình 1.7: Đầu vào Hitori Hình 1.8: Lời giải hoàn chỉnh Hitori Trên ba luật Hitori, với luật trên, ta đưa lời giải xác, đầy đủ ba luật Hitori hình 1.8 với đầu vào ma trận 1.7 Lưu ý: Với ma trận đầu vào Hitori có nhiều đáp án lời giải Phương pháp SAT Encoding tìm tất lời giải Hitori Ket-noi.com kho tài liệu miễn phí II CÁC GIẢI THUẬT TÌM KIẾM ĐỂ GIẢI QUYẾT HITORI Giải thuật tìm kiếm quay lui phương pháp sử dụng phổ biện việc giải trị chơi Lơgic Hitori Đặc điểm chung phương pháp là: cho ô tô đen, sau tìm kiếm xung quanh ô khác có khả tô đen để đảm bảo chúng không vi phạm quy tắc trò chơi, vi phạm, giải thuật quay lại tìm kiếm khác có khả tơ đen Phần trình bày giải thuật dựa tìm kiếm kết hợp quay lui II.1 Thuật tốn tìm kiếm thứ Thuật tốn tìm kiếm thứ trình bày [2] với tư tưởng dựa số mẫu (pattern) cho trước, để định ô bắt buộc phải tô đen, ô phải để trắng sau thực tìm kiếm tìm kiếm quay lui xem danh sách có khả tơ đen Thuật tốn bao gồm bước sau: Bước 1: Xây dựng mẫu phần quy định sẵn ô cần tô ô xếp theo mẫu quy định Dưới số mẫu áp dụng cho thuật tốn Hình 2.1: Một số mẫu điển hình Khi giá trị ô xuất theo số trường hợp hình có quy định rõ ô cần phải tô đen (ô màu đen) ô không phép tô đen (những màu hồng), cịn lại ô có khả tô đen không Bước 2: Khi mẫu không đủ để giải Hitori phải đến phần thứ hai thuật tốn, xây dựng hàm chuẩn StandardCyclePattern Hàm giống mẫu phức tạp Đầu tiên cho ô tô đen chúng ô bội số (ơ đánh dấu bội xuất nhiều lần hàng cột), ô tô đen nên quy định ô bên cạnh khơng tơ (ơ trắng), mục đích để đảm bảo luật Hitori Dựa vào khơng tơ đó, chúng bội xét theo hàng cột để tơ màu bội cịn lại tiếp tục Ket-noi.com kho tài liệu miễn phí Kích thước (N*N) 5*5 Số lượng Chains Số lượng Cycles 82 6*6 230 12 12*12 3533738 96170 17*17 ~10 553 400 000 000 ~45 841 200 000 Bảng 3.1: Số lượng Chains Cycles Nhận xét: Dựa vào bảng ta thấy số lượng Chains & Cycles tăng cách nhanh chóng kích thước ma trận tăng Từ kích thước đầu vào 5x5 số lượng Chains 82 nhiên lên mức 12x12 số 3.500.000 Chains gấp 43 094 lần Với ma trận kích thước 17x17 số lượng Chains 10 nghìn tỷ Cycles 45 tỷ Do với cách SAT Encoding theo phương pháp Chains & Cycles thời gian chạy chi phí để giải cho ma trận từ 30x30 hay 40x40 có thời gian giải lâu chi phí tăng lên đáng kể Phần đề xuất phương pháp SAT Encoding mới, gọi Connectivity Encoding, phương pháp khắc phục vấn đề bùng nổ mệnh đề so với phương pháp Chains & Cycles Encoding III.2.3 Phương pháp Connectivity Encoding Trong phần đề xuất phương pháp SAT Encoding với mục đích làm giảm số lượng mệnh đề công thức CNF so với phương pháp Chains & Cycles Encoding Tư tưởng Connectivity Encoding tìm cách để loại bỏ Chains Cycles ma trận, nhiên thay tìm kiếm tồn số lượng Chains Cycles đó, chúng tơi xây dựng việc liên kết chéo ô tô đen 14 Ket-noi.com kho tài liệu miễn phí đảm bảo việc liên chéo ô đen không tạo thành kết nối ô biên (Chains) tạo thành 4 3 5 4 2 Hình 3.8: Ví dụ liên kết Connectivity Encoding đường khép kín (Cycles) Để xây dựng kết nối chéo ô đen sử dụng thêm biến Lôgic mệnh đề cij,kl, biến true, có nghĩa đen (i,j) (k,l) có kết nối chéo với hay nói cách khác có đường chéo từ (i,j) đến (k, l) Trong Hình 3.8, liên kết xuất c33,35 = true (hai ô đen (3, 3) (3,5) ma trận có kết nối chéo tới nhau) Kết nối chéo ô màu đen đen lân cận Hình 3.9: Lân cận Như hình 3.9, (i,j) tơ đen tạo kết nối tới ô lân cận (i-1, j-1) (i+1, j-1), (i-1, j+1) (i+1, j+1) để tạo thành kết nối 15 Ket-noi.com kho tài liệu miễn phí Cơng thức Lơgic mệnh đề tương ứng là: (xijk˅ xi-1j-1k˅ ¬ciji-1j-1˅ ¬cj-1i-1,ij) ∧ ( xijk˅ xi-1j+1k˅ ¬cij,i-1j+1˅ ¬ci-1j+1,ij) ∧ ( xijk˅ xi+1j-1k ˅ ¬cij,i+1j-1˅ ¬ci+1j-1,ij) ∧ ( xijk˅ xi+1j+1k˅ ¬cij,i+1j+1˅ ¬ci+1j+1,ij) Lưu ý: Chúng quy định kết chéo ô đen kết nối có hướng, cij,kl ckl,ij hồn tồn khác (mục đích để loại bỏ Cycles - trình bày phần tiếp theo) Công thức Lôgic mệnh đề cho ràng buộc là: cij,i+1j+1 → ¬ci+1j+1,ij ≡ ¬cij,i+1j+1 ˅ ¬ci+1j+1,ij Công thức quy định kết nối chéo ô đen lân cận có chiều nhất, tức tồn kết nối từ ô (i,j) đến (i+1,j+1) khơng có kết nối ngược lại (từ ô (i+1,j+1) đến ô (i,j) Tương tự với lân cận cịn lại Tính chất bắc cầu kết nối chéo ô đen Kết nối chéo có tính chất bắc cầu mệnh đề Lơgic tương ứng là: cij,hk ∧ chk,mn → cij,mn ≡ ¬cij,hk˅ ¬chk,mn˅ cij,mn Khi tồn kết nối chéo có hướng từ (i,j) tới (h,k) có kết nối chéo (h,k) (m,n) suy có kết nối chéo từ (i,j) tới (m,n) a) Mã hóa loại bỏ Chains với Connectivity Encoding Chúng xây dựng mệnh đề để ô biên không kết nối chéo với Nếu ô (i,j) (k,l) ô biên chúng khơng thể có kết nối chéo với mệnh đề Lôgic tương ứng là: ¬cij,kl ∧ ¬ckl,ij 2 5 1 5 2 16 Hình 3.10: Các biên đen ngăn cách trắng Ket-noi.com kho tài liệu miễn phí Một điểm hướng kết nối ô đen biên phải hướng tâm ma trận (hình 3.10) Trên hình 3.10 cặp { (3,4);(2,5) } tạo thành kết nối có hướng c25,34 Nhận xét: Số lượng ô biên ma trận N*N là: (N-2)*4*2 + mệnh đề b) Mã hóa loại bỏ Cycles Như trình bày kết nối chéo đen phải có hướng để xây dựng mệnh đề loại bỏ Cycles: (i-1,j-1) (i-1,j+1) (i,j) (i+1,j-1) (i+1,j+1) Hình 3.11: Kết nối có hướng Kết nối chéo không phép hướng vào ô Hình 3.11 thể ràng buộc mà xây dựng Ràng buộc quy định không cho phép có kết nối chéo từ đến ô Việc đưa ràng buộc giúp quy đinh đường Cycles đường có hướng thống (các hướng chiều) giúp loại bỏ khả tạo thành Chains Mệnh đề Lôgic tương ứng là: ci+1j-1,ij → ¬ci+1j+1,ij ≡ ¬ci+1j-1,ij˅ ¬ci+1j+1,ij Áp dụng công thức tương tự cho ô lân cận cịn lại Khơng tạo kết nối để khơng tạo thành Cycles Ràng buộc quy định khơng tồn kết nối chéo có hướng khép kín (tạo thành Cycles), nghĩa khơng tồn đường có hướng từ (i,j) đến Mệnh đề Lôgic tương ứng là: ¬cij,ij 17 Ket-noi.com kho tài liệu miễn phí Như vậy, phần chúng tơi trình bày phương pháp Connectivity Encoding để loại bỏ khả tạo thành Chains Cycles Phần đưa số cách tối ưu hóa dựa liệu đầu vào bảng so sánh số lượng mệnh đề áp dụng phương pháp Connectivity Encoding so sánh với Chains & Cycles III.2.4 Tối ưu dựa liệu đầu vào Việc mã hóa trình bày phần thực tồn ma trận Hitori, nhiên thực tối ưu dựa liệu đầu vào, tức mã hóa có khả tô đen, gọi ô bội số (các mà có giá trị trùng hàng cột) Việc giúp số lượng mệnh đề công thức CNF giảm đáng kể Hình 3.12: Ví dụ tập bội số ma trận Hình 3.12 ví dụ tập bội số mà encoding, tất ô tơ màu có khả bơi đen, chúng có giá trị xuất nhiều lần hàng cột Trong phần này, sử dụng vecto để lưu lại ô bội số, thay sử dụng biến xijk cho tồn ma trận Sau sử dụng encoding luật liệu thuộc vecto Biến cij,hk khai báo để biểu diễn kết nối ô, xét vecto lưu lại tập bội số ma trận a) Tối ưu cho luật thứ Như phần trình bày Connectivity Encoding sử dụng hai biến xijk bij để mã hóa cho luật 2, phần sử dụng biến bij để đại diện cho ô ma trận bij = true nghĩa ô (i,j) tô đen ngược lại để trắng Với 18 Ket-noi.com kho tài liệu miễn phí cách khơng sử dụng biến Lôgic mệnh đề xijk số lượng biến Lôgic ma trận Hitori giảm đáng kể Mệnh đề biểu diễn ô (j,j) (i,k) thuộc tập bội số là: bij ˅ bik a) Tối ưu cho luật Luật thứ hai sử dụng tới biến bij để mã hóa, mệnh đề Lơgic tương ứng : bij →¬ ( bij+1 ∧ bij-1 ∧ bi+1j ∧ bi-1j) ≡ ( ¬bij ˅ ¬bij+1 ) ∧ ( ¬bij ˅ ¬bij-1 ) ∧ ( ¬bij ˅ ¬bi+1j) ∧ ( ¬bij ˅ ¬bi-1j ) Do số lượng biến Lôgic số lượng mệnh đề CNF giảm, cịn quy tắc cho luật khơng thay đổi Bảng thống kê số lượng biến Lôgic số lượng mệnh đề sinh công thức CNF phương pháp Encoding chưa tối ưu tối ưu Size 5*5 6*6 8*8 9*9 12*12 Chains and Cycles Encoding Connectivity Encoding Toàn ma trận Tập bội số Toàn ma trận Tập bội số N_Mệnh N_Thời N_Mệnh N_Thời N_Mệnh N_Thời N_Mệnh N_Thời đề gian đề gian đề gian đề gian 186 124ms 86 56 4ms 1113 32ms 117 30ms 397 137ms 137 75 4ms 2280 35ms 201 32ms 109 2738 361ms 263 7196 43ms 250 40ms 4ms 123 11471 527ms 351 11575 89ms 312 49ms 7ms 186 3726684 47520ms 1563 37092 157ms 749 54ms 4ms Bảng 2.2: So sánh số lượng mệnh đề, biến, thời gian tối ưu Nhận xét: Bằng việc sử dụng tập bội số (lấy từ liệu đầu vào) tối ưu việc mã hóa cho luật trị chơi Hitori Qua làm giảm đáng kể số lượng biến Lôgic, số lượng mệnh đề sinh thời gian thực giải trị chơi Hitori 19 Ket-noi.com kho tài liệu miễn phí Đầu tiên Chains & Cycles số lượng mệnh đề cấp 12x12 toàn ma trận 3.7 triệu mệnh đề tập bội số 1563 chênh lệch 2384 lần, đặc biệt mặt thời gian Đối với Connectivity Encoding, việc tối ưu hóa mang lại hiệu cao, ma trận 12x12 số lượng mệnh đề chưa tới ưu 37000 mệnh đề gấp 49 lần so với két tối ưu (749 mệnh đề) Thời gian giải Hitori giảm nhiều Việc tối ưu Encoding dựa liệu đầu vào cho kết cải thiện đáng kể Như vậy, chúng tơi trình bày hai phương pháp giải Hitori phương pháp SAT Encoding Phương pháp Chains & Cycles Encoding đề xuất Chains & Cycles [2] phương pháp Connectivity Encoding nhóm chúng tơi nghiên cứu đề xuất Phần chúng tơi trình bày kết thực nghiệm để đánh giá so sánh Connectivity Encoding so với phương pháp trình bày báo cáo 20 Ket-noi.com kho tài liệu miễn phí IV THỰC NGHIỆM Trong phần chúng tơi trình bày kết thực nghiệm phương pháp trình bày báo cáo (2 giải thuật tìm kiếm, phương pháp SAT Encoding) Chúng tiến hành thực nghiệm 120 tốn đầu vào Hitori với kích thước ma trận khác nhau, kích thước ma trận lớn 36 x 36 Cơ sở liệu sưu tập trang web online Hitori Nikoli [4], menneske[3] với mức chơi từ 5x5 tới 20x20 Các ma trận có kích thước lớn từ 23x23 tới 36x36 liệu nhóm tự sinh Cũng thực nghiệm đánh giá so sánh số lượng mệnh đề, thời gian chạy phương pháp SAT Encoding; so sánh thời gian chạy phương pháp IV.1 Môi trường thực nghiệm Chúng tiến hành thực nghiệm môi trường sau Cấu hình phần cứng: Core i3 2.3Ghz, Ram 4GB Hệ điều hành: Window 8.1 Ngôn ngữ lập trình: Java SAT Solver: MiniSat 1.14 Cài đặt thực nghiệm cho phương pháp SAT Encoding sử dụng phương pháp tối ưu hóa dựa liệu đầu vào (trình bày phần III.2.4) IV.2 Kết thực nghiệm IV.2.1 Kết so sánh hai thuật toán SAT Encoding Với việc cài đặt tiến hành thực nghiệm Cơ sở liệu (CSDL) tạo sẵn gồm 120 tốn đầu vào Hitori, từ kích thước 5x5 đến 36x36 (với 24 kích cỡ ma trận khác nhau, kích thước có đầu vào, 5*24=120 ) áp dụng phương pháp tối ưu hóa dựa liệu đầu vào Kết thu vượt trội số lượng biến, mệnh đề thời gian chạy Connectivity Encoding so với Chains & Cycles Encoding Bảng 4.1 Biểu đồ 4.1,4.2 21 Ket-noi.com kho tài liệu miễn phí Connectivity Encoding Chains and Cycles Encoding Size TB_biến TB_Số mệnh đề TB_Thời gian (ms) TB_biến TB_Số mệnh đề TB_Thời gian (ms) 5*5 18 117 30 25 86 56.4 6*6 20 201 32 36 137 75.4 8*8 36 250 40 64 263 109.4 9*9 45 312 48 81 351 123.7 12*12 86 749 54 144 1563 186.4 15*15 137 1248 59 225 4750 210.75 17*17 179 1710 81 289 8067 1146.8 20*20 239 2277 108 400 79424 3953.75 23*23 241 2354 421.5 534 3586 5681.55 25*25 244 2574 587.3 625 3971 8452.13 28*28 340 3142 658.6 784 5182 15941.77 30*30 364 3549 877.4 901 8447 26631.81 36*36 544 5174 958.5 1296 17218 42544.85 Bảng 3.1: So sánh kết hai phương pháp Encoding optimize Bảng 4.1 cho kết thống kê với kích cỡ ma trận khác nhau, với kích cỡ chúng tơi tính trung bình giá trị kích cỡ ma trận có tốn liệu đầu vào Cụ thể trung bình số lượng biến (TB_Biến), trung bình số lượng mệnh đề (TB_Số mệnh đề), trung bình thời gian chạy (TB_Thời gian) tính mili giây (ms) Từ bảng kết thu đưa số nhận xét sau: Khi kích thước Hitori lớn (từ 17x17 trở lên) thấy thời gian giải Chains & Cycles Encoding lâu (mất 1s cho 17x17) so với 22 Ket-noi.com kho tài liệu miễn phí cách Connectivity Encoding (chỉ 80ms cho size 17x17) Đặc biệt kích thước ma trận 36x36 chênh lệch hai phương pháp 44 lần Điều giải thích sau: Chains & Cycles Encoding vét cạn toàn số lượng Chains Cycles ma trận số lượng Chains Cycles tăng bùng nổ kích thước ma trận tăng lên Điều dẫn đến công thức CNF biểu diễn có kích thước lớn (số lượng mệnh đề tăng vọt) SAT Solver nhiều chi phí tìm giá trị thỏa mãn (SAT hay UNSAT) Biểu đồ 4.1 Biểu đồ 4.2 cung cấp thêm cách nhìn trực quan so sánh phương pháp SAT Encoding SỐ LƯỢNG MỆNH ĐỀ Connectivity encoding Chains and Cycles Encoding size Biểu đồ 4.1: Số lượng mệnh đề hai phương pháp Encoding 23 Ket-noi.com kho tài liệu miễn phí ms THỜI GIAN CHẠY 45000 40000 Connectivity Encoding 35000 30000 Chains & Cycles Encoding 25000 20000 15000 10000 5000 size Biểu đồ 4.2: So sánh thời gian chạy hai phương pháp Encoding Sự khác biệt số lượng mệnh đề thời gian giải hai phương pháp SAT Encoding khác biệt Trên hai biểu đồ ta thấy đường Chains & cycles tăng dần, từ mức 5x5 tới 9x9 hai phương pháp mức gần (Connectivity Encoding tốt hơn), nhiên từ cấp kích thước 15x15 trở đi, số lượng mệnh đề thời gian Chains & cycles tăng vọt Connectivity Encoding cho kết vượt trội nhiều IV.2.2 So sánh giải thuật Hitori Trong phần tiến hành thực nghiệm phương pháp: phương pháp SAT Encoding Connectivity Chains & Cycles, giải thuật tìm kiếm (trình bày phần II) để đánh giá phương pháp đề xuất báo cáo đầy đủ Chúng tiến hành đo kết chạy phương pháp tính theo mili giây (ms) 120 toán đầu vào Với kích thước ma trận, thực nghiệm tiến hành tính trung bình thời gian giải cho tốn đầu vào Kết thực nghiệm thể Bảng 4.2 đây: 24 Ket-noi.com kho tài liệu miễn phí Kích thước Connectivity ma trận Encoding Chains & Cycles Encoding Thuật tốn tìm kiếm thứ 5x5 25 56 18 Thuật tốn tìm kiếm thứ hai 6x6 29 74 17 3 8x8 34 109 19 5 9x9 39 123 25 12x12 47 186 40 9 15x15 53 210 69 12 17x17 75 1146 103 13 20x20 96 3953 75 107 31 23x23 421 5681 55 1253 48 25x25 587 8452 13 2651 65 28x28 658 15941 77 5982 114 30x30 877 26631 81 10319 142 36x36 958 42544 85 42589 75 296 Bảng 4.2: So sánh kết giải thuật Dựa vào bảng kết trên, ta thấy so với thời gian chạy Chains & Cycles Encoding Thuật toán tìm kiếm thứ [2] Connectivity Encoding có thời gian giải hiệu vượt trội cả, đặc biệt kích thước ma trận lớn dần Đặc biệt từ cấp chơi lớn 25x25 36x36 thời gian chạy Connectivity Encoding vượt trội hẳn so với Thuật tốn tìm kiếm thứ nhất, kích thước 25x25 thời gian chạy Thuật tốn tìm kiếm thứ 2651.5ms nhiều gấp lần so với Connectivity Encoding (600 ms), với kích thước 36x36 chênh lệch 39 lần Hiện thời gian chạy Connectivity Encoding chưa vượt qua thời gian chạy Thuật tốn tìm kiếm thứ hai [12] Do mở số hướng mở rộng để tiến Connectivity Encoding 25 Ket-noi.com kho tài liệu miễn phí Biểu đồ cung cấp nhìn trực quan so sánh phương pháp giải Hitori Connectivity Encoding phương pháp cho kết cạnh tranh so với phương pháp lại so sánh với Thuật tốn tìm kiếm thứ hai Có thể thấy khác biệt thời gian chạy giải thuật biểu đồ sau: THỜI GIAN CHẠY ms 45000 40000 35000 Connectivity 30000 Chains&cycles 25000 Search 20000 Search 15000 10000 5000 20*20 23*23 25*25 28*28 30*30 36*36 Biểu đồ 4.3: So sánh thời gian chạy thuật tốn 26 size Ket-noi.com kho tài liệu miễn phí KẾT LUẬN Báo cáo đề xuất phương pháp SAT Encoding hiệu - phương pháp Connectivity Encoding để giải trị chơi Lơgic Hitori Chúng tơi tiến hành thực nghiệm 120 toán liệu đầu vào (ma trận đầu vào có kích thước từ 5x5 đến 36x36) tiến hành so sánh kết với phương pháp khác giải trò chơi Hitori: Chains & Cycles Encoding (một phương pháp SAT Encoding đề xuất vào năm 2006), giải thuật tìm kiếm đề xuất năm 2006 2009 Kết thực nghiệm 120 ma trận đầu vào cho thấy: Connectivity Encoding cho kết vượt trội so với phương pháp Chains & Cycles Encoding Số lượng mệnh đề thời gian chạy vượt trội, đặc biệt ma trận có kích thước lớn So với Thuật tốn tìm kiếm thứ nhất, thời gian chạy Connectivity Encoding tương đồng ma trận có kích thước nhỏ (5x5 đến 20x20) cho kết chạy nhanh gấp đến 10 lần với kích thước lớn (23x23 đến 36x36) So với Thuật tốn tìm kiếm thứ hai, phương pháp Connectivity Encoding có thời gian chạy lâu Tuy nhiên thời gian chạy Connectivity Encoding nói tương đối cạnh tranh khía cạnh tối ưu mặt cài đặt chưa xem xét toàn diện Kết nghiên cứu báo cáo số cách tiếp cận tương lai để giải trò chơi Hitori như: i ii Kết hợp mẫu tìm kiếm vào phương pháp SAT Encoding (dựa mẫu tìm kiếm Thuật tốn tìm kiếm để sinh mệnh đề ràng buộc tương ứng) Tiếp cận Connectivity Encoding cho ô màu trắng (ô không bị tô đen) Các kết trình bày nghiên cứu phương pháp Connectivity Encoding kết nghiên cứu có giá trị, công bố hội nghị khoa học quốc gia quốc tế (nhóm trình xây dựng dự thảo (draft) để nộp vào hội nghị quốc tế) Phương pháp Connectivity Encoding ý nghĩa phạm vi giải trị chơi Lơgic Hitori mà cịn phương pháp đưa cách tiếp cận SAT Encoding để giải tính chất như: connectivity hay reachability properties 27 Ket-noi.com kho tài liệu miễn phí TÀI LIỆU THAM KHẢO [1] Een, N , Sorensson, N : MiniSAT, http://minisat se [2] Gander, M : Hitori solver (2006) Bachelor Thesis: http://homepage uibk ac at/~csae1761/hitori/website/res/MGCH pdf [3] Hitori database http:// www.menneske no/hitori/eng/ [4] Hitori puzzle, http://nikoli com/en/puzzle/hitori [5] Lynce, I., Ouaknine, J.: Sudoku as a sat problem In: In Proc of the Ninth International Symposium on Artificial Intelligence and Mathematics, Springer (2006) [6] Michael Genesereth (Stanford University): Introduction http://logic.stanford.edu/intrologic/chapters/chapter_05.html to Logic , [7] Nikoli, 2006 ,http://nikoli.com/en/puzzles/hitori/ [8] Pfeiffer, U., Karnagel, T., Scheffler, G.: A sudoku-solver for large puzzles using sat In Voronkov, A., Sutcliffe, G., Baaz, M., Fermüller, C., eds.: LPAR-17-short Volume 13 of EPiC Series., EasyChair (2013) 52–57 [9] SAT4j, www sat4j org [10] SATLIVE, www satlive Org [11] SAT Solver: UBCSAT, http://ubcsat dtompkins com [12] Shi-Jim Yen, S.T.C., Chiu, S.Y.: Hitori solver In: The 14th Game Programming Workshop (GPW-09) (2009) 87–90 28 ... - phương pháp SAT Encoding SAT Encoding phương pháp mã hóa luật chơi Hitori thành cơng thức Lôgic mệnh đề (propositional logic) biểu diễn dạng CNF Trong phần chúng tơi trình phương pháp SAT Encoding. .. việc SAT Encoding cho Hitori nằm luật Phần trình bày phương pháp SAT Encoding cho Hitori phương pháp Chains & Cycles Encoding Connectivity Encoding III.2.2 Chains & Cycles Encoding Phương pháp. .. trình bày thuật tốn giải Hitori giải thuật tìm kiếm kết hợp quay lui SAT Encoding Cũng báo cáo đề xuất phương pháp SAT Encoding để giải trò chơi Lôgic Hitori, đặt tên Connectivity Encoding Chúng tơi