Wann wird eine Hybridfunktion verwendet?
Eine Hybridfunktion ist eine Funktion, die die Optimierung fortsetzt, nachdem der ursprüngliche Solver beendet wurde.
Diese Global Optimization Toolbox-Solver können nach Abschluss automatisch eine Hybridfunktion oder einen zweiten Solver ausführen:
Um eine Hybridfunktion auszuführen, legen Sie die Option HybridFcn auf den zweiten Solver fest.
Unter den folgenden Umständen kann eine Hybridfunktion ausgehend von der relativ groben Lösung, die der erste Löser gefunden hat, eine genauere Lösung erzielen:
Unabhängig davon, ob die Zielfunktion nicht glatte Bereiche aufweist oder nicht, verwenden Sie eine Hybridfunktion von Optimization Toolbox™, z.B.
fmincon, wenn die Lösung in einem glatten Bereich mit glatten Einschränkungen liegt.Wenn die Zielfunktion oder eine Einschränkung in der Nähe der Lösung nicht glatt ist, verwenden Sie
patternsearchals Hybridfunktion.Angenommen, das Problem weist mehrere lokale Minima auf und Sie möchten eine genaue globale Lösung erhalten. Die Ein-Ziel-Löser können nach der Umgebung einer globalen Lösung suchen, erzielen aber nicht unbedingt ein äußerst genaues Ergebnis. Wenn die Zielfunktion glatt ist, verwenden Sie eine Hybridfunktion von Optimization Toolbox, beispielsweise
fminunc.Bei glatten mehrdimensionalen Problemen verbessert eine Hybridfunktion normalerweise die Lösungen von
gamultiobj.
Um zu sehen, welche Solver als Hybridfunktionen verfügbar sind, beziehen Sie sich auf das Eingabeargument options auf der Referenzseite für den ursprünglichen Solver. Um die Hybridfunktion zu optimieren, können Sie einen separaten Satz Optionen für die Hybridfunktion einschließen. Wenn die Hybridfunktion beispielsweise fmincon ist:
hybridopts = optimoptions('fmincon','OptimalityTolerance',1e-10); options = optimoptions('ga','HybridFcn',{'fmincon',hybridopts}); [x,fval] = ga(fun,nvars,A,b,Aeq,beq,lb,ub,nonlcon,options)
Siehe auch
ga | gamultiobj | particleswarm | simulannealbnd