diff --git a/parsers/src/main/bash/xcsp3-exec b/parsers/src/main/bash/xcsp3-exec index f2303eb65f..4a8bf1c248 100755 --- a/parsers/src/main/bash/xcsp3-exec +++ b/parsers/src/main/bash/xcsp3-exec @@ -1,12 +1,12 @@ #!/bin/sh -NB_NODES=1 TIME_LIMIT=500 MEM_LIMIT=4000 -DIR=./ +LVL="COMPET" +DIR=/Users/kyzrsoze/Sources/CHOCO/continuous-branch/parsers/target/ TDIR=./ SEED=0 -JAR_NAME=choco-parsers-light-4.10.9-SNAPSHOT.jar +JAR_NAME=choco-parsers-4.10.15-SNAPSHOT-light.jar CHOCO_JAR=${DIR}/${JAR_NAME} usage="\ @@ -19,6 +19,10 @@ OPTIONS: -h, --help Display this message. + -a + This causes the solver to search for, and output all solutions. + When this option is not given the solver should search for, and output the first solution or the best known one. + -dir Stands for the directory where the uploaded files reside. The default is ${DIR}. @@ -68,6 +72,8 @@ then exit 1 fi +ARGS="" + while test $# -gt 0 do case "$1" in @@ -77,6 +83,10 @@ do exit 0 ;; + -a) + ARGS="$ARGS -a" + ;; + -dir) DIR="$2" shift @@ -88,7 +98,7 @@ do ;; -p) - NB_NODES="$2" + ARGS="$ARGS -p $2" shift ;; @@ -132,10 +142,10 @@ do done FILE="$1" -ARGS=" -limit=[${TIME_LIMIT}s] -p $NB_NODES -f -varh DOMWDEG -valh BMIN -last -restarts [luby,500,5000] -lc 1" + +ARGS="$ARGS -limit=[${TIME_LIMIT}s] -f -varh DOMWDEG -valsel [MIN,true,32,true] -restarts [luby,500,5000,true] -lc 1" CMD="java -XX:+UseSerialGC -server -Xss128M -Xmx${MEM_LIMIT}m -cp .:${CHOCO_JAR} org.chocosolver.parser.xcsp.ChocoXCSP \"${FILE}\" ${ARGS}" -echo "c $CMD" eval ${CMD} diff --git a/parsers/src/main/java/org/chocosolver/parser/xcsp/XCSP.java b/parsers/src/main/java/org/chocosolver/parser/xcsp/XCSP.java index 18e6093f4c..7ce46240a7 100644 --- a/parsers/src/main/java/org/chocosolver/parser/xcsp/XCSP.java +++ b/parsers/src/main/java/org/chocosolver/parser/xcsp/XCSP.java @@ -70,7 +70,7 @@ public Thread actionOnKill() { public void createSolver() { super.createSolver(); if (level.isLoggable(Level.COMPET)) { - System.out.println("c Choco 231102"); + System.out.println("c Choco 240517"); } String iname = Paths.get(instance).getFileName().toString(); parsers = new XCSPParser[nb_cores]; diff --git a/parsers/src/main/java/org/chocosolver/parser/xcsp/XCSPParser.java b/parsers/src/main/java/org/chocosolver/parser/xcsp/XCSPParser.java index f5c75c8fdb..0248e662ba 100644 --- a/parsers/src/main/java/org/chocosolver/parser/xcsp/XCSPParser.java +++ b/parsers/src/main/java/org/chocosolver/parser/xcsp/XCSPParser.java @@ -1357,6 +1357,14 @@ public void buildCtrOrdered(String id, XVariables.XVarInteger[] list, XVariables lexCtr(vectors, operator); } + @Override + public void buildCtrLex(String id, XVariables.XVarInteger[] list, int[] limit, Types.TypeOperatorRel operator) { + IntVar[][] scopes = new IntVar[2][]; + scopes[0] = vars(list); + scopes[1] = Arrays.stream(limit).mapToObj(l -> model.intVar(l)).toArray(IntVar[]::new); + lexCtr(scopes, operator); + } + @Override public void buildCtrLex(String id, XVariables.XVarInteger[][] lists, Types.TypeOperatorRel operator) { lexCtr(vars(lists), operator);