WUT_Computer_Science/Programming/ZPOB/projekt_kod/1167777432942678046.txt

47 lines
1.6 KiB
Plaintext
Raw Normal View History

2024-01-23 22:19:11 +01:00
# Model szeregowania zada� podzielnych na m procesorach r�wnoleg�ych
# Faza I
#======================================================================
set Procesory;
set Zadania;
#set ZadaniaSpec;
#======================================================================
param Czas_wyk{Procesory, Zadania} >= 0;
# Wymiar tabeli i kolumna z której bÄ™dziemy czytać wartoÅci
table T_Czas_wyk IN "CSV" "Czas_wyk.csv":
[Procesor, Zadanie], Czas_wyk~Czas_wyk;
#======================================================================
var Tmax >= 0;
var t{Procesory, Zadania}>=0;
#======================================================================
minimize FC_Czas_obslugi:
Tmax;
#======================================================================
subject to
Ogr_Praca_procesora{l in Procesory}:
sum {i in Zadania} t[l,i]<=Tmax;
Ogr_Obsluga_zadania{i in Zadania}:# i not in ZadaniaSpec}:
sum{l in Procesory} t[l,i]<=Tmax;
Ogr_Rozdzial_zadan{i in Zadania}:#i not in ZadaniaSpec}:
sum{l in Procesory} (t[l,i]/Czas_wyk[l,i])=1;
solve;
#printf ";;;;%s;%s\n", 'Data', time2str(gmtime()+2*3600,'%F %H:%M') >> "FazaIout.csv";
#printf ";;%s;%3.1f", 'Tmin', Tmax >> "FazaIout.csv";
printf "Procesor,Zadanie,t" >> "FazaIout.csv";
for {l in Procesory, i in Zadania} {
printf "\n%s,%s,%3.1f", l, i, round(t[l,i],3)>> "FazaIout.csv";
}
display{l in Procesory, i in Zadania: t[l,i]>0}: l, i, round(t[l,i],3);
#======================================================================
end;