przydziale współczynnik Ra jest mniejszy lub większy, ale nie więcej niż 0,02 to zapisać zmianę i powtórzyć powyższą operacje zadaną ilość razy. (W moim przypadku 100 000 razy.)
Eksperymenty należy przeprowadzić dla:
• trzech wartości m (ilość procesorów): 10, 15, 20 (można przyjąć inne
wartości jeśli czasy będą wychodziły zbyt długie lub zbyt krótkie);
• trzech wartości n (ilość zadań): 2*m, 3*m i 5*m;
• czasy wykonywania zadań należy generować losowo, jako liczby
całkowite, zgodnie z rozkładem jednostajnym na następujących dwóch
przedziałach:
Pic (0; 20] lub (20; 50], j = 1,2.....n.
Po przeanalizowaniu poprzedniej i obecnej części zadania, doszedłem do wniosku ze nie ma sensu porównywać algorytmu metaheurystycznego z algorytmem LSA dlatego, usunąłem z programu odpowiedzialne za niego części kodu a wyniki zestawiłem z algorytmem LPT
Ważne fragmenty kodu:
1. Funkcja „działanie", to nią wywołujemy wszystkie poboczne funkcje takie
jak zerowanie, sortowanie czy zapis do pliku. __
void dzialanie(int iloscMaszyn, int lloscZadan, int Przedział, int Początek, char a[])
{
for(int i=©; i<powtorzen; i++)
{
Zeruj_Procesy();
Zerowanie_Maszyn();
Losowańie_Procesow(lloscZadan, Przedział, Początek); Przydzielanie_Procesow(IloscMaszyn, lloscZadan); float WKLA=Wyzarzanie(IloscMaszyn,lloscZadan);
Wyn ikiKLASY[i]=WKLA;
ZerowanieCzasuMaszyn() ;
ZerowanieCzasowZadan();
KopiujWartości(IloscMaszyn,lloscZadan);
Sortowanie(JakieZadania,lloscZadan);
Przydzielanie_Zadan(IloscMaszyn,lloscZadan);
float LPT = WspolczynnikRa(IloscMaszyn,lloscZadan);
WynikiLPT[i]=LPT;
}
zapis_do_pliku(a);
Li_
2. Funkcja symulująca przydzielanie kolejnego zadania do pierwszej wolnej maszyny._
void Przydzielanie_Procesow(int IloscMaszyn, int lloscZadan)
{
int maszyna;
for(int i=0; i<IloscMaszyn; i+»)_