Computeralgebra

Computeralgebra

Die Computeralgebra ist das Teilgebiet der Mathematik und Informatik, das sich mit der automatisierten, symbolischen Manipulation algebraischer Ausdrücke beschäftigt.

Inhaltsverzeichnis

Überblick

Hauptziel dieses Teilgebiets ist es, durch exakte Rechnung (Rundungen oder Näherungen werden nicht zugelassen) algebraische Ausdrücke umzuformen und ein möglichst kompaktes Ergebnis zu ermitteln. Eine Nebenbedingung ist hierbei, die verwendeten Algorithmen effizient zu gestalten.

Die Disziplinen Mathematik und Informatik sind in der Computeralgebra eng miteinander verwoben, einerseits über die Komplexitätstheorie für die Analyse, andererseits über die Softwaretechnik für die praktische Umsetzung computeralgebraischer Algorithmen.

Einen Schwerpunkt bildet das exakte Rechnen mit ganzen, rationalen und algebraischen Zahlen sowie mit Polynomen über diesen Zahlenräumen. Eine weitere Anwendung ist das symbolische Lösen von Gleichungen aller Arten, das symbolische summieren von Reihen, die symbolische Berechnung von Grenzwerten und das symbolische Differenzieren und Integrieren (auch Algebraische Integration genannt).

Praktische Anwendung erfahren solche Ergebnisse durch den Einsatz effizienter Algorithmen bei der Entwicklung und Verbesserung von Computeralgebrasystemen, die die rechnergestützte Manipulation algebraischer Ausdrücke ermöglichen. Diese Systeme sind auch ein immer wichtiger werdendes Werkzeug für Mathematiker und Naturwissenschaftler verschiedenster Fachrichtungen.

Zugrundeliegende Strukturen

Anders als in der Numerik, wo mit Gleitkomma-Approximationen der auftretenden Zahlen gerechnet wird, hat die Computeralgebra den Anspruch, stets exakt zu rechnen. Entsprechend ist es grundsätzlich notwendig, Anforderungen an die zugrundeliegenden Strukturen (in der Regel Gruppen, Ringe oder Körper) zu spezifizieren.

Gruppen

Alle endlichen Gruppen lassen sich im Computer darstellen, für unendliche Gruppen gibt es unter bestimmten Voraussetzungen Algorithmen, etwa für polyzyklische Gruppen.

Berechenbare Ringe

Ein Ring heißt berechenbar (oder "effektiv"), wenn folgende Bedingungen gelten:

  • Die Elemente des Rings können auf einem Computer dargestellt werden, insbesondere muss die Darstellung der Elemente endlich sein,
  • Gleichheit zwischen zwei Elementen kann in endlicher Zeit entschieden werden,
  • es gibt Algorithmen mit denen die Ringoperationen „+“ und „·“ durchgeführt werden können.

Beispiele

Berechenbar sind etwa:

Aus einem berechenbaren Ring R lassen sich weitere berechenbare Ringe konstruieren:

Formale Objekte

In der Computeralgebra werden neben den Elementen der zugrundeliegenden Bereiche noch weitere "formale" Objekte betrachtet wie etwa

Hierbei geht es in der Regel nicht um die Berechnung von Zahlwerten, sondern beispielsweise um die Bestimmung von "geschlossenen Formeln" als Lösungen.

Anwendungen

Bei den Anwendungen mathematischer Methoden in Naturwissenschaft und Technik stehen traditionell numerische Methoden im Vordergrund. Mit den symbolischen Methoden der Computeralgebra haben sich neue Anwendungsgebiete eröffnet, bei denen es auf exakte Lösungen ankommt und bei denen strukturmathematische Überlegungen, z. B. zur Beschreibung von Symmetrien, eingehen; ferner die Behandlung von Problemen, die von unbestimmten Parametern abhängen.

Dazu gehören etwa:

  • In der Physik und ihren technologischen Anwendungen: Gemischt symbolisch-numerische Berechnungen komplexer Probleme in der Himmelsmechanik, der Hochenergiephysik (Feynman-Integrale) und der Relativitätstheorie (Differentialgeometrie); Integration und Lösung von Differentialgleichungen in geschlossener Form; symbolische Berechnungen in den Algebren der Quantenmechanik; Klassifikation höherdimensionaler kristallographischer Gruppen zur Beschreibung von inkommensurabel modulierten Strukturen, Quasikristallen und magnetischen Strukturen.
  • In der Chemie: Anwendungen der Darstellungstheorie auf die Klassifikation von Graphen chemischer Verbindungen, insbesondere von Isomeren; Lösung großer Gleichungssysteme zur Bestimmung chemischer Reaktionsgleichgewichte bei variablen Reaktionsbedingungen, z. B. bei Verbrennungsprozessen und der Abgasregulierung.
  • In der Sicherheitstechnik: Algebraische Methoden der Fehlererkennung und -korrektur bei der Nachrichtenübertragung; kryptographische Kodierung von vertraulichen Nachrichten durch Public-Key-Verfahren mit Methoden der Zahlentheorie und der algebraischen Gruppen; Verifikation von Sicherheitsmechanismen (Protokollen).
  • In der Robotik: Bewegungsplanung und Regulierung autonomer Roboter z. B. in der Raumfahrt; zylindrisch algebraische Zellenzerlegung des \R^n; geometrische Bildverarbeitung beim Maschinensehen.
  • Im computergestützten Entwurf (CAD): Flexible Inferenzsysteme für die geometrische Modellierung parametrisierter Probleme; Konstruktion von Übergangsflächen.
  • In der Kontrolltheorie: Untersuchung der Stabilität und Sicherheit von Kontrollsystemen mit Rückkopplung.
  • In der Genforschung: Klassifikation von DNA-Strukturen.
  • In der Ausbildung: Computeralgebrasysteme versprechen eine Verbesserung des Mathematikunterrichts, da es durch ihren Einsatz möglich wird, sich mehr auf die Unterrichtsinhalte zu konzentrieren. Ferner ist die Behandlung realistischerer anwendungsbezogener Aufgaben möglich.

Die Methoden der Computeralgebra erlauben in diesen Anwendungsbereichen eine automatische Behandlung von Problemen, die sonst nur mühsam mit Ad-hoc-Ansätzen angegangen werden konnten. Das große Potential dieser Methoden ist dabei noch lange nicht ausgeschöpft. Kontinuierliche Förderung dieser Anwendungen und der zugrundeliegenden Algorithmen kombiniert mit immer leistungsstärkerer Hardware werden dem Gebiet Computeralgebra weitere Entwicklungsmöglichkeiten geben.

Komplexitätsbetrachtungen

Effiziente exakte Arithmetik mit ganzen Zahlen

Will man die Zeitkomplexität von Aufgaben und Algorithmen zur exakten Arithmetik mit ganzen Zahlen klassifizieren, so muss zunächst ein Rechnermodell zugrunde gelegt werden. Eine Diskussion diverser Rechnermodelle findet sich im Kapitel Komplexität. Ein relativ eingängiges Modell ist die Mehrband-Turingmaschine, eine Variante der klassischen Turingmaschine, die mehrere Bänder mit je einem Schreib-/Lesekopf besitzt. Für Komplexitätsabschätzungen mit der Landau-Notation wird bei Bedarf unter der Bezeichnung \operatorname{log} ein Logarithmus zu einer nicht spezifizierten Basis B > 1 verwendet. Als Maß für die Zeit wird die Zahl der benötigten Bitoperationen gewählt, die in Landau-Notation von der Bitlänge des Inputs abhängig gemacht wird.

Die präzise mathematische Angabe von (Bit-)Komplexitäten für die exakte Arithmetik mit ganzen Zahlen muss zunächst mit der genauen Festlegung der Bitlänge einer ganzen Zahl starten: Ist die Zahl  a \in \mathbb Z nichtnull, so wird

 L(a) := \operatorname{floor}\left(log_2 |a|\right)

gesetzt; zusätzlich wird L(0): = 1 definiert. Für die konkrete Speicherung einer ganzen Zahl wird zusätzlich mindestens noch ein Bit für das Vorzeichen benötigt.

Die Aufgaben der Vorzeichenbestimmung \operatorname{sgn}(a) , der Berechnung des Negativen a sowie der Betragsbildung | a | sind alle in linearer Zeit O(l) mit l = L(a) durchführbar; die Addition a + b sowie der Vergleich zweier Zahlen a < b sind in linearer Zeit O(l) mit l = max(L(a),L(b)) zu bewältigen. Der n-Shift  2^n\cdot a ist in O(n + l) durchführbar.

Ein nicht-triviales Ergebnis der Computeralgebra ist die Erkenntnis, dass die Multiplikation  a\cdot b wesentlich schneller als in O\left(l^2\right) (was dem naiven Multiplikationsalgorithmus entspricht) lösbar ist. Eine Beschleunigung erreichte zunächst Karatsuba mit dem Karatsuba-Algorithmus; dieser wurde dann als ein Spezialfall einer noch allgemeineren Algorithmenfamilie erkannt, die unter den Begriff Toom-Cook-Algorithmus subsumiert werden. Bahnbrechend war dann der von Arnold Schönhage und Volker Strassen 1971 vorgestellte auf diskreten Fourier-Transformationen basierende Schönhage-Strassen-Algorithmus, für den die Autoren selbst eine Komplexität von

O(l \cdot \log\, l  \cdot \log\,\log\, l )

nachwiesen. Bedenkt man, wie aufwendig der „naive“ Multiplikationsalgorithmus ist, so erscheint diese Komplexität unglaublich „schnell“. Da der Algorithmus allerdings ziemlich komplex und schwierig programmierbar ist, gibt es bis heute keine effiziente Implementierung in einem Computeralgebrasystem.

Da die Komplexität der Integer-Multiplikation in der gesamten Computeralgebra von absolut tragender Bedeutung ist, wurde hierfür eine Kurznotation

 \psi(l) := O(l \cdot \log\, l \cdot \log\,\log\, l)

eingeführt. Ausgestattet mit dieser „schnellen“ Integer-Multiplikation kann nun der Katalog der Grundrechenarten für die Arithmetik in \mathbb Z wie folgt vervollständigt werden: Die Aufgabe der Berechnung von an ist in O\left(\psi(n l)\right) durchführbar; für die (simultane) Berechnung der Binomialkoeffizienten {n\choose 0}\cdots{n\choose n} wird  O\left(n\cdot\psi(n)\right) benötigt. Die ganzzahlige Division a / b (mit Quotient und Rest als Ergebnis) benötigt

 O\left(\frac{l}{l_m} \cdot\psi(l_m)\right) .

Die Berechnung des größten gemeinsamen Teilers gcd(a,b) benötigt

 O\left(\left(\frac{l}{l_m} + {\rm log}\, l_m\right)\cdot\psi(l_m)\right) .

In gleicher Komplexität ist auch gcdex(a,b) berechenbar, d. h. die Kofaktoren u,v mit gcd(a,b) = ua + vb werden mitberechnet.

Effiziente exakte Arithmetik mit rationalen Zahlen

Bevor exakte Arithmetik in \mathbb Q konkret durchgeführt werden kann, muss erst eine kanonische Darstellung (Repräsentation) rationaler Zahlen gefunden werden; dieses Problem tauchte bei der exakten Arithmetik der ganzen Zahlen noch nicht auf. Rationale Zahlen sind Äquivalenzklassen „bedeutungsgleicher“ Brüche aus ganzen Zahlen; zum Beispiel sind \frac{1}{2} und \frac{2}{4} unterschiedliche Repräsentanten der gleichen rationalen Zahl.

Die gängigste kanonische Darstellung rationaler Zahlen wird festgelegt, indem alle gemeinsamen Teiler aus Zähler und Nenner herausgekürzt werden: Jede rationale Zahl ist dann eindeutig durch einen gekürzten Bruch

\frac{p}{q} mit p\in \mathbb Z, q\in\mathbb N und ggT(p,q) = 1

repräsentierbar. Ist diese Festlegung einmal getroffen, so beinhaltet jede elementare Operation in \mathbb Q wie Addition und Multiplikation auch notwendigerweise die Aufgabe des Herauskürzens des größten gemeinsamen Teilers aus Zähler und Nenner des Ergebnisbruches.

Dank der Resultate der exakten Arithmetik in \mathbb Z sind damit die Operationen a+b,\quad a-b, \quad a\cdot b, \quad a/b alle in der Komplexität

 O\left( \psi(l)\cdot {\rm log}\, l \right)

durchführbar. Von der Hoffnung, die Addition rationaler Zahlen in linearer Komplexität bewerkstelligen zu können, muss man hierbei Abschied nehmen.

Glücklicherweise kann die Berechnung des größten gemeinsamen Teilers sehr effizient mit Hilfe des Euklidischen Algorithmus berechnet werden. Der Euklidische Algorithmus spielt an vielen Stellen in der Computeralgebra in wechselnden Varianten eine tragende Rolle.

Effiziente exakte Arithmetik mit Polynomen in \Q[x]

Es genügt hierbei, die Arithmetik in \mathbb Z\left[x\right] zu betrachten, da Operationen mit rationalen Polynomen in naheliegender Weise durch jeweiliges Ausklammern der Hauptnenner auf Operationen mit ganzzahligen Polynomen zurückgeführt werden können. Für Polynome  f\in \mathbb Z[x] definiert man die (Koeffizienten-) Länge L(f) als das Maximum der Längen der einzelnen Koeffizienten.

Für die folgende Laufzeitentabelle wichtiger Berechnungsprobleme in \Z[x] setzen wir folgendes voraus:

  • f, g\in\Z\left[x\right]
  • vom Grad df = deg f bzw. dg = deg g, ferner d = \max(d_f,d_g),\, d_m = \min(d_f,d_g),
  • von der Länge lf = L(f) bzw. lg = L(g), ferner l = max(lf,lg) und lm = min(lf,lg),
  • daneben sei a\in\Z mit Bitlänge la = L(a).

Dann führen die (gemäß Bitkomplexität) schnellsten bislang bekannten Algorithmen zu folgender Laufzeittabelle:

Operation Komplexität als O(\dots) bei ungleichen Eingabegrößen
f + g d\, l d_m\, l
f\cdot g ψ(d(l + log d)) \frac{d}{d_m}\,\psi(d_m((d-d_m+1)l+\log d))
f / g Division mit Rest ψ(d(l + log d)) \frac{dl}{d_m l_m}\,\psi(d_m(l_m+\log d_m))
\operatorname{prem}(f,g) \frac{d}{d_m}\,\psi(d_m((d-d_m+1)l+\log d))
fk ψ(kd(l + log d))
f(ax) Skalierung d\,\psi(l+d l_a)
a^d f(\frac{x}{a}) Skalierung d\,\psi(l+d l_a)
f(2x) Skalierung d(l + d)
2^d f(\frac{x}{2}) Skalierung d(l + d)

Literatur

Deutschsprachige Literatur:

Englischsprachige Literatur:

  • P. Bürgisser, M. Clausen, M. A. Shokrollahi: Algebraic Complexity Theory, Springer, 1997
  • A. M. Cohen, H. Cuypers, H. Sterk: Some Tapas of Computer Algebra, Springer 1999
  • D. Cox, J. Little, D. O'Shea: Ideals, varieties, and algorithms. New York: Springer-Verlag, 1997
  • J. v. z. Gathen, J. Gerhard: Modern Computer Algebra. Cambridge University Press, 2nd Ed., 2003
  • K. O. Geddes, S. R. Czapor und G. Labahn: Algorithms for Computer Algebra, Kluwer, Boston, 1992

Skripte:

Weblinks


Wikimedia Foundation.

Игры ⚽ Нужно решить контрольную?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Computeralgebra-System — Ein Computeralgebrasystem (CAS) ist ein Computerprogramm das Methoden der Computeralgebra nutzt. Konkreter kann es Rechenaufgaben aus verschiedenen Bereichen der Mathematik lösen und dabei nicht nur (wie ein Taschenrechner) mit Zahlen, sondern… …   Deutsch Wikipedia

  • Computer-Algebra — Die Computeralgebra ist das Teilgebiet der Mathematik, das sich mit der symbolischen Manipulation algebraischer Ausdrücke beschäftigt. Inhaltsverzeichnis 1 Zweck 2 Effiziente exakte Arithmetik mit ganzen Zahlen 3 Effiziente exakte Arithmetik mit… …   Deutsch Wikipedia

  • Grafikfähiger Taschenrechner — TI 89, Grafikrechner mit CAS Ein grafikfähiger Taschenrechner (kurz Grafikrechner oder GTR) besitzt die Funktionen eines normalen Taschenrechners. Er hat jedoch ein höherauflösendes Display, das Ein und Ausgaben mehrzeilig darstellen und einfache …   Deutsch Wikipedia

  • Computer-Algebra-System — Ein Computeralgebrasystem (CAS) ist ein Computerprogramm das Methoden der Computeralgebra nutzt. Konkreter kann es Rechenaufgaben aus verschiedenen Bereichen der Mathematik lösen und dabei nicht nur (wie ein Taschenrechner) mit Zahlen, sondern… …   Deutsch Wikipedia

  • Integraltafel — von Meier Hirsch, 1810 …   Deutsch Wikipedia

  • Computeralgebrasystem — Ein Computeralgebrasystem (CAS) ist ein Computerprogramm, das Methoden der Computeralgebra nutzt. Konkreter kann es Rechenaufgaben aus verschiedenen Bereichen der Mathematik lösen und dabei nicht nur (wie ein Taschenrechner) mit Zahlen, sondern… …   Deutsch Wikipedia

  • Michael Pohst — (2010) Michael E. Pohst (* 5. Juni 1945) ist ein deutscher Mathematiker, der sich mit algebraischer Zahlentheorie, Computeralgebra und algorithmischer Zahlentheorie beschäftigt. Pohst promovierte 1973 an der Universität Köln bei Curt Meyer… …   Deutsch Wikipedia

  • Artificial Intelligence — Dieser Artikel oder Abschnitt bedarf einer Überarbeitung. Näheres ist auf der Diskussionsseite angegeben. Hilf mit, ihn zu verbessern, und entferne anschließend diese Markierung. Künstliche Inte …   Deutsch Wikipedia

  • Artificial intelligence — Dieser Artikel oder Abschnitt bedarf einer Überarbeitung. Näheres ist auf der Diskussionsseite angegeben. Hilf mit, ihn zu verbessern, und entferne anschließend diese Markierung. Künstliche Inte …   Deutsch Wikipedia

  • Artifizielle Intelligenz — Dieser Artikel oder Abschnitt bedarf einer Überarbeitung. Näheres ist auf der Diskussionsseite angegeben. Hilf mit, ihn zu verbessern, und entferne anschließend diese Markierung. Künstliche Inte …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”