public void wypelnij_dane_z_bazy() { Algorytm dane; ObslugaBazy obs_baz = new ObslugaBazy(); dane = obs_baz.wyszukaj_zlecenia(); symulowaneWyzarzanie = obs_baz.wyszukaj_serwis_i_serwisantow(); miejsca_zlecen = dane.miejsca_zlecen; czas_zlecen = dane.czas_zlecen; wspolrzedne_miejsca_zlecen = dane.wspolrzedne_miejsca_zlecen; }
public bool save(double cmax) { if (symulowaneWyzarzanie.getBestTime() < 0) { return(false); } ObslugaBazy obs_baz = new ObslugaBazy(); int[] route = symulowaneWyzarzanie.getBestRoute(); obs_baz.zapiszHarmonogram(route, cmax); return(true); }
public SA(int iloscSerwisow, int iloscSerwisantow, string miastoFirmy = "Łódź") { ObslugaBazy ob = new ObslugaBazy(); _startPos = ob.getWspolrzedne(miastoFirmy); _endPos = _startPos; _bestTime = -1; _T = _Tmax; _iloscSerwisantow = iloscSerwisantow; _iloscSerwisow = iloscSerwisow; _current = new int[_iloscSerwisow + _iloscSerwisantow]; _best = new int[_iloscSerwisantow + _iloscSerwisow]; _startPositionID = new int[_iloscSerwisantow]; _endPositionID = new int[_iloscSerwisantow]; int sredniaDlugosc = (_iloscSerwisow + _iloscSerwisantow) / _iloscSerwisantow; int iloscDoUstalenia = _iloscSerwisow; int iter = 0; int iloscBezrobotnychSerwisantow = _iloscSerwisantow; _startPositionID[0] = 0; while (iloscDoUstalenia > 0) { int copyIloscDoUstalenia = iloscDoUstalenia; for (int i = 0; i < copyIloscDoUstalenia / iloscBezrobotnychSerwisantow; i++) { iloscDoUstalenia--; _current[iter] = _iloscSerwisow - iloscDoUstalenia; iter++; } _current[iter] = 0; if (iloscBezrobotnychSerwisantow > 0) { _endPositionID[_iloscSerwisantow - iloscBezrobotnychSerwisantow] = iter; } iter++; if (iloscBezrobotnychSerwisantow > 1) { _startPositionID[1 + _iloscSerwisantow - iloscBezrobotnychSerwisantow] = iter; } iloscBezrobotnychSerwisantow--; } for (int it = 0; it < _current.Length; it++) { _best[it] = _current[it]; } _endPositionID[_iloscSerwisantow - 1] = iter - 1; }