[gecode-users] MinimizeScript: Beginners Question

Josef Eisl zapster at zapster.cc
Wed Jan 18 13:15:44 CET 2012


On 01/18/2012 12:01 PM, Christian Schulte wrote:
> Hi,
> 
> I added the command line switch -print-last to the trunk. In case you build
> Gecode yourself from source you can use the attached patch to get the
> behaviour.

Works like a charm, thanks!

br
Josef


> 
> Christian
> 
> --
> Christian Schulte, www.ict.kth.se/~cschulte/
> 
> 
> -----Original Message-----
> From: users-bounces at gecode.org [mailto:users-bounces at gecode.org] On Behalf
> Of Josef Eisl
> Sent: Tuesday, January 17, 2012 7:02 PM
> To: cschulte at kth.se
> Cc: users at gecode.org
> Subject: Re: [gecode-users] MinimizeScript: Beginners Question
> 
> On 01/17/2012 04:59 PM, Christian Schulte wrote:
>> Hi Josef,
>>
>> Thanks for your observations as far as MPG is concerned. I'll think 
>> them through and look how to improve. The information being spread out 
>> can't really be helped much as each location takes a different angle 
>> and different depth. But I promise I'll think...
>>
>> Then printing each solution is actually what you want (I guess): 
>> normally, finding a best solution takes so long that you will have to 
>> settle for the solution that has been found last after the time is up. 
>> But maybe there could be an additional switch which would only make 
>> sense in a best solution search scenario: -print-last where only the 
>> last solution found is printed, and if a time out is encountered then 
>> also the last and not necessarily best solution is printed. Would that
> make you happy?
> 
> Yes, such an option would be great :).
> 
> Thanks again for your time!
> 
> br
> Josef
> 
>>
>> Christian
>>
>> --
>> Christian Schulte, www.ict.kth.se/~cschulte/
>>
>>
>> -----Original Message-----
>> From: users-bounces at gecode.org [mailto:users-bounces at gecode.org] On 
>> Behalf Of Josef Eisl
>> Sent: Tuesday, January 17, 2012 3:52 PM
>> To: cschulte at kth.se
>> Cc: users at gecode.org
>> Subject: Re: [gecode-users] MinimizeScript: Beginners Question
>>
>> Hello!
>>
>> On 01/17/2012 02:31 PM, Christian Schulte wrote:
>>> Hi,
>>>
>>> Please let me take your questions in turn.
>>>
>>> 1. Changing the relation from strict (that is, "<") to a non-strict 
>>> (that is, "<=") will typically not work. It would entail that you do 
>>> not only find all _optimal_ solutions but all solution for each and 
>>> every cost value! So normally that will be way too many solutions! 
>>> Try it out with Gist on a small example and you will see that this 
>>> will make
>> things break down.
>>
>> Ups, my bad. Clearly adding a non strict constraint does not make much 
>> sense.
>>
>>> Should I add a tip in MPG that the order must be strict for things to
>> work?
>>
>> Maybe, but I my eyes it is more confusing that 
>> MinimizeSpace/MinimizeScript return non-optimal solutions, at least 
>> for a new user. Some other things about MPG and optimization that are not
> straight forward in my opinion:
>>
>> 1. Information is spread over several chapters:
>>    - 2.5 Best solution search
>>    - 3.2 Using a cost function
>>    - 6.3 Support for cost-based optimization
>>    - 7.4 Search engines
>>
>> 2. Best Solution Search engine
>> It is mentioned in 2.5 and 7.4 but not 3.2 and 6.3 and there are no 
>> links to the other sections. Maybe it should be stated more clearly 
>> that BAB or Restart must be used for best solution search.
>>
>> 3. constrain()
>> In 2.5: "Note that every space defines a default constrain() member 
>> function (to keep the design of models simple). If a model does not 
>> re-define the
>> constrain() member function, the default function will be called which 
>> throws an exception of type SpaceConstrainUndefined (as this is a 
>> modeling error)".
>> In my eyes the second sentence is not true as OptimizeSpace provides a 
>> valid constrain().
>>
>> These are rather beginner problems than problems of MPG. Gecode is one 
>> of the best documented free software I've seen. I just want to share 
>> my experience.
>>
>>> 2. To find all optimal solutions, I would first find _one_ optimal 
>>> solution as normal. Then I would find all solutions (starting a new
>>> search) where the cost value is equal to the optimal const value.
>>
>> I see. That makes sense.
>>
>>> 3. You see that printing "all" optimal solutions with respect to 1. and
> 2.
>>> does not really make much sense.
>>
>> Ok using -solutions for optimal solutions does not work. But how about 
>> printing only the last (optimal if -solutions 0) solution with 
>> MinimizeScript?
>>
>>> I hope that helps
>>
>> Thank you very much for your quick and detailed answers!
>>
>> Josef
>>
>> _______________________________________________
>> 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 users mailing list