Документация CVXPY находится на cvxpy.org.
Мы создаем сообщество CVXPY на Discord. Присоединяйтесь к разговору! Для решения проблем и развернутых обсуждений используйте Github Issues и Github Discounts.
Содержание
CVXPY — это встроенный в Python язык моделирования для задач выпуклой оптимизации. Это позволяет вам выразить вашу проблему естественным образом, следуя математическим расчетам, а не в ограничительной стандартной форме, требуемой решателями.
Например, следующий код решает задачу наименьших квадратов, где переменная ограничена нижней и верхней границей:
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 )
С помощью CVXPY вы можете моделировать
CVXPY не является решателем. Он опирается на решатели с открытым исходным кодом Clarabel, SCS и OSQP. Дополнительные решатели доступны, но их необходимо устанавливать отдельно.
CVXPY начинался как исследовательский проект Стэнфордского университета. В настоящее время его разрабатывают многие люди во многих учреждениях и странах.
CVXPY доступен на PyPI и может быть установлен с помощью
pip install cvxpy
CVXPY также можно установить с помощью conda, используя
conda install -c conda-forge cvxpy
CVXPY имеет следующие зависимости:
Подробные инструкции см. в руководстве по установке.
Чтобы начать работу с CVXPY, проверьте следующее:
Мы рекомендуем вам сообщать о проблемах с помощью трекера Github. Мы приветствуем любые вопросы, особенно те, которые связаны с корректностью, документацией, производительностью и запросами функций.
Для вопросов по базовому использованию (например, «Почему моя проблема не в DCP?») используйте вместо этого StackOverflow.
Сообщество CVXPY состоит из исследователей, специалистов по обработке данных, инженеров-программистов и студентов со всего мира. Мы приветствуем вас присоединиться к нам!
Пожалуйста, будьте уважительны в общении с сообществом CVXPY и обязательно соблюдайте наш кодекс поведения.
Мы ценим каждый вклад. Вам не нужно быть экспертом в выпуклой оптимизации, чтобы помочь.
Сначала вам следует установить CVXPY из исходного кода. Вот несколько простых способов начать вносить свой вклад немедленно:
Если вы хотите добавить новый пример в нашу библиотеку или реализовать новую функцию, сначала свяжитесь с нами, чтобы убедиться, что ваши приоритеты совпадают с нашими.
Вклады следует отправлять в виде запросов на включение. Член команды разработчиков CVXPY рассмотрит запрос на включение и проведет вас через процесс внесения вклада.
Прежде чем приступить к работе над своим вкладом, прочтите руководство по вкладу.
CVXPY — это общественный проект, созданный на основе вклада многих исследователей и инженеров.
CVXPY разрабатывается и поддерживается Стивеном Даймондом, Акшаем Агравалом, Райли Мюрреем, Филиппом Шиле, Бартоломео Стеллато и Партом Нобелем, при этом многие другие внесли значительный вклад. Неисчерпывающий список людей, которые формировали CVXPY на протяжении многих лет, включает Стивена Бойда, Эрика Чу, Робина Вершурена, Джэхёна Пака, Энцо Буссети, Эй Джей Френда, Джадсона Уилсона, Криса Дембиа и Уильяма Чжана.
Дополнительную информацию о команде и наших процессах см. в нашем управленческом документе.
Если вы используете CVXPY для академической работы, мы рекомендуем вам цитировать наши статьи. Если вы используете CVXPY в промышленности, мы также будем рады услышать ваше мнение в Discord или по электронной почте.