BuK/IIm20/Vorlesung 2 Thomas
Aus ProgrammingWiki
Wiki-Quelltext dieser Seite.
<language>Python</language>
Seite7
== Prinzipiell Unlösbares ==
'''Nicht formalisierbar bzw. nicht effizient:'''
* Unzugängliches (wenigstens) für Computer
** Fragestellungen, die sich nicht formalisieren lassen (Wann stirbt man, wird reich, …)
*Praktisch Unmögliches
**Effizienz von Algorithmen (hoher exponentiellen Aufwand)
**praktische Grenzen (Zeit und Speicher)
-> Parameter haben Einfluss auf die Lösung -> Je mehr Parameter desto besser? schneller? die Lösung…
Bsp: Stundenplan (Lehrer, Studenten, Räume, Gebäude, …), Logistik (LKW, Fahrer, Ware, Ziel, …)
----
'''Warum ist es so schwierig ein leistungsfähiges Schachprogramm zu entwerfen?'''
Deep Blue war ein von IBM entwickelter Schachcomputer.
Enorme Rechenleistung (Version 1996 - 36 Knoten und 216 Chips - Version 1997 - 30 Knoten mit 480 Chips). Jeder Knoten verfügte über 1 GB RAM und 4 GB Festplattenspeicher. Berechnet wurden je nach Stellungstyp zwischen 100 und 200 Millionen, im Durchschnitt 126 Millionen Stellungen pro Sekunde.
Kasparow konnte das erste Match, das mit sechs Partien von 1996 in Philadelphia stattfand, für sich entscheiden. Er gewann drei Partien, machte zwei Remis und verlor eine Partie, womit er Deep Blue 4:2 schlug.
Anschließend rüstete IBM seine Maschine mit stärkerer Hardware aus und trat im Mai 1997 erneut gegen Kasparow an. Deep Blue, der mittlerweile 200 Millionen Stellungen pro Sekunde berechnen konnte, gewann die Revanche 3,5:2,5
'''Schachcomputer - Parameter:'''
Bewertungsfunktion bestand aus der in Hardware ausgeführten umfangreichen Parameterauswertung und der in Software ausgeführten Gewichtung dieser Parameter (z. B.: wie wichtig ist die Königssicherheit im Vergleich mit einem Raumvorteil im Zentrum).
Die optimalen Werte der Parameter wurden vom System selbst bestimmt, indem es Tausende von Meisterpartien analysierte.
Vor dem zweiten Match wurde das Schachwissen des Programms von Großmeister Joel Benjamin optimiert.
Seite 6
== Abzählbar unendliche Menge ==
Eine Menge $M$ heißt abzählbar unendlich, wenn sie zur Menge $N$ der natürlichen Zahlen gleichmächtig ist. Alle anderen unendlichen Mengen sollen überabzählbar unendlich heißen.
'''Cantorsches Diagonalisierungsverfahren 1. Art'''
Versuch ein Ordnungsprinzip für abzählbar unendliche Mengen $M$ anzugeben, mittels einer Druchnummerierung der Elemente, die die geforderte bijektive Abbildung $\mathbf{N} \longmapsto M$ definiert
'''Die ganzen Zahlen $Z$'''
Die Menge $Z$ ist abzählbar, denn
{| border="1" cellpadding="5" cellspacing="0"
|+
! 0 || 1 || 2 || 3 || 4 || 5|| 6|| 7|| 8|| 9|| ...
|-
| 0 || 1 || −1 || 2 || −2|| 3|| −3|| …|| n|| −n|| …
|-
|}
ist eine Aufzählung von $ℤ$.
'''Die rationalen Zahlen $Q$'''
[[Bild:St52pybu_Buk2_1.jpg]]
'''Primzahlen'''
Die Menge der Primzahlen $P$ ist ebenfalls abzählbar unendlich, da sie eine Teilmenge der natürlichen Zahlen und nach dem Satz von Euklid (unendlich viele Primzahlen) auch unendlich ist.
{| border="1" cellpadding="5" cellspacing="0"
|-
| $n$ | 1 || 2 || 3 || 4 || 5|| 6|| 7|| 8|| ...
|-
| $f(n)$ | 2 || 3 || 5 || 7 || 11|| 13|| 17|| 19 || …
|-
|}
'''Wenn $M_1, M_2, M_3, ...$ abzählbare Mengen sind, dann ist auch die Menge $\bigcup^\infty_{n=1} M_n$ abzählbar.'''
[[Bild:St52pybu_Buk2_2.jpg]]
Seite 9
<code id="605db20812d34">def f(x):
if x == 1:
return 1
else:
if(x % 2 == 0):
return (f(x/2)+1)
else:
return (1 / f(x-1))
</code>
<run id="605db20812da5">print(f(1))</run>
<code id="605db634c28bc">def fumkehr(x):
if x == 1:
return 1
else:
if(x > 1):
return (2 * fumkehr(x - 1))
else:
return (1 + fumkehr(1 / x))</code>
<code id="605db634c2936">print(fumkehr(10))</code>