Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
希望休勤務を考慮したシフト作成
Search
NearMeの技術発表資料です
PRO
June 22, 2025
110
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
希望休勤務を考慮したシフト作成
NearMeの技術発表資料です
PRO
June 22, 2025
More Decks by NearMeの技術発表資料です
See All by NearMeの技術発表資料です
AIエージェントのための 隔離された安全なインフラ設計
nearme_tech
PRO
0
24
Claude Code × git worktree で並列開発 (続き) -差分のサービスだけを併設する-
nearme_tech
PRO
1
69
Claude Code × git worktree で並列開発 — サブモジュール構成のリポジトリで成立させる —
nearme_tech
PRO
0
79
LLM + 強化学習
nearme_tech
PRO
0
37
PosthogのA/Bテスト機能の紹介
nearme_tech
PRO
1
110
AIフレンドリーなプロダクトに向けて
nearme_tech
PRO
2
71
初めてのLean言語
nearme_tech
PRO
0
110
Apache Airflow Workflow orchestration without turning cron into spaghetti
nearme_tech
PRO
2
50
実務で役立つ幾何学 ボロノイ図の基礎から グラフ・ネットワーク応用まで
nearme_tech
PRO
1
93
Featured
See All Featured
Designing for humans not robots
tammielis
254
26k
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
370
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.4k
Marketing to machines
jonoalderson
1
5.9k
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
2
480
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1.1k
How STYLIGHT went responsive
nonsquared
100
6.3k
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
520
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
500
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.2k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
400
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
310
Transcript
0 希望休勤務を考慮したシフト作成 2025-06-20 第124回NearMe技術勉強会 Ryota Matsumoto
1 ⽬次 • ⾃⼰紹介 • シフトスケジューリングと数理最適化 • 定式化 • ハード制約とソフト制約
• 具体例 • まとめ 1/28
2 ⾃⼰紹介 松本 遼⼤ (まつもと りょうた) 所属:東京理科⼤学 理学研究科 応⽤数学専攻 修⼠1年 学部時代 :数理統計、機械学習 研究分野:組合せ最適化
(なかでもパッキング問題) 趣味:体を動かすこと(野球‧バドミントン‧ランニング) 最近ハマっていること:家でYouTubeの10分間筋トレ 2/28
3 シフトスケジューリング • シフトスケジューリング問題とは ◦ 従業員の希望をもとに「どの従業員が‧いつ‧どのシフトに⼊るか」 を決定する問題のこと • シフトの作成を⼿作業でやると⼿間がかかり、⾯倒.... →数理最適化を⽤いることで、シフトをコンピュータが作成する
3/28
4 最適化問題 • ある与えられた条件下で、 ⽬的関数を最⼤化または最⼩化するような解を求める問題 4/28
5 数理最適化のアプローチ 現実問題 最適化問題 最適化結果 問題解決 定式化 ソルバーによる求解 採用 修正
5/28
6 数理最適化の定式化 コンピュータが計算できるよう、現実問題を数式に変換 現実問題 最適化問題 定式化 6/28
7 シフトスケジューリングと数理最適化 • 数理最適化では、 ◦ 「どの従業員が‧いつ‧どのシフトに⼊るか」→ 決定変数 ◦ 考慮しなければいけない条件 →
制約条件 ◦ どんなスケジュールを作成したいか→⽬的関数 → 制約条件を満たしながら、⽬的関数を最⼤化もしくは最⼩化する 7/28
8 制約条件 • 考慮しなければいけない条件 ◦ 労働基準法 ◦ 従業員の休みたい⽇ 8/28
9 1ヶ⽉間のシフトスケジュール定式化 ⽬的関数 minimize Σ( あるd⽇の必要な⼈員と実際の⼈員の誤差 ) ←⼩さくしたい (d=1,2,...,31) 制約条件
‧労働基準法 ‧各従業員の休みたい⽇ 9/28
10 問題点 • 従業員の休みたい⽇を全て採⽤すると、シフトが全然埋まらないことも.... → 制約条件を考え直す必要がある 10/28
11 希望休勤務 • 休みたい⽇の希望出したけど勤務しないといけない ◦ 例:前⽥さんは17⽇と20⽇の休みの希望を出したけど、17⽇は勤務することに なっている → 希望休勤務も場合によっては必要 11/28
12 ハード制約 と ソフト制約 • 制約 ◦ ハード制約:必ず守らないといけない条件 ▪ 労働基準法
◦ ソフト制約:なるべく守るべき条件 ▪ 各従業員の休みたい⽇ • 例 前⽥さんは今⽉の17⽇と20⽇休みたい 12/28
13 1ヶ⽉間のシフトスケジュール定式化 ⽬的関数 minimize Σ( あるd⽇の必要な⼈員と実際の⼈員の誤差 ) (d=1,2,...,31) 制約条件 ‧労働基準法
‧各従業員の休みたい⽇ 13/28
14 1ヶ⽉間のシフトスケジュール定式化 ⽬的関数 minimize Σ( あるd⽇の必要な⼈員と実際の⼈員の誤差 ) (d=1,2,...,31) 制約条件 (ハード)労働基準法
(ソフト)各従業員の休みたい⽇ 14/28
15 1ヶ⽉間のシフトスケジュール定式化 ⽬的関数 minimize Σ( あるd⽇の必要な⼈員と実際の⼈員の誤差 ) + α ×(希望休勤務回数)
(d=1,2,...,31) 制約条件 (ハード)労働基準法 ソフト制約をペナルティ項として⽬的関数に⼊れる 15/28
16 1ヶ⽉間のシフトスケジュール定式化 ⽬的関数 minimize Σ( あるd⽇の必要な⼈員と実際の⼈員の誤差 ) + α ×(希望休勤務回数)
(d=1,2,...,31) 制約条件 (ハード)労働基準法 ソフト制約をペナルティ項として⽬的関数に⼊れる αの値によって希望休勤務させたいか操作できる 16/28
17 具体例 ある1⽇のシフトで3⼈必要 2⼈は勤務予定だが、残りの1⼈は休みの希望を出している この時、希望通り休ませるのか、勤務させるのか 希望通り休み 17/28
18 α = 2のとき ある1⽇のシフトで3⼈必要 (必要な⼈員と実際の⼈員の誤差 ) + α ×(希望休勤務回数)
=(3−2)+2×0 =1 希望通り休み 18/28
19 α = 2のとき ある1⽇のシフトで3⼈必要 (必要な⼈員と実際の⼈員の誤差 ) + α ×(希望休勤務回数)
=(3−3)+2×1 =2 休み希望出したけど 勤務 19/28
20 α = 2のとき(まとめ) ある1⽇のシフトで3⼈必要 (ⅰ)希望通り休ませる (誤差) + α (希望休勤務回数)
=(3−2)+2×0 =1 最⼩化なのでこっちが最適解 (ⅱ)休ませない (誤差) + α (希望休勤務回数) =(3−3)+2×1 =2 20/28
21 α = 0.5のとき ある1⽇のシフトで3⼈必要 (必要な⼈員と実際の⼈員の誤差 ) + α ×(希望休勤務回数)
=(3−2)+0.5×0 =1 希望通り休み 21/28
22 α = 0.5のとき ある1⽇のシフトで3⼈必要 (必要な⼈員と実際の⼈員の誤差 ) + α ×(希望休勤務回数)
=(3−3)+0.5×1 =0.5 休み希望出したけど 勤務 22/28
23 α = 0.5のとき(まとめ) ある1⽇のシフトで3⼈必要 (ⅰ)希望通り休ませる (誤差) + α (希望休勤務回数)
=(3−2)+0.5×0 =1 (ⅱ)休ませない (誤差) + α (希望休勤務回数) =(3−3)+0.5×1 =0.5 最⼩化なのでこっちが最適解 23/28
24 まとめ パラメータ α によってシフト作成者の意思が反映できる • 従業員の希望休を優先したい → α を⼤きくするべき (よりハードに)
• とにかくシフトの不⾜を無くしたい → α を⼩さくするべき (よりソフトに) ⚠注意 • α = 0 にすると希望休を無視したシフトになる • α < 0 にすると希望休勤務を優先したシフトになる 24/28
25 まとめ • α < 0 にすると希望休勤務を優先したシフトになる →別の⽬的で活かせる 例:ベテランの前⽥さんを12⽇(忙しい⽇)に勤務させたい ある希望⽇を
なるべく休ませたい→ α > 0 なるべく働かせたい→ α < 0 25/28
26 ソフト制約 の メリット‧デメリット メリット • 実⾏可能解が増える • ⼈間の意思が反映できる デメリット
• ソルバーの計算時間増加 • パラメータの調整が難しい 26/28
27 Thank you