「《勤務スケジューリング》」の版間の差分

提供: ORWiki
ナビゲーションに移動 検索に移動
 
(3人の利用者による、間の3版が非表示)
1行目: 1行目:
 
'''【きんむすけじゅーりんぐ (manpower scheduling) 】'''
 
'''【きんむすけじゅーりんぐ (manpower scheduling) 】'''
  
 ある組織が所定の機能を果たすために, 労働者が職務に従事する時間, つまりいつからいつまでどの仕事に従事するのかを計画することを, [[勤務スケジューリング]](manpower scheduling)と呼ぶ.  
+
 ある組織が所定の機能を果たすために, 労働者が職務に従事する時間, つまりいつからいつまでどの仕事に従事するのかを計画することを, [[勤務スケジューリング]](manpower (ないし workforce) scheduling)と呼ぶ.  
  
 
 組織が果たすべき職務の内容が時間にかかわらず一定で, 勤務条件を固定的に扱うことができる場合, 勤務スケジュールは[[サイクリックスケジューリング (勤務体制の)|サイクリックスケジューリング]] (cyclic scheduling) 方式で作成される. この方式では, 労働者が仕事に従事する時間をある一定の期間(一周期)に対して決定し, そのパターンを繰り返すスケジュールを作成する. そして, このスケジュールを基に各労働者が勤務する時間を勤務表として表現する.  
 
 組織が果たすべき職務の内容が時間にかかわらず一定で, 勤務条件を固定的に扱うことができる場合, 勤務スケジュールは[[サイクリックスケジューリング (勤務体制の)|サイクリックスケジューリング]] (cyclic scheduling) 方式で作成される. この方式では, 労働者が仕事に従事する時間をある一定の期間(一周期)に対して決定し, そのパターンを繰り返すスケジュールを作成する. そして, このスケジュールを基に各労働者が勤務する時間を勤務表として表現する.  
13行目: 13行目:
 
 例えば, 1日  <math>m\, </math>  交代制で, 平日の第  <math>i\, </math>  シフトで必要な人数が  <math>D_{i}\, </math>  人, 週末では第  <math>i\, </math>  シフトで必要な人数が  <math>E_{i}\, </math>  人とする. そして,  <math>D_{1}+\cdots+D_{m}\, </math>  を  <math>D\, </math>  で,  <math>E_{1}+\cdots +E_{m}\, </math>  を  <math>E\, </math>  で表す. ここで, 各労働者が  <math>B\, </math>  週末中の  <math>A\, </math>  週末で休暇を取れ, 連続労働日数が6日以下で, ある日に第  <math>i\, </math>  シフトで働いた労働者は翌日では第  <math>i\, </math>  以降のシフトで働くか休日が割り振られる必要があり, そして週当り休日が  <math>n\, </math>  日の場合を取り上げる. また, 最終の第  <math>m\, </math>  シフトはその日のうちに仕事が終わり, 翌日にはまたがらないものとする. このとき, 最低限必要な労働者数は,  <math>\max\{[(5D+2E)/(7-n)],[BE/(B-A)]\}\, </math>  である. 但し,  <math>[x]\, </math>  は  <math>x\, </math>  より小さくない最小の整数である.  <math>D_{1}=1, D_{2}=2, D_{3}=1, E_{1}=E_{2}=E_{3}=1,B=2, A=1, n=2\, </math>  の場合, 必要な労働者数は6人で, このときの勤務スケジュールの例は表2のようになる. 各労働者は, 第1週でそれぞれ異なるスケジュールを取り, (A,D,B,E,C,F), (A,D,B,E,C,F), ...というスケジュールで勤務することで条件を満足する.  
 
 例えば, 1日  <math>m\, </math>  交代制で, 平日の第  <math>i\, </math>  シフトで必要な人数が  <math>D_{i}\, </math>  人, 週末では第  <math>i\, </math>  シフトで必要な人数が  <math>E_{i}\, </math>  人とする. そして,  <math>D_{1}+\cdots+D_{m}\, </math>  を  <math>D\, </math>  で,  <math>E_{1}+\cdots +E_{m}\, </math>  を  <math>E\, </math>  で表す. ここで, 各労働者が  <math>B\, </math>  週末中の  <math>A\, </math>  週末で休暇を取れ, 連続労働日数が6日以下で, ある日に第  <math>i\, </math>  シフトで働いた労働者は翌日では第  <math>i\, </math>  以降のシフトで働くか休日が割り振られる必要があり, そして週当り休日が  <math>n\, </math>  日の場合を取り上げる. また, 最終の第  <math>m\, </math>  シフトはその日のうちに仕事が終わり, 翌日にはまたがらないものとする. このとき, 最低限必要な労働者数は,  <math>\max\{[(5D+2E)/(7-n)],[BE/(B-A)]\}\, </math>  である. 但し,  <math>[x]\, </math>  は  <math>x\, </math>  より小さくない最小の整数である.  <math>D_{1}=1, D_{2}=2, D_{3}=1, E_{1}=E_{2}=E_{3}=1,B=2, A=1, n=2\, </math>  の場合, 必要な労働者数は6人で, このときの勤務スケジュールの例は表2のようになる. 各労働者は, 第1週でそれぞれ異なるスケジュールを取り, (A,D,B,E,C,F), (A,D,B,E,C,F), ...というスケジュールで勤務することで条件を満足する.  
  
 勤務スケジュールを作成する対象としては, 長時間操業の工場や施設における監視業務や作業以外に, 看護婦のスケジューリングと乗務員のスケジューリングがある. 前者の[[ナーススケジューリング]](nurse scheduling)は, 医療サービスの水準を確保しながら, 看護婦に負担をかけない労働条件を確保した適切な勤務スケジュールを作成する問題である [6]. 後者は[[乗務員スケジューリング問題]](ないしクルースケジューリング)と呼ばれ, 飛行機, 鉄道, バス, トラックなどの輸送業務に従事する乗務員のスケジューリング問題で, 基礎編「運搬経路問題」を参照されたい.  
+
 勤務スケジュールを作成する対象としては, 長時間操業の工場や施設における監視業務や作業以外に, 看護婦のスケジューリングと乗務員のスケジューリングがある. 前者の[[ナーススケジューリング]](nurse scheduling)は, 医療サービスの水準を確保しながら, 看護婦に負担をかけない労働条件を確保した適切な勤務スケジュールを作成する問題である [6]. 後者は[[乗務員スケジューリング問題]](ないしクルースケジューリング)と呼ばれ, 飛行機, 鉄道, バス, トラックなどの輸送業務に従事する乗務員のスケジューリング問題で, これについては[[運搬経路問題]]を参照されたい.  
  
 以上の他に, 勤務スケジューリングに関係した問題として[[時間割]](time table)作成問題がある. これは, 各種教育機関における授業の担当者, 教室, 受講者の条件を満足する時間割を作成する問題で, これも集合被覆問題として定式化される. 解法としては, 最適解を求める方法以外に, 短時間で有効な解を得る[[制約最適化問題]](constraint optimization ploblem)としての分析が実施されている [7].  
+
 以上の他に, 勤務スケジューリングに関係した問題として[[時間割]](time table)作成問題がある. これは, 各種教育機関における授業の担当者, 教室, 受講者の条件を満足する時間割を作成する問題で, これも集合被覆問題として定式化される. 解法としては, 最適解を求める方法以外に, 短時間で有効な解を得る[[制約最適化問題]](constraint optimization problem)としての分析が実施されている [7].  
  
 
 最後に, 職務内容・量が時間的に変化するような環境条件が固定的でない場合の勤務スケジューリング問題は, 処理すべき仕事を納期までに完成できるように, 労働者の[[残業]](over time)時間制約を考慮して仕事の計画を立案するスケジューリング問題となる. この問題は, 資源制約として労働力を組み入れた一種の資源制約スケジューリングである.  
 
 最後に, 職務内容・量が時間的に変化するような環境条件が固定的でない場合の勤務スケジューリング問題は, 処理すべき仕事を納期までに完成できるように, 労働者の[[残業]](over time)時間制約を考慮して仕事の計画を立案するスケジューリング問題となる. この問題は, 資源制約として労働力を組み入れた一種の資源制約スケジューリングである.  
  
  
表1: 9組2交代制の1周期当りの勤務表(文献[2, p.643]より引用)
+
<center>
 +
<caption>表1: 9組2交代制の1周期当りの勤務表(文献[2, p.643]より引用)</caption>
 +
<table width="520" border="1" cellspacing="2" cellpadding="0">
 +
<tr>
 +
<td rowspan="2" align="center" valign="top">組</td>
 +
<td colspan="9" align="center" width="482">日</td>
 +
</tr>
 +
<tr>
 +
<td align="center" width="50">1</td>
 +
<td align="center" width="50">2</td>
 +
<td align="center" width="50">3</td>
 +
<td align="center" width="50">4</td>
 +
<td align="center" width="50">5</td>
 +
<td align="center" width="50">6</td>
 +
<td align="center" width="50">7</td>
 +
<td align="center" width="50">8</td>
 +
<td align="center" width="50">9</td>
 +
</tr>
 +
<tr>
 +
<td align="center">1</td>
 +
<td align="center" width="50">A</td>
 +
<td align="center" width="50">B</td>
 +
<td align="center" width="50">明け</td>
 +
<td align="center" width="50">公休</td>
 +
<td align="center" width="50">A</td>
 +
<td align="center" width="50">B</td>
 +
<td align="center" width="50">明け</td>
 +
<td align="center" width="50">公休</td>
 +
<td align="center" width="50">公休</td>
 +
</tr>
 +
<tr>
 +
<td align="center">2</td>
 +
<td align="center" width="50">B</td>
 +
<td align="center" width="50">明け</td>
 +
<td align="center" width="50">公休</td>
 +
<td align="center" width="50">A</td>
 +
<td align="center" width="50">B</td>
 +
<td align="center" width="50">明け</td>
 +
<td align="center" width="50">公休</td>
 +
<td align="center" width="50">公休</td>
 +
<td align="center" width="50">A</td>
 +
</tr>
 +
<tr>
 +
<td align="center"><math>\cdots \, </math></td>
 +
<td align="center" width="50"><math>\cdots \, </math></td>
 +
<td align="center" width="50"><math>\cdots \, </math></td>
 +
<td align="center" width="50"><math>\cdots \, </math></td>
 +
<td align="center" width="50"><math>\cdots \, </math></td>
 +
<td align="center" width="50"><math>\cdots \, </math></td>
 +
<td align="center" width="50"><math>\cdots \, </math></td>
 +
<td align="center" width="50"><math>\cdots \, </math></td>
 +
<td align="center" width="50"><math>\cdots \, </math></td>
 +
<td align="center" width="50"><math>\cdots \, </math></td>
 +
</tr>
 +
<tr>
 +
<td align="center">9</td>
 +
<td align="center" width="50">公休</td>
 +
<td align="center" width="50">A</td>
 +
<td align="center" width="50">B</td>
 +
<td align="center" width="50">明け</td>
 +
<td align="center" width="50">公休</td>
 +
<td align="center" width="50">A</td>
 +
<td align="center" width="50">B</td>
 +
<td align="center" width="50">明け</td>
 +
<td align="center" width="50">公休</td>
 +
</tr>
 +
</table></center>
  
\label{c-b-06-t1}
 
\vspace{1mm}
 
\begin{tabular}{|c|c|c|c|c|c|c|c|c|c|}\hline
 
組 & \multicolumn{9}{|c|}{日} \\ \cline{2-10}
 
& 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 \\ \hline
 
1 & A & B & 明け & 公休 & A & B & 明け & 公休 & 公休 \\ \hline
 
2 & B & 明け & 公休 & A & B & 明け & 公休 & 公休 & A \\ \hline
 
  \cdots  &  \cdots  &  \cdots  &  \cdots  &  \cdots  &  \cdots  &  \cdots  &  \cdots  &  \cdots  &  \cdots  \\ \hline
 
9 & 公休 & A & B & 明け & 公休 & A & B & 明け & 公休 \\ \hline
 
\end{tabular}
 
\end{center}
 
\end{table}
 
}
 
 
 
表2: 複数交代制で各シフトの必要人数が異なる場合の例
 
 
\label{c-b-06-t2}
 
\vspace{1mm}
 
\begin{tabular}{|c|c|c|c|c|c|c|c|}\hline
 
スケジュール & \multicolumn{7}{|c|}{1週間} \\ \cline{2-8}
 
& 日 & 月 & 火 & 水 & 木 & 金 & 土 \\ \hline
 
A & 休 & 休 & 休 & 1 & 2 & 休 & 1 \\ \hline
 
B & 休 & 休 & 休 & 2 & 3 & 休 & 2 \\ \hline
 
C & 休 & 1 & 1 & 2 & 休 & 1 & 3 \\ \hline
 
D & 1 & 2 & 2 & 3 & 休 & 2 & 休 \\ \hline
 
E & 2 & 2 & 2 & 休 & 1 & 2 & 休 \\ \hline
 
F & 3 & 3 & 3 & 休 & 2 & 3 & 休 \\ \hline
 
\end{tabular}
 
\end{center}
 
\end{table}
 
}
 
  
 +
<center>
 +
<caption>表2: 複数交代制で各シフトの必要人数が異なる場合の例</caption>
 +
<table width="412" border="1" cellspacing="2" cellpadding="0">
 +
<tr>
 +
<td rowspan="2" align="center" valign="top">スケジュール</td>
 +
<td colspan="7" align="center" width="304">1週間</td>
 +
</tr>
 +
<tr>
 +
<td align="center" width="40">日</td>
 +
<td align="center" width="40">月</td>
 +
<td align="center" width="40">火</td>
 +
<td align="center" width="40">水</td>
 +
<td align="center" width="40">木</td>
 +
<td align="center" width="40">金</td>
 +
<td align="center" width="40">土</td>
 +
</tr>
 +
<tr>
 +
<td align="center">A</td>
 +
<td align="center" width="40">休</td>
 +
<td align="center" width="40">休</td>
 +
<td align="center" width="40">休</td>
 +
<td align="center" width="40">1</td>
 +
<td align="center" width="40">2</td>
 +
<td align="center" width="40">休</td>
 +
<td align="center" width="40">1</td>
 +
</tr>
 +
<tr>
 +
<td align="center">B</td>
 +
<td align="center" width="40">休</td>
 +
<td align="center" width="40">休</td>
 +
<td align="center" width="40">休</td>
 +
<td align="center" width="40">2</td>
 +
<td align="center" width="40">3</td>
 +
<td align="center" width="40">休</td>
 +
<td align="center" width="40">2</td>
 +
</tr>
 +
<tr>
 +
<td align="center">C</td>
 +
<td align="center" width="40">休</td>
 +
<td align="center" width="40">1</td>
 +
<td align="center" width="40">1</td>
 +
<td align="center" width="40">2</td>
 +
<td align="center" width="40">休</td>
 +
<td align="center" width="40">1</td>
 +
<td align="center" width="40">3</td>
 +
</tr>
 +
<tr>
 +
<td align="center">D</td>
 +
<td align="center" width="40">1</td>
 +
<td align="center" width="40">2</td>
 +
<td align="center" width="40">2</td>
 +
<td align="center" width="40">3</td>
 +
<td align="center" width="40">休</td>
 +
<td align="center" width="40">2</td>
 +
<td align="center" width="40">休</td>
 +
</tr>
 +
<tr>
 +
<td align="center">E</td>
 +
<td align="center" width="40">2</td>
 +
<td align="center" width="40">2</td>
 +
<td align="center" width="40">2</td>
 +
<td align="center" width="40">休</td>
 +
<td align="center" width="40">1</td>
 +
<td align="center" width="40">2</td>
 +
<td align="center" width="40">休</td>
 +
</tr>
 +
<tr>
 +
<td align="center">F</td>
 +
<td align="center" width="40">3</td>
 +
<td align="center" width="40">3</td>
 +
<td align="center" width="40">3</td>
 +
<td align="center" width="40">休</td>
 +
<td align="center" width="40">2</td>
 +
<td align="center" width="40">3</td>
 +
<td align="center" width="40">休</td>
 +
</tr>
 +
</table></center>
  
  
74行目: 185行目:
  
 
[7] 吉川昌澄, 「制約最適化技術のスケジューリング問題への応用」, 『人工知能学会誌』, '''13''' (1998), 379-386.
 
[7] 吉川昌澄, 「制約最適化技術のスケジューリング問題への応用」, 『人工知能学会誌』, '''13''' (1998), 379-386.
 +
 +
[[category:企画・開発・プロジェクト・品質・ヒューマン|きんむすけじゅーりんぐ]]

2007年8月8日 (水) 15:10時点における最新版

【きんむすけじゅーりんぐ (manpower scheduling) 】

 ある組織が所定の機能を果たすために, 労働者が職務に従事する時間, つまりいつからいつまでどの仕事に従事するのかを計画することを, 勤務スケジューリング(manpower (ないし workforce) scheduling)と呼ぶ.

 組織が果たすべき職務の内容が時間にかかわらず一定で, 勤務条件を固定的に扱うことができる場合, 勤務スケジュールはサイクリックスケジューリング (cyclic scheduling) 方式で作成される. この方式では, 労働者が仕事に従事する時間をある一定の期間(一周期)に対して決定し, そのパターンを繰り返すスケジュールを作成する. そして, このスケジュールを基に各労働者が勤務する時間を勤務表として表現する.

 1日当たり長時間操業し, 一人の労働者では対応できない場合, 交代制(shift working)が取られる. 交代制は, 24時間操業か否かと, 週末操業をするか否かとで大別され, 非連続型交代制, 半連続型交代制, 連続操業型交代制がある [1]. 非連続型交代制は, 1日当り24時間の操業をしない場合で, 通常は操業時間を2つに分け, 2組2交代制がなされる. 半連続型交代制は, 24時間操業であるが週末操業をしない場合で, 典型的には, 24時間を3つに分け, 3組3交代制で実施し, 午前勤務, 午後勤務, 夜勤を1週間ごとに繰り返す週番制がある. 連続操業型は休みなく, つまり24時間操業で週末も操業する場合で, 3交代制を4組で実施する, あるいは2交代制を4組で実施するといった交代勤務制がある. また, 交代勤務の中に, 日勤を組み入れるため, あるいは休日数の確保を目指した4.5組制, 5組制, さらには6組制もある. さらに, 2交代勤務と3交代勤務を組み合わせた交代勤務制がとられることもある.

 例えば, 連続操業型4.5組2交代制では, 労働者を9組に分け, 各組がA勤(9時から21時), B勤(21時から翌朝9時), 明け勤, 公休, A勤, B勤, 明け勤, 公休(ないし日勤), 公休(ないし日勤)というサイクルを繰り返すもの(表1参照)で, 各日のA勤およびB勤は2組が担当する勤務になる [2]. したがって, A勤とB勤がそれぞれ 人の労働者を必要とする場合は全員で 人の労働者が必要となる. なお, このような交代制の場合は, 公休ないし日勤日を活用することで, 労働者が連続休日を取得することが可能となる.

 以上は各交代の必要労働者数が同一の場合で, かつ労働者の能力や資格については考慮していない. 交代毎に必要人数が異なり, 適切な資格を持った労働者を適切に割当てる必要がある場合, 勤務スケジュールを決める問題はスタッフスケジューリング (staff scheduling) 問題と呼ばれ, 集合被覆問題(set covering problem)として定式化して, 解を求めることになる. ただし, 必要最低限の労働者数で, 連続労働日数や週末休暇日数といった労働条件(working conditions)を満足するスケジュールを求めるアルゴリズムが, 複数交代制で労働者に能力差がない場合 [3, 4], 単一シフトつまり交代制でない職場で労働者の資格の違いを考慮した場合 [5] に対して報告されている.

 例えば, 1日 交代制で, 平日の第 シフトで必要な人数が 人, 週末では第 シフトで必要な人数が 人とする. そして, で, で表す. ここで, 各労働者が 週末中の 週末で休暇を取れ, 連続労働日数が6日以下で, ある日に第 シフトで働いた労働者は翌日では第 以降のシフトで働くか休日が割り振られる必要があり, そして週当り休日が 日の場合を取り上げる. また, 最終の第 シフトはその日のうちに仕事が終わり, 翌日にはまたがらないものとする. このとき, 最低限必要な労働者数は, である. 但し, より小さくない最小の整数である. の場合, 必要な労働者数は6人で, このときの勤務スケジュールの例は表2のようになる. 各労働者は, 第1週でそれぞれ異なるスケジュールを取り, (A,D,B,E,C,F), (A,D,B,E,C,F), ...というスケジュールで勤務することで条件を満足する.

 勤務スケジュールを作成する対象としては, 長時間操業の工場や施設における監視業務や作業以外に, 看護婦のスケジューリングと乗務員のスケジューリングがある. 前者のナーススケジューリング(nurse scheduling)は, 医療サービスの水準を確保しながら, 看護婦に負担をかけない労働条件を確保した適切な勤務スケジュールを作成する問題である [6]. 後者は乗務員スケジューリング問題(ないしクルースケジューリング)と呼ばれ, 飛行機, 鉄道, バス, トラックなどの輸送業務に従事する乗務員のスケジューリング問題で, これについては運搬経路問題を参照されたい.

 以上の他に, 勤務スケジューリングに関係した問題として時間割(time table)作成問題がある. これは, 各種教育機関における授業の担当者, 教室, 受講者の条件を満足する時間割を作成する問題で, これも集合被覆問題として定式化される. 解法としては, 最適解を求める方法以外に, 短時間で有効な解を得る制約最適化問題(constraint optimization problem)としての分析が実施されている [7].

 最後に, 職務内容・量が時間的に変化するような環境条件が固定的でない場合の勤務スケジューリング問題は, 処理すべき仕事を納期までに完成できるように, 労働者の残業(over time)時間制約を考慮して仕事の計画を立案するスケジューリング問題となる. この問題は, 資源制約として労働力を組み入れた一種の資源制約スケジューリングである.


表1: 9組2交代制の1周期当りの勤務表(文献[2, p.643]より引用)
1 2 3 4 5 6 7 8 9
1 A B 明け 公休 A B 明け 公休 公休
2 B 明け 公休 A B 明け 公休 公休 A
9 公休 A B 明け 公休 A B 明け 公休


表2: 複数交代制で各シフトの必要人数が異なる場合の例
スケジュール 1週間
A 1 2 1
B 2 3 2
C 1 1 2 1 3
D 1 2 2 3 2
E 2 2 2 1 2
F 3 3 3 2 3



参考文献

[1] 酒井一博, 「新しい勤務編成の視点」, 『労働の科学』, 51 (1996), 632-636.

[2] 和田伸夫, 「精油所交代勤務の労働時間短縮」, 『労働の科学』, 51 (1996), 642-647.

[3] R. N. Burns and G. J. Koop, "A Modular Approach to Optimal Multiple-Shift Manpower Scheduling," Operations Research, 35 (1987), 100-110.

[4] R. Hung, "Multiple-Shift Workforce Scheduling under the 3-4 Workweek with Different Weekday and Weekend Labor Requirements," Management Science, 40 (1994), 280-284.

[5] H. Emmons and R. N. Burns, "Off-Day Scheduling with Hierarchical Worker Categories," Operations Research, 39 (1991), 484-495.

[6] 池上敦子, 丹羽明, 大倉元宏, 「我が国におけるナース・スケジューリング問題」, 『オペレーションズ・リサーチ』, 41 (1996), 436-442.

[7] 吉川昌澄, 「制約最適化技術のスケジューリング問題への応用」, 『人工知能学会誌』, 13 (1998), 379-386.