PageRenderTime 43ms CodeModel.GetById 20ms RepoModel.GetById 0ms app.codeStats 0ms

/Satisfiability/Quantification/plans/general.hpp

https://github.com/MLewsey/oklibrary
C++ Header | 97 lines | 7 code | 4 blank | 86 comment | 0 complexity | 88373dd68e212ce14ae136110436f70c MD5 | raw file
  1. // Oliver Kullmann, 9.6.2007 (Swansea)
  2. /* Copyright 2007, 2008 Oliver Kullmann
  3. This file is part of the OKlibrary. OKlibrary is free software; you can redistribute
  4. it and/or modify it under the terms of the GNU General Public License as published by
  5. the Free Software Foundation and included in this library; either version 3 of the
  6. License, or any later version. */
  7. /*!
  8. \file Satisfiability/Quantification/plans/general.hpp
  9. \brief Module for quantified boolean formulas and generalisations
  10. \todo Create milestones.
  11. \todo Main challenge are the concepts.
  12. <ul>
  13. <li> Arbitrary "constraint-problems" can be quantified. </li>
  14. <li> "Quantification" is a structuring-process on the variables. </li>
  15. <li> "Models" for a true formula are now maps which realise the existential
  16. variables, while "counter-examples" for a false formula realise the universal
  17. variables. </li>
  18. <li> For such realisations different specifications can be used to yield a
  19. compression. </li>
  20. <li> The validation of "models" and "counter-examples" becomes more important
  21. (and complex) --- the field includes for example the proof systems of
  22. propositional logic (only universal variables, and validity is to be shown,
  23. or only existential variables, and falsity is to be shown)! </li>
  24. <li> A question is, whether also other quantifier (besides "for all" and
  25. "exists") should be considered here, or whether they %mean really a different
  26. thing (to be considered in another module)? </li>
  27. <li> Another link is to first-order logic (with equality), considering a
  28. fixed structure {0,1} with the operations "and, or, not" --- this is a
  29. special case of checking whether for a given structure a first-order formula
  30. holds ("expression complexity"). One could consider the whole problem of
  31. "quantified generalised constraint-problems" as the problem of deciding
  32. whether in some fixed structure (with equality, functions and relations)
  33. a first-order sentence holds (however this view is too much fixed on
  34. a specific representation of a problem!). </li>
  35. <li> First explorations in the ComputerAlgebra-part; see
  36. ComputerAlgebra/Satisfiability/Lisp/Quantification/plans/general.hpp. </li>
  37. </ul>
  38. \todo What are the input formats?
  39. <ul>
  40. <li> http://www.qbflib.org/qdimacs.html </li>
  41. <li> See SAT evaluation. </li>
  42. <li> This should become a part of Satisfiability/Interfaces. </li>
  43. </ul>
  44. \todo Applications
  45. <ul>
  46. <li> See sub-module Games/plans/Chess.hpp. </li>
  47. <li> See "Positional games" in
  48. ComputerAlgebra/Hypergraphs/Lisp/plans/Colouring.hpp. </li>
  49. </ul>
  50. \todo Basic autarkies
  51. <ul>
  52. <li> Since QBF is a harder problem than SAT, here it might be worth to
  53. eliminate all basic autarkies (i.e., just crossing out all universal
  54. variables), i.e., to compute the lean kernel of the matrix (ignoring all
  55. universal variables). </li>
  56. <li> Of course, more heuristical schemes or polynomial-time algorithms for
  57. autarky search can also be used. </li>
  58. <li> See Autarkies/Search/plans/general.hpp. </li>
  59. </ul>
  60. \todo Bounded maximal deficiency
  61. <ul>
  62. <li> Implement the algorithm for QCNF with deficiency at most one
  63. (after reduction to the lean kernel) as developed by Kleine Buening
  64. and Zhao. </li>
  65. <li> Perhaps a submodule is appropriate. </li>
  66. </ul>
  67. */
  68. /*!
  69. \namespace OKlib::Satisfiability::Quantification
  70. \brief Components for quantified generalised SAT problems
  71. Alias "Qua".
  72. */
  73. namespace OKlib {
  74. namespace Satisfiability {
  75. namespace Quantification {
  76. }
  77. namespace Qua = Quantification;
  78. }
  79. }