"Fossies" - the Fresh Open Source Software Archive

Member "brlcad-7.32.4/src/libpc/NOTES" (29 Jul 2021, 2037 Bytes) of package /linux/misc/brlcad-7.32.4.tar.bz2:


As a special service "Fossies" has tried to format the requested text file into HTML format (style: standard) with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code file.

    1 LIBPC
    2 -----
    3 
    4 * BNF Parser for generation of constraint objects from expressions
    5 
    6 * Make better pc_pc_set, pc_param and pc_constraint structures
    7 instead of the current ugly ones.
    8 
    9 * Test constraint solution via Read->Generate->Solve->Update routine
   10 
   11 * Implement Non-deterministic solution techniques:  Backjumping,
   12 Backmarking
   13 
   14 * Implement Deterministic propagators: NC, AC1-7, PC1-5
   15 
   16 * Check STL structures in public API ; wrapping with bu_list
   17 
   18 * Boost constrained_value based functor integration for 'compiled'
   19 constraints
   20 
   21 * Implement Hypergraph representation system
   22 
   23 * Explore analytic and symbolic solution system
   24 
   25 -----
   26 
   27 Looking at flatzinc as a constraint solver independent way to specify
   28 constraints - libpc could use that standard, and then do whatever is needed on
   29 the back end (talk to gecode, Google's or-tools solver, etc. via flatzinc
   30 directly, or translate as needed.)
   31 
   32 Might be worthwhile for readability to support the higher level minizinc (or at
   33 least some part of it) and have libpc incorporate the ability to translate
   34 "under the hood" to flatzinc, if appropriately licensed translators can be
   35 found - the G12 project's tools may be of some use, but would have to be
   36 converted from the Mercury language to C:  http://www.mercurylang.org/
   37 
   38 Would have to think about a generic C structure to hold minizinc/flatzinc
   39 results in a programmatically useful form - it wouldn't do to parse the text
   40 outputs, although they should be available for debugging if needed...
   41 
   42 Minizinc 2.0 is worth keeping an eye on - license is MPL2, which is between
   43 Apache and LGPLv2 from a practical standpoint (can't combine with our code, but
   44 we can use it - do need to provide modified versions of original code, but
   45 license isn't viral):
   46 
   47 http://www.minizinc.org/2.0/index.html
   48 
   49 It's being actively developed in C++ rather than Mercury, which is a Good Thing
   50 from a support standpoint.
   51 
   52 Note that SafeInt, which they call out as being MS-PL licensed, now has an
   53 MIT licensed version available here:  https://github.com/dcleblanc/SafeInt
   54