I want x = 0 or 0.4 < x < 1

  • Thread starter rularn
  • Start date
  • #1
8
0
Hello!

I'm trying to create a script in matlab in which I can maximize the revenue from a heating plant.

This problem is, each boiler can only be turned off or run in between 40 and 100 % of the maximum power. So I want the boiler input x to be equal to 0 or in between 0.4 and 1. But how can I put this constraint in a linear programming script? Is it even possible?

If I introduce help variables, x1, x2 x3 .... xn, can that help me to achieve this?

It might be possible to use non linear constraints, but I want to do it with only linear constraints first if it's possible?

regards,
 

Answers and Replies

  • #2
35,663
12,225
I think many optimization algorithms will fail at that task, as there are no small steps between 0% and 40%. You can introduce other variables, sure - re-label 0% as "39.999%" and adjust the formulas correspondingly. But that does not solve the main problem that you get steps (assuming you cannot switch the boilers on/off without any delay).
 
  • #3
403
120
Are you just trying a brute force aproach?
There are some better methods depending on the range of possibilities. If you only have 1 boiler a brute force method probably would work.
But if you had more than 2 or 3 brute force will likely start taking longer.

take a look at: http://en.wikipedia.org/wiki/Simulated_annealing
 
  • #4
CompuChip
Science Advisor
Homework Helper
4,306
48
Are the boilers interchangeable? Because if they are then you could brute force the problem: instead of ##2^n## on/off combinations you only have ##n## (if all off, one on, two on, ...).

Two other approaches that *might* work, depending on the problem, are
(1) allowing them all to range from 0 to 1, then when you get an optimal solution try converting it into a feasible good one by setting all x < 0.4 to 0 and possibly increase the other ones or rerun the problem with additional constraints for those boilers

(2) first try to solve the problem of "which boilers will be switched off", either as a separate model or by allowing x to be just 0 or 1 and then rerunning with x = 0 as additional constraints for those boilers that were off in the first solution.
 

Related Threads on I want x = 0 or 0.4 < x < 1

  • Last Post
Replies
5
Views
2K
Replies
51
Views
24K
Replies
1
Views
8K
  • Last Post
Replies
8
Views
6K
Replies
13
Views
4K
  • Last Post
Replies
11
Views
3K
  • Last Post
Replies
0
Views
1K
  • Last Post
Replies
2
Views
2K
Top