; In last few posts we have shown that radnom propositional formula ; using classical connectives or, and and ->, and without variables ; is more probably true than false. In this post, we'll show that ; probability that propositional formula with variables is tautology ; is surprisingly high. (load "http://www.instprog.com/Instprog.default-library.lsp") ; The function rnd-pf returns random propositional formula. For ; example, (rnd-pf 10 '(true nil x y z) '(not) '(or and ->)) will ; return radnom formula of the size 10, with leafs true, nil, x, y ; and z; unary connective not and binary connectives or, and and ->. (set 'element find) (set 'rnd-pf (lambda(len leafs unary binary) (let ((connectives (append unary binary))) (cond ((= len 1) (apply amb leafs)) ((= len 2) (list (apply amb unary) (rnd-pf 1 leafs unary binary))) ((> len 2) (let ((connective (apply amb connectives))) (cons connective (if (element connective unary) (list (rnd-pf (- len 1) leafs unary binary)) (let ((r (apply amb (sequence 1 (- len 2))))) (list (rnd-pf r leafs unary binary) (rnd-pf (- len 1 r) leafs unary binary))))))))))) ; In following part of the program, 1000 random propositional formulas ; of the size 1000 (that means, 1000 nodes in graph) are constructed, ; and probability that random formula is tautology is calculated. It ; is done for various number of variables, from no variables at all ; to 17 variables. (set 'vars '(a b c d e f g h i j k l m n o p q r s t u v w x y z)) (dotimes(j 20) (set 'tautologies 0) (dotimes(i 1000) (set 'rf (rnd-pf 1000 (append '(true nil) (slice vars 0 j)) '(not) '(and or ->))) (when (tautology? rf) (inc tautologies))) (println "Formulas with " j " variables: " (/ tautologies 10) "% tautologies.")) ; The results are: ; ; Formulas with 0 variables: 58% tautologies. ; Formulas with 1 variables: 51% tautologies. ; Formulas with 2 variables: 42% tautologies. ; Formulas with 3 variables: 42% tautologies. ; Formulas with 4 variables: 34% tautologies. ; Formulas with 5 variables: 31% tautologies. ; Formulas with 6 variables: 31% tautologies. ; Formulas with 7 variables: 30% tautologies. ; Formulas with 8 variables: 27% tautologies. ; Formulas with 9 variables: 22% tautologies. ; Formulas with 10 variables: 22% tautologies. ; Formulas with 11 variables: 21% tautologies. ; Formulas with 12 variables: 22% tautologies. ; Formulas with 13 variables: 16% tautologies. ; Formulas with 14 variables: 18% tautologies. ; Formulas with 15 variables: 19% tautologies. ; Formulas with 16 variables: 16% tautologies. ; Formulas with 17 variables: 16% tautologies. ; |
The Probability That Random Propositional Formula is Tautology
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment