Stockfish (Schachprogramm)

Was ist Stockfish?

Stockfish ist eine frei zugängliche Schach-Engine und kann kostenlos als Open Source genutzt werden. 2008 entwickelte Marco Costalba Stockfish 1.0 aus der Open-Source-Engine Glaurung von Ford Romstad. Bald darauf traten Romstad und Joona Kiiski dem Projekt Stockfish bei. Durch ihren Einsatz, zusammen mit einer starken Entwicklergemeinde, wurde es schnell zu dem stärksten Open-Source-Schachprogramm. Seither wird Stockfish stetig weiterentwickelt und es entstehen fortlaufend neue Versionen und Ableger.

Auch 2022 führt das Programm wiederholt die meisten Ranglisten für Computerschach auf der Welt an. Die aktuelle Version Stockfish 15 wurde im April 2022 veröffentlicht und ist mit einer Elo-Zahl von 3542 Platz 1 bei der Computer Chess Rating List (CCRL).

Wie funktioniert das Schachprogramm?

Es handelt sich bei Stockfish um eine „klassische“ Schach-Engine, die auf eine riesige Datenbank aus von Menschen gemachten Spielzügen zurückgreift und durch das Spielen gegen menschliche Spieler lernt. Zur Entscheidungsfindung nutzt es den Alpha-Beta-Suchalgorithmus.

Eine signifikante Steigerung der Spielstärke ist durch die Kooperation mit Leela Chess Zero seit der Version Stockfish 12 zu sehen. Von nun an nutzt es das “Efficiently Updatable Neural Network” (NNUE) für die Stellungsbewertung. Damit kombiniert Stockfish die immense Rechenleistung „traditioneller“ Schachprogramme mit den übermenschlichen Bewertungsmöglichkeiten einer Künstlichen Intelligenz wie AlphaZero oder Leela Chess Zero.

Stockfish gegen AlphaZero

Obwohl Stockfish 8 im Jahr 2017 das stärkste Schachprogramm der Welt war, wurde es von Google DeepMinds AlphaZero deutlich geschlagen. Damit sollte die Überlegenheit des selbstlernenden Algorithmus von AlphaZero gegenüber dem von Menschen trainierten Algorithmus von Stockfish bewiesen werden.

Der Sieg von AlphaZero kann aber relativiert werden, da für dessen Training immense Rechenleistung aufgewendet wurden. Dadurch hat es ungefähr 44 Millionen Schachspiele in 9 Stunden gegen sich selbst spielen können. Außerdem trat eine veraltete Version von Stockfish 8 gegen AlphaZero an.

Stockfish gegen Komodo

Komodo liefert sich seit einigen Jahren Titelkämpfe auf Augenhöhe mit Stockfish. In den Jahren 2016 bis 2019 wurde Komodo Computerschachweltmeister der World Computer Chess Championship (WCCC). Die aktuelle Version Dragon by Komodo 3 ist mit einer Elo-Zahl von 3535 nur knapp hinter Stockfish 15 (Elo-Zahl 3542).

Der Spielstil beider Programme unterscheidet sich etwas. Während Stockfish auf eine präzise und sehr taktische Spielweise setzt, ist Komodo für seine menschliche Spielweise und sein Bewertungssystem beliebt. Deswegen unterstützen viele Schachspieler die Entwickler von Komodo, indem sie die Engine von ihnen kaufen, anstatt nur Stockfish kostenlos zu nutzen.

Online-Ressourcen

Stockfish kann als Open-Source-Software kostenlos bei GitHub heruntergeladen werden. Da der Quellcode für jeden offen zur Verfügung steht, entstehen auch immer wieder neue Varianten und Ableger des Schachprogramms durch die Entwicklergemeinde.

Es handelt sich bei Stockfish um kein komplettes Schachprogramm, sondern um ein UCI (Universal Chess Interface). Daher wird auch ein graphical user interface (GUI) benötigt. Empfohlen werden zum Beispiel Scid, Cute Chess, eboard, Arena, Sigma Chess, Chess Partner oder Fritz.

Stockfish 15, sowie weitere ältere Versionen, stehen ebenfalls für Windows, Linux, macOS, Android sowie Apple iOS auf der offiziellen Seite des Projekts zur Verfügung. Auch hier handelt es sich um ein UCI, dementsprechend wird wieder ein GUI benötigt.

Spieltheorie

Was ist die Spieltheorie?

Die Spieltheorie beschreibt eine Methode in der Mathematik, in welcher Entscheidungsverhalten unter der Berücksichtigung mehrerer beteiligter Personen untersucht werden kann. Dabei wird angenommen, dass der Erfolg jedes Spielers sowohl von den eigenen Handlungen als auch von den Handlungen der Mitspieler abhängt.

Anwendung fand die Spieltheorie in ihren Anfängen vor allem in den Wirtschaftswissenschaften und den Sozialwissenschaften. Ihren Ausgangspunkt hatte die Spieltheorie in den 1920er-Jahren in der Beschreibung des „Homo oeconomicus“, einer Annahme, dass jeder beteiligte Spieler seinen Nutzen maximiert. Darauf aufbauend fanden Überlegungen über nutzen-maximale Verhaltensstrategien statt, welche sich in der Weiterentwicklung der Spieltheorie niederschlugen.

Die Anzahl der betrachteten Spieler im Rahmen eines Spiels sowie die Reihenfolge und Anzahl dessen ist in der Spieltheorie nicht begrenzt.

Was sind nicht-kooperative und kooperative Spieltheorien?

Die Spieltheorie unterteilt sich grundlegend in die Teilgebiete der kooperativen und nicht-kooperativen Spieltheorie. Während bei kooperative Spielen alle beteiligten Spieler bindende Verträge abschließen, ist dies bei nicht-kooperativen Spielen nicht der Fall.

Somit stützen sich nicht-kooperative Spiele auf das Eigeninteresse jedes einzelnen Spielers unter der Annahme der jeweiligen Nutzenmaximierung.

Bei kooperativen Spielen können die einzelnen Spieler bindende Verträge abschließen und sogenannte Koalitionen eingehen, um so den gemeinschaftlich größten Nutzen zu generieren. Bei kooperativen Spielen ist es auch möglich, dass es unter den einzelnen Spielern zu Seitenzahlungen kommt und somit durch Nutzentransformation der größtmögliche Nutzen für jeden Spieler erzielt werden kann.

Strategien im Spiel

In der Spieltheorie finden sich einige Lösungskonzepte, welche die Verhaltensweise der einzelnen Spieler beschreiben bzw. erklären:

  • Nash-Gleichgewicht: Das Nash-Gleichgewicht (benannt nach seinem Begründer John Nash) beschreibt eine Spielstrategie, in welcher sich jeder einzelne Spieler optimal verhält und sich durch einseitiges Abweichen von seiner gewählten Strategie nicht mehr verbessern kann.
  • Min-Max-Theorem: Das Min-Max-Theorem zielt im Spezialfall des 2-Personen-Nullsummenspiels darauf ab, dass jene Strategie in der Spieltheorie gewählt wird, welche die gegnerische Maximal-Auszahlung minimiert bzw. die eigene Minimal-Auszahlung maximiert. Aufgrund der Spezialsituation des Nullsummenspiels ergibt sich aus der Nutzenminimierung des Gegners eine Nutzenmaximierung der eigenen Strategie und umgekehrt.
  • Shapley-Wert: Der Shapley-Wert findet in kooperativen Spielen Anwendung und beschreibt Nutzenveränderungen der einzelnen Spieler bei Eingehen von Koalitionen mit anderen Spielern. Die Höhe des Werts wird umgangssprachlich auch als „Macht“ beschrieben. Beispielsweise kann in politischen Situationen bei Parlamentsbildungen einer kleinen Partei ein großer Shapley-Wert zugeschrieben werden, wenn mit ihr die notwendige Mehrheit erreicht werden kann.

Beispiele von Spielen

  • Gefangenendilemma: Bei dem bekanntesten Beispiel in der Spieltheorie wird angenommen, dass zwei Spieler einer Straftat beschuldigt werden. Gesteht lediglich ein Spieler, wird dieser aufgrund einer Kronzeugenregelung freigesprochen, der andere inhaftiert. Gesteht keiner, werden beide mangels Nachweisbarkeit mit einer niedrigen Strafe belegt. Gestehen beide, erhalten beide die Höchststrafe. Da es sich um ein nicht-kooperatives Spiel handelt, bei welchem der Gegenspieler nicht vertraglich gebunden werden kann, entscheiden sich beide Spieler für ein Geständnis und erhalten die Höchststrafe.
  • Feiglingsspiel: Hier besteht die Annahme, dass zwei Spieler mit einem Fahrzeug aufeinander zurasen. Weicht lediglich ein Spieler aus, gilt er bei seinem Gegenüber als Angsthase. Weicht niemand aus, verlieren beide das Leben. Dieses Problem zeigt drei Nash-Gleichgewichte, da jede Option des Ausweichens gegenüber dem Verlust des Lebens von Vorteil ist.
  • Beauty Contest: Der von John Keynes begründete Beauty Contest bezieht in die Strategiewahl das Verhalten der anderen Mitspieler in die Spieltheorie mit ein, indem die Metapher ein Gewinnspiel offeriert, bei welchem jener Spieler gewinnt, welcher bei der Wahl zu einem Schönheitswettbewerb sich für jene Person entschieden hat, welche auch die restlichen Spieler am häufigsten gewählt haben.
  • Tragik der Allmende: Dieses Problem beschreibt die Tatsache, dass frei zugängliche, aber begrenzte Ressourcen nicht effizient genutzt werden. Die individuelle Nutzenmaximierung (z.B. durch Überfischung) führt zum Ruin aller.

Suchalgorithmus

Was ist ein Suchalgorithmus?

Unter einem Suchalgorithmus versteht man eine schrittweise Prozedur, die das Ziel hat, bestimmte Daten aus einer großen Anzahl an Daten herauszufiltern und diese Daten zu lokalisieren. Dieser Prozess ist ein klassisches Verfahren in der EDV, also in der elektronischen Datenverarbeitung. Es wird im Allgemeinen zwischen einfachen und heuristischen Suchverfahren unterschieden. Die Suchalgorithmen nutzen einen Suchschlüssel, um die Schritte der Prozedur zu durchlaufen. 

Das Ergebnis der Prozedur ist meist ein Erfolgs- oder Fehlerstatus, der als Boolean true / false angegeben wird. Wie effizient ein solcher Suchalgorithmus ist, hängt vor allem davon ab, welche Daten verwendet und in welcher Art und Weise die Daten genutzt werden. Die grundlegendste Form der Suchalgorithmen ist der lineare Suchalgorithmus. Es gibt allerdings sehr verschiedene Formen von Suchalgorithmen, die sich zum Beispiel durch die Art und die Effizienz der Suche unterscheiden. 

Was sind Arten von Suchalgorithmen?

Einfacher Suchalgorithmus

Eine Form der Suchalgorithmen sind die einfachen Suchalgorithmen. Diese vernachlässigen die spezielle Natur des zugrundeliegenden Problems und können deshalb abstrakter implementiert werden. Das bedeutet, dass sie für eine große Auswahl an Problemen genutzt werden können. Das ist der Vorteil der einfachen Suchalgorithmen. Ein Nachteil ist, dass das Kosten-Nutzen-Verhältnis meist eher gering ist und die Suche kosten- und zeitaufwendig ist. 

Eine Form der einfachen Suchalgorithmen ist die Suche in Listen. Bei dieser Art von Suchalgorithmus ist das Ziel der Suche, ein bestimmtes Element in einer Liste zu finden. Von diesem Element muss der zugehörige Suchschlüssel bekannt sein. Dieses Problem kommt sehr häufig in der Informatik vor, deshalb ist diese Form der Algorithmen sehr gut untersucht.

Eine weitere Möglichkeit der einfachen Suche ist die sogenannte Suche in Bäumen, die auch als Königsdisziplin der Suchalgorithmen gilt. Bei dieser Suchform werden Knoten von Bäumen durchsucht, unabhängig davon, ob der zu untersuchende Baum explizit oder implizit ist.

Heuristischer Suchalgorithmus

Neben den einfachen Suchalgorithmen gibt es auch die heuristischen Suchalgorithmen. Als Heuristiken werden Strategien bezeichnet, die das Auffinden von Lösungen für ein bestimmtes Problem beschleunigen können. Ein Beispiel für eine solche Heuristik sind Faustregeln, menschliche Problemlösungsprozesse oder die Orientierung an Beispielen und Vorbildern. Die heuristischen Suchalgorithmen werden in uninformierte, oder auch die blinde Suche und informierte, also der Nutzung von Heuristiken, unterschieden. 

Die Entwicklung und darauffolgende Implementierung von neuen Verfahren und die Anwendung auf die verschiedensten Problembereiche werden auch zum algorithmischen Kern der künstlichen Intelligenz gezählt. Dazu gehören zum unter anderem die Steuerung von Robotern oder auch klassische Gesellschaftsspiele, also Nullsummenspiele mit vollständigen Informationen, wie beispielsweise Schach, Go oder Dame. 

Die heuristischen Suchalgorithmen werden vor allem dann verwendet, wenn ein Algorithmus zu komplex und rechenintensiv ist. Dabei werden unter anderem auch Fehler toleriert, wenn die Rechenzeit verkürzt und der Suchprozess insgesamt effizienter ist. 

Weitere Suchverfahren

Neben den einfachen und heuristischen Suchalgorithmen gibt es eine Reihe weiterer Suchverfahren, die dazu genutzt werden können, Daten zu lokalisieren. Darunter zählen evolutionäre Algorithmen, Suchverfahren für Zeichenketten oder beispielsweise die Adversarial Search, die vor allem im Bereich der künstlichen Intelligenz eingesetzt wird. Meist ist die Effizienz und Leistung der verschiedenen Suchverfahren sehr ähnlich. Unterschiede sind hauptsächlich dann zu erkennen, wenn ein Verfahren auf eine spezielle Klasse von Problemen angewandt wird. 

Satz von Bayes

Was ist der Satz von Bayes?

Der Satz von Bayes ist nach dem englischen Geistlichen Thomas Bayes benannter mathematischer Satz, der aus der Wahrscheinlichkeitstheorie stammt und mit dem Aussagen zum Berechnen von bedingten Wahrscheinlichkeiten gemacht werden.

So geht man von einem ganz bekannten Wert P A ( B ) aus und mit dessen Hilfe kann man P B ( A ) berechnen. Dieser Satz stellt die direkte Verbindung zwischen der bedingten Wahrscheinlichkeit und der umgekehrten bedingten Wahrscheinlichkeit her. Dieses Verfahren wird auch als Rückwärtsinduktion bezeichnet. Wichtig ist es, die A-priori-Wahrscheinlichkeit P(A) zu kennen und diese zu berücksichtigen. Der Satz kann nur dann eingesetzt werden, wenn P ( A ) und P ( B ) etwa gleich groß sind.

Der Satz von Bayes, auch Formel von Bayes oder Bayes Theorem genannt, wird auch in der Bayesschen Statistik verwendet und im Rahmen der induktiven Statistik genutzt, um Parameter zu schätzen und zum Testen von den Hypothesen.

Wie lautet der Satz von Bayes?

Der mathematische Satz lautet:

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

Dabei ist P(A|B) ganz genau die bedingte Wahrscheinlichkeit von A, falls B bereits eingetreten ist. Entsprechend ist P(B|A) ganz einfach die Wahrscheinlichkeit des Ereignisses B, unter der Bedingung, dass A eingetreten ist. P(A) und P(B) sind dabei die jeweiligen Wahrscheinlichkeiten dieser Ereignisse. Man geht zur Berechnung von dem bekannten Wert P(B|A) aus und ist dabei an dem Wert P(A|B) interessiert. Der Satz von Bayes berechnet die umgekehrte Form der bedingten Wahrscheinlichkeit.

Welche Anwendungsgebiete gibt es für das Bayes Theorem?

Bei allen Fragen des Lernens aus bestimmten Erfahrungen kann dieser Satz in der Statistik eingesetzt werden. Dies ist bei der A-priori-Wahrscheinlichkeitseinschätzung auf Basis von Erfahrungen möglich, bei der diese verändert und in eine A-posteriori-Verteilung überführt wird (Bayessche Statistik).

Genutzt wird das Bayes Theorem auch im Data-Mining bei Bayes-Klassifikatoren, bei denen theoretische Entscheidungsregeln mit beweisbaren minimalen Fehlerraten genutzt werden. Auch für die Spamerkennung können Bayes-Filter eingesetzt werden. So kann durch charakteristische Wörter in einer E-Mail (Ereignis A) auf die Spam-Eigenschaft (Ereignis B) geschlossen werden.

In der Künstlichen Intelligenz wird der Bayes Satz genutzt, um in Domänen mit nicht-sicherem Wissen Schlussfolgerungen zu ziehen. Damit wird nicht deduktiv gearbeitet und es ist möglich, dass Schlussfolgerungen nicht immer korrekt sind. Es wird also abduktiv vorgegangen. Diese Hypothesenbildung ist sehr nützlich für das Lernen in künstlichen Systemen.

Zudem gibt es Anwendungsgebiete beim Qualitätsmanagement, in der Entscheidungstheorie, der Informationsökonomik, beim Grundmodell der Verkehrsverteilung, in der Bioinformatik, in der Kommunikationstheorie, in der Ökonometrie und in den Neurowissenschaften.

Eingesetzt wird der Satz von Bayes in der Informatik im Bereich von Big Data. Dort gibt es Bayes-Klassifikatoren. Auch in der Bioinformatik und in den Neurowissenschaften gibt es bestimmte Verfahren, die diesen Satz anwenden. Die meisten empirischen Studien können basierend auf Schlussfolgerungen durch diese Regel geführt werden.

Schwache KI

Als Schwache KI ist eine sogenannte künstliche Intelligenz gemeint, welche keine künstlichen Empfindungen besitzt. Ein künstliches Bewusstsein ist neben komplexen sowie kognitiven Fertigkeiten sowie Fähigkeiten ebenfalls nicht vorhanden.

Anwendungsgebiete

In der weltweiten Wirtschaft gehört zur Normalität dazu, dass KI-Systeme unterstützend eingesetzt werden. Darunter zählen beispielsweise auch Schwache KI. Systeme dieser Art sind nicht im großen Stil lernfähig, sondern dienen nur einem einmaligen sowie temporären Zweck. Beispielsweise bei der Gesichtserkennung an brisanten Örtlichkeiten oder diversen Empfehlungssystemen finden diese eine sinnvolle Anwendung. Generell bei der Bereitstellung und Sicherung von Dienstleistungen und Produkten erfüllt der Einsatz von einer schwachen KI eine Funktion, die dem Anbieter viel Arbeit abnimmt, welche dieser sonst per Hand und unter Aufwand von höheren Kosten realisieren müsste.

Systeme derart sind nur im begrenzten Umfang mit Informationen und Verhaltensweisen gefüttert. Diese sollen nur einen bestimmten Zweck dienen. Individuelle sowie eigenständige Entwicklungsmöglichkeiten seitens der KI ist nicht gegeben. Auch Apple als Markenanbieter oder Amazon profitiert von KI-Systemen derart.

Starke KI

Im Gegensatz zu Schwache KI verfügt die sogenannte Starke KI eine besondere Art von Bewusstsein. Ein schönes Beispiel dafür ist Android Commander Data vom Raumschiff Enterprise der mithilfe eines speziellen Chips Emotionen auf eine ganz eigene Art empfinden und selbst auch wiedergeben kann. KI-Systeme derart können sich auf Strategien anderer einstellen und daraus resultierend eigene Vorgehensweise entwickeln sowie mit der Zeit sogar noch modifizieren. Was jedoch fehlt, ist der menschliche Faktor, welcher eine Schwache- oder Starke KI niemals besitzen und anwenden kann.

Künstliche Intelligenz

Schwache- und Starke KI lassen sich als künstliche Intelligenzen zusammenfassen. Hauptaufgabe ist es, ohne persönliche Wertung und Umschweife sich auf das Verhalten von Nutzern und Anwendern einzulassen und diesen das zu präsentieren, was sie letztlich wollen und auch erwarten. Einzig der Umfang von verwendeten Algorithmen und eingespeisten Informationen bestimmen darüber, inwieweit sich die künstliche Intelligenz auf das Verhalten realer Menschen einstellen kann und darf.

Viele stellen sich schon seit geraumer Zeit die Frage, ob eine komplexe KI mit Starke KI gleichzeitig auch ein Lebewesen darstellen kann. Bei diesem Punkt scheiden sich oft die Geister. Lebewesen an sich zeichnen sich durch die Geburt, eigenständige Fortpflanzung und das Vorhandensein eines Stoffwechsels aus. Auch der Tod gehört mit dazu. Von der Logik her kann jedoch nichts sterben, was nie biologisch geboren wurde. Somit sind sich viele Menschen einig, dass eine künstliche Intelligenz kein Lebewesen im klassischen Sinne darstellen kann.

Entwicklungspotenzial

Unter normalen Umständen kann eine schwache AI nicht zu einer Starke KI werden, sofern die Funktion zur Weiterentwicklung nicht mit einprogrammiert wurde. Jede Art von künstliche Intelligenz, welche bisher entwickelt wurde, diente zumeist bestimmten Zwecken und Optimierungen in Bezug auf die Wirtschaft oder das Privatleben der menschlichen Bevölkerung. Der kontinuierliche Fortschritt ist ein Grund dafür, das AI- und KI-Systeme die Zukunft gehört. Globalisierung und die ständige Weiterentwicklung von Technologien und Abläufen befinden sich stets im Einklang.