Diese Aufzeichnung bietet eine umfassende Einführung in das sechswöchige Online-Basistraining für das numerische Optimierungsframework Casadi, vorgestellt von Mitentwickler Joris. Neben dem Kursformat – das Theorie, Programmierübungen, strukturierte Fehlerintegration und wöchentliche Live-Sessions kombiniert – wird die zugrundeliegende Softwarearchitektur von Casadi detailliert analysiert. Das Framework zeichnet sich durch die Verwendung von gerichteten azyklischen Graphen (DAGs) mit Unterausdruck-Wiederverwendung, automatischer Differenzierung (AD), getrennten Skalar- (SX) und Matrixrepräsentationen (MX) sowie hocheffizienter Code-Generierung nach C aus. Es verzeichnet über 1 Million Downloads pro Monat auf PyPI und findet breite Anwendung in Forschung und Industrie für optimale Steuerung (Optimal Control) und modellprädiktive Regelung (MPC).
Wichtigste Punkte & Zeitstempel
0:44 Kursformat & Methodik: Das sechswöchige Online-Training verknüpft mathematische Intuition mit praktischen Übungen, wobei absichtlich integrierte Fehler als mentale Lesezeichen (mentale Leitsätze) für nachhaltiges Lernen dienen.
4:09 Ablauf & Zeitplan: Der Kurs umfasst wöchentlich zwei Lernmodule (aufgezeichnete Seminare und Überprüfungs-Quizzes) sowie dreistündige interaktive Live-Sessions mit parallelen Terminen für europäische und US-amerikanische Zeitzonen.
6:06 Lehrplan-Struktur: Das Curriculum deckt Wurzelbestimmung (Root Finding), nichtlineare Programmierung (NLP), direkte Methoden der optimalen Steuerung (Single/Multiple Shooting) und modellprädiktive Regelung (MPC) ab.
9:44 Ingenieursworkflow: Der Standard-Workflow in Casadi gliedert sich in Systemdefinition (ODE/DAE), Problemformulierung (Simulation, Initial Value Problems, Optimierung) und parametrische Lösung für die Hardware-Bereitstellung.
11:30 Verbreitung & Metriken: Die Casadi-Hauptpublikation verzeichnet rund 6.000 Zitationen in der akademischen Forschung; das Projekt erreicht etwa 1 Million Downloads pro Monat über PyPI.
13:24 Ausdrucks-Architektur (SX vs. MX): Casadi nutzt gerichtete azyklische Graphen (DAGs) zur Wiederverwendung von Unterausdrücken, unterteilt in skalare Graphen (SX) für niedrigdimensionale, heterogene Systeme und Matrixgraphen (MX) für hochrangige Problemstrukturen.
20:03 Konstruktions- vs. Evaluierungsphase: Eine strikte Phasentrennung maximiert die Effizienz: Während die Konstruktionsphase auf $O(N \log N)$ ausgelegt ist, wird die Evaluierungsphase kompromisslos auf minimale Ausführungszeit und Speicherallokation optimiert.
24:33 Code-Generierung & Opty: Casadi ermöglicht die automatische Generierung von hocheffizientem C-Code aus Funktionen sowie eine intuitive Matlab/Python-Syntax (opty) für NLP-Problemstellungen.
32:25 Moderne Integrationen (Version 3.8): Zu den neueren Features gehören die erstklassige Integration neuronaler Netze über ONNX, FMU/FMI-Modellierung, WebAssembly-Unterstützung sowie Frontend-Pakete für die Programmiersprache Julia.
37:51 Lizenzmodell (LGPL): Casadi ist unter der LGPL lizenziert, was den kommerziellen Einsatz und die Auslieferung von in Produkten integriertem, generiertem C-Code ohne Bindung an den Quellcode des Frameworks erlaubt.
Glossar
Casadi: Ein Open-Source-Framework für numerische Optimierung und algorithmische Differenzierung, das primär für optimale Steuerung und dynamische Simulationen entwickelt wurde.
NLP (Nonlinear Programming): Nichtlineare Programmierung; ein mathematisches Optimierungsverfahren, bei dem die Zielfunktion oder Nebenbedingungen nichtlinear sind.
Single / Multiple Shooting: Direkte Diskretisierungsmethoden in der optimalen Steuerung, bei denen das dynamische Zeitintervall in Teilschritte unterteilt wird, um komplexe Randwertprobleme zu lösen.
MPC (Model Predictive Control): Modellprädiktive Regelung; eine fortgeschrittene Regelungsmethode, die ein mathematisches Systemmodell nutzt, um zukünftige Steuerungseingaben über ein horizontales Zeitfenster zu optimieren.
DAG (Directed Acyclic Graph): Gerichtet azyklischer Graph; eine Datenstruktur aus Knoten und gerichteten Kanten ohne geschlossene Schleifen, die in Casadi zur effizienten Speicherung und Auswertung von Formeln dient.
SX & MX: Die zwei internen Ausdruckstypen von Casadi; SX steht für skalare Ausdrücke (ideal für 1D-Systeme mit vielen mathematischen Operationen), während MX Matrixausdrücke für vektorisierte, hochdimensionale Probleme darstellt.
Algorithmic Differentiation (AD): Algorithmische Differenzierung; automatisierte Programmiertechniken zur exakten numerischen Berechnung von Ableitungen (Gradienten, Jacobians, Hessians) ohne symbolische Auf Blähung.
IPOPT (Interior Point Optimizer): Ein weit verbreiteter, Open-Source-basierter Software-Solver zur Lösung großskalierter nichtlinearer Optimierungsprobleme.
FMU (Functional Mock-up Unit): Eine standardisierte Komponente gemäß dem FMI-Standard (Functional Mock-up Interface) zum Austausch von dynamischen Simulationsmodellen zwischen verschiedenen Software-Tools.
LGPL (Lesser General Public License): Eine freie Softwarelizenz, die die kommerzielle Nutzung und Integration von Bibliotheken in proprietäre Software erlaubt, sofern Modifikationen an der Bibliothek selbst unter derselben Lizenz veröffentlicht werden.
WebAssembly (Wasm): Ein binäres Codeformat für Webbrowser, das die Ausführung von Hochsprachen wie C oder C++ mit nahezu nativer Leistung im Browser ermöglicht.