[gecode-users] users Digest, Vol 124, Issue 6

Christian Schulte cschulte at kth.se
Fri Jan 29 12:15:24 CET 2016


Alex is spot on here: but let me expand a little.

You might have used the cost() member function for B&B. However the cost()
member function is just implemented in terms of the constrain() member
function. So what I would do is the following:
 - Have a integer variable array cost containing the two cost variables you
have in mind.
 - implement a constrain(const Space& _b) member function: _b refers to the
so-far best solution. Cast this to your script type, say b. Then this just
posts
	rel(*this, cost, IRT_LQ, b.cost);
   This enforces that this->cost is lexicographically smaller then the so
far best cost b.cost.

That's it. More on the  constrain() function you can find in Chapter 2 of
MPG.

Cheers
Christian

--
Christian Schulte, www.gecode.org/~schulte 
Professor of Computer Science, KTH, cschulte at kth.se
Expert Researcher, SICS, cschulte at sics.se


-----Original Message-----
From: users-bounces at gecode.org [mailto:users-bounces at gecode.org] On Behalf
Of Alexander Schiendorfer
Sent: Friday, January 29, 2016 12:06 PM
To: users at gecode.org
Subject: Re: [gecode-users] users Digest, Vol 124, Issue 6

Hi Juan,

it seems to me that you're searching for lexicographic branch-and-bound.
There is a global constraint lex_lesseq that you might want to consider for
posting in the constrain method of a Space.

Cheers,
Alex

On 29.01.2016 12:00, users-request at gecode.org wrote:
> Send users mailing list submissions to
> 	users at gecode.org
>
> To subscribe or unsubscribe via the World Wide Web, visit
> 	http://www.gecode.org/cgi-bin/mailman/listinfo/users
> or, via email, send a message with subject or body 'help' to
> 	users-request at gecode.org
>
> You can reach the person managing the list at
> 	users-owner at gecode.org
>
> When replying, please edit your Subject line so it is more specific 
> than "Re: Contents of users digest..."
>
>
> Today's Topics:
>
>     1. Best way to implement multi-criterion optimization	in Gecode?
>        (Juan Carlos Hernandez)
>
>
> ----------------------------------------------------------------------
>
> Message: 1
> Date: Thu, 28 Jan 2016 12:30:54 +0100
> From: Juan Carlos Hernandez <jchernandez.madrid at gmail.com>
> To: users at gecode.org
> Subject: [gecode-users] Best way to implement multi-criterion
> 	optimization	in Gecode?
> Message-ID:
> 	<CAFd=f3EAU+XPqJo02KPT9SWibPjxkifw-F2so-4mE+x4Kv7Q5A at mail.gmail.com>
> Content-Type: text/plain; charset="utf-8"
>
> Hi everyone,
>
>
> I am trying to use Gecode to solve a multi-criterion problem
>
>
> minimize        (F1(x,z), F2(x,z) )
>
> subject to       constraints on x,z
>
>
> The objectives are ordered in order of importance, so I would like to 
> first solve the problem P1
>
>
> minimize        F1(x,z)
>
> subject to       original constraints on x,z
>
>
> and then consider the modified problem P2
>
>
> minimize        F2(x,z)
>
> subject to      original constraints on x,z
>
>                          F1(x,z) = F1opt
>
>
> where F1opt is the optimal value of P1.
>
>
> What is the most efficient way to implement this in Gecode?
>
>
>
> I am now doing two completely separate searches, in the sense that I 
> create a new Space and run BAB on it for each of the problems. I am 
> sure that this cannot be the most efficient way of dealing with the 
> problem, but am unable to figure out how to do it "the right way". 
> Essentially, when solving P2 I should be able to make use of the work done
while solving P1...
>
>
> Any feedback is very much appreciated!
>
>
> Thanks,
>
> JC
> -------------- next part -------------- An HTML attachment was 
> scrubbed...
> URL: 
> <http://www.gecode.org/pipermail/users/attachments/20160128/06e6ff75/a
> ttachment-0001.html>
>
> ------------------------------
>
> _______________________________________________
> Gecode users mailing list
> users at gecode.org
> https://www.gecode.org/mailman/listinfo/gecode-users
>
>
> End of users Digest, Vol 124, Issue 6
> *************************************

--
Alexander Schiendorfer, M.Sc.
Institute for Software & Systems Engineering Raum 3043, Gebäude N
Universität Augsburg

Web:
http://www.informatik.uni-augsburg.de/lehrstuehle/swt/se/staff/aschiendorfer
/
Tel.: +49 (821) 598 - 2196
E-Mail: alexander.schiendorfer at informatik.uni-augsburg.de


_______________________________________________
Gecode users mailing list
users at gecode.org
https://www.gecode.org/mailman/listinfo/gecode-users




More information about the users mailing list