Can the following problem be formulated as a LP/IP problem, where an agent (waiter) that has just arrived at a certain table has to decide whether to visit that table now, or skip the current table and travel to the next table, where he again decides whether to serve the second table.
[Table1]
||
||
===================
|| ||
[Table4] ====|| ||
|| ||==== [Table2]
|| ||
===================
|| {WaiterA: 1 dishes of dishA (waiting for WaiterB, WaiterC to finish)}
|| {WaiterB: 2 dishes of dishB (waiting for WaiterC to finish)}
[Table3] {WaiterC: Serving 3 dishes of dishC}
ordered:
1x dishA
2x dishB
3x dishC
3x dishD
3x dishE
Additional details:
- Waiters can only travel in a loop path in the clockwise direction
- There can be multiple waiters traveling on the loop path
- Every waiter only serves 1 dish (
waiterAserves onlydishA) - When a waiter is serving a table, another waiter can visit the same table and wait in queue for the initial waiter to finish serving
- A table can order multiple type of dishes at once
- The time taken by a waiter to serve an order at the table is proportional to the number of that dishes ordered by that table
- All waiters serve each quantity of their dish at the same speed
- All waiters travel the loop path at the same speed
- The distance between tables are not equal
- The ordered dishes can be served in any sequence
- There is only sufficient room for 3 waiters to be waiting (and 1 actively serving) for each table
We want to minimize the total time taken to serve all the ordered dishes.
I feel that we want to take into account
- the demand of the current table vs. demand of other tables
- the total number of dishes to be served by the waiters in queue at the current table
- the time it will take to travel to the next table (or table with most demand for the dish that this waiter serves)
How can we formulate this as a LP problem, where we want to know a whether a waiter that has travelled to a table should join a queue to serve the table, or skip this table?
I am also assuming that we will solve this problem every time a waiter has arrived at a table.
Is there a problem category that this problem belongs to, such as the Traveling Salesman Problem? Looks like it shares some similarity with the TSP, but in TSP the salesman is not constrained to travel along a fixed path with a fixed direction.