授業の補助資料

社会工学概論

演習2

研究室配属に関すること

  • まずは Moodle をご確認ください

研究室配属に関するよくある質問(FAQ)

Q.
プログラミングはどの程度必要でしょうか.
A.
研究テーマにもよりますが,これまでに指導したほとんどの学生は数理最適化の応用研究なので,定式化した最適化問題に対して最適解を求めるための数値計算(プログラミング)は欠かせません. 過去の卒研生には Python をオススメしていました.Python は演習IIでも基本的な書き方を教えているので,復習はしやすいと思います. とはいえ,最適化計算に求められるプログラミングスキルはさほど高度なものではありませんし,大抵はソルバーと呼ばれる最適化計算をしてくれるパッケージを導入すれば,最適化問題をソルバーのマニュア(ルール)に則って記述すれば,あとは解いてくれます. したがって,定式化した最適化問題を解くためにアルゴリズムをフルスクラッチで書くことはほとんどありません(アルゴリズムを開発するとなれば別です).
Q.
本読みゼミではどんな本を読むのでしょうか.
A.
数理最適化に関するものです.本は毎年変えており,2026年度は『非線形最適化法(成島康史,中山舜民,矢部博 共著)』を読みました. 2025年度は『しっかり学ぶ数理最適化(梅谷俊治著)』です. 一方で,3年ゼミでは2025年度は『Cによるアルゴリズムとデータ構造(茨木俊秀著)』を読みました(今年度はまだ決めていません).
Q.
コアタイムはありますか.
A.
ありません.
Q.
ゼミは週何回ありますか.
A.
前期は本読みゼミと研究進捗発表ゼミで週2回,後期は研究進捗ゼミのみで週1回を予定しています.
Q.
研究ではどれくらい数学ができる必要がありますか.
A.
目安としては,大学1年次の線形代数と微積分,大学2年次の演習IIの内容が理解できていれば十分だと思います. また,本読みゼミを通して数学の復習もしてもらいます.
Q.
どんなスキルを使い,どんなスキルが磨かれるのでしょうか?
A.
まず,それはあなた自身の興味,関心,やる気というのが大前提にあるかと思います. ただ,数理最適化の研究室で使うスキルとしてパッと思いつくのは以下のことです.
1. 数学(特に線形代数)は必須:これはまず演習2の復習をオススメします.その内容でも難しいのでしたら,大学1年の線形代数から復習してください.一番大事なことは数学が好きと言うことです(得意不得意は総じてテストの点数とか周りとの比較など相対的なものでしかありません).
2. プログラミングスキル(実質的に必須):これは最初の質問にも回答したことですが,大体の研究では最適化計算のためにプログラムを作成します.
3. 物事を抽象化して考える力(抽象的な思考力):たとえば,現実の課題を数理モデル化する際,何でもモデルに入れ込むと,解くことが難しくなります.問題解決に必要な本質的な課題が何かを取捨選択するためには抽象化して物事を考える力が必要です.これは研究を通して養われる力だと思います.
4. 物事を具体化して考える力:数学は抽象化能力だけが取り上げられがちですが,逆に具体化して考える力も実は必要です.論文や数学の本を読む際,その式の書かれた意味を読み解くためには,具体例を考えて本質を理解することも必要です.
Q.
先生はどんな研究をしていますか.
A.
ざっくり言うと,数理最適化のアルゴリズム開発をしています. なかでも,均衡問題というクラスの問題に対するアルゴリズムの開発に取り組んでいます. たとえば,複数の意思決定者が居て,自身の決定が相手の意思決定に影響を与えるような状況(相互依存関係)を考えます(これはゲームと呼ばれるものです). これを最適化の世界で考えると,他者の決定変数が自身の目的関数や制約条件に影響を及ぼし,ひいては自身の最適解(最適応答)が変化するような問題を考えているものとみなすことができます. このような複数の意思決定者が互いに他者の戦略を予測しながら最適化問題を解く状況において,同時に最適解を求めるような問題は均衡問題の一例(ナッシュ均衡問題)として知られています. 均衡問題は,ある意味で,最適化問題を含む一般的なクラスの問題とみなすこともできます. 均衡問題を数学的に定式化したものに変分不等式問題や相補性問題があります. これらのクラスは最適化問題と結びつきが強く,数理最適化の枠組みの中で幅広く研究されています.