スポンサーリンク

【Python】Pythonモジュールの「pulp」の使い方。「Pythonによる最適化」

Python
スポンサーリンク
スポンサーリンク

Pythonモジュールの「pulp」の使い方。「Pythonによる最適化」

最適化とは?

今回の記事ではPythonモジュールの「pulp」用いて最適化問題を解いてみた内容です。

そもそも最適化問題とは何か?という

疑問が出てくるかもしれませんが、私もその一人でした。

最適化問題とは簡単にいうと式を解く(最大値とか最小値を求める)ということです。以下簡単な例を紹介しつつコードの説明を行っていきます。

例題

以下の式を解くことはできるだろうか?

2X + Y の最小値は?

条件
X + Y >= 3

答えとしては簡単です。X = 0, Y = 3

これを自身で解くことは容易いですが、もっと難しい問題が出てきた場合解くのはめんどくさいですよね。

そういった際にpythonを用いて解くことができそれを「pulp」というモジュールを使えば可能ということを今回ご紹介したいのです。

上記の例題を実際にコードにしてみるとこのようになります。

import pulp

# 問題の定義
problem = pulp.LpProblem(name="Diet", sense=pulp.LpMinimize)

# 変数の定義
A = pulp.LpVariable(name = "A", lowBound = 0, cat="Integer")
B = pulp.LpVariable(name = "B", lowBound = 0, cat="Integer")


# 目的関数
problem += 2*A + B

# 制約条件の定義
problem += A + B >= 3

# 解く
status = problem.solve()
print(pulp.LpStatus[status])

# 結果表示
print("Result")
print("A:", A.value())
print("B:", B.value())

出力結果は下記になり上記で求めたものと同じになっていることが確認できました。

Optimal
Result
A: 0.0
B: 3.0

本記事を読んでいただき感謝です。サイトを訪れていただいた方はプログラミング勉強中かと思いますのでプログラミング勉強のコツを合わせてご紹介。

スポンサーリンク
スポンサーリンク
スポンサーリンク

ブログに関しては500円程度かかりますが、それ以外は無料です。知識の吸収と並行してアウトプットは非常に効率が良いです。テックアカデミーに関しては講座レベルが高いにも関わらず、無料体験や人気口座も大幅値下げがあるので、重点的に学びたいものを無料体験してみてください。

転職時にも、エンジニアからテックアカデミー・Paizaは認知度が高いので、未経験入社採用を行う際履歴書で目に留まります。特にPaizaのスキルレベルA・SなどはIT業界でも評価されます。

テックアカデミー・Paizaの無料登録ができる期間中にぜひご利用してみてください。私も活用経験ありです。

Python
スポンサーリンク
スポンサーリンク
ともぶろぐ

コメント

タイトルとURLをコピーしました