Stockfish (chess program)

What is Stockfish?

Stockfish is a freely accessible chess engine and can be downloaded free of charge as a Open Source be used. In 2008, Marco Costalba developed Stockfish 1.0 from Ford Romstad's open source engine Glaurung. Soon after, Romstad and Joona Kiiski joined the Stockfish project. Through their efforts, together with a strong developer community, it quickly became the strongest open source chess program. Since then, Stockfish has continued to evolve, with new versions and offshoots being created all the time.

Also in 2022, the programme repeatedly tops the most rankings for computer chess in the world. The current version Stockfish 15 was released in April 2022 and is ranked number 1 on the Computer Chess Rating List (CCRL) with an Elo rating of 3542.

How does the chess programme work?

Stockfish is a "classic" chess engine that draws on a huge database of human-made moves and learns by playing against human players. It uses the Alpha Beta search algorithm to make decisions.

A significant Increasing the playing strength is possible through the cooperation with Leela Chess Zero since version Stockfish 12 to see. From now on, it uses the "Efficiently Updatable Neural Network" (NNUE) for position evaluation. In this way, Stockfish combines the immense computing power of "traditional" chess programmes with the superhuman evaluation possibilities of an artificial intelligence such as AlphaZero or Leela Chess Zero.

Stockfish against AlphaZero

Although Stockfish 8 was the strongest chess program in the world in 2017, it was clearly beaten by Google DeepMind's AlphaZero. This was to prove the superiority of AlphaZero's self-learning algorithm over Stockfish's human-trained algorithm.

AlphaZero's victory can be put into perspective, however, as immense computing power was spent on its training. As a result, it was able to play about 44 million chess games against itself in 9 hours. In addition, an outdated version of Stockfish 8 competed against AlphaZero.

Stockfish against Komodo

Komodo has been going toe-to-toe with Stockfish for several years. From 2016 to 2019, Komodo was the World Computer Chess Championship (WCCC) World Computer Chess Champion. The current version Dragon by Komodo 3, with an Elo rating of 3535, is only just behind Stockfish 15 (Elo rating 3542).

The playing style of both programmes differs somewhat. While Stockfish focuses on a precise and very tactical way of playing, Komodo is popular for its human style of play and its rating system. That is why many chess players support the developers of Komodo by buying the engine from them instead of just using Stockfish for free.

Online resources

Stockfish can be downloaded as open source software free of charge from GitHub can be downloaded. Since the source code is openly available to everyone, new variants and offshoots of the chess programme are also constantly being created by the developer community.

Stockfish is not a complete chess programme, but a UCI (Universal Chess Interface). Therefore a graphical user interface (GUI) is also needed. Recommended are for example Scid, Cute Chess, eboard, Arena, Sigma Chess, Chess Partner or Fritz.

Stockfish 15 and other older versions are also available for Windows, Linux, macOS, Android and Apple iOS. official page of the project is available. This is also a UCI, so a GUI is needed again.

Game theory

What is game theory?

Game theory describes a method in mathematics in which decision-making behaviour can be studied taking into account several people involved. The assumption is that each player's success depends on both their own actions and the actions of their fellow players.

In its early days, game theory was mainly applied in economics and the social sciences. The starting point of game theory in the 1920s was the description of "homo oeconomicus", an assumption that each player involved maximises his or her benefit. Based on this, considerations about utility-maximising behavioural strategies took place, which were reflected in the further development of game theory.

The number of players considered in a game, as well as the order and number of players, is not limited in game theory.

What are non-cooperative and cooperative game theories?

Game theory is fundamentally divided into the subfields of cooperative and non-cooperative game theory. While in cooperative games all players involved conclude binding contracts, this is not the case in non-cooperative games.

Thus, the Non-cooperative games on the self-interest of each individual player under the assumption of respective utility maximisation.

In cooperative games, individual players can enter into binding contracts and form so-called coalitions in order to generate the greatest collective benefit. In cooperative games, it is also possible that there are side payments among the individual players and thus the greatest possible benefit for each player can be achieved through benefit transformation.

Strategies in play

In game theory, some solution concepts can be found that describe or explain the behaviour of the individual players:

  • Nash equilibrium: The Nash equilibrium (named after its founder John Nash) describes a game strategy in which each individual player behaves optimally and can no longer improve by unilaterally deviating from his chosen strategy.
  • Min-max theoremIn the special case of a two-person zero-sum game, the min-max theorem aims at choosing the strategy in game theory that minimises the opponent's maximum payoff and maximises one's own minimum payoff. Due to the special situation of the zero-sum game, the minimisation of the opponent's utility results in a maximisation of the utility of one's own strategy and vice versa.
  • Shapley valueThe Shapley value is used in cooperative games and describes changes in the utility of individual players when entering into coalitions with other players. The value is also colloquially described as "power". For example, in political situations in parliamentary formations, a large Shapley value can be attributed to a small party if it can achieve the necessary majority.

Examples of games

  • Prisoner's dilemmaIn the best-known example in game theory, it is assumed that two players are accused of a crime. If only one player confesses, he is acquitted under a leniency programme and the other is imprisoned. If neither confesses, both are given a low sentence due to lack of evidence. If both confess, both receive the maximum sentence. Since it is a non-cooperative game where the opponent cannot be bound by contract, both players choose to confess and receive the maximum penalty.
  • Coward's gameThe assumption here is that two players are racing towards each other in a vehicle. If only one player swerves, he is considered a scaredy-cat by his opponent. If no one swerves, both lose their lives. This problem shows three Nash equilibria, as each option of evasion is advantageous over loss of life.
  • Beauty ContestThe beauty contest founded by John Keynes incorporates the behaviour of the other players in the game theory into the choice of strategy, in that the metaphor offers a lottery in which the winner is the player who has chosen the person most often chosen by the other players in a beauty contest.
  • Tragedy of the commons: This problem describes the fact that freely accessible but limited resources are not used efficiently. The individual maximisation of benefits (e.g. through overfishing) leads to the ruin of all.

Search algorithm

What is a search algorithm?

A search algorithm is a step-by-step procedure that aims to filter out specific data from a large amount of data and locate that data. This process is a classic procedure in EDP, i.e. electronic data processing. A distinction is generally made between simple and heuristic search procedures. The search algorithms use a search key to go through the steps of the procedure. 

The result of the procedure is usually a success or error status, which is specified as a Boolean true / false. How efficient such a search algorithm is depends mainly on what data is used and in what way the data is used. The The most basic form of search algorithm is the linear search algorithm.. However, there are very different forms of search algorithms, which differ, for example, by the type and the Search efficiency distinguish. 

What are types of search algorithms?

Simple search algorithm

One form of search algorithms are the simple search algorithms. These neglect the specific nature of the underlying problem and can therefore be implemented in a more abstract way. This means that they can be used for a wide range of problems. This is the advantage of simple search algorithms. A disadvantage is that the cost-benefit ratio is usually rather low and the search is costly and time-consuming. 

One form of the simple search algorithms is the Search in lists. With this type of search algorithm, the aim of the search is to find a specific element in a list. The corresponding search key of this element must be known. This problem occurs very often in computer science, so this form of algorithm is very well studied.

Another possibility for a simple search is the so-called Search in treeswhich is also considered the supreme discipline of search algorithms. In this type of search, nodes of trees are searched, regardless of whether the tree to be examined is explicit or implicit.

Heuristic search algorithm

Besides the simple search algorithms, there are also the heuristic search algorithms. As Heuristics are strategies that can speed up the process of finding solutions to a particular problem. An example of such heuristics are rules of thumb, human problem-solving processes or orientation to examples and role models. Heuristic search algorithms are divided into uninformed, or blind search, and informed, i.e. the use of heuristics. 

The development and subsequent implementation of new procedures and the application to the most diverse problem areas will also become the algorithmic core of the artificial intelligence counted. This includes, among other things, the control of Robots or also classic parlour games, i.e. zero-sum games with complete information, such as chess, Go or lady. 

The heuristic search algorithms are mainly used when an algorithm is too complex and computationally intensive. Among other things, errors are also tolerated if the computing time is reduced and the search process is more efficient overall. 

Other search methods

In addition to the simple and heuristic search algorithms, there are a number of other search methods that can be used to locate data. These include evolutionary algorithms, Search method for strings or for example the Adversarial Searchwhich is mainly used in the field of artificial intelligence. Most of the time, the efficiency and performance of the different search methods is very similar. Differences can mainly be seen when a procedure is applied to a special class of problems. 

Bayes theorem

What is Bayes' theorem?

Bayes' theorem is named after the English clergyman Thomas Bayes Mathematical theorem that originates from probability theory and is used to make statements about the calculation of conditional probabilities..

Thus, one starts from a completely known value P A ( B ) and with its help one can calculate P B ( A ). This theorem establishes the direct connection between the conditional probability and the inverse conditional probability. This procedure is also called backward induction. It is important to know the a priori probability P(A) and to take it into account. The theorem can only be used if P ( A ) and P ( B ) are approximately equal.

Bayes' theorem, also called Bayes' formula or Bayes' theoremis also used in Bayesian statistics and in inductive statistics to estimate parameters and test hypotheses.

What is Bayes' theorem?

The mathematical theorem reads:

P(A|B) = P(B|A) * P(A) / P(B).

Here, P(A|B) is precisely the conditional probability of A if B has already occurred. Correspondingly, P(B|A) is simply the probability of the event B, under the condition that A has occurred. P(A) and P(B) are the respective probabilities of these events. To calculate them, one starts from the known value P(B|A) and is interested in the value P(A|B). Bayes' theorem calculates the inverse form of the conditional probability.

What are the applications of Bayes' Theorem?

In all questions of learning from certain experiences, this theorem can be used in statistics. This is possible in a priori probability estimation based on experience, where this is changed and transformed into an a posteriori distribution (Bayesian statistics).

The Bayes theorem is also used in the Data mining in Bayes classifiers, which use theoretical decision rules with provable minimum error rates. Bayesian filters can also be used for spam detection. Thus, characteristic words in an email (event A) can be used to infer the spam property (event B).

In the Artificial intelligence Bayes' theorem is used to draw conclusions in domains with uncertain knowledge. This is not a deductive approach and it is possible that conclusions are not always correct. The approach is therefore abductive. This hypothesis generation is very useful for learning in artificial systems.

In addition, there are areas of application in quality management, decision theory, information economics, the basic model of traffic distribution, bioinformatics, communication theory, econometrics and neuroscience.

Bayes' theorem is applied in computer science in the field of Big Data. There are Bayes classifiers there. There are also certain procedures in bioinformatics and neuroscience that apply this theorem. Most empirical studies can be conducted based on inferences by this rule.

Weak AI

Weak AI is a so-called artificial intelligence that has no artificial sensations. An artificial consciousness is also not present, in addition to complex and cognitive skills and abilities.

Areas of application

In the global economy, it is normal for AI systems to be used in a supportive capacity. This includes, for example, weak AI. Systems of this type are not capable of learning on a large scale, but only serve a one-off and temporary purpose. For example, they can be used for facial recognition in sensitive locations or for various recommendation systems. In general, the use of weak AI fulfils a function in the provision and safeguarding of services and products that relieves the provider of a lot of work that would otherwise have to be carried out manually and at higher cost.

Systems of this kind are only fed with information and behaviour to a limited extent. These should only serve a specific purpose. Individual and independent development possibilities on the part of the AI are not given. Apple as a brand provider or Amazon also profit from AI systems in this way.

Strong AI

In contrast to weak AI, so-called strong AI has a special kind of consciousness. A good example of this is Android Commander Data from the Starship Enterprise, who, with the help of a special chip, can feel emotions in a very unique way and also reproduce them himself. AI systems of this kind can adjust to the strategies of others and develop their own procedures as a result, and even modify them over time. What is missing, however, is the human factor, which a weak or strong AI can never possess and apply.

Artificial intelligence

Weak and strong AI can be summarised as artificial intelligences. The main task is to engage with the behaviour of users without personal judgement and circumlocution and to present them with what they ultimately want and expect. Only the scope of the algorithms used and the information fed in determine the extent to which artificial intelligence can and may adapt to the behaviour of real people.

For some time now, many have been asking the question of whether a complex AI with Strong AI can also represent a living being at the same time. Opinions are often divided on this point. Living beings are characterised by birth, independent reproduction and the existence of a metabolism. Death is also part of this. Logically, however, nothing can die that was never born biologically. Thus, many people agree that an artificial intelligence cannot represent a living being in the classical sense.

Development potential

Under normal circumstances, a weak AI cannot become a strong AI unless the function for further development has been programmed in. Every type of artificial intelligence that has been developed so far has mostly served specific purposes and optimisations related to the economy or the private lives of the human population. Continuous progress is one reason why AI and AI systems are the future. Globalisation and the constant development of technologies and processes are always in harmony.