0
votes

I'm working on this application to help the restaurant boss to allocate his staff.

For simplification, consider that we only have part-time staff. Each staff member has a different wage and a different available time (2pm-7pm on Thursday, 7am-9am on Monday, etc).

We divide every day into 12 hours. For every hour we need a different amount of staff (5 staff members during 7am-9am, Sunday; 1 member during 1pm-5pm Monday, etc).

I have a feeling that this is a maximum matching problem, but can't really figure it out. Except for a genetic algorithm, can anyone give me some advice?

1
Linear programming. If you prefer to keep things simple try using the Simplex algorithm. If you'd rather go for maximum efficiency try Karmarkar's algorithm. You might try asking this question over on Computer Science Stack Exchange, they might have some other ideas - but to me it smells like Linear Programing. (My particular hammer for this kind of nail, but... :-). Share and enjoy. - Bob Jarvis - Reinstate Monica
Thanks Bob Jarvis. I will learn it. It's new to me. - Khoa Le
Note that en.wikipedia.org/wiki/Assignment_problem is a special case of linear programming for which there are efficient algorithms, and, on the face of it, at least speaks the same vocabulary as your problem. - mcdowella

1 Answers

1
votes

Just want to answer so if anyone have the same problem as me could have a clue. The fastest and simplest solution I can find is Hungarian algorithm. Every time section is a node. Each staff member divide to k node ( k is their available time). With this model, we just run the Hungarian algorithm and problem solved.