Package util.objects.setDataStructures

Examples of util.objects.setDataStructures.ISet


    @Override
    public ESat isEntailed() {
        if (!isCompletelyInstantiated()) {
            return ESat.UNDEFINED;
        }
        ISet tmp = SetFactory.makeSwap(n, false);
        for (int i = 0; i < n; i++) {
            if (circuit(tmp, i)) {
                return ESat.FALSE;
            }
        }
View Full Code Here


    private int augmentPath_BFS(int root) {
        in.clear();
        int indexFirst = 0, indexLast = 0;
        fifo[indexLast++] = root;
        int x, y;
        ISet succs;
        while (indexFirst != indexLast) {
            x = fifo[indexFirst++];
            succs = digraph.getSuccOf(x);
            for (y = succs.getFirstElement(); y >= 0; y = succs.getNextElement()) {
                if (!in.get(y)) {
                    father[y] = x;
                    fifo[indexLast++] = y;
                    in.set(y);
                    if (free.get(y)) {
View Full Code Here

  }

  protected void filterAround(int taskIndex) throws ContradictionException {
    tasks.clear();
    tasks.add(taskIndex);
    ISet env = g.getNeighOf(taskIndex);
    for (int i = env.getFirstElement(); i >= 0; i = env.getNextElement()) {
      if (disjoint(taskIndex, i)) {
//        g.removeEdge(taskIndex, i);
      } else {
        tasks.add(i);
      }
View Full Code Here

    private int augmentPath_BFS(int root) {
        in.clear();
        int indexFirst = 0, indexLast = 0;
        fifo[indexLast++] = root;
        int x, y;
        ISet succs;
        while (indexFirst != indexLast) {
            x = fifo[indexFirst++];
            succs = digraph.getSuccOf(x);
            for (y = succs.getFirstElement(); y >= 0; y = succs.getNextElement()) {
                if (!in.get(y)) {
                    father[y] = x;
                    fifo[indexLast++] = y;
                    in.set(y);
                    if (free.get(y)) {
View Full Code Here

    }

  @Override
  public void propagate(int varIdx, int mask) throws ContradictionException {
    int v = varIdx % n;
    ISet s = overlappingBoxes.getNeighOf(v);
    for (int i = s.getFirstElement(); i >= 0; i = s.getNextElement()) {
      if (!mayOverlap(v, i)) {
        overlappingBoxes.removeEdge(v, i);
      }
    }
    if (!boxesToCompute.contain(v)) {
View Full Code Here

        return (vars[i + off].getLB() >= vars[j + off].getUB() + vars[j + off + 2 * n].getUB())
                || (vars[j + off].getLB() >= vars[i + off].getUB() + vars[i + off + 2 * n].getUB());
    }

    protected void filterFromBox(int i) throws ContradictionException {
        ISet s = overlappingBoxes.getNeighOf(i);
        // check energy
        int xm = vars[i].getLB();
        int xM = vars[i].getUB() + vars[i + 2 * n].getUB();
        int ym = vars[i + n].getLB();
        int yM = vars[i + n].getUB() + vars[i + 3 * n].getUB();
        int am = vars[i + 2 * n].getLB() * vars[i + 3 * n].getLB();
        for (int j = s.getFirstElement(); j >= 0; j = s.getNextElement()) {
            xm = Math.min(xm, vars[j].getLB());
            xM = Math.max(xM, vars[j].getUB() + vars[j + 2 * n].getUB());
            ym = Math.min(ym, vars[j + n].getLB());
            yM = Math.max(yM, vars[j + n].getUB() + vars[j + 3 * n].getUB());
            am += vars[j + 2 * n].getLB() * vars[j + 3 * n].getLB();
            if (am > (xM - xm) * (yM - ym)) {
                contradiction(vars[i], "");
            }
        }
        // mandatory part based filtering
        boolean horizontal = true;
        boolean vertical = false;
        for (int j = s.getFirstElement(); j >= 0; j = s.getNextElement()) {
            if (doOverlap(i, j, horizontal)) {
                filter(i, j, vertical);
            }
            if (doOverlap(i, j, vertical)) {
                filter(i, j, horizontal);
View Full Code Here

    int n_R = SCCfinder.getNbSCC();
    for (int i = 0; i < n_R; i++) {
      G_R.getNodes().add(i);
    }
    sccOf = SCCfinder.getNodesSCC();
    ISet succs;
    int x;
    for (int i = 0; i < n; i++) {
      x = sccOf[i];
      succs = support.getSuccOf(i);
      for (int j = succs.getFirstElement(); j >= 0; j = succs.getNextElement()) {
        if (x != sccOf[j]) {
          G_R.addArc(x, sccOf[j]);
          mates[x].add((i + 1) * n2 + j);
        }
      }
View Full Code Here

    }

    @Override
    public boolean removeNode(int x) {
        if (nodes.remove(x)) {
            ISet nei = getNeighOf(x);
            for (int j = nei.getFirstElement(); j >= 0; j = nei.getNextElement()) {
                neighbors[j].remove(x);
            }
            neighbors[x].clear();
            return true;
        }
View Full Code Here

    }
    if (node == last) {
      return 1;
    }
    int next = -1;
    ISet succs = G_R.getSuccOf(node);
    for (int x = succs.getFirstElement(); x >= 0; x = succs.getNextElement()) {
      if (G_R.getPredOf(x).getSize() == 1) {
        if (next != -1) {
          return 0;
        }
        next = x;
      } else {
        G_R.removeArc(node, x);
      }
    }
    succs = mates[node];
    int from, to;
    for (int e = succs.getFirstElement(); e >= 0; e = succs.getNextElement()) {
      to = e % n2;
      if (sccOf[to] != next) {
        from = e / n2 - 1;
        if(to==n){
          to=source;
View Full Code Here

    int n_R = SCCfinder.getNbSCC();
    for (int i = 0; i < n_R; i++) {
      G_R.getNodes().add(i);
    }
    sccOf = SCCfinder.getNodesSCC();
    ISet succs;
    int x;
    for (int i = 0; i < n; i++) {
      x = sccOf[i];
      if(!vars[i].contains(i+offSet)){
        mandSCC.set(x);
      }
      succs = support.getSuccOf(i);
      for (int j = succs.getFirstElement(); j >= 0; j = succs.getNextElement()) {
        if (x != sccOf[j]) {
          G_R.addArc(x, sccOf[j]);
          mates[x].add((i + 1) * n2 + j);
        }
      }
View Full Code Here

TOP

Related Classes of util.objects.setDataStructures.ISet

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.