Linearizing an equation for Mixed-integer linear programming (MILP)

AI Thread Summary
The discussion focuses on linearizing the equation Y = A * log2(1 + (Bx/Cx^2)) for mixed-integer linear programming (MILP). Participants clarify the equation's components and suggest that if x is large, linearization may not be feasible. A transformation using natural logarithms is proposed to simplify the equation, but it leads to a standard approximation that does not yield a linear form. To achieve a linear expression, differentiation or numerical methods are recommended. The original poster is developing an app for resource allocation optimization, seeking further guidance on representing the function linearly over a specified range of x.
zod123
Messages
3
Reaction score
1
Thread moved from the technical forums and poster has been reminded to show their work
Summary:: Linearizing an equation for MILP

Hi All

I have Linear programming problem where I need to linearise the following function: Y = A * log2(1 + (Bx/Cx^2)). where A, B and C are constants.

Can you please help or advise?
 
Physics news on Phys.org
Hello @zod123 ,
:welcome: !​

If this is homework, you need to post an attempt at solution.
I, for one, would start simplifying Bx/Cx2 to (B/C) x3

Or did you mean Bx/(Cx2) and forgot the brackets ? In that case it of course simplifies to (B/C) / x

Do you know about differentation ? Taylor series ?
What is the range of x ? If x is not small and the range is big, then linearizing isn't possible

##\ ##
 
  • Like
Likes zod123 and berkeman
BvU said:
Hello @zod123 ,
:welcome: !​

If this is homework, you need to post an attempt at solution.
I, for one, would start simplifying Bx/Cx2 to (B/C) x3

Or did you mean Bx/(Cx2) and forgot the brackets ? In that case it of course simplifies to (B/C) / x

Do you know about differentation ? Taylor series ?
What is the range of x ? If x is not small and the range is big, then linearizing isn't possible

##\ ##
Hello @BvU

Thank you for your response and is NOT homework.

X is large and the range is big.
 
zod123 said:
X is large and the range is big.

Ok, that answers one of the four questions. And it's not homework (what is it :smile: ?).

Let me assume you meant $$Y = A \; \log_2\left (1 + {B\over C} {1\over x}\right ) = A' \;\log\left (1 + {1\over x'}\right )$$ with
##A' = A /\log 2\ ## (from using ##\log_2 = \log_e/\log_e 2\ ## ) so we can write natural logarithms​
and ##x'= Cx/B\ ## (to get rid of B and C) .​
I drop the ' from now on (lazy me ... :wink: ) .

The standard approximation of ##\displaystyle {\log\left (1 + {1\over x}\right )}\ ## for large x is 1/x which doesn't linearize your Y in the sense that it gets you an expression of the form Y = ax + b.

If you want to force such a form nevertheless, you need to know about differentiation to do it analytically. The alternative is a numerical approach.

With us so far ?

##\ ##
 
Hello @BvU

I am with you so far.

RE the homework question: I am developing an app that optimises resource allocation using LP.
 
Clear how you can approach ##1\over x## from a minimum ##x_{min}## to a maximum ##x_{max}## by a straight line ?

##\ ##
 
I picked up this problem from the Schaum's series book titled "College Mathematics" by Ayres/Schmidt. It is a solved problem in the book. But what surprised me was that the solution to this problem was given in one line without any explanation. I could, therefore, not understand how the given one-line solution was reached. The one-line solution in the book says: The equation is ##x \cos{\omega} +y \sin{\omega} - 5 = 0##, ##\omega## being the parameter. From my side, the only thing I could...
Back
Top