final_evaluation_v2
This commit is contained in:
parent
47f6311d71
commit
b0914a076c
@ -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 table’s 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.
|
Loading…
Reference in New Issue
Block a user