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 tried to combine those 2 formulas but it didn't work. I tried using another case where there are 2 red balls and 2 blue balls only so when combining the formula I got ##\frac{(4-1)!}{2!2!}=\frac{3}{2}## which does not make sense. Is there any formula to calculate cyclic permutation of identical objects or I have to do it by listing all the possibilities? Thanks
Since ##px^9+q## is the factor, then ##x^9=\frac{-q}{p}## will be one of the roots. Let ##f(x)=27x^{18}+bx^9+70##, then: $$27\left(\frac{-q}{p}\right)^2+b\left(\frac{-q}{p}\right)+70=0$$ $$b=27 \frac{q}{p}+70 \frac{p}{q}$$ $$b=\frac{27q^2+70p^2}{pq}$$ From this expression, it looks like there is no greatest value of ##b## because increasing the value of ##p## and ##q## will also increase the value of ##b##. How to find the greatest value of ##b##? Thanks
Back
Top