예제 #1
0
  public List<PSToken> getConflictSet(int t) {
    List<PSToken> conflictSet = new Vector<PSToken>();

    PSTokenList toks = res_.getTokens();
    for (int i = 0; i < toks.size(); i++) {
      PSToken tok = toks.get(i);
      if (RCPSPUtil.overlaps(tok, t)) conflictSet.add(tok);
    }

    List<PSToken> retval = new Vector<PSToken>();
    for (PSToken pred : conflictSet) {
      for (PSToken succ : conflictSet) {
        // Don't try to order tokens that can't be ordered
        int predEndLb = RCPSPUtil.getLb(pred.getEnd());
        int succStartUb = RCPSPUtil.getUb(pred.getStart());

        if ((pred != succ) && (predEndLb <= succStartUb)) {
          retval.add(pred);
          retval.add(succ);
        }
      }
    }

    return retval;
  }