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; }
public int getMostViolatedTime() { int t = -1; double lowestLevel = Double.MAX_VALUE; PSResourceProfile prof = res_.getLevels(); PSTimePointList times = prof.getTimes(); for (int i = 0; i < times.size(); i++) { double level = prof.getLowerBound(times.get(i)); if (level < lowestLevel) { lowestLevel = level; if (level < 0) t = times.get(i); } } if (t >= 0) RCPSPUtil.dbgout("MaxViolation for " + res_.getName() + " " + lowestLevel + " at time " + t); return t; }