Dokumentasi CVXPY ada di cvxpy.org.
Kami sedang membangun komunitas CVXPY di Discord. Bergabunglah dalam percakapan! Untuk masalah dan diskusi jangka panjang, gunakan Isu Github dan Diskusi Github.
Isi
CVXPY adalah bahasa pemodelan yang tertanam dalam Python untuk masalah optimasi cembung. Ini memungkinkan Anda untuk mengekspresikan masalah Anda dengan cara alami yang mengikuti matematika, bukan dalam bentuk standar terbatas yang disyaratkan oleh pemecah masalah.
Misalnya, kode berikut memecahkan masalah kuadrat terkecil yang variabelnya dibatasi oleh batas bawah dan batas atas:
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 )
Dengan CVXPY, Anda dapat membuat model
CVXPY bukanlah pemecah. Itu bergantung pada pemecah sumber terbuka Clarabel, SCS, dan OSQP. Solver tambahan tersedia, namun harus diinstal secara terpisah.
CVXPY dimulai sebagai proyek penelitian Universitas Stanford. Sekarang ini dikembangkan oleh banyak orang, di banyak institusi dan negara.
CVXPY tersedia di PyPI, dan dapat diinstal
pip install cvxpy
CVXPY juga dapat diinstal dengan conda, menggunakan
conda install -c conda-forge cvxpy
CVXPY memiliki dependensi berikut:
Untuk petunjuk rinci, lihat panduan instalasi.
Untuk memulai dengan CVXPY, lihat yang berikut:
Kami mendorong Anda untuk melaporkan masalah menggunakan pelacak Github. Kami menyambut segala jenis masalah, terutama yang terkait dengan kebenaran, dokumentasi, kinerja, dan permintaan fitur.
Untuk pertanyaan penggunaan dasar (misalnya, "Mengapa masalah saya bukan DCP?"), harap gunakan StackOverflow sebagai gantinya.
Komunitas CVXPY terdiri dari peneliti, ilmuwan data, insinyur perangkat lunak, dan mahasiswa dari seluruh dunia. Kami menyambut Anda untuk bergabung dengan kami!
Harap hormati komunikasi Anda dengan komunitas CVXPY, dan pastikan untuk mematuhi kode etik kami.
Kami menghargai semua kontribusi. Anda tidak perlu menjadi ahli dalam optimasi cembung untuk membantu.
Anda harus menginstal CVXPY terlebih dahulu dari sumber. Berikut beberapa cara sederhana untuk segera mulai berkontribusi:
Jika Anda ingin menambahkan contoh baru ke perpustakaan kami, atau menerapkan fitur baru, silakan hubungi kami terlebih dahulu untuk memastikan prioritas Anda selaras dengan prioritas kami.
Kontribusi harus diserahkan sebagai permintaan tarik. Anggota tim pengembangan CVXPY akan meninjau permintaan penarikan dan memandu Anda melalui proses kontribusi.
Sebelum mulai mengerjakan kontribusi Anda, harap baca panduan berkontribusi.
CVXPY adalah proyek komunitas, yang dibangun dari kontribusi banyak peneliti dan insinyur.
CVXPY dikembangkan dan dikelola oleh Steven Diamond, Akshay Agrawal, Riley Murray, Philipp Schiele, Bartolomeo Stellato, dan Parth Nobel, serta banyak lainnya yang memberikan kontribusi signifikan. Daftar lengkap orang-orang yang telah membentuk CVXPY selama bertahun-tahun termasuk Stephen Boyd, Eric Chu, Robin Verschueren, Jaehyun Park, Enzo Busseti, AJ Friend, Judson Wilson, Chris Dembia, dan William Zhang.
Untuk informasi lebih lanjut tentang tim dan proses kami, lihat dokumen tata kelola kami.
Jika Anda menggunakan CVXPY untuk pekerjaan akademis, kami mendorong Anda untuk mengutip makalah kami. Jika Anda menggunakan CVXPY di industri, kami juga ingin mendengar pendapat Anda, melalui Discord atau melalui email.