ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ NGUYỄN VĂN QUÂN PHƯƠNG PHÁP TÍNH TOÁN KHOẢNG GIẢI CÁC RÀNG BUỘC KHÔNG TUYẾN TÍNH LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN Hà Nội - 2016.
Trang 1ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
NGUYỄN VĂN QUÂN
PHƯƠNG PHÁP TÍNH TOÁN KHOẢNG GIẢI CÁC RÀNG BUỘC
KHÔNG TUYẾN TÍNH
LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
Hà Nội - 2016
Trang 2ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
NGUYỄN VĂN QUÂN
PHƯƠNG PHÁP TÍNH TOÁN KHOẢNG GIẢI CÁC RÀNG BUỘC
KHÔNG TUYẾN TÍNH
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Ĩ 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
Trang 3LỜI CAM ĐOAN
Tôi xin cam đoan rằng, luận văn thạc sĩ công nghệ thông tin “Phương pháp tính toán khoảng giải các ràng buộc không tuyến tính.” là sản phẩm nghiên cứu của riêng cá nhân tôi dưới sự giúp đỡ rất lớn của Giảng viên hướng dẫn là
TS Tô Văn Khánh, không sao chép lại của người khác Những điều đã được trình bày trong toàn bộ nội dung của luận văn này hoặc là của chính cá nhân tôi, hoặc là được tổng hợp từ nhiều nguồn tài liệu Tất cả các tài liệu tham khảo đều
có nguồn gốc rõ ràng và được trích dẫn hợp pháp
Tôi xin hoàn toàn chịu trách nhiệm và chịu mọi hình thức kỷ luật theo quy định cho lời cam đoan của mình
Hà nội, tháng 10 năm 2016
Học viên
Nguyễn Văn Quân
Trang 4LỜI CẢM ƠN
Trước tiên tôi xin bày tỏ lòng biết ơn chân thành và sâu sắc đến thầy giáo,
TS Tô Văn Khánh - người đã dành nhiều tâm huyết, tận tình chỉ bảo và giúp đỡ tôi trong suốt quá trình bắt đầu thực hiện đề tài cho đến khi tôi hoàn thành đề tài
Tôi xin gửi lời cảm ơn chân thành tới các thầy cô giáo khoa Công nghệ thông tin, trường Đại học Công nghệ, Đại học Quốc Gia Hà Nội - nơi tôi đã theo học trong thời gian qua Các thầy cô đã cung cấp cho tôi những kiến thức quý báu, tạo điều kiện tốt nhất cho tôi trong suốt quá trình học tập và nghiên cứu tại trường
Cuối cùng tôi xin chân thành cảm ơn những người thân trong gia đình, đặc biệt là bố mẹ tôi là nguồn động viên và ủng hộ tôi Xin cảm ơn bạn bè cùng khóa, đồng nghiệp trong cơ quan đã giúp đỡ tôi trong quá trình học tập và nghiên cứu thực hiện luận văn này
Tuy rằng, tôi đã cố gắng hết sức trong quá trình làm luận văn nhưng không thể tránh khỏi thiếu sót, tôi rất mong nhận được những góp ý của thầy cô
và các bạn
Hà nội, tháng 11 năm 2016
Học viên
Nguyễn Văn Quân
Trang 5MỤC LỤC
LỜI CAM ĐOAN
LỜI CẢM ƠN
BẢNG CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT
DANH MỤC HÌNH VẼ
DANH MỤC BẢNG
MỞ ĐẦU 1
Chương 1 GIỚI THIỆU 3
1.1 Giải các ràng buộc đa thức 3
1.2 Ứng dụng của giải các ràng buộc đa thức 4
1.3 Các SMT giải ràng buộc toán học 5
Chương 2 PHƯƠNG PHÁP TÍNH TOÁN KHOẢNG 7
2.1 Giới thiệu về phương pháp tính toán khoảng 7
2.2 Phương pháp tính toán khoảng CI 8
2.3 Phương pháp tính toán khoảng Affine Interval 10
2.3.1 Dạng AF 11
2.3.2 Dạng AF1 13
2.3.2 Dạng AF2 15
2.4 Phương pháp tính toán khoảng C AI 18
Chương 3 SMT SOLVER VÀ SMT SOLVER raSAT 23
3.1 SAT Solver 23
3.2 SMT Solver 24
3.3 Thủ tục DPLL 26
3.3.1 Thủ tục DPLL cho SAT 26
3.3.1 Thủ tục DPLL cho SMT 30
3.4 SMT Solver raSAT 32
Chương 4 CẢI TIẾN KỸ THUẬT KIỂM THỬ TRÊN SMT SOLVER raSAT 41
4.1 Kiểm thử trên raSAT 41
4.2 Kiểm thử cặp đôi 45
4.3 Kiểm thử cặp đôi trên raSAT 47
Trang 64.4 Thực nghiệm 49
4.4.1 Kết quả raSAT tại các cuộc thi SMT – COMP 49
4.4.2 raSAT 0.2 50
4.4.3 Benchmarks 50
4.4.4 Kết quả thực nghiệm 51
KẾT LUẬN 53
TÀI LIỆU THAM KHẢO 54
Trang 7BẢNG CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT
1 SAT Satisfiability
2 SMT Satisfiability Modulo Theories
3 DPLL Davis Putnam Logemann Loveland
4 CNF Conjunctive Normal Form
5 CA Classical Interval
6 AI Affine Interval
8 AF1 Affine Form1
9 AF2 Affine Form2
10 CAI Chebyshev Approximation Interval
11 IA Interval Arithmetic
12 PID Proportional Integral Derivative
13 QE-CAD Quantifier elimination - Cylindrical Algebraic
Decomposition
14 CAD Cylindrical algebraic decomposition
15 RAHD Real Algebra in High Dimensions
16 ICP Interval constraint propagation
17 VS Virtual substitution
18 APC Atomic polynomial constraint
19 ICC Interval constraint contraction
Trang 8DANH MỤC HÌNH VẼ
1 Hình 1 Đồ thị biểu diễn giá trị xấp xỉ Chebyshev của x2 và x|x|
2 Hình 2 Mô hình giải quyết vấn đề bằng SAT
3 Hình 3 Phương pháp “Eager approach”
4 Hình 4 Phương pháp “Lazy approach”
5 Hình 5 Sơ đồ cơ chế hoạt động của thủ tục DPLL
6 Hình 6 Kết quả của ràng buộc đa thức
7 Hình 7 Kết quả kiểm thử của ràng buộc đa thức
8 Hình 8 Kiến trúc của SMT Solver raSat
9 Hình 9 Kết quả kiểm thử của ràng buộc đa thức
10 Hình 10 Kiểm thử trong SMT Solver raSat
Trang 9DANH MỤC BẢNG
1 Bảng 1 Chọn giá trị cho biến trong khoảng dựa vào hệ số ưu tiên
2 Bảng 2 Bảng giá trị đầu vào của các biến
3 Bảng 3 Các ca kiểm thử sử dụng kỹ thuật kiểm thử cặp đôi
4 Bảng 4 Các ca kiểm thử cặp đôi của 2 biến đầu vào
5 Bảng 5 Các ca kiểm thử cặp đôi thêm các giá trị biến thứ ba
6 Bảng 6 Các ca kiểm thử cặp đôi của ba biến lặp theo chiều dọc
7 Bảng 7 Các ca kiểm thử cặp đôi của ba biến lặp theo chiều ngang
8 Bảng 8 Bảng so sánh raSAT 0.2 và raSAT áp dụng kiểm thử cặp
đôi
9 Bảng 9 Kết quả raSAT 0.1 tại cuộc thi SMT - COMP 2014
10 Bảng 10 Kết quả raSAT 0.2 tại cuộc thi SMT - COMP 2015
11 Bảng 11 Kết quả raSAT 0.3 và 0.4 tại cuộc thi SMT - COMP 2016
12 Bảng 12 Kết quả thực nghiệm của raSAT 0.2 và raSAT0.2 –
Pairwise testing
Trang 10MỞ ĐẦU
Với sự phát triển của công nghệ thông tin các sản phẩm phần mềm được xây dựng với các yêu cầu khắt khe về chất lượng và độ tin cậy Đặc biệt là các
hệ thống ứng dụng trong các ngành công nghệ cao như hàng không, vận tải, y tế cần độ tin cậy và chính xác cao Bởi chỉ một sai sót nhỏ của hệ thống có thể gây ra những tổn thất to lớn về tính mạng con người và thiệt hại kinh tế Với nhu cầu như vậy các công cụ kiểm thử và kiểm chứng tự động ra đời sẽ giúp các nhà phát triển đảm bảo độ tin cậy và giảm chi phí sản xuất phần mềm
Hiện nay rất nhiều kỹ thuật được nghiên cứu và sử dụng để đảm bảo chất lượng của phần mềm Hai kỹ thuật truyền thống đã và đang được sử dụng để đảm bảo chất lượng phần mềm là kiểm thử phần mềm (Software testing) và kiểm chứng phần mềm (Software verification) Tuy nhiên việc sử dụng các phương pháp kiểm thử chỉ làm giảm bớt lỗi của hệ thống mà không thể kết luận được hệ thống không có lỗi Các phương pháp kiểm chứng đang được quan tâm
số một trong việc chứng minh tính đúng đắn của hệ thống Hiện nay các hướng nghiên cứu về SMT solver đang được quan tâm rộng rãi bởi chúng đóng vai trò quan trọng trong bài toán kiểm chứng phần mềm SMT solver đóng vai trò là công cụ nền (backend engine) trong các công cụ kiểm chứng phần mềm Các bài toán kiểm chứng được đưa về giải tính thỏa mãn (SAT/UNSAT) của các công thức logic bằng các công cụ SMT solver
Giải các ràng buộc đa thức toán học (Polynomial constraint) được ứng dụng nhiều trong phân tích hệ thống, kiểm chứng phần cứng và phần mềm, cụ thể như chứng minh tính bất biến của một chương trình hoặc phân tích kết quả của các hệ thống Tất cả các ứng dụng trên cần được tự động và cần có công cụ
để hỗ trợ để giải quyết bài toán Giải các ràng buộc đa thức toán học là đưa ra kết luận ràng buộc đó là SAT hoặc UNSAT
Trang 11KẾT LUẬN
Giải các ràng buộc đa thức toán học (Polynomial constraint) được ứng dụng nhiều trong phân tích hệ thống, kiểm chứng phần cứng và phần mềm, cụ thể như chứng minh tính bất biến của một chương trình hoặc phân tích kết quả của các hệ thống Tất cả các ứng dụng trên cần được tự động và cần có công cụ
để hỗ trợ để giải quyết bài toán Luận văn đã nghiên cứu và trình bày các kỹ thuật giải các ràng buộc phi tuyến tính (non-linear constraints) bằng phương pháp tính toán xấp xỉ (approximation methods) Cụ thể luận văn đã nghiên cứu và trình bày
về các phương pháp tính toán khoảng (Interval Arithmetic) để giải các ràng buộc phi tuyến tính Ngoài ra luận văn trình bày kiến trúc và các kỹ thuật áp dụng trong SMT Solver raSAT Một công cụ giải tự động ràng buộc toán học trên tập số thực
và số nguyên dựa trên phương pháp tính toán khoảng và kiểm thử
Luận văn đề xuất áp dụng phương pháp kiểm thử cặp đôi (pairwise testing) thực hiện kiểm thử tăng dần (test - inrementally) vào bước kiểm thử của raSAT để cải thiện hiệu quả Kết quả đạt được đã tốt hơn như mục tiêu ban đầu của luận văn
Cụ thể kết quả đạt được như sau:
Cải thiện số lượng bài toán giải được và thời gian Cụ thể giải nhiều
hơn 386 bài toán với thời gian cải thiện được khoảng 12.4% (17,500 phút)
Mở ra các phương pháp cải tiến raSAT trên các ràng buộc có số biến lớn Hiện tại với các ràng buộc có số biến lớn vẫn là thách thức của các
SMT Solver mạnh như Z3…
Hiện tại kiểm thử cặp đôi mới giải quyết được vấn đề chọn nhiều giá trị cho mỗi biến nhưng chưa tìm được cách tìm giá trị SAT nhanh hơn Trong tương lai chúng tôi sẽ nghiên cứu tìm ra các chiến lược chọn giá trị cho các biến để tìm được giá trị SAT nhanh hơn Ngoài ra raSAT hiện tại mới giải được cho ràng buộc bất đẳng thức, trong tương lai chúng tôi sẽ nghiên cứu để giải cho các ràng buộc đa thức đẳng thức và ứng dụng raSAT vào kiểm chứng phần mềm
Trang 12TÀI LIỆU THAM KHẢO
[1] Borralleras, C., Lucas, S., Navarro-Marset, R., Rodr´ ıguez-Carbonell, E.,
and Rubio, A Solving non-linear polynomial arithmetic via sat modulo linear
arithmetic In Proceedings of the 22nd International Conference on Automated
Deduction (2009), CADE-22, Springer-Verlag, pp 294–305
[2] Bryant, R E., Kroening, D., Ouaknine, J., Seshia, S A., Strichman, O., and
Brady, B Deciding bit-vector arithmetic with abstraction In Proceedings of the
13th international conference on Tools and algorithms for the construction and analysis of systems (2007), TACAS’07, Springer-Verlag, pp 358–372
[3] Đỗ Thị Bích Ngọc and Mizuhito Ogawa, Overflow and roundoff error
analysis via model checking, Proceedings of the IEEE/ACM international
conference on software engineering and formal methods SEFM ’09, IEEE computer society, 2009, pp 105-114
[4] Franzle, M., Herde, C., Teige, T., Ratschan, S., and Schubert, T Effi-cient
solving of large non-linear arithmetic constraint systems with complex booleanstructure Journal on Satisfiability, Boolean Modeling and Computation
1 (2007), 209–236
[5] Franzle, M., Herde, C., Teige, T., Ratschan, S., and Schubert, T Effi-cient
solving of large non-linear arithmetic constraint systems with complex booleanstructure Journal on Satisfiability, Boolean Modeling and Computation
1 (2007), 209–236
[6] Ganai, M., and Ivancic, F Efficient decision procedure for non-linear
arithmetic constraints using cordic In Formal Methods in Computer-Aided
Design, 2009 FMCAD 2009 (2009), pp 61 –68
[7] Harald Ganzinger, George Hagen, Robert Nieuwenhuis, Albert Oliveras,
Cesare Tinelli DPLL(T): Fast Decision Procedures ,16th International
Conference on Computer Aided Verification (CAV), July 2004, Boston (USA) [8] Microsoft Z3
[9] Miquel Bofill, Robert Nieuwenhuis, Albert Oliveras, Enric
Rodríguez-Carbonell Albert Rubio The Barcelogic SMT Solver, 20th International
Conference on Computer Aided Verification (CAV), July 2008, Princeton (USA)
Trang 13[10] A Blass and Y Gurevich Pairwise Testing, Bulletin of the European
Association for Theoretical Computer Science Number 78, October 2002, 100
132
[11] Armin Biere, Marijn Heule, Hans van Maaren, Toby Walsch IOS Press
(2008), Handbook of Satisfiability, Dimitris Achlioptas
[12] Comba, J L D., and Stolfi, J Affine arithmetic and its applications to
computer graphics In Proceedings of VI SIBGRAPI (1993)
[13] Corzilius, F., and ´ Abrah´ am, E Virtual substitution for SMT- solving In
Pro-ceedings of the 18th international conference on Fundamentals of computation theory (2011), FCT’11, Springer-Verlag, pp 360–371
[14] Cristina Borralleras, Salvador Lucas, Albert Oliveras, Enric
Rodríguez-Carbonell, Albert Rubio SAT Modulo Linear Arithmetic for Solving Polynomial
Constraints
[15] H Anai, Algebraic Methods for solving real polynomial constraints and
their applications in biology, Algebraic biology computer algebra in biology,
2005, pp 139-147
[16]J Czerwonka Pairwise Testing in Real World, Proceedings of 24th Pacific
Northwest Software Quality Conference, 2006
[17] Messine, F Extensions of affine arithmetic: Application to unconstrained
globaloptimization Journal of Universal Computer Science 8, 2 (2002)
[18] Nieuwenhuis, R., Oliveras ,Tinelli (2005), Abstract DPLL and abstract
DPLL modulo theories In Logic for Programming, Articial Intelligence, and Reasoning, F Baader and A Voronkov, Eds., vol 3452 of Lecture Notes in
Computer Science Springer-Verlag
[19] Passmore, G O., and Jackson, P B Combined decision techniques for
theexistential theory of the reals In Proceedings of the 16th Symposium, 8th
Interna-tional Conference Held as Part of CICM ’09 on Intelligent Computer Mathematics (2009), Calculemus ’09/MKM ’09, Springer-Verlag, pp 122–137
[20] R.E Moore , Interval Analysis Prentice-Hall, 1966
[21] Ratschan, S Efficient solving of quantified inequality constraints over the
realnumbers ACM Trans Comput Logic 7, 4 (Oct 2006), 723–748
Trang 14[22] Robert Nieuwenhuis, Albert Oliveras, Cesare Tinelli Abstract DPLL and
Abstract DPLL Modulo Theories, 11th International Conference on Logic for
Programming, Artificial Intelligence and Reasoning (LPAR) March 2005, Montevideo (Uruguay)
[23] S Lucas and R Navarro-Marset, Comparing CSP and SAT solvers for
polynomial constraints in termination provers, Notes theory computer science,
2008, pp 75-90
[24] Stolfi, Figueiredo An Introduction to Affine Arithmetic
[25] Stolfi, J Self-Validated Numerical Methods and Applications PhD thesis,
PhD Dissertation, Computer Science Department, Stanford University, 1997
[26] Tô Văn Khánh and Mizuhito Ogawa, raSAT: SMT for Polynomial
Inequality, Technical report School of Information Science Japan Advance
Institute of Science and Technology, 2013
[27] Tô Văn Khánh and Mizuhito Ogawa, SMT for polynomial constraints on
real numbers, Notes theory computer science, 2012, pp 27-40
[28] Tô Văn Khánh, SMT for Polynomial Constraints and Its Applications, PHD
thesis, School of Information Science Japan Advance Institute of Science and Technology, 2013
[29] Vu Xuan Tung, To Van Khanh, Mizuhito Ogawa raSAT: An SMT Solver
for Polynomial Constraints, International Joint Conference on Automated
Reasoning 2016 IJCAR 2016: Volume 9706 Pages 228-237
[30] Y.Lei and K.C.Tai In-parameter-order: a test generation strategy for
pairwise testing Proceedings Third IEEE Intl High-Assurance Systems
Engineering Symp., 1998, pp 254-261