final_evaluation_v2

This commit is contained in:
Martyna Drumińska 2020-06-15 08:40:36 +00:00
parent 47f6311d71
commit b0914a076c

View File

@ -1,30 +1,29 @@
Waiter project - Tao-Sen Chang, Weronika Skowronska, Martyna Druminska
# Waiter project
Authors: Tao Sen Chang, Martyna Druminska, Weronika Skowronska.
The main objective of our program is to help the customer with their
order, serve meals and pick up dirty plates. Since the program emulates
real life circumstances, where the waiter should work efficiently, we
used reinforcement learning to train the agent to arrive at the tables
as fast as possible by taking note of the tables coordinates. If the
plates happen to be empty, meaning that they probably have not ordered
yet, the program renders a couple questions to determine if the customer
would like a vegan menu or not. We used the decision tree learning
algorithm, to make the best recommendation to the customer. Every 10
plates visited, the program asks the user whether they would like to
exit the program or not. 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. Next, we used decision trees to make a prediction
on whether the person would like a vegan menu or not, based on the
“customers” appearance. 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. In conclusion, we managed to create
a program that runs efficiently and cohesively to satisfy the needs of
the customer.
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.