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

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


        log += (new Date()).toString() + ": nincs elvegezheto munka\n";
        efs.setNotUsable(true);
        continue;
      }
    // step 4
      Task cTask = minimizeL(L, ID, l)// Chosen task
      log += (new Date()).toString() + ": " + cTask.getId() + ". munka beutemezese\n";
    // step 5: Registration
      Registrate(cTask, l.get(cTask), ID.get(cTask), M);
    }
   
    model.NormalizeOutputs();
View Full Code Here


  /** for step 2 */
  private Vector<Task> loadL(Vector<Task> M, Shift efs,
      HashMap<Task, Integer> l, HashMap<Task, Integer> k) {
    Vector<Task> L = new Vector<Task>();
    for (int i = 0; i < M.size(); i++) {
      Task task = M.get(i);
     
      if (task.isFinished() == false) {
        int max1 = efs.getDisengagingTime() +
          traffic.getDistance(efs.getActualPlace(),
          task.getPlace(), efs.getDisengagingTime());
        int max2 = task.getPrefferedTimeInterval().getBegin();
        k.put(task, (max1 > max2) ? max1 : max2);
        l.put(task, k.get(task) + task.getNormTime());
       
        int c = l.get(task) + traffic.getDistance(task.getPlace(),
            efs.getEndPlace(), l.get(task));
        int d = efs.getTime().getEnd() +  efs.getOvertime();
       
       
       
View Full Code Here

  /** for step 3 */
  private void sortLAndID(Shift efs, HashMap<Task, Vector<Shift>> ID,
      Vector<Task> L, HashMap<Task, Integer> l,
       HashMap<Task, Integer> k) {
    for (int i = 0; i < L.size(); i++) {
      Task task = L.get(i);
      int ig = task.getResourceDemandNum();
      if (ig == 1) {
        Vector<Shift> v = new Vector<Shift>();
        v.add(efs);
        ID.put(task, v);
      }
      if (ig > 1) {
        Vector<Shift> shiftVector = new Vector<Shift>();
        for (int j = 1; j <= model.getShiftContainer().getShiftNum(); j++) {
          Shift s = model.getShiftContainer().getShiftById(j);
          int a = k.get(task);
          int b = s.getDisengagingTime() + traffic.getDistance(s.getActualPlace(), task.getPlace(),
              s.getDisengagingTime());
          int c = l.get(task) + traffic.getDistance(task.getPlace(), s.getEndPlace(), l.get(task));
          int d = s.getTime().getEnd() + s.getOvertime();
          if (s.isNotUsable() == false && a >= b && c <= d) {
            shiftVector.add(s);
          }
        }
        if (shiftVector.size() < task.getResourceDemandNum())
        {
          L.remove(task);
          i--;
        }
        if (shiftVector.size() >= task.getResourceDemandNum())
        {
          minShiftVector(shiftVector, task, l.get(task));
          ID.put(task, shiftVector);
        }
      }
View Full Code Here

    }
  }
 
  /** for step 4 */
  private Task minimizeL(Vector<Task> L, HashMap<Task, Vector<Shift>> ID, HashMap<Task, Integer> l) {
    Task cTask = null;
    double min = Double.MAX_VALUE;
    for (int i = 0; i < L.size(); i++) {
      Task t = L.get(i);
      double x = delta(t, ID.get(t), l.get(t));
      if (x < min) {
        min = x;
        cTask = t;
      }
View Full Code Here

  }
 
  private int computeC_K() {
    int C_K = 0;
    for (int i = 1; i <= taskContainer.getTaskNum(); i++) {
      Task t = taskContainer.getTaskById(i);
      if (t.isFinished()) {
        if (t.getCompletionTime().getEnd() <= t.getPrefferedTimeInterval().getEnd()) {
          C_K += t.getDCost1() * (t.getCompletionTime().getBegin() -
              t.getPrefferedTimeInterval().getBegin());
        }
        else {
          C_K += t.getDCost2() + t.getDCost3() * (t.getCompletionTime().getEnd()
              - t.getPrefferedTimeInterval().getEnd());
        }
      }
    }
    return C_K;
  }
View Full Code Here

  public void solve() {
    model.setSolveType("greedy2");
    Vector<Task> L = model.getTaskContainer().getTaskVector();
    while (!L.isEmpty()) {
      // step 1
      Task cTask = firstTask(L);
      log += (new Date()).toString() + ": Utemezendo munka kivalasztva: " + cTask.getId() + "\n";
      if (hasMoreShifts() == false) {
        log += (new Date()).toString() + ": Nincs szabad eroforras, vege\n";
        return;
      }
      // step 2
      Vector<Shift> LM = loadLM(cTask);
      if (cTask.getResourceDemandNum() > LM.size()) {
        L.remove(cTask);
        log += (new Date()).toString() + ": nincs eleg kompatibilis muszak, munka kihagyva\n";
        continue;
      }
      log += (new Date()).toString() + ": kompatibilis muszakok kivalasztva\n";
View Full Code Here

  }

  /** for step 1 */
  private Task firstTask(Vector<Task> L) {
    int min = Integer.MAX_VALUE;
    Task cTask = null;    // chosen Task
    for (int i = 0; i < L.size(); i++) {
      Task t = L.get(i);
      if (t.getPrefferedTimeInterval().getBegin() < min) {
        min = t.getPrefferedTimeInterval().getBegin();
        cTask = t;
      }
    }
    return cTask;
  }
View Full Code Here

      Shift s = shiftContainer.getShiftById(i);
      if (s.getParent() == null) {
        Place actualPlace = s.getBeginPlace();
        int actualTime = s.getTime().getBegin();
        for (int j = 0; j < s.getAssignedTasks().size(); j++) {
          Task t = s.getAssignedTasks().get(j);
          int traveltime = trafficProperties.getDistance(actualPlace,
              t.getPlace(), actualTime);
          C_U += s.getResource().getFare() * traveltime;
          actualPlace = t.getPlace();
          actualTime = t.getCompletionTime().getEnd();
        }
        C_U += s.getResource().getFare() *
          trafficProperties.getDistance(actualPlace, s.getEndPlace(),
              actualTime);
      }
View Full Code Here

      if (s.getParent() == null) {
        Place actualPlace = s.getBeginPlace();
        int actualTime = s.getTime().getBegin();
        int worktime = 0;
        for (int j = 0; j < s.getAssignedTasks().size(); j++) {
          Task t = s.getAssignedTasks().get(j);
          int time = t.getCompletionTime().getEnd() -
              t.getCompletionTime().getBegin()
          + trafficProperties.getDistance(actualPlace, t.getPlace(), actualTime);
          worktime += time;
          actualTime = t.getCompletionTime().getEnd();
          actualPlace = t.getPlace();
        }
        worktime += trafficProperties.getDistance(actualPlace, s.getEndPlace(), actualTime);
       
        int time;
        if (s.getAssignedTasks().isEmpty()) {
          time = s.getTime().getEnd() - s.getTime().getBegin();
        }
        else {
          Task t = s.getAssignedTasks().lastElement();
          int max1 = t.getCompletionTime().getEnd() + trafficProperties.getDistance(t.getPlace(),
              s.getEndPlace(), t.getCompletionTime().getEnd());
          int max2 = s.getTime().getEnd();
          int max = (max1 > max2) ? max1 : max2;
          time = max - s.getTime().getBegin();
        }
        if (time < worktime) {
View Full Code Here

  private int computeC_T() {
    int C_T = 0;
    for (int i = 1; i <= shiftContainer.getShiftNum(); i++) {
      Shift s = shiftContainer.getShiftById(i);
      if (s.getParent() == null && !s.getAssignedTasks().isEmpty()) {
        Task lastTask = s.getAssignedTasks().lastElement();
        int overtime = lastTask.getCompletionTime().getEnd() - s.getTime().getEnd();
        if (overtime > 0) {
          C_T += overtime * s.getOvertimeCost();
        }
      }
    }
 
View Full Code Here

TOP

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

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.