---------- Forwarded message ---------- From: Mohamed Rezgui <kyo.al...@gmail.com> Date: 2014-03-12 20:53 GMT+01:00 Subject: Re: [gecode-users] Multi-objective Model with Searchcombinators in Gecode To: Guido Tack <t...@gecode.org>
Hi, yes the two objective version works very well. But when I did not found the good syntax for 3 and several objectives :S Can you send me the right syntax please ? % Variables var 0..10: obj1; var 1..10: obj2; var 2..10: obj3; This following code give me these solutions : {10, 1, 9} {10, 1, 8} {10, 1, 7} {10, 1, 6} {10, 1, 5} {10, 1, 4} {10, 1, 3} {10, 1, 2} the first objective is not minimized :S %%%%%%%%%%%%%%%%%%%%%%%%%% portfolio([ and( and( %% minimise => obj2 < lv("best2") %% maximize => obj2 > lv("best2") post(obj1=lv("best1"), post(obj2 < lv("best2"), and(s,assign(best2,obj2)))), prune ), %% minimise => obj1 < lv("best1") %% maximize => obj1 > lv("best1") and( post(obj1 < lv("best1"), and(s,assign(best1,obj1))), prune ) ), %% minimise => obj3 < lv("best3") %% maximize => obj3 > lv("best3") post(obj2=lv("best2"), post(obj3 < lv("best3"), and(s,assign(best3,obj3)))) ]) with trace_sol, I have this bug (gecode 4.2.1, flatzinc 1.6, searchcombinators 0.9.3 modified API for gecode 4.2.1): trace_sol("*" ++ "\n", ...) //does not work Error: Unknown character in line no. 4 Error: Unknown character in line no. 4 Error: syntax error, unexpected FZ_ID, expecting ')' or ',' in line no. 5 Best Regards, Mohammed REZGUI 2014-03-12 20:35 GMT+01:00 Guido Tack <t...@gecode.org>: > Hi, > > you'd have to be a bit more specific than "does not work". Did the two > objective version work? In your code the second stage does not do a "prune" > when it's done like the first stage, so it will actually never switch to the > third stage. > > Output is rather limited at the moment, the code you're using was written as > a prototype for a paper, not a production quality system. > > Cheers, > Guido > > On 13 Mar 2014, at 6:21 am, Mohamed Rezgui <kyo.al...@gmail.com> wrote: > >> Dear Guido, >> >> I compile successfully searchcombinators with gecode 4.2.1 (I change >> with the appropriate API). >> I would like to know how can I set 3 ou several objectives (on >> lexicographic multi-objective) please ? >> I test with different approaches and it does not work. >> >> Other question how can I print pretty like output with trace_solution >> I found a bug with concatenation "*" ++ "\n" (it does not work). >> >> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% >> include "globals.mzn"; >> include "searchcombinators.mzn"; >> >> annotation lexicoMinimize3obj(var int: obj1, var int: obj2, var int: >> obj3, ann: s) = >> let { >> %% minimise => svar int: best1 = ub(obj1) >> %% maximize => svar int: best1 = lb(obj1) >> svar int: best1 = ub(obj1), >> >> %% minimise => svar int: best2 = ub(obj3) >> %% maximize => svar int: best2 = lb(obj3) >> svar int: best2 = ub(obj2), >> >> %% minimise => svar int: best2 = ub(obj3) >> %% maximize => svar int: best2 = lb(obj3) >> svar int: best3 = ub(obj3) >> } >> in ( >> >> >> portfolio([ >> >> %% minimise => obj1 < lv("best1") >> %% maximize => obj1 > lv("best1") >> and( >> post(obj1 < lv("best1"), and(s,assign(best1,obj1))), >> prune >> ), >> >> %% minimise => obj2 < lv("best2") >> %% maximize => obj2 > lv("best2") >> post(obj1=lv("best1"), >> post(obj2 < lv("best2"), and(s,assign(best2,obj2)))), >> >> >> %% minimise => obj3 < lv("best3") >> %% maximize => obj3 > lv("best3") >> post(obj2=lv("best2"), >> post(obj3 < lv("best3"), and(s,assign(best3,obj3)))) >> >> ]) >> >> ); >> >> % Variables >> var 0..10: obj1; >> var 1..10: obj2; >> var 2..10: obj3; >> >> %% call >> solve >> :: print([obj1, obj2, obj3], lexicoMinimize3obj(obj1, obj2, obj3, >> int_search([obj1, obj3, obj2], input_order, assign_ub) >> )) >> satisfy; >> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% >> >> >> Best Regards, >> Mohammed REZGUI > -- Cordialement, Mohamed REZGUI -- Cordialement, Mohamed REZGUI _______________________________________________ Gecode users mailing list users@gecode.org https://www.gecode.org/mailman/listinfo/gecode-users