A documentação do CVXPY está em cvxpy.org.
Estamos construindo uma comunidade CVXPY no Discord. Participe da conversa! Para problemas e discussões longas, use Github Issues e Github Discussions.
Conteúdo
CVXPY é uma linguagem de modelagem incorporada em Python para problemas de otimização convexa. Ele permite que você expresse seu problema de uma forma natural que segue a matemática, em vez de na forma padrão restritiva exigida pelos solucionadores.
Por exemplo, o código a seguir resolve um problema de mínimos quadrados onde a variável é restringida por limites inferiores e superiores:
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 )
Com CVXPY, você pode modelar
CVXPY não é um solucionador. Ele depende dos solucionadores de código aberto Clarabel, SCS e OSQP. Solucionadores adicionais estão disponíveis, mas devem ser instalados separadamente.
CVXPY começou como um projeto de pesquisa da Universidade de Stanford. Agora é desenvolvido por muitas pessoas, em muitas instituições e países.
CVXPY está disponível no PyPI e pode ser instalado com
pip install cvxpy
CVXPY também pode ser instalado com conda, usando
conda install -c conda-forge cvxpy
CVXPY tem as seguintes dependências:
Para obter instruções detalhadas, consulte o guia de instalação.
Para começar com CVXPY, verifique o seguinte:
Incentivamos você a relatar problemas usando o rastreador do Github. Aceitamos todos os tipos de problemas, especialmente aqueles relacionados à correção, documentação, desempenho e solicitações de recursos.
Para questões básicas de uso (por exemplo, "Por que meu problema não é DCP?"), use StackOverflow.
A comunidade CVXPY consiste em pesquisadores, cientistas de dados, engenheiros de software e estudantes de todo o mundo. Convidamos você a se juntar a nós!
Por favor, seja respeitoso em suas comunicações com a comunidade CVXPY e certifique-se de cumprir nosso código de conduta.
Agradecemos todas as contribuições. Você não precisa ser um especialista em otimização convexa para ajudar.
Você deve primeiro instalar o CVXPY a partir do código-fonte. Aqui estão algumas maneiras simples de começar a contribuir imediatamente:
Se você quiser adicionar um novo exemplo à nossa biblioteca ou implementar um novo recurso, entre em contato conosco primeiro para garantir que suas prioridades estejam alinhadas com as nossas.
As contribuições devem ser enviadas como solicitações pull. Um membro da equipe de desenvolvimento CVXPY analisará a solicitação pull e orientará você durante o processo de contribuição.
Antes de começar a trabalhar em sua contribuição, leia o guia de contribuição.
CVXPY é um projeto comunitário, construído a partir das contribuições de diversos pesquisadores e engenheiros.
CVXPY é desenvolvido e mantido por Steven Diamond, Akshay Agrawal, Riley Murray, Philipp Schiele, Bartolomeo Stellato e Parth Nobel, com muitos outros contribuindo significativamente. Uma lista não exaustiva de pessoas que moldaram a CVXPY ao longo dos anos inclui Stephen Boyd, Eric Chu, Robin Verschueren, Jaehyun Park, Enzo Busseti, AJ Friend, Judson Wilson, Chris Dembia e William Zhang.
Para mais informações sobre a equipe e nossos processos, consulte nosso documento de governança.
Se você usa CVXPY para trabalhos acadêmicos, encorajamos você a citar nossos artigos. Se você usa CVXPY na indústria, adoraríamos ouvir sua opinião também, no Discord ou por e-mail.