Package hu.u_szeged.nbo.res_alloc.model.type

Examples of hu.u_szeged.nbo.res_alloc.model.type.Shift


      IDj.addAll(minShiftVector(LM, cTask, count));
      LM.removeAll(IDj);
     
      lj = Integer.MIN_VALUE;
      for (int i = 0; i < IDj.size(); i++) {
        Shift s = IDj.get(i);
        int max1 = s.getDisengagingTime() + traffic.getDistance(
            s.getActualPlace(), cTask.getPlace(), s.getDisengagingTime());
        int max2 = cTask.getPrefferedTimeInterval().getBegin();

        int l = (((max1 > max2) ? max1 : max2) + cTask.getNormTime());
        if (l > lj)
          lj = l;
      }
     
      removed = false;
      for (int i = 0; i < IDj.size(); i++) {
        Shift s = IDj.get(i);
        if (lj + traffic.getDistance(cTask.getPlace(), s.getEndPlace(), lj)
            > s.getTime().getEnd() + s.getOvertime()) {
          IDj.remove(s);
          LM.remove(s);
          removed = true;
          i--;
        }
View Full Code Here


    r.addAll(v);
    while (r.size() > num) {
      int maxIndex = -1;
      int max = Integer.MIN_VALUE;
      for (int i = 0; i < r.size(); i++) {
        Shift s = r.get(i);
        int x = s.getDisengagingTime() + traffic.getDistance(s.getActualPlace(), t.getPlace(), s.getDisengagingTime());
        if (x > max) {
          max = x;
          maxIndex = i;
        }
      }
View Full Code Here

 
  /** for step 2 */
  private Vector<Shift> loadLM(Task cTask) {
    Vector<Shift> LM = new Vector<Shift>();
    for (int i = 1; i <= model.getShiftContainer().getShiftNum(); i++) {
      Shift s = model.getShiftContainer().getShiftById(i);
      if (s.isNotUsable() == false) {
        int max1 = s.getDisengagingTime() +
          traffic.getDistance(s.getActualPlace(), cTask.getPlace(),
          s.getDisengagingTime());
        int max2 = cTask.getPrefferedTimeInterval().getBegin();
        lj = ((max1 > max2) ? max1 : max2) + cTask.getNormTime();
        if (lj + traffic.getDistance(cTask.getPlace(), s.getEndPlace(), lj)
          <= s.getTime().getEnd() + s.getOvertime()) {
          LM.add(s);
        }
      }
    }
    return LM;   
View Full Code Here

//      }
//      System.out.println("");
     
      lj = Integer.MIN_VALUE;  // == t(Gk)
      for (int i = 0; i < Gk.size(); i++) {
        Shift s = Gk.get(i);
        int max1 = s.getDisengagingTime() + traffic.getDistance(
            s.getActualPlace(), cTask.getPlace(), s.getDisengagingTime());
        int max2 = cTask.getPrefferedTimeInterval().getBegin();

        int l = (((max1 > max2) ? max1 : max2) + cTask.getNormTime());
        if (l > lj)
          lj = l;
      }
     
      boolean compatible = true;
      for (int i = 0; i < Gk.size(); i++) {
        Shift s = Gk.get(i);
        if (lj + traffic.getDistance(cTask.getPlace(), s.getEndPlace(), lj)
            > s.getTime().getEnd() + s.getOvertime()) {
          compatible = false;
        }
      }
      if (compatible == true) {
        double delta = delta(cTask, Gk, lj);
        if (delta < minDelta) {
          minDelta = delta;
          IDj.clear();
          IDj.addAll(Gk);
        }
      }
      Gk = nextGk(Gk, LM);
    }
    log += (new Date()).toString() + ": optimum: " + minDelta + "\n";
    // recompute lj
    lj = Integer.MIN_VALUE;
    for (int i = 0; i < IDj.size(); i++) {
      Shift s = IDj.get(i);
      int max1 = s.getDisengagingTime() + traffic.getDistance(
          s.getActualPlace(), cTask.getPlace(), s.getDisengagingTime());
      int max2 = cTask.getPrefferedTimeInterval().getBegin();

      int l = (((max1 > max2) ? max1 : max2) + cTask.getNormTime());
      if (l > lj)
        lj = l;
View Full Code Here

    nGk.addAll(Gk);
   
    boolean notvalid = true;
    while (notvalid) {
      for (int i = nGk.size()-1; i >= 0; i--) {
        Shift s = nGk.get(i);
        if (s.getId() == LM.lastElement().getId()) {
          if (i == 0) {
            return null;
          }
          int which = LM.indexOf(nGk.get(i-1));
            nGk.set(i, LM.get(which));
View Full Code Here

    this.model = model;
    this.traffic = model.getTrafficProperties();
    delta_type = delta;
   
    for (int i = 1; i <= model.getShiftContainer().getShiftNum(); i++) {
      Shift s = model.getShiftContainer().getShiftById(i);
      s.setActualPlace(s.getBeginPlace());
      s.getChilds().clear();
      s.setDisengagingTime(s.getTime().getBegin());
      s.setNotUsable(false);
    }
   
    for (int i = 1; i <= model.getTaskContainer().getTaskNum(); i++) {
      Task t = model.getTaskContainer().getTaskById(i);
      t.setFinished(false);
View Full Code Here

    cTask.setAssignedShifts(IDj);
    cTask.setFinished(true);
    M.remove(cTask);
  // step 5/A
    if (cTask.getResourceDemandNum() == 1) {
      Shift efs = IDj.get(0);
      efs.addAssignedTask(cTask);
      efs.setDisengagingTime(l);
      efs.setActualPlace(cTask.getPlace());
    }
  // step 5/B
    if (cTask.getResourceDemandNum() > 1) {
      for (int i = 0; i < IDj.size(); i++) {
        Shift shift = IDj.get(i);
        Shift al = new Shift();
        al.setActualPlace(cTask.getPlace());
        al.setBeginPlace(shift.getActualPlace());
        al.setStandCost(shift.getStandCost());
        al.setEndPlace(cTask.getPlace());
        al.setId(model.getShiftContainer().getShiftNum()+1);
        al.setResource(shift.getResource());
        al.setTime(new TimeInterval(shift.getDisengagingTime(), (l - cTask.getNormTime())));
        al.setParent(shift);
       
        Shift fel = new Shift();
        fel.setBeginPlace(cTask.getPlace());
        fel.setStandCost(shift.getStandCost());
        fel.setEndPlace(shift.getEndPlace());
        fel.setId(model.getShiftContainer().getShiftNum()+2);
        fel.setOvertime(shift.getOvertime());
        fel.setOvertimeCost(shift.getOvertimeCost());
        fel.setResource(shift.getResource());
        fel.setTime(new TimeInterval(l, shift.getTime().getEnd()));
        fel.setParent(shift);
       
        model.getShiftContainer().putShift(al.getId(), al);
        model.getShiftContainer().putShift(fel.getId(), fel);
       
        shift.addAssignedTask(cTask);
        shift.setNotUsable(true);
        shift.getChilds().add(al);
        shift.getChilds().add(fel);
View Full Code Here

      tokenizer.nextToken();
      tokenizer.nextToken();
      tokenizer.nextToken();
     
      while (tokenizer.hasMoreTokens()) {
        Shift shift = new Shift();
        int id = Integer.parseInt(tokenizer.nextToken());
        shift.setId(id);
        int res_id = Integer.parseInt(tokenizer.nextToken());
        shift.setResource(model.getResourceContainer().getResourceById(res_id));
        int time_begin = Integer.parseInt(tokenizer.nextToken());
        int time_end   = Integer.parseInt(tokenizer.nextToken());
        shift.setTime(new TimeInterval(time_begin, time_end));
        int placeid_begin = Integer.parseInt(tokenizer.nextToken());
        shift.setBeginPlace(model.getPlaceContainer().getPlaceById(placeid_begin));
        int placeid_end   = Integer.parseInt(tokenizer.nextToken());
        shift.setEndPlace(model.getPlaceContainer().getPlaceById(placeid_end));
        int overtime = Integer.parseInt(tokenizer.nextToken());
        shift.setOvertime(overtime);
        int overtime_cost = Integer.parseInt(tokenizer.nextToken());
        shift.setOvertimeCost(overtime_cost);
        int cost = Integer.parseInt(tokenizer.nextToken());
        shift.setStandCost(cost);
       
        shifts.putShift(id, shift);
        model.getResourceContainer().getResourceById(res_id).putShift(id, shift);
      }
     
View Full Code Here

TOP

Related Classes of hu.u_szeged.nbo.res_alloc.model.type.Shift

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.