クラス編成問題クラス編成問題 総合講義のシステム 定式化:和の最大費用流 一番を 100 点に固定 やっぱり 7 : 3 に固定 情報科学演習第 3 前期後期の組み分け.

Slides:



Advertisements
Similar presentations
組合せ最適化輪講 2.3 連結性 川原 純. 2.3 連結性 内容 – グラフ上の節点をすべてたどるアルゴリズム 計算機上でのグラフの表現 – 強連結成分を求めるアルゴリズム トポロジカル順序を求める方法も – k- 連結、 k- 辺連結について – 2- 連結グラフの耳分解について.
Advertisements

G 問題 コードアート オンライン 原案:西出 ライタ:伊藤 テスタ:西出. 問題概要 0 大きさのさまざまな n 個の円に多角形 m 個を入れら れるか判定する問題 0 ただし、同じ円に複数の多角形を入れることはでき ない 0 もし、入れられる場合は、辞書順最小の入れ方を出 力 ① ② ③ ① ②.
<最適化の概念> 最適化すべき問 題 数学モデル 変数,数式 数理計画法 定められた計算手 順を用いて解くた めの方法論.
模擬国内予選2013 Problem F テトラ姫のパズル 原案:須藤 解答:大友、須藤 解説:須藤.
J: Magical Switches JAG 模擬地区予選 2013 原案:保坂 解答:保坂・楠本 解説:保坂.
到着時刻と燃料消費量を同時に最適化する船速・航路計画
凸関数じゃないですか (最大値/最小値を求める問題) 目的関数を固定する (最大値/最小値を最小/最大化する問題)
2009/12/4 グラフ (2) 第10講: 平成21年12月4日 (金) 4限 E252教室 コンピュータアルゴリズム.
線形計画 追加問題 ジュースを売って儲けよう!
筋トレ支援システム 青春!筋トレ日記        作成   IE4 高橋・中務・藤本・重田・市川 
ネットワーク理論講義補助資料 Text. 組合せ最適化とアルゴリズム 4.5 節 主・双対法 pp
データ構造と アルゴリズム 第十二回 知能情報学部 知能情報学科 新田直也.
動的計画法 表の作成 制約の追加 練習問題.
動的計画法 表の作成 制約の追加 練習問題.
近似アルゴリズム 第10章 終了時刻最小化スケジューリング
フィードバック型復習 理数系科目の成績を大きく伸ばす方法 東大理数学院 塾長 西村 太一.
Pattern Recognition and Machine Learning 1.5 決定理論
On the Enumeration of Colored Trees
数理科学コース・ 倉田 和浩 2007/11/3 大学祭オープンラボ
データ構造と アルゴリズム 理工学部 情報システム工学科 新田直也.
スペクトル法による数値計算の原理 -一次元線形・非線形移流問題の場合-
整数計画法を用いた スリザーリンクの解法 杉村 由花 (東京大学)
An Algorithm for Enumerating Maximal Matchings of a Graph
Extremal Combinatrics Chapter 4
経済情報処理ガイダンス 神奈川大学 経済学部.
パスワードをつけよう! ~ワード・エクセル・一太郎 ・その他(アタッシェケース)~
論理式の表現を数学的に取り扱いやすくするために代数学の助けを借りる.
 Combinations(2)        古川 勇輔.
リンクパワーオフによる光ネットワークの省電力化
データ構造と アルゴリズム 知能情報学部 新田直也.
第九回 問題の定式化練習と 自主研究課題 山梨大学.
経済情報処理ガイダンス 神奈川大学 経済学部.
環境の世紀17  第13回 駒場の電気を考える.
5.5 The Linear Arboricity of Graphs (グラフの線形樹化数)
経済情報処理ガイダンス 神奈川大学 経済学部.
キャリアで語る 経営組織 個人の論理と組織の論理 3章
CGと形状モデリング 授業資料 長井 超慧(東京大学)
C 言語について 補足資料 資料および授業の情報は :
シミュレーション論 Ⅱ 第15回 まとめ.
割当て問題 • 割当問題の記法・定式化 • 拡張 • 特殊ケース(マッチング) • 3種類のものを割当てる問題.
シャノンのスイッチングゲームにおけるペアリング戦略の複雑さについて
独立成分分析 1.問題は何か:例:解法:全体の見通し 2007/10/17 名雪 勲.
第25章 単一始点最短路 3節 Bellman-Fordのアルゴリズム
生産計画を立てる • 簡単なバージョン:輸送問題 定式化、最小費用流、バリエーション • 部品組立て計画 定式化、バリエーション
Curriki原典
25. Randomized Algorithms
計算量理論輪講 chap5-3 M1 高井唯史.
First Course in Combinatorial Optimization
A Simple Algorithm for Generating Unordered Rooted Trees
連続領域におけるファジィ制約充足問題の 反復改善アルゴリズムによる解法 Solving by heuristic repair Algorithm of the Fuzzy Constraint Satisfaction Problems with Continuous Domains 北海道大学.
ファジィ制約充足問題への 連続領域の導入 Introducing continuous domains to
スポーツの最適化 優勝決定可能性問題 スポーツスケジュール問題.
母分散の信頼区間 F分布 母分散の比の信頼区間
ナップサック問題 クマさん人形をめぐる熱いドラマの結末.
重み付き投票ゲームにおける 投票力指数の計算の高速化
第16章 動的計画法 アルゴリズムイントロダクション.
大規模ネットワークに対する 実用的クラスタ発見アルゴリズムの開発
プログラミング入門 電卓を作ろう・パートI!!.
Max Cut and the Smallest Eigenvalue 論文紹介
2009/11/27 グラフ (1) 第9講: 平成21年11月27日 (金) 4限 E252教室 コンピュータアルゴリズム.
分枝カット法に基づいた線形符号の復号法に関する一考察
学生のゼミ配属問題  山下英明  下山明英.
コストのついたグラフの探索 分枝限定法 A*アルゴリズム.
ネット時代のセキュリティ3(暗号化) 2SK 情報機器工学.
離散数学 11. その他のアルゴリズム 五島.
学系選択について 総合情報学科 ~ H30年度 ~.
原口和也 高橋隆一 丸岡章 石巻専修大学 理工学部 情報電子工学科
CGと形状モデリング 授業資料 1,2限: 大竹豊(東京大学) 3,4限: 俵 丈展(理化学研究所)
グラフの帯域幅連続多重彩色 を求めるアルゴリズム (Bandwidth Consective Multicolorings of Graphs) 西関研究室 西川和秀.
混合ガウスモデル Gaussian Mixture Model GMM
Presentation transcript:

クラス編成問題クラス編成問題 総合講義のシステム 定式化:和の最大費用流 一番を 100 点に固定 やっぱり 7 : 3 に固定 情報科学演習第 3 前期後期の組み分け

事の始まり:総合科目のクラス分け事の始まり:総合科目のクラス分け 総合科目では、東工大の 1 年生全員をいくつかのクラ スに分ける 学生がどの講義を受けたいか、という希望を取る (第 3 希望まで調べる) それぞれの講義には定員がある なるべく学生の希望が多くかなうようにクラス編成した い

歴史的な方法 各学生の第 1,2,3 希望、を取り、それを札に書く 各講義の紙を用意する 定員の条件を満たすよに、エイヤと札を講義の紙に 貼る (うまく)希望どおりに分かれていたら終了 うんうんと考えて、札を入れ替え、 4 に戻る 手馴れた教授でも 1 日以上かかったそうな...

マッチング問題として見るとマッチング問題として見ると まずは簡単のため、 3 つの希望のうち 1 つがかなえば良 い、として考えて、希望がかなう学生の数を最大にす る   たんなる最大マッチング問題 最大マッチングを求めるアルゴリズムを使うと、 講義数を m 、学生の人数を n として O(n 5/2 /m) の時間で解ける 学生数が n=2000 、講義数が m =10 でも、 n 5/2 /m ≒ 200,000,000 (2 億 ) 最近のパソコンなら、 1,2 分で解けそう × 講義 × 定員 学生

最適マッチング最適マッチング グラフ G = (V,E) と、枝の重み w : E →R が与えられたと き、互いに隣接しない枝集合で、枝重み和が最大(最 小)なものを求めよ という問題が最適マッチング問題 最適マッチングは、 O(|V||E|) 時間で求められる 最大マッチング(枝数が最も多いマッチング)は、 O(|V| 1/2 |E|) 時間で求められる

最大重みマッチングとして見る最大重みマッチングとして見る まずは簡単のため、それぞれの枝に、学生の第 1,2,3 希 望に応じて重みをつけて、最大重みのマッチングを求 める  第 1 希望が優先されるようになる 講義数を m 、学生の人数を n とすると、 O(n 3 /m) の時間で解ける 学生数が n=2000 、講義数が m =10 でも、 n 3 /m ≒ 10000,000,000 (100 億 ) それでも、最近のパソコンなら、 1,2 時間で解けるで しょう。

割当問題として見る割当問題として見る 1つの講義に対応する頂点がたくさんあって、これが なんとも無駄が多いので、割当問題で考える 各仕事(講義)を受け持つ人(学生)の上下限   それぞれの講義の最低・最高受講者数 各人(学生)が受け持つ仕事(講義)の上下限   両方とも 1 各枝のコスト   学生の希望順位に応じてつける

割当て問題のおさらい割当て問題のおさらい それぞれの人は、同時に受け持てる仕事の上下限がある それぞれの仕事は、受け持つ人の最低人数がある 人 i が仕事 j を受け持つときに費用 a ij がかかる これらを満たす、最低コストの、 人 対 仕事の割当を見つける問題 Σ 目的関数: Σ a ij x ij ≦ Σ = ≦ 制約条件: l i ≦ Σ j=1,…,m x ij ≦ u i ≦ Σ = ≦ l' j ≦ Σ i=1,…,n x ij ≦ u' j 「単体法(シンプレックス法)で得られる最適解は、 (条件の係数が整数なら)必ず整数解になっている」

割当問題の求解時間割当問題の求解時間 割当問題を線形計画のソルバーで解くときの、計算時 間を算定しよう == 変数の数 = 枝の数 = 学生の数 × 希望数 = 制約条件の数 = 各頂点に対して 3 つ、各枝に対して 2 つ = (+ × () ) × 2 = (講義の数 + 学生の数 × (希望数 +1 ) ) × 2 学生数 n=2000 、講義数 m =100 でも、 -= - 変数の数 = 6000 -= - 制約条件の数 = 最近のパソコンなら、 10 分で解けるでしょう

実際に解いてみると実際に解いてみると ほとんどの場合、全ての学生は第 3 志望までの講義に割 り当てられる。つまり、「第 3 希望までのどこかに割り 当てる問題」と考えて差し支えない。 枝重みは: 第 1 希望: 70 第 2 希望: 30 第 3 希望: 0 として、最大コストの割り当てを線形計画ソルバーで求 める 何時間もかかって、そこそこの割当てしか得られなかったものが、 1 時間で(ある意味で)最適 公平なものが得られるようになった 何時間もかかって、そこそこの割当てしか得られなかったものが、 1 時間で(ある意味で)最適 公平なものが得られるようになった

重みの自由化重みの自由化 重みはこれでいいのか? どっちでもいいから、と適当に選んでいる学生と、熱心 に 「ここに行きたい」と思っている学生が、同じ扱いなのは おかしい += 第 1 希望 + 第 2 希望 = 100 となるように、自由に選べるようにする 強い希望が通りやすくなる

重みの自由化 (2) そのうちに、まじめに考えて希望の配点をつける人が 損をするようになった 楽な単位を取りたい学生が、 第1希望 100 : 第2希望 0 と書いて、無理やり配属されるように仕組むようになっ た   70:30 と書いた人たちより優先される == 第1希望= 100 、第2希望= 0~100 とすることにした。 : ( 100 : 100 というように書けるようになる) (学生の持ち点は固定でなくなるが、どのみち、学生 は 100 点以内しかもらえない)

重みの自由化 (3) やっぱり、楽な単位を取りたい学生が、 第1希望 100 : 第2希望 0 と書いて、無理やり配属されるように仕組むようになっ た == やっぱり、第1希望 = 70 、第2希望 = 30 で 固定することにした == やっぱり、第1希望 = 70 、第2希望 = 30 で 固定することにした 新しいルールを作ると、そのルールの抜け穴を狙う人が 出る 抜け穴を狙う人がでてくると、ルールが変わる 最適化は、ルールがあるところで成り立つので、 ルールの変更や、抜け穴のレベルには関与できない

理学セミナー (旧) 学生が研究室2箇所に仮所属する 総合科目と違うところは、 学生は3つの希望を出す。希望順位はなし 前期・後期2つに分かれていて、各学生は希望の研究 室に前期か後期どちらかに所属する 授業の内容から(どの本でゼミをするか決めるため)、 各研究室の前期と後期の人数はほぼ同じであってほし い 総合科目と同じように、クラス分けを数理的に行える か

割り当て問題として、直接解く割り当て問題として、直接解く A 研究室を「前期の A 研究室」「後期の A 研究室」と2つ のクラスに分けて考えると、うまくいきそう 同じ研究室に前期と後期に所属する学生が出てくる 可能性がある 「研究室の、前期と後期の学生数がほぼ同じ」 という制約が守られない この2つの問題点をどのように解決するかが鍵

2段階でクラス分けする2段階でクラス分けする 第1フェイズで、総合科目と同じ方法で、学生を希望が通 る数を最大にして、各研究室に割り振る。前期後期は考え ない 第2フェイズで、各研究室の学生を、前期後期に割り振る - - 各学生が、前期に1つ、後期に1つ、 研究室に割り当てられるようにする - - 前期と後期の人数がほぼ同じようにする 第2フェイズをどのように解くか、が問題

2部グラフの色分け2部グラフの色分け 学生と所属研究室を結んだ2部グラフを作る このグラフを、サイクルと極大なパスに分解する それぞれのパスとサイクルを、交互に2色で塗り分ける   パスの端以外の頂点では、枝2本が2色に塗り分けら れる 塗り分けた色で、前期か後期かを決める (各枝は、学生・研究室の割当てに対応することに注 意)

色分け法の正当性色分け法の正当性 このグラフを、サイクルと極大なパスに分解する   学生頂点は、パスの端にならない   各研究室頂点を端とするパスは、高々1本 それぞれのパスとサイクルを、交互に2色で塗り分ける   学生頂点に接続する枝は2色   研究室頂点に接続する枝は、両色同数か1つ異な る

計算時間計算時間 グラフを、サイクルと極大なパスに分解する  (+)  グラフ探索で、 O ( 枝数 +頂点数 )の時間ででき る それぞれのパスとサイクルを、交互に2色で塗り分ける  (+ )  自明、 O ( 枝数 + 頂点数 )の時間でできる ※ ※ たいした手間ではない

まとめまとめ 総合科目のクラス分けは、線形計画法(割当て問題) で解くと、すばやくできる 学生の希望も、工夫すればうまく取り入れられるが、 抜け道ができてしまうようだ 理学セミナー(旧)のクラス分け(前期後期がある) は、2段階で分けるとうまくいく