Upgrade to Pro — share decks privately, control downloads, hide ads and more …

就職⽀援サービスにおけるキャリアアドバイザーのシフトスケジューリング

Sponsored · SiteGround - Reliable hosting with speed, security, and support you can count on.

 就職⽀援サービスにおけるキャリアアドバイザーのシフトスケジューリング

2026/6/12に、2026年度 人工知能学会全国大会(第40回)で発表した梅⾕、⽊村、﨑元の資料になります。

Avatar for Recruit

Recruit PRO

June 17, 2026

More Decks by Recruit

Other Decks in Technology

Transcript

  1. 3 シフトスケジューリングの概要 • 多数のCAを抱える組織では、求職者の業種や地域に合わせて多数のグループ を編成しており、各グループに10〜30⼈程度のCAが所属している。 • 求職者は就業時間外に⾯談するため、⼟⽇祝⽇や夜の時間帯の⾯談が多い。 時節や営業活動などの影響による⾯談予約数の変動も⼤きい。 • 各グループでは、毎⽉、スケジュール作成の担当者が翌⽉1ヶ⽉のCAの毎⽇の

    シフトと毎⽇の時間帯ごとの⾯談の割当を同時に決定する。 7/1 7/2 7/3 7/4 7/5 7/6 ・・・ 7/26 7/27 7/28 7/29 7/30 7/31 スタッ フ1 シフト 出勤 出勤 出勤 出勤 出勤 休日 出勤 休日 休日 出勤 出勤 出勤 9時 10時 面談 11時 面談 面談 面談 12時 面談 面談 面談 面談 13時 面談 面談 14時 面談 面談 15時 面談 面談 面談 面談 面談 16時 面談 面談 面談 17時 面談 面談 18時 面談 面談 面談 19時 面談 面談 面談 面談 面談 20時 面談 面談 面談 面談 面談 スタッ フ2 シフト 出勤 出勤 出勤 出勤 出勤 休日 ・・・ 出勤 出勤 出勤 出勤 休日 出勤 9時 面談 10時 面談 面談 面談 11時 面談 面談 面談 面談 面談 ・・・ 18時 面談 面談 面談 面談 面談 19時 面談 面談 面談 面談 面談 20時 面談 面談 面談 面談 面談 シフト 休日 出勤 出勤 出勤 出勤 休日 ・・・ 休日 出勤 出勤 出勤 出勤 出勤 スタッフ 10〜30人 1ヶ月 × 数十グループ
  2. 4 シフトスケジューリングの要件 • 担当者は、各CAの希望を考慮した上で、下記の要件を可能な限り満たす シフトスケジュールと⾯談スケジュールを同時に作成する。 • シフトスケジュールでは、1⽇ごとに各CAのシフトを割り当てる。 ⾯談スケジュールでは、時間枠(1時間)ごとに各CAの⾯談の有無を割り当てる。 要件 ü

    CAの出勤⽇は3枠以上の⾯談を割り当てる。休⽇は⾯談を割り当てない。 ü 各時間枠に⾯談予約数と同じ⼈数のCAを割り当てる。 ü 各CAの休⽇を指定⽇数以上にする。 ü 各CAの連続出勤を5⽇以下にする。 ü 平⽇は各CAに連続で休⽇を割り当てない。 ü 各CAは連続⾯談を3枠以下にする。 ü 平⽇はグループの半数以上のCAを出勤させる。 ü 平⽇は各CAに同じ⽇の朝枠と夜枠に同時に⾯談を割り当てない。 ü 各CAの1ヶ⽉の⾯談回数を⽬標に近づける。 ü 各CAの指定する休⽇やシフト(早番、遅番)を満たす。
  3. 5 シフトスケジューリングの定式化 集合 • スタッフ の集合 • ⽇付 の集合 •

    時間枠 の集合 • ⼟⽇祝⽇の集合 • スタッフ の出勤可能⽇の集合 • 朝枠、夜枠の集合 定数 • スタッフ が⽇ の時間枠 に⾯談可能 • ⽇ の時間枠 のスタッフの必要⼈数 、⽬標⼈数 変数 • スタッフ に⽇ の時間枠 に⾯談を割当 • スタッフ に⽇ に休⽇を割当
  4. 6 シフトスケジューリングの定式化 制約 1. スタッフ が⽇ に出勤するなら⾯談を 枠以上割り当てる。 2. ⽇

    の時間枠 に ⼈以上のスタッフを⾯談に割り当てる。 3. ⽇ の時間枠 に ⼈のスタッフを⾯談に割り当てる。 hard soft soft 本来はハード制約 違反量を表すスラック変数 違反量を表すスラック変数
  5. 7 シフトスケジューリングの定式化 4. スタッフ に ⽇以上の休⽇を割り当てる。 5. スタッフ に連続する ⽇で1⽇以上の休⽇を割り当てる。

    6. スタッフ に平⽇に連続で休⽇を割り当てない。 7. スタッフ に連続 回以下の⾯談を割り当てる。 hard hard hard hard 枠連続⾯談禁⽌ ⽇連勤禁⽌ 勤 勤 勤 勤 勤 勤 休 休 勤 勤 勤 勤 勤 ⽇連勤禁⽌ 無 ⾯ ⾯ ⾯ ⾯ ⾯ ⾯ 無
  6. 8 シフトスケジューリングの定式化 8. 平⽇は半数以上のスタッフを出勤させる。 9. 平⽇はスタッフ に同⽇の朝枠と夜枠に同時に⾯談を割り当てない。 10. スタッフ に1ヶ⽉にちょうど

    回の⾯談を割り当てる。 11. スタッフ に⼟⽇祝⽇の半分以上に休⽇を割り当てる。 hard soft soft soft 負担の平準化 休⽇の平準化 違反量を表すスラック変数 違反量を表すスラック変数 違反量を表すスラック変数
  7. 9 シフトスケジューリングの定式化 ⽬的関数 • ソフト制約の重み付き和を最⼩化。 • 制約2はハード制約だが、制約を満たさないデータが⼊⼒されることが少なく ないためソフト制約に変更。 その他 •

    部会などのイベント⽇の出勤、⽉末最終営業⽇の出勤、各CAの希望休 (+特別休)などの指定に合わせて、変数 の値を固定。 ペナルティ重みを表す定数 →最⼩化 変数の値を固定した結果、問題が実⾏不能になることがあります。
  8. 11 数値実験 • 整数計画ソルバーSCIP(v10.0.0)、制約充⾜ソルバーCP-SAT(v9.15)を利⽤。 • SCIPとCP-SATの求解性能(600秒)を⽐較。 • スタッフ19⼈、変数:13713個、制約:14704本。 制約2 制約3

    制約9 制約10 制約11 重み(W) 100 10 10 1 10 SCIP 4 196 58 188 22 CP-SAT 1 173 66 165 26 CP-SATは整数計画問題ではなく制約充⾜問題として定式化しました。 HiGHs(v.1.12)はSCIPよりも求解性能が劣る結果のため割愛しました。 制約2:各時間枠の必要⼈数 制約3:各時間枠の⽬標⼈数 制約9:同⽇の朝枠と夜枠の排他 制約10:⾯談回数の平準化 制約11:休⽇数の平準化 SCIP 探索を並列化しても 性能は改善せず CP-SAT 複数種類の⼤規模近傍 探索の並列実⾏ SCIP(下界)
  9. 12 実⾏例 • スタッフ9⼈の問題例に対する実⾏結果。 9/1 9/2 9/3 9/4 9/5 9/6

    9/7 9/8 9/9 9/10 9/11 9/12 9/13 9/14 9/15 9/16 9/17 9/18 9/19 9/20 9/21 9/22 9/23 9/24 9/25 9/26 9/27 9/28 9/29 9/30 ⽉ ⽕ ⽔ ⽊ ⾦ ⼟ ⽇ ⽉ ⽕ ⽔ ⽊ ⾦ ⼟ ⽇ ⽉ ⽕ ⽔ ⽊ ⾦ ⼟ ⽇ ⽉ ⽕ ⽔ ⽊ ⾦ ⼟ ⽇ ⽉ ⽕ シフト 早 早 早 特休 早 休 休 早 早 早 フル 早 休 休 休 早 早 休 早 早 休 フル 早 早 休 早 休 休 早 早 CA1 9:00× × × × × × × × × × × × × × × × × × × × × × × × × × × × × × 10:00• • • × • × × • • • × • × × × • • × • • × × • × × • × × • • 11:00× × × × × × × × × × • • × × × • • × • × × • • × × • × × • • 12:00• • × × • × × • • × • • × × × • × × • • × • × × × × × × • × 13:00• • × × × × × • • × • × × × × × × × × • × × • × × × × × × • 14:00• • • × × × × × • × × • × × × • × × × • × • • × × • × × • • 15:00× × • × × × × • × • × • × × × × • × • × × • • • × • × × • • 16:00• • × × • × × • • • • × × × × • • × • • × • × × × × × × • × 17:00• • • × × × × • • • × • × × × • • × • • × × • × × • × × × × 18:00× × × × × × × × × × • × × × × × × × × × × • × × × × × × × × 19:00× × × × × × × × × × • × × × × × × × × × × • × × × × × × × × 20:00× × × × × × × × × × • × × × × × × × × × × • × × × × × × × × シフト 短早 短早 短早 短早 休 短早 休 特休 休 短早 短早 短早 休 休 休 短早 短早 短早 短早 短早 休 短早 休 短早 短早 短早 短早 休 短早 休 CA2 9:00× × × × × × × × × × × × × × × × × × × × × × × × × × × × × × 10:00• • • • × • × × × × • • × × × • • • • • × • × • • • • × • × 11:00• • • • × • × × × • • • × × × • • • • • × • × • • • • × • × 12:00× × × × × × × × × × × × × × × × × • × × × × × × × × × × × × 13:00• • × • × • × × × × • • × × × • × × • • × • × × • • • × • × 14:00• • • • × • × × × • • • × × × • • × • • × • × • • • • × • × 15:00• • • • × • × × × • • • × × × • • × • • × • × • • • • × • × 16:00× × × × × × × × × × × × × × × × × × × × × × × × × × × × × × 17:00× × × × × × × × × × × × × × × × × × × × × × × × × × × × × × 18:00× × × × × × × × × × × × × × × × × × × × × × × × × × × × × × 19:00× × × × × × × × × × × × × × × × × × × × × × × × × × × × × × 20:00× × × × × × × × × × × × × × × × × × × × × × × × × × × × × × シフト 休 休 フル フル フル フル 休 フル フル フル フル 休 フル 休 フル フル フル フル 休 フル フル 休 休 フル 休 フル フル 休 フル フル CA3 9:00× × × × × × × × × × × × × × × × × × × × × × × × × × × × × × 10:00× × × × × × × × × × • × • × • • × • × • • × × × × × • × × × 11:00× × × × × • × × • × × × • × × × × × × × • × × × × × • × × • 12:00× × × × × • × × × × × × × × • • × × × • × × × × × × • × • × 13:00× × × × × • × × × × × × • × • • × × × • • × × × × × × × × × 14:00× × × • • × × × × × × × • × • × × × × • • × × × × × • × × × 15:00× × × × × × × × • × • × • × × × × × × × × × × × × • × × × • 16:00× × × × • • × × × • • × × × • × × × × • • × × × × × • × × × 17:00× × × × • • × × • × × × • × • • × × × • • × × × × × • × • × 18:00× × • • × • × • × • × × • × • • • × × × • × × • × • • × × • 19:00× × • • • × × • • • × × • × × × • × × • × × × × × • × × • • 20:00× × • • • • × • • • × × × × • × • × × • • × × × × • × × • • シフト 休 フル フル 休 特休 フル フル フル フル フル 休 休 休 フル フル フル 早 早 休 休 フル フル 休 フル 休 休 フル フル フル 早 CA4 9:00× × × × × × × × × × × × × × × × × × × × × × × × × × × × × × 10:00× × × × × • • × × × × × × × × × • × × × • × × × × × × • × • 11:00× × × × × • • • × × × × × • • × × × × × • • × × × × • • × × 12:00× • × × × • • • • × × × × • • • × × × × • • × × × × • • • × 13:00× • × × × × × × • × × × × × × • × × × × × • × × × × • × × × 14:00× × × × × • • • × × × × × • • × • × × × • × × • × × × • × × 15:00× × × × × • • • • × × × × • • × × × × × • × × × × × • • × × 16:00× × • × × • • × × • × × × • • × × × × × • × × • × × • • • • 17:00× × × × × × × • × × × × × × × × × • × × × × × • × × • × × × 18:00× • × × × • • × • × × × × • • • × × × × • • × × × × × • × × 19:00× • × × × • • • • × × × × • • • × × × × • • × × × × • • • × 20:00× • • × × • • • • × × × × • • • × × × × • • × • × × • • • × シフト フル フル フル 休 フル フル 休 休 特休 フル フル フル 短早 休 休 特休 特休 特休 特休 休 休 休 休 フル フル フル フル 早 休 早 CA5 9:00× × × × × × × × × × × × × × × × × × × × × × × × × × × × × × 10:00• × × × × × × × × × × × × × × × × × × × × × × × × × × • × × 11:00× • • × • • × × × • × × • × × × × × × × × × × • × • • • × × 12:00• • × × × • × × × × • • • × × × × × × × × × × × • • • • × × 13:00• • × × • • × × × × × × × × × × × × × × × × × × • • • × × × 14:00• × × × • × × × × • • × • × × × × × × × × × × • × × × • × × 15:00× × • × • • × × × • • × • × × × × × × × × × × • • • • × × × 16:00× • • × × • × × × × × • × × × × × × × × × × × • • • • • × • 17:00• • • × × × × × × × • • × × × × × × × × × × × × • • • • × • 18:00• × × × • • × × × • • × × × × × × × × × × × × • × × × × × × 19:00× • × × • • × × × • • • × × × × × × × × × × × • • • • × × × 20:00× • • × • • × × × • × • × × × × × × × × × × × • • • • × × × シフト フル フル フル 特休 フル フル 休 フル 休 フル フル フル フル フル 休 フル フル フル 休 休 フル 休 休 フル フル フル 休 休 フル 休 CA6 9:00× × × × × × × × × × × × × × × × × × × × × × × × × × × × × × 10:00× × × × × • × • × × × × • • × × × • × × • × × × × • × × • × 11:00• × × × • • × • × × × • × • × • × × × × × × × × × × × × • × 12:00• × × × • • × × × × • × • × × • × × × × • × × × • • × × × × 13:00× × × × • × × • × × × • • • × × × × × × • × × × • • × × • × 14:00• × × × × • × • × × × • × • × • × × × × • × × × • • × × × × 15:00• • × × • × × • × × × • • • × • × × × × × × × × × × × × × × 16:00• × × × • • × × × × • × × × × × × × × × • × × × × • × × × × 17:00× • × × • • × • × • × × • • × • • • × × • × × × • • × × • × 18:00• × × × × × × × × × • • • • × × × • × × × × × × × × × × • × 19:00• • × × • • × × × • • • • • × • • × × × • × × • • × × × × × 20:00• • × × • × × × × • • • × × × • • × × × • × × • • × × × × × シフト 特休 休 早 休 フル フル 休 特休 短遅 早 休 フル 早 休 休 休 早 フル フル 早 フル 休 休 短遅 フル フル 早 休 フル 短早 CA7 9:00× × × × × × × × × × × × × × × × × × × × × × × × × × × × × × 10:00× × × × × × × × × • × × × × × × × × × × × × × × × × × × × • 11:00× × • × × • × × × • × × • × × × • • • • • × × × • × • × × • 12:00× × × × • × × × × × × • • × × × × • × • • × × × • • • × × • 13:00× × × × • • × × × × × × • × × × × × • • • × × × • × • × × × 14:00× × • × • • × × × • × • × × × × • × • × × × × × × • × × • • 15:00× × × × × • × × × × × × • × × × × × × • • × × × × • • × • × 16:00× × × × × × × × × • × × • × × × • × • • • × × • • • • × × × 17:00× × × × • × × × × • × × • × × × • × × • • × × • • × • × × × 18:00× × × × × × × × • × × • × × × × × × • × × × × × × • × × × × 19:00× × × × • • × × • × × • × × × × × • • × • × × • • • × × • × 20:00× × × × • • × × • × × • × × × × × • • × • × × • • • × × • × 休 休 遅 フル フル フル フル 休 遅 フル フル 遅 フル※ 休 フル 休※ 短早※ 遅 フル 休 フル フル 休 フル フル 休 休 休 フル フル CA8 9:00× × × × × × × × × × × × × × × × × × × × × × × × × × × × × × 10:00× × × × × • • × × × × × • × • × × × × × × × × × • × × × × × 11:00× × × × • × • × × × × × × × × × × × × × • × × × × × × × × × 12:00× × × × • • × × × × • × • × • × × × × × • • × × × × × × • × 13:00× × × × • • • × × × • • • × • × × × × × • × × × • × × × × • 14:00× × × • × × • × × × • × • × × × • × × × × • × × • × × × × × 15:00× × × × • • • × × • × × × × • × × × • × • × × × × × × × × × 16:00× × • • • • × × × × × × • × • × × × × × × • × × • × × × • × 17:00× × • • × • • × × × • × • × • × × • × × • • × • • × × × • • 18:00× × × × • × • × × • × • • × × × × × • × • × × × • × × × • × 19:00× × • • • • • × • • • • × × • × × • • × • • × • × × × × × • 20:00× × • • • × × × • • • • × × • × × • • × × • × • × × × × × • 休 休 フル フル フル フル 休 休 休 フル フル フル フル 休 フル 休 フル フル フル フル 休 フル 休 フル フル 休 フル フル フル フル CA9 9:00× × × × × × × × × × × × × × × × × × × × × × × × × × × × × × 10:00× × × × × • × × × × × • • × × × × × × × × × × × • × • • × • 11:00× × × × × × × × × × • • • × • × × × × • × × × × × × × • × × 12:00× × × • × • × × × × × × × × • × × × • • × • × × × × • × × • 13:00× × × × × • × × × × × • • × • × × × × • × • × × × × • × × • 14:00× × × • × • × × × × × × • × × × × × × × × × × × • × • • × × 15:00× × × • × × × × × × × × × × • × × × × × × • × × × × × • × • 16:00× × × × × • × × × × × • • × • × • × × • × • × × × × • • • • 17:00× × × × × • × × × × × • • × • × • × × • × × × × × × • × × × 18:00× × × • • • × × × × • • • × × × • • • • × • × • × × • • • • 19:00× × • • • × × × × • • × × × • × × • • × × • × • × × × • • × 20:00× × • • • × × × × • • × • × × × • • • × × • × • × × • • • × CA2は 早番のみ 希望休の指定 による10連休 古いバージョンの実⾏結果のため前述の制約条件を満たしていない部分があります。