[R] Solving binary integer optimization problem
Petr Savicky
savicky at cs.cas.cz
Mon Aug 13 21:05:39 CEST 2012
On Fri, Aug 10, 2012 at 05:41:07AM -0700, aajit75 wrote:
> Hi,
>
> I am new to R for solving optimization problems, I have set of communication
> channels with limited capacity with two types of costs, fixed and variable
> cost. Each channel has expected gain for a single communication.
> I want to determine optimal number of communications for each channel
> maximizing ROI)return on investment) with overall budget as constraint.60000
> is the budget allocated.
>
> Channel Fixed_Cost Variable_Cost Capacity Expected_Gain
> C1 400 2.5 5000 0.25
> C2 10000 0 30000 0.3
> C3 4000 0.15 20000 0.15
> C4 2000 2 10000 0.36
> C5 100 3 4000 0.09
>
> Channel_Select <-data.frame(Channel=c('c1','c2','c3','c4','c5'),
> Fixed_Cost=c(400,5000,4000,2000,100),
> Variable_Cost=c(2.5,0,0.15,2,3),
> Capacity=c(5000,30000,20000,10000,4000),
> Expected_gain=c(0.25,0.3,0.15,0.36,0.09))
>
>
> Let x1,x2,x3,x4,x5 are the decision variables for c1,c2,c3,c4,c5 channel
> and z1,z2,z3,z4,z5 are the indicator binary variables if channel has
> allocated communication if any.
>
> max((0.25*x1+0.30*x2+0.15*x3+0.36*x4+0.09*x5)-(2.5*x1+0*x2+0.15*x3+2*x4+3*x5+400*z1+10000*z2+4000*z3+2000*z4+100*z5)/(
> 2.5*x1+0*x2+0.15*x3+2*x4+3*x5+400*z1+10000*z2+4000*z3+2000*z4+100*z5))
>
> Constraints:
> (2.5*x1+0*x2+0.15*x3+2*x4+3*x5+400*z1+10000*z2+4000*z3+2000*z4+100*z5)) <=
> 60000 ##Budget Constraint
> x1-5000*z1<=0
> x2-30000*z2<=0
> x3-20000*z3<=0
> x4-10000*z4<=0
> x5-4000*z5<=0
> x1 >= 200
> x2 >= 100
> x3>=100
> x4>=500
> x5>=0
>
> I had tried lp function from lpsolve but not able to set objective.in for
> objective function. Any help or hint is welcomed!
Hi.
Your objective function is not a linear function, since it contains
a ratio of two linear functions. So, the current form of the problem
cannot be formulated as an input to lpSolve.
Petr Savicky.
More information about the R-help
mailing list