シェルスクリプトマガジン

Pythonあれこれ(Vol.94掲載)

著者:飯尾 淳

本連載では「Pythonを昔から使っているものの、それほど使いこなしてはいない」という筆者が、いろいろな日常業務をPythonで処理することで、立派な「蛇使い」に育つことを目指します。その過程を温かく見守ってください。皆さんと共に勉強していきましょう。第24回では、高校で学ぶレベルの数学を用いて、問題を最適にする解は何かを探索します。題材は、線形計画法と組合せ最適問題の二つです。

シェルスクリプトマガジン Vol.94は以下のリンク先でご購入できます。

図3 図1の問題を解くPythonコード

図4 CBCソルバーを使うように書き換えた図3のPythonコード

図6 データを準備するためのPythonコード

図7 lessons連想配列を作成するPythonコード

図8 lessons連想配列の内容

図9 「同時に2人以上の先生が授業することはない」制約条件を与えるPythonコード

図10 「先生は1日に1コマだけ授業を担当する」制約条件を与えるPythonコード

図11 「担当時間数に偏りが出ないように配置する」制約条件を与えるPythonコード

図12 requests連想配列を定義するコードの例

図13 目的関数を定義するPythonコード

図14 結果を表示するPythonコード

図16 「先生の希望は少なくとも3コマはかなえる」制約条件を与えるPythonコード