Was ist zu groß für standardmäßige lineare Algebra / Optimierungsmethoden?


8

Verschiedene numerische lineare Algebra- und numerische Optimierungsmethoden haben unterschiedliche Größenbereiche, in denen sie zusätzlich zu ihren eigenen Eigenschaften eine „gute Idee“ sind. Beispielsweise werden für sehr große Optimierungsprobleme Gradienten-, stochastische Gradienten- und Koordinatenabstiegsmethoden anstelle von Newton- oder Interior Point-Methoden verwendet, da Sie sich nicht mit dem Hessischen befassen müssen. In ähnlicher Weise sind dichte lineare Lösungsverfahren nach einer bestimmten Größe nicht mehr durchführbar.

Angesichts der Tatsache, dass sich sowohl die Algorithmen als auch die Computerhardware ständig ändern, was ist ein guter Weg, um zu wissen und mitzuhalten, wie groß zu groß für standardmäßige lineare Algebra und Optimierungslöser ist?

(Ich denke darüber nach, denn wenn Sie ein Endbenutzer von numerischen Algorithmen sind, ist es wichtig, eine vage Vorstellung davon zu haben, wann diese Algorithmen angewendet werden können. Ein Teil davon ist die Problemstruktur und die Art der gewünschten Lösung, aber ein Teil davon ist auch nur die Größe des Problems.)

EDIT: Um mehr Konkretheit zu erreichen, habe ich darüber nachgedacht, dass die Faustregeln an den oberen Grenzen variieren, um festzustellen, wie groß ein Problem sein kann, das Algorithmen für innere Punkte lösen können. Frühere Arbeiten sagten, dass die Dimensionalität bei etwa 1000 liegen sollte, während spätere Arbeiten auf 5000 revidiert wurden und noch neuere Arbeiten noch größere zulassen, je nachdem, ob Sie die Sparsamkeit nutzen können. Das ist ein ziemlich großer Bereich, daher bin ich gespannt, was für hochmoderne Innenpunktmethoden groß ist.


1
Ich verstehe, warum dies schön zu wissen wäre, aber angesichts der aktuellen Frage scheint es mir viel zu vage und allgemein zu sein, um beantwortet zu werden. Die Anwendbarkeit von Methoden in Abhängigkeit von der Größe des Problems hängt immens von den jeweiligen Problemen und Methoden ab.
OscarB

Ihre Frage scheint etwas zu weit gefasst zu sein ... Wie @OscarB angedeutet hat, hängt die Machbarkeit und Komplexität des Optimierungsalgorithmus weitgehend von der Art des Problems ab, das Sie lösen möchten. Sie sollten Ihre Frage etwas verfeinern ... Sie können sie beispielsweise in den Kontext eines bestimmten Optimierungsproblems oder einer bestimmten Problemklasse stellen.
Paul

Die Frage kann für serielle Algorithmen und parallele Algorithmen getrennt beantwortet werden. Ich denke, die Auswahl der Algorithmen hängt hauptsächlich vom Speicher und dem Zeitverbrauch für ein bestimmtes Problem ab. Wenn Sie sagen, dass ein Algorithmus nicht anwendbar ist, wenn das Problem zu groß ist, meinen Sie, dass die asymptotische Komplexität des Speichers und / oder der Zeitnutzung mit der Größe des Problems zu schnell zunimmt. Finden Sie einfach die asymptotische Komplexität Ihres Algorithmus heraus.
Hui Zhang

Antworten:


7

Wenn die Sparsity erhalten bleibt, optimale Vorkonditionierer verfügbar sind und Ungleichheitsbeschränkungen durch eine Multiskalenmethode gelöst werden können (oder die Anzahl der aktiven Beschränkungen nicht zu groß ist), kann der Gesamtalgorithmus Zeit und Raum sein. Durch die Verteilung auf eine parallele Maschine wird der Zeit ein logarithmischer Term hinzugefügt. Wenn genügend Sparsamkeit verfügbar ist oder wenn matrixfreie Methoden verwendet werden, können pro Kern etwa eine Million Freiheitsgrade gelöst werden. Damit liegt die Problemgröße für die größten Maschinen von heute bei rund einer Billion Freiheitsgraden. Mehrere Gruppen haben PDE-Simulationen in diesem Maßstab durchgeführt.O(n)

Beachten Sie, dass es weiterhin möglich ist, die Newton-basierte Optimierung mit großen Entwurfsräumen zu verwenden. Sie müssen sie nur iterativ mit dem Hessischen lösen. Es gibt viele Ansätze, um dies effizient zu tun.

Es kommt also darauf an, wie Sie "Standardmethoden" definieren. Wenn Ihre Definition mehrstufige strukturerhaltende Methoden enthält, können extrem große Probleme behoben werden. Wenn Ihre Definition auf unstrukturierte dichte Methoden beschränkt ist, sind die möglichen Problemgrößen viel kleiner, da die Algorithmen weder zeitlich noch räumlich "skalierbar" sind.


3

Die Grenze wird hauptsächlich durch den Speicher angegeben, der zum Speichern der Matrixdarstellung benötigt wird, und durch die Zeit, um sie aus dem Speicher abzurufen.

Dies macht einige Tausend zur Grenze für die Dichtematrixmethode in einfachen Umgebungen. Bei spärlichen Problemen ist die Grenze für direkte Löser viel höher, hängt jedoch vom Sparsity-Muster ab, da das Ausfüllen berücksichtigt werden muss. Die Grenze für iterative Methoden für lineare Löser liegt im Wesentlichen in den Kosten einer Matrixvektormultiplikation.

Die Grenze zur Lösung der linearen Teilprobleme führt direkt zu entsprechenden Grenzen für lokale Löser für nichtlineare Gleichungssysteme und Optimierungsprobleme.

Globale Löser haben viel strengere Grenzen, da sie durch die Anzahl der Teilprobleme begrenzt sind, die in einem verzweigten und gebundenen Rahmen gelöst werden müssen, oder durch den Fluch der Dimensionalität bei stochastischen Suchmethoden.


3

Für eine bestimmte Klasse von Problemen gibt es gute Möglichkeiten, um herauszufinden, was ausmacht, wie groß "zu groß" ist:

  • Durchsuchen Sie die Literatur in Ihrem Fachgebiet. Verstehen Sie, welche Faktoren die Ausführungszeit begrenzen (dazu gehören die Speichernutzung und die Kommunikation).
  • Schauen Sie sich Testproblemsätze an (besser für serielle Algorithmen als für parallelisierte Algorithmen, da ich nicht viele Testproblemsätze für parallelisierte Algorithmen kenne).
  • Teilen Sie den Algorithmus in kleinere Bestandteile auf und verwenden Sie das, was Sie über die Teile wissen, um Rückschlüsse auf das Ganze zu ziehen (Beispiel: Krylov-Subraummethoden beschränken sich auf Schleifen von Matrixvektorprodukten, sodass Sie herausfinden müssen, wie viele Iterationen es gibt ist "zu viele" und was macht ein Matrix-Vektor-Produkt "zu groß")
  • Probieren Sie es selbst aus (auf einem seriellen Computer oder, wenn Sie über die Ressourcen verfügen, auf einem parallelen Computer). Sehen Sie, wie groß eine Instanz sein kann, oder führen Sie mehrere Instanzen unterschiedlicher Größe aus, und führen Sie eine empirische Skalierungsanalyse durch (Zeit vs. Problemgröße).

Beispielsweise ist bei der globalen Optimierung die konkrete Antwort äußerst strukturabhängig. Wie Arnold Neumaier bemerkt, sind deterministische globale Optimierungsalgorithmen in der Regel durch die Anzahl der Teilprobleme begrenzt, die in einem Branch-and-Bound-Framework (oder Branch-and-Cut-Framework) gelöst werden müssen. Ich habe gemischte ganzzahlige lineare Programme (MILPs) gelöst, die Tausende von binären Variablen enthalten, aber ich vermute, dass der Grund, warum ich so große Probleme lösen kann (vergleichsweise für MILPs), darin besteht, dass die Problemstruktur so war, dass nur wenige Teilprobleme gelöst werden mussten einige kritische Mengen von Binärvariablen, und der Rest könnte auf Null gesetzt werden. Ich weiß, dass mein Problem "groß" ist; Ich habe andere MILPs ähnlicher Größe konstruiert, die sich zehntausende Male langsamer lösen.

Es gibt globale Optimierungstestsätze, die Ihnen eine Vorstellung davon geben, was "normal" ist, und die Literatur kann Ihnen eine Vorstellung davon geben, welche Probleme "groß" sind. Ähnliche Taktiken gibt es, um den Stand der Technik bei Problemgrößen in anderen Bereichen herauszufinden. So können Jed Brown und Arnold Neumaier diese Zahlen zitieren. Es ist großartig, diese Zahlen zu erhalten, aber es ist weitaus wertvoller, herauszufinden, wie man sie zu gegebener Zeit selbst erhält.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.