遺伝的アルゴリズムを用いた勤務スケジュール作成 · i あらまし...

31
卒業研究論文 遺伝的アルゴリズムを用いた勤務スケジュール作成 学籍番号 12D8101022I 島田 拓弥 中央大学理工学部情報工学科 田口研究室 2016 3

Upload: others

Post on 03-Oct-2019

0 views

Category:

Documents


0 download

TRANSCRIPT

卒業研究論文

遺伝的アルゴリズムを用いた勤務スケジュール作成

学籍番号 12D8101022I

島田 拓弥

中央大学理工学部情報工学科 田口研究室

2016年 3月

i

あらまし

本研究では,遺伝的アルゴリズムを用いて,喫茶店で働くアルバイトの勤務スケジュール

の作成を行う.スケジュール作成は,労力を要し,時間のかかる作業である.これを,遺

伝的アルゴリズムを用いて解くことで,勤務スケジュール作成者の負担の緩和を目指す.

キーワード:遺伝的アルゴリズム,シフトスケジューリング

ii

目次

第 1章 はじめに ................................................................................................................... 1

第 2章 人工知能(AI)とその手法 .......................................................................................... 2

第 3章 遺伝的アルゴリズム(GA) ........................................................................................ 4

3.1 基本的な仕組み .......................................................................................................... 4

3.2 選択の手法 ................................................................................................................. 6

3.3 交叉の手法 ................................................................................................................. 7

3.4 特徴 ............................................................................................................................ 9

3.5 研究と応用 ................................................................................................................. 9

第 4章 遺伝的アルゴリズムを用いた勤務スケジュール作成 ............................................ 11

4.1 勤務シフト表 ............................................................................................................. 11

4.2 評価関数 .................................................................................................................... 11

4.3 解のコーディング .................................................................................................... 13

4.4 GAオペレータ ......................................................................................................... 15

4.5 実行結果 ................................................................................................................... 16

4.5.1 全体シフトタイプ .............................................................................................. 16

4.5.2 個別シフトタイプ .............................................................................................. 20

4.5.3 比較 .................................................................................................................... 24

4.6 考察 .......................................................................................................................... 25

第 5章 おわりに ................................................................................................................. 26

5.1 まとめ ....................................................................................................................... 26

5.2 今後の課題 ............................................................................................................... 26

謝辞 ....................................................................................................................................... 27

参考文献 ............................................................................................................................... 28

1

第 1章 はじめに

近年,iPhoneに搭載された Siriなど,今や人工知能は私たちに身近な存在となってい

る.今回は,それを実現する数学的な手法の一つである遺伝的アルゴリズムに注目する.

遺伝的アルゴリズムは,多くの組み合わせ最適化問題に適用されている探索アルゴリズム

である.

本研究では,遺伝的アルゴリズムを用いて喫茶店で働くアルバイトの勤務スケジュールを

作成することを目標とする.スケジュール作成は,大きな労力を要し,時間のかかる作業

である.これは,法的な制約,勤務規定上の制約,あるいは個人の都合による制約など,

多数の競合する制約条件の下で最適な解を探索しなければならないからである.これを,

遺伝的アルゴリズムを用いて解くことで,勤務スケジュール作成者の負担の緩和を目指

す.

2

第 2章 人工知能(AI)とその手法

AIとは人間の知的活動を機械に行わせるという目的で始まった研究分野とその成果であ

り,その取り組み方には二つの立場がある.一つは人間の知能そのものをもつ機械を作ろ

うとする立場,もう一つは人間が知能を使って行うことを疑似的に機械にさせようとする

立場である.実際に行われている研究の大半は後者の立場に属する.AIの手法には様々な

種類がある.それぞれコンピュータゲーム,ロボットの思考,スケジュール設定などの,

エンターテイメントから研究まで実に幅広い分野で使われている.

この章では,様々な AIの手法とその特徴について説明する.

・遺伝的アルゴリズム(GA)

生物群が環境へ適応するときの遺伝学的変化の諸概念(染色体の交叉・突然変異・自然淘

汰)を,問題解決方法に見立てて,その解を探る手法である.GAでは,個体の遺伝子の

集まりである染色体を文字列で表現する.染色体内部の表現方法を「遺伝子型」,現実の

問題に対しての形を「表現型」と呼ぶ.GAを利用する際には,遺伝子型をどのように表

現していくかを決める必要がある.また,個体それぞれの環境への適応度を計算する方法

も決める必要がある.

評価基準を適切に選ぶことによって,条件の変化に容易に順応することが可能な点が長所

である.乱数を積極的に用いるために,毎回選ばれる解が同一に定まらない傾向がある点

が GAの出す解の特徴である.

・遺伝的プログラミング(GP)

GAの遺伝子型を,構造的な表現(木構造,グラフ構造)が扱えるように拡張すること

で,プログラム作成や学習,推論などに応用する手法である.GPは進化的アルゴリズム

の四つの主要な方法論の内の一つでもある.

これまでに GPは,ロボットの行動ルール,関数,電子回路などを木構造で表現すること

によって,ロボットの制御プログラムや電子回路の設計,株価予測,音楽の自動作曲など

様々な分野に応用されている.

3

・エキスパートシステム

特定分野に特化した専門知識データベースを元に推論を行い,その分野の専門家に近い判

断をくだすことができる手法である.エキスパートシステムはその性質上,潤沢な知識デ

ータと的確な推論能力が必要となる.このため,エキスパートシステムの開発には高度な

技術が必要となり,現在はごく狭い分野に限った限定的な実験が行われている段階であ

る.

一方,その分野の専門家が,自らの作業の補助としてエキスパートシステムを使用し,最

終的な判断は専門家自身が行うという作業分担の方法も考えられており,こうしたサポー

トシステムではかなり実用的なものも登場している.

・ニューラルネットワーク

人間の脳の神経回路の仕組みを模した手法である.コンピュータは単純な処理を高速に行

うことに秀でており,その能力は人間のそれを遥かに凌いでいる.一方で,人間にとって

簡単な動作である,手を動かしたり,物体を認識したりという処理はコンピュータにとっ

ては非常に複雑なものであり,苦手とする処理である.そこで,そのようなコンピュータ

の苦手とする問題に対し,人間の脳のメカニズムをコンピュータ上で人工的に実現するこ

とにより解決を図ろうとするアプローチが生まれた.

近年,ニューラルネットワークを応用したディープラーニングという手法が注目されてお

り,2012年に Googleがコンピュータに猫の画像を認識させることに成功している.

・強化学習

試行錯誤を通じて,環境に適応する学習制御の手法である.一つの場面から成否の成果を

出すのではなく,一連の流れの中で成否を出しそれを元に学習する堅実な手法である.

強化学習は,未知の学習領域を開拓していく行動と,既知の学習領域を利用していく行動

とをバランス良く選択することができるという特徴を持っている.その性質から未知の環

境下でのロボットの行動獲得に良く用いられる.

4

第 3章 遺伝的アルゴリズム(GA)

この章では,本研究で使用する GAについて説明する.

3.1 基本的な仕組み

与えられた評価関数を最適化する解を提案したいとする.GAでは,探索空間の各点(探

索点)を生物集団の個体に見立てて,探索点の集団である個体集合に対する自然淘汰およ

び交叉,突然変異などのいわいる GAオペレータによってより優れた新しい個体を生成す

ることにより,探索空間中の最適解を探索する.各個体は染色体をもち,適応度と呼ばれ

る評価値を使って評価され,適応度が高い個体ほど次世代に生き残り,そうでなければ淘

汰される.生き残った個体からは 2つの親個体が選ばれ,各々の染色体を交叉させて子孫

の染色体をつくる.また,染色体の一部を他の遺伝子で置き換えるといった突然変異が行

われる.こうして自然淘汰,交叉,突然変異が何世代も繰り返され,より優れた個体が生

き残るが,これが最適解となる.GAは,以下の手順で実行される.

(ⅰ) 初期集団の生成

染色体をもつ個体を,ランダムにN個発生させる.染色体は記号化された遺伝子の羅列で

構成されており,各遺伝子は現実の解と対応している.

(ⅱ) 評価

各個体の評価値を,遺伝子を引数とする評価関数によって計算する.評価値を元に,個体

の適応度を決定する.

(ⅲ) 自然淘汰

新たにつくられる遺伝子の親となる個体を選択する.適応度が高い個体ほど次世代に生き

残り,そうでなければ淘汰される.個体の選択には様々な手法があり,後で詳しく述べ

る.

(ⅳ) 交叉

選択された 2つの親の遺伝子を受け継ぐ,新たな子となる個体をつくる.交叉には様々な

方法があり,後で詳しく述べる.

5

(ⅴ) 突然変異

子の遺伝子の一部を変化させる.変化させる個体やその箇所は,ランダムで選択する.突

然変異を行うことで,解空間の探索範囲が限られるのを防ぐことができる.

(ⅵ) (ⅱ)~(ⅴ)を決められた回数(r回)だけ繰り返す.r世代経過すれば終了する.

この手順を図 1に示す.

(ⅰ)初期集団の生成

(ⅱ)評価

(ⅲ)自然淘汰

(ⅳ)交叉

(ⅴ)突然変異

終了

開始

図1 GAの流れ

既定世代(r世代)超過

6

3.2 選択の手法

ここでは,選択の手法について説明する.GAで新しい子供を生み出すときの原則は「適

応度の大きいものほどたくさん子供を生むようにする」ということである.これを実現す

るためには,様々な手法がある.

・ルーレット方式

適応度に比例した割合で選択する方法である.これの一番単純な実現法は重み付けのルー

レットによるものである.これは適応度に比例した領域を持つルーレットを回し,ルーレ

ットの玉が入った領域の個体を選び出すというものである.

・ランク方式

各個体を適応度の大きいものから順に並べる.そしてこの順位に応じた関数により子供の

数を決める.この方式ではランクの決定にソートが必要なことや,線形関数の係数の選び

方,さらに端数(小数点以下の数)の割り当てなどの問題が生じる.

・トーナメント方式

これは集団の中からある個体数をランダムに選び出してその中で一番良いものを(トーナ

メント方式で)選択する.この過程を集団数が得られるまで繰り返すというものである.

淘汰される親の選択については次に記す「エリート戦略」や「近親者の相殺」などがよく

使用される.

・エリート戦略

成績の良い親を常にコピーして残す.この方式は一般に探索能力が優れているとされる

が,親の成績をソートする手間がかかること,さらに探索が局所解に陥る場合があるなど

の問題もある.

7

・近親者の相殺

これは,子供がその子供とできるだけ似ている親と置き換えるというものである.この方

法の良い点は集団の多様性が維持できることである.つまり,集団の中に似たものをあま

り増やさないという点で広い範囲での探索が可能となり,局所解に陥る危険を防ぐ効果が

ある.

3.3 交叉の手法

親となる個体を 2つ選び,それらのもつ遺伝子を混ぜ合わせることを交叉という.交叉の

種類には,染色体を分断する場所(交叉点)の数により以下がある.

・一点交叉

選択された 2つの親個体の染色体を,共通の場所で分断し,入れ替える.交叉点が 1つの

場合であり,場所は任意で選択する.(図 2(a))

・複数点(n点)交叉

交叉点が複数個あるものである.2つなら二点交叉,3つなら三点交叉である.一般的に

二点交叉がしばしば用いられる.(図 2(b))

・一様交叉

任意個の交叉点を取れるような交叉法であり,0,1からなるビット列のマスクを用いて実

現する.まずこのマスクにランダムに 0,1の文字列を発生させる.2つの親を A,Bと

し,つくるべき子供を a,bとする.このとき,aの遺伝子は,対応するマスクが 1のとき

は親 Aから受け継ぎ,マスクが 0のときは親 Bから受け継ぐ.逆に bの遺伝子は,マス

クが 1のときは親 Bから受け継ぎ,マスクが 0のときは親 Aから受け継ぐ.(図 2(c))

これらの交叉法を図 2に示す.

8

(a)

1 1 0 0 1 1 0 0 1 1

0 0 1 1 0 0 1 1 0 0

1 1 0 0 1 0 1 1 0 0

0 0 1 1 0 1 0 0 1 1

(b)

1 1 0 0 1 1 0 0 1 1

0 0 1 1 0 0 1 1 0 0

1 1 1 1 1 1 0 1 0 0

0 0 0 0 0 0 1 0 1 1

(c)

a b c d e f g h i j

0 1 2 3 4 5 6 7 8 9

0 1 1 0 0 1 0 1 0 0

0 b c 3 4 f 6 h 8 9

a 1 2 d e 5 g 7 i j

交叉点

一点交叉

n点交叉(n=3の場合)

マスク

一様交叉

図2 交叉の仕組み

9

3.4 特徴

GAの特徴を,以下に述べる.

解空間構造が不明であり,決定的な優れた解法が発見されておらず,また,全探索が

不可能と考えられるほど広大な解空間を持つ問題に有効である.

単純な並列的解探索に比べて,より良い解が早く見つかりやすい.

解の表現であるコーディング次第で,プログラムの良し悪しが決まる.

個体数,選択の方法,交叉の方法,突然変異の割合など,パラメータが多い.

3.5 研究と応用

GAは上記のような特徴を利用し,様々な問題を解くことに応用されている.

・巡回セールスマン問題

都市の集合と各 2都市間の移動コスト(たとえば距離)が与えられたとき,全ての都市を

ちょうど一度ずつ巡り出発地に戻る巡回路の総移動コストが最小のものを求める(セール

スマンが所定の複数の都市を 1回だけ巡回する場合の最短経路を求める)組合せ最適化問

題である.

・ナーススケジューリング問題

病院等の医療施設に勤める看護師の勤務スケジュールを決定する問題のことであり,シフ

トスケジューリング問題の代表例である.日勤・夕勤・夜勤等の複雑なシフト勤務や多岐

に渡る制約の考慮のため,実際にスケジュールを求めるのは人手では手間のかかる困難な

作業である.GAの使用においても,最適解にはかなりの精度が必要であり世代交代数や

個体数を多く必要とする.

10

・囚人のジレンマ

ゲーム理論における有名なゲームの 1つである.お互い協力する方が協力しないよりもよ

い結果になることが分かっていても,協力しない者が利益を得る状況では互いに協力しな

くなる,というジレンマである.各個人が合理的に選択した結果(ナッシュ均衡)が社会

全体にとって望ましい結果(パレート最適)にならないので,社会的ジレンマとも呼ばれ

る.

・グラフ彩色問題

グラフの何らかの要素に,ある制約条件を満たすように色を割り当てることである.最も

単純なものは,隣接する頂点同士が同じ色にならないように全頂点に彩色する問題であ

る.これを頂点彩色という.同様に辺彩色は,隣接する辺同士が同じ色にならないように

全辺を彩色する問題,面彩色は,平面グラフの辺で囲まれた各領域(面)を隣接する面同

士が同じ色にならないように彩色する問題である.

11

第 4章 遺伝的アルゴリズムを用いた勤務スケジュール作成

この章では,GAを用いて勤務スケジュールを作成するプログラムの構造と実行結果につ

いて説明する.GAにおいては,現実の解と遺伝子を対応させること(解のコーディン

グ)が重要である.今回は 2つのプログラムにそれぞれ異なる解のコーディングを行い,

その実行結果を比較する.

4.1 勤務シフト表

仮想の喫茶店のシフト表を作成するプログラムを考える.営業時間は 6時から 22時まであ

り,4 時間ごとにシフトを区切る.6 時から 10 時までは朝,10 時から 14 時までは昼,14

時から 18 時までは夕方(以降は夕と呼ぶ),18 時から 22 時までは夜の時間帯とする.そ

して,それぞれの時間帯に,朝は 2 人,昼は 3 人,夕は 2 人,夜は 2 人のアルバイトを必

要とする.

アルバイトは合計 10人おり,それぞれに A,B,C,D,E,F,G,H,I,Jと名称をつけ

て区別する.このようなシフト表を 1週間分作成する.

4.2 評価関数

本節では,現実的な解に近づけるためいくつかの制約条件のもとで勤務スケジュールを作

成する.制約条件を破ってしまった場合にはペナルティを課して適応度を低くする.評価関

数は各ペナルティの総和とする.以下にそれぞれの制約について説明を述べる.

・conflict_penalty

1つの時間帯に割り当てられるアルバイトが同じ人であってはならない.

・extra_penalty

1つの時間帯に必要な人員より多くの人員を出勤させてはならない.

12

・plan_penalty

アルバイトは希望日,希望時間のみ働くことができる.

・time_penalty

労働基準法により,1日に 8時間を超えて働かせてはならない.

・fair_penalty

アルバイトごとの 1 週間の勤務時間の合計の上限と下限を設定する.これを超えて働かせ

てはならない.

・sequence_penalty

勤務する時間帯は連続させなくてはならない.

以上,6 つの制約条件の制約同士には強弱がある.conflict_penalty は現実的に不可能であ

るため強く, extra_penalty は経営側にとって必須なため強くしている.また,

sequence_penalty はアルバイトの働きやすさを考えた制約であるため,弱くしている.他

の penaltyにおいても同様の考え方をした.

それにより,制約条件の強弱は

conflict_penalty = extra_penalty > plan_penalty >

time_penalty > fair_penalty > sequence_penalty

とする.

13

4.3 解のコーディング

この節では,このプログラムの解のコーディングについて説明する.GAでは解のコーディ

ングのしかたが大変重要であり,これを上手にとらないと正しく機能しない.本研究では,

現実の解と遺伝子を対応させる方法を 2種類考える.

・全体シフトタイプ

1日の勤務シフトを表現するために,時間帯ごとに必要なアルバイトの人数分の枠を用意し

て並べる.1 週間だと 9×7 個の枠が用意されることになる.この各枠に 10 人のアルバイ

トから 1人ずつ割り当てる.アルバイトの名前である A,B,C,D,E,F,G,H,I,Jと

遺伝子の形である 0,1,2,3,4,5,6,7,8,9をそれぞれ対応させる.1日に対応する

遺伝子の長さが 9で,それが 7日あるので 1つの遺伝子の長さは 9×7である.このタイプ

の例を図 3に示す.

曜日 時間 名前

月 朝 A

月 朝 B

月 昼 A

月 昼 B

月 昼 E

月 夕 E

月 夕 H

月 夜 H

月 夜 J

・・・ ・・・ ・・・

日 朝 C

日 朝 D

日 昼 C

日 昼 F

日 昼 G

日 夕 F

日 夕 G

日 夜 H

日 夜 I

遺伝子

0

1

0

1

4

4

7

7

9

・・・

2

3

2

5

6

5

6

7

8

図3 全体シフトタイプの遺伝子

14

・個別シフトタイプ

全体シフトタイプでは,曜日と時間帯を基準にして,そこにアルバイトを割り当てていった

が,個別シフトタイプでは,アルバイト 1 人 1 人の曜日と時間帯に対して,勤務するか休

むかの情報を付加していく.ここでは勤務する場合は 1,休む場合は 0 を遺伝子の形とし

た.1人に対応する枠は 1日に 4個あり,1週間だと 4×7=28個の枠が用意される.それ

が 10人いるので 1つの遺伝子の長さは 28×10である.このタイプの例を図 4に示す.

曜日 時間 名前 勤務

月 朝 A ○

月 昼 A ○

月 夕 A ×

月 夜 A ×

・・・ ・・・ ・・・ ・・・

日 朝 A ×

日 昼 A ○

日 夕 A ○

日 夜 A ×

・・・ ・・・ ・・・ ・・・

月 朝 J ×

月 昼 J ×

月 夕 J ×

月 夜 J ○

・・・ ・・・ ・・・ ・・・

日 朝 J ×

日 昼 J ×

日 夕 J ○

日 夜 J ○

勤務

1

1

0

0

・・・

0

1

1

0

・・・

0

0

0

1

・・・

0

0

1

1

図4 個別シフトタイプの遺伝子

15

4.4 GAオペレータ

本研究では,2つの手法でプログラムを作成してその実行結果を比較する.比較では,解の

コーディング以外の構造は同じとする.以下に,今回用いた評価関数,自然淘汰,交叉,突

然変異の説明を述べる.この説明にでてくる個体とは遺伝子をもった染色体のことである.

・評価関数

課せられた penaltyを合計して,全ての個体の適応度を決定する.penaltyの合計が低いも

のほど適応度が高いと考える.それぞれの penalty の値は,conflict_penalty が 10000,

extra_penaltyが 10000,plan_penaltyが 1000,time_penaltyが 100,fair_penaltyが 10,

sequence_penaltyが 1とする.

・自然淘汰

全ての個体に対して評価関数で適応度を計算して,それを昇順に並べる.そこから適応度の

高いものほど残し,低いものほど残さないようにする.

・交叉

選択されて昇順に並べられた個体のうち,奇数番目と偶数番目を確率的に交叉させる.交叉

させる確率は,適応度が低い個体ほど交叉しやすいように設定する.手法は,一般的に効率

が良いとされている一様交叉(3.3節)を用いる.

・突然変異

ランダムで全ての個体のうち 20%の個体を選択し,突然変異させる.個体のもつ遺伝子の

並びの頭からランダムに選択された箇所までをランダムで異なる遺伝子に変異させる.

16

4.5 実行結果

この節では,これまでに述べた手法を実装して実験を行った結果について述べる.実験は 5

回実行し,その平均値をプロットする.

4.5.1 全体シフトタイプ

個体数依存性

図 5 は,コストの個体数依存性をプロットしたものである.世代数は 300 で固定し,個体

数とコストの関係を図にプロットした.図が示すように,個体数が 500 までは急激にコス

トが減少するが,500を超えると緩やかな減少傾向を示した.

3000

3500

4000

4500

5000

5500

50 100 500 1000 2000

Cost

Population

図5 コストの個体数依存性

17

また,個体数と実行時間の関係を図 6に示す.

0

10000

20000

30000

40000

50000

60000

70000

50 100 500 1000 2000

Tim

e[m

s]

Population

図6 個体数と実行時間

18

世代数変化

図 7は,世代数変化をプロットしたものである.個体数は 2000で固定し,世代数とコスト

の関係を図にプロットした.図が示すように,50 世代までは大きくコストが減少するが,

50世代を超えるとコストの減少は緩やかになった.

3000

3200

3400

3600

3800

4000

4200

4400

4600

10 50 100 200 300

Cost

Generation

図7 コストの世代数変化

19

また,世代数と実行時間の関係を図 8に示す.

0

5000

10000

15000

20000

25000

30000

35000

40000

10 50 100 200 300

Tim

e[m

s]

Generation

図8 世代数と実行時間

20

4.5.2 個別シフトタイプ

個体数依存性

図 9 は,コストの個体数依存性をプロットしたものである.世代数は 300 で固定し,個体

数とコストの関係を図にプロットした.図が示すように,個体数が 1000までは急激にコス

トが減少するが,1000を超えてコストが少し増加している.

47000

49000

51000

53000

55000

57000

59000

50 100 500 1000 2000

Cost

Population

図9 コストの個体数依存性

21

また,個体数と実行時間の関係を図 10に示す.

0

20000

40000

60000

80000

100000

50 100 500 1000 2000

Tim

e[m

s]

Population

図10 個体数と実行時間

22

世代数変化

図 11は,コストと世代数変化の関係をプロットしたものである.個体数は 2000で固定し,

世代数とコストの関係を図にプロットした.図が示すように,100世代までは大きくコスト

が減少するが,100世代を超えると大きなコストの変化はみられなかった.

45000

47000

49000

51000

53000

55000

57000

10 50 100 200 300

Cost

Generation

図11 コストの世代数変化

23

また,世代数と実行時間の関係を図 12に示す.

0

20000

40000

60000

80000

100000

120000

10 50 100 200 300

Tim

e[m

s]

Generation

図12 世代数と実行時間

24

4.5.3 比較

2種類の解のコーディングによるプログラムの実行結果を比較する.

個体数は 2000,世代数は 300に設定する.

ペナルティ

既定の世代数を繰り返した最終的なコストから,それぞれのペナルティを計算する.ペナル

ティを与えられた回数が少ないほうが良い結果であり,この結果を表 1に示す.

penalty/タイプ 全体シフトタイプ 個別シフトタイプ

conflict 0 0

extra 0 4

plan 3 6.4

time 2.6 2.6

fair 6.8 7.6

sequence 5.8 4.8

実行時間

プログラムの実行にかかった時間を,表 2に示す.

全体シフトタイプ[ms] 個別シフトタイプ[ms]

37416.8 101871

表1 ペナルティの比較

表2 実行時間の比較

25

4.6 考察

実行結果から,2つのプログラムはいずれもアルバイトの負担を適度に分散させたシフトを

作成していることが確認できる.

ペナルティごとに注目すると,どちらのプログラムも 1 つの時間帯に異なるアルバイトを

割り当てられていることがわかる.また,全体シフトタイプは時間帯ごとに必要なアルバイ

トを割り当てられているのに対し,個別シフトタイプは 1 週間のうち 4 日間は割り当てる

アルバイトの数が余剰になってしまっている.そして,個別シフトタイプと比べて全体シフ

トタイプのほうがアルバイトの勤務シフトの希望を 3人ほど多く反映できている.

実行時間に注目すると,個別シフトタイプは全体シフトタイプの約 3 倍の時間がかかって

しまっている.これは,1つの個体がもつ遺伝子の数が多いためだと考えられる.

ペナルティを課せられた回数と実行時間の違いから,個別シフトタイプよりも全体シフト

タイプのほうが優れていると考察することができる.

26

第 5章 おわりに

最後に,本研究のまとめと今後の課題を述べる.

5.1 まとめ

本研究では,喫茶店で働くアルバイトの勤務スケジュールを,GAを用いて作成した.現実

的な解に近づけるため,制約条件としていくつかのペナルティを課し,スケジュールを評価

した.評価されたスケジュールから,GAオペレータを用いて求解を試みた.GAは個体数,

世代数の設定によって実行結果に大きな違いがでてくるので,各パラメータを変更して計

算をした.また,GAの最も重要な部分である,解のコーディングにも注目し,2種類のタ

イプで考え,その実行結果を比較することにした.結果は GAの特性上,実行する度に変わ

ってしまうためペナルティの回数の平均を計算した.

比較した結果,ペナルティを課せられた回数と実行時間から考えて,個別シフトタイプより

全体シフトタイプのほうが優れていると考察できた.しかし,実際に喫茶店で働くアルバイ

トの勤務スケジュールに適応させる際には,まだまだ改善の余地がある.

5.2 今後の課題

仮想の喫茶店で働くアルバイトの基本的な勤務スケジュールは作成することができたが,

ペナルティを完全に遵守することはできなかった.よって,今後の課題として以下のことが

考えられる.

解のコーディングのパターンの検討

選択の手法の見直し

交叉の手法の見直し

これらの課題を解決した上で,勤務スケジュールの作成,比較,考察を行う必要がある.

27

謝辞

本研究を進めるにあたり,多くのご指導,ご助言をいただいた中央大学理工学部情報工学科

の田口東教授,ならびに山形浩一助教に心から感謝いたします.また,多くのご助言,ご協

力をいただいた田口研究室の皆様に深く感謝いたします.

28

参考文献

[1] 伊庭斉志, 遺伝的アルゴリズムの基礎-GAの謎を解く-,オーム社, 2008.

[2] 平野廣美,続・遺伝的アルゴリズムと遺伝的プログラミング-使いこなせる GA,

GP-,パーソナルメディア,2006.

[3] 植松章子,田中昌昭,遺伝的アルゴリズムによる臨床検査技師日当直勤務割当て問題

の解法,(オンライン),入手先,<http://www.kawasaki-m.ac.jp/soc/mw/journal/jp/2006-

j15-2/19_uematsu.pdf>.

[4] 大草むつみ,遺伝的アルゴリズム(GA)を利用した魚モデルの経路制御の最適化,(オ

ンライン),入手先,<http://gamescience.jp/2002/Paper/99p082.pdf>.

[5] 森内啓太,テーマパークにおける従業員の勤務シフトおよび勤務配置のスケジュー

ル,中央大学理工学部情報工学科田口研究室,2012.