Wie kann ein Computer Schach spielen?

Hallo,

ich beschäftige mich gerade damit, wie ein Computer überhaupt
funktioniert, wie er das Rechnen lernte, wie man Software in
Hardware implantiert (sog. Firmware), wie die Hardware zusam-
menspielt als Logikschaltung, wie man mit Software die Hardw.
steuert, u. schließlich wie ein Computer Schach spielen kann,
obwohl er doch nicht denken kann???

Kann mir das alles mal einer hier bitte kurz erklären? :wink:
Oder interessante Links dazu?

Danke und Gruß,
Yedi386

Hi Yedi,

das könnte problemlos auch im Brett „Philosopie“ stehen. :wink:

In gewisser Weise denken Computer schon. - Es wird eine Fragestellung soweit reduziert, dass diese (stark vereinfacht) mit „ja“ oder „nein“ zu beantworten ist bzw. auf höherer Ebene Entscheidungen mit „wenn - dann“ getroffen werden.

http://www.dgphil2008.de/fileadmin/download/Sektions…

http://www.oberstufeninformatik.de/info13/TheorieV.pdf

http://de.wikipedia.org/wiki/K%C3%BCnstliche_Intelli…

Wenn Du Dich für dafür ernsthaft interessierst (und viel Zeit hast), kannst Du Dich ja mit Programmierung (quasi Mathematik) befassen. - Dann bekommst Du einen kleinen Einblick in ein weites Feld.

Ich kann es Dir nicht näher erklären. - Vielleicht findet sich ja jemand, der es kurz und prägnant in wenigen Sätzen (be-)schreiben kann.

Ro

Moin, Yedi,

wie ein Computer Schach spielen kann,
obwohl er doch nicht denken kann???

ganz einfach: Er versteht zwar nichts von dem, was er tut, das jedoch kann er unheimlich schnell.

Die Regeln kann man ihm beibringen, anhand derer rechnet die Software die nächsten 10 (20? 100?) Züge voraus. Die Technik heißt brute force, auf deutsch rohe Gewalr. Dazu kommen Eröffnungsbibliotheken und ähnliches.

Kann mir das alles mal einer hier bitte kurz erklären? :wink:

Das andere Zeugs zu erklären dauert etwa 6 Semester, das machen wir dann morgen.

Gruß Ralf

Hallo,

eigentlich alles ganz einfach. Allein die pure Menge dessen, was da an Daten verarbeitet wird, und ständig vollständig in wahnsinniger Geschwindigkeit einheitlich bewertet wird, macht den Computer so erfolgreich. Bei ihm sind einfach jede Menge Eröffnungsvarianten mit entsprechenden Varianten des weiteren Spielverlaufs und deren Bewertung hinterlegt. Er kann zu jeder Stellung nicht nur einen, sondern diverse weitere Züge beider Spieler für sich durchspielen und bewerten, bevor er den Zug dann tatsächlich ausführt. Dabei helfen ihm statistische Methoden, hinterlegte Grunddaten, Regelwerke (z.B. ganz trivial: Mattstellung in n-Zügen ist besser als in n+1 Zügen), …

Wenn Du Dir überlegst, was ein Spieler mit allen 16 Figuren auf dem Brett, die jeweils diverse Züge ausführen können, schon alleine an ersten Zügen bewerten muss, und auf jeden dieser Züge dann die Reaktionen von allen 16 Figuren des anderen Spielers durchgespielt und bewertet werden muss, um nur eine Aktion-Reaktion umfassend bewerten zu können, dann ist das für den Menschen, der auch kaum so stringent und immer vollumfassend und perfekt vergleichbar bewertet, eine wahnsinnige Herausforderung. Für eine Maschine hingegen, ist es stumpfes Abarbeiten einer Vielzahl von immer gleichen Schritten:

Ist Figur X noch im Spiel?
Welche Züge kann Figur X machen?
Ersten Zug annehmen
Ist Figur Y des Gegeners noch im Spiel?
Welche Züge kann Figur Y aufgrund meines abgenommenen Zuges machen?
Ersten Zug annehmen
Stellung bewerten
Nächster potentieller Zug der Figur Y des Gegners
Nächste Figur des Gegners
Nächste eigene Figur

Höchstbewerteten eigenen Zug ausführen.

Das ist natürlich jetzt alles extrem vereinfacht. Es gibt da noch jede Menge Tricks und Kniffe, auf Basis hinterlegter Stellungen und Teile davon, bestimmte Teile aus dem gesamten Ablauf gleich auszuklammern, Teile zu priorisieren, bestimmte Varianten weiter als andere zu verfolgen, zeitliche Limits zu setzen, …

Gruß vom Wiz

Hallo Yedi386,

ich beschäftige mich gerade damit, wie ein Computer überhaupt
funktioniert

Kann mir das alles mal einer hier bitte kurz erklären? :wink:

Bisschen viel auf einmal. Unmöglich, das alles kurz zu erklären, zumal wir weder wissen, was Du schon weisst, noch, ab welcher Stufe das beginnen soll.
Sollen wir beim Binärsystem beginnen?
http://de.wikipedia.org/wiki/Dualsystem
erklären, wie ein Addierwerk funktioniert?
http://de.wikipedia.org/wiki/Addierwerk
welche Rolle Register spielen?
http://de.wikipedia.org/wiki/Register_%28Computer%29
sollen wir eine Übersicht der Programmiersprachen geben?
http://de.wikipedia.org/wiki/Programmiersprache
http://de.wikipedia.org/wiki/Geschichte_der_Programm…
und halt, fast vergessen, eine Einführung in die boolsche Algebra ist eigentlich auch unumgänglich für das Verständnis
http://members.aon.at/kryo/subinfo/digit/digit03.html
Du siehst, so führt das ins Unendliche, und dabei sind wir noch nicht mal bei den Betriebssystemen, beim BIOS, beim Compilerbau, bei den Algorithmen oder bei der Entwicklung der Computer (von Zuses Relaisrechner Z1 bis zu den heutigen Modellen) angelangt.
http://www.weller.to/
http://de.wikipedia.org/wiki/Computer#Geschichte
Und über jedes Thema existieren viele, sehr viele dicke Bücher…

Oder interessante Links dazu?

Such dir einige raus, jeder hat auch weiterführende Links. Wenn Du gesuchte Begriffe in der Wikipedia eingibst (und nicht alles 1:1 glaubst und übernimmst), hast Du auch sehr gute Startpunkte. Und ein Gang in eine halbwegs vernünftig ausgestattete Bibliothek kann auch weiterhelfen.

Viele Grüße
Marvin

Wie entsteht ein Programm?
Hallo und vielen Dank für die Antworten,

wie aber schreibt man eigentlich ein Programm ohne ein Programm?
Angeblich lieferte Bill Gates sein erstes „Basic“ Programm als 1
Lochstreifen in dem Altair 8080 aus.

Will man heute ein Programm schreiben, so gibt es dafür schon ei-
ne Software (Programm) um dies zu ermöglichen oder gar zu verein-
fachen. Wie aber schrieb man d. erste Programm (als Software, al-
so kein Lochstreifen), wenn es nur Hardware gab?

Also ohne grafische Oberfläche u. ohne Eingabeaufforderung i Zei-
lenform.

Danke und Gruß,
Yedi386

Hi,

ganz einfach, direkt in Hardwaresprache google mal nach „Assembler“
Es gibt Sprachen die noch primitiver sind.

MFG

Hallo Yedi386

Wie aber schrieb man d. erste Programm (als Software,
al-
so kein Lochstreifen), wenn es nur Hardware gab?
Also ohne grafische Oberfläche u. ohne Eingabeaufforderung i
Zei-
lenform.

Auf Assembler hatte ja schon Safrael hingewiesen. Zur Ergänzung, weil Du so sehr nach fehlender grafischer Oberfläche fragst, die ersten Eingabemöglichkeiten waren Lochkarten.
http://de.wikipedia.org/wiki/Lochkarte
Dafür brauchte man keine grafische Oberfläche, sondern nur sowas ähnliches wie eine Schreibmaschine, die eben die gewünschten Löcher in die Karte stanzte.
Da die ersten Computer eigentlich nur Zahlen verarbeiten konnten (zählen, addieren, subtrahieren) war das weiter kein Problem. Die „Programme“ waren ja noch relativ unflexibel und wurden z.B. bei einem der ersten Computer, der Eniac, durch Steckverbindungen, also Kabel realisiert. Hier
http://www.planet-wissen.de/natur_technik/computer_u…
sieht man ganz gut auf dem untersten Foto diese Art der Programmierung.
Später hat man sich die Sache etwas erleichtert, indem auch die Programme in Lochkarten gestanzt wurden.
Ich habe jetzt immer von Lochkarten geschrieben, man kann aber mit einiger Berechtigung genauso von Lochstreifen reden, die man ja als eine Art von sehr langen Lochkarten ansehen kann :wink:
Wenn man so will, gab es in dieser Form sogar zuerst eine Art der Programmierung, weil Webstühle Anfang des 19. Jahrhunderts durch solche „endlosen“ Lochkarten gesteuert wurden,
http://de.wikipedia.org/wiki/Jacquard
wie übrigens Drehorgeln und mechanische Klaviere etwas später auch:
http://de.wikipedia.org/wiki/Notenrolle
Aber das führt schon weit ab vom Thema…

Viele Grüße
Marvin

Moin, Yedi386,

wie aber schreibt man eigentlich ein Programm ohne ein
Programm?

indem man die Befehle als Bitfolgen eingab, auch Flippern genannt. Dafür hatten die damaligen Rechner (zB PDP 8, HAP 18, Siemens 306) Schalterreihen und Taster auf dem front panel, da wurde je nach Wortlänge (zb 12, 18 oder 24 Bit lang) ein Wort per flips eingestellt und per Taster in die gerade adressierte Speicherzelle übernommen: http://en.wikipedia.org/wiki/File:stuck_out_tongue:DP_8_e_Trondheim.jpg

Gruß Ralf

Hallo nochmal,

abgesehen von den schon gegebenen Antworten in Bezug auf die Geschichte: Heute gibt es Entwicklungsumgebungen, die schlicht und ergreifend Code für fremde Hardware erzeugen können, und vielfach Emulatoren, mit denen dieser Code dann auch sogar auf dem PC getestet werden kann, bevor man ggf. überhaupt diese neue Hardware tatsächlich verfügbar hat. So entstehen auch die Betriebssysteme neuer Hardware, auf denen man dann ebenso wieder ein eigenes Entwicklungssystem aufsetzen kann, mit dem man dann direkt auf dieser Hardware entwickeln kann.

Gruß vom Wiz

Hallo Yedi386,

wie aber schreibt man eigentlich ein Programm ohne ein
Programm?

Papier gibts schon länger :wink:
Es gab Formulare mit mehreren Spalten für Speicheradresse, Speicherinhalt, Label und den Assemblercode.
Man hat dann zurst das Programm in Assembler geschrieben.
Anshliessend ha man sich die OpCodes aus einer Tabelle herausgesucht und in de entsprechende Salte eingetragen.

Dann hat man, wie unten schon bescrieben, das gane eineflippert.

Ich habe 1976 so auf dem KIM-1 angefangen, der hatte aber schon eine Hex-Tastatur …

Angeblich lieferte Bill Gates sein erstes „Basic“ Programm als
1 Lochstreifen in dem Altair 8080 aus.

So einen Lochstreifen on Billy hatte ich auch noch.

Lochstreifen waren ein verbreitetes Speichermedium in der damaligen Zeit um Daten ohne Netzwerk zu verschicken.
Später wurden sie von Disketten und CDs abgelöst.

Die Lochstreifen wurden aber auch mit einem Computer erstellt.

MfG Peter(TOO)

1 Like

Hallo Yedi,

ich beschäftige mich gerade … u. schließlich wie ein Computer Schach spielen kann,

all diese Fragen zeigen eigentlich nur eins, die Unordnung in deinem Kopf.

Ohne dies näher erläutern zu wollen, zwischen der Anwendung und dem, der lötet, sind einige Ebenen, de nur der Fachmann versteht.

All dies könntest du erahnen, wenn du dich etwas informieren würdest.

Kann mir das alles mal einer bitte kurz erklären? :wink:

Das kann niemand, und wenn doch, würdest du es nicht kurz verstehen.

Oder interessante Links dazu?

Damit du weiter unnütze Fragen in die Welt setzt?

Einige haben versucht, zu antworten. Und was war das Resultat? Eine völlig unsinnige - nicht mal Gegenfrage - weitere Frage: wie erstellt man Computerprogramme ohne computergestützten Editor.

Diese Frage ist genau so sinnvoll oder sinnlos wie die Frage, wie die Arbeiter der Autofabrik zur Arbeit kommen, ohne Auto. Früher kamen sie zu Fuß, mit’m Pferd oder sonstwie.

Zeigt nur, dass du weder Fagen noch Antworten verstehst, sondern nur einen Haufen von Unordnung in deinem Geist hast - oder zumindest hier zur Schau stellst.

Gruß, Zoelomat

Lieber Zoelemat,
unfairer gehts nicht, weder Yedi gegenüber noch denjenigen, die gern hier das eine oder andere nachlesen um zu lernen. Solche respektlosen Kommentare zu lesen sind eine Zumutung und halten Fragende von Fragen ab, die auch andere interessieren könnten.

all diese Fragen zeigen eigentlich nur eins, die Unordnung in
deinem Kopf.

Wenn es so wäre was ist daran so schlimm? Wer von uns hat immer Ordnung im Kopf? Ist doch völlig normal und menschlich. Ich sehe es ganz anders. Da ist einer total wissensdurstig. Vielleicht auch ungeduldig, will alles gleichzeitig wissen. Eine Mentalitätssache auf welche Weise man lernen will oder kann.

All dies könntest du erahnen, wenn du dich etwas informieren
würdest.

Erahnen? Deswegen die Fragen hier. Wikipedia ist fantastisch, aber z.B. das mit dem Schachcomputer hat hier jemand hervorragend und verständlich erklärt. Genau das wollte ich auch immer mal gerne wissen. Ohne vorher ein Programmierstudium absolvieren zu müssen.

Oder interessante Links dazu?

Damit du weiter unnütze Fragen in die Welt setzt?

Zeigt nur, dass du weder Fagen noch Antworten verstehst,
sondern nur einen Haufen von Unordnung in deinem Geist hast -
oder zumindest hier zur Schau stellst.

Was soll der Kommentar in einem Forum, das einen eindeutigen Titel trägt? Ein gutes Thema: was sind unnütze Fragen? Und wer will das beurteilen?

Jede/r, der/die Fragen stellt fühlt sich von Haus wie ein dummy. Dann noch auf respektlose, verachtende Art eine übergebraten zu bekommen, finde ich schrecklich. Auf seine Frage gab es hier einige sehr interessante Antworten. Inwieweit alles verstanden wurde hängt doch von der individuellen Person ab. Nicht mal meine Mutter würde beurteilen können was ich verstehe und was nicht.
Möchte mich mit niemandem anlegen, aber ich hab ein echtes Problem wenn jemand so niedergemacht wird. Das ist genauso aggressiv als hättest du ein Schwert in der Hand.
Moni

1 Like