Boachsoft, like many companies, incorporates artificial intelligence and heuristics into its products. I would take you through a few and then we would look at how to apply one of these concepts called minimax to our everyday lives. When human beings apply artificial intelligence to our everyday lives without gadgets do we still have to call it artifical intelligence?
What is artifical Intelligence or AI?
Let me begin by explaining a few concepts. Intelligence can mean several things but what do we mean when we say artificial intelligence. Artificial intelligence is intelligence exhibited by machines. The word cybernetics has its origin in Ancient Greece where the steersman of a boat was called Kybernetes. As I have already stated elsewhere, in modern usage cybernetics means the science and art of understanding and processng. It has been used on many occasions interchangeably with artificial intelligence.
When people think of devices that apply artificial intelligence they usually think of tangible devices like robots, by far the most well known. Robots have been designed in many instances like human beings. These have found their way into so many industries. In manufacturing robots automate several processes — mimicking movements of the human arm. Robots have been used to perform hazardous tasks. Yet another application of robots which is gaining ground is its application in surgery. In many hospitals robotic surgery is offered as a routine procedure and sometimes preferred for some specific surgical procedures.
But robots aren’t always tangible. In software and computers there are robots like the well known search engine robots that index pages. These, just like my products incorporate artificial intelligence, cybernetics and heuristics.
Heuristics, is any approach to problem solving, learning, or discovery that employs a practical method not guaranteed to be optimal or perfect, but sufficient for the immediate goals. I have applied heuristics extensively in Boachsoft product.
Artifical intelligence in Boachsoft Products
Let me tell you how I applied artificial intelligence, cybernetics and heuristics in Boachsoft products. I would not delve to deep; I would only dwell on a few.
Boachsoft Finance 2012, is able to provide a helpful forecast of finances. Here I applied the trio – artificial intelligence, cybernetics and heuristics. Boachsoft Finance in order to forecast your transactions learns your spending habits and your earnings over time. It also uses data from your budgets and scheduled transactions to make this forecast. The forecast center is awesome.
Boachsoft Flames 2.0 is an interesting game. After entering the name of a guy and a lady it tells you the relationship between them. For example, It can tell you if they are just friends or suitable marriage partners. I am sure you are asking yourself how software can possibly tell if two people are lovers or not. It uses an interesting algorithm which i won’t explain here. The game is based on a paper game I played during my primary school days when I was a young boy then in prmary four (fourth grade).
While I encourage young people to play the game I would advise young people seeking marriage partners to read more about it. However, if you have to choose between two women whom you consider equally adorable then you could call this software the perfect matchmaker.
Boachsoft Dammen which has never been publicly released to the general public would be released sometime in the near future. I wrote Dammen in the late 1990s as a hobby. The first version version used a very simple algorithm. However, the second version which I wrote later used the minimax algorithm which I would be talking about in this very article. Dammen is like checkers but has different rules.
Source of Inventions and Solutions
Before I talk about the minimax algorithm and how it is applied let’s talk about the source of invention and great solutions to the everyday problems we face. In the course of interactions, people gain and exchange knowledge. However, this knowledge is rarely enough to invent devices or make breakthroughs.
When I was a young boy I loved reading inventions and the accomplishments of inventors.
Inventions sometimes come through years and years of meticulous scientific research. The great inventor Thomas Alva Edison, also known as the Wizard of Menlo Park, has so many inventions to his name. In his quest to invent the electric light bulb Thomas Edison tried different materials. He once yanked the hair of his friend and tried it to see if it would light. The hair did not work but he finally succeeded in inventing the electric light bulb.
Many solutions and knowledge come from different sources. Four sources have been identified. Some gain ideas from their local environment. By observing nature many inventions were made. Man in his quest to fly observed birds for centuries. Many ideas which eventually led to the invention of the airplane were borrowed from birds.
Other sources of knowledge that lead to solutions and inventions include the internet or software, experience from workplaces and from adventures in distant lands.
MINIMAX algorithm
The minimax algorithm is a an algorithm used extensively. It encompasses artificial intelligence, cybernetics and heuristics.
The minimax algorithm applied to artificial intelligence systems and games was first described by Claude Elwood Shannon. Shannon described how a computer could beat man in checkers by applying this algorithm. The minimax algorithm has its roots in the minimax theory which was first described by John Von Neumann. This theory is also part of a set of theories earlier propounded by Charles Babbage.
In my second version of Boachsoft Dammen I used a modified version of this algorithm. I would be applying the applying this same algorithm when I release the next Boachsoft Dammen.
Computer Chess programs use this algorithm extensively. In 1996 world chess champion Gary Kasparov was defeated by the IBM Deep Blue Super computer in the first game. In 2006 world chess champion Kramnik defeated the Deep Fritz computer program in Germany. Deep Fritz version 10 ran on a computer containing two Intel Xeon CPUs with 3 GHz processor.
With the minimax algorithm problems are solved by simulating every possible scenario several depths ahead. The minimax algorithm assumes that at each point we try to maximize our chances but there are forces that work against us and these forces also try to maximize their chances. The algorithm determines by heuristics the value gained after simulations several depths ahead.
The lookahead or depth at which the simulation ends is determined usually by computer processing power. So something like a tree is created. We then traverse the tree backwards; at every branch we select our maximum score possible that results in the adversaries least maximum score.
The technique is achieved through recursion. All computer programming languages that support recursion can be used for these programs.
The following is the pseudo code of a typical minimax algorithm. The algorithm can be implemented by all computer programming languages that support recursion. For those interested in mathematics, computer programming and software engineering go through it. If you aren’t then skip as it is a bit technical to the latter end of this post.
function minimax(node, depth or lookahead, maximizingPlayer) Start: if depth is 0 //(that is terminal node) return the heuristic score of node to the calling function if maximizingPlayer Let the bestValue be the least value possible that is negative infinity for each child of node //(Start a branch until we get to the end) let v = minimax(child, depth − 1, FALSE) if v is greater than the best value then set bestValue to v return bestValue else // (It is our adversaries turn) Let the bestValue be equal to the highest value possible that is infinity for each child of node v = minimax(child, depth − 1, TRUE) if v is less than the bestValue then set bestValue to v return bestValue
So this pseudo code would create the tree that we want. The tree would have the levels specified. For example a depth or level four would create a tree similar to the following
Applying Minimax to our daily lives and work
From the minimax method described above we can conclude that our choice out of our many options at each level of the simulation should be the option which leads to the least of our adversaries most optimistic scores.
Lets explain this with an example. Lets assume we have three choices. Lets see the possibilities after we make each choice.
Choice 1:
Opponents highest possible score is 30
Opponents least possible score is 2
Choice 2:
Opponents highest possible score is 50
Opponents least possible score is 40
Choice 3:
Opponents highest possible score is 15
Opponents least possible score is 8
Applying the minimax rule we would take the third choice. This way we know that no matter what happens the highest our adversary would get would be 15. If we take the first choice it is possible that the adversary would make the wrong move and score 2 against us — happy day — but what if he scores all the 30.
That is at each branch we choose our most optimistic option. This is the option which would lead to the lowest of our adversaries most optimistic outcome or score. We obtain this choice from the simulation. The example above was analysed only one level deep. The higher the depth of our analysis the better.
Lets take a real world example. A mining company deciding to prospect for minerals analysis the resources which will be wasted if the minerals are not present, but will bring major rewards if they are. What should the mining company do?
The emphasis in business has been on wealth maximization rather than profit maximization. That is to say maximizing the price of each share. Choices can lead to short term gratification in terms of high profits but a fall in the share price because investors envisage a bleak future despite the high profits declared. The minimax algorithm could be useful in this area as well.
Boachsoft LowRider 2016 is an excellent repair shop management software
Boachsoft LandLord is an excellent landlord software.
Credit: Yaw Boakye-Yiadom — Boachsoft Founder, Sole Proprietor and 100% shareholder