Package solver

Examples of solver.Solver


    IntVar[] square1, square2, vars;
    Constraint[] ALLDIFFS;

    @Override
    public void createSolver() {
        solver = new Solver("Ortho Latin square " + m);
    }
View Full Code Here


    Constraint[] lights;
    Constraint alldiff;

    @Override
    public void createSolver() {
        solver = new Solver("Langford number");
    }
View Full Code Here

    IntVar[] vars;

    @Override
    public void createSolver() {
        solver = new Solver("Eq5");
    }
View Full Code Here

   * @param val
   * @return la liste des positions des reines.
   */
  public static List<Integer> dominationQueen(int n, int val) {
    System.out.println("Domination queen (Q" + n + ":" + val + ")");
    Solver pb = new Solver("Introductive Example");
    IntVar[] X = new IntVar[n * n];
    //une variable par case avec pour domaine la reine qui l attaque. (les reines sont ainsi designees par les valeurs, et les cases par les variables)
    for (int i = 0; i < X.length; i++) {
      X[i] = VariableFactory.enumerated("Q" + i, 1, n*n, pb);
    }
    IntVar N = VariableFactory.fixed(val,pb);
    pb.post(IntConstraintFactory.nvalues(X,N));
    //i appartient a la variable j ssi la case i est sur une ligne/colonne/diagonale de j
    for (int i = 1; i <= n; i++) {
      for (int j = 1; j <= n; j++) {
        //pour chaque case
        for (int k = 1; k <= n; k++) {
          for (int l = 1; l <= n; l++) {
            if (!(k == i || l == j || Math.abs(i - k) == Math.abs(j - l))) {
              pb.post(IntConstraintFactory.arithm(X[n * (i - 1) + j - 1], "!=", (k - 1) * n + l));
            }
          }
        }
      }
    }

    pb.set(IntStrategyFactory.lexico_LB(X));

    pb.findSolution();
    System.out.println("Back  : " + pb.getMeasures().getBackTrackCount());
    System.out.println("Time  : " + pb.getMeasures().getTimeCount()+" (sec)");

    List<Integer> values = new LinkedList<Integer>();
    if (pb.isFeasible() == ESat.TRUE) {
      for (int i = 0; i < n * n; i++) {
        if (!values.contains(X[i].getValue()))
          values.add(X[i].getValue());
      }
      System.out.print("Solution: ");
View Full Code Here

    IntVar total_cost;
    RealVar average;

  @Override
    public void createSolver() {
        solver = new Solver("Santa Claude");
    }
View Full Code Here

        new SetUnion().execute(args);
    }

    @Override
    public void createSolver() {
        solver = new Solver("set union sample");
    }
View Full Code Here

        new Partition().execute(args);
    }

    @Override
    public void createSolver() {
    solver = new Solver("set union sample");
    }
View Full Code Here

    IntVar[] itemCost;
    RealVar[] realitemCost;

    @Override
    public void createSolver() {
        solver = new Solver("Grocery");
    }
View Full Code Here


  public static void main(String[] args){

    // solver
    Solver solver = new Solver("Santa Claus");

    // input data
    final int n_kids = 3;
    final int n_gifts = 5;
    final int[] gift_price = new int[]{11,24,5,23,16};
    final int min_price = 5;
    final int max_price = 24;

    // FD variables
    final IntVar[] kid_gift = VariableFactory.enumeratedArray("g2k", n_kids, 0, n_gifts, solver);
    final IntVar[] kid_price = VariableFactory.boundedArray("p2k", n_kids, min_price, max_price, solver);
    final IntVar total_cost = VariableFactory.bounded("total cost", min_price*n_kids, max_price * n_kids, solver);

    // CD variable
    double precision = 1.e-4;
    final RealVar average = VariableFactory.real("average", min_price, max_price, precision, solver);
    final RealVar average_deviation = VariableFactory.real("average_deviation", 0, max_price, precision, solver);

    // continuous views of FD variables
    RealVar[] realViews = VariableFactory.real(kid_price, precision);

    // kids must have different gifts
        solver.post(IntConstraintFactory.alldifferent(kid_gift, "AC"));
    // associate each kid with his gift cost
        for (int i = 0; i < n_kids; i++) {
            solver.post(IntConstraintFactory.element(kid_price[i], gift_price, kid_gift[i]));
        }
    // compute total cost
        solver.post(IntConstraintFactory.sum(kid_price, total_cost));

    // compute average cost (i.e. average gift cost per kid)
    RealVar[] allRV = ArrayUtils.append(realViews,new RealVar[]{average,average_deviation});
    solver.post(new RealConstraint(
        "Avg/AvgDev",
        "({0}+{1}+{2})/3={3};(abs({0}-{3})+abs({1}-{3})+abs({2}-{3}))/3={4}",
        allRV)
    );

    // set search strategy (ABS)
    solver.set(IntStrategyFactory.minDom_LB(kid_gift));
    // displays resolution statistics
    SearchMonitorFactory.log(solver,true,false);
    // print each solution
        solver.plugMonitor(new IMonitorSolution() {
            @Override
            public void onSolution() {
                if (LoggerFactory.getLogger("solver").isInfoEnabled()) {
                    LoggerFactory.getLogger("solver").info("*******************");
                    for (int i = 0; i < n_kids; i++) {
                        LoggerFactory.getLogger("solver").info("Kids #{} has received the gift #{} at a cost of {} euros",
                                new Object[]{i, kid_gift[i].getValue(), kid_price[i].getValue()});
                    }
                    LoggerFactory.getLogger("solver").info("Total cost: {} euros", total_cost.getValue());
          LoggerFactory.getLogger("solver").info("Average: {} euros per kid", average.getLB());
          LoggerFactory.getLogger("solver").info("Average deviation: {} ", average_deviation.getLB());
                }
            }
        });
    // find optimal solution (Santa Claus is stingy)
    solver.findOptimalSolution(ResolutionPolicy.MINIMIZE,average_deviation, precision);
    // free IBEX structures from memory
    solver.getIbex().release();
    }
View Full Code Here

    int n = 4;
    IntVar[] vars;

    @Override
    public void createSolver() {
        solver = new Solver("NQueen");
    }
View Full Code Here

TOP

Related Classes of solver.Solver

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.