2016-04-18 6 views
3

Wie gehe ich mit spärlichen Matrizen in JuMP um?JuMP mit dünn besetzten Matrizen?

Zum Beispiel nehme ich eine constrain der Form aufzwingen wollen:

A * x == 0 

wo A eine spärliche Matrix ist und x ein Vektor von Variablen. Ich gehe davon aus, dass die Sparsity von A ausgenutzt werden könnte, um die Optimierung zu beschleunigen. Wie kann ich das in JuMP nutzen?

Antwort

3

JuMP bereits profitiert von Sparse Matrix auf unterschiedliche Weise, ich habe die Quelle nicht überprüft, aber auf ein cited paper von JuMP.jl verweisen:

Im Fall der LP, die Eingangsdatenstrukturen sind die Vektoren c und b und die Matrix A in sparse Format und die Routinen zur Erzeugung dieser Datenstrukturen Matrixgeneratoren genannt werden

Ein Punkt zu beachten ist die Hauptaufgabe algebraischer Modellierungssprachen (AML) wie JuMP, Eingabedatenstrukturen für Solver zu generieren. AMLs wie JuMP lösen generierte Probleme nicht selbst, aber sie rufen die entsprechenden Standardlöser für diese Aufgabe auf.

+0

Ich weiß, JuMP dient nur als Schnittstelle zwischen dem Benutzer und dem Löser. Meine Frage (klarer jetzt) ​​ist, ob, wenn ich JuMP mit einer dünnen Matrix (in einer Beschränkung der Form A * x == 0, zum Beispiel, wo A ist eine spärliche Matrix und Xa-Vektor), die Daten von JuMP übersetzt liefern und dem Löser zugeführt wird, wird ebenfalls spärlich sein (unter der Annahme, dass der Löser für die Behandlung von dünn besetzten Matrizen optimiert ist). – becko

+0

@becko Ich denke, dass JuMP dies unter der Haube tut. Wenn Sie skeptisch sind, versuchen Sie, ein Spielzeugbeispiel mit und ohne eine spärliche lineare Abhängigkeitsmatrix "A" zu verwenden, um selbst zu sehen. –