掲載済み (2026-09-05号)
160 131文字 • 1分

「いい感じに分けといて」と頼まれたので、「いい感じ」を定義してみた

日本語

掲載情報

概要

曖昧な「いい感じに分けて」という依頼を、ハード・ソフト制約の分類とペナルティスコアの数値化によって定義し、山登り法で最適化する手法を解説した実戦的な記事。

詳細内容

社内のシャッフルランチのグループ分けを例に、抽象的な「いい感じ」という要求をエンジニアリングで解決するプロセスを詳説しています。まず要望を、破ると運用が壊れる「ハード制約」と、価値を左右する「ソフト制約」に分類。グループ数やサイズの決定をデータ構造レベルで固定することで探索範囲を最小化し、残ったソフト制約(過去の同席履歴や所属部署)には「嫌さの点数(ペナルティ)」を割り当てました。最適化には山登り法(局所探索法)を採用し、GAS上で高速に動作させつつ、12ヶ月連続で重複ペアゼロという高い精度を実現しています。アルゴリズム選定だけでなく、問題を「解く前に削る」重要性を説いています。