I tried to solve the following integer program through Gekko python package, but stuck in objective function part. Your help is highly appreciated.
from gekko import GEKKO
import numpy
import pandas as pd
d=numpy.zeros((3,2))
d[:,0]=numpy.array([10,30,50])
w1=numpy.array([0,1.2,2])
w2=numpy.array([0,2,0])
w3=numpy.array([0.1,0,0.2])
def obj_fun(x1, x2, x3):
d[:,1]=d[:,0]-w1[:,0]*x1-w1[:,0]*x2-w1[:,0]*x3
obf=d.min(axis=1).sum()
return(obf)
m = GEKKO(remote=False)
m.options.SOLVER=1
# Initialize variables
x1 = m.Var(value=1,lb=1,ub=3,integer=True)
x2 = m.Var(value=1,lb=1,ub=4,integer=True)
x3 = m.Var(value=1,lb=1,ub=5,integer=True)
obf= m.Var()
m.Obj(obj_fun(x1, x2, x3))
m.solve(disp=False) # Solve
print('Results')
print('x1: ' + str(x1.value))
print('x2: ' + str(x2.value))
print('x3: ' + str(x3.value))
print('Objective: ' + str(m.options.objfcnval))