WUT_Computer_Science/Programming/WDWR/projekt/WDWR2.run

51 lines
1.7 KiB
Plaintext
Raw Normal View History

###########################################################
# WDWR 18042 #
# Planowanie produkcj w warunkach ryzyka. #
# SKRYPT URUCHAMIAJACY - Metoda punktu odniesienia #
# Autor: Krzysztof Rudnicki #
###########################################################
#######################
# Konfiguracja modelu #
#######################
model WDWR2.mod;
data WDWR2_trunc.dat;
option solver cplex;
#############################
# Metoda punktu odniesienia #
#############################
printf "\n######################################\n";
printf "### RPM solution space calculation ###\n";
printf "######################################\n";
objective RPM;
param steps = 10;
param stepSize {r in RATED} = (utopia[r] - nadir[r]) / (steps-1);
param iteration;
param iterationCount = steps*steps;
set RESULTS = {1..iterationCount};
set VALUES = {"PROFIT", "RISK", "RPM"};
param result {RESULTS, VALUES};
for {i in 0..steps-1} {
for {j in 0..steps-1} {
let iteration := 1 + steps*i + j;
let aspiration["PROFIT"] := nadir["PROFIT"] + i * stepSize["PROFIT"];
let aspiration["RISK"] := nadir["RISK"] + j * stepSize["RISK"];
printf "### %d: Solving model for aspirations: %f, %f\n",
iteration, aspiration["PROFIT"], aspiration["RISK"];
solve;
let result[iteration, "PROFIT"] := profit;
let result[iteration, "RISK"] := risk;
let result[iteration, "RPM"] := RPM;
printf "Profit: %f\n", profit;
printf "Risk: %f\n", risk;
printf "RPM: %f\n", RPM;
}
}
display result;
printf { r in RESULTS } "%f\t%f\t%f\n", result[r,"PROFIT"], result[r, "RISK"], result[r,"RPM"] > ./result.csv ;