mirror of
https://github.com/kuhyx/WUT_Computer_Science.git
synced 2026-07-04 20:03:04 +02:00
51 lines
1.7 KiB
Plaintext
51 lines
1.7 KiB
Plaintext
###########################################################
|
|
# WDWR 25406 #
|
|
# 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 ;
|