(58)【調査した分野】(Int.Cl.,DB名)
前記コスト計算部は、前記グラフ情報に基づいた最適化問題を解くことにより、前記2つのノード間のコストを計算する、請求項1から請求項4のいずれか1項に記載のサーバ装置。
【発明を実施するための形態】
【0013】
以下、本開示の実施形態について図面を参照して説明する。実施形態を説明する全図において、共通の構成要素には同一の符号を付し、繰り返しの説明を省略する。なお、以下の実施形態は、特許請求の範囲に記載された本開示の内容を不当に限定するものではない。また、実施形態に示される構成要素のすべてが、本開示の必須の構成要素であるとは限らない。
【0014】
<実施形態1>
図1は、2地点間の移動時間提供システム1の構成図である。
図1を参照して、実施形態1に係るシステムの構成について説明する。
【0015】
<移動時間提供システム1の概要>
本実施形態に係るシステムは、地図上の2地点間の移動に関する移動時間を提供するシステムである。
【0016】
近年、物流システム等で配送計画を立案する際に、地図上の2地点間の移動時間を提供するWeb API等により、ユーザは配送先までの移動時間を取得できるようになった。しかしながら、そのようなWebサービスにおいては、クライアントからの大量の問い合せがあると、APIサーバへ負荷がかかってしまい、APIの利用が制限されてしまうというという課題がある。例えば、単位時間当たりの制限回数を超えると一定時間APIの利用が禁止されたり、利用回数に応じて課金されたりするため、配送計画の立案のたびにAPIを利用することは、実用的ではない場合がある。
【0017】
そこで、本実施形態に係る移動時間提供システム1は、機械学習を用いて2地点間の移動時間を提供する。具体的には、移動時間提供システム1は、組み合わせ最適化問題に基づいて計算された2地点間の移動時間と、外部の地図情報提供装置(APIサーバ等)から取得した、実測された2地点間の移動時間との関係を学習した学習モデルを生成し、当該学習モデルに基づいて、地図上の2地点間の移動時間を提供する。
【0018】
すなわち、移動時間提供システム1では、学習モデルを生成する際にのみAPIサーバを利用するので、APIサーバの負荷を軽減させつつ、精度の高い2地点間の移動時間を提供することができる。また、ユーザは、API等のサービスの利用制限を気にすることなく、2地点間の移動時間を取得することができ、配送計画等の立案が容易に行えるようになる。
【0019】
<移動時間提供システム1の構成>
図1において、移動時間提供システム1は、ユーザ端末100と、地図情報提供装置200と、サーバ装置300と、を備え、ネットワークNWを介して通信可能に接続される。ネットワークNWは、WAN(World Area Network)、LAN(Local Area Network)等から構成される。
【0020】
図1ではユーザ端末100を1つのみ示すが、本実施形態においては、移動時間提供システム1は、ユーザ毎にそれぞれ保有する複数のユーザ端末100を含んでいる。
【0021】
地図情報提供装置200は、地図情報を提供するサーバ装置である。ここで、「地図情報」とは、地図を提示するための地理的情報であり、具体的には、店舗、住宅等を含む各種の位置の特定に必要な地図データ(例えば、緯度、経度など)である。また、地図情報提供装置200は、地図情報に基づいて、地図上の任意の2地点間のコストを提供することができる。ここで、「コスト」とは、2地点間に定義される値であって、例えば、2地点間の距離や、2地点間を移動するのに要する移動時間、消費燃料量、交通費などである。以下、本明細書では、2地点間のコストを、2地点間を移動するのに要する移動時間として説明する。2地点間の移動時間は、実測値に基づいて提供されることが好ましいが、公知の経路探索演算を実行することによって求まる近似値など実測値との誤差が保証された値に基づいて提供されてもよい。なお、地図情報提供装置200は、例えば、外部の経路探索エンジンやAPIサーバであるが、地図上の任意の2地点間の移動時間を提供する装置であれば、これに限られない。
【0022】
ユーザ端末100は、ユーザが保有する情報処理端末であり、ユーザから受け付けた地図上の2地点についての移動時間をサーバ装置300へ問い合わせる。例えば、ユーザ端末100は、地図情報提供装置200から地図情報を取得し、地図上の2地点を選択する。そして、選択した2地点間の移動時間についてサーバ装置300へ問い合わせる。
【0023】
サーバ装置300は、地図上の2地点間の移動時間を提供するサーバ装置であって、ユーザ端末100からの問い合せに対して、2地点間の移動時間を提供する。具体的には、サーバ装置300は、組み合わせ最適化問題に基づいて計算された2地点間の移動時間と、地図情報提供装置100から取得した、2地点間の実測された移動時間との関係を学習した学習モデルを生成する。そして、当該学習モデルに基づいて、地図上の2地点間の移動時間を提供する。
【0024】
以上のように、本実施形態において、サーバ装置300は、ユーザ端末100からの問い合せに応じて、2地点間の移動時間を提供する。これにより、ユーザは、API等のサービスの利用回数を気にすることなく、2地点間の移動時間を取得することができる。
【0025】
なお、本実施形態では、「サーバ」とは、1つの情報処理装置(すなわち、サーバ装置)を指す他、サーバが複数のサーバ装置によって構成される場合にはサーバ装置群(すなわち、サーバシステム)全体を指す意味である。また、本実施形態においては、サーバ装置300を一体的な構成として説明するが、サーバ装置300は、機能および/または役割に応じて分けられた複数のサーバ装置を含む構成であってもよい。例えば、サーバ装置300は、ユーザ端末100や地図情報提供装置200から取得されるデータを記憶するデータサーバと、学習モデルに基づいて2地点間の移動時間を提供するサービスサーバとを含む構成であってもよい。さらに、サーバ装置300は、移動時間の提供とともに課金を行うショップサーバを含む構成であってもよい。
【0026】
図2は、ユーザ端末100の機能構成の一例を示す機能ブロック図である。なお、本実施形態のユーザ端末100は、
図2の構成要素(各部)の一部を省略した構成としてもよい。
【0027】
ユーザ端末100は、情報処理装置であり、本実施形態においては、例えば、スマートフォン、フィーチャーフォン、タブレット型コンピュータ、ラップトップ型コンピュータ、デスクトップ型コンピュータ、スマートグラスやヘッドマウントディスプレイ等のウェアラブル端末、又は、情報処理機能を備えた多機能型テレビジョン受像機(スマートテレビ)等の多機能デバイスである。
【0028】
すなわち、ユーザ端末100は、一般的な多機能デバイスが有する各種の機能(例えば、入力機能、出力(表示)機能、情報処理機能、ネットワーク通信機能、センサ機能、通話機能、カメラ機能等)を有している。
【0029】
なお、ネットワーク通信機能は、インターネット等を介した通信機能、および/または、モバイル通信網を介した通信機能である。ユーザ端末100は、既製の多機能デバイスに所定の機能をインストールすることで実現されてもよい。本実施形態において、ユーザ端末100は、上記多機能デバイスとして用いられることに加えて、上記2地点間の移動時間を取得するために用いられる。
【0030】
ユーザ端末100は、通信部110と、入力部120と、出力部130と、記憶部140と、センサ部150と、制御部160と、を備える。
【0031】
通信部110は、ネットワークNWに接続された装置と通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ASICなどのハードウェアや、プログラムなどにより実現できる。
【0032】
入力部120は、ユーザからの入力を受け付けるためのインターフェイスであり、ユーザの入力を制御部160に送る。入力部120は、例えば、タッチパネルやボタン、マイク、コントローラである。なお、後述するセンサ部150が検知したセンシングデータをユーザからの入力としてもよい。例えば、ユーザは、タッチパネルに表示された地図情報を確認し、地図上の点をタップするなどして、地図上の2地点を指定することができる。
【0033】
出力部130は、例えば、ディスプレイ等の表示装置やスピーカなどのオーディオ出力装置であり、入力部120に対する入力に応じてユーザ端末100において生成される各種の画像や音声を表示、出力したり、ネットワークNWを介して通信部110が受信したデータに基づく各種の画像や音声を表示、出力したりする。出力部130は、人工知能搭載型スピーカ(スマートスピーカ)を含む。
【0034】
記憶部140は、コンピュータを機能させるためのプログラムや各種データを記憶するための記憶装置である。例えば、記憶部140には、地図情報提供装置200から送信された地図情報(不図示)が記憶される。なお、記憶部140は、一時的な記憶領域や、ストレージを含んでもよい。
【0035】
センサ部150は、ユーザ端末100の種々の状態を検知する各種機器である。センサ部150は、例えば、端末自体の姿勢や傾きを検知する姿勢センサ(加速度センサやジャイロセンサ)、ユーザの視線方向を検知する注視センサや、周囲の明るさを検知する光センサ、ユーザの動作を検知する赤外線センサである。また、センサ部150は、ユーザ端末100の周囲の音を収集するマイクロフォンや、ユーザ端末100の周囲の湿度を検知する湿度センサや、ユーザ端末100の所在位置における磁場を検知する地磁気センサ等であってもよい。
【0036】
また、センサ部150は、上記のセンサ機能を用いて、種々の情報を検知するようにしてもよい。例えば、センサ部150は、加速度センサの機能を用いて、ユーザ端末100を保有するユーザの歩行数を検知してもよい。また、センサ部150は、加速度センサの機能を用いて、ユーザ端末100が動作しているか、静止しているか、などを示す動作情報を一定時間ごとや、ユーザ端末100が動作したタイミングごとに検知してもよい。センサ部150は、上述のように検知したセンシングデータを制御部160へ送る。
【0037】
なお、センサ部150は、腕時計型、指輪型の端末のように、ユーザ端末100と通信可能に接続される、ユーザに装着可能な情報処理端末(いわゆるウェアラブル端末)であってもよい。
【0038】
制御部160は、ユーザ端末100において実行される各種の情報処理を実行する。制御部160は、CPU(Central Processing Unit)およびメモリを有する。ユーザ端末100においては、CPUがメモリを用いて、記憶部140に記憶された情報処理プログラムを実行することによって上記各種の情報処理が実行される。本実施形態においては、制御部160は、上記情報処理として、地図情報提供装置200から地図情報を取得する処理や、ユーザから地図上の2地点を受け付け、当該2地点間の移動時間をサーバ装置300に問い合わせる処理等を実行する。また、ユーザ端末100が多機能デバイスとして動作する場合、制御部160は、各機能を実現するための情報処理を実行する。
【0039】
図3は、実施形態1に係るサーバ装置300の機能構成の一例を示す機能ブロック図である。なお、本実施形態のサーバ装置300は、
図3の構成要素(各部)の一部を省略した構成としてもよい。
【0040】
サーバ装置300は、通信部310と、記憶部320と、制御部330と、を備える。
【0041】
通信部310は、ネットワークNWに接続される装置と通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ASICなどのハードウェアや、プログラムなどにより実現できる。
【0042】
記憶部320は、コンピュータを機能させるためのプログラムや各種データを記憶するための記憶装置である。記憶部320は、地図情報321と、グラフ情報322と、学習データ323と、学習モデル324と、を含む。これらについては、後述する。
【0043】
制御部330は、サーバ装置300において実行される各種の情報処理を実行する。制御部330は、CPUおよびメモリを有し、CPUがメモリを用いて、記憶部320に記憶された情報処理プログラムを実行することによって各種の情報処理が実行される。本実施形態においては、制御部330は、上記情報処理として、移動時間に関する学習モデルを生成し、当該学習モデルに基づいて2地点間の移動時間を算出する処理を実行する。算出された移動時間は、ユーザ端末100に送信される。
【0044】
制御部330は、取得部331と、グラフ生成部332と、時間計算部333と、モデル生成部334と、時間提供部335と、を含む。
【0045】
取得部331は、通信部310を介して、地図情報提供装置200から地図データを取得する。そして、取得した地図データを記憶部320の地図情報321に格納する。
【0046】
グラフ生成部332は、地図情報321に基づいて、連結グラフを生成し、記憶部320のグラフ情報322に格納する。具体的には、グラフ生成部332は、地図上の地点に対応する複数のノードを設定する。そして、グラフ生成部332は、設定した複数のノードに対し、ノード間を接続するエッジを追加して、任意の2点間にパス(経路)が存在する連結グラフを生成する。例えば、ドロネー三角形分割法を利用して連結グラフを生成してもよい。なお、生成するグラフは有向グラフであっても、無向グラフであってもよい。
【0047】
ノードに対応させる地図上の地点は、例えば、住宅、施設、配送拠点、交差点などであってもよい。また、地図をグリッド状に分割し、分割した領域における代表地点(領域の中央に位置する地点や、当該領域における人口密集地点など)を地図上の地点としてもよい。
【0048】
また、グラフ生成部332は、各エッジに対して移動時間(コスト)を付加する。具体的には、グラフ生成部332は、エッジが接続するノードに対応する地点間の移動時間を地図情報提供装置200から取得し、エッジと対応させてグラフ情報322に格納する。すなわち、グラフ情報322は、グラフ情報記憶部として機能し、地図上の地点に対応する複数のノードと、複数のノードのうちの2つのノードを接続するエッジと、当該エッジが接続するノード間の移動時間と、から構成される連結グラフの情報や、ノードと地図上の地点との対応関係等が格納される。
【0049】
時間計算部333は、コスト計算部として機能し、グラフ情報322に基づいた最適化問題を解くことで、連結グラフの任意の2点間の最短の移動時間(予測コスト)を計算する。具体的には、例えば、最短路問題を解く代表的な手法であるダイクストラ法(Dijkstra's algorithm)により、2点間の最短路の移動時間を求める。なお、ダイクストラ法以外にも、公知の手法により最短路問題を解いて移動時間を求めてもよい。
【0050】
一方、上述の取得部331は、コスト取得部としても機能し、時間計算部333が計算した最短路の始点と終点に対応する地図上の2地点間の実測された移動時間(実測コスト)を地図情報提供装置200から取得する。
【0051】
そして、取得部331は、連結グラフの任意の2点間について、時間計算部333が計算した移動時間と、上記実測された移動時間とを対にして、学習データとして、記憶部320の学習データ323に格納する。すなわち、学習データ323は、学習データ記憶部として機能する。
【0052】
モデル生成部334は、学習データ323に基づいて、時間計算部333が計算した移動時間と、取得部331が取得した実測された移動時間との関係を学習した学習モデルを生成し、記憶部320の学習モデル324に格納する。具体的には、モデル生成部334は、計算した移動時間と実測された移動時間との関係を回帰分析により機械学習する。回帰する方法は、例えば、線形回帰、多項式回帰やロジスティック回帰など、公知の手法を用いることができるため、詳細な説明は省略する。
【0053】
時間提供部335は、コスト提供部として機能し、モデル生成部334が生成した学習モデル324に基づいて、問い合わされた地図上の2地点間の移動時間を提供する。具体的には、取得部331は、ユーザ端末100により問い合わされた地図上の2地点に対応するノードの情報をグラフ情報322に基づいて取得する。例えば、問い合わされた地点の近く(所定の距離以内)に設定されたノードを、問い合わされた地点に対応するノードとする。次いで、時間計算部333は、当該取得したノード間について、最短路問題を解いて、移動時間を計算する。そして、時間提供部335は、計算された移動時間を学習モデル324に格納された回帰式により補正し、2地点間の移動時間として提供する。
【0054】
本実施形態では、地図上のエリアを連結グラフによって表し、地図上の2地点間の移動時間を、連結グラフに基づいて計算された移動時間を学習モデルにより補正して提供する。すなわち、地図情報提供装置200に対しては、学習モデルを生成する際にのみ、2地点間の移動時間を取得すればよい。これにより、ユーザ端末100から地図情報提供装置200への2地点間の移動時間の問い合せが集中することを抑制することができる。
【0055】
なお、学習データとして記憶する実測時間は、問い合わせへの回答を受けて実際にユーザが移動した後に、当該移動に要した時間をユーザ端末100のセンサ部150でセンシングしたデータに基づいて収集し、学習モデルを更新するようにしてもよい。
【0056】
図4は、地
図40におけるグラフ情報の簡単な例を示す図である。
図5は、制御部330において学習モデルを生成する処理を示すフローチャートである。
図6は、制御部330において学習モデルに基づいて2地点間の移動時間を提供する処理を示すフローチャートである。
図4および
図5を参照して、上述した学習モデルの生成について具体的に説明する。また、
図4および
図6を参照して、学習モデルに基づいた2地点間の移動時間の提供について具体的に説明する。
【0057】
ステップS501において、取得部331は、地図情報提供装置200から地
図40を示すための地図情報を取得する。
【0058】
ステップS502において、グラフ生成部332は、グラフを生成する。具体的には、グラフ生成部332は、まず、地
図40における地点に対応する複数のノードを設定する。
図4の例では、地
図40において、住宅Aに対応するノードv1、住宅Bに対応するノードv2、駅Cに対応するノードv3、施設Bに対応するノードv4、施設Aに対応するノードv5、住宅Cに対応するノードv6を設定する。グラフ生成部332は、例えば、ユーザ端末100やシステムの開発者等から指定された地点に対応してノードを設定する。そして、グラフ生成部332は、ノードv1〜v6に対し、ドロネー三角形分割を利用して、連結グラフG(以下、グラフGと記載する。)を生成する。連結グラフとは、任意の2つのノード間にパス(経路)が存在するグラフであり、
図4に示すように、任意の2つのノード間には、一方を始点、他方を終点とするパスが少なくとも一つ存在している。
【0059】
また、グラフ生成部332は、ノードを接続するエッジに、ノード間の移動に要する時間(コスト)を付加する。移動時間は、地図情報提供装置200から取得する。例えば、ノードv1とv2を接続するエッジに対し、コストc1を付加する。コストは、具体的には、住宅Aから住宅B(または住宅Bから住宅A)へ移動するのにかかる時間であって、例えば、10分などの時間長である。
【0060】
グラフ生成部332は、ノード、エッジ、およびノードとエッジの接続関係、エッジに付加されたコスト、ノードと地図上の地点との対応関係などのグラフGに関する情報をグラフ情報322に格納する。
【0061】
ステップS503において、時間計算部333は、グラフGにおける任意の2点を選択し、当該2点間の最短の移動時間を計算する。時間計算部333は、例えば、ダイクストラ法を用いてノードv2からv6への最短路を求め、移動時間を算出する。ノードv2からv6へのパスは、パス1(v2→v1→v6)、パス2(v2→v5→v6)、パス3(v2→v3→v4→v6)、・・・など複数存在するが、ダイクストラ法により、パス2が最短路として求められた場合、その移動時間は(c5+c10)となる。なお、ダイクストラ法は公知のアルゴリズムであるので、詳細な説明は省略する。時間計算部333は、機械学習のための学習データとして十分な程度に、グラフGにおける任意の2点を選択し、当該2点間の移動時間を算出する。
【0062】
ステップS504において、取得部331は、時間計算部333が選択した任意の2点間について、地図上の対応する2地点間の実測された移動時間を取得する。具体的には、取得部331は、例えば、時間計算部333が選択したノードv2とv6について、地図上の対応する地点である住宅Bから住宅Cへの移動時間を、地図情報提供装置200から取得する。ここで、取得部331が取得した移動時間は、住宅Bから住宅Cへ実際に移動するのに要する時間(実測値)である。一方、時間計算部333が計算した移動時間は、住宅Bに対応するノードv2から、住宅Cに対応するノードv6へのグラフGにおける最短路のコスト(予測値)である。
【0063】
ステップS505において、取得部331は、上述の実測値と予測値とを学習データ323に格納する。
【0064】
ステップS506において、モデル生成部334は、学習データ323に基づいて、2地点間の予測値と実測値との関係を回帰分析により機械学習する。そして、学習モデルとして記憶部320の学習モデル324に格納する。
【0065】
次に、
図6を参照して、学習モデルに基づいて2地点間の移動時間を提供する処理について説明する。
【0066】
ステップS601において、通信部310は、ユーザ端末100から2地点間の移動時間の問い合せを受信する。具体的には、
図4の例において、地
図40における住宅Dから住宅Eへの移動時間が問い合わせられる。
【0067】
ステップS602において、時間提供部335は、グラフ情報322に基づいて、住宅Dに近い住宅Bに対応するノードv2、住宅Eに近い住宅Cに対応するノードv6を取得する。
【0068】
ステップS603において、時間提供部335は、グラフGにおけるノードv2からv6への最短路問題を、時間計算部333に解かせる。
図4の例では、移動時間(c5+c10)が算出される。
【0069】
ステップS604において、時間提供部335は、計算された移動時間を学習モデル324に格納された回帰式により補正する。
【0070】
ステップS605において、時間提供部335は、補正した値を、2地点間の移動時間として提供する。
【0071】
図7は、地図上の地点に対応するノードの具体例を示す図である。
図7において、各ノードは地図が示すエリアの各番地に対応しており、各ノードは、各番地の位置情報(緯度、経度など)と関連付けられる。
【0072】
図8は、
図7のノードに対し、ドロネー三角形分割を適用した図である。
図8におけるグラフの各エッジについて、エッジが接続するノードに関連付けられた位置(地点間)の移動に要する時間をコストとして付加する。
【0073】
図9は、回帰式の例を示す図である。同じデータについて、対数軸(左グラフ)と、線形軸(右グラフ)で表しており、縦軸は実測された移動時間、横軸はダイクストラ法などによって計算された移動時間である。また、実測された移動時間と計算された移動時間との関係は機械学習され、回帰式90、91が導出される。
【0074】
図9においては、実測された移動時間が長くなるほど、計算された移動時間とずれ(予測誤差)が大きくなっており、この予測誤差を回帰することで補正することができる。
【0075】
(効果の説明)
上述したように、本実施形態に係る移動時間提供システム1は、機械学習を用いて2地点間の移動時間を提供する。すなわち、移動時間提供システム1は、組み合わせ最適化問題に基づいて計算された2地点間の移動時間と、実測された2地点間の移動時間との関係を学習した学習モデルを生成し、当該学習モデルに基づいて、地図上の2地点間の移動時間を提供する。移動時間提供システム1は、学習モデルを生成する際にのみ外部の地図情報提供装置(例えば、APIサーバ等)を利用するので、APIサーバの負荷を軽減させつつ、精度の高い2地点間の移動時間を提供することができる。また、ユーザは、API等のサービスの利用制限を気にすることなく、2地点間の移動時間を取得することができ、配送計画等の立案が容易に行えるようになる。
【0076】
<実施形態2>
実施形態2に係る移動時間提供システム2は、実施形態1に係る移動時間提供システム1において、サーバ装置300に代えてサーバ装置400を備える。サーバ装置400は、地図上の2地点の位置と、2地点間の移動時間(コスト)との関係を機械学習して学習モデルを生成し、当該学習モデルに基づいて2地点間の移動時間を提供する。すなわち、実施形態1に係るサーバ装置300とは、生成する学習モデルが異なる。
【0077】
図10は、実施形態2に係るサーバ装置400の機能構成の一例を示す機能ブロック図である。なお、本実施形態のサーバ装置400は、
図10の構成要素(各部)の一部を省略した構成としてもよい。
【0078】
サーバ装置400は、通信部410と、記憶部420と、制御部430と、を備える。
【0079】
通信部410は、ネットワークNWに接続される装置と通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ASICなどのハードウェアや、プログラムなどにより実現できる。
【0080】
記憶部420は、コンピュータを機能させるためのプログラムや各種データを記憶するための記憶装置である。記憶部420は、地図情報421と、学習データ422と、学習モデル423と、を含む。これらについては、後述する。
【0081】
制御部430は、サーバ装置400において実行される各種の情報処理を実行する。制御部430は、CPUおよびメモリを有し、CPUがメモリを用いて、記憶部420に記憶された情報処理プログラムを実行することによって各種の情報処理が実行される。本実施形態においては、制御部430は、上記情報処理として、移動時間に関する学習モデルを生成し、当該学習モデルに基づいて2地点間の移動時間を算出する処理を実行する。算出された移動時間は、ユーザ端末100に送信される。
【0082】
制御部430は、取得部431と、モデル生成部432と、時間提供部433と、を含む。
【0083】
取得部431は、通信部410を介して、地図情報提供装置200から地図データを取得する。そして、取得した地図データを記憶部420の地図情報421に格納する。
【0084】
また、取得部431は、地図上の任意の2地点を選択し、当該2地点間の移動時間を地図情報提供装置200から通信部410を介して取得する。そして、取得部431は、2地点間の位置情報(例えば、緯度、経度など)と2地点間の移動時間とを対にして、学習データとして、記憶部420の学習データ422に格納する。取得部431は、機械学習のための学習データとして十分な程度に、地図上の任意の2地点を選択し、当該2地点間の移動時間を取得する。
【0085】
図11は、地図上の任意の2地点を選択する処理を説明する図である。
図11において、取得部431は、地
図40上の任意の2地点をランダムに選択する。なお、
図11では、例として地点41〜46が示されているが、これに限られず、地図上の任意の地点を選択する。
【0086】
取得具431は、例えば、地点41と地点42とを選択し、地点41−地点42間の移動時間t1を地図情報提供装置200から取得する。そして、取得部431は、地点41の緯度、経度などの位置情報(x1,y1)と移動時間t1とを対にして学習データ422に格納する。同様に、取得部431は、地点41と地点43、地点43と地点44・・・など、任意の2地点をランダムに選択し、その2地点間の移動時間を取得する。そして、2地点の位置情報と移動時間とを対にして学習データ422に格納する。
【0087】
図10に戻って、モデル生成部432は、学習データ423に基づいて、地図上の2地点の位置情報と2地点間の移動時間との関係を学習した学習モデルを生成し、記憶部420の学習モデル423に格納する。例えば、ガウス過程やニューラルネットワークなど公知の技術に基づいて、地図上の2地点の位置情報と、2地点間の移動時間との関係を学習する。
【0088】
時間提供部433は、モデル生成部432が生成した学習モデル423に基づいて、問い合わせられた地図上の2地点間の移動時間を提供する。具体的には、取得部431は、ユーザ端末100により問い合わせられた地図上の2地点を入力として、学習モデルに基づいて、移動時間を算出する。
【0089】
(効果の説明)
上述したように、本実施形態に係る移動時間提供システムは、機械学習を用いて2地点間の移動時間を提供する。具体的には、地図上の2地点の位置と、2地点間の移動時間(コスト)との関係を機械学習して学習モデルを生成し、当該学習モデルに基づいて2地点間の移動時間を提供する。すなわち、本実施形態に係る移動時間提供システムは、学習モデルを生成する際にのみ外部の地図情報提供装置(例えば、APIサーバ等)を利用するので、APIサーバ等の負荷を軽減させつつ、精度の高い2地点間の移動時間を提供することができる。また、ユーザは、API等のサービスの利用制限を気にすることなく、2地点間の移動時間を取得することができ、配送計画等の立案が容易に行えるようになる。
【0090】
<実施形態3>
実施形態3に係る移動時間提供システム3は、実施形態2に係る移動時間提供システム2において、サーバ装置400に代えてサーバ装置500を備える。サーバ装置500は、実施形態1に係るシステムにおいて生成された第1学習モデル、および実施形態2に係るシステムにおいて生成された第2学習モデルに基づいて2地点間の移動時間を提供する。具体的には、第1学習モデルに基づいて算出される移動時間の予測精度と、第2学習モデルに基づいて算出される移動時間の予測精度とに基づいて、精度の良い方の移動時間を選択する。そして、選択した移動時間をユーザに提供する。すなわち、実施形態1に係る学習モデル、および実施形態2に係る学習モデルの両方に基づいて移動時間を算出する点が、上述した実施形態とは異なる。
【0091】
図12は、実施形態3に係るサーバ装置500の機能構成の一例を示す機能ブロック図である。なお、本実施形態のサーバ装置500は、
図12の構成要素(各部)の一部を省略した構成としてもよい。
【0092】
サーバ装置500は、通信部510と、記憶部520と、第1推測部530と、第2推測部540と、選択部550と、提供部560を備える。サーバ装置500は、CPUおよびメモリを有する制御部(不図示)が、記憶部520に記憶された情報処理プログラムを実行することによって、後述する各種の情報処理を実行する。
【0093】
通信部510は、ネットワークNWに接続される装置と通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ASICなどのハードウェアや、プログラムなどにより実現できる。
【0094】
記憶部520は、コンピュータを機能させるためのプログラムや各種データを記憶するための記憶装置である。記憶部520は、地図情報521と、グラフ情報522と、第1学習データ523と、第1学習モデル524と、第2学習データ525と、第2学習モデル526と、を備える。これらについては、後述する。
【0095】
第1推測部530は、実施形態1で示した学習モデルを生成し、当該学習モデルに基づいて地図上の2地点間の移動時間を算出する機能を有する。また、第2推測部540は、実施形態2で示した学習モデルを生成し、当該学習モデルに基づいて地図上の2地点間の移動時間を算出する機能を有する。
【0096】
第1推測部530は、第1取得部531と、グラフ生成部532と、時間計算部533と、第1モデル生成部534と、第1時間推測部535と、を含む。
【0097】
第1取得部531は、実施形態1に係るサーバ装置300の取得部331と同様の機能を有し、通信部510を介して、地図情報提供装置200から地図データを取得する。そして、取得した地図データを記憶部520の地図情報521に格納する。
【0098】
また、第1取得部531は、後述する時間計算部533が計算する最短路の、始点と終点に対応する地図上の2地点間の実測された移動時間(実測コスト)を地図情報提供装置200から取得し、第1学習データ523に格納する。
【0099】
グラフ生成部532は、実施形態1に係るサーバ装置300のグラフ生成部332と同様の機能を有し、地図情報521に基づいて、連結グラフを生成し、記憶部520のグラフ情報522に格納する。
【0100】
時間計算部533は、実施形態1に係るサーバ装置300の時間計算部333と同様の機能を有し、グラフ情報522に基づいた最適化問題を解くことで、連結グラフの任意の2点間の最短の移動時間(予測コスト)を計算する。当該移動時間は、地図情報提供装置200から取得した、実測された移動時間と対にして第1学習データ523に格納する。
【0101】
第1モデル生成部534は、実施形態1に係るサーバ装置のモデル生成部334と同様の機能を有し、第1学習データ523に基づいて、時間計算部533が計算した移動時間と、第1取得部531が取得した実測された移動時間との関係を学習した学習モデルを生成し、記憶部520の第1学習モデル524に格納する。
【0102】
第1時間推測部535は、実施形態1に係るサーバ装置300の時間提供部335と同様の機能を有し、第1モデル生成部534が生成した第1学習モデル524に基づいて、地図上の2地点間の移動時間を計算(推測)する。この際、予測精度を評価する指標を算出する。予測精度の評価については、例えば、平均誤差、平均平方二乗誤差など、公知の技術を採用するため、詳細な説明は省略する。
【0103】
第2推測部540は、第2取得部541と、第2モデル生成部542と、第2時間推測部543と、を含む。
【0104】
第2取得部541は、実施形態2に係るサーバ装置400の取得部431と同様の機能を有し、地図情報521に基づいて、地図上の任意の2地点を選択し、当該2地点間の移動時間を地図情報提供装置200から通信部510を介して取得する。そして、第2取得部541は、2地点間の位置情報(例えば、緯度、経度など)と2地点間の移動時間とを対にして、学習データとして、記憶部520の第2学習データ525に格納する。
【0105】
第2モデル生成部542は、実施形態2に係るサーバ装置400のモデル生成部432と同様の機能を有し、第2学習データ525に基づいて、地図上の2地点の位置情報と2地点間の移動時間との関係を学習した学習モデルを生成し、記憶部520の第2学習モデル526に格納する。
【0106】
第2時間推測部543は、実施形態2に係るサーバ装置400の時間提供部433と同様の機能を有し、第2モデル生成部542が生成した第2学習モデル526に基づいて、地図上の2地点間の移動時間を計算(推測)する。この際、予測精度を評価する指標を算出する。予測精度の評価については、例えば、平均誤差、平均平方二乗誤差など、公知の技術を採用するため、詳細な説明は省略する。
【0107】
選択部550は、ユーザ端末100から地図上の2地点間の移動時間の問い合わせを受けて第1推測部530において計算された移動時間と、第2推測部540において計算された移動時間のうち、予測精度の良い方を選択する。具体的には、選択部550は、上述した予測精度を評価する指標を比較して、移動時間を選択する。
【0108】
提供部560は、選択部550が選択した移動時間を提供する。具体的には、通信部510を介して、ユーザ端末100に送信する。
【0109】
(効果の説明)
上述したように、本実施形態に係る移動時間提供システムは、異なる方法で生成された学習モデルに基づいて2地点間の移動時間を計算し、予測精度の良い方を提供する。これにより、本実施形態に係る移動時間提供システムは、外部の地図情報提供装置(例えば、APIサーバ等)の負荷を軽減させつつ、より精度の高い2地点間の移動時間を提供することができる。また、ユーザは、API等のサービスの利用制限を気にすることなく、精度の高い2地点間の移動時間を取得することができ、配送計画等の立案が容易に行えるようになる。
【0110】
<変形例>
上述した本発明に係る移動時間提供システムは、地図上の3以上の地点を巡回する順序を決定するためのシステムに利用することができる。地図上の3以上の地点を巡回する順序は、組み合わせ最適化問題の代表的な問題の一つである巡回セールスマン問題(Traveling Salesman Problem:TSP)を解くことによって決定することができる。
【0111】
TSPは、複数のノード(地図上の地点に相当)と、ノード間を接続するエッジと、各エッジに対して付加されたコスト(例えば、移動時間)と、が定義されているグラフにおいて、全てのノードを1回だけ通って一巡(巡回)するのに必要なコストの和が最小となる経路を求める問題である。TSPでは、エッジごとのコストが入力データとして必要であるが、エッジ数は、複数のノードのうちの任意の2点を選択する組み合わせ数(nC2)であるため、巡回地点が多くなるほど、エッジ数は膨大な数になってしまう。すなわち、エッジのコストとして2地点間の移動時間を、外部の地図情報提供装置(APIサーバ等)から取得すると、膨大な回数の問い合わせを必要とするため、問い合わせ先のAPIサーバ等に負荷がかかってしまう。
【0112】
そこで、本発明に係る移動時間提供システムによって提供される2地点間の移動時間を、TSPにおいて入力されるグラフにおけるエッジのコストとして取得する。これにより、API等のサービスに負荷をかけることなくTSPを解いて、巡回順序を決定することができる。
【0113】
上記実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものとする。
【0114】
また、上記実施形態に記載した手法は、コンピュータに実行させることができるプログラム(ソフトウエア手段)として、例えば、磁気ディスク(フレキシブルディスク、ハードディスク等)、光ディスク(CD−ROM、DVD、MO等)、半導体メモリ(ROM、RAM、フラッシュメモリ等)等の記録媒体に格納し、また通信媒体により伝送して頒布することもできる。なお、媒体側に格納されるプログラムには、コンピュータに実行させるソフトウエア手段(実行プログラムのみならずテーブルやデータ構造も含む)をコンピュータ内に構成させる設定プログラムをも含む。本サーバを実現するコンピュータは、記録媒体に記録されたプログラムを読み込み、また場合により設定プログラムによりソフトウエア手段を構築し、このソフトウエア手段によって動作が制御されることにより上述した処理を実行する。なお、本明細書でいう記録媒体は、頒布用に限らず、コンピュータ内部あるいはネットワークを介して接続される機器に設けられた磁気ディスクや半導体メモリ等の記憶媒体を含むものである。
【解決手段】サーバ装置は、地図上の地点に対応する複数のノードと、ノード間を接続するエッジと、各エッジに付加されたコストと、から構成される連結グラフに関するグラフ情報を記憶するグラフ情報記憶部と、複数のノードの中から選択された2つのノード間の予測コストを、グラフ情報に基づいて計算するコスト計算部と、選択された2つのノードに対応する地図上の2地点間の実測コストを取得するコスト取得部と、コスト計算部が計算した予測コストと、コスト取得部が取得した実測コストとを、学習データとして記憶する学習データ記憶部と、学習データに基づいて、予測コストと、実測コストとの関係を学習した学習モデルを生成するモデル生成部と、生成した学習モデルに基づいて、地図上の任意の2地点間のコストを提供するコスト提供部と、を備える。