CÁC kỹ THUẬT SAT SOLVING

38 102 0
  • Loading ...
1/38 trang

Thông tin tài liệu

Ngày đăng: 09/06/2017, 15:05

ĐẠ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ố: 60.48.01.03 TÓM TẮT LUẬN VĂN THẠC SĨ NGÀNH CÔNG NGHỆ THÔNG TIN Hà Nội - 2016 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 ứng dụng toán kiểm chứng, kiểm thử chương trình Bài toán SAT toán có độ phức NP kỹ thuật SAT Solving 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 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à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ài đặt SAT solver phổ biến MiniSAT, SAT solver mã nguồn mở mà nhiều SAT solver mạnh giới 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à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 sử dụng Nội dung luận văn chia thành chương sau: - Chương giới thiệu vấn đề Lôgic mệnh đề, toá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ài đặt SAT solver mạnh giới 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 MỤC LỤC iv CHƯƠNG GIỚI THIỆU 1.4.2 Trò chơi Sodoku 1.5 Một số ứng dụng khác SAT CHƯƠNG CÁC KỸ THUẬT SAT SOLVING CƠ BẢN 2.1 Thủ tục DPLL truyền thống 2.1.1 Một số khái niệm 2.1.2 Các luật thủ tục DPLL .5 2.2 Thủ tục DPLL đại 2.2.1 Backjumping 2.2.2 Learn Forget 2.2.3 Mệnh đề Backjump 2.3 Thuật toán CDCL 10 2.3.1 Nội dung CDCL 10 2.3.2 Giải thuật CDCL 10 2.3.3 Suy diễn mệnh đề mức quay lui 11 2.3.4 Biểu đồ kéo theo .11 2.3.5 Học từ mệnh đề xung đột 12 2.4 Kỹ thuật Two -Watched literals 12 2.4.1 Watched literal 12 2.4.2 Two- Watched literal .13 2.5 Giải pháp loại bỏ biến loại bỏ mệnh đề 13 2.5.1 Loại bỏ biến 13 2.5.2 Loại bỏ mệnh đề .15 CHƯƠNG CÁC KỸ THUẬT SAT SOLVING TIÊN TIẾN HIỆN NAY 18 3.1 GlueMiniSat 18 3.1.1 Giới thiệu 18 3.1.2 Tiêu chí đánh giá Learn Clause .18 3.1.3 Chiến lược tự khởi động lại 18 3.2 Glucose 19 3.2.1 Quản lý mệnh đề học .19 3.2.2 Khởi động lại 19 CHƯƠNG THỰC NGHIỆM 20 4.1 Giới thiệu MiniSat 20 4.2 Giao diện lập trình ứng dụng .20 4.3 Tổng quan Minisat 20 4.4 Thực nghiệm 21 4.4.1 Biên dịch Minisat 21 4.4.2 Biên dịch GlueMinisat 22 4.4.3 Biên dịch Glucose 22 4.4.4 Bộ liệu thực nghiệm (Benchmarks) 23 4.4.5 Thực nghiệm 23 KẾT LUẬN .26 TÀI LIỆU THAM KHẢO .26 MỤC LỤC iv CHƯƠNG GIỚI THIỆU 1.4.2 Trò chơi Sodoku 1.5 Một số ứng dụng khác SAT CHƯƠNG CÁC KỸ THUẬT SAT SOLVING CƠ BẢN 2.1 Thủ tục DPLL truyền thống 2.1.1 Một số khái niệm 2.1.2 Các luật thủ tục DPLL .5 2.2 Thủ tục DPLL đại 2.2.1 Backjumping 2.2.2 Learn Forget 2.2.3 Mệnh đề Backjump 2.3 Thuật toán CDCL 10 2.3.1 Nội dung CDCL 10 2.3.2 Giải thuật CDCL 10 2.3.3 Suy diễn mệnh đề mức quay lui 11 2.3.4 Biểu đồ kéo theo .11 2.3.5 Học từ mệnh đề xung đột 12 2.4 Kỹ thuật Two -Watched literals 12 2.4.1 Watched literal 12 2.4.2 Two- Watched literal .13 2.5 Giải pháp loại bỏ biến loại bỏ mệnh đề 13 2.5.1 Loại bỏ biến 13 2.5.2 Loại bỏ mệnh đề .15 CHƯƠNG CÁC KỸ THUẬT SAT SOLVING TIÊN TIẾN HIỆN NAY 18 3.1 GlueMiniSat 18 3.1.1 Giới thiệu 18 3.1.2 Tiêu chí đánh giá Learn Clause .18 3.1.3 Chiến lược tự khởi động lại 18 3.2 Glucose 19 3.2.1 Quản lý mệnh đề học .19 3.2.2 Khởi động lại 19 CHƯƠNG THỰC NGHIỆM 20 4.1 Giới thiệu MiniSat 20 4.2 Giao diện lập trình ứng dụng .20 4.3 Tổng quan Minisat 20 4.4 Thực nghiệm 21 4.4.1 Biên dịch Minisat 21 4.4.2 Biên dịch GlueMinisat 22 4.4.3 Biên dịch Glucose 22 4.4.4 Bộ liệu thực nghiệm (Benchmarks) 23 4.4.5 Thực nghiệm 23 KẾT LUẬN .26 TÀI LIỆU THAM KHẢO .26 BẢNG CÁC THUẬT NGỮ VÀ TỪ VIẾT TẮT STT Thuật ngữ Từ viết tắt / Diễn giải SAT Satisfiability UNSAT Unsatisfiability SAT Solver Một công cụ chứng minh tự động công thức Lôgic mệnh đề CNF Conjunctive Normal Form BCP Boolean Constraint Propagation DPLL Davis–Putnam–Logemann–Loveland CDCL Conflict Driven Clause Learning UIP Unique Implication Point LBD Literal Blocks Distance CHƯƠNG GIỚI THIỆU 1.1 Bài toán SAT Bài toán SAT toán khoa học máy tính nhằm kiểm tra tính thỏa mãn (SAT - Satisfiability) hay không thỏa mãn (UNSAT – Unsatisfiability) công thức Lôgic mệnh đề Một công thức Lôgic mệnh đề SAT tồn giá trị true false biến Lôgic mệnh đề làm cho công thức nhận giá trị true Ngược lại công thức UNSAT giá trị true false biến Lôgic mệnh đề làm cho công thức có giá trị false 1.2 Lôgic mệnh đề Đầu vào toán SAT công thức Lôgic mệnh đề thường biểu diễn dạng chuẩn tắc hội (CNF) chuẩn tắc tuyển (DNF) 1.2.1 Công thức Lôgic mệnh đề Một công thức Lôgic mệnh đề xây dựng từ biến phép toán lôgic bao gồm: AND (phép hội), OR (phép tuyển), NOT (phủ định), IMPLICATION (phép kéo theo) Dưới khái niệm [1]: a Mệnh đề Định nghĩa: Mỗi câu phát biểu hay sai gọi mệnh đề b Phép phủ định 15 def = findDefinition(x) if (def # NODEF) maybeSubstitute(def) else maybeClauseDistribute(x) if (x was eliminated) propagate Toplevel() remove learned clause with x - for incremental SAT only Giải nghĩa: maybeClauseDistribute(x): loại bỏ x mệnh đề phân phối kết có mệnh đề so với gốc (sau loại bỏ mệnh đề tầm thường thỏa mãn) findDefinition(x): trả x ↔ p1 p2 ∨∨ ∨ pn x ↔ p1 ∧ p2 ∧ ∧ pn NoDef  maybeSubstitute(def) định nghĩa chức phụ thuộc biến thay lần xuất biến theo định nghĩa 2.5.2 Loại bỏ mệnh đề 2.5.2.1 Loại bỏ mệnh đề quan hệ subsum(gộp) Một mệnh đề C1 gộp với C2 C1 ⊆ C2 Một mệnh đề gộp không cần thiết bỏ khỏi công thức Thuật toán: findSubsumed(Clause C) pick the literal p in C with the shortest occur list 16 for each C’ ∈ occur (p) if (C # C’ && subset( C, C’)) add C’ to result return result subset( Clause C, Clause C’) if (size (C) & > size (C’)) return FALSE if (sig(C) & sig(C’) # return FALSE else return result of iterating over C and C’ in a complete (expensive) subset test 2.5.2.2 Loại bỏ mệnh đề thay biến Nếu x có định nghĩa loại trừ mệnh đề phân phối, nhiều phép phân giải thừa bị phát sinh Bằng cách sử dụng định nghĩa, những mệnh đề loại bỏ dễ ràng Ví dụ 2.12 : Giả sử có tập mệnh đề S sau: , , , {x, c},{x, d } {x, a, b} { x, a},{x, b} { x, e, f } 44 4 14 43 4 14 43 Rx Gx Gx Rx Như ta thấy S chia làm tập nhỏ : Rx = {1, 2} Gx = {3, 4} = {4, 5} = {6} 17 , {x, c}, {x, d }, {x, a, b} { x, a},{ x, b},{ x, e, f } 4 44 4 43 4 44 4 4 Sx Sx Tương tự chia S thành tập nhỏ Sx Sx = {1, 2, 3} Ta có: =( ⊗ = {4, 5, 6} ⊗ ) ∪ ( ) ⊗6 ⊗4 ⊗5 ⊗4 ⊗5 ( S '') {c, a},{c, b}, {d , a},{d , b},{a, b, e, f } ⊗4 ⊗5 {a, b, a},{a, b, b} ⊗6 (G ' ) ⊗6 {c, e, f},{d , e, f } (R' ) chỉ chứa các mệnh đề không có nghĩa nên có | | = > 5=| | Thay thế S bởi sẽ giảm số lượng mệnh đề từ thành 5, việc thực hiện phân tách mệnh đề đầy đủ thực tế sẽ tăng số mệnh để từ thành Ngoài ra, các mệnh đề thừa có thể được thu thập từ 18 CHƯƠNG CÁC KỸ THUẬT SAT SOLVING TIÊN TIẾN HIỆN NAY 3.1 GlueMiniSat 3.1.1 Giới thiệu GlueMiniSat SAT solver dựa LBD đề xuất Audemard Simon [5] 3.1.2 Tiêu chí đánh giá Learn Clause Một Block bao gồm toàn literals có level định Một mệnh đề học ước lượng số Block có mệnh đề Định nghĩa LBD: Cho mệnh đề C phần vùng Literals vào n tập theo phép gán tại, Literals phân vào vùng có chung mức level LBD C n [5] “Một mệnh đề C có LBD hai gọi Glue Clause” 3.1.3 Chiến lược tự khởi động lại GlueMiniSat sử dụng chiến lược tự khởi động lại hai điệu kiện sau thỏa mãn [9]: Trung bình mức định 50 xung đột cuối * 1.0 lớn mức trung bình toàn Trung bình LBDs 50 mệnh đề học cuối * 0,8 lớn mức trung bình toàn LBD Mục đích việc khởi động lại giảm mức định nhận mệnh đề có LBD nhỏ 19 3.2 Glucose GLUCOSE giữ glue clause mà không xóa chúng suốt trình tìm kiếm Các LBD mệnh đề tính toán lại chúng sử dụng cập nhật LBD trở lên nhỏ Quá trình cập nhật quan trọng để tạo nhiều Glue Clauses 3.2.1 Quản lý mệnh đề học Trước glucose [6], quản lý mệnh đề học không coi phần quan trọng giải CDCL Kết glucose phụ thuộc nhiều vào chất lượng LBD Đó số tốt nhiều trường hợp nhiên không đủ để phân biệt Vì cần giữ cho LBD nhiều Thực trì hoãn việc làm số 1000 LBD tính toán mệnh đề học Thực tính toán lại mệnh đề sử dụng BCP thay đổi nó, trở nên nhỏ 3.2.2 Khởi động lại Trong Glucose, khởi động lại dựa LBD mệnh đề học [2] Nó so sánh LBD ‘short term average – trung bình ngắn hạn’ mệnh đề học với ‘long term average- trung bình dài hạn’ Nếu trung bình ngắn hạn lớn đáng kể so với mức trung bình dài hạn (25%), khởi động lại kích hoạt, trừ khởi động lại xảy gần (ít 50 mâu thuẫn trước đó) 20 CHƯƠNG THỰC NGHIỆM 4.1 Giới thiệu MiniSat Minisat SAT Solver nhanh phát triển Niklas Eén Niklas Sörensson [19] Một vài đặc trưng MiniSAT: Dễ dàng sửa đổi • • • Dễ dàng sửa đổi Hiệu cao Được thiết kế để tích hợp 4.2 Giao diện lập trình ứng dụng Đây giao diện MiniSAT Các kiểu kiểu biến, literal vec-tơ Class Solver - Public interface var newVar () boll addClause bool add bool simplifyDB bool solve Vec model the model (Vec literals) ( ) () (Vec assumptions) - If found, this vector has Hình 1: Giao diện ứng dụng Minisat [26] 4.3 Tổng quan Minisat Suy diễn (Propagation) Học (Learning) Tìm kiếm 21 Độ ưu tiên biến Loại bỏ ràng buộc Top-level solver 4.4 Thực nghiệm Hai kỹ thuật Glueminisat Glucose 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 đâ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) - Gõ cd core - Gõ sudo apt-get install libghc-zlib-dev - Gõ make (Tạo 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/ 22 - 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 đây: - Download glueminisat-2.2.8: wget http://glueminisat.nabelab.org/home/download/glueminisat2.2.8.tar.gz - Giải nén: unzip glueminisat-2.2.8.zip - Chạy file build.sh: Gõ /build.sh (Tạo 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 đây: 23 - 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 file chạy Glucose) - Tạo thư mục Examples để lưu lại benchmark: mkdir Examples - 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 định dạng DIMACS CNF (.CNF) 4.4.5 Thực nghiệm Tiến hành thực nghiệm Minisat, Glueminisat, Glucose “Bộ liệu Slitherlink” tham khảo [25] “Bộ liệu thực nghiệm chuẩn Aprove09” tham khảo [24] 24 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 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 số lượng 25 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) đ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 26 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 kết định : • Hiểu Bài toán SAT, SAT Solver, Các ứng dụng SAT Solver • Nắm 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 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 SAT Solver : Minisat, Glueminisat, Glucose Tuy nhiên, luận văn có hạn chế sau: • Chưa thự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ê kỹ thuật SAT Solver : 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 coi mạnh 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 27 [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 28 [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, [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 sudokusolver 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 29 [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 [24] SAT Benchmark Aprove09, artois.fr/SAT09/bench/appli.7z http://www.cril.univ- [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 [27] The international SAT Competitions http://www.satcompetition.org/ web page, ... rõ cách thức hoạt động Các kỹ thuật cài đặt SAT solver phổ biến MiniSAT, SAT solver mã nguồn mở mà nhiều SAT solver mạnh giới 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. .. Chương trình bày kỹ thuật SAT Solving tiên tiến nay, kỹ thuật cài đặt SAT solver mạnh giới 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... Chương giới thiệu vấn đề Lôgic mệnh đề, toá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,
- Xem thêm -

Xem thêm: CÁC kỹ THUẬT SAT SOLVING, CÁC kỹ THUẬT SAT SOLVING, CÁC kỹ THUẬT SAT SOLVING

Từ khóa liên quan

Gợi ý tài liệu liên quan cho bạn

Nhận lời giải ngay chưa đến 10 phút Đăng bài tập ngay