Example Problem: Filtering Volunteer Data

Hi,

Note: This is an example post, illustrating how an interaction between users could look like.

I have excel (csv) file of volunteers and I have to decide for 25 volunteers. They need to meet the following criteria:

  • 10 need a drivers license (7 must be stick shift)
  • 2 drivers should be able to speak English and German
  • 1 translator: German to Russian
  • 1 translator: German to Persian
  • 2 translator: German to Spanish
  • 2 translator: German to French
  • 5 of them can be above 60
  • In general the volunteers should be as young as possible, but at least 18 years old.

I uploaded the data here: https://cloud.mpi-cbg.de/index.php/s/UbmPJ5jEp5lzI4T

Stay healthy!

2 Likes

That looks interesting… I think we can solve that with an ILP (some method you don’t need to know much about).
I will see what I can do!

Question: do you need a solution one time only, or will problems like this one reoccur for you?

1 Like

Right now I only have this file. But we will probably get and need more volunteers in the future.

1 Like

Cool… then I will first work on this concrete problem and later maybe reach out to a volunteer programmer to make a reusable solution out of this… Hear you later! Stay healthy! :slight_smile:

1 Like

Hi @tibuch, @jug,

Yep, that would work with an ILP. Here’s a small python script that does what you want for the given csv:

Dependency: pip install pulp termcolor

For the given csv, all but one constraint (russian german) can be satisfied…

cheers,

M

2 Likes

Thank you very much @mweigert! Unfortunately I don’t know about pip ( :wink: ). Could you provide me the solution in csv format?

Best wishes!

Is there any priority between these requirements? Are the age cut-offs hard or soft?

For instance you have zero volunteers who can translate from German to Russian.

  1. If a volunteer is added in the future who could be a Russian/German translator, but they were also needed to drive, does it matter where to assign them?
  2. Given the choice between (for example) no Russian/German translator and such a translator who is over age 60, what do you pick?
  3. What if they would be under 18?

I’m moving forward using my best guesses but it makes a difference.

1 Like

Hi @daveliepmann

Thank you for taking a look at this example!

If there is only on person for two positions it would be great if this is reflected in the result. And I could make the decision manually on a daily basis. Same goes for the age problem. In general as soon as a point can’t be satisfied it should be clearly visible in the result and a list of closest fits would be great!

Best wishes

What do you mean when you say this is an example problem? Is this a programming puzzle or are you actually facing this task?

Sorry about the confusion. This is just an example problem to provide an example on how an exchange between users can look like.

We put ‘Example Problem’ in the title to distinguish them. But I could add an additional disclaimer to the post. Would that help to reduce confusion in the future?

Yes, please edit the original post to clarify that no one should actually spend time trying to solve this pretend problem.

2 Likes