La documentación de CVXPY está en cvxpy.org.
Estamos construyendo una comunidad CVXPY en Discord. ¡Únete a la conversación! Para problemas y discusiones extensas, utilice Github Issues y Github Discussions.
Contenido
CVXPY es un lenguaje de modelado integrado en Python para problemas de optimización convexa. Le permite expresar su problema de una manera natural que sigue las matemáticas, en lugar de la forma estándar restrictiva requerida por los solucionadores.
Por ejemplo, el siguiente código resuelve un problema de mínimos cuadrados donde la variable está restringida por límites superior e inferior:
import cvxpy as cp
import numpy
# Problem data.
m = 30
n = 20
numpy . random . seed ( 1 )
A = numpy . random . randn ( m , n )
b = numpy . random . randn ( m )
# Construct the problem.
x = cp . Variable ( n )
objective = cp . Minimize ( cp . sum_squares ( A @ x - b ))
constraints = [ 0 <= x , x <= 1 ]
prob = cp . Problem ( objective , constraints )
# The optimal objective is returned by prob.solve().
result = prob . solve ()
# The optimal value for x is stored in x.value.
print ( x . value )
# The optimal Lagrange multiplier for a constraint
# is stored in constraint.dual_value.
print ( constraints [ 0 ]. dual_value )
Con CVXPY, puedes modelar
CVXPY no es un solucionador. Se basa en los solucionadores de código abierto Clarabel, SCS y OSQP. Hay solucionadores adicionales disponibles, pero deben instalarse por separado.
CVXPY comenzó como un proyecto de investigación de la Universidad de Stanford. Ahora lo desarrollan muchas personas, en muchas instituciones y países.
CVXPY está disponible en PyPI y se puede instalar con
pip install cvxpy
CVXPY también se puede instalar con conda, usando
conda install -c conda-forge cvxpy
CVXPY tiene las siguientes dependencias:
Para obtener instrucciones detalladas, consulte la guía de instalación.
Para comenzar con CVXPY, consulte lo siguiente:
Le recomendamos que informe problemas utilizando el rastreador de Github. Damos la bienvenida a todo tipo de problemas, especialmente aquellos relacionados con la corrección, la documentación, el rendimiento y las solicitudes de funciones.
Para preguntas de uso básico (por ejemplo, "¿Por qué mi problema no es DCP?"), utilice StackOverflow en su lugar.
La comunidad CVXPY está formada por investigadores, científicos de datos, ingenieros de software y estudiantes de todo el mundo. ¡Te invitamos a unirte a nosotros!
Sea respetuoso en sus comunicaciones con la comunidad CVXPY y asegúrese de cumplir con nuestro código de conducta.
Agradecemos todas las contribuciones. No es necesario ser un experto en optimización convexa para ayudar.
Primero debes instalar CVXPY desde la fuente. A continuación se muestran algunas formas sencillas de comenzar a contribuir de inmediato:
Si desea agregar un nuevo ejemplo a nuestra biblioteca o implementar una nueva función, comuníquese con nosotros primero para asegurarse de que sus prioridades coincidan con las nuestras.
Las contribuciones deben enviarse como solicitudes de extracción. Un miembro del equipo de desarrollo de CVXPY revisará la solicitud de extracción y lo guiará a través del proceso de contribución.
Antes de comenzar a trabajar en su contribución, lea la guía de contribución.
CVXPY es un proyecto comunitario, construido a partir de las contribuciones de muchos investigadores e ingenieros.
CVXPY es desarrollado y mantenido por Steven Diamond, Akshay Agrawal, Riley Murray, Philipp Schiele, Bartolomeo Stellato y Parth Nobel, y muchos otros contribuyen significativamente. Una lista no exhaustiva de personas que han dado forma a CVXPY a lo largo de los años incluye a Stephen Boyd, Eric Chu, Robin Verschueren, Jaehyun Park, Enzo Busseti, AJ Friend, Judson Wilson, Chris Dembia y William Zhang.
Para obtener más información sobre el equipo y nuestros procesos, consulte nuestro documento de gobernanza.
Si utiliza CVXPY para trabajos académicos, le recomendamos que cite nuestros artículos. Si utiliza CVXPY en la industria, nos encantaría saber de usted también, en Discord o por correo electrónico.