# NLP problem how to change to make it LP

• ### Question

• Hi!

I'm a very beginner with Optimization problem and i started to used solverfoundation very recently.

Sorry for english too! I’ll try to explain my problem.

I have a demand for a product with a certain quantity Q, I have to produce a production plan for this demand

A product can be composed with resources r1, r2, with some coefficient c1, c2 as resource usage respectively, with some coefficient scenarios like below , suppose I have 3 scenarios

Scenario

1)       c1=0.50 , c2=0.50

2)       c2=0.25, c2=0.75

3)       c3=0.75,c2=0.26

These scenarios are mutually exclusive.

For instance , if the production for period T , P(T)=10

For Scenario 2)  Usage of Resource r1 = 10*0.25=2.5   , and r2=10*0.75=7.5

Resource has availability for each period

My problem is that due to my model , I have a NLP,  how can I change the model to make It LP ?  I try to lookup with SOS1 but I’m not really experienced with it.

here is my OML model.

Model[

Parameters[

Sets[Integers[0, Infinity]],

RessourceSet,

VarianteSet,

PeriodeSet

],

Parameters[

Reals[0, Infinity],

NomenclatureVarPar[RessourceSet, VarianteSet],

DispoPar[RessourceSet, PeriodeSet]

],

Decisions[

Reals[0, Infinity],

DemandeDecision[PeriodeSet]

],

Decisions[

Integers[0, 1],

ActivationDecision[VarianteSet, PeriodeSet]

],

Constraints[

DemandeConstr -> Sum[

{iter1, PeriodeSet},

DemandeDecision[iter1]

] <= 1000,

ConstrRessource -> Foreach[

{iter2, PeriodeSet},

Foreach[

{iter3, RessourceSet},

Foreach[

{iter4, VarianteSet},

(DemandeDecision[iter2] * ActivationDecision[iter4, iter2]) * NomenclatureVarPar[iter3, iter4] <= DispoPar[iter3, iter2]

]

]

],

ActivationConstr -> Foreach[

{iter5, PeriodeSet},

Sum[

{iter6, VarianteSet},

If[ActivationDecision[iter6, iter5], 1, 0]

] == 1

]

],

Goals[

Maximize[

SatisfactionGoal -> Annotation[Sum[

{iter7, PeriodeSet},

DemandeDecision[iter7]

], "order", 0]

]

]

]

Thanks for any help

Willy

Wednesday, November 23, 2011 7:25 AM

### All replies

• Have a look at Part 3 of this series from my blog:

http://nathanbrixius.wordpress.com/category/project-scheduling/

the "isActive" decision is something kind of close to what you are after. (But not exactly...)

Nate

PS this will turn your model into a mixed integer (MIP) model.

Tuesday, November 29, 2011 1:01 AM