はじめに
近年、生成AIに関する技術が急速に発展しており、さまざまな分野への活用が盛んに検討されています。
当社が得意とする数理最適化技術に関しても、生成AIを活用することで、実務への応用の可能性がさらに広がりつつあります。
本記事では、シフトスケジューリングに関して、数理最適化と生成AIを活用した鉄道情報システム株式会社様(以降、JRシステム様と記載)との共同研究事例をご紹介します。
本取り組みの背景
JRシステム様では、シフト表の自動作成が出来るクラウドサービス「勤務シフト作成お助けマン 」を展開しており、内部では弊社が開発する最適化ソルバー Nuorium Optimizer を使用しています。
本サービスでは、人手で入力した条件に合わせてシフトを自動作成することができ、これまで多くの方々にご利用いただいています。
一方、自動作成後のシフトに対して、現場の細やかな要望を踏まえて微調整や確認を行う必要があり、調整にかかる労力も大きいという課題がありました。
本課題に対して、これまで UI の設計の工夫や、数理最適化の技術に詳しい技術者がサポートを行う形で対応してきましたが、ユーザーの方々からは、より労力を削減しつつ、数理最適化に詳しくない現場の方の手によって短時間で解決したいという声が寄せられていました。
そこで、生成AIと数理最適化を融合させて活用することで、現場の方々の要望をかなえられないか検証を行いました。
なぜ「生成AIと数理最適化」なのか
昨今、生成AIは様々な難易度の高いタスクを短時間でこなせることが話題となっています。
読者の皆様の中にも、生成AIを活用することで、従来人手でこなしていた業務を何倍も速くこなすことができた、あるいは数学の難問が生成AIによって解かれた、といったインパクトのある成果を一度はニュース等で見たことがあるかもしれません。
生成AIが脚光を浴びている中で、なぜ生成AIに加えて数理最適化という技術を用いる必要があるのでしょうか?
端的に答えを述べると、「実務において数理最適化で解決したい課題は、考慮したい制約が複雑であり、現状の生成AI単体の性能では解決に至らないことが多い」と言えるかと思います。
実際、今回の取り組みで検証したシフトスケジューリング問題では、最適化モデルとして数式で表現した際の変数は数千、制約式は数百以上の規模であり、とても大規模な連立1次不等式を解くことになります。
また、考慮する制約条件に関しても、日ごとの各シフトの必要人数をはじめ、1カ月の休暇数など、様々な条件を同時に考慮する必要があり、すべての制約を同時に満たすように解をわずかに変更することすら骨の折れる作業です。
2026年1月時点の Claude Opus モデルを用い、一部の制約条件に違反しているシフト表について、制約条件を満たすように修正を行うタスクを生成AIのみを用いて行えるか検証しましたが、ユーザーの意図する修正案を得ることはできませんでした。 このことから、生成AIの推論能力に頼るだけでは、シフトの修正という「実務における複雑な課題」を解決することは困難であることを確認しました。一方、生成AIは入力方法として自然言語や音声、画像(履歴のスクリーンショット等)など、多様な形式を用いることが出来ます。これは現場でシフトを作成する担当者にとって扱いやすい利点です。生成AI単体では難しいシフトの修正に関しては、当社のこれまでの受託案件の経験から、数理最適化技術、特に最適化ソルバーを用いたノウハウを有していました。 生成AIの利点を活用しつつ、不得意としている部分を数理最適化技術でカバーすることで、より複雑なタスクの実行が可能になると考えました。
「AIエージェント」を使って課題を克服する
冒頭の課題に立ち戻りましょう。
今回のJRシステム様との共同研究では、生成AIと最適化計算を組み合わせて早期にシフト修正案を提示する技術を開発し、プロトタイプを実装しました。
特に、プロトタイプを実装する際には、「お助けマン」に特化したシフトを微調整するAIエージェント の構築を行いました。
ここで、新たに登場した「AIエージェント」という用語について説明します。
「生成AI」とは、人が投げかけた質問や指示に対して、文章や画像などのコンテンツを一度に生成するものを指します。
対して、「AIエージェント」とは、人から与えられた目的に向けて、情報の収集・推論・外部ツールの実行を自律的に繰り返すものを指します。
AIエージェントが自律的に作業を行う際に、生成AIを何度も呼び出している、というイメージが近しいです。
以下に今回構築したAIエージェントの概要図を掲載します。
「シフト微調整のためのAIエージェント」の概要図
今回実装したAIエージェントでは、ユーザーのシフト修正の要望を受けて、まず修正範囲となる期間の特定を行います。
その後、ユーザーに修正期間が問題ないことを確認できたら、最適化計算を実行し、シフトの修正を行います。
ユーザーの要望によっては修正期間内でも動かしたくないシフトもある場合がありますが、ユーザーの要望に応じて固定すべきシフトがあれば最適化計算時に固定する機能もAIエージェント内で実行されています。
本AIエージェントの特徴は以下の点にあります。
ユーザーの要望を「修正期間の特定」という最適化計算と相性が良い形式に変換している
修正可能期間を特定後、最適化計算を再実行することでシフトの修正を行う
AIエージェント内の処理に精度を向上させる工夫を施している
最適化計算の複数結果を利用する(後述)
構築したAIエージェントを用いてシフトの調整に関する検証を行ったところ、軽微なシフト修正に関してはユーザーの要望通りに対応できることが確認できました。
ここで、軽微なシフト修正とは、例えば以下のような修正を想定しています。
ただし、現場によって、下記修正が「軽微」な修正にならない場合もあることには注意が必要です。
特定の人物の夜勤回数を予定より1~2回増やす
特定の日の休日取得人数を少なくし、別日の休日取得人数を増やす
特定の3日間の中で、日勤の調整を行う
一方、1カ月の勤務全体を調整する必要があるような大規模なシフト修正を要するユーザーの要望に対しては、今回構築したAIエージェントを用いるだけではうまく修正できない場合もあることが判明しました。
今後の生成AIの基盤モデルの進化、そして本検証で実施したもの以上のドメイン知識の注入が重要になってくると考えています。
AIエージェントの中で数理最適化技術の強みを活かす
先ほどのAIエージェントの特徴の中に「最適化計算の複数結果を利用する」と記載しました。
この点について、以下で詳細を説明します。
今回は当社が開発している数理最適化ソフトウェア Nuorium Optimizer のメタヒューリスティクス解法の、「複数解を多様に取得できる」という特色を活かしました。
イメージ図を以下に示します。
図の左側に記載されている複数の最適化案が「メタヒューリスティクス解法によって取得した多様な複数解」に相当します。
複数の結果を利用した最適化モデルの「調整」のイメージ図
この最適化計算の特色を利用して、複数の最適解をもとに生成AIが最適化モデルの「調整」を提案する機能をAIエージェント内に組み込んでいます。
結果として、シフト修正の精度が大きく向上することが確認できました。
終わりに
今回、生成AIと数理最適化技術を組み合わせた事例として、JRシステム様と共同で構築した自動作成後のシフトを調整するAIエージェントをご紹介しました。
これまで数理最適化技術を用いるだけでは解決できなかった課題も、発展著しい生成AIと共に活用することで、解決できることがあるかもしれません。
当社では、本記事で紹介した課題以外でも、数理最適化と生成AIを用いたソリューションのご提供を行っています。
もしご興味がありましたら、株式会社NTTデータ数理システムまでお問い合わせください。