Ich habe viele Quadratic Programming (QP) Solver wie cvxopt, qpoases und osqp verglichen und festgestellt, dass osqp schneller und besser für meine Anwendung funktioniert.Minimieren einer quadratischen Zielfunktion mit Constraint-Verletzung mit Penalty-Methode
Nun möchte ich eine unbestimmte quadratische Funktion mit Gleichheits- und Ungleichheitsbedingungen minimieren, die abhängig von verschiedenen Faktoren verletzt werden können. Ich möchte also die Strafmethode l1 verwenden, die die verletzenden Beschränkungen bestraft.
ich ein example geändert haben, um die Einschränkungen zu verletzen.
import osqp
import scipy.sparse as sparse
import numpy as np
# Define problem data
P = sparse.csc_matrix([[4., 1.], [1., 2.]])
q = np.array([1., 1.])
A = sparse.csc_matrix([[1., 0.], [0., 1.], [1., 0.], [0., 1.]])
l = np.array([0., 0., 0.2, 1.1])
u = np.array([1., 1., 0.2, 1.1])
# Create an OSQP object
prob = osqp.OSQP()
# Setup workspace and change alpha parameter
prob.setup(P, q, A, l, u, alpha=1.0)
# Solve problem
res = prob.solve()
print res.x
Offensichtlich ist dies ein unausführbares Problem, also müssen wir die Zielfunktion ändern, um den Fehler zu bestrafen. Also, ich brauche Hilfe, um dieses Problem zu formulieren, das mit Osqp Python-Schnittstelle gelöst werden kann.
Oder lassen Sie mich bitte wissen, wenn es andere Python-Schnittstelle zur Verfügung steht, um diese Art von Constraint-Verletzung Probleme zu lösen.