- 最適な人員を推定する
前日(というか本当は今日)は円の推定をしてみた。一種の最適化計算なのだが今回も最適化つながりという事で表題のような事を考えてみました。まず問題を明確にしておきましょう。ソフト開発会社のN社は人員配置を適切にしてコストダウンにつなげようと考えた。それは昨今複雑化する勤務体系と人件費を合理化したいと考えたが、むやみに人を減らすことは売り上げ的にも問題があるため必要な人員を確保しつつももっとも人件費のかからない配置が無いか模索していた。N社はまず各時間帯で必要になる必要な人員構成をまとめてみた。
(表1)
勤務時間帯
|
最低必要な人員数
|
A〜B
|
3
|
B〜C
|
6
|
C〜D
|
5
|
D〜E
|
2
| 問題は勤務体系による人件費だ。当然、社会の動きに合わせて開発のやりとりや打ち合わせを考えるとマネージャやSEといった人材は午前中から午後の
FullTimeで勤務して欲しい、従ってその時間帯勤務者にかかる人件費がかさむのはしょうがないともいえる。N社の勤務体系による人件費は、
(表2)
勤務形態
|
勤務時間帯
|
人件費
|
人数
|
Full-A
|
A〜C |
17
|
u0
|
Full-B
|
B〜D |
16
|
u1
|
Full-C
|
C〜E |
18
|
u2
|
Flex-A
|
A〜B |
8
|
u3
|
Flex-B
|
D〜E |
9
|
u4
| である。さて、問題は人員配置(u0,u1,u2,u3,u4)である。どのような配置が最も人件費を抑えられるだろうか?単純に考えれば人件費上位が最も少なくなるようにすれば良い様に思える。しかし、N社として開発品質を落とすわけには行かず、時間帯B〜Cでは最低でも6名の人員が必要と考えている(表1)。同様な考慮からN社では表1のように最低限必要な人員を決定している。つまり、N社の欲張りな配置は表1を満たした上で最もコストを下げる配置を求めることである。
WCCTLの最適化で計算してみた。
findminNd関数かfindminGANを使う。結果は
最適人員
|
findminNd関数 SA法 |
findminGAN
GA法 |
u0
|
1.009843
|
1.022396
|
u1
|
4.993313
|
4.977874
|
u2
|
0.011500
|
0.116581
|
u3
|
1.994935
|
1.977905
|
u4
|
2.016973
|
1.883602
|
人件費 |
131.3795
|
131.9008
| この計算結果からもっとも最適な人員配置は
(表2)
勤務形態
|
勤務時間帯
|
人件費
|
人数
|
Full-A
|
A〜C |
17
|
1
|
Full-B
|
B〜D |
16
|
5 |
Full-C
|
C〜E |
18
|
0 |
Flex-A
|
A〜B |
8
|
2 |
Flex-B
|
D〜E |
9
|
2
| となり、表1を維持した最も安い人件費は131となる。
|