「– 製品・サービス」カテゴリーアーカイブ

展示会への出展情報

8月2日、3日に大阪国際会議場で開催された、富士通フォーラム2017に出展してきました。
http://forum.fujitsu.com/2017/tokyo/

 

今回の展示会では、ecoLLabo WFM(要員配置システム)の紹介をしています。
本システムを簡単に説明すると、最適なシフト表を誰でも簡単に立案できるというものです。
※詳細は以下のURLを参照ください。
https://www.chuo-computer.co.jp/solution/1002.html

 

結果として、本展示会では、2日で30名の方と名刺交換をさせて頂きました。
当社ブースにご訪問頂いた方、大変ありがとうございました。

 

     

 

連載コラム
『数理最適化』

最終回 非線形問題を解く

2017.5.8

最終回となる今回は、第5回にてご紹介した非線形問題を数理最適ソルバを用いて解いてみたいと思います。
⇒第5回の記事はこちら

非線形問題の線形緩和

【実行可能領域を示すグラフ】
実行可能領域を示すグラフ
今回の非線形計画問題では、以下のような制約条件がありました。

この制約のうち、非線形の制約を線形緩和してみます。
線形緩和とは、曲線を“直線のあつまり”として疑似的に捉えることです。
以下のように区間に区切って直線化していくことで、元の曲線と同じような“直線の集まり”となります。
このように線形緩和した上で、数理最適ソルバを用いて解を求めてみると、以下のようになりました。

ユーカリX:103.4g  
ユーカリY:331.0g

上記のときに、
・摂取可能なミネラル:206.9mg
・ユーカリの費用: 60,110円
・誤差0.02%

ここで元の制約条件を振り返ってみましょう。

ユーカリを購入するための費用は60,000円と決まっていました。今回の解では費用が60,110円となっており、60,000円以上に上振れしてしまうことを示しています。

毒素や食物繊維の摂取量であれば少しぐらいの上振れは許容できますが、費用が予算よりも超過してしまうと動物園の経営に影響が出るかもしれません。

費用が上振れしないように線形緩和方法を見直してみましょう。
曲線上であれば費用はぴったり60,000円となりますが、凸の内側では60,000円以上となり、凸の外側では60,000円以下となることが分かります。
線形緩和した直線は凸の内側に入っているので、凸の外側にするために直線全体をマイナス方向に並行移動します。

上図の通り、線形緩和した直線を凸の外側へ移動することができました。
【実行可能領域を示すグラフ:線形緩和見直し後】

修正した形で、改めて数理最適ソルバを用いて解を求めてみると、結果は以下の通りです。

ユーカリX:97.3g  
ユーカリY:335.1g

上記のときに、
・摂取可能なミネラル:206.5mg
・ユーカリの費用: 59,149円
・誤差:-0.19%

予算を厳守しながら、コアラにとって最適なユーカリX、Yの食べ合わせバランスを得ることができました。


実務の場面では、単に線形緩和するだけでは満足な結果は得られず、このように制約条件の背景も踏まえて試行錯誤する場面もあるかと思います。
数理最適ソルバを利用する技術だけではなく、適用する事象への理解が重要であることが分かりました。

さいごに

全6回にわたり、数理最適化に関してご紹介いたしました。
とっつきにくい分野かもしれませんが、このコラムにて興味を持って頂ければ幸いです。

弊社は
 ・世界最速の数理最適ソルバを利用した製品(ecoLLabo WFM
 ・様々な業務のシステム化をお手伝いしてきた経験
の両方を兼ね備えておりますので、必ずや、業務最適化を必要とするお客さまのお役に立てると考えております。

良きパートナーとして、弊社をご指名頂ければ幸いです。

この連載のバックナンバーはこちら

連載コラム
『数理最適化』

第5回 数理最適化とその歴史②

2017.1.12

第4回に引き続き、「厳密解法である数理最適化はどのようにして解を出すのか?」という点に関して、数学者達の発案の歴史に焦点を当てながら「各手法の特徴」を紹介したいと思います。

【ふりかえり】最適化問題の種類と解法

前回、最適化問題はいくつかの種類があり、それに対する解法が存在することを説明しました。

線形計画問題  ←  線形計画法
(Linear Programming, LP)
整数計画問題  ←  整数計画法
(Integer Programming, IP)
非線形計画問題  ←  非線形計画法
(Nonlinear Programming, NLP)

今回は“整数計画問題”と“非線形計画問題”について紹介します。

整数計画問題(Integer Programming Problem)

整数計画問題は制約条件や目的関数に整数を扱えるようにした問題です。
最適化する対象が人や物など、整数でないと意味がない場合、整数計画問題として定義します。
線形計画問題に比べて整数計画問題の方がより現実に近い問題を取り扱うことができます。第2回で取りあげた「ナップザック問題」などの“組み合わせ最適化問題”などがこれに当てはまります。

線形計画法のように高速な解法が存在せず、多くの計算時間が必要となるため、線形計画問題に比べて難しい問題となります。
1957年にライフ・ゴモリーによって発案された切除平面法という解法が整数計画法の始まりとされていますが、現在では、整数計画問題を解くための一般的な方法として分枝限定法(Branch and Bound)が用いられています。

分枝限定法(Branch and Bound)

1960年に英国のランドとドイグが発案した手法です。
下の図のように元の問題を子問題へ再帰的に分割して解いていく方法です。子問題を線形計画法で解き、答えが整数でない場合、さらに子問題に分割していきます。
子問題へ分割したとき、明らかに最適解が含まれていないことが分かった場合、その子問題は解く必要がありませんので、その子問題から先の計算を省略することができます。(限定操作)
このようにして計算を省略しながらすべての領域を探索し終えたとき最適解が得られます。

数理最適ソルバの登場

単体法(当連載第4回でご紹介しました)と分枝限定法が発案された後に、最適化問題を解くための汎用ソフトウェアである数理最適ソルバが登場します。数理最適ソルバは数理計画法と共に進歩し、様々なソフトウェアが競い合うように発展してきました。
現在では、数理最適化を行う=数理最適ソルバを利用するといった形式が一般的となっています。

数理最適ソルバには商用とフリーのソフトウェアが存在しており、代表的なものとして、

商用 Gurobi Optimizer(製品情報はこちら
非商用 lp_solve(詳細はこちら
CBC(詳細はこちら
SCIP(詳細はこちら

などがあります。 (※各リンクは外部サイトへ遷移します。)

商用ソルバは非商用ソルバに比べて高速に動作し、より多くの問題を解くことができます。

非線形計画問題(Nonlinear Programming Problem)

線形計画問題や整数計画問題はあくまで一次式のみでしたが、非線形計画問題は制約条件と目的関数に非線形式(一次式以外)が含まれている問題のことを指します。
現在でも非常に限られた状況でなければ現実的な時間で解くことが難しい問題ですが、定式化を工夫することにより整数計画問題として定義できる問題は解くことができるようになります。また、非線形の制約を緩和して解くこともできます。

第4回で取りあげた例題に新たな制約条件を加えて、非線形計画問題へ変えてみましょう。元の問題は第4回のコラムにてご確認ください。(→第4回へ


新たな制約条件

  • コアラの餌であるユーカリを購入する予算は60,000円と決まっています。
  • ユーカリAは単価の定価が300円ですが、購入量が増えれば増えるほど割引率が大きくなります。グラムあたりの値引きが0.375円で設定されているので、ユーカリAの単価は以下のように表すことができます。(xはユーカリAの購入量)
  • ユーカリBは単価が100円で割引はありません。



新たな制約条件である予算に収まり、かつ、当初の目的であるミネラル摂取量を最大化するにはどうすればいいでしょうか。前回同様、ユーカリAの購入量をx軸、ユーカリBの購入量をy軸として制約条件を数式で表し、グラフで実行可能領域を示したいと思います。

予算の制約条件はそれぞれ単価と購入量をかけて、以下のように表します。

これを整理すると以下のように二次式となり、新たな制約条件によって非線形計画問題となったことが分かります。

前回のグラフに今回の制約条件を追加して実行可能領域(横線で塗りつぶされた領域)を示すとこのようになります。

グラフで実行可能領域を示すことはできましたが、このような非線形の制約を含む問題は“非線形に特化した数理最適ソルバ”でなければ解くことができません。
さらに、非線形に特化した数理最適ソルバであればどんな非線形計画問題でも解ける訳ではなく、様々な制限が出てくるため、なるべく線形緩和して解くというのが現在では一般的です。


次回、制約を緩和して実際に解を求めるところまでの具体的な流れをご紹介いたします。

第4~5話のまとめ

  • 線形計画問題は高速に解を求めることができる
  • 整数計画問題は現実的な問題を定義できるが、計算時間が必要となる
  • 数理最適化は数理最適ソルバというソフトウェアを利用して解く
この連載のバックナンバーはこちら

連載コラム
『数理最適化』

第4回 数理最適化とその歴史①

2016.12.5

第3回では、「最適化の手法の種類と特徴」をご紹介しました。
今回より、「厳密解法である数理最適化はどのようにして解を出すのか?」という点に関して、数学者達の発案の歴史に焦点を当てながら「各手法の特徴」を紹介したいと思います。

最適化問題の種類と解法

最適化問題はいくつかの種類があり、それに対する解法が存在します。
はじめに線形計画法が発案され、それを応用して整数計画法と非線形計画法へと発展しました。

線形計画問題  ←  線形計画法
(Linear Programming, LP)
整数計画問題  ←  整数計画法
(Integer Programming, IP)
非線形計画問題  ←  非線形計画法
(Nonlinear Programming, NLP)

今回は“線形計画問題”について紹介します。

線形計画問題(Linear Programming Problem)

“線形計画問題”は一次式や一次不等式で表される制約条件の中で、一次式の目的関数を最大化または最小化する問題です。イメージしやすいように例題をご用意しました。


例題

wfm_4_1CCC動物園ではコアラを飼育していますが、近頃ぐうたらし過ぎて太ってしまいました。そこで、ダイエットのために糖質制限をかけて餌を与えることにします。主食のユーカリには糖質の他にも食物繊維、ミネラル、毒素が含まれていますが、ミネラル以外のものは取りすぎるとよくないので、こちらも摂取制限をかけます。
成分構成の異なる二つのユーカリをうまく食べ合わせて、なるべく多くのミネラルを摂取するにはどうすればいいでしょうか。

ユーカリ1gあたりの成分表(成分の単位:mg)
wfm_4_2


今回の目的はミネラル摂取量の最大化でした。
ユーカリAの質量をx、ユーカリBの質量をyとすると、
wfm_4_3
これを最大化することになります。
次に、今回の制約条件を一次不等式で表してみましょう。
wfm_4_4
これらの条件式から目的関数を求め、グラフ化すると以下の図のようになります。
横線で塗りつぶされた領域が制約条件を満たす範囲(実行可能領域)となり、この中から最も良い解を探索することになります。
wfm_4_5
最適化問題の中では最も簡単な問題であり、高速に解を得られる解法が存在します。
その中でも代表的なものとして、以下の2つの方法があります。

・単体法 (Simplex Method)
・内点法 (Internal Point Method)

数理最適ソルバでは単体法と内点法を組み合わせて最適解を導出しています。

単体法(Simplex Method)

1947年に米国の応用数学者ジョージ・ダンツィクが発案した手法です。
制約条件をすべて満たす実行可能解から探索を開始し、暫定解が改善する隣接の頂点への移動を繰り返す方法です。
下の図のように実行可能解の領域を表す多面体の外周を回りながら最適解にたどり着くイメージです。
小さな問題には内点法より高速であることが多いと言われています。
wfm_4_6

内点法(Internal Point Method)

1984年にインドの応用数学者ナレンドラ・カーマーカーが発案した手法です。
単体法と同様に実行可能解である初期内点から探索を開始し、暫定解が改善する内点への移動を繰り返す方法です。
wfm_4_7
内点の計算が必要なため、解の更新は単体法よりも時間が掛かりますが、大きな問題では、単体法より高速であることが多いと言われています。

単体法と内点法の比較

例えば下の図のように外周がギザギザとなっている実行可能領域であれば、外側を進む単体法では解の更新が多数発生するため時間がかかってしまうので、内側を進む内点法の方が有利となります。
wfm_4_8

例題の答え

さて、コアラにはユーカリをそれぞれ何gずつ与えれば良いのでしょうか。
答えは下図の黄色点部分となり、
  ユーカリA:240g
  ユーカリB:240g
を与えたときにミネラルの摂取が最大値(216mg)となります。
wfm_4_9

次回は“整数計画問題”と“非線形計画問題”の特徴をご紹介します。
この連載のバックナンバーはこちら

連載コラム
『数理最適化』

第3回 最適化手法

2016.11.14

第1~2回では、「数理最適化とはどのようなものなのか」をご紹介しました。
今回は、最適化における手法の種類と特徴についてご紹介したいと思います。

最適化問題を解くための2つの方法

第2回の最後にご説明しましたが、最適化問題には2つの解法があります。

①厳密な最適解を得る“厳密解法”
②現実的な時間でなるべく良い解を効率よく得る“近似解法”

それぞれの解法は「どのような特徴を持っているのか」「どのようなアプローチがあるのか」について紹介していきます。

厳密解法について

wfm3-1

厳密解法は最適化問題に対する最も良い解を求める手法です。
厳密解法で求められた解は、数学的に最適であると証明されているということになります。
しかし、最適解を求めるためには多くの計算時間が必要となるため、大きすぎる問題は扱えない場合があります。

近似解法について

wfm3-2

近似解法は、現実的な時間でなるべく良い解を効率よく得る手法です。
厳密解法と違い、求めた解は最適性を保証されませんが、高速に近似解を求めることができます。

厳密解法と近似解法の使い分け

wfm3-3

実際に最適化問題を解く場合、厳密解法と近似解法のどちらを適用すればよいのでしょうか?
多くの場合、まずは厳密解法を適用してみます。
問題の難しさや規模によって現実的な時間で解けない場合、近似解法を適用することになります。

これまでは近似解法でないと解けない問題がほとんどでした。
しかし、数理最適ソルバとコンピュータの進歩により、現実的な問題にも厳密解法が適用できるようになっており、近年注目されてきています。
各々の解法に関する手法を体系的にまとめると、以下のようになります。

wfm3-4wfm3-5


次回、この連載のテーマである数理最適化について、手法の特徴に踏み込んだ内容を紹介したいと思います。
この連載のバックナンバーはこちら

連載コラム『数理最適化』

第2回 数理最適化とは②

2016.10.24

第1回に引き続き、「数理最適化とはどういったものなのか?」というテーマでご紹介したいと思います。
最適化の具体的なイメージを理解していただくため、簡単な問題を一緒に解いてみましょう。

最適化問題:ナップザック問題

あなたは野菜を袋に入れて持って帰ろうとしています。
野菜は1種類につき1個ずつあり、組み合わせて袋に入れることが出来ます。
しかし、手元にある袋には重さの制限があり、5kgまでしか入りません。
持ち帰る野菜の価値の合計を最も高くするにはどの野菜を選択すればいいのでしょうか?
wfm2_1
wfm2_2
wfm2_5

表を見ると、もっとも価値の高い野菜はかぼちゃ(500円)です。
しかし、袋にはかぼちゃ1つしか入りません。
重さ5kgという制限の中で、500円の価値を超えるような複数の野菜の組み合わせはないでしょうか。

キャベツ
(4kg:350円)
+  ナス
(1kg:100円)
=  5kg:450円
玉ねぎ
(3kg:400円)
+  ナス
(1kg:100円)
=  4kg:500円
トマト
(2kg:150円)
+  ナス
(1kg:100円)
=  3kg:250円
玉ねぎ
(3kg:400円)
+  トマト
(2kg:150円)
=  5kg:550円

wfm2_3

色々な組み合わせが考えられますが、玉ねぎとトマトを選ぶことで550円という最大の価値を得ることができました。これが最適解となります。
こういった問題は、一般的にナップザック問題と呼ばれ、代表的な最適化問題の1つです。

最適化は難解

例として挙げた問題は一目瞭然なほど簡単ですが、もし野菜の数を20種類とし、袋の容量を50kgまでとしたらどうなるでしょうか?

wfm2_4野菜の組み合わせが膨大な数となり、先ほどのように一つひとつのパターンを検証していくやり方では、人間はもちろん、コンピュータが行っても気が遠くなるほどの時間がかかってしまいます。(野菜の組み合わせはなんと約100万(2^20)通り!)
実際にはさらに多くの組み合わせや制約条件の中で解を求める事になるので、非常に難解な問題だと言えます。

この問題を解くには?

上記のような、最適化問題を解くための方法は2つあります。

①厳密な最適解を得る“厳密解法”
②現実的な時間でなるべく良い解を効率よく得る“近似解法”

今回の連載テーマである数理最適化は厳密解法に分類されます。

まとめ

第1~2回でご紹介した内容をまとめます。

  • 数理最適化とは数学的手法で最適な解を導出すること
  • 数理最適ソルバとコンピュータの進歩により、大きな問題も解けるようになってきた
  • 検証すべき組み合わせの数が膨大となるため、最適化問題は非常に難解な問題である
  • 最適化問題を解く方法は、厳密解法と近似解法の2つに分類される

次回は、最適化問題を解くための方法である、厳密解法と近似解法の特徴と相違点について紹介したいと思います。
この連載のバックナンバーはこちら

連載コラム『数理最適化』

当社ソリューションメニューの1つに要員計画パッケージecoLLabo WFMがあります。
製品の概要につきましてはecoLLabo WFMの製品詳細ページにてご覧頂きたいと思いますが、このコラムではecoLLabo WFMの核となる「数理最適化」について紹介していきたいと思います。

連載内容紹介


第1回 数理最適化とは①

2016.10.13

第1回は、「数理最適化とはどういったものなのか?」というテーマでご紹介したいと思います。

最適化について

最適化とは、“様々な制約条件を設定し、その制約を満たす選択肢の中から何らかの観点で最適なものを決定すること”です。

wfm_2
たとえば「家から会社までの道のりで、最も歩く距離が短いルートを選択する」ということも最適化に該当します。みなさんもカーナビの経路検索でよく利用されているのではないでしょうか。

最適化は今や社会にとっても欠かせない技術となっており、配送業者の効率的な物流ルートの設定、行政による公共施設の最適配置など、様々な分野で利用されてきています。

数理最適化について

数理最適化とは“実際の問題を数式で表し、数学的手法で最適な解を導出すること”を指します。
wfm_3理最適化は非常に難しい問題であり、昔から研究者たちがしのぎを削って研究してきました。その成果もあって、数理最適問題を解くことに特化した数理最適ソルバというソフトウェアが登場します。
数理最適ソルバは、計算アルゴリズムの改良によって、計算速度が年々高速化されてきました。20年で10万倍以上高速になったと言われており、これは、1日以上計算が必要な問題が、1秒以下で解けるようになったということを示しています。
また、コンピュータの処理能力も向上しているので、数理最適ソルバで解ける問題の範囲がどんどん広がってきています。

数理最適化の活用事例

数理最適化を活用した2つの事例を簡単にご紹介します。

ポートフォリオ最適化

ポートフォリオとは、資産を投資する金融商品の組み合わせを指していて、リスクは低いが得られる利益の小さい安全資産と、リスクは高いが得られる利益が大きくなる可能性のある危険資産の保有構成を表します。
リスクを低く抑え過ぎると利益が得られず、利益ばかり狙いすぎると大損する危険性が高くなるので、ちょうど良いバランスが求められます。
そこで、過去のデータを利用して数理最適化を適用し、最適なポートフォリオを導出することによって、ローリスク・ハイリターンの運用を実現しています。

シフトスケジュール最適化(WFM)

コールセンターやサービス業はシフト制を敷いているところがほとんどです。
たとえば、あるコールセンターでは下記のような傾向があるとします。
wfm_4

wfm_5このように時間帯毎に要求されるオペレーターの人数や知識が異なる場合、それを満たすように従業員のシフトを作成しなければなりません。
また、シフトに偏りが発生してしまうと、従業員のストレスになってしまいます。
この場合も、過去のデータを元に要求されるオペレータの人数や知識を予測して、公平性と労働基準を満たす人員配置計画を作成します。
こういった人員配置を最適化することを、一般的にWFM(Workforce Management)と呼びます。


「数理最適化」と聞くと難しそうに感じますが、私たちの生活の様々な場面で活用されている身近な存在に感じて頂けたのではないでしょうか。
次回は簡単な最適化問題をひとつ出題してみたいと思います。一緒に解きながらよりご理解を深めていきましょう。

連載コラム『データ分析』

第7回 データ分析実践編②(最終回)

2016.09.29

データ分析、第7回目です。今回が最終回となります。
前回に引き続き、実際に簡単なテーマを設定して分析を実践してみたいと思います。

データ分析の流れ(おさらい)

まずはデータ分析の流れのおさらいです。

data_6_1課題・問題の発生!
data_6_2まず検証に必要なデータを集める
data_6_3データを綺麗にして分析できるようにする
data_6_4集計や可視化を行い、人が理解しやすいようにする
data_6_5なんらかの示唆や仮説を得る 
data_6_6予測や分類モデル(規則)を作る
data_6_7ユーザが利用できるようシステム化する

前回同様、この流れに沿って実際のテーマに取り組んでみましょう。

データ分析実践編

テーマ2:演説内容分析

前回とはガラッと変わって文章の分析を紹介します。
「テキストマイニング」という単語が注目されているように、文章や単語を分析して何かを発見したい、といったニーズも高まっています。

data_6_1課題・問題の発生

「総理大臣の演説内容から、総理がどのような演説を行い何に注目しているのかを調べたい」といったテーマを考えたいと思います。
演説でどのような単語が多く使われているかを分析してみましょう。

data_6_2データ集め

総理の演説内容は外務省のwebページにて公開されているため、そちらのデータを利用します。

data_6_3データを綺麗にする・分析できる状態にする

今回は単語に着目したいのですが、日本語の文章は単語と単語の間に区切りがありません。
「すもももももももものうち」という文章があった場合、人間なら

すもも / も / もも / も / もも / の / うち

data_7_8と理解できますが、コンピュータに区切り目はわかりません。

そこで、コンピュータに単語の辞書を与え、言葉ごとに分割できるようにする形態素解析という技術を用います。この技術により文章を分解して単語を抽出することができます。

data_6_4集計や可視化を行う
着眼点1:頻出ワード集計

単語単位に分割できたことで、どのような単語が多く使われているか集計することができます。ためしに頻出形容詞の集計を行ってみるとこのようになりました。
data_7_9
ポジティブな形容詞が多く出現しています。「新しい」や「力強い」が多く出現することから、熱のこもった演説である様子が想像できます。

頻出1位の「ない」も、「切れ目のない」、「遜色ない」や「~しなければならない」など、力強い文章に出てくるものでした。

着眼点2:単語の関連を調査

テキストマイニングでよく利用される考え方として共起性の分析があります。これはどの単語とどの単語が同時に登場しているか、ということに着目した分析手法です。
例えば今回、「日本」という単語とセットでどんな単語が登場しているか、というようなことを調べることができます。
data_7_10
日本と“近い”単語はこのようになりました。

「は」や「、」はひとまず置いておくとして、地名や国名に特徴が見られます。
ASEANや中央アジア、中南米が話題に挙がっていることがわかります。

505638共起は以前に連載で紹介したレコメンデーションにも使われる考え方です。

data_6_5示唆や仮説

これらの結果から仮説を導き出し、さらに分析を進めていくという流れです。

  • ASEANや中南米との連携を重視している?
  • 過去の総理大臣と比較すると頻出単語が異なるかもしれない。そこから総理大臣の特徴を現す単語がわかります。
data_6_6予測や分類モデル化
data_6_7システム化

また、集計結果や仮説の検証結果を活用することも考えられます。
例えば様々な議員の演説や発言を同様に分析し、単語の出現傾向から「発言の類似度を算出するモデル」ができたすると、総理大臣との主義主張の相違を明らかにしたり、類似の意見を持つグループを分類し、政策の検討や選挙の際の参考情報として活用したりすることができるかもしれません。


このようなテキスト分析は、企業での活用も急速に進んでいます。
例えば自社商品の評判を知るには、インターネット上に書かれる批評の記事、個人のつぶやき、SNS内での話題性などに着目するというようなことも多くの企業で行われていますし、SNSや個人のブログから流行の兆しを捕らえたり、顧客情報を収集したりすることでマーケティングに活用する例などがあります。

さいごに

7回に渡ってデータ分析のご紹介をしてまいりました。
最近、脚光を浴びているデータ分析というのがどういうものなのか、雰囲気だけでも伝われば幸いです。
data_7_11データ分析は思いもよらない答えをもってくる魔法の箱ではありません。
でも、何か新しい可能性を開く有効なきっかけになります。
新しい可能性から探す価値。
そのパートナーとして弊社をご指名いただければ幸いです。


データ分析サービス紹介ページはこちら
この連載のバックナンバーはこちら