問題
エネルギー最適化問題の例題として、以下のような問題を考えてみましょう。
🔹2つの発電所があり、それぞれ最大で100MWと50MWの電力を供給できる。
🔹需要は150MWである。
🔹各発電所の発電コストは、1MWあたりそれぞれ10ドルと20ドルである。
🔹目的は、発電コストを最小化することである。
解き方・ソースコード
PythonのPuLPライブラリを使用してこの問題を解いてみます。
[Google Colaboratory]
1 | import pulp |
まずpulpで問題を定義します。
その後、発電所1と発電所2の発電量を表す変数p1とp2を定義します。
次に、目的関数を定義します。
この問題では、発電コストを最小化する必要があるため、変数p1とp2に対して、それぞれの発電コストを乗じて、総和をとります。
次に、制約条件を定義します。
この問題では、需要を満たす必要があるため、発電所1と発電所2の発電量の合計が150MW以上でなければなりません。
また、各発電所の発電量は、それぞれ最大で100MWと50MWでなければなりません。
最後に、problem.solve関数を使って最適解を出力します。
解には、発電所1と発電所2の発電量が含まれます。
[実行結果]
Optimal solution found with total cost of 2000.00 Plant 1 generates 100.0 MW Plant 2 generates 50.0 MW
最適な発電コストは2000.00であり、その時の発電量は発電所1が100.0 MWであり、発電所2が50.0 MWであることが確認できました。