複雑な制約条件も全部クリア。
研修のチーム分けを一発で自動化
「また今年も手で編成するのか…」そこまで手間だったのです
毎年開催される研修や交流会。参加者が増えるにつれて、「どのグループの人は同じチームにしない」「1回目と2回目で新しい顔ぶれに出会わせたい」といった条件が増え、手作業での編成が難しくなっていました。
前担当者は、エクセルを何度も開き直して「この人をこっちに移して…」と試行錯誤。最終的には、条件の1つ2つを妥協して完成させていました。新しい担当者が引き継ぐときも、「なぜこの編成なのか」が不透明です。
このシステムはそんな悩みを解決します。CSVファイルに参加者データを入力して実行ボタンを押すだけで、複雑な制約条件をすべて満たす編成が数秒で完成。条件が変わっても、すぐに再計算できます。
Before / After
- エクセルの表を何度も作り直す
- 「同グループ同士は一緒にしない」ルールを手で確認
- 条件を満たせず、いくつか妥協する
- 担当者が変わると方針が不透明に
- 1回目で新しい顔に出会ったはずが、2回目で同じ人と再会…
- CSVを入力して実行ボタンを押すだけ
- 8つの制約条件を全て自動チェック
- 条件違反ゼロの編成が数秒で完成
- 毎年同じ品質のルールで実行可能
- 「すべての受講生が新しい顔と出会う」を確実に実現
仕組みの流れ
今回の制約条件について
今回のシステムが対応した主な条件は以下の8項目です。条件が多いほど手作業での対応が難しくなりますが、プログラムは全条件を同時に考慮して探索します。
① 1チームあたりの人数バランス(受講生2〜3名、サポーター2〜4名)
② 運営スタッフはサポーターとして扱う
③ 固定サポーターは1回目・2回目とも同じチームに留まる
④ 1回目のチーム長は各グループのグループ長が務める
⑤ 遅刻サポーターがいるチームには補佐役(A氏またはB氏)を配置する
⑥ 2回目の受講生は、1回目に同じチームだったサポーター・受講生と一緒にならない
⑦ 受講生同士が同じグループ出身の場合は同じチームにしない
⑧ 受講生は自分と同じグループのサポーターがいるチームに入らない
得られた効果
技術的なポイント(関心のある方向け)
AIによる制約充足探索
複数の条件を同時に満たす組み合わせを探す処理には「バックトラッキング探索(条件に合わなければ前の選択に戻って別の道を試す手法)」を採用しました。さらに全チーム長のローテーションパターンを総当たりで検証し、最もチーム長の変化が多い最適解を選ぶようにしています。
CSVとPowerPointの自動連携
入力はCSVファイル。出力は既存デザインを保ったままのPowerPointファイルです。スライドのXMLを直接操作することで、フォント・配色・遅刻マーク(△)といった細かいデザイン要素も維持しながら内容だけを書き換えています。
変更に強い設計
「〇〇さんをグループ長に昇格」「△△さんが欠席」といった直前の変更要望にも対応できるよう、制約条件をパラメーターとして分離した設計にしています。条件を変えるだけで全体が再計算される仕組みです。
こんな方に向いています
- 研修・勉強会・交流会で毎回グループ分けに時間をかけている
- 「同じグループの人は一緒にしない」など複数の条件が重なって手に負えない
- 参加者が多く、エクセルでの管理に限界を感じている
- 担当者が変わっても同じルールでグループ分けを続けたい
- CSVやGoogleフォームで出欠管理をしていて、そのデータをそのまま使いたい
参加者が10名以下で条件も少ない場合は、手作業でも十分かもしれません。また、今回のシステムはこのイベントの条件に合わせた設計です。御社のルールに合わせてカスタマイズする作業が別途必要になります。