1

I need some help with a linear programming problem I’m trying to solve. The concept is quite simple, we have a set of machines with pre-booked activities that we cannot move. Now I want to add an additional activity with a given time length (measured in time blocks) in a way that maximize utilization. I have four machines to choose from (see the illustration below) and I want the objective function to give us the one machine with the highest utilization. (the best machine).

So far, I have an objective function, that express the utilization and two constraints. The first constraint states that we can only choose one schedule, and the second state that the total amount of available time blocks for a machine must be greater or equal to the required time for the new activity that we should place somewhere.

I would really appreciate some feedback on the model and especially how I could express U_i and A_i in an appropriate way.

See this image for objective function, restrictions and visualization

enter image description here

Edit: Of course, we want to place the activity at the end of M4, not M3.

Erwin Kalvelagen
  • 15,677
  • 2
  • 14
  • 39
  • Not sure if I understand. If you move a job from one machine to another the sum of the utilization rates will not change much (for one it goes down, for another it goes up). I guess you want an objective that prefers almost empty and almost full machines. I suspect that will give a piecewise linear function. – Erwin Kalvelagen Apr 02 '17 at 07:05
  • I should have expressed myself more clear, but I want the objective function to select the one machine with the highest utilization. Basically, we want the model to tell us which machine it is. You are partly right, we want an objective that prefers as full machines as possible. – R.Windblixt Apr 02 '17 at 08:14
  • 1
    I believe my answer stays the same: you need something like a nonlinear objective that gives extra preference to (almost) full machines. E.g. `max sum used(m)^2` where `used(m)` is the sum of the used time slots for machine `m`. This way moving a job from a less occupied machine to a full machine gives a better objective. This can be approximated with a piecewise linear expression if you want to use a linear solver. – Erwin Kalvelagen Apr 02 '17 at 23:11

0 Answers0