title: Should I linearize or try to solve the MINLP in python with gurobi or try a completely different approach?
body: <p>I'm fairly new to this, so I'm just going to shoot and hope I'm as precise as possible and you'll think it warrants an answer.</p>
  
  <p>I'm trying to optimize (minimize) a cost/quantity model, where both are continuous variables. Global cost should be minimized, but is dependent on total quantity, which is dependent on specific cost. </p>
  
  <p>My code looks like this so far:</p>
  
  <pre><code># create model
  m = Model('Szenario1')
  
  # create variables 
  X_WP = {}
  X_IWP = {}
  
  P_WP = {}
  P_IWP = {}
  
  for year in df1.index:
      X_WP[year] = m.addVar(vtype=GRB.CONTINUOUS, name="Wärmepumpe%d" % year)
      X_IWP[year] = m.addVar(vtype=GRB.CONTINUOUS, name="Industrielle Wärmepumpe%d" % year)
  
      #Price in year i =  Base.price * ((Sum of newly installed capacity + sum of historical capacity)^(math.log(LearningRate)/math.log(2)))
      P_WP[year] = P_WP0 * (quicksum(X_WP[year] for year in df1.index) ** (learning_factor)
      P_IWP[year] = m.addVar(vtype=GRB.CONTINUOUS, name="Preis Industrielle Wärmepumpe%d" % year)
  
  X_WP[2016] = 0
  X_IWP[2016] = 0
  
  # Constraints and Objectives 
  for year in df1.index:
      m.addConstr((X_WP[year]*VLST_WP+X_IWP[year]*VLST_IWP == Wärmemenge[year]), name="Demand(%d)" % year)
      obj = quicksum(
      ((X_WP[year]-X_WP[year-1])*P_WP[year]+X_WP[year]*Strompreis_WP*VLST_WP)+
      ((X_IWP[year]-X_IWP[year-])*P_IWP[year]+X_IWP[year]*Strompreis_EHK*VLST_IWP)
      for year in Wärmemenge.index)
  
   m.setObjective(obj, GRB.MINIMIZE)
   m.update()
   m.optimize()
  </code></pre>
  
  <p>X is quantity and P is price. WP and IWP are two different technologies (more will be added later). Since X and P are multiplied the problem is nonlinear, now I haven't found a solution so far as to feed gurobi an objective, that it can handle. </p>
  
  <p>My research online and on stackoverflow basically let me to the conclusion that I can either linearize and solve with gurobi, find another solver that can solve this MINLP or formulate my objective in a way that Gurobi can solve. Since I've already made myself familiar with Gurobi, that would be my prefered choice.</p>
  
  <p>Any advice on what's best at this point?
  Would be highly appreciated!</p>