Help with approaching this problem correctly newbie here trying to figure this out:

I have a dataset which looks like:

facility_id   area_zipcode  staff_count   population
FacilityA       98007           21          24889
FacilityB       98290           52          32714
FacilityC       98065           43          12699
FacilityD       98801           9           40977
FacilityE       98104           64          13095


Here is my problem statement:

There are five healthcare facilities in five different areas, each with their respective staff count. Population in a certain area can only go to the facility which is nearest to them. So for people living in area A, facility A is the closest, but sometimes the staff count may not be enough to handle everybody. 

We're assuming at least half of the population will require healthcare, and that one staff member can only tend to about 2000 patients per year. How would we optimize the staff's distribution in all these facilities such that all five facilities can tend to the majority of their populations, thereby minimizing everyone's travel times. Basically allocate staff count to where they are most needed, increasing or decreasing capacity in facilities.

My speculation so far:

This is certainly not a classification problem, I'm thinking it's a regression problem since we're interested in some real value outputs i.e optimal staff count for each facility. Because we have multiple outputs, I'm leaning towards multi-output regression. I'm also supposed to find travel times using bing maps API, which I have successfully figured out how to do, but I'm confused with what to do with all these travel times. (like a to b, a to c, a to d etc) or how to add them to my dataset. There seem to be two priorities in the problem statement:

1) Optimize staff counts

2) Minimize travel times

And currently I'm a bit confused as to how I should tackle this, I was hoping someone could point me in the right direction, with how to model this problem and how to achieve both those goals. I'm working in python, and I can make any assumptions to simplify the problem. Any help is appreciated!

Also if you know of research papers, or others who have worked on similar problems, please guide me on how to look for them, what type of problem is this etc?
This problem sounds like an optimization problem , where the goal to find the best solution under constraints. In this case, the solution space would minimize travel times while meeting staff constraints.
Often the most difficult aspect is encoding the raw data into a format that works for the optimization solver. Generally, try a simplest encoding that could possible work. For example, use distance as a proxy for travel times.
PuLP is a linear programming package for Python that could solve the problem once it is properly encoded.