Ü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