帰宅後は大忙し!FLEXSCHE Optimizerで家事スケジュールを立ててみた
はじめに
仕事から帰ってきた夜。洗濯もしたい、夕飯も作りたい、お風呂にも入りたい、でもその日のうちには全部終えてゆっくり眠りたい----。
そんなとき、あなたはどの順番で家事を始めますか?
この「何から手をつけるか」という問いは、実は製造業の生産スケジューリングと似た構造を持っています。限られた時間・設備・人手の中で、複数のタスクを納期までに終わらせる----
そう、家事はスケジューリング問題であり、
より良い解を求めるという意味では組み合わせ最適化問題でもあります。
今回は、帰宅後の家事スケジュールをFLEXSCHEに実際に入力してモデル化し、
FLEXSCHE Optimizerがどのように最適な計画を導き出すのかを見ていきます。
家事をFLEXSCHEのモデルに当てはめてみる
まず、夜の家事に登場する「設備」と「やること」を整理します。
設備(資源)
洗濯機 :スイッチを押すと3時間で洗濯・乾燥まで実行
炊飯器 :研いだお米を入れてスイッチを入れると1時間で炊飯完了
風呂 :湯沸かし器のスイッチを入れてから30分でお風呂が沸く
調理場 :調理を行うためのスペース、後片付けも忘れずに
リビング:食事をしたり洗濯物をたたむスペース
人 :作業者、自動の作業以外にはすべて関わる
重要なのは最後の「人」です。家事をする本人はたった1人。これがこの問題のボトルネック資源です。製造現場では、限られた熟練工や検査員に相当します。
やること
今夜こなすべき仕事は以下の3つ(+就寝)です。
今回は19:30に帰宅した後、家事をこなして0:00までに就寝することを目標(=翌日の0:00を納期として設定)にします。

・食事
・入浴
・洗濯
⇒これらがすべて終わった後、就寝準備をして就寝
一連の工程を見てみよう
それぞれの仕事は複数の工程に分かれています。
※太字で表示している箇所は人が関わる工程です
食事
(※クリックで拡大)
調理(1時間)↘
米研ぎ(5分)→ 米投入(1分)→ 炊飯(1時間・自動)→ 配膳(8分)→ 食事(30分)→ 洗い物(30分)
食事の工程では、調理→配膳→食事までは間を空けずに行うという制約を入れています。
また、炊飯と調理が完了してからでないと配膳は行えません。
入浴
(※クリックで拡大)
スイッチ押下(1分)→ 湯沸かし(30分・自動)→ 入浴(1時間)
入浴の工程で気を付ける制約として、「お湯が沸いたらすぐ入浴する」という制約を設けています。お湯がぬるくなる前に入りたいですからね。
洗濯
(※クリックで拡大)
洗濯物投入(5分)→ 洗濯・乾燥(3時間・自動)→ 取り出し(5分)→ たたみ(30分)
洗濯については食事・入浴に比べて時間の制約がなく工程の順序さえ守れば工程間の時間が空いても問題ないです。
「スイッチ工程」がポイント
各グラフに登場する「スイッチ」の工程
----炊飯器のスタートボタン、洗濯機のスタートボタン、お風呂の給湯スイッチ----
これらのスイッチを押した後、機械は人の手なしに自動で動き続けます。
この「自動稼働している間の人の空き時間」をどう使うかが、スケジューリングの肝です。
製造業に置き換えると
「段取り完了後に設備が自動稼働している間に、作業者が次の段取りや別の工程を担当できるか」という問いと同じです。
デフォルトルールで計画するとどうなる?
FLEXSCHEで特に何も工夫せずに時間制約だけを守ったスケジューリングすると、ルールに従って作業が並べられます。
ボトルネックとなっている資源(人)上の作業の並び順については特に考慮せずスケジューリングしてみます。
(※クリックで拡大)
結果を確認すると、就寝時間が1:50ごろになり、目標としていた時間(納期)に間に合いません。
なぜか。ボトルネックである「人」が、機械の自動稼働を待つだけの時間(手待ち)を作ってしまっているからです。
ガントチャートを見てみると「湯沸かし器、洗濯機、炊飯器の順にスイッチを入れた後、どれかが完了するまで何もすることがない」「入浴後、洗濯が終わるまで待っている」という状態になっています。これは製造現場でいう「設備は動いているのに作業者が次の仕事を持っていない」状況に等しく、生産効率を大きく損ないます。
FLEXSCHE Optimizerに任せてみる
「納期遅れ最小化再割り付け」メソッドを実行すると、Optimizerが数理最適化手法によって制約をすべて満たしたうえで最適な作業の並び順を自動探索します。
(※クリックで拡大)
Optimizerが見つけた解のポイント
Optimizerが組み立てた計画の核心は、「機械が自動稼働している間に人が別の作業を進める」並び順です。
具体的にはこのような流れになります:
1. 帰宅したらまず洗濯物を洗濯機に投入してスイッチスタート(3時間自動稼働開始)
2. 洗濯機が回っている間に米を研いで炊飯開始(1時間自動炊飯開始)
3. お米を炊いている時間で調理を済ませ、炊き上がったご飯と合わせて配膳・食事
4. 食後にお風呂のスイッチを押す(30分で自動湯沸かし)
5. 洗い物をしている間にお風呂が沸くので、洗い物をした後入浴へ
6. 入浴中に洗濯が完了しているので取り出し・たたみ
7. 就寝準備までに必要な工程がすべて終わったので無事就寝
全作業が0:00までに収まり、納期遵守率100%になります。
製造現場での活用
家事の世界では「洗濯機が回っている間に料理しよう」という感覚は経験と勘で身につきます。
しかし実際の製造現場では----
- 作業が数百〜数千に増える
- 設備や作業者の種類・制約が複雑に絡み合う
- 納期・優先度が刻々と変わる
こうなると、人の勘による試行錯誤では限界があります。
FLEXSCHE Optimizerは、ルールベーススケジューリングで立てた初期計画を出発点に、数理最適化手法で「より納期遅れが少ない並び順」を自動で探索します。複雑なスケジューリングルールを一から構築する高度な技術力なしに、質の高い計画を短時間で得ることができます。
おわりに
いかがでしたか?今回は家事というテーマを通じて、生産スケジューリングにおける最適化の本質
----ボトルネック資源の手待ちをなくし、機械の自動稼働時間を最大限活用する----をご紹介しました。
FLEXSCHE Optimizerは、この考え方を数理的に解き、現実的な時間内に最適解へと導きます。
ぜひ、みなさんの現場にある「家事問題」を思い浮かべながら、Optimizerの可能性を検討してみてください。






