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

Các kỹ thuật SAT solving luận văn ths máy tính 60 48 01

79 19 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

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƢỜNG ĐẠI HỌC CÔNG NGHỆ ĐẶNG THỊ NHƢ HOA CÁC KỸ THUẬT SAT SOLVING LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN Hà Nội - 2016 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƢỜNG ĐẠI HỌC CÔNG NGHỆ ĐẶNG THỊ NHƢ HOA CÁC KỸ THUẬT SAT SOLVING Ngành: Công nghệ thông tin Chuyên ngành: Kỹ thuật phần mềm Mã số: 60480103 LUẬN VĂN THẠC SĨ NGÀNH CÔNG NGHỆ THÔNG TIN NGƢỜI HƢỚNG DẪN KHOA HỌC: TS TÔ VĂN KHÁNH Hà Nội - 2016 LỜI CẢM ƠN Luận văn Thạc sĩ đƣợc thực Trƣờng Đại học Công nghệ - Đại học Quốc gia Hà Nội dƣới hƣớng dẫn TS Tô Văn Khánh Xin đƣợc gửi lời cảm ơn sâu sắc đến Thầy định hƣớng khoa học, liên tục quan tâm, tạo điều kiện thuận lợi suốt trình nghiên cứu hồn thành luận văn Tơi xin đƣợc gửi lời cảm ơn đến thầy, cô Bộ môn Công nghệ phần mềm nhƣ Khoa Công nghệ Thông tin mang lại cho kiến thức vô q giá bổ ích q trình theo học trƣờng Tôi xin chân thành cảm ơn đến gia đình, bạn bè quan tâm động viên giúp tơi có thêm nghị lực, cố gắng để hoàn thành luận văn Do thời gian kiến thức có hạn nên luận văn chắn khơng tránh khỏi thiếu sót định Tơi mong nhận đƣợc góp ý q báu thầy cơ, đồng nghiệp bạn bè Hà Nội, tháng 12 năm 2016 Học viên Đặng Thị Nhƣ Hoa LỜI CAM ĐOAN Tôi xin cam đoan luận văn “Các kỹ thuật SAT Solving” cơng trình nghiên cứu cá nhân tơi dƣới hƣớng dẫn TS Tô Văn Khánh, trung thực không chép tác giả khác Trong toàn nội dung nghiên cứu luận văn, vấn đề đƣợc trình bày tìm hiểu nghiên cứu cá nhân tơi đƣợc trích dẫn từ nguồn tài liệu có ghi tham khảo rõ ràng, hợp pháp Tôi xin chịu trách nhiệm cho lời cam đoan Hà Nội, tháng 12 năm 2016 Học viên Đặng Thị Nhƣ Hoa TÓM TẮT SAT Solving toán chứng minh thỏa mãn (SAT / UNSAT) công thức Lôgic mệnh đề (Propositional Lôgic) công cụ tự động SAT Solver đóng vai trị giải cơng thức Ngày SAT Solver đóng vai trị công cụ cho SMT (SAT Module Theories) Solver, công cụ tự động chứng minh thỏa mãn hay không thỏa mãn (SAT/UNSAT) công thức lôgic lý thuyết vị từ cấp I (FOL I) Các nghiên cứu SMT Solver chủ đề có tính thời sự, SMT Solver đƣợc ứng dụng toán kiểm chứng, kiểm thử chƣơng trình Bài tốn SAT tốn có độ phức NP kỹ thuật SAT Solving đƣợc nghiên cứu, phát triển lâu Tuy nhiên, phát triển mạnh mẽ SAT solver năm gần thông qua thi SAT Competition tổ chức hàng năm cho thấy nhiều kỹ thuật cải tiến cài đặt SAT solver đƣợc tiến hành thực nghiêm Ngày SAT solver có khả giải cơng thức lên đến hàng triệu biến với hàng trăm ngàn mệnh đề Luận văn sâu tìm hiểu kỹ thuật bản, thuật toán đƣợc cài đặt SAT solver, đồng thời đƣa ví dụ minh họa cụ thể nhằm làm rõ cách thức hoạt động Các kỹ thuật đƣợc cài đặt SAT solver phổ biến MiniSAT, SAT solver mã nguồn mở mà nhiều SAT solver mạnh giới đƣợc mở rộng cải tiến từ SAT Solver Bên cạnh đó, luận văn tìm hiểu kĩ thuật tiên tiến đƣợc cài đặt SAT Solver mạnh GlueMinisat, Glucose Luận văn tiến hành chạy thực nghiệm so sánh SAT solver liệu thực nghiệm chuẩn (từ thi SAT competition) để thấy rõ tính hiệu quả, tính nhanh nhạy kỹ thuật tiên tiến đƣợc sử dụng Nội dung luận văn đƣợc chia thành chƣơng nhƣ sau: - Chƣơng đƣợc giới thiệu vấn đề nhƣ Lơgic mệnh đề, tốn SAT, SAT Solver ứng dụng phƣơng pháp SAT Encoding - Chƣơng trình kỹ thuật SAT solving bao gồm thủ tục DPLL, kỹ thuật áp dụng DPLL nhƣ: CDCL, Back Jumping, Watched literals, Clause Elimination - Chƣơng trình bày kỹ thuật SAT Solving tiên tiến nay, kỹ thuật đƣợc cài đặt SAT solver mạnh giới nhƣ GlueMinisat, Glucose - Chƣơng tiến hành thực nghiệm so sánh đánh giá SAT Solver liệu chuẩn thi SAT competition hàng năm MỤC LỤC LỜI CẢM ƠN LỜI CAM ĐOAN TÓM TẮT BẢNG CÁC THUẬT NGỮ VÀ TỪ VIẾT TẮT DANH MỤC CÁC BẢNG BIỂU DANH MỤC CÁC HÌNH VẼ CHƢƠNG GIỚI THIỆU 1.1 Bài toán SAT 1.2 Lôgic mệnh đề 1.2.1 Công thức Lôgic mệnh đề 1.2.2 Chuẩn tắc hội CNF 1.3 SAT Solver 1.4 Phƣơng pháp SAT Encoding 1.4.1 Trò chơi Hitori 1.4.2 Trò chơi Sodoku 1.4.3 Trò chơi Slitherlink 1.5 Một số ứng dụng khác SAT 12 CHƢƠNG CÁC KỸ THUẬT SAT SOLVING CƠ BẢN 13 2.1 Thủ tục DPLL truyền thống 13 2.1.1 Một số khái niệm 13 2.1.2 Các luật thủ tục DPLL 14 2.2 Thủ tục DPLL đại 17 2.2.1 Backjumping 17 2.2.2 Learn Forget 18 2.2.3 Mệnh đề Backjump 19 2.3 Thuật toán CDCL 26 2.3.1 Nội dung CDCL 26 2.3.2 Giải thuật CDCL 27 2.3.3 Suy diễn mệnh đề mức quay lui 27 2.3.4 Biểu đồ kéo theo 28 2.3.5 Học từ mệnh đề xung đột 29 2.4 Kỹ thuật Two -Watched literals 34 2.4.1 Watched literal 34 2.4.2 Two- Watched literal 35 2.5 Giải pháp loại bỏ biến loại bỏ mệnh đề 36 2.5.1 Loại bỏ biến 37 2.5.2 Loại bỏ mệnh đề 39 CHƢƠNG CÁC KỸ THUẬT SAT SOLVING TIÊN TIẾN HIỆN NAY 42 3.1 GlueMiniSat 42 3.1.1 Giới thiệu 42 3.1.2 Tiêu chí đánh giá Learn Clause 42 3.1.3 Chiến lƣợc tự khởi động lại 44 3.2 Glucose 44 3.2.1 Quản lý mệnh đề học 44 3.2.2 Khởi động lại 45 CHƢƠNG THỰC NGHIỆM 46 4.1 Giới thiệu MiniSat 46 4.2 Giao diện lập trình ứng dụng 46 4.3 Tổng quan Minisat 47 4.4 Thực nghiệm 50 4.4.1 Biên dịch Minisat 50 4.4.2 Biên dịch GlueMinisat 51 4.4.3 Biên dịch Glucose 51 4.4.4 Bộ liệu thực nghiệm 52 4.4.5 Thực nghiệm 52 KẾT LUẬN 56 TÀI LIỆU THAM KHẢO 56 BẢNG CÁC THUẬT NGỮ VÀ TỪ VIẾT TẮT STT DANH MỤC CÁC BẢNG BIỂU Bảng 4.1: Kết thực nghiệm Minisat, Glueminisat, Glucose Slitherlink .52 Bảng 4.2: Kết thực nghiệm Minisat, Glueminisat, Glucose Aprove 09 .53 48 Một SAT solver hƣớng xung đột đƣa mệnh đề (với literal hơn) phép gán Cơ chế suy luận đƣợc sử dụng solver tiêu chuẩn unit propagation Ngay mệnh đề trở thành unit sau phép gán (tất literal trừ literal đƣợc gán false), literal cịn lại đƣợc gán true, có khả tạo nên nhiều mệnh đề đơn vị khác Q tình đƣợc tiếp tục khơng thể suy diễn thêm thông tin Thủ tục tìm kiếm solver đại thủ tục phức tạp Trong trình thử, biến đƣợc chọn gán giá trị (phép giả định đƣợc tạo ra), trình suy diễn phát xung đột (tất literal mệnh đề false) Khi đó, mệnh đề xung đột đƣợc xây dƣng thêm vào toán SAT Các giải định sau đƣợc hủy bỏ cách backtrack mệnh đề xung đột trở thành đơn vị mà từ mệnh đề đơn vị đƣợc suy diễn trình tìm kiếm tiếp tục Suy diễn (Propagation): Với literal, danh sách ràng buộc đƣợc giữ Đây ràng buộc suy diễn thông tin đơn vị (các phép gán biến) literal trở thành true Với mệnh đề, không thơng tin đơn vị đƣợc suy diễn tất literal trừ literal vừa trở thành false Hai literal chƣa đƣợc gán p q mệnh đề đƣợc chọn, tham chiếu tới mệnh đề lần lƣợt đƣợc thêm vào danh sách ⌐p ⌐q Các literal đƣợc nói đƣợc watched danh sách ràng buộc đƣợc đề cập tới nhƣ watcher list Ngay literal watched trở thành true, ràng buộc đƣợc gọi để xem có thơng tin đƣợc suy diễn hay khơng, để chọn literal chƣa bị gán để đƣợc watched Học (Learning): Thủ tục học MiniSAT dựa ý tƣởng MarquesSilva Sakallah Quá trình bắt đầu ràng buộc trở nên xung đột dƣới phép gán Ràng buộc xung đột sau đƣợc truy vấn với tập phép biến khiến mâu thuẫn Với mệnh đề, tất literal mệnh đề Mỗi phép gán đƣợc biến trả phải giả định thủ tục tìm kiếm, hay kết phép suy diễn ràng buộc Các ràng buộc suy diễn đƣợc truy vấn lần lƣợt tập phép gán biến khiến phép suy diễn xảy ra, tiếp tục trình phân tích ngƣợc Thủ tục đƣợc lặp lại vài điều kiện kết thúc đƣợc lấp đầy, đƣa đến tập phép gán biến mà đƣa đến xung đột Một mệnh đề ngăn chặn phép gán cụ thể đƣợc thêm vào sở liệu mệnh đề Mênh đề học đƣợc (learnt clause) phải ln ln , q trình xây dựng, đƣợc ngầm ý ràng buộc ban đầu toán Các mệnh đề học đƣợc phục vụ mục đích: chúng hƣớng thủ tục backtrack tăng tốc xung đột tƣơng lại cách lƣu trữ nguyên nhân xảy xung đột Mỗi mệnh đề ngăn chặn lƣợng định suy luận, nhƣng mệnh 49 đề đƣợc ghi lại tạo lẫn tham gia vào trình suy diễn đơn vị, hiệu ƣớc chừng việc học lớn Tuy nhiên, tập mệnh đề học đƣợc ngày tăng, trình suy diễn bị chậm lại Do đó, số lƣợng mệnh đề học đƣợc đƣợc giảm bớt định kỳ, giữ lại mệnh đề hữu dụng Tìm kiếm: Thủ tục tìm kiếm SAT solver hƣớng xung đột ẩn Mặc dù định nghĩa đệ quy thủ tục súc tích hơn, nhƣng thủ tục thƣờng đƣợc miêu tả (và cài đặt) theo cách lặp Thủ tục bắt đầu cách chọn biến chƣa đƣợc gán (đƣợc gọi biến định) gán giá trị cho nó, cho TRUE Kết việc gán đƣợc suy diễn, dẫn tới việc gán nhiều biến khác Tất biến đƣợc gán nhƣ kết việc gán đƣợc coi mức định (decision level), đếm từ cho phép gán tăng dần Các phép gán đƣợc tạo trƣớc phép gán (mức định 0) đƣợc gọi top-level Tất phép gán đƣợc lƣu ngăn xếp theo thứ tự chúng đƣợc tạo ra; từ trở gọi ngăn xếp trail Trail đƣợc chia thành mức định đƣợc sử dụng để đảo ngƣợc thơng tin q trình backtrack Pha định tiếp tục tất biến đƣợc gán, ta có đƣợc model, hay xung đột xảy Trong xung đột, thủ tục học đƣợc gọi mệnh đề xung đột đƣợc tạo Trail đƣợc sử dụng để xóa bỏ mức định, mức lần, có xác số literal mệnh đề học đƣợc trở nên chƣa đƣợc gán Trong trình xử lý, mệnh đề xung đột khơng thể trực tiếp từ xung đột tới mệnh đề với nhiều literal chƣa gán Một phần quan trọng thủ tục tự khám phá phƣơng thức Giống CHAFF, MiniSAT sử dụng độ ƣu tiên động biến để đƣa thứ tự cho biến liên quan đến xung đột gần Dƣới thủ tục search [26]: Loop Propagate() - propagate unit clause If not conflict then If all variables assigned then Return SATISFIABLE Else Decide() -pick a new variable and assign it Else Analyze() - analyze conflict and add a conflict clause If top-leval conflict found then Return UNSATISFIABLE Else Backtrack() -undo assignments until conflict clause is unit 50 Độ ƣu tiên biến: Một kỹ thuật quan trọng đƣợc giới thiệu CHAFF xếp biến dựa độ ƣu tiên động biến Thuật toán ban ban đầu dựa xếp literal, p ⌐p đƣợc coi nhƣ MiniSAT Mỗi biến có độ ƣu tiên gắn với Mỗi biến có mặt mệnh đề xung đột đƣợc ghi lại, độ ƣu tiên tăng lên Sau ghi lại xung đột, độ ƣu tiên tất biến hệ thống đƣợc nhân với số nhỏ 1, làm giảm độ ƣu tiên biến qua thời gian Lƣợng gia tăng gần lớn lƣợng gia tăng trƣơc Tổng định độ ƣu tiên biến MiniSAT sử dụng ý tƣởng tƣơng tự cho mệnh đề Khi mệnh đề học đƣợc đƣợc sƣ dụng q trình phân tích xung đột, độ ƣu tiên đƣợc bump Các mệnh đề không hoạt động đƣợc loại bỏ định kỳ Loại bỏ ràng buộc: Cơ sở liệu ràng buộc đƣợc chia thành phần: ràng buộc toán mệnh đề học đƣợc Tập mệnh đề học đƣợc đƣợc loại bỏ định kỳ để gia tăng hiệu việc suy diễn mệnh đề Các mệnh đề học đƣợc đƣợc sử dụng bỏ bớt nhánh phát sinh tƣơng lai tìm kiếm, loại bỏ mệnh đề dẫn tới việc tạo khơng gian tìm kiếm lớn Ràng buộc tốn đƣợc loại bỏ chúng thỏa mãn top-level Phƣơng thức chịu trách nhiệm việc Top-level solver: Một chiến lƣợc cụ thể đƣợc áp dụng SAT solver hƣớng xung đột đại sử dụng việc tái khởi động (restart) để thoát khỏi phần vơ ích tìm kiếm Trong MiniSAT số lƣợng mệnh đề học đƣợc thời điểm biến đổi Hơn nữa, phƣơng thức giao diện lập trình ứng dụng hỗ trợ phép gán tăng dần, điều mà không đƣợc giải đoạn mã giả 4.4 Thực nghiệm Hai kỹ thuật Glueminisat Glucose đƣợc cài đặt thành hai SAT Solver Glueminisat [7] Glucose [8] 4.4.1 Biên dịch Minisat Để thực biên dịch Minisat Ubuntu, ta thực bƣớc dƣới đây: - Tạo thƣ mục chứa Minisat: mkdir Minisat - Download minisat-2.2.0.tar.gz: wget http://minisat.se/downloads/minisat-2.2.0.tar.gz - Gõ câu lệnh : tar xvf minisat-2.2.0.tar.gz - Gõ cd minisat - Gõ export MROOT=$(pwd) 51 - Gõ cd core - Gõ sudo apt-get install libghc-zlib-dev - Gõ make (Tạo đƣợc file chạy minisat) - Tạo thƣ mục examples để lƣu lại benchmark Gõ mkdir examples Copy file minisat thƣ mục Minisat/core chuyển vào thƣ mục examples: Gõ cp /core/minisat /examples/ - Gõ câu lệnh sau để thực chạy minisat: cd ~/minisat/examples/ /minisat 4.4.2 Biên dịch GlueMinisat Để thực biên dịch GlueMinisat Ubuntu, ta thực bƣớc dƣới đây: - Download glueminisat-2.2.8: wget http://glueminisat.nabelab.org/home/download/glueminisat-2.2.8.tar.gz - Giải nén: unzip glueminisat-2.2.8.zip - Chạy file build.sh: Gõ /build.sh (Tạo đƣợc file chạy Glueminisat) - Tạo thƣ mục examples để lƣu lại benchmark Gõ mkdir examples Copy file glueminisat-simp thƣ mục Glueminisat/binary chuyển vào thƣ mục examples: cp binary/glueminisat-simp examples/ - Gõ câu lệnh sau để thực chạy Glueminisat: cd ~/glueminisat-2.2.8/examples/ /glueminisat-simp 4.4.3 Biên dịch Glucose Để thực biên dịch Glucose Ubuntu, ta thực bƣớc dƣới đây: - Tạo thƣ mục Glucose:mkdir Glucose - Download Glucose 2.0: wget http://www.lri.fr/~simon/downloads/glucose-2-compet.tgz - Gõ câu lệnh: tar -xf glucose-2-compet.tgz - Mở thƣ mục simp: Gõ cd simp/ - Gõ make rs (Tạo đƣợc file chạy Glucose) - Tạo thƣ mục Examples để lƣu lại benchmark: mkdir Examples 52 Copy file glucose_static từ thƣ mục simp sang thƣ mục Examples: cp simp/glucose_static Examples/ - Gõ câu lệnh sau để thực chạy Glucose: cd ~/Gluecose/examples/ /glucose_static 4.4.4 Bộ liệu thực nghiệm (Benchmarks) Bộ liệu thực nghiệm SAT Solver toán dƣới định dạng DIMACS CNF (.CNF), đầu vào SAT Solver đƣợc xây dựng cộng đồng SAT Các liệu thực nghiệm SAT đƣợc tham khảo [27] 4.4.5 Thực nghiệm Để đánh giá hiệu kỹ thuật SAT Solving tiên tiến, tiến hành thực nghiệm Minisat, Glueminisat, Glucose “Bộ liệu Slitherlink” đƣợc tham khảo [25] “Bộ liệu thực nghiệm chuẩn Aprove09” đƣợc tham khảo [24] a Bộ liệu Slithelink Bảng 4.1: Kết thực nghiệm Minisat, Glueminisat, Glucose Slitherlink STT Kích thƣớc 16x16 20x20 25x25 30x30 53 b Bộ liệu thực nghiệm chuẩn Aprove09 Bảng 4.2: Kết thực nghiệm Minisat, Glueminisat, Glucose Aprove 09 STT Tên Aprove 09-01 Aprove 09-03 Aprove 09-05 Aprove 09-06 Aprove 09-07 Aprove 09-08 Aprove 09-10 Aprove 09-11 Aprove 54 09-12 10 Aprove 09-13 11 Aprove 09-15 Hình 4.2: Kết thực nghiệm Slithelink Hình 4.3: Kết thực nghiệm thời gian chạy Aprove09 55 Nhận xét: a So sánh Mimisat với Glueminisat Glucose Thời gian giải toán Glueminisat Glucose nhanh nhiều so với Minisat(Bảng 4.2, Hình 4.3) Nguyên nhân liệu thực nghiệm nhƣng số lƣợng hàm Restart, Conflict, Decision, Propagations Minisat nhiều so với SAT Solver (Bảng 4.1, Hình 4.2) Sự chênh lệch SAT Solver sử dụng chiến lƣợc khởi động lại khác b So sánh Glueminisat với Glucose Nhìn chung Glucose có thời gian thực toán nhanh so với Glueminisat Tuy sử dụng chiến lƣợc khởi động lại động (LBD) nhƣng điều kiện khởi động lại SAT Solver khác Đây nguyên nhân dẫn đến số lƣợng hàm Restart Glucose Glueminisat 56 KẾT LUẬN Luận văn giới thiệu, trình bày phân tích cụ thể kỹ thuật SAT Solving phổ biến thơng qua ví dụ minh họa Với nỗ lực thân với hƣớng dẫn TS Tô Văn Khánh, luận văn đạt đƣợc kết định :  Hiểu đƣợc Bài toán SAT, SAT Solver, Các ứng dụng SAT Solver  Nắm đƣợc kỹ thuật SAT Solving: thủ tục DPLL, thuật toán CDCL, Kỹ thuật Two- watched literal giải pháp loại bỏ biến, loại bỏ mệnh đề  Nắm đƣợc kỹ thuật tiên tiến SAT Solving: Glueminisat, Glucose  Đọc hiểu code chƣơng trình MiniSAT  Chạy so sánh đƣợc SAT Solver : Minisat, Glueminisat, Glucose Tuy nhiên, luận văn có hạn chế sau:  Chƣa thực đƣợc việc code chỉnh sửa chƣơng trình MiniSAT để thực nắm rõ cách tùy biến SAT solver  Chƣa liệt kê đƣợc kỹ thuật SAT Solver nhƣ : CryptoMinisat (2015), Riss, Treengeling (2016) Mặc dù luận văn hệ thống lại kỹ thuật SAT Solving trình bày kỹ thuật tiên tiến SAT Solving SAT Solver đƣợc coi mạnh Trong tƣơng lai, em hƣớng tới việc tùy biến SAT Solver Minisat theo yêu cầu khác để nắm rõ đƣợc cách tùy biến SAT solver Từ đó, tạo Glueminisat Glucose mà khơng cần sử dụng SAT Solver đƣợc cài đặt sẵn 57 TÀI LIỆU THAM KHẢO [1] Armin, Biere (2012), Understanding Modern SAT Solvers, Institute for Formal Models and Verification Johannes Kepler University, Linz, Austria [2] Armin Biere and Andreas Frohlich(2015), Evaluating CDCL Restart Schemes [3] Daniel Kroening, Ofer Strichman (2008), Decision Procedures for Propositional Logic, Springer Berlin Heidelberg, Germany pp 25-57 [4] Gander(2006), M : Hitori solver Bachelor, http://homepage uibk ac.at/~csae1761/hitori/website/res/MGCH pdf [5] Gilles Audemard and Laurent Simon (2009), Predicting learnt clauses quality in modern SAT solvers In Proceedingsof IJCAI-2009, pages 399–404 [6] Gilles Audemard – Laurent Simon (2012), GLUCOSE 2.1, [7] Glueminisat, http://glueminisat.nabelab.org/ [8] Glucose http://www.labri.fr/perso/lsimon/glucose/ [9] Hidetomo NABESHIMA, Koji IWANUMA, Katsumi INOUE, Glueminisat2.2.5 [10] Hitori puzzle, http://nikoli com/en/puzzle/hitori [11] Jakob Nordström(2011), Current Research in Proof Complexity: Problem Set http://www.csc.kth.se/~jakobn/teaching/proofcplx11/ [12] Joao Marques-Silva, Ines Lynce and Sharad Malik (2009), Handbook of Satisfiability, IOS Press, pp.131-153 [13] JP Marques-Silva, Karem A Sakallah (1999), GRASP: A Search Algorithm for Propositional Satisfiability, IEEE Trans Computers, pp.506-521 [14] Lynce, I., Ouaknine, J, : Sudoku as a sat problem(2006), In: In Proc of the Ninth International Symposium on Artificial Intelligence and Mathematics, Springer [15] Nina Narodyska(2011), Introduction to Satisfiability Solving, Based on slides by Fahiem Bacchus, Niklas Een, Marijen Heule, Lintao Zhang, Toby Walsh [16] Matthew W Moskewicz , Conor F Madigan , Ying Zhao , Lintao Zhang , Sharad Malik (2001), Chaff: Engineering an Efficient SAT Solver, Proceedings of the 38th annual Design Automation Conference, pp.530-535 [17] Marcelo Finger (n.d.), SAT Solvers A Brief Introduction, Instituto de Matemática e Estatística Universidade de São Paulo [18] Michael Genesereth (), Introduction to logic, Stanford University,chapter two, 58 [19] Minisat, http://minisat.se/ [20] Niklas Een and Armin Biere (2005), Effective preprocessing in SAT through variable and clause elimination, Proceedings of the 8th international conference on Theory and Applications of Satisfiability Testing, pp.61 -75 [21] Pfeiffer, U., Karnagel, T., Scheffler, G (2013), 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 pp.52 - 57 [22] RJ Bayardo Jr, RC Schrag, Using CSP look-back techniques to solve real world SAT instances (1997), Proc AAAI, pp 203–208, [23] Robert Nieuwenhuis, Albert Oliveras and Cesare Tinelli (n.d.), Solving SAT and Modulo Theories: from an Abstract Davis-Putnam-Logemann-Loveland Procedure to DPLL(T) Technical University of Catalonia, Barcelona And The University of Iowa, Iowa City SAT Benchmark Aprove09, http://www.cril.univartois.fr/SAT09/bench/appli.7z [24] [25] SAT Benchmark Slithelink, http://www.mediafire.com/file/7h29i4oevf6i0lv/Input+Slithelink.rar [26] Sorensson, Niklas Eén and Niklas Sörensson (n.d.), An extensible SAT solver, Chalmers University of Technology, Sweden The international SAT Competitions web page, http://www.satcompetition.org/ [27] ... NHƢ HOA CÁC KỸ THUẬT SAT SOLVING Ngành: Công nghệ thông tin Chuyên ngành: Kỹ thuật phần mềm Mã số: 604 8010 3 LUẬN VĂN THẠC SĨ NGÀNH CÔNG NGHỆ THÔNG TIN NGƢỜI HƢỚNG DẪN KHOA HỌC: TS TÔ VĂN KHÁNH... Luận văn sâu tìm hiểu kỹ thuật bản, thuật toán đƣợc cài đặt SAT solver, đồng thời đƣa ví dụ minh họa cụ thể nhằm làm rõ cách thức hoạt động Các kỹ thuật đƣợc cài đặt SAT solver phổ biến MiniSAT,... lỗi, 13 CHƢƠNG CÁC KỸ THUẬT SAT SOLVING CƠ BẢN Chƣơng giới thiệu kỹ thuật để giải tốn SAT Lơgic mệnh đề bao gồm thủ tục DPLL, kỹ thuật quay lui (backjumping) gặp xung đột, kỹ thuật thêm mệnh

Ngày đăng: 11/11/2020, 21:35

Xem thêm:

w