Literaturverzeichnis
1. Agrawal M, Kayal N, Saxena N. PRIMES is in P. Ann Math. 2004;160:781–93.2. Applegate DL, Bixby RE, Chvátal V, Cook WJ. The traveling salesman problem. A computational
study. Princeton: Princeton University Press; 2006.3. Bellman R. On a routing problem. Q Appl Math. 1958;16:87–90.4. Berge C. Two theorems in graph theory. Proc Natl Acad Sci USA. 1957;43:842–4.5. Breymann U. Der C++ Programmierer. 5. Aufl. München: Hanser; 2018.6. C++ Standard. ISO/IEC 14882:2011. http://www.open-std.org/jtc1/sc22/wg21/docs/papers/
2012/n3337.pdf. Zugegriffen: 26. März 2018.7. Church A. An unsolvable problem of elementary number theory. Am J Math. 1936;58:345–63.8. Cormen TH, Leiserson CE, Rivest RL, Stein C. Introduction to algorithms. 3. Aufl. Cambridge:
MIT Press; 2009.9. Dantzig GB, Fulkerson DR. On the max-flow min-cut theorem of networks. In: Kuhn HW, Tucker
AW, Herausgeber. Linear inequalities and related systems. Princeton: Princeton University Press;1956. S. 215–21.
10. Dijkstra EW. A note on two problems in connexion with graphs. Numer Math. 1959;1:269–71.11. Edmonds J. Systems of distinct representatives and linear algebra. J Res Natl Bur Stand.
1967;B71:241–5.12. Edmonds J, Karp RM. Theoretical improvements in algorithmic efficiency for network flow
problems. J ACM. 1972;19:248–64.13. Folkerts M. Die älteste lateinische Schrift über das indische Rechnen nach al-H
˘warizmı.
München: Verlag der Bayerischen Akademie der Wissenschaften; 1997.14. Ford LR. Network flow theory. Paper P-923, The Rand Corporation, Santa Monica; 1956.15. Ford LR, Fulkerson DR. Maximal flow through a network. Can J Math. 1956;8:399–404.16. Ford LR, Fulkerson DR. A simple algorithm for finding maximal network flows and an application
to the Hitchcock problem. Can J Math. 1957;9:210–8.17. Frobenius G. Über zerlegbare Determinanten. Sitzungsberichte der Königlich Preussischen Aka-
demie der Wissenschaften 1917;XVIII:274–77.18. Fürer M. Faster integer multiplication. SIAM J Comput. 2009;39:979–1005.19. Held M, Karp RM. A dynamic programming approach to sequencing problems. J SIAM.
1962;10:196–210.
© Springer-Verlag GmbH Deutschland, ein Teil von Springer Nature 2018S. Hougardy und J. Vygen, Algorithmische Mathematik,https://doi.org/10.1007/978-3-662-57461-4
171
172 Literaturverzeichnis
20. IEEE Standard for Binary Floating-Point Arithmetic. ANSI/IEEE Std 754-1985. http://754r.ucbtest.org/web-2008/standards/754.pdf. Zugegiffen: 26. März 2018.
21. Jarník V. O jistém problému minimálním. Práce Moravské Prírodovedecké Spolecnosti1930;6:57–63.
22. Karatsuba A, Ofman Y. Multiplication of multidigit numbers on automata. Sov Phys Dokl.1963;7:595–6.
23. Knuth DE. The art of computer programming, vol. 1–4A. 3rd ed. Boston: Addison-Wesley; 2011.24. König D. Über Graphen und ihre Anwendung auf Determinantentheorie und Mengenlehre. Math
Ann. 1916;77:453–65.25. Kruskal JB. On the shortest spanning subtree of a graph and the traveling salesman problem.
Proc AMS. 1956;7:48–50.26. Lippman SB, Lajoie J, Moo BE. C++ primer. 5. Aufl. Boston: Addison Wesley 201327. Moore EF. The shortest path through a maze. Proceedings of an International Symposium on the
Theory of Switching; Teil II. Cambridge: Harvard University Press; 1959. S. 285–92.28. Oliveira e Silva T. Empirical verification of the 3x+1 and related conjectures. In: Lagarias JC,
Herausgeber. The ultimate challenge: the 3x+1 problem. Prov Am Math Soc; 2010. S. 189–207.29. Petersen J. Die Theorie der regulären Graphs. Acta Math. 1891;15:193–220.30. Prim RC. Shortest connection networks and some generalizations. Bell Syst Tech J.
1957;36:1389–401.31. Schönhage A, Strassen V. Schnelle Multiplikation großer Zahlen. Computing. 1971;7:281–92.32. Stroustrup B. The C++ programming language. 4. Aufl. Boston: Addison-Wesley; 2013.33. Stroustrup B. Programming: principles and practice using C++. 2. Aufl. Boston: Addison Wesley;
2014.34. Tarjan RE. Data structures and network algorithms. Philadelphia: SIAM; 1983.35. Treiber D, Zur Reihe der Primzahlreziproken. Elem Math. 1995;50:164–6.36. Turing AM. On computable numbers, with an application to the Entscheidungsproblem. Proc
Lond Math Soc 1937;42(2):230–65, 43:544–6.37. Vogel K, Herausgeber. Mohammed ibn Musa Alchwarizmi’s Algorismus. Das früheste Lehrbuch
zum Rechnen mit indischen Ziffern. Aalen: Zeller; 1963.38. Waldecker R, Rempe-Gillen L. Primzahltests für Einsteiger. 2. Auflage Springer 2016.39. Wilkinson JH. Error analysis of direct methods of matrix inversion. J ACM. 1961;8:281–330.
Sachverzeichnis
! =, 9N, 2Q, 2R, 2Z, 2←, 6*, 30++, 13, 42+=, 39--, 42<, 9<<, 8, 37<=, 9==, 9>, 9>=, 9>>, 8%, 10&, 28//, 7#include, 8\n, 8
Aa/b, 10Abbildung, 2Abbruchkriterium, 72Abstand, 98, 130abzählbare Menge, 3Addition, 45adjazenter Knoten, 76
Adjazenzlisten, 88Adjazenzmatrix, 87Äquivalenzklassen, 33Äquivalenzrelation, 33, 78Alchwarizmi, Mohammed ibn Musa, 1algorithm, 65, 109Algorithmische Mathematik, 2Algorithmus, 1
eine Funktion berechnender, 11numerisch stabiler, 69polynomieller, 135randomisierter, 114streng polynomieller, 135terminierender, 11
Allgemeines Sortierproblem, 104Alphabet, 3and, 9Anweisung in C++, 7Approximationsalgorithmus, 140Äquilibrierung, 168Arboreszenz, 82Arithmeum, 34Array, 83Artikulationsknoten, 79Assoziativgesetz, 60asymptotische Laufzeit, 11aufspannender Teilgraph, 77augmentierender Weg
M-, 140f -, 143
Augmentierung, 144
© Springer-Verlag GmbH Deutschland, ein Teil von Springer Nature 2018S. Hougardy und J. Vygen, Algorithmische Mathematik,https://doi.org/10.1007/978-3-662-57461-4
173
174 Sachverzeichnis
Ausdruck, 9Ausgabe, korrekte, 3Ausgangsgrad, 76Auslöschung, 66äußeres Produkt, 150auto, 42azyklischer Digraph, 100a-posteriori-Schranke, 64a-priori-Schranke, 64
Bbabylonisches Wurzelziehen, 70Basiskonverter, 27Baum, 80begin(), 42Beliebig große ganze Zahlen, 40Bellman, Richard, 135benachbarter Knoten, 76Berechnungsproblem, 3
diskretes, 3, 13eindeutiges, 3numerisches, 3
bereichsbasiertes for, 42Berge, Claude, 140Betragsdarstellung, 31Betragssummennorm, 163BFS, 97Bias-Darstellung, 56Bijektion, 2bijektive Funktion, 2Binärbaum, vollständiger, 116Binärdarstellung, 25, 27Binärheap, 116binäre Suche, 64
diskret, 65binary_search, 65bipartiter Graph, 99bipartiter Matching-Algorithmus, 141Bipartition, 99Bit, 25Blatt, 80, 82bool, 9Branching, 82break, 130Breitensuche, 97Brücke, 79Bubblesort, 110Bucketsort, 110
Byte, 25b-adische Darstellung
natürlicher Zahlen, 26reeller Zahlen, 54
b-Komplement, 31b-Komplementdarstellung, 32
CC++, 1, 5
Programm, 7C-style strings, 90Call
by reference, 28, 30by value, 28
Cantor, Georg, 18Cantors Diagonalbeweis, 18catch, 38char, 90Charakterisierung, gute, 100Church, Alonzo, 4cin, 8class, 34clock(), 108clock_t, 108CLOCKS_PER_SEC, 108Code, 29Collatz-Folge, 19, 20Collatz, Lothar, 20Collatz-Problem, 20Compiler, 4Computerprogramm, 2const, 29Containertypen, 42cout, 8cstdlib, 108ctime, 108
DDantzig, George, 145Darstellung, b-adische
natürlicher Zahlen, 26reeller Zahlen, 54
Datenfehler, 63Datenstruktur, 83dec, 29default_random_engine, 108Definition einer Variablen, 9
Sachverzeichnis 175
Definitionsbereich, 2delete, 85Destruktor, 35Determinante, 149, 150Dezimaldarstellung, 25DFS, 96Diagonalbeweis von Cantor, 18diagonaldominante Matrix, 169Diagonalmatrix, 154, 168Differenz, symmetrische, 78Digraph, 75
azyklischer, 100stark zusammenhängender, 81zusammenhängender, 81
Dijkstra, Edsger, 130Dijkstras Algorithmus, 127, 130disjunkte Vereinigung, 78diskretes Berechnungsproblem, 3Distributivgesetz, 60Divide-and-Conquer, 111Division, 47, 72
ganzzahlige, 10do while, 21double, 9, 59Dreiecksmatrix
normierte, 151obere, 151untere, 151
EEdmonds, Jack, 146, 158Edmonds-Karp-Algorithmus, 147eindeutiges Berechnungsproblem, 3einfacher Graph, 75einfacher Primzahltest, 10Eingangsgrad, 76Einheitsmatrix, 150Einheitsvektor, 150else-Teil
in C++, 14in Pseudocode, 10
end(), 42Endknoten, 76, 77endliche Menge, 3enthaltener Graph, 77entscheidbares Problem, 19Entscheidungsproblem, 3, 7eps, 58
Eratosthenes, 15erreichbarer Knoten, 78Euklid, 48Euklidischer Algorithmus, 2, 48, 49
Ffalse, 9Fehler
absoluter, 58relativer, 58
Fehlerfortpflanzung, 66Fehlertheorie, linearisierte, 167Fibonacci, Leonardo, 49Fibonacci-Zahlen, 49FIFO-Speicher, 85float, 57Fluss
maximaler, 142s-t-, 142
Fluss-Problem, 142Flusserhaltungsbedingung, 142for
Anweisungin C++, 14in Pseudocode, 10
bereichsbasiertes, 42Ford-Fulkerson-Algorithmus, 145Ford, L.R., jr., 135, 145FPU, 57Frobenius, Ferndinand Georg, 141Fulkerson, D.R., 145Funktion, 2
bijektive, 2in C++, 13injektive, 2rekursive, 28surjektive, 2
Funktionsparameter, 13
GGauß, Carl Friedrich, 151Gauß-Elimination, 2, 151, 155
rückwärtsstabile Phase, 162Gauß-Jordan-Verfahren, 154Gaußklammer, 10gegenläufige Kante, 143Gewicht, 123
176 Sachverzeichnis
ggT, 48Gleichungssystem, lineares, 149Gleitkommadarstellung, normalisierte, 55Gleitkommazahl, normalisierte, 55globale Variable, 28Goldbachsche Vermutung, 22Goldener Schnitt, 51Grad, 76Graph, 75
bipartiter, 99einfacher, 75enthaltener, 77gerichteter, 75inklusionsmaximaler, 79inklusionsminimaler, 79kantendisjunkter, 78knotendisjunkter, 78regulärer, 147ungerichteter, 75unzusammenhängender, 79vollständiger, 99
bipartiter, 99zugrundeliegender ungerichteter, 81zusammenhängender, 79
Graphen, 90Graphendurchmusterung, 95Greedy-Algorithmus, 124größter gemeinsamer Teiler, 48gut konditioniert, 68gute Charakterisierung, 100
HHaltefunktion, 19Halteproblem, 19Hamiltonkreis, 136Harmonische Zahlen, 36Hash-Tables, 120Headerdatei, 39Heap, 29, 115, 116
binärer, 115Heapordnung, 115Heapsort, 119Heiratssatz, 141Held, Michael, 135Heron von Alexandria, 70hex, 29Hexadezimaldarstellung, 27
Hoare, Antony, 112Horner-Schema, 26
IIEEE-Standard, 56if-Anweisung
in C++, 14in Pseudocode, 10
Implementieren, 5include, 8Induktion
über f , 26vollständige, 26
Induktionsanfang, 26Induktionsschritt, 26Induktionsvoraussetzung, 26induzierte Norm, 165induzierter Teilgraph, 77injektive Funktion, 2inklusionsmaximaler Graph, 79inklusionsminimaler Graph, 79innerer Knoten, 77inneres Produkt, 150Instanz eines Problems, 3int, 9, 34Intervallarithmetik, 69Invariante, 99Inverse, 150inverse Matrix, 149inzidenter Knoten, 76Inzidenzmatrix, 87iomanip, 109iostream, 8Iterator, 42, 105
JJarník, Vojtech, 126
KKante, 75
beginnt in, 76endet in, 76gegenläufige, 143geht von … nach…, 76inzidente, 76parallele, 75
Sachverzeichnis 177
kantendisjunkte Kreise, 78kantendisjunkte Graphen, 78Kantengewicht, konservatives, 133Kantenzug, 77
geschlossener, 77Kapazität, 142, 143Karatsuba, A.A., 46Karatsubas Algorithmus, 46Karp, Richard, 135, 146kartesisches Produkt, 2kaufmännische Rundung, 57kgV, 48Kind, 82Klasse, 34kleinstes gemeinsames Vielfaches, 48Kn , 99Kn,m , 99Knoten, 75
adjazenter, 76benachbarter, 76erreichbarer, 78innerer, 77inzidenter, 76
knotendisjunkte Graphen, 78kombinatorische Optimierung, 123Kommandozeilenparameter, 90Kommentare in C++, 7Kommutativgesetz, 60Komplement eines Graphen, 102Komplementdarstellung, 31komplexe Zahl, 53Kondition, 165
absolute, 68einer Matrix, 166relative, 67
König, Dénes, 99, 140konservatives Kantengewicht, 133Konstante, 29Konstruktor, 35Konvergenz, lineare, 71Konvergenz, quadratische, 71Konvergenzordnung, 71korrekte Ausgabe, 3Kosten, 123Kreis, 77
ungerader, 99Kruskal, Joseph, 124Kruskals Algorithmus, 124Kürzen von Brüchen, 48
Kürzeste-Wege-Baum, 131Kürzeste-Wege-Problem, 130
L�1-Norm, 163�∞-Norm, 163Lambda-Kalkül, 4Landau-Symbole, 11, 88Länge
eines Kreises, 78eines Teilgraphen, 123eines Weges, 78, 130eines Wortes, 3
Laplacescher Entwicklungssatz, 150Laufzeit, 11
asymptotische, 11lineare, 96polynomielle, 135
leere Menge, 3leeres Wort, 3LIFO-Speicher, 85limits, 20Lineare Gleichungssysteme, 149lineare Konvergenz, 71lineare Laufzeit, 96Lineares Programm, 147linearisierte Fehlertheorie, 167Liste, 84
doppelt verkettete, 84einfach verkettete, 84von Primzahlen, 14
ln, 11localtime, 108log, 11long, 34long double, 57long long, 20, 34Lösung, optimale, 123Lösung, zulässige, 123LU-Zerlegung, 154
teilpivotisiert, 155voll pivotisiert, 154
Mmain, 7Manhattannorm, 163Mantisse, 56
178 Sachverzeichnis
map, 120Maschinencode, 4Maschinengenauigkeit, 58Maschinenzahl, 56Maschinenzahlbereich, 56Matching, 139
perfektes, 139überdeckter Knoten, 140
Matching-Algorithmus, bipartiter, 141Matching-Problem, 139Matrix
diagonaldominante, 169inverse, 149nichtsinguläre, 150singuläre, 150
Matrixnorm, 163submultiplikative, 163verträgliche, 163
max, 20Max-Flow-Min-Cut-Theorem, 145maximaler Graph, 79Maximumnorm, 163Median, 114Menge
abzählbare, 3endliche, 3leere, 3maximale, 79minimale, 79überabzählbare, 3unendliche, 3
Mergesort, 111minimaler Graph, 79minimum spanning tree, 124Minimum-Spanning-Tree-Problem, 123mod, 10Modellfehler, 64Moore-Bellman-Ford-Algorithmus, 133Moore, E.F., 135MST, 124Multiplikation, 46
gut konditionierte, 68
NNachbar, 76Nachbarschaft, 76Nachiteration, 166NaN, 56
Netzwerk, 142Neumann, John von, 112new, 85Newton, Isaac, 70Newton-Verfahren, 70nichtsinguläre Matrix, 150, 151Norm, 163
induzierte, 165normalisierte Gleitkommazahl, 55normierte Dreiecksmatrix, 151not, 9NP, 136Null-Pointer, 84nullptr, 84Nullstelle, 70numeric_limits, 20, 57numerisch stabiler Algorithmus, 69numerisches Berechnungsproblem, 3
OO-Notation, 11, 88obere Dreiecksmatrix, 151oct, 29Oktaldarstellung, 27�-Notation, 11, 88operator, 35Operatoren in C++, 9, 35optimale Lösung, 123Optimierung, kombinatorische, 123or, 9Orakel, 64Ordnung
partielle, 103durch Schlüssel induzierte, 110
topologische, 100totale, 103
Orientierung, 81ostream, 37Outputoperator, 8
PP, 136P = NP, 136parallele Kante, 75Parameter einer Funktion, 13partielle Ordnung, 103
durch Schlüssel induziert, 110
Sachverzeichnis 179
Partition, 33perfektes Matching, 139Permutation, 104Permutationsmatrix, 154Petersen, Julius, 140Pivotelement, 156Pivotisierung, partielle, 156Pointer, 29polynomielle Laufzeit, 135polynomieller Algorithmus, 135pop_back, 85Potenzmenge, 21Prim, 8Prim, Robert, 126Primfaktorzerlegung, 16Prims Algorithmus, 126, 127Primzahl, 7Primzahltest, 8
einfacher, 10, 12Primzahlzwilling, 22Prioritätswarteschlange, 115private, 35Problem, gut konditioniertes, 68Produkt
inneres, 150kartesisches, 2
Produkt, äußeres, 150Programm, 5
implementieren, 5lineares, 147
Programmiersprache, 4Pseudo-Zufallszahlen, 109Pseudocode, 5, 10public, 35push_back, 41
QQuadrat einer Zahl, 6quadratische Konvergenz, 71Quadratwurzel, 64, 70Quelle, 142Quersumme, 44Queue, 85queue, 86Quicksort, 112, 113
Rrand(), 108RAND_MAX, 108random, 108random access, 83Random-Quicksort, 114randomisierter Algorithmus, 114Rang, 149, 150range, 57Rationale Zahlen, 36rbegin(), 42reelle Zahlen, 53Referenz, 28regulärer Graph, 147rekursive Funktion, 28Relation, 2rend(), 42Residualgraph, 143Residualkapazitäten, 143Residuenvektor, 166resize, 41Restklassenring, 33return, 13RSA, 16Rückwärtsanalyse, 69rückwärtsstabil, 162Rundung, 57Rundung, kaufmännische, 57Rundungsfehler, 4, 63runtime_error, 38
SSatz vom arithmetischen und geometrischen
Mittel, 71Schlüssel, 110Schnitt
goldener, 51s-t-, 143
Senke, 142setprecision, 59setw, 109short, 34Sieb des Eratosthenes, 2, 15, 16signifikante Stellen, 59singuläre Matrix, 150size(), 41sizeof, 34size_t, 34
180 Sachverzeichnis
sort, 109Sortieren
durch Einfügen, 110durch sukzessive Auswahl, 104, 106nach Schlüsseln, 110
Spaltensummennorm, 163Spaltenvektor, 150Sprache, 3, 8sqrt, 22Stabilität, 69Stack, 29, 85Standardbibliothek, 8, 17Standardskalarprodukt, 150stark zusammenhängender Digraph, 81Static, 30static, 39static_cast, 38std::, 8stdexcept, 38Stellen, signifikante, 59Streammanipulator, 29, 109streng polynomieller Algorithmus, 135string, 27, 28struct, 86Subdeterminante, 159Subgraph, 77submultiplikative Matrixnorm, 163subnormale Zahl, 56Subtraktion, 45Suchbaum, balancierter, 120Suche, binäre, 64
diskret, 65surjektive Funktion, 2swap, 37symmetrische Differenz, 78
TTeilbarkeitsrelation, 2Teiler, größter gemeinsamer, 48teilerfremde Zahlen, 48Teilgraph, 77
aufspannender, 77echter, 79induzierter, 77
Teilmenge, echte, 79Teilpivotisierung, 156template, 85Template-Parameter, 87
then-Teil in Pseudocode, 10�-Notation, 11, 88this, 43throw, 38Tiefensuche, 96time(), 108time_t, 108tm, 108topologische Ordnung, 100totale Ordnung, 103Transponieren, 150Traveling-Salesman-Problem, 136true, 9try, 38Turing, Alan, 4Turing-Maschine, 1, 4Typ einer Variablen, 9typename, 87
Uüberabzählbare Menge, 3überdeckter Knoten, 140Überlauf, 20, 34unendliche Menge, 3uniform_int_distribution, 108unordered_map, 120untere Dreiecksmatrix, 151Untergraph, 77using, 20
VVariable
globale, 28in C++, 9in Pseudocode, 6Typ, 9
vector, 17, 65Verbindung
Kante, 76Weg, 77
Vereinigung, disjunkte, 78Verfahrensfehler, 63verträgliche Matrixnorm, 163Vielfaches, kleinstes gemeinsames, 48virtual, 127void, 13vollständige Induktion, 26
Sachverzeichnis 181
vollständiger bipartiter Graph, 99vollständiger Graph, 99Vorgänger, 82Vorkonditionierung, 168Vorwärtsanalyse, 69Vorzeichendarstellung, 31
Wvan der Waerden, B.L., 140Wald, 80Weg, 77
augmentierenderM-, 140f -, 143
Wert, 142Wertebereich, 2what(), 38while-Anweisung in C++, 21Wilkinson, J.H., 161Wort, 3
leeres, 3
Wurzel, 82Wurzelziehen
babylonisches, 70
ZZahlen
harmonische, 36komplexe, 53reelle, 53subnormale, 56teilerfremde, 48
Zehnerkomplement, 32Zeichenkette, 3Zeilensummennorm, 163Zeilenvektor, 150Zertifikat, 136zugrundeliegender ungerichteter Graph, 81zulässige Lösung, 123Zusammenhangskomponente, 79
starke, 81Zweierkomplement, 32