Algorithms; don't you love them?

About once a month, I walk with a small walking group.  Earlier this year, while enjoying the wonderful landscape of Dartmoor, one of my fellow walkers turned and asked, "David, what is an algorithm?" 

He knew that algorithms affected his daily life, and his experience of the internet, but nobody had ever explained what an algorithm really was.  My starting point was cookery recipes, as an example of a sequence of instructions to be followed one after the other, in order to transform an "input" into an "output".  Then we moved on to other kinds of instructions, including the apocryphal "hair shampoo infinite algorithm" ((1) Wet hair thoroughly; (2) Apply shampoo; (3) Rinse hair and repeat) which has no stopping rule. 

I gave him some other examples, which hopefully allowed him to recognise that when he searches online for some item, then the search engine takes his key word(s) and matches them to pages which fit.  Input: key word(s); output: a list of pages on the web. 

Today my shopping activity has been scrutinised by an algorithm and it has left us curious because we don't know the output from the assorted inputs it has received. 

Our local supermarket has loyalty cards, and a scheme where shoppers can "scan as they shop"
We scan the barcode of our loyalty card, and then the barcodes of each item.  The scanner gives us a running total of our purchases, beeps if there are multi-buy discounts, and allows us to run through our purchases.  So the input to the algorithm is the list of purchases and a profile of me as a previous customer (identified by the loyalty card).  Output at the end is either a bill at the special checkouts, or a request to have all purchases rescanned.  The latter option is triggered by what the algorithm considered to be "unusual" shopping, or a random check.  After all, the shop doesn't want people to scan nine items and "forget" to scan the bottle of champagne. 

Today we were asked to have all our shopping rescanned.  Our shopping had included several items we don't normally buy, because we were trying a new recipe needing special spices, and because we bought some tinned food to go into our church's harvest gifts to the local Food Bank.  So the algorithm seems to have flagged up unusual behaviour, which was unfortunate because we had packed our shopping as we went round the aisles, and we had to unpack everything.

The cashier is not told whether or not we have been honest, though presumably that is recorded as part of our profile on the records linked to the loyalty card.  We had been honest, but ....

... the till receipt omitted one item.  Saturday's newspaper had not been scanned by the cashier.  (Because we had spent more than a certain amount, the newspaper was free, so the oversight didn't affect what we paid.)  So the scanned list and the rescanned list didn't match, but not in the normal way of a mismatch.  Normally a mismatch would be [scanned < rescanned]; today [scanned > rescanned]. 

And our question is: what are the outputs from the algorithm in such circumstances?  Did the programmer consider such an experience?  If so, what will go into our loyalty profile?  And will the cashier's profile as an employee be affected? 

Does anyone know?


Popular Posts