mirror of
https://github.com/kuhyx/WUT_Computer_Science.git
synced 2026-07-04 12:43:04 +02:00
47 lines
1.6 KiB
Plaintext
47 lines
1.6 KiB
Plaintext
# 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; |