Package hu.u_szeged.nbo.geometria.element

Examples of hu.u_szeged.nbo.geometria.element.GeomTeam


   */
  boolean elvegezhetoEMegAMunka(GeomWork work){
    int tVesszoJ = work.getIdoablak().getY();
    if(tVesszoJ-work.getVegrehajtasiIdo() < tau) return false;
    for(int i=1; i<=E.gmMeret(); i++){
      GeomTeam team = (GeomTeam)E.gmIedikElem(i);
      if(parosithatokTipusSzerint(team, work) &&
        (alfa(team, work) + work.getVegrehajtasiIdo() <= min(team.getIdoablak().getY(), tVesszoJ))){
        return true;
      }
    }
    return false;
  }
View Full Code Here


   * Deletes the unusable teams from E'.
   *
   */
  void f4(){
    for(int i=1; i<=E.gmMeret(); i++){
      GeomTeam team = (GeomTeam)E.gmIedikElem(i);
      if((team.getIdoablak().getY() - team.getIdoablak().getX()) < minVegrehajtasiIdo ||
        !azEroforrashozMegRendelhetoMunka(team) || tau>=T){
        E.remove(team);
        Ekalap.gmBeszur(team);
        team.setFoglalt(true);
        team.lezar();
        i--;
      }else if(team.getIdoablak().getX() <= tau){
        team.setFoglalt(false);
      }
    }
  }
View Full Code Here

   */
  void f7(){
    Evesszo.clear();
//    vaar("E' meret: "+Evesszo.gmMeret());
    for(int i=1; i<=E.gmMeret(); i++){
      GeomTeam team = (GeomTeam)E.gmIedikElem(i);
      if(!team.isFoglalt() && team.getIdoablak().getX() <= tau + minVegrehajtasiIdo){
        Evesszo.gmBeszur(team);
      }
    }
//    vaar("E' meret: "+Evesszo.gmMeret());
  }
View Full Code Here

      int z = GeomResources.getInstance().getXPercent() * (Mvesszo.gmMeret()-Evesszo.gmMeret()) / 100;
      for(int j=Mvesszo.gmMeret(); j>z+Evesszo.gmMeret(); j--){
        Mvesszo.gmTorol(j);
      }
      for(int j=0; j<z; j++){
        Evesszo.gmBeszur(new GeomTeam());
      }
    }
    if(logger.isEvesszoEnabled()){
      System.out.println("E':");
      Evesszo.kiir();
View Full Code Here

   * @return
   */
  private int legkozelebbiEroforrasTavolsaga(GeomWork work) {
    int tavolsag = -1;
    for(int i=1; i<=Evesszo.gmMeret(); i++){
      GeomTeam team = (GeomTeam)Evesszo.gmIedikElem(i);
      if(parosithatokTipusSzerint(team, work)){
        int ujtavolsag = resources.matrixRoadCost.getElementByIndex(team.getActualPlace().getId(), work.getPlace().getId());
        if(ujtavolsag < tavolsag || tavolsag==-1){
          tavolsag = ujtavolsag;
          if(tavolsag==0) break;
        }
      }
View Full Code Here

  void f10(){
    W = -1;
    int szumma = 0;
    c = new GeomIntMatrix(Mvesszo.gmMeret());
    for(int i=1; i<=c.getMeret().getX(); i++){
      GeomTeam team = (GeomTeam)Evesszo.gmIedikElem(i);
      for(int j=1; j<=c.getMeret().getY(); j++){
        GeomWork work = (GeomWork)Mvesszo.gmIedikElem(j);
       
        if(team.isFiktiv() || work.isFiktiv()){
          c.setElement(i, j, 0);
        }else if(!parosithatokTipusSzerint(team, work)){
          c.setElement(i, j, W);
        }else{
          int ars = resources.matrixRoadCost.getElementByIndex(team.getActualPlace().getId(),work.getPlace().getId());
          int asp = resources.matrixRoadCost.getElementByIndex(work.getPlace().getId(), team.getBasicPlace().getId());
          double additivErtek = K * 100 * resources.getMaxRoadCost() * work.getRendezesiSuly();
          double vesztesegErtek = L * (GeomWork.getMaxEgysegnyiVeszteseg() - (double)work.getEgysegnyiVeszteseg() / (ars+1));
         
          int vi1 = team.getIdoablak().getX();
          int vi2 = team.getIdoablak().getY();
          int tj1 = work.getIdoablak().getX();
          int tj2 = work.getIdoablak().getY();
          int tetaj = work.getVegrehajtasiIdo();
          double ertek = W;
         
          if(max(vi1 + ars, tj1) + tetaj <= min(tj2, vi2, vi2+hp-asp)){
            if(team.getActualPlace() == work.getPlace()){
              if(tj1 <= vi1){
                ertek = 0;
              }else{
                ertek = (double)(tj1 - vi1) / (resources.getMaxRoadCost()+1);
              }
            }else if(KAP(team.getActualPlace().getId(), team.getType()) - KAP(work.getPlace().getId(), team.getType()) > epszilon && vi2 - vi1 - ars >= kappa){
              if(tj1 <= vi1 + ars){
                ertek = ars;
              }else if(vi1 + ars < tj1){
                ertek = ars * (lambda + (double)(tj1 - vi1 - ars) / (tj1 - vi1));
              }
View Full Code Here

      System.out.println();
      System.out.println("Utemezes:");
      result+="Utemezes:\n";
      iter = res.getTeams().iterator();
      while(iter.hasNext()){
        GeomTeam team = (GeomTeam)iter.next();
        GeomPlace place = team.getBasicPlace();
        int lefoglaltIdo = 0;
        write(buf,"");
        result+="\n";
        write(buf,"E" + team.getId()+" ("+place.getName()+"):");
        result+="E" + team.getId()+" ("+place.getName()+"):\n";
        for(int j=1; j<=team.getHozzarendeltMunkak().gmMeret(); j++){
          GeomPack pack = (GeomPack)team.getHozzarendeltMunkak().gmIedikElem(j);
          GeomPlace newplace = pack.getWork().getPlace();
          if(!newplace.equals(place)){
            int utazasiKoltseg = res.matrixRoadCost.getElementByIndex(place.getId(), newplace.getId());
            write(buf,"    utazas: " + newplace.getName() + " (ktg:"+ utazasiKoltseg +")");
            result+= "    utazas: " + newplace.getName() + " (ktg:"+ utazasiKoltseg +")\n";
            lefoglaltIdo += utazasiKoltseg;
            place = newplace;
          }
          lefoglaltIdo += pack.getEnd()-pack.getBegin();
          write(buf,"  M" + pack.getWork().getId()+"  [" + pack.getBegin() + "-" + pack.getEnd() + "]");
          result+= "  M" + pack.getWork().getId()+"  [" + pack.getBegin() + "-" + pack.getEnd() + "]\n";
        }
        int teljesIdo = team.getIdoablak().getY()-team.getIdoablakEredetiKezdete();
        szummaEroforrasTeljesIdo += teljesIdo;
        szummaEroforrasLefoglaltIdo += lefoglaltIdo;
        int kihasznaltsag = (100*lefoglaltIdo) / teljesIdo;
        write(buf,"  kihasznaltsag: " + kihasznaltsag+"% (" + lefoglaltIdo+"/"+teljesIdo+")");
        result+= "  kihasznaltsag: " + kihasznaltsag+"% (" + lefoglaltIdo+"/"+teljesIdo+")\n";
View Full Code Here

    for(int j=1; j<=megoldas.getMeret().getY(); j++){
      GeomWork work = (GeomWork)Mvesszo.gmIedikElem(j);
      if(!work.isFiktiv()){
        for(int i=1; i<=megoldas.getMeret().getX(); i++){
          if(megoldas.getElement(i, j)==1){
            GeomTeam team = (GeomTeam)Evesszo.gmIedikElem(i);
            if(!team.isFiktiv() && c.getElement(i,j)<W){
              vanEnemFiktivPar = true;
              hozzarendeles(team, work);
            }
          }
        }
View Full Code Here

        ((GeomHalmaz)Kt.get(work.getPlace())).gmBeszur(work);
        ktr.setElementAddByIndex(work.getPlace().getId(), work.getType(), work.getVegrehajtasiIdo());
      }
    }
    for(int i=1; i<=Evesszo.gmMeret(); i++){
      GeomTeam team = (GeomTeam)Evesszo.gmIedikElem(i);
      if(team.getIdoablak().getX() <= gamma*(lepesszam+1)){
        ((GeomHalmaz)Lt.get(team.getBasicPlace())).gmBeszur(team);
        ltr.setElementAddByIndex(team.getBasicPlace().getId(), team.getType(), (min(gamma*(lepesszam+1), team.getIdoablak().getY())-team.getIdoablak().getX()));
      }
    }
   
    Iterator iter = resources.getPlaces().iterator();
    while(iter.hasNext()){
      int placeId = ((GeomPlace)iter.next()).getId();
      int delta = ltr.getSorVektorByIndex(placeId).elemekOsszege() - ktr.getSorVektorByIndex(placeId).elemekOsszege();
      if(delta > 0){  /// 8/a
        GeomIntMatrix tiltas = new GeomIntMatrix(eroforrasTipusokSzama, munkaTipusokSzama+1);
        for(int i=1; i<=eroforrasTipusokSzama; i++){
          for(int j=1; j<=munkaTipusokSzama; j++)
            tiltas.setElement(i, j, 1-resources.matrixTypePair.getElement(i,j));
          tiltas.setElement(i, munkaTipusokSzama+1, 0);
        }
        GeomSzallitasiFeladat sz = new GeomSzallitasiFeladat();
        GeomIntVektor a = ltr.getSorVektorByIndex(placeId);
        GeomIntVektor b = ktr.getSorVektorByIndex(placeId);
        b.addElement(delta);
        GeomIntMatrix szallitas = sz.solve(tiltas, a, b);
        if(szallitas.elemekSzorzatOsszege(tiltas)!=0){
          for(int j=1; j<=tiltas.getMeret().getY(); j++){
            int nemTiltottElemSora = 0;
            for(int i=1; i<=tiltas.getMeret().getX(); i++){
              if(tiltas.getElement(i,j)==0 && nemTiltottElemSora==0){
                nemTiltottElemSora = i;
              }
              if(tiltas.getElement(i,j)*szallitas.getElement(i,j)>0){
                if(nemTiltottElemSora==0){
                  for(int l=i+1; l<=tiltas.getMeret().getX(); l++){
                    if(tiltas.getElement(l,j)==0 && nemTiltottElemSora==0){
                      nemTiltottElemSora = l;
                      break;
                    }
                  }
                  if(nemTiltottElemSora==0) throw new GeomKAPMatrixFillException();
                }
                int diff = szallitas.getElement(i,j);
                szallitas.setElementAdd(nemTiltottElemSora, szallitas.getMeret().getY(), -diff);
                szallitas.setElementAdd(i, szallitas.getMeret().getY(), diff);
              }
            }
          }
         
        }
        KAPij.setSorVektorByIndex(placeId, szallitas.getOszlopVektor(szallitas.getMeret().getY()));
      }else{      /// 8/b
        delta = 0-delta;
        GeomTeam team = new GeomTeam()//fiktiv
        GeomIntMatrix tiltas = new GeomIntMatrix(eroforrasTipusokSzama+1, munkaTipusokSzama);
        for(int i=1; i<=eroforrasTipusokSzama; i++){
          for(int j=1; j<=munkaTipusokSzama; j++)
            tiltas.setElement(i, j, 1-resources.matrixTypePair.getElement(i,j));
        }
View Full Code Here

TOP

Related Classes of hu.u_szeged.nbo.geometria.element.GeomTeam

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.