【前編】数理最適化の新時代到来
~最適化→予測でDXは加速する~

リードデータサイエンティストとして主に数理最適化の仕事をしている魚井英生です。

本記事では、数理最適化の現在の姿、タイトルにもある「最適化→予測」の真意について、お話ししたいと思います。

数理最適化とは?

数理最適化は、最適なアクションを決定するための方法論です。

近年、注目を集めてきた機械学習とは大きく異なります。機械学習は主に未来の予測値を算出するのに使われる方法ですが、数理最適化はその予測値を使って、シミュレーションを行い、意思決定を自動化します。すごくざっくり言うと、明日の降水確率を算出するのが機械学習で、傘を持って行くかどうかを決めるのが数理最適化です。

「明日、60%の確率で雨が降ります」だけでは、その後どうすれば良いかはまだ人の判断が残りますが、数理最適化は「傘を持って歩いた場合」「車で移動した場合」のそれぞれの場合で例えば1日の満足度を計算したうえで、「車で移動すべき」という判断をします。

このように、数理最適化は機械学習プロジェクト、およびビジネスの意思決定を加速させる非常に強力なツールです。

関連記事:データをアクションにつなげる技術「数理最適化」とは?

ビジネスにおける応用例としては、例えば下記が挙げられます。

  • 倉庫から顧客に荷物を届けるための、トラックの配送計画
  • Web、ポータルサイトを統合した年間の広告予算の配分計画
  • アミューズメント施設におけるチケットの発券計画
  • 顧客の注文を満たすための、工場ラインの生産と輸送計画
  • 必要な製品の性能を満たすために、無駄な実験を省く、効率的な実験計画
  • 需要予測を元に、人員の配置を組むシフト計画
  • 需要予測を元に、発注をかけた場合の、在庫数の削減計画
  • 需要予測を元に、売上を最大化するための、商品の価格計画
  • 優良顧客数を最大化するための、新規顧客の獲得計画
トラックの配送計画など、数理最適化技術のビジネス応用例は多い。

上記でもまだまだ抽象度高く、トラックの配送計画1つをとっても、バリエーションは多くあります。顧客に時間指定がある場合や、途中で荷物を積み込む場合、臨時で配車する車両の考慮など、顧客の業務は様々です。配送ソリューションパッケージのようなパッケージ化されたサービスは昔からありましたが、そういったパッケージで世の中の全ての業務課題を解決することは私の経験上、不可能だと思います。

 こういった点がデータサイエンティストの腕の見せ所で、顧客の業務課題をオーダーメイドで数理最適化問題に落とし込み、実装する必要があります。

上に挙げた例は全て最後に「計画」という文言がついていることに注目してほしいと思います。数理最適化は「計画作成業務の自動化」といって差し支えありません。未来の意思決定をするということは、計画を立てるということです。そこで、ただ闇雲に計画を立てるのではなく、「目的」と「制約」を考慮した計画を立てます。「目的」とは、配送の例で言えば、「ドライバーの総稼働時間を減らしたい」、予算配分の例で言えば、「コンバージョン数を増やしたい」等です。複数の目的を設定することもできます。

 次に制約とは、「顧客の時間指定範囲に訪問する」「使える予算は最大で1000万円まで」といった業務上の条件です。こういった制約条件を満たした中で、目的が最も良くなるように計画を立てます。目的とはまさに企業のKPIに該当します、KPIを改善したいという課題は世にあふれているため、数理最適化の適用範囲は世にあふれていると言えます。

 これまでは、配送計画、在庫計画、実験計画といったどちらかというと現場のオペレーションの業務改善に使われて来ましたが、これからは経営における四半期や年間の予算計画、各部署の妥当な売上目標値の算出計画など、より上位層の経営計画にも使われていくと思われます。

 ここで少し、技術的な視点で数理最適化を説明させてください。

 よく数理最適化と機械学習は混同して理解されており、「説明変数と目的変数は何か?」と聞かれることがあります。数理最適化においては、説明変数、目的変数といったものはありません。その代わりとして、上で述べた「目的(関数)」と「制約(条件)」があります。これらを数式で表現し、それらをコンピューター上で数値的に解くことで、計画表が自動で作成されます。

 目的関数と制約条件の数に限りはありませんが、優先度の高いものから入れていくことが良いです。配送の例ではドライバーの配送時間の他に、トラックの総台数も考えられ、それらに優先順位をつけて目的関数として入力します。

 また、制約条件にはある店舗には、10時~12時の間にしか訪問できないというようなものは、不等式を用いて「10<x<12」のように入力します。

 その他にも、トラックの積載量や店舗の訪問順序等、様々な条件が考えられ、それらを全て数式で表現します。こうした数多くの制約条件を満たしつつ、目的関数を最小化するという複雑な方程式を解いた結果、あるトラックは店舗Aに9時30分、店舗Bに9時45分、店舗Cに10時05分…という計画ができあがることになります。

「アルゴリズム職人」に頼る必要がない、数理最適化の新時代の到来。

数理最適化というのは、実は機械学習が流行するはるか前から存在し、業務適用された事例もありました。しかし、機械学習ほど注目されなかった理由には、数理最適化の「高いハードル」がありました。

 1つ目は、従来のSIにおけるウォーターフォール開発といった「要件定義フェーズで要件を洗い出し、その後実装フェーズに移る」といった推進方法と非常に相性が悪かったことです。まず制約条件を、❝事前❞に❝全て❞洗い出すということが、なかなか難しいのです。システム企画の担当の方は現場のオペレーションにそこまで詳しくはないといった事情もあり得ます。次章でも述べますが、数理最適化は計画を出力するため、現場の方の感覚と合致するかというフィードバックが非常に重要です。そのフィードバックの過程で、抜け落ちていた制約条件や目的を、お客様自身が発見することがあります。そういった、はじめから完成品を定義するのではなく、インタラクティブに開発し、完成系をお客様と議論していく必要があるのです。

 2つ目は、ここが最も大きいとは思いますが、目的関数と制約式を方程式として表現できたとしてもその「方程式を解く」ことがいわゆる「アルゴリズム職人」にしかできませんでした。このアルゴリズム職人になるためのハードルが非常に高かったのです。

 加えてその職人が作成するプログラムコードは膨大で、それを周囲の人はなかなか理解できませんでした。また、アルゴリズムにバグがあるかどうかも、誰も判別できません。さらにアルゴリズム職人も「配送計画」の方程式には強いが、「予算計画」の方程式には弱いといった、課題毎にアルゴリズム職人が必要でした。

そういった汎用的なアルゴリズム職人がいないこと、いたとしても周囲が理解できないという理由から、数理最適化を実務で適用し運用していくことは非常に難しいものがありました。

 ところがここ数年で状況は大きく変わりました。「汎用ソルバー」の劇的な進化です。

 汎用ソルバーとは配送や予算といった、どんな問題にでも対応できるソフトウェア(ライブラリ)です。汎用ソルバー自体は以前から存在していましたが、現実のデータ量に対応できるものになかなか至っていませんでした。

 それが昨今、改善が進み、大規模な配送計画や予算計画でも、アルゴリズム部分は、わずか数百行程度のプログラムコードで完成し、かつ短い時間で解けるようになりました。

 汎用ソルバーを用いると、上に述べた顧客のフィードバックで新しい制約条件が見つかった際の対応も非常に柔軟に対応できます。これにより、インタラクティブに開発し、完成に近づけていく、いわゆるアジャイル開発法と非常に相性の良いものになりました。

 汎用ソルバーによって(アルゴリズム職人に、必ずしも頼る必要ではなくなりましたが)データサイエンティストの仕事がなくなったわけではありません。むしろデータサイエンティストの職務の幅が劇的に広がった(広げることができた)と感じています。

 データサイエンティストは汎用ソルバーの使い方を習得するだけで良いのです。わずか1,2ヶ月程度の学習期間があれば、アルゴリズム職人が出していた精度と同等の解の精度を汎用ソルバーで出すことができます。

 これにより、データサイエンティストは、よりお客様と会話して、新しい最適化問題を創り出すといった、よりビジネス寄りの視点や、使いやすいUIを開発して、お客様にいかに使ってもらうかを考えるといったシステム開発の視点も持てるようになり、よりクリエイティブな職務にシフトすることが可能になりました。

 「データサイエンティストは、1日中パソコンに向かって難しいアルゴリズムを書いている人」というイメージを持たれることは以前はありましたが、弊社で汎用ソルバーでプロジェクトを推進しているデータサイエンティストに関しましては、上で述べたような広範囲な視点で仕事ができており、職務の壁を取り払い、活躍している者が多い印象を受けます。

 これは私が大規模な配送計画作成のプロジェクトを担当していたときの話です。

 以前はアルゴリズム作成に数か月かかっていたものが、汎用ソルバーによりわずか数日で完成し、アルゴリズム部分のコードはわずか200行程度で完結しました。(汎用ソルバーがなければ、数千行の規模になると思われます。さらにチェックの工数も考えると、想像するだけで苦しさを感じます。)

 汎用ソルバーによって、データベースの設計や、アルゴリズムへのデータの受け渡し、お客様が見やすい帳票の出力、外部の地図APIとの連携、現場への適用、UIの設計といった、より広範囲な仕事に、データサイエンティスト自身が主軸となって、コンサルタントやエンジニアを巻き込み、進めることができました。開発スピードが一気に加速し、お客様の満足度も高まったと感じます。

 「数理最適化の新時代」が到来したといっても過言ではありません。もちろん全ての問題が簡単に解けるようになったとは言えませんが、ハードルは劇的に下がったことは間違いありません。

 今後もビジネス適用の範囲は広がっていくと感じます。  後編では、汎用ソルバーを利用することを前提に、ビジネスで数理最適化を実施するための手順や、成功のためのポイントについて説明します。

WRITER執筆者プロフィール

株式会社ブレインパッド

アナリティクス本部
アナリティクスサービス部
魚井 英生

物流、マーケティング業界に対して、顧客の意思決定を数理計画法を用いて取り組む。課題解決に向けたコンサルティングから、アプリケーション開発まで、一連の流れを支援する。

MAIL MAGAZINEメールマガジン

イベントやセミナーの開催予定、
最新特集記事の情報をお届けいたします。

TREND人気ワード・タグ

BEST PRACTICEベストプラクティス

ブレインパッド社員が考えることから探す

業態・業種から探す

課題から探す

テクノロジーから探す

製品・サービスから探す

データ活用のプロが考える、エンジニアリング視点の記事や、新規ビジネスの創出に関する記事まで幅広い特集を配信!

業界の最先端をいく、100名を超える当社に在籍のAIおよびデータ活用スペシャリストが原稿を執筆!

ベストなDXへの入り口が見つかるメディア

DOORS

BrainPad

MAIL MAGAZINEメールマガジン

登録が完了しました。

メールマガジンのご登録ありがとうございます。
最新特集記事の情報をお届けしますので、
お楽しみにお待ちください。

MAIL MAGAZINEメールマガジン

登録エラーです。