public int[] Przeglad(KolejkaZadan kolejka) { var liczbaZadan = kolejka.zadania.Length; int[] optymalnaKolejnosc = new int[liczbaZadan]; int[] poczatkowaKolejnosc = new int[liczbaZadan]; int cmax = int.MaxValue; for (int i = 0; i < liczbaZadan; i++) { poczatkowaKolejnosc[i] = i + 1; } var algorytmy = new Algorytmy(); List <int[]> macierzPermutacji = ListToArray(returnPermutation(poczatkowaKolejnosc)); int checkedCmax = int.MaxValue; foreach (int[] kolejnosc in macierzPermutacji) { checkedCmax = algorytmy.calculateTotalspan(kolejka, kolejnosc); if (checkedCmax < cmax) { cmax = checkedCmax; optymalnaKolejnosc = kolejnosc; } } return(optymalnaKolejnosc); }
public int[] Przeglad(KolejkaZadan kolejka) { var kolejnoscZadan = new int[kolejka.zadania.Length]; for (int x = 0; x < kolejka.zadania.Length; x++) { kolejnoscZadan[x] = x + 1; } int[,] macierzZadan = Algorytmy.pasreMacierzZadan(kolejka, kolejnoscZadan); var liczbaZadan = kolejka.zadania.Length; int[] optymalnaKolejnosc = new int[liczbaZadan]; int[] poczatkowaKolejnosc = new int[liczbaZadan]; int cmax = int.MaxValue; for (int i = 0; i < liczbaZadan; i++) { poczatkowaKolejnosc[i] = i + 1; } List <int[]> macierzPermutacji = ListToArray(returnPermutation(poczatkowaKolejnosc)); int checkedCmax = int.MaxValue; foreach (int[] kolejnosc in macierzPermutacji) { checkedCmax = Algorytmy.calculateTotalspan(kolejka, macierzZadan, kolejnosc); if (checkedCmax < cmax) { cmax = checkedCmax; optymalnaKolejnosc = kolejnosc; } } return(optymalnaKolejnosc); }
public static List <int> NehBasic(KolejkaZadan kz, List <Tuple <int, int> > tl) { List <int> sequence = new List <int>(); var kolejnoscZadan = new int[kz.zadania.Length]; for (int x = 0; x < kz.zadania.Length; x++) { kolejnoscZadan[x] = x + 1; } int[,] macierzZadan = Algorytmy.pasreMacierzZadan(kz, kolejnoscZadan); int _counter = 0; foreach (Tuple <int, int> t in tl) { int[] sq = new int[_counter + 1]; //stworzenie listy mozliwych dolozen ktora to jest zawsze +1 do kroku for (int i = 0; i < sq.Length; i++) { List <int> clone = new List <int>(sequence); //kopia to mieszania clone.Insert(i, t.Item1); //ukladanie w po kolei sq[i] = Algorytmy.calculateTotalspan(kz, macierzZadan, clone.ToArray()); //obliczenie nowego cmaxa by sprawdzic ile wynosi } int minIndex = Array.IndexOf(sq, sq.Min()); sequence.Insert(minIndex, t.Item1);//dodanie do prawdziwej sekwencji najlepszego wariantu _counter++; } return(sequence); }