###**前提条件**
-**依頼者**: 介護施設の運営者または管理者(シフト管理を効率化したい人)
-**制作者**: シフト管理システムの設計・開発が可能で、介護業界の労働条件を考慮できる人
-**目的**: 介護施設のスタッフの勤務シフトを最適化し、適切な人員配置を確保しながら業務を円滑に運営する。
###シフト情報
シフト = {
早番: 07:00 - 16:00
早番2: 08:00 - 15:00(パート専用)
日勤: 09:00 - 18:00
遅番: 10:00 - 19:00
夜勤: 17:00 - 01:00-9:30
}
###**スタッフ情報**
スタッフ一覧 = [ "山田", "佐藤", "石井", "藤田", "伊藤", "松本", "西田",
"小林", "加藤", "林", "鈴木", "高橋", "吉田", "大友", "藤井" ]
###**ユニットごとの職員配置**
Aユニット
管理者: 田中(夜勤なし)
社員: 山田, 佐藤, 石井, 藤田, 伊藤, 松本, 西田
パート: 中村
Bユニット
社員: 小林, 加藤, 林, 鈴木, 高橋, 吉田, 大友, 藤井
パート: 前田
###**パート職員の条件**
パート職員 = ["中村", "前田"](夜勤なし)
パートの勤務ルール = {
勤務時間: 08:00 - 15:00
月勤務回数: 12回
休日: 土日祝日
}
###**シフトごとの必要人数**
シフト必要人数 = {
早番: 2人
早番2: 2人(パート専用)
日勤: 2人
遅番: 2人
夜勤: 2人
}
###**希望休(仮設定)**
希望休 = {
山田=[" "]
佐藤=[" "]
# :[" "]追加
}
###**夜勤者の指定(ユニットごと)**
夜勤割り当て = {
Aユニット: ["山田", "山田", "佐藤", "佐藤", "石井", "石井"] +
["藤田", "藤田", "伊藤", "伊藤", "松本", "松本"] * 4 + ["西田"]
Bユニット: ["小林", "小林", "加藤", "加藤", "林", "林"] +
["鈴木", "鈴木", "高橋", "高橋", "吉田", "吉田"] * 4 + ["大友", "藤井"]
}
###**シフト作成対象月**
対象年=”
”
対象月=
”
###**シフト作成手順**
1. **夜勤の割り当て**
-Aユニット・Bユニットそれぞれの夜勤担当者を指定し、交代制で配置する。
-管理者(田中)とパート職員は夜勤に含めない。
2. **パート職員(早番2)の配置**
-月12回、平日のみ勤務するように割り当てる。
-2名のパート職員が平日ランダムに勤務できるように分散する。
-土日祝日は勤務しない。
3. **残りのシフト(早番・日勤・遅番)の割り当て**
-各日程で希望休を考慮し、勤務日が偏らないように調整する。
-早番・日勤・遅番に適切な人数を配置する。
4. **シフト表の作成**
-各日ごとに勤務シフトをリスト化し、最終的なシフト表を作成する。
-日付と曜日を明記する。
###**出力フォーマット(CSVまたは表形式)**
日付 曜日 早番2 早番 日勤 遅番 夜勤
2025-04-01 火 中村, 前田 山田, 佐藤 松本, 藤井 大友, 高橋 山田, 小林
2025-04-02 水 西田, 石井 加藤, 大友 林, 吉田 山田, 小林
2025-04-03 木 佐藤, 大友 加藤, 松本 伊藤, 藤井 佐藤, 加藤
###**補足**
-土日祝日はパートのシフトを除外する。
-月12回、平日のみ勤務するように割り当てる。
-夜勤はAユニット・Bユニットで交互に配置する。
-希望休を尊重しながら、スタッフに均等に勤務を割り当てる。
-ランダム性を持たせつつ、シフトのバランスを保つ