Preciso urgentemente de alguém que me auxilie em Programação Matemática em Python (Programação Inteira) que tenha conhecimento em gap de otimalidade, relaxação lagrangeana, benders, heurística... Valor a combinar R$... (64) 98149-6529!
Estou trabalhando com este modelo de localização de facilidades não capacitadas:
def model_m(dat):
m = Model("M Optimize")
g = {(k,i,j): mod.add_var(name='g{},{},{}'.format(k,i,j),obj=c) for (i,j,c,a) in dat.arcs for (k,d,_,_) in dat.nodes if d > 0}
x = {(i,j): mod.add_var(name='f{},{}'.format(i,j),var_type = BINARY,obj=a) for (i,j,c,a) in dat.arcs}
q = {(k,j): mod.add_var(name = 'q{},{}'.format(k,j)) for (k,d,_,_) in dat.nodes if d>0 for (j,dd,_,_) in dat.nodes if dd<0}
for (j,d,_,_) in dat.nodes:
if d < 0:
for (k,dd,_,_) in dat.nodes:
if dd > 0:
m += xsum(g[k,i,jj] for (i,jj,_,_) in dat.arcs if jj == j) + q[k,j] == xsum(g[k,jj,i] for (jj,i,_,_) in dat.arcs if jj == j)
for (j,d,_,_) in dat.nodes:
if d >= 0:
for (k,dd,_,_) in dat.nodes:
if dd > 0:
if j != k:
m += xsum(g[k,i,jj] for (i,jj,_,_) in dat.arcs if jj == j) - xsum(g[k,jj,i] for (jj,i,_,_) in dat.arcs if jj == j) == 0
for (k,d,_,_) in dat.nodes:
if d > 0:
m += xsum(g[k,i,j] for (i,j,_,_) in dat.arcs if j == k) - xsum(g[k,i,j] for (i,j,_,_) in dat.arcs if i == k) == d
for (k,d,_,_) in dat.nodes:
if d > 0:
for (i,j,_,_) in dat.arcs:
m += g[k,i,j] <= d*x[i,j]
for (k,d,_,_) in dat.nodes:
if d > 0:
m += xsum(q[k,j] for (j,dd,_,_) in dat.nodes if dd < 0) == d
for (j,d,_,_) in dat.nodes:
if d < 0:
m += xsum(q[k,j] for (k,dd,_,_) in dat.nodes if dd > 0) == -d