我试图在Solver Studio上使用GLPK / GMPL编写Scrum Optimization方法的版本(Golfarelli,2013) - 用于学术目的 - 论文:https://drive.google.com/file/d/0B7W9UWp9Yzx4M0RUUnFpbkRlbE0/view?usp=sharing
到目前为止,这是我的代码:
#Modelo de Otimizacao de Sprints
# Conjunto de Indices
set Sprint;
set UserStory;
#set A;
#Parametros
param capacidade{Sprint};
param complexidade{UserStory};
param riscoincerteza{UserStory};
param riscocriticidade{UserStory};
param utilidade {UserStory};
#param afinidade {A};
#Variaveis
var x{Sprint, UserStory} binary;
#var y{Sprint, UserStory, A} >=0;
var UtilidadeSprint{Sprint} >=0;
var UtilidadeAcumulada{Sprint} >=0;
#FuncaoObjetivo
maximize SomaUtilidadeAcumulada: sum{i in Sprint} UtilidadeAcumulada[i];
#Restricoes
s.t. rest_UtilidadeAcumuladaPrimeiroSprint: UtilidadeAcumulada[1] = UtilidadeSprint[1];
s.t. rest_UtilidadeAcumuladaDemais{i in Sprint}: UtilidadeAcumulada[i+1] = UtilidadeSprint[i+1] + UtilidadeAcumulada[i];
s.t. rest_UtilidadeSprint{i in Sprint}: UtilidadeSprint[i] = sum{j in UserStory} utilidade[j] * riscocriticidade[j] * x[i, j];
s.t. rest_capacidade{i in Sprint}: sum{j in UserStory} complexidade[j] * riscoincerteza[j] * x[i,j] <= capacidade[i];
s.t. rest_NaoRepetirUserStory{j in UserStory}: sum{i in Sprint} x[i,j] = 1;
#Resolver Problrema
solve;
#Escrever Utilidade Acumulada na planilha
printf " UtilidadeAcumulada :=\n" >> "Sheet";
printf {i in Sprint} "'%s' '%s'\n", i, UtilidadeAcumulada[i] >> "Sheet";
printf ";\n" >> "Sheet";
#Escrever Utilidade Sprint na planilha
printf " UtilidadeSprint :=\n" >> "Sheet";
printf {i in Sprint} "'%s' '%s'\n", i, UtilidadeSprint[i] >> "Sheet";
printf ";\n" >> "Sheet";
#Escrever Solucao Otima na planilha
printf "rest_capacidade :=\n" >> "Sheet";
printf {i in Sprint} "'%s' '%s'\n", i, rest_capacidade[i] >> "Sheet";
printf ";\n" >> "Sheet";
printf "x :=\n" >> "Sheet";
printf {i in Sprint, j in UserStory}: "'%s' '%s' '%s'\n", i, j, x[i,j] >> "Sheet";
printf ";\n" >> "Sheet";
end;
我的代码陷入困境(必须因为我不熟悉这种语言)。它不接受UtilidadeAcumulada,因为它直到&#34; 7&#34;应该只是直到&#34; 6&#34; (我无法锁定此参数) - 我也没有进入最复杂的部分(使用分组和优先级)。 =(
如果熟悉SolverStudio(和GMPL)的人能给我一些帮助,我真的很感激。