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.
Antworten:
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.
quelle
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.
quelle
Für eine bestimmte Klasse von Problemen gibt es gute Möglichkeiten, um herauszufinden, was ausmacht, wie groß "zu groß" ist:
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.
quelle