Bestimmung von Nichtnull-Mustern von Jacobimatrizen in ADiMat

Bachelorarbeit

Automatisches Differenzieren[1] (AD) ist eine Methode, numerische Programme automatisiert so zu modifizieren, dass die Ableitungen der ursprünglichen Berechnungen effizient bestimmt werden können. Das Werkzeug ADiMat (Automatisches Differenzieren für Matlab) wird am Fachgebiet SC entwickelt und ermöglicht AD von Matlab-Funktionen. Es beinhaltet zwei verschiedene Implementierung des Vorwärtsmodus und eine Implementierung des Rückwärtsmodus von AD.

Insbesondere im Vorwärtsmodus ist es oft von Interesse zahlreiche Richtungsableitungen gleichzeitig zu berechnen, z.B. die Jacobimatrix einer Funktion f: R^n -> R^n für große n. Die Laufzeit des mit AD erstellten Programms steigt linear mit der Anzahl der Richtungsableitungen. Bei dünnbesetzten Jacobi-Matrizen, d.h. solchen mit zahlreichen Nullelementen, ist es i.d.R. möglich mehrere Ableitungsrichtungen zu einer einzigen zu komprimieren und dadurch die Anzahl der Richtungsableitungen, die tatsächlich berechnet werden müssen drastisch zu reduzieren[2]. Die dazugehörigen Techniken sind bereits in ADiMat implementiert. Eine Voraussetzung ist allerdings die Kenntnis des Nichtnull-Musters der Jacobimatrix. Dies ist eine Bitmatrix mit Einsen an den Stellen wo die Jacobimatrix Elemente ungleich Null haben kann.

Forschungsziel

Daher soll ADiMat im Rahmen dieser Arbeit um die Fähigkeit erweitert werden, das Nichtnull-Muster einer Jacobimatrix automatisiert zu bestimmen.

Forschungsmethode

Eine Möglichkeit ist ADiMat um eine spezielle Ableitungsklasse zu erweitern, welche Bitpatterns anstelle von Fließkommazahlen propagiert. Sämtliche Verknüpfungen von Ableitungen werden durch bitweises Oder ersetzt. Im Rahmen einer Bachelorarbeit soll solch eine Ableitungsklasse implementiert werden. Für eine Masterarbeit ließe sich der Umfang ggfs. um die Verfolgung weiterer Ansätze, wie z.B. die Generierung speziellen Codes erweitern.

Publikationen

  • Richard D. Neidinger: Introduction to Automatic Differentiation and MATLAB Object-Oriented Programming. 2010, SIAM Review, Vol. 52, No. 3, pp. 545—563
  • Averick, B.M. et al.: Computing large sparse Jacobian matrices using automatic differentiation. 1993, SIAM Journal on Scientific Computing, Vol. 15, pp. 285—294

Bemerkungen

Dieses Thema kann sowohl als Bachelor- als auch als Master-Arbeit bearbeitet werden.