[gecode-users] Learning in GeCode/SMT

Max chaosangel at gmx.de
Mon Oct 13 23:57:59 CEST 2008


Thank you for the advice with Choco, i will have a look at, but 
currently i tend to use GeCode.

    The work by Dechter et al uses a naive
    model, where CSPs are represented entirely by binary constraints which
    are given as lists of allowed pairs of values.  In this setup,  
    learning
    is relatively straightforward.  In a realistic, propagation-based
    constraint solver, it is not.


I finally managed to read "Dechter - Backjump-based backtracking for 
constraint satisfaction" and i think it is not restricted to Binary 
Constraints, because it is mentioned several times. And i have not found 
the list of allowed pairs in the paper, i thought of nogoods as set of 
domains, not explicit values. But i can not evaluate the possibilities, 
because i have no idea of how constraint solver do work. I hope the CSP 
community will have access to learning algorithms in the future, because 
i see a huge potential in them.
By the way, can anybody say how the Benchmarks of the paper were made if 
no implementations exists of such solvers. I haven't found that in the text.


Best regards,

Max Ostrowski




Guido Tack wrote:
> Just as a quick follow-up, Choco used to have a feature called  
> explanations, which would probably do what you're looking for, but as  
> far as I understand, they have been removed from the current release.
>
> Cheers,
> 	Guido
>
> Max wrote:
>
>   
>> At first am just forwarding my private mail contact with Guido Tack,  
>> as
>> it may be interesting to other on the mailing list.
>>
>> Thank you for the answer. Its a pity that the learning techniques have
>> not made it into CSP yet.
>> I want to integrate a CSP solver into an ASP Solver, a reasoning  
>> system
>> for logic programs.
>> The advantage of learning from CSP solvers would be to get a good
>> "reason" why literals/constraints can be propagated. SAT and ASP  
>> systems
>> use a learning approach based on "reasons" and conflict-learning. So  
>> my
>> system could use the reasons of the CSP solver to produce better
>> conflicts and prune the search space. If it is not supported i will  
>> have
>> to use a trivial reason, which means a constraint rule applies because
>> of all other constraint rules the same variable occurs in. But this
>> reason is not very specific and is not very applicable for  
>> backjumping.
>>
>> Maybe someone of the SMT (Sat Modulo Theory) area reads this message  
>> and
>> can provide information on how this is done in SMT Solvers, as they
>> incorporate CSP into SAT and using learning techniques. But all  
>> systems
>> i found up to now seam to have written their own theory(CSP) solver.
>> So if someone knows a CSP library capable of producing non trivial
>> reasons and maybe doing conflict analysis, it would be great to post
>> them here. Or maybe someone has an understaning how the SMT people do
>> the things they do.
>>
>> Best regards,
>>
>> Max Ostrowski
>>
>>
>>
>>
>>
>>     
>>> Hi.
>>>
>>> Max wrote:
>>> you probably already know me from the GeCode mailing list.
>>> I just have a silly? question that i do not wanted to post on the  
>>> list.
>>> It regards learning in gecode.
>>> I'm not very familiar with constraint programming but it seems to me
>>> that things like backjumping and conflict learning already made it
>>> into the current CSP systems.
>>> Found a paper: Backjump-based backtracking for constraint  
>>> satisfaction
>>> problems by Rina Dechter and Daniel Frost
>>>
>>> So, does GeCode really not support learning and backjumping? Because
>>> these features seem to be necessary for my diploma thesis and gecode
>>> seems to be a state of the art CSP solver and one of the best  
>>> looking.
>>> So my first question would be: Why it is not supported? - and my
>>> second barefaced question- : Do you know a similar CSP lib where it  
>>> is
>>> supported?
>>>       
>> It is not supported (and won't be in the near future), because no one
>> knows how to do it properly.  The work by Dechter et al uses a naive
>> model, where CSPs are represented entirely by binary constraints which
>> are given as lists of allowed pairs of values.  In this setup,  
>> learning
>> is relatively straightforward.  In a realistic, propagation-based
>> constraint solver, it is not.
>> That also answers your second question: I don't know of any realistic
>> library that does learning.  None of the commercial packages (ILOG
>> Solver, SICStus Prolog, B-Prolog) incorporates learning, nor does  
>> any of
>> the other free libraries like Choco or Minion.  The closest you can  
>> get
>> is the work on "Propagation = Lazy Clause Generation"
>> (http://www.cs.bgu.ac.il/~mcodish/Papers/Pages/cp07.html), this is the
>> most promising attempt at using SAT learning technology for CP  
>> solving I
>> know of (but it's quite different from classic CP solvers).
>>
>> Btw, you can ask questions like this on the mailing list, no problem.
>> It's about why we do/don't do certain things, so it definitely fits!
>> Maybe you can elaborate how learning is important for what you want  
>> to do.
>>
>> Cheers,
>>    Guido
>>
>> _______________________________________________
>> Gecode users mailing list
>> users at gecode.org
>> https://www.gecode.org/mailman/listinfo/gecode-users
>>     
>
>
> _______________________________________________
> Gecode users mailing list
> users at gecode.org
> https://www.gecode.org/mailman/listinfo/gecode-users
>
>   





More information about the gecode-users mailing list