はじめに
これは 株式会社 RetailAI X Advent Calendar 2023 の 2 日目の記事です。
昨日は @10long さんの記事でした。RWKVをjuliaで試してみる
本日は、「初めてのpython cvxpy」 です。
今年、使う機会があったので少しだけ書きます。
なぜcvxpy
できるだけ数式のままの表現で書けるので初心者にやさしい。
とりあえずやってみる
実行環境は「Google Colab」
!pip install cvxpy
!pip install --upgrade cvxpy
公式サイトのTOPページの例を参考にやってみます。
import numpy as np
import cvxpy as cp
A = np.array([
[ 1.76405235, 0.40015721, 0.97873798],
[ 2.2408932 , 1.86755799, -0.97727788],
[ 0.95008842, -0.15135721, -0.10321885],
[ 0.4105985 , 0.14404357, 1.45427351]
])
b = np.array(
[0.76103773, 0.12167502, 0.44386323, 0.33367433]
)
n = len(A[0]) # 用意する変数の数
x = cp.Variable(shape=(n,))
objective = cp.Minimize(cp.sum_squares(A @ x - b))
constraints = [
0 <= x,
x <= 1
]
prob = cp.Problem(objective, constraints)
print(prob)
prob.solve(verbose=True)
xの値を見てみます
print(x.value)
[2.35157320e-01, -5.06468160e-23, 2.61728416e-01]
ちょっとした気付き
いろいろポチポチやってた時の気付きになります。
x = np.array([
[1,2],
[3,4],
[5,6]
])
print(sum(x), np.sum(x), x.sum())
実行結果:[9 12], 21, 21
です。
numpyとcvxpyは似ている箇所もあり、復習になりました。
感想
ある程度決まった問題に対して、Google Colabで数値を少し変えてポチポチやってみるといい感じでした👍
明日は、@yoshitake_tatsuhiroさんです。お楽しみに!
参考
この記事は以下の情報を参考にして執筆しました。
・CVXPY
・【python cvxpy】モデリング言語cvxpyを利用して数理最適化問題を解く