Hello guys. I'm having an issue with a Python PulP MILP problem. You can find the simplified code that reproduces the problem here:
from pulp import * machines = 2 I = range(machines) positions = 2 J = range(positions) years = 10 T = range(years) age = {0: 5, 1: 7} IR = 0.06 df = 0.3 costs = {(0,0):300, (0,1):200, (1,0):500, (1,1):350} factor = {} finalcosts = {} for i in I: for j in J: for t in T: for k in range(age[i]): factor[t,k] = ((1-df)**k)/((1+IR)**t) finalcosts[i,j,t,k] = costs[i,j]*factor[t,k] prob = LpProblem("TrialProb",LpMinimize) Prob_vars = LpVariable.dicts("probvars", ((Machine, Position,Year, Age) for Machine in I for Position in J for Year in T for Age in range(age[i])),0,None, LpInteger) This gives me a 'finalcosts' variable with a size of 240 which is what I want, with all the correct values. But the 'Prob_vars' are of a size 260, counting the second index k for the first index i as well. Meaning that while in 'finalcosts' for i=0, k=0:4 and for i=2, k=0:6 (which is what I want), for the 'Prob_vars' decision variable index k=0:6 for both i=1 & i=2. I'm fairly new to Python so I can't quite grasp where the problem lies. What I have tried: I've tried all combinations that I could think of for different expressions of the 'Prob_vars' but nothing works properly. I also looked anywhere I could think of online but I can't find an answer to this. -- https://mail.python.org/mailman/listinfo/python-list