I need this program for my graduation project, and I can't seem to find where is the problem with this code because I've tried everything and asked the ai generator and still nothing In this case I am using visual studio as a python compiler version 1.84.2 and python 3.10.1 and cplex 12.8 If u have any idea please help me Please Please I need help
from statistics import mode
from unicodedata import name
from docplex.mp.model import Model
model=Model('PFE')
Nroutes=1
routes=range(1,Nroutes)
Noperations=4
operations=range(1,Noperations)
Nproducts=2
products=range(1,Nproducts)
Nressources=4
ressources=range(1,Nressources)
Nlocations=3
locations=range(1,Nlocations)
temp_sum = model.continuous_var(name='temp_sum')
ic= 5000
c= [5000, 5000, 5000, 5000]
ct=100
K= 3
B= [
[
[1, 0, 0, 0],
[0, 1, 0, 0],
[0, 0, 1, 0],
[0, 0, 0, 1]
],
[
[1, 0, 0, 0],
[0, 1, 0, 0],
[0, 0, 1, 0],
[0, 0, 0, 1]
]
]
Q=552000
a=[
[1, 0, 0, 0],
[0, 1, 0, 0],
[0, 0, 1, 0],
[0, 0, 0, 1]
]
D=[1000, 1000]
d=[
[0, 10, 10],
[10, 0, 10],
[10, 10, 0]
]
e=[
[
[ [0, 1, 0, 0],
[0, 0, 1, 0],
[0, 0, 0, 0],
[0, 0, 0, 0]],
[ [0, 0, 1, 0],
[0, 0, 0, 1],
[0, 1, 0, 0],
[0, 0, 0, 0]]
]
]
#variables de decisions
y=model.binary_var_matrix(locations,ressources, name='y')
x=model.binary_var_dict(locations,name='x')
z=model.binary_var_dict(locations, ressources,locations,ressources,name='z')
f=model.continuous_var_matrix(products,routes,name='f')
v=model.continuous_var_dict(operations,ressources,operations,ressources,products,routes, name='v')
#contraintes
for l in locations:
model.add_constraint(model.sum(y[l,r] for r in ressources )<=K*x[l])
for r in ressources:
model.add_constraint(model.sum(y[l,r])<=1)
for l in locations:
for r in ressources:
for L in locations:
for s in ressources:
model.add_constraint(z[l,r,L,s]<=y[l,r])
for l in locations:
for r in ressources:
for L in locations:
for s in ressources:
model.add_constraint(z[l,r,L,s]<=y[L,s])
for l in locations:
for r in ressources:
for L in locations:
for s in ressources:
model.add_constraint(z[l,r,L,s]>=y[l,r]+y[L,s]-1)
for s in ressources:
model.add_constraint(model.sum(v[o,r,q,s,p,n]*B[p,s,q] for n in routes for p in products for r in ressources for o in operations)<=Q)
for s in ressources:
for q in operations:
model.add_constraint(model.sum(v[o,r,q,s,p,n] for n in routes for p in products for r in ressources for o in operations)<=a[s,q]*model.sum(y[l,s] for l in locations)*model.sum(D[p] for p in products))
for o in operations:
for q in operations:
for p in products:
for n in routes:
model.add_constraint(model.sum(v[o,r,q,s,p,n] for s in ressources)== f[p,n]*e[n,p,p,q])
for p in products:
model.add_constraint(D[p]==model.sum(f[p,n] for n in routes))
for q in operations :
for s in ressources:
for p in products:
for n in routes:
model.add_constraint(model.sum(v[o,r,q,s,p,n] for r in ressources for o in operations)==model.sum(v[q,s,u,t,p,n] for t in ressources for u in operations))
fct_obj=model.sum(x[l] for l in locations) * ic + model.sum(y[l,r]*c[r] for l in locations for r in ressources) + model.sum(z[l,r,L,s]*d[l,L] for p in products for r in ressources for s in ressources for l in locations for L in locations)*ct* model.sum(v[o,r,q,s,p,n] for o in operations for q in operations for n in routes)
model.set_objective('min',fct_obj)
model.solve()
I tried to change the variable declaration but nothing worked.
And I also have a problem in the constraints and objective function