0

I have the following allocation problem and I would like to know if there are some known efficient algorithms that I can apply here to solve the problem.

The problem:

  • There are N resources which have capacity C.
  • There are 4 level of priority: L,N,H,VH.
  • Each object has a priority level that determines the order of allocation.
  • Each level of priority has a different weight on the capacity, for example: Normal priority of resource x has a weight of 2, meaning that the allocation of object o to resource x at normal priority will decrease the resource x's capacity by 2.
  • Each object has a matching grade to each resource.
  • Each object has a requirement to achive a minimum overall matching grade by being allocated to resources so that the sum of their matching grades will surpass the minimun requirement.
  • All objects at the same priority level are equal, which means there should be no starvation at the same priority level.

The allocation should be optimal, meaning:

  • objects should get the highest grade they can get.
  • resources should tend to max usage.
  • When there is not enough capacity for the whole priority level's objects to fullfill their requirements, The algorithm should satisfy as many objects as possible while the rest will have the highest grade they can get.

I have a trivial solution that runs while there is no load, meaning that all of the objects can satisfy their requirement fully. When the system is under load, I don't have an efficient optimal solution for the problem. Would be happy for some advice or idea.

Thanks!

danin0s
  • 21
  • I think the naive idea would be, evaluate all possible combinations for the currently existing jobs in the system and see which one fulfills the 'optimal' criteria the best. Not efficient, but for minor load it should be sufficient. – MrSmith42 Aug 27 '19 at 06:37
  • Please update your description with a couple of illustrative examples. Use these to fill in the holes in your "optimization" requirements: you've listed this with apparently conflicting standards. "Optimal" requires a well-ordered metric of optimization. – Prune Aug 27 '19 at 16:36
  • Most of all, you should show your work so far. Process scheduling with constrained resources is a well-traveled field, with myriad solutions published for various considerations. What you've posted appears to be a variant of the knapsack problem. – Prune Aug 27 '19 at 16:38
  • 1
    Sorry if it sounds like an homework problem, I took a real complex problem I am trying to solve and simplified it here. I will update the description with some examples, thanks for noting that. – danin0s Aug 28 '19 at 05:04
  • I thought about the knapsack problem but it’s not quite fit in here. Knapsack solves the problem where there is an upper limit to the object’s grades and the goal is to get the best grade that is under this limit. Instread I try to achieve a solution that fulfill a requirement with no upper limit, a solution that find the right combination of allocation that fulfills the requirement of as many objects as possible while the rest of the objects will share equally the rest of the resources in a way they achieve highest grade - I will give some examples in the post. – danin0s Aug 28 '19 at 05:15

0 Answers0