27.08.2013 Aufrufe

Wurzeln einer Matrix - Fachgruppe Computeralgebra

Wurzeln einer Matrix - Fachgruppe Computeralgebra

Wurzeln einer Matrix - Fachgruppe Computeralgebra

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

schöne Normalformalgorithmen direkt auf Entscheidungsdiagrammen<br />

entwickeln. Diese Normalformalgorithmen<br />

behandeln auch gar nicht mehr individuelle Terme,<br />

sondern nur noch die Diagrammstruktur, so dass<br />

auch Zwischen- und Endergebnisse mit extrem vielen<br />

Termen gut handhabbar sind, solange die Diagramme<br />

klein bleiben. Das erfordert natürlich, dass die entsprechenden<br />

Algorithmen nicht auf den einzelnen Termen<br />

operieren. Doch so einfach hat sich der Multiplizierer<br />

nicht geschlagen gegeben. Wir haben noch ein paar neue<br />

Techniken gebraucht, um unsere Beispiele zu knacken.<br />

In der Tat entfalten zwei unserer Verbesserungen ihr Potential<br />

erst im Zusammenspiel.<br />

Die erste war rein technisch: Wir hatten die Normalform<br />

über einen rekursiven Algorithmus beschrieben,<br />

bei dem in jedem Rekursionsschritt eine Variable<br />

entfällt. Unser neuer Algorithmus sollte weniger rekursive<br />

Aufrufe beinhalten. Die ersten Ergebnisse waren<br />

nicht vielversprechend.<br />

Davon unabhängig versuchten wir die Systeme besser<br />

zu verstehen. Wir wollten Polynome, deren Entscheidungsdiagramm<br />

schön kompakt ist.<br />

a2<br />

b0<br />

b1<br />

a1<br />

a2<br />

0<br />

a0<br />

b0<br />

b2<br />

a1<br />

a2<br />

(a) alphabetisch<br />

a2<br />

b0<br />

b1<br />

1<br />

b0<br />

b2<br />

a2<br />

0<br />

a1<br />

b1<br />

b2<br />

a0<br />

b0<br />

b1<br />

(b) optimiert<br />

Abbildung 4: Übertrag eines 3-Bit Addierers bei<br />

verschiedenen Variablenreihenfolgen<br />

Im einfacheren Fall von Addierern hatten wir das in<br />

Handarbeit schon einmal geschafft. Abbildung 4 zeigt<br />

Diagramme für den Übertrag <strong>einer</strong> Addition für verschiedene<br />

Sortierungen der Entscheidungsvariablen. Alle<br />

Variablen dieses Graphen entsprechen Eingängen, so<br />

dass das oben beschriebene Verfahren, die Variablen<br />

nach ihrer Abhängigkeit zu sortieren, deren Reihenfolge<br />

offen lässt.<br />

Für Addierer und Übertragsbits fanden wir eine allgemeine<br />

mathematische Bedingung [Bri]. Übertragen<br />

auf den Multiplizierer waren die praktischen Ergebnisse<br />

zunächst desaströs. Für einen 10 × 10 Multiplizierer<br />

bekamen wir überhaupt kein Ergebnis mehr. In <strong>einer</strong> ruhigen<br />

Stunde kombinierten wir die beiden Verbesserungen.<br />

Heraus kamen die Ergebnisse von Tabelle 1.<br />

1<br />

15<br />

Zeit EinVaria- Eingaben/<br />

gängeblen Sekunde<br />

8 × 8 0.07 16 204 940000<br />

10 × 10 0.14 20 314 7500000<br />

16 × 16 23.65 32 768 180000000<br />

Tabelle 1: Äquivalenzvergleich Multiplizierer<br />

Wir konnten den 16 × 16 Multiplizierer in 24 Sekunden<br />

auf einem MacBook Pro 2.5 GHz Core Duo 2 verifizieren.<br />

In Tabelle 1 haben wir auch die Anzahl möglicher<br />

Eingaben (2 32 = 4 294 967 296 für einen 16 × 16 Multiplizierer)<br />

mit der Zeit verglichen. Bei einem Simulator<br />

ist dieser Quotient konstant, was für ein exponentielles<br />

Wachstum steht. Bei uns verbessert sich der Quotient<br />

vom kleinsten zum größten Beispiel auf 200. Empirisch<br />

wächst die Zeit in den komplexeren Beispielen<br />

also nicht exponentiell.<br />

Ausblick<br />

POLYBORI hat gezeigt, dass es echte Verifikationsprobleme<br />

lösen kann. Zusammen mit anderen formalen<br />

Ansätzen betreten wir hier gerade das neue Gebiet der<br />

industriellen Algebra.<br />

Literatur<br />

[AB] M. Albrecht und G. Bard. The M4RI Library<br />

– Version 20080901. The M4RI Team, 2008.<br />

http://m4ri.sagemath.org.<br />

[BD] M. Brickenstein und A. Dreyer. PolyBoRi: A<br />

framework for Gröbner-basis computations with<br />

Boolean polynomials. Journal of Symbolic Computation,<br />

44(9):1326–1345, 2009. ISSN 0747-<br />

7171. doi: 10.1016/j.jsc.2008.02.017. Effective<br />

Methods in Algebraic Geometry.<br />

[Bri] M. Brickenstein. Boolean Gröbner bases – Theory,<br />

Algorithms and Applications. PhD thesis, University<br />

of Kaiserslautern, Germany, 2010.<br />

[Bry] R. E. Bryant. Graph-based algorithms for Boolean<br />

function manipulation. IEEE Transactions on<br />

Computers, 35(8):677–691, 1986.<br />

[CEI] M. Clegg, J. Edmonds und R. Impagliazzo.<br />

Using the Groebner basis algorithm to find proofs<br />

of unsatisfiability. Proceedings of the Twentyeighth<br />

Annual ACM Symposium on the Theory of<br />

Computing, pages 174–183, 1996.<br />

[CK] C. Condrat und P. Kalla. A Gröbner basis approach<br />

to CNF-formulae preprocessing. In Tools<br />

and Algorithms for the Construction and Analysis<br />

of Systems, volume 4424 of Lecture Notes in Computer<br />

Science, pages 618–631. Springer, 2007. doi:<br />

10.1007/978-3-540-71209-1 48.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!