©2000 - 2002 Dipl.-Ing. Tobias Jockenhövel. All rights reserved.

Introduction

[Student Theses] [Yuen Yee Jin] [Alan Yeo] [Richard Faber] [Steffen Petrauschke] [Matthias zum Beck]

Dynamische Optimierung mit Hilfe von Simulated Annealing

 Zusammenfassung

Im Rahmen dieser Arbeit wurde ein Programm auf Matlab Basis erstellt, mit dem sich mit Hilfe des Simulated Annealing Algorithmus, dynamische Optimierungsprobleme lösen lassen. Es wurde dafür ein homogener Annealing Algorithmus implementiert, der zur Zielfunktionswertberechnung auf bestehende Simulink Modelle des zu optimierenden Systems zugreift. Dadurch ist eine black box Simulation möglich. Das Programm wurde in eine graphische Benutzeroberfläche eingebettet, über die alle notwendigen Parameter eingegeben werden können und das Ergebnis der Optimierung graphisch dargestellt wird.

Es wurden zwei Beispielprobleme benutzt, um den Einfluss der in Simulated Annealing vorhandenen Parameter zu testen und die implementierten Möglichkeiten zur Verbesserung der Recheneffizienz anhand dieser Modelle auf ihre Anwendbarkeit zu überprüfen. Die wichtigsten Parameter, die in dieser Arbeit überprüft wurden waren der Einfluss der Annealing Temperatur und der Abkühlrate auf die Qualität des Ergebnisses und die Konvergenzgeschwindigkeit des Algorithmus, die Schrittweite und die implementierte Schrittweitensteuerung und die Art der Variation der Variablen.

Bei der Auswahl der Parameter wurde besonderes Augenmerk auf die Verbesserung der Recheneffizienz bei gleicher Qualität der Lösung gelegt.

Es hat sich gezeigt, dass der wichtigste Parameter bei Simulated Annealing die Annealing Temperatur ist. Sie bestimmt maßgeblich, ob Verschlechterungen der Zielfunktion akzeptiert werden. Dadurch hat sie großen Einfluss auf das Akzeptanzverhältnis und somit indirekt auf die Schrittweite und bestimmt deshalb sowohl die Qualität, als auch die Konvergenzgeschwindigkeit des Algorithmus. Alle Parameter, die mit der Annealing Temperatur direkt oder indirekt verbunden sind, wie zum Beispiel Anfangstemperatur und Abkühlrate, haben somit großen Einfluss auf das Ergebnis und müssen deshalb mit Bedacht gewählt werden. Es hat sich gezeigt, dass die Anfangstemperatur so hoch gewählt werden sollte, dass am Anfang alle Zielfunktionswerte akzeptiert werden. Dies bedeutet, dass die Anfangs Annealing Temperatur mindestens so groß sein sollte wie die mittlere Abweichung der Zielfunktionswerte bei maximaler Schrittweite. Der Wert für den Faktor in der implementierten Abkühlrate (Gleichung ) sollte je nach Gutmütigkeit des Problems zwischen 0.8 und 0.95 liegen. Die Abkühlrate hat einen starken Einfluss auf die Konvergenzgeschwindigkeit und somit auf die Recheneffizienz des Algorithmus und sollte deshalb so niedrig wie möglich gewählt werden. Allerdings muss darauf geachtet werden, dass der Algorithmus nicht in einem lokalen Minimum hängen bleibt.

Bezüglich der Verbesserung der Recheneffizienz hatte die Art der Variation der Variablen den größten Einfluss. Es konnte gezeigt werden, dass bei Problemen, bei denen der Einfluss der einzelnen Zeitschritte auf die Zielfunktion ungefähr gleich stark ist, mit einer parallelen Variation der Variablen das globale Optimum ermittelt werden konnte. Durch diese Variationsweise konnte hingegen eine zur Anzahl der parallel variierten Zeitschritte proportionale Steigerung der Recheneffizienz erzielt werden. Besonders in Verbindung mit der im Programm implementierten Step-Control (siehe Abschnitt ), welche unsinnige Sprünge im Verlauf der Steuergrößen verhindert, ist dies somit ein sehr wirksames Mittel die Performance des Algorithmus zu verbessern. Probleme bereitete hingegen eine parallele Variation der Variablen bei, durch Strafterme implementierte, aktiven Nebenbedingungen. Hier muss, um ein zu schnelles Absenken der Schrittweite zu verhindern der Faktor im Strafterm exakt gewählt werden, um das globale Optimum zu ermitteln.

Um solche Problem, bei denen ein unterschiedlicher Einfluss der Steuergrößen auf die Zielfunktion vorliegt nicht komplett sequentiell variieren zu müssen wurde eine Option eingebaut mit der sich der Zeitbereich in verschiedene Abschnitte unterteilen lässt, welche als Block variiert werden können.

Trotz der deutlichen Verbesserungen, die durch die bei der Recheneffizienz des Simulated Annealing Algorithmus erzielt werden konnten bleibt die Rechenzeit der größte Nachteil dieses Verfahrens. Dies zu verbessern sollte Ziel weiterer Arbeiten auf diesem Gebiet sein. Es wurden in dieser Arbeit einige Möglichkeiten aufgezeigt wie die Recheneffizienz noch weiter verbessert werden kann. Besonders eine Parallelisierung des gesamten Algorithmus, wodurch dieser auf mehreren Prozessoren gleichzeitig abgearbeitet werden könnte, ist eine vielversprechende Option. Auch Verbesserungen bei der Zeit welche die einzelnen Simulink Simulationen benötigen wäre eine Möglichkeit die Recheneffizienz zu Verbessern. So besteht zum Beispiel die Möglichkeit die Simulink Modelle zu in einen C-Code zu übersetzen und zu compilieren. Das daraus entstehende ausführbare Programm kann die Simulation deutlich schneller ausführen, als das auf Matlab basierende File.

Eine weitere Möglichkeit ist, die Vorteile von Simulated Annealing und dem ebenfalls vorgestellten SQP Verfahren zu verbinden. So könnte zum Beispiel Simulated Annealing dazu benutz werden Startwerte zu ermitteln, welche dem SQP Verfahren übergeben werden, falls keine oder nur schlechte Starwerte bekannt sind. Diese Startwerte könnten mit vereinfachten und somit schneller zu optimierenden Modellen mit Hilfe von SA ermittelt und SQP zur online Optimierung des komplexen Modells zur Verfügung gestellt werden.

Diploma Thesis

OCC Award