I am working on a facility location problem where I want to allocate a mix of vulnerable and non-vulnerable people to the facilities. I want to make sure that most or all vulnerable people will be prioritized to be allocated to the facilities and then non-vulnerable people will be allocated. Is there a way to formulate this type of problem in facility location problem?
-
2$\begingroup$ Is there a possibility that some people will not be allocated to any facility? $\endgroup$– RobPrattCommented Aug 28, 2021 at 22:17
-
$\begingroup$ yes, that can happen. I am thinking of using a high penalty for unserved demand. $\endgroup$– marsCommented Aug 29, 2021 at 8:41
2 Answers
You can add a constraint that says the number of vulnerable people assigned to a facility is at least a specified fraction of the total number of vulnerable people (where the fraction is set to 1 if you want to ensure all vulnerable people are assigned, or something less than 1 indicating your tolerance for leaving vulnerable people unassigned). If you use a fraction less than 1, then you might also want to penalize unassigned people in the objective, with higher penalties for unassigned vulnerable people.
-
$\begingroup$ This sounds great. I will implement this and see how the model performs. Thank you! $\endgroup$– marsCommented Aug 30, 2021 at 4:39
One way to try is to have lower assignment cost (assuming a minimization objective) to vulnerable people compared to non-vulnerable for a given facility.
-
$\begingroup$ I have thought about actually that but couldn't figure out how to determine that reduction or reduction factor. $\endgroup$– marsCommented Aug 29, 2021 at 8:45
-
$\begingroup$ You can first solve a feasibility model with a minimization objective to obtain a count of non-vulnerable people that can't be assigned and then solve for your original objective by introducing a new-constraint limiting the number of unassigned non-vulnerable people (obtained from first solve). $\endgroup$– anjikumCommented Aug 29, 2021 at 11:07
-
$\begingroup$ It will likely increase the run time as the two models will need to be solved but sounds like a good approach. I might try this out $\endgroup$– marsCommented Aug 30, 2021 at 4:25