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

  • Thread starter zod123
  • Start date
  • #1
3
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?
 

Answers and Replies

  • #2
BvU
Science Advisor
Homework Helper
14,401
3,713
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
  • #3
3
1
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.
 
  • #4
BvU
Science Advisor
Homework Helper
14,401
3,713
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 ?

##\ ##
 
  • #5
3
1
Hello @BvU

I am with you so far.

RE the homework question: I am developing an app that optimises resource allocation using LP.
 
  • #6
BvU
Science Advisor
Homework Helper
14,401
3,713
Clear how you can approach ##1\over x## from a minimum ##x_{min}## to a maximum ##x_{max}## by a straight line ?

##\ ##
 

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

  • Last Post
Replies
6
Views
1K
  • Last Post
Replies
12
Views
2K
  • Last Post
Replies
9
Views
4K
  • Last Post
Replies
5
Views
2K
  • Last Post
Replies
3
Views
9K
Replies
15
Views
909
Replies
4
Views
3K
  • Last Post
Replies
1
Views
3K
  • Last Post
Replies
6
Views
1K
  • Last Post
Replies
7
Views
1K
Top