Waiter_group/final-evaluation.md

2.6 KiB

Final Evaluation - Waiter Project

Authors: Tao Sen Chang, Martyna Druminska, Weronika Skowronska.

The project aim is to simulate waiter's behaviour in a restaurant

Features

The waiter is able to move from table to table, choosing the most optimal way; It can decide whether the customer wants vegan menu or not, and evaluate the customer's plate as empty (waiting to order) full (eating) or dirty (and waiting for receipt)

Route choosing

Author: Tao Sen Chang

At beginning of our project, we use reinforcement learning to get the shortest route for our agent to traversal specific tables. Reinforcement learning is how software agent ought to take actions in an environment in order to maximize the notion of cumulative reward. The agent makes a sequence of decisions, and learns to perform the best actions every step. After tons of training loops, the agent could get the optimal strategy which might collect maximal reward. In the case of our program, the “maximal reward”, would be to find the minimum distance to the customer, which in turn would save time and effort.

Plate evaluation

Author: Weronika Skowronska

For this part, we used CNNs to classify the plate on the table as empty, full or dirty. CNN is a kind of Neural Networks, used to work with pictures - it's good in extracting features from a photo, and therefore it demands less computations than a fully connected layer used for the same task. As it is often hard to say, if the client has done eating - if the waiter is not sure, he asks. The state of the table is then passed to the table object, and is available for further actions.

Client evaluation

Author: Martyna Druminska

If the plate is classified as empty - which means that the client hasn't ordered yet - we want to propose him a menu. We used decision trees to make a prediction on whether the person would like a vegan menu or not, based on the “customers” appearance (answers in the console). The decision tree algorithm learns off of a dataset with a diverse set of variables to make the best prediction. The program generates a flow-like structure that represents the decisions, where each node is a “test” on an attribute. The decision tree finishes when there are only leaf nodes left.

Conclusions

We tried to perform an action as similar as possible to a real-life situation. In our opinion, we did pretty well - we managed to create a program that runs efficiently and cohesively to satisfy the needs of the customer. One remark is that our program has little to do about clients' orders and the paying process - we think that one more subproject could solve this problem.