¨Uber Kleines und Großes in Mathematik und Informatik

Werbung
Über Kleines und Großes in
Mathematik und Informatik
Prof. Dr. Thomas Risse
Institut für Informatik & Automation, IIA
FB E&I, Hochschule Bremen, HSB
Einführungsveranstaltung 24. Oktober 2006
Zusammenfassung
Der Vortrag befasst sich in wenig strenger Weise mit Kleinem und
Großem in Mathematik und Informatik und behandelt so diverse Aspekte
wie
• kleine und große (natürliche) Zahlen
• (numerische) Größenverhältnisse
• (Wachstum von) Aufwand messen
• Leistung von Multi-Prozessor-Systemen
• das Große im Kleinen, das Kleine im Großen
• Unendlich – geht’s noch größer?
1
zum Hintergrund
Die Ausführungen sind subjektiv, Schlaglicht-artig, assoziativ und hoffentlich
anregend. Mein Hintergrund ist Mathematik, Computer-Architektur, Kryptographie, generative Computer-Graphik, digitale Bildverarbeitung etc.
Der Vortrag ist gedacht für Studierende mit Interesse an Informatik und Mathematik. Er wendet sich insbesondere an Studienanfänger. Kenntnisse, die über
die im Vorbereitungskurs vermittelten hinausgehen, werden nicht vorausgesetzt.
2
Zählen
Am Anfang steht das Zählen. Mit zwei unterscheidbaren Objekten, nämlich
der Null und der Eins, sind schon ganz wichtige Strukturen zu entdecken: wir
definieren eine Addition auf der Menge {0, 1} durch
+ 0
0 0
1 1
1
1
1
0
(wenn wir 1 + 1 = 1 gesetzt hätten, hätte die Eins kein additiv Inverses gehabt!)
und eine Multiplikation durch
∗ 0
0 0
1 0
1
0
1
und überzeugen uns leicht, daß das sogenannte Galois-Feld GF (2) der Ordnung
2 ein Körper ist mit Rechenoperationen mit denselben Eigenschaften, wie wir
sie von der Addition und Multiplikation rationaler Zahlen oder reeller Zahlen
her kennen und gewohnt sind. Interessant ist, daß sich diese Addition bzw. diese
Multiplikation
mathematisch als Addition bzw. Multiplikation modulo 2
schaltungstechnisch als durch ein XOR- bzw. ein AND-Gatter realisiert oder
logisch als 6= (oder != oder ∼= oder . . . ) bzw. ∧ (oder & oder && oder . . . )
auffassen lassen: wir sehen, wie eng verwandt Mathematik und Informatik sind.
Wenn wir Dimensionen (immerhin schon bis vier!) durchzählen, erhalten wir
folgende Tabelle mit Beispielen
Dimension
0-dimensional
1-dimensional
2-dimensional
3-dimensional
4-dimensional
Objekt
Freiform-Objekt
Punkte
Strecken, Polygonzüge Freiform-Kurven
Ebenen
Freiform-Flächen
Polyeder
Körper berandet durch Freiform-Flächen
Objekte im Raum-Zeit-Kontinuum (Cinema4D)
Mit Hilfe unserer Finger können wir immerhin schon bis 10 zählen und dabei ein
wichtiges Verfahren beobachten: Abzählen bedeutet, die Elementen einer Menge
mit den Ettiketten 1, 2, 3 usw. zu versehen: Eine Menge M = {e1 , e2 , . . . , en } hat
die sogenannte Kardinalität card(M ) = n: die Menge M hat eben n Elemente.
Die Menge P(M ) aller Teilmengen einer Menge M heißt Potenz-Menge von M .
Für etwa M = {a, b, c} ist P(M ) = {∅, {a}, {b}, {c}, {a, b}, {a, c}, {b, c}, M }.
Allgemein gilt für die Kardinalität der Potenz-Menge
card P(M ) = 2card(M )
was wir uns leicht klar machen können, wenn wir jede Teilmenge T ⊂ M mit
einem bit-String der Länge n identifizieren: das bit an der i-ten Stelle sagt aus,
ob ei ∈ T oder ei 6∈ T gilt. Um Teilmengen T von M zu spezifizieren, haben
wir also zwei Möglichkeiten für e1 , zwei Möglichkeiten für e2 , usw. und damit
insgesamt 2n Möglichkeiten.
Soviel soll als Vorbereitung reichen, uns größeren Zahlen stellen zu können.
3
große Zahlen
Mit 16 bit kann man die 216 = 65536 natürlichen Zahlen 0, 1, 2, . . . , 216 − 1 =
65535 (im Rechner) darstellen: entweder als Elemente einer Menge der Kardinalität 216 oder aber gleich per Binär-Darstellung.
2
Mit 32 bit kann man die 232 natürlichen Zahlen 0, 1, 2, . . . , 232 −1 = 4(210 )3 −1 >
4(103 )3 = 4 · 109 darstellen.
Die Schulden des Landes Bremen betragen z.Zt. (Oktober 2006) ca 13 Mrd. e
= 13 · 109 e, wie wir beispielsweise an der Schulden-Uhr1 ablesen können. Dieser Schuldenstand in ganzen Euro kann also nicht mehr mit 32bit UNSIGNED
INTEGERs, d.h. 32bit vorzeichenlosen ganzen Zahlen dargestellt werden.
Der Weser-Kurier behauptet übrigens, daß die Schulden mit 33 e/sec wachsen: da sitzt mal wieder das Milchmädchen an der Kasse; ein solches lineares
Wachstum ist nämlich äußerst gemütlich und erträglich im Vergleich zum durch
die Zinslast tatsächlich bestehenden desaströsen exponentiellen Wachstum.
Die Schulden des Bundes betragen2 z.Zt. (Oktober 2006) ca 1.5 Billionen e
= 1.5 · 1012 e. Susanne Albers3 listet Reaktionen von Bundestagsabgeordneten
auf die Frage nach der Höhe der Verschuldung des Bundes auf: die Befragten
scheinen wirklich kein Gefühl für Größenordnungen zu haben . . . !
Selbstverständlich gibt es noch größere Zahlen, etwa die Anzahl der Atome eines
Menschen 7 · 1027 , die der Erde 6 · 1049 , die der Sonne 1057 , die der Milchstrasse
1068 , oder die des Universums 1078 .
Und natürlich gibt es noch größere natürliche Zahlen als jedes n ∈ N, etwa
n + 1 ∈ N oder 2n ∈ N, s.a. [1].
4
kleine (und große) Zahlen
Selbstverständlich gibt es auch ziemlich kleine Zahlen, etwa 0 < 1 oder −1 < 0
usw. Nach unseren bisherigen Beobachtungen bieten die mganzen Zahlen Z =
{0, ±1, ±2, . . .} keine neuen Überraschungen.
Wie steht’s allerdings mit kleinen positiven Zahlen? etwa aus den rationalen
Zahlen Q = {Brüche}.
Rechner können (normalerweise) nur Brüche (und keine reellen Zahlen) darstellen: nämlich als sogenannte Gleitpunkt-Zahlen:
Mantisse × BasisExponent
Der Umstand, daß für die Mantisse (wie auch für den Exponenten) nur beschränkt viel Speicherplatz reserviert wird, erzeugt so manche numerische Überraschung (vgl. [8]): es gibt beispielsweise im Rechner darstellbare Zahlen > 0
mit
1+=1
Nehmen wir an, daß die Mantisse x.yz eine dezimale von Null verschiedene
Einerstelle und zwei dezimale Nachpunkt-Stellen hat. Dann ergibt sich für etwa
= 0.001 = 1.00 × 10−3
1 = 1.00
= +0.001
1 + = 1.001=1.00
ˆ
1
2
3
vgl. www.steuerzahler-niedersachsen-bremen.de
vgl. www.bundesbank.de/ .. zeitreihen .. bu1131 oder www.steuerzahler.de
vgl. www.susannealbers.de/schulden-seite.html
3
Weiterhin gibt es darstellbare Gleitpunkt-Zahlen a, b, c mit
(a + b) + c 6= a + (b + c)
(Das Assoziativ-Gesetz der Addition ist hier also verletzt.) Für etwa a = 1.00 ×
100 = 1 und b = c = 5.00 × 10−3 gilt nämlich
a = 1.00
b = +0.005
a + b = 1.005=1.00
ˆ
b = 5.00 × 10−3
c = +5.00 × 10−3
b + c = 10.00 × 10−3 =0.01
ˆ
a
= 1.00
b + c = +0.01
a + (b + c) = 1.01
zusammen also
(a + b) + c = 1 6= 1.01 = a + (b + c)
Offensichtlich kommt es (nicht nur) in diesen Beispielen wesentlich auf das
Verhältnis von groß zu klein an . . .
5
(Wachstum von) Aufwand messen
Wie aufwändig ist ein bestimmtes Verfahren? Das gesuchte Aufwandsmaß soll
unabhängig vom eingesetzten Rechner sein! Wir interessieren uns also nur für
Maße, die den Aufwand proportional zu einem Aufwandsindikator messen.
Sortieren von Objekten ihrer Größe nach, z.B. Personen, Skat-Karten,
Telefon-Buch, invertiertes Telefon-Buch
Z.B.
Der Aufwand hängt sicher von der Anzahl n der zu sortierenden Objekte ab.
• der Aufwand des folgenden naiven Verfahrens ist proportional zu n2
finde kleinstes Objekt (n − 1 Vergleiche) und vertausche mit dem ersten,
finde in den restlichen n − 1 Objekten das (zweit) kleinste Objekt (n − 2
Vergleiche und vertauche mit dem zweiten der n Objekte,
Pn−1 usw.
Aufwand gemessen in der Anzahl der Vergleiche ist i=1 i = (n−1)n/2 ≈
n2 (der Term in n2 dominiert den Term in n für große n, so daß wir
letzteren vernachlässigen können)
• bessere Verfahren sind mit einem Aufwand verbunden, der proportional
zu n log n ist!
Für etwa n = 1000 ist der Aufwand des naiven Verfahrens proportional zu
n2 = 1000000 um drei Größenordnungen (Zehner-Potenzen) größer als derjenige
der besseren Verfahren, der proportional zu n log n = 3000 ist.
c
Wenn wir immer nur auf die nächst schnellere Rechner-Generation gewartet
hätten, statt wesentlich bessere als die naiven Verfahren zu entwickeln, hätte
es die stürmische Entwicklung in der Informatik nie gegeben! Das belegen viele
weitere Beispiele, hier nur ein paar
• Bresenham-Algorithmus zu Zeichnen auf Rastergeräten
• Aufwand der Strassen-Matrix-Multiplikation von n × n-Matrizen ist proportional zu n2.8 ≈ nld 7 (vgl. [9]) statt zu n3 für die naive MatrixMultiplikation.
4
• FFT in der Nachrichten-Technik, Bildverarbeitung etc.
• Algorithmen zum Knacken z.B. der RSA-Verschlüsselung (s.a. [7])
6
Leistung von Multi-Prozessor-Systemen: Wieviele Prozessoren erbringen welche RechenLeistung?
Zur Zeit werden gerade dual/multiple core Prozessoren Mode. Die Anzahl der
rechnenden Kerne ist p = 2 oder p = 4. Das ist eigentlich nichts Neues. Schon
1980 entwickelte ICL in England der Distributed Array Processor, DAP mit
p = 64 × 64 Prozessoren und heute hat das Rechner-System mit der Welt-weit
höchsten Rechenleistung (vgl. top of top500), das IBM Blue Gene/L System
p = 216 × 2 = 131072, nämlich 216 dual powerPC Prozessoren.
Was ist zu erwarten, wenn p Prozessoren zur Lösung eines einzigen Problems
zur Verfügung stehen? Der erhoffte Leistungsgewinn wird vermittels des Beschleunigungsfaktors gemessen (s.a. [6]):
Beschleunigungsfaktor β =
Laufzeit für Monoprozessor
≤p
Laufzeit für Multiprozessor
Bestenfalls ist β = p, der sogenannte linear speed up. Folgendes einfache Beispiel
zeigt, daß es vom speziellen Problem abhängt, welcher Beschleunigungsfaktor
theoretisch erreichbar ist. Der praktisch erreichbare Beschleunigungsfaktor wird
aufgrund des overheads für die Kommunikation zwischen Prozessoren und Speicher und für IO i.a.R. nocheinmal deutlich kleiner ausfallen.
Z.B. p = 2m Prozessoren (Pi )i=0,1,...,p−1 stehen zur Verfügung, um p = 2m
Zahlen (ai )i=0,1,...,p−1 aufzusummieren:
1. Runde: P2i berechnet Zwischensumme s2i = a2i + a2i+1
2. Runde: P4i berechnet Zwischensumme s4i = s4i + s4i+2
. . . usw.
Für etwa p = 23 = 8 Prozessoren sieht das folgendermaßen aus:
ao
Po
a1
a2
a3
a4
P2
P4
Po
P4
Po
5
a5
a6
P6
a7
Allgemein gilt für den Beschleunigungsfaktor also
β = (p − 1)/ldp = (2m − 1)/m < p = 2m
c
linear speed up wird hier sicher nicht erreicht!
7
das Große im Kleinen, das Kleine im Großen
Granat
Farn
Fluorit
Farn
• Die Silhouette einer Linde sieht aus wie ein Linden-Blatt.
• Basalt-Säulen sehen aus wie Basalt-Kristalle.
• Jeder ’Zweig’ des Farns sieht aus wie der Farn selbst.
• Ausschnitte der der Küstenlinie Englands sehen auf einer Landkarte mit
großem Maßstab im Prinzip genauso aus wie Ausschnitte auf einer Landkarte mit kleinem Maßstab.
• Wolken sehen im Großen aus wie im Kleinen . . .
Dieses Phänomen heißt Selbstähnlichkeit: auf verschiedenen Größenskalen sind
Teile des Objektes ähnlich. Objekte, die aufgrund von Selbstähnlichkeit erzeugt
werden können, haben ’gebrochene’, rationale Dimension. Daher rührt ihr Name
Fraktale. Als Entdecker der Fraktale darf Benoit Mandelbrot [4] gelten, der seine
Entdeckung in der Aussage zuspitzte: Die Natur ist fraktal!
Die fraktale Sichtweise liefert
• Erzeugung von ’natürlich aussehenden Objekten’ (Bäume, Berge, Seen,
. . . vgl. Flug-Simulator mit der Möglichkeit fraktaler Umgebungen),
• fraktale Kompression (der rechte Farn läßt sich durch ganz wenige Parameter beschreiben)
8
Größer geht’s nimmer?
Zuletzt wenden wir uns dem richtig Großen zu: unendlich, ∞. Mengen mit unendlich vielen Elementen haben überraschende Eigenschaften. Zu Unrecht vermutet man inuitiv card(2N) < card(N) < card(Z). Tatsächlich gibt es genauso
6
viele gerade oder ganze Zahlen wie natürliche Zahlen: wir können beide Mengen
mit Hilfe der natürlichen Zahlen abzählen:
2N = {2, 4, 6, 8, . . .} = {g1 , g2 , g3 , . . .} mit gi = 2i

falls i = 1
0
falls i gerade
Z = {0, ±1, ±2, ±3, . . .} = {g1 , g2 , g3 , . . .} mit gi = 2i
 i−1
− 2 falls 1 < i ungerade
Also gilt in der Tat
card(2N) = card(N) = card(Z)
obwohl doch 2N ⊂ N ⊂ Z
Diesen überraschenden Sachverhalt illustriert das notorisch ausgebuchte HilbertHotel4 mit seinen unendlich vielen Zimmern, das immer noch Platz für sogar
Busladungen voll unendlich vielen Neuankömmlingen hat.
• ins vollbesetzte Hilbert-Hotel passt immer noch ein weiterer Gast
• ins vollbesetzte Hilbert-Hotel passen immer noch n weitere Gäste
• ins vollbesetzte Hilbert-Hotel passen immer noch ∞ weitere Gäste
1873 bewies5 Georg Cantor [3], daß es genauso viele Brüche wie natürliche
Zahlen gibt: card(N) = card(Q).
Zum guten Schluß zeigen wir, daß es wesentlich mehr reelle Zahlen als natürliche
Zahlen gibt. Dazu brauchen wir folgendes Resultat:
Es gilt card(P(M )) > card(M ) auch für Mengen mit unendlich vielen Elementen.
Nehmen wir das Gegenteil der Behauptung an, also angenommen card(P(M )) =
card(M ). Dann gibt es eine surjektive Abbildung f : M → P(M ), d.h. jede
Teilmenge T von M kommt als Bild unter f vor. Sei T = {m ∈ M : m 6∈ f (m)}.
Laut Voraussetzung über f gibt es mo mit T = f (mo ). Dann folgt mo ∈ T =
f (mo ) ⇐⇒ mo 6∈ f (mo ) = T und ebenso mo 6∈ T = f (mo ) ⇐⇒ mo ∈
f (mo ) = T . Widerspruch!
Wir zeigen jetzt, daß die Potenzmenge von N mit genau dem Einheitsintervall
[0, 1] identifiziert werden kann. Zunächst entspricht – wie im zweiten Abschnitt
– jede Teilmenge von N genau einer unendlichen 0-1-Folge.
1 falls n ∈ T
N ⊃ T ↔ (an )n mit an =
0 falls n 6∈ T
Mit Hilfe der Binärdarstellung entspricht nun jede unendliche 0-1-Folge genau
einer reellen Zahl im Einheitsintervall [0, 1].
(an )n=1,2,... mit an ∈ {0, 1} ↔ x = 0.a1 a2 a3 . . . ∈ [0, 1] ⊂ R
Daher folgt R ⊃ P(N) und somit card(R) ≥ card P(N) > card(N).
Wiederholte Anwendung von card(P(M )) > card(M ) zeigt uns, daß es (unendlich) viele Sorten von Unendlich gibt.
ℵo
2ℵo
ℵo := card(N) < card P(N) = 2ℵo < 22 < 22 . . .
4
5
vgl. http://de.wikipedia.org/wiki/Hilberts Hotel
vgl. Cantor’sches Diagonalisierungsverfahren, s.a. [5]
7
Literatur
[1] Wilhelm Ackermann (1896-1962): Ackermann-Funktion u.drgl.
www-history.mcs.st-and.ac.uk/history/Biographies/Ackermann.html,
http://lab6.com/old/school/yearbook/clarkkkkson.html,
www.tetration.org/Ackermann/index.html u.ä.
[2] Philip J. Davis, Reuben Hersh: Erfahrung Mathematik; Birkhäuser, BaselBoston-Berlin 1994
[3] Georg Ferdinand Ludwig Philipp Cantor (1845-1918)
www-history.mcs.st-and.ac.uk/history/Biographies/Cantor.html
[4] Benoit Mandelbrot: The Fractal Geometry of Nature, 1982
[5] Th. Risse: Mathematik für Informatiker I & II;
www.weblearn.hs-bremen.de/risse/MAI/docs/mai1.pdf,
www.weblearn.hs-bremen.de/risse/MAI/docs/mai2.pdf
[6] Th. Risse: Rechner-Strukturen/Computer-Architektur;
www.weblearn.hs-bremen.de/risse/RST/docs/RST.pdf
[7] Th. Risse: Puzzles – Kryptographie, Wahrscheinlichkeit u.a.;
www.weblearn.hs-bremen.de/risse/MAI/docs/puzzles.pdf
[8] Th. Risse: Addons zu Michael T. Heath: Scientific Computing;
www.weblearn.hs-bremen.de/risse/MAI/docs/heath.pdf
[9] V. Strassen: Algebra and Complexity: First European Congress of Mathematics, Volume II, 1992, p. 429-445 s.a.
www-i1.informatik.rwth-aachen.de/Lehre/PSAuD05/Handout Grams.pdf
8
Herunterladen