mathematical optimization - Linear programming constraint "x >= c or x = 0" -


i express linear program having variable can greater or equal constant c or equal 0. range ]0; c[ being unallowed.

do know way express constraint in linear program, in way can solved using unmodified simplex implementation ?

for example constraint : x1 >= 4 or x1 = 0.

typical relation between constraints in linear program and. here or between 2 constraints.

note: need solve problems having multiple variables in computationally efficient way.

a mathematical program constraints you've defined cannot represented linear program , therefore cannot solved using unmodified simplex implementation. reasoning simple enough -- feasible set linear program must convex. set {x = 0 or x >= 2} not convex because contains points x=0 , x=2 not x=1.

as result, you'll forced use other mathematical programming techniques; 1 comes mind mixed integer linear programming (milp). each variable x_i constraint of form x_i = 0 or x_i >= c_i define auxiliary variable y_i, along following constraints:

x_i >= c_iy_i x_i <= my_i y_i binary 

if y_i=0, constraints x_i >= 0; x_i <= 0, meaning x_i=0. if y_i=1, constraints x_i >= c_i, x_i <= m. should set m sufficiently large value problem, careful not set m large, make problem harder solve.

whether or not computationally tractable depends on size , structure of mathematical program quality of solver you're using. have many options milp solver; instance in r use lpsolve, lpsolveapi, or rglpk libraries, or in matlab use intlinprog function. in general cplex , gurobi considered best milp solvers, both commercial , require license.


Comments

Popular posts from this blog

javascript - RequestAnimationFrame not working when exiting fullscreen switching space on Safari -

Python ctypes access violation with const pointer arguments -