データサイエンスで計画業務を自動化数理最適化
DX開発
数理最適化をオペレーションマネジメント分析から
モダンテクノロジー構築までアジャイルに提供。

数理最適化とは

データ活用における
意思決定のための計画策定手法

数理最適化は、オペレーションズ・リサーチの1種であり、様々なデータから数学的・統計的モデルを利用して最も効率的になるような意思決定・問題解決を行う手段です。
最適化とは、目標とする結果と制約をふまえて、可能性のある一連のオプションから問題に対する最適な解を見つけるプロセスです。
産業や学術などで幅広い分野における多くの重要な現実問題が数理最適化として定式化できるものの、これまでは膨大な計算量や高額なライセンス、職人的な専門知識が必要となり、一般企業が用いるにはハードルが高いものでした。
近年では、数理最適化アルゴリズム(汎用ソルバー)の進歩が、量子コンピューティングを代表とする計算機の性能向上と相まって、以前では計算困難であった大規模・複雑な最適化問題が扱えるようになりました。また、無料で利用できるツールも公開され、短いプログラムコードで実装が可能になった事によってDXへの活用がしやすくなり注目を浴びています。


pixta_24802021_S.jpg

数理最適化と機械学習との違い

機械学習は、与えられたデータの特徴量を学習したモデルをもとに、未知のものの予測を行います。 予測に関しては様々な外部要因があり、精度を一定以上に上げづらい特徴があります。
一方、数理最適化は、与えられた既知の条件をもとに、最もよい結果(最大値/最小値)を選択します。 既知のデータを根拠としてロジカルに最適解を導く為、精度の高い算出が可能になります。

計画業務には、制約条件がついて回ります。
例えば販売計画において、「高単価だが売りづらい商品と低単価で売りやすい商品が存在する」「高単価商材は顧客を選ぶ」「高単価商材を販売するには専門知識人材が必要である」「専門知識人材は人数が少なくコストも高い」などがあり、これらの制約条件の中で利益を最大化する組み合わせは何か?という問題を解決する場合に数理最適化が必要になります。

pixta_76470215_S.jpg

数理最適化のユースケース

最短経路を計画する
ルート最適化

最適化の最も多い利用用途の1つは、最短経路ルーティングです。
現在、カーボンニュートラルを目的にエネルギーの効率化が叫ばれており、自動車や配送会社はいかに効率的なルートを辿るかを求められています。
配送ルーティングでは、一連の場所を訪れる車両のフリートに最適なルートを見つけ、総距離または総コストが最小のルートを提示します。
これらのルーティング問題は、 巡回セールスマン問題(TSP)と呼ばれており、さまざまな場所の顧客を訪問して出発点に戻る必要がある営業担当者の最短ルートを見つける事から名づけられています。
応用例としては、MaaSのルートスケジュール、フィールドマネジメントの巡回業務効率化や複数観光スポットを巡る最短ルート案内などがあります。
類似の汎用サービスとしては、Google Maps PlatformGoogle Distance Matrix APIがありますが、これは日本の渋滞や道路状況の制約が含まれておりません。

pixta_84497120_S.jpg

積み込み最適化

最適化の有名な利用用途の1つは、積み込み最適化です。
特定サイズのアイテムセットを固定容量のコンテナーにパックする最良の方法を見つけ、配送トラックに積み荷を効率的にデリバリーします。積載容量(重量や体積)が制約条件となり、すべてのアイテムを梱包することができない場合、コンテナに収まる最大サイズや価格とアイテムの組み合わせを見つけることができます。

パッキング問題には多くの種類があります。最も重要な2つは、 ナップサック問題とビンパッキングです。 ナップサック問題では、単一のコンテナー(ナップサック)に、パックされたアイテムの合計サイズが最大化する事を目標とします。 ビンパッキング問題は、 同じ容量の複数コンテナー(ビンと呼ばれる)が存在する場合、すべてのアイテムを保持するビンの最小数を見つけることが目標となります。

pixta_64425590_S.jpg

従業員シフト/アサイン
スケジューリング最適化

最適化の有名な利用用途の1つは、スケジューリング最適化です。 労働人口が減少している昨今、従業員のシフトを作成する、従業員と仕事をマッチングする、運転士のシフトと運行スケジュールを組み合わせた運行計画を立てると言った業務は、数理最適化による自動化の対象となります。 大規模な運用を管理する企業は、特定の時間に人とリソースをタスクに割り当てる必要があり、スケジューリングに多くの時間を取られることが解決すべき課題の1つとなります。
複雑な一連の制約と人員配置要件に従って、複数のシフトで従業員をスケジュールする他、限られたマシンセットで多くのタスクが実行できる製造プロセスをスケジュールします。各マシンは、一度に1つのタスクしか実行できません。 OR-Toolsは、このような問題を解決するための強力な手法を提供します。

Shift_visual_image_600_358S.png

エネルギー最適化

発電には多様な設備(火力、水力、風力、ソーラー、天然ガス)やエネルギー(電力、熱、水素など)が存在し、多様な制約条件(契約電力、CO2排出量、設備運転時間帯など)が存在します。
発電効率は悪いが環境にエコなエネルギーもあれば、低コストで済むエネルギー設備もあり、 どの組み合わせが最もコスト効率がよく、かつ環境に優しい方法なのか人手で計算するには相当の労力がかかります。
数理最適化を行う事で各設備のイニシャルコスト、メンテナンスコスト、オペレーションコストを目的関数とし、最も低コストかつピークタイムを乗り切れ、環境にも優しいリソースバランスの取れた最適化アルゴリズムを構築する事ができます。

pixta_79621025_S.jpg

栄養素最適化

pixta_86921801_S.jpg

運転士アサイン最適化

pixta_82748439_S.jpg

配車計画最適化

pixta_86530305_S.jpg

試合日程スケジューリング

kadou_parking_image_200_133S.jpg

棚割り自動最適化

pixta_80167115_S.jpg

鉄道ダイヤ作成

pixta_86699665_S.jpg

ダイナミックプライシング

dynamic_pricing_500S.jpg

生産計画最適化

pixta_31700611_S.jpg

当社が提供できること

Google OR Tools × Python開発で
軽量な数理最適化

Google OR Toolsは、Googleが開発した組み合わせ最適化のためのオープンソースソフトウェアです。車両のルーティング、ネットワークフロー、整数および線形計画法、ビンパッキング、アサインメントなど制約プログラミングにおける最適化問題を高速に解決する事ができます。
C++、Python、Java、C#と言った一般的なプログラム言語に対応し、国際的な制約プログラミングコンテスト「MiniZinc Challenge」で金メダルを獲得しています。
Pythonは短いコードの記述量であり、Webアプリやスクレイピング・データ処理に優れているだけでなく、機械学習ライブラリ「Scikit-Learn」やマップを用いた可視化ができる「folium」などライブラリが充実しています。
当社では、この技術の組み合わせが数理最適化の低コスト化、開発工数の圧縮、アジリティの向上、スモールスタートに効果があると考え、推進しております。

google_or_tools_logoimage650_379.png

数理最適化×機械学習

当社では、データ活用技術として機械学習プログラムを得意としてます。
数理最適化のプロジェクトでは様々な制約条件が発生しますが、全ての制約条件を最初から認識できている事も多くありません。
そこでSyncLect Forecastを中心とした機械学習予測を行う事で、未知の制約条件を補完し、改善を進めやすくします。
また、数理最適化プロジェクトにおいて、組み合わせパターンが指数関数的に膨大となり、結果を出すまで何年かかるか判らないという課題も多くありますが、機械学習のクラスタリング(類似度によるデータのグループ分け)等を用いてデータを分割し、さらに計算量を削減して処理速度を向上させる事で、低マシンスペックでも稼働する軽量化ソリューションも提供しています。

gaudi_CMS_500S.jpg

数理最適化 × GUI構築
WebUIダッシュボード

当社は、Reactフロントエンド開発を中心としたWebUI構築を得意とする会社です。
SyncLectが提供する管理画面コンポーネントを活用する事で、数理最適化用ダッシュボードを高速に提供する事ができます。
また、Streamlitを活用したプロトタイプを瞬時に投入し、数理最適化プロジェクトのステークホルダーに対してすぐに可視化を行い、アジャイルに制約条件を追加改善していく事も可能です。
シフト最適化デモも用意していますので、ご興味のある方はお問合せください。

OR_visual_image438_350.png

数理最適化×クラウドネイティブ開発

当社は、Azureを中心としたクラウドネイティブ開発が得意な会社です。
ORToolsやPythonを使った数理最適化プログラムが一定の環境でしか動かないのは、コストパフォーマンスが悪いためであり、拡張性を考慮したクラウドネイティブ型のシステムアーキテクチャに対応する事で運用コストの最適化を図れます。
クラウドネイティブに対応する事で、Webやスマートフォンへのマルチプラットフォーム化を実現したり、既存システムと連携する数理最適化APIにすることができます。Webアプリケーションサーバーをサーバレスにしてスケーリング対応を行ったり、細やかな改善に対応するDevOpsやパフォーマンス監視をすぐに利用したりと、求められるビジネスシーンと運用シーンへすぐに対応する事ができます。

クラウドネイティブ開発を詳しく見る

Cloud_Business_image500S.jpg

数理最適化 × ワークフロー自動化

当社は、デジタルプロセスオートメーション(DPA)を得意とした会社です。

意思決定に使える最適化されたデータはその後どう利用するのでしょうか。人間が確認して意思決定し、人間がアクションを起こすのでしょうか。最適化の結果となるデータは、ワークフロー自動化へと連携がされ、ヒトを介する事もなく、自動表示、自動発注、自動通知を行う事となります。
当社ではPower AutomateやLogic Appを利用したワークフローの自動化、UIPathを利用したRPA、イベント駆動型メッセージングサービスを組み合わせたワークフロー自動化を実現します。

Power Automate開発を詳しく見る

PowerAutomate_desktop_image650_414.png