Hi, I thought it would be this sort of a newbie problem... Thank you very much for the quick response!
Lucie Dne 13.1.2011 15:16, Mikael Zayenz Lagerkvist napsal(a): > Hi, > > Your model specifies that the values for resources could be anything (in > Gecode, that is approximately from -2 billion to +2 billion). Any > negative value for resources leads to a failure, but that is not > detected until it is tried since your model uses reified constraints. It > is very important to always think about the size of your initial domain. > > The crash you see is simply when your computer has run out of memory for > the search-tree you are generating. Try a few variants with the minimum > value for resources being 0, -10, -100, -1000 and run it in Gist (fz - > mode gist) to see the resulting search tree. > > Cheers, > Mikael > > 2011/1/13 Lucie Kučerová <[email protected] > <mailto:[email protected]>> > > Hello, > > I've created a simple MiniZinc model describing a planning domain & > problem. The issue is that although MiniZinc itself solves it instantly, > when I use Gecode's fz.exe on the generated FlatZinc model, the program > computes for a while and then crashes. > > The MiniZinc model in question is attached below. The only problematic > constraint is the last one from the succesor state constraints, without > it all works OK. Any ideas what is causing the issue? > > Thank you in advance > Lucie Kucerova > > > > % Constants > int: t = 2; > int: num_preds = 5; > int: num_actions = 6; > int: num_resc = 1; > > % Variables > array[0..t, 0..num_preds - 1] of var bool: predicates; > array[0..t - 1, 0..num_actions - 1] of var bool: actions; > array[0..t, 0..num_resc - 1] of var int: resources; > > % Constraints > > % Init > constraint predicates[0, 0]; > constraint not predicates[0, 1]; > constraint not predicates[0, 2]; > constraint not predicates[0, 3]; > constraint not predicates[0, 4]; > constraint resources[0, 0] = 0; > > % Goal > constraint predicates[t, 3]; > constraint predicates[t, 4]; > constraint resources[t, 0] = 100; > > % Preconditions > constraint forall (i in 0..t - 1) (actions[i, 0] -> predicates[i, 0]); > constraint forall (i in 0..t - 1) (actions[i, 1] -> predicates[i, 1]); > constraint forall (i in 0..t - 1) (actions[i, 2] -> predicates[i, 0]); > constraint forall (i in 0..t - 1) (actions[i, 3] -> predicates[i, 2]); > > % Succesor state > constraint forall (i in 1..t) (predicates[i, 0] <-> predicates[i - 1, 0] > /\ not actions[i - 1, 0] /\ not actions[i - 1, 2]); > constraint forall (i in 1..t) (predicates[i, 1] <-> actions[i - 1, 0] \/ > (predicates[i - 1, 1] /\ not actions[i - 1, 1])); > constraint forall (i in 1..t) (predicates[i, 2] <-> actions[i - 1, 1] \/ > actions[i - 1, 2] \/ (predicates[i - 1, 2] /\ not actions[i - 1, 3])); > constraint forall (i in 1..t) (predicates[i, 3] <-> actions[i - 1, 3] \/ > predicates[i - 1, 3]); > constraint forall (i in 1..t) (predicates[i, 4] <-> actions[i - 1, 4] \/ > predicates[i - 1, 4]); > constraint forall (i in 1..t) ((resources[i, 0] = resources[i - 1, 0]) > \/ ((resources[i, 0] = resources[i - 1, 0] + 100) /\ actions[i - 1, > 5])); > > % Incompatible predicates > constraint forall (i in 0..t) (bool2int(predicates[i, 0]) + > bool2int(predicates[i, 1]) + bool2int(predicates[i, 2]) + > bool2int(predicates[i, 3]) < 2); > > % Solution > solve satisfy; > > % Output > output > [ show(predicates[i,j]) ++ " " ++ if j == num_preds - 1 then "\n" else > " " endif | i in 0..t, j in 0..num_preds - 1] ++ > ["\n"] ++ > [ show(resources[i,j]) ++ " " ++ if j == num_resc - 1 then "\n" else " > " endif | i in 0..t, j in 0..num_resc - 1] ++ > ["\n"] ++ > [ show(actions[i,j]) ++ if j == num_actions - 1 then "\n" else " " > endif | i in 0..t - 1, j in 0..num_actions - 1]; > > _______________________________________________ > Gecode users mailing list > [email protected] <mailto:[email protected]> > https://www.gecode.org/mailman/listinfo/gecode-users > > > > > -- > Mikael Zayenz Lagerkvist, http://www.ict.kth.se/~zayenz/ > > ------------------------------------------------------------------------ > ------------------------------------------------------------------------ > > Zpráva neobsahuje viry. > Zkontrolováno AVG - www.avg.cz <http://www.avg.cz> > Verze: 10.0.1191 / Virová báze: 1435/3376 - Datum vydání: 12.1.2011 > _______________________________________________ Gecode users mailing list [email protected] https://www.gecode.org/mailman/listinfo/gecode-users
