2015-10-28 6 views
0

LA PÂTE J'ai déclaré la liste facility de LpVariable:Comment initialiser LpVariable dans

for fac in range (len(candidates)): 
    facility.append(LpVariable("Facility_{0}".format(fac),lowBound=0, upBound=1, cat= pulp.LpInteger)) 

Quand je fais print(value(facility[i])), il me donne une sortie comme None ce qui est correct parce que tous les LpVariables ont une valeur par défaut Aucun. Mais dans mon code je veux initialiser avec 0. Mais quand je résous problème, solution peut avoir une valeur comprise entre 0 à 1. Si je fais ceci:

for i in range (len(facility)): 
     facility[i] = 0 

Il établira facility[i] = 0 (valeur entière et il n'y a plus de LpVariable).

Il lance une erreur si je le fais value(facility[i]) = 0. Comment dois-je initialiser ces variables?

Répondre

1

Vous pouvez essayer facility[i].setInitialValue(0.), comme décrit here.

Notez que PuLP va déléguer cet appel à la méthode correspondante à partir de l'API du solveur que vous appelez. Par conséquent, cela ne fonctionnera que si le solveur le supporte. Gurobi et CPLEX le supportent, je ne suis pas sûr des autres solveurs.