public override int WybPodgrupy(processCall przyjmowane) { bool rezerwacja = (_arbWiazka.aRez == reservationAlgorithm.R3); int lPropPas = 0; for (int i = 0; i < _arbWiazka.K; i++) { if (_arbWiazka.sPodgr[i].SprDostZas(przyjmowane.t, rezerwacja)) { lPropPas += _arbWiazka.sPodgr[i].lwPJP; } } if (lPropPas > 0) { int wybLos = (int)(losGen.NextDouble() * lPropPas); for (int wynik = 0; wynik < _arbWiazka.K; wynik++) { if (_arbWiazka.sPodgr[wynik].SprDostZas(przyjmowane.t, rezerwacja)) { if (wybLos <= _arbWiazka.sPodgr[wynik].lwPJP) { _ostWybrana = wynik; return(wynik); } wybLos -= _arbWiazka.sPodgr[wynik].lwPJP; } } return(-2); //błąd arbitra } return(-1); }
public bool DodajZgl(processCall dodawane, bool zlStatystyki) { if ((aRez == reservationAlgorithm.R1_R2) && (dodawane.klasaZgl.uprzyw == false)) { if (_n > _q) { if (zlStatystyki) { dodawane.klasaZgl.klasaRuchu.sigmyStanow.StrZgl(_n); } return(false); } } int wybrPodgr = arbWybPodgr.WybPodgrupy(dodawane); if (wybrPodgr >= 0) { if (zlStatystyki) { dodawane.klasaZgl.klasaRuchu.sigmyStanow.PrzyjZgl(_n); } dodawane.zajeteZasoby = dodawane.t; _n += dodawane.zajeteZasoby; //zwiększanie liczby zaj PJP sPodgr[wybrPodgr].ZajmijZasoby(dodawane.zajeteZasoby); dodawane.zajPodgr = sPodgr[wybrPodgr]; return(true); } if (zlStatystyki) { dodawane.klasaZgl.klasaRuchu.sigmyStanow.StrZgl(_n); } return(false); }
public override int WybPodgrupy(processCall przyjmowane) { bool rezerwacja = (_arbWiazka.aRez == reservationAlgorithm.R3); for (int wynik = 0; wynik < _arbWiazka.K; wynik++) { if (_arbWiazka.sPodgr[wynik].SprDostZas(przyjmowane.t, rezerwacja)) { _ostWybrana = wynik; return(wynik); } } return(-1); }
public override int WybPodgrupy(processCall przyjmowane) { bool rezerwacja = (_arbWiazka.aRez == reservationAlgorithm.R3); for (int i = 0; i < _arbWiazka.K; i++) { int spr = (++_ostWybrana) % _arbWiazka.K; if (_arbWiazka.sPodgr[spr].SprDostZas(przyjmowane.t, rezerwacja)) { _ostWybrana = spr; return(spr); } } return(-1); }
public virtual int WybPodgrupy(processCall przyjmowane) { return(-1); }
public void UsunZgl(processCall usuwane) { _n -= usuwane.zajeteZasoby; usuwane.zajPodgr.ZwolnijZasoby(usuwane.zajeteZasoby); }