流行りのAIではない方のAIは、今すぐ経営を改善!
生成AIという言葉を見ない日はないくらいLLM(大規模言語モデル)によるAIが流行っていますが、一方、組合せ最適化というものをご存知でしょうか。人が気づかなかったより良い組み合わせを見つけ出す(探索する・計画する)という意味で、人工知能学会などではAIの一つと定義されています。
世の中は組み合わせでできている
例えば、宅配業。
荷物の容積・重量と配送する車の積載量の組み合わせ、配送先と掛かる時間の組み合わせ、ドライバーとトラックの組み合わせ等が考えられます。
例えば、看護師のシフト計画。
1ヶ月31日、7-10名で3交代は、752の枠があります。
その枠に対して、50名の看護師を割当て、重複なども許容すると、752^50、すなわち、6.46*10^143もの組み合わせができます。
これに、1日に1シフトのみ、日勤・夜勤の切り替えは10時間以上必要、日勤連勤は5日まで、夜勤は2連勤まで、想定される入院患者のケアに必要な資格保有者は必要、A子さんとC子さんは不仲なので同じ日にしない... などの「制約」がつくわけです。
ちなみに、宇宙に存在する水素原子の数は、10^80個と言われております...
(宇宙の直径を100億光年とすると、1光年=10^16m、100億光年の立方体は10^78m3。1m3に10個の水素原子があるとしたら10^79個)
つまり、宇宙に存在する水素原子の数以上の組み合わせに対して、ナースセンター長さんは、鉛筆をナメナメしながら1ヶ月の計画を立てているわけです。それだけでも凄いことです…
世の中が組み合わせで成り立っている という意味、ご理解いただけたでしょうか。
この組み合わせの中から最適なものを抽出するのに、今のPCの性能では、総当りすると1億年以上掛かってしまいます... 明日欲しい翌月のシフトスケジュールを、1億年後に出されても... ねぇ。
ということで登場するのが「人工知能」、AIなのです。
この膨大な組み合わせを総当たりで最適なものを一つ選ぶ というアプローチではなく、「今までに人間が経験した法則」に基づきより良い解を高速に導き出し、「いままで婦長さんが頑張って出していたシフト計画よりもより良い計画を出す」というアプローチになります。「人が考えもしなかったような、それでいてきちんと成り立つ組み合わせを出す」のであれば、それは人工知能と言えるのです。
この最適化ソリューションはだいぶ前から実際に使われています。例えば、Jリーグの試合日程のスケジューラー、「日程くん」。毎年優勝決定戦が最後までもつれ込む、神がかったスケジュールになっていますが、これも組合せ最適化を利用したものです。
日程くんは、NSSOL (日鉄ソリューションズ)さんにて開発されています。
社会問題の解決に必要な組合せ最適化
上記の例の他、下記のような課題に対応できるのが、組合せ最適化になります。
運送業におけるドライバーと荷物の組み合わせや、配達拠点の順序や担当するトラックの組み合わせ計画
高品質なサービスの提供で低コストな飲食業のスタッフのシフトスケジュール
適切な倉庫と在庫の計画
船舶への積荷の配置と順序を偏り無くかつ移動が少なくなるような計画
収容人数とテーマ、ルーム間の移動距離を考慮したカンファレンスのタイムテーブル
時短勤務など柔軟な働き方に対応したスタッフのシフト計画
などなど、「何かを最大化・最小化・平準化しつつ、需要と供給の良いバランスを探す」ことに使えます。つまり「いい塩梅を探す」ということです。
今の日本においてもこの組合せ最適化は非常に重要なはずですが、なぜかあまり注目を浴びていません。ICTというよりOR(Operation Research)という学問の知識が必要だからかもしれません。
過去にご提供した例を紹介します。
最適化の実例
大手の製造業のお客様。一品一様な商品が殆どで、一つの製品を作るのに様々な工程が必要なのですが、それぞれの品物によって掛けなければならない時間が異なっていました。作る順序・作業を上手く組み合わせることで製造効率を上げられないかというご相談でした。
実際に製造計画の最適化を実施してみたところ、検査工程がボトルネックになっていることが判りました。お客様も「検査機器がいつも空いている」ということは気づいていたので、工程の組み合わせを変えることで解決するのではと思われていました。
しかし、実際には「検査機器を扱える人材が足りていなかった」ので「検査機器がいつも空いていた」のです。計画の最適化をやってみるまで誰もそのことに気づかなかったのです。
その後、そのお客様では、検査機器を扱える人材を増やすべく、トレーニングを行ったそうです。そのうえで再度製造計画の最適化を実施してみたところ、機器やラインの増設をせずともバックオーダーが解消しただけでなく、増産にも耐えうる様になったとのことです。
この事例は「DX」や「AI」という言葉がメジャーになる前の事例ですが、ちょっと試してみるだけでも人がそれまで気づかなかったことを気づかせてくれたのです。これって、AIですよね?
繰り返すことの重要性
このお客様でもそうですが、「最適化」は一度作ればそれでおしまいではありません。宇宙の水素原子の数より多い組み合わせの中から100点満点のものを瞬時に取り出すことは不可能です。「昨日よりも、少しだけでも良い日々の計画を立てること」が目的ですから、需要や条件が変わればその都度改修して成長させていく必要があります。大量のデータでの機械学習を行うよりも、人の気付きをロジックに入れ込むことで日々成長(カイゼン)させて結果を出すアプローチです。
世の中に最適化製品はいくつかあります。
私が以前いた会社では、オープンソースでの最適化ソリューションを提供していました。
その製品は名前を変え、現在はTimefoldというところが提供しています。もともとはルールエンジンの一機能という扱いでしたが、ルールエンジンの機能の一部を流用して、独立したソリューションに仕立てているようです。
次回以降のnoteでTimefoldの最適化について簡単にご紹介したいと思います。