Video
This video demonstrates only the pouring mechanism using artificial colors (because the other parts were not ready neither did we have real ingredients or real test drinkers when the video was shot, another video might follow). The initial idea was to build a machine which decides for you, what you want to drink. To be able to actually mix it, we also built a mechanism and a user interface as described below.
Learning algorithm
Barwin uses an evolutionary algorithm to improve cocktails over time. An evolutionary algorithm is a machine learning mechanism designed in dependence on biologic evolutionary processes.
Each cocktail represents a unique mix of ingredients, i.e. a vector (x₁, x₂, .., x₇) with 0 ≤ xₖ≤ 1 which sums to 1. The first generation is formed by a fixed number of cocktails, selected by a random process. After pouring, people are asked to taste and attach a monetary price to their drink. Based on these values, the algorithm calculates chances for each cocktail to reproduce. Employing these chances, two cocktails from the current generation are selected to mix their genes (= amounts of ingredients) and to form two new cocktails. This process is repeated until the new generation has the same number of cocktails as the previous one. Administrators can also choose to clone the best rated cocktails from the previous into the upcoming generation just as they are (this is called elitism). Now the new generation is to be poured and rated.
As people prefer drinks with familiar names, fixed presets of allowed ingredients were predefined. For example, "Tschunk" only consists of Club Mate, white rum and lime juice. Different presets were inserted, each representing an independent evolutionary process. Adventurous users are recommended to choose the drink "Risky Barwin" which allows all 7 ingredients to be used. In the long run, Risky Barwin should evolve to the perfect cocktail.
Under the premise that users would reward tasteful drinks appropriately, the different cocktails are expected to improve with each generation. One must however consider, that people might not be willing to reveal their willingness to pay and would choose to skimp on their money, irrespective of the actual taste. In this case, the evolutionary algorithm would be left clueless and most likely impair the cocktails' quality by and by. In fact, this behavior is intended as it demonstrates the limits of pure market structures.
Pouring mechanism
In order to mix cocktails with arbitrary mixing rations seven bottles with different ingredients were used. They are mounted to shortened Ikea table legs and turned using strong servo motors. In that way the liquid is poured directly into the cup. An electronic scale underneath the cup allows accurate pouring of the desired amount of liquid. Each bottle is turned down and kept at a specific position until the desired weight is measured on the scale. Then the bottle is turned back to its upright position.
The following measurement data shows how accurate this method works. The pouring error can be determined by measuring the cup weight before and after the pouring liquid. The scale itself works pretty accurate, its absolute error of measurement is less than 1 gram and hence can be ignored. Unfortunately the collected dataset contains some 20 samples with a very large pouring error (more than 30 grams) caused by tests where the cup was touched during the pouring process.
By ignoring all samples with an absolute pouring error with more than 30 grams, our data set contains 740 samples measured under good test conditions. Using the cleaned dataset, the median of the absolute pouring error is 2.7 grams. In 80% of all cases when pouring liquid with one bottle, the absolute pouring error is still less then 4 grams.
The scale does not only allow accurate pouring, it is also useful as a sensor. It is used to detect the cup, so pouring will not start if there is no cup and pouring is interrupted if the cup is...
Read more »