(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0017】
以下の説明は、当業者が本開示を作成し、使用することができるようにするために提示され、特定の適用例およびその要件に関連して提供される。開示する実施形態に対するさまざまな修正形態が、当業者には容易に明らかになり、本明細書で規定する一般的原理が、本開示の精神または範囲から逸脱することなく他の実施形態および適用例に応用されてもよい。したがって、本開示は、示される実施形態に限定されるのではなく、特許請求の範囲と矛盾しない最も広い範囲が与えられるべきである。
【0018】
本明細書で使用する用語は、特定の実施例の実施形態を説明するためのものであり、限定するものではない。本明細書で使用するとき、単数形「a」、「an」、および「the」は、文脈が明らかにそうではないと示さない限り、複数形も含むことが意図される場合がある。用語「comprise(備える)」、「comprises(備える)」,および/もしくは「comprising(備える)」、「include(含む)」、「includes(含む)」、および/もしくは「including(含む)」は、本明細書で使用するとき、言及された特徴、完全体、ステップ、動作、要素、および/または構成要素の存在を明示するが、1つまたは複数の他の特徴、完全体、ステップ、動作、要素、構成要素、および/またはこれらのグループの存在または追加を除外しないことがさらに理解されよう。
【0019】
本開示のこれらおよび他の特徴、ならびに特性だけではなく、動作方法、および構造の関連する要素の機能、および部分の組合せ、および製造の経済性が、すべて本開示の一部を形成する添付図面を参照して以下の説明を考慮したときに、より明らかになる場合がある。しかしながら、図面が、例示および説明するためだけにあり、本開示の範囲を限定することを意図するものではないことをはっきりと理解されたい。図面が、縮尺通りではないことが理解される。
【0020】
本開示で使用するフローチャートは、システムが本開示でいくつかの実施形態に従って実装する動作を例示する。フローチャートの動作が、順序通りに実装されなくてもよいことをはっきりと理解されたい。逆に、動作を逆順で、または同時に実装してもよい。さらに、1つまたは複数の動作をフローチャートに追加してもよい。1つまたは複数の動作をフローチャートから取り除いてもよい。
【0021】
さらに、本開示では、システムおよび方法について、主にサービス注文を処理することに関して説明するが、これは代表的一実施形態でしかないこともまた理解されたい。本開示のシステムおよび方法を、任意の他の種類のオン・デマンド・サービスに適用してもよい。たとえば、本開示のシステムおよび方法を、陸上、海洋、宇宙空間など、またはそれらの任意の組合せを含む、異なる環境の輸送システムに適用してもよい。輸送システムの車両が、タクシー、自家用車、ヒッチハイク、バス、列車、超特急列車、高速鉄道、地下鉄、船、航空機、宇宙船、熱気球、無人車両など、またはそれらの任意の組合せを含んでもよい。輸送システムはまた、管理および/または配信のための任意の輸送システム、たとえば、速達便を送信および/または受信するためのシステムを含んでもよい。本開示のシステムおよび方法の適用例が、ウェブページ、ブラウザのプラグイン、クライアント端末、カスタムシステム、内部分析システム、人工知能ロボットなど、またはそれらの任意の組合せを含んでもよい。
【0022】
本開示では、「乗客」、「要求者」、「サービス要求者」、および「顧客」という用語を、個人、すなわち、サービスを要求してもよい、または注文してもよい実体を指すために、交換可能に使用する。また、本開示では、「運転者」、「提供者」、「サービス提供者」、および「供給者」という用語を、個人、すなわち、サービスを提供する、またはサービスの提供を容易にする実体またはツールを指すために、交換可能に使用する。本開示では、「ユーザ」という用語が、個人、すなわち、サービス要求してもよい、サービスを注文してもよい、サービスを提供してもよい、またはサービスの提供を容易にしてもよい実体を指す場合がある。たとえば、ユーザが、乗客、運転者、操作者など、またはそれらの任意の組合せであってもよい。本開示では、「乗客」、「ユーザ装置」、「ユーザ端末」、および「乗客端末」を、交換可能に使用する場合があり、「運転者」および「運転者端末」を、交換可能に使用する場合がある。
【0023】
「サービスリクエスト」という用語が、ユーザ(たとえば、乗客、要求者、操作者、サービス要求者、顧客、運転者、提供者、サービス提供者、供給者)により開始されてもよいリクエストを指す。サービスリクエストが、2つ以上の位置間の移動に関係があってもよい。いくつかの実施形態では、移動が、タクシー輸送サービスシステムで乗客により開始された注文を含んでもよい。サービスリクエストが、有料であっても、無料であってもよい。
【0024】
システムが、多くの分野で適用例を、たとえば、タクシー輸送サービス、運転適用例、配達適用例、地図適用例、またはナビゲーション適用例を見いだしてもよい。
【0025】
本開示のいくつかの実施形態によれば、サービスリクエストを、1つまたは複数の機械学習アルゴリズム、たとえば、ニューラル・ネットワーク・アルゴリズム、ソートアルゴリズム、回帰アルゴリズム、インスタンスに基づくアルゴリズム、正規化アルゴリズム、決定木アルゴリズム、ベイジアン(Bayesian)アルゴリズム、クラスタリングアルゴリズム、結合ルールアルゴリズム、ディープ・ラーニング・アルゴリズム、および次元縮小(reduced dimension)アルゴリズムなど、またはそれらの任意の組合せを使用して処理してもよい。たとえば、ニューラル・ネットワーク・アルゴリズムが、再帰型ニューラルネットワーク、パーセプトロン・ニューラル・ネットワーク、ホップフィールド(Hopfield)ネットワーク、自己組織化マップ(self−organizing map、SOM)、または学習ベクトル量子化(learning vector quantization、LVQ)などを含んでもよい。回帰アルゴリズムが、ロジスティック回帰、段階的回帰、多変量適応型回帰スプライン、局所推定散布図平滑化(locally estimated scatterplot smoothing)などを含んでもよい。ソートアルゴリズムが、挿入ソート、選択ソート、マージソート、ヒープソート、バブルソート、シェルソート、コムソート、計数ソート、バケットソート、基数ソートなど、またはそれらの任意の組合せを含んでもよい。インスタンスに基づくアルゴリズムが、k近傍法(k−nearest neighbor、KNN)、学習ベクトル量子化(LVQ)、自己組織化マップ(SOM)などを含んでもよい。正規化アルゴリズムが、リッジ回帰(RIDge regression)、LASSO(least absolute shrinkage and selection operator)、またはエラスティックネット(elastic net)を含んでもよい。決定木アルゴリズムが、分類木・回帰木(classification and regression tree、CART)、ID3(Iterative Dichotomiser 3)、C4.5、CHAID(chi−squared automatic interaction detection)、決定株(decision stump)、ランダムフォレスト(random forest)、多変量適応型回帰スプライン(multivariate adaptive regression spline、MARS)、または勾配ブースティングマシン(gradient boosting machine、GBM)などを含んでもよい。ベイジアンアルゴリズムが、ナイーブ・ベイジアン・アルゴリズム(naive Bayesian algorithm)、AODE(averaged one−dependence estimators)、またはベイジアン信念ネットワーク(Bayesian belief network、BBN)などを含んでもよい。カーネルに基づくアルゴリズムが、サポート・ベクター・マシン(support vector machine、SVM)、放射基底関数(radial basis function、RBF)、または線形判断分析(linear discriminate analysis、LDA)などを含んでもよい。クラスタリングアルゴリズムが、k−平均クラスタリングアルゴリズム(k−means clustering algorithm)、ファジィc−平均クラスタリングアルゴリズム(fuzzy c−mean clustering algorithm)、階層的クラスタリングアルゴリズム(hierarchical clustering algorithm)、ガウス・クラスタリング・アルゴリズム(Gaussian clustering algorithm)、MSTに基づくクラスタリングアルゴリズム、カーネルk−平均クラスタリングアルゴリズム、密度に基づくクラスタリングアルゴリズム(density−based clustering algorithm)などを含んでもよい。結合ルールアルゴリズムが、アプリオリアルゴリズム(Apriori algorithm)またはEclatアルゴリズムなどを含んでもよい。ディープ・ラーニング・アルゴリズムが、制限付きボルツマンマシン(restricted Boltzmann machine、RBM)、ディープ・ビリーフ・ネットワーク(deep belief networks、DBN)、畳込みネットワーク(convolutional network)、積層自己符号化器(stacked autoencoder)などを含んでもよい。次元縮小アルゴリズムが、主成分分析(principal component analysis、PCA)、部分的最小二乗回帰(partial least square regression、PLS)、サモンマッピング(Sammon mapping)、多次元尺度法(multi−dimensional scaling、MDS)、射影追跡(Projection Pursuit)などを含んでもよい。
【0026】
本開示の一様態が、移動(たとえば、乗客により開始された注文)に関連する推定到着時間を決定するためのオンラインシステムおよび方法に関する。このために、このシステムが、最初に、サービス要求者に関連付けられた端末から移動を得て、次いで、移動に関連する特性データを抽出し、次いで、推定到着時間を決定するための予測モデルを得て、次いで、予測モデルおよび特性データに基づき、移動に関連する推定到着時間を決定してもよい。特性データが、移動に関連する経路に対応する特徴データ、および経路の少なくとも1つのリンクに対応する特徴データを含むので、移動に関連する到着時間を推定する精度を改善する場合がある。
【0027】
上述のように、技術的問題および解決策が、インターネット後の時代にだけなおいっそう根付いた新しいサービスの形態であるオンライン・オン・デマンド輸送サービスで根付いたと言ってもさしつかえない。オンライン・オン・デマンド輸送サービスが、インターネット後の時代にだけ向上する可能性がある技術的解決策をユーザ(たとえば、サービス要求者)およびサービス提供者(たとえば、運転者)に提供する。インターネット以前の時代では、ユーザが路上でタクシーを呼ぶとき、タクシーのリクエストおよび受諾が、乗客と、乗客を視界にとらえる1人のタクシー運転者との間だけで行われる。乗客が電話を通してタクシーを呼ぶ場合、サービスのリクエストおよび受諾が、乗客と1つのサービス提供者(たとえば、1つのタクシー会社または仲介人)との間だけで行われてもよい。しかしながら、オンラインタクシーにより、サービスのユーザが、ユーザから遠く離れた、膨大な数の個々のサービス提供者(たとえば、タクシー)にサービスリクエストをリアルタイムで自動的に分配することができるようになる。また、オンラインタクシーにより、複数のサービス提供者が、サービスリクエストに同時にリアルタイムで応答することができるようになる。したがって、インターネットを通して、オンライン・オン・デマンド輸送システムが、従来のインターネット以前の輸送サービスシステムでは決して遭遇することがない、ユーザおよびサービス提供者のための、はるかにより効率的取引プラットフォームを提供する場合がある。システムが、乗客から注文(移動)を受け取ったとき、注文に関連する推定到着時間を決定してもよい。推定到着時間に基づき、乗客が自分の時間をスケジュールしてもよい。推定到着時間に基づき、システムが、その注文と他の注文を一緒に組み合わせて、組み合わせた結果を運転者に送信して、注文の割当てをより合理的にしてもよい。
【0028】
図1は、いくつかの実施形態による、代表的オン・デマンド・サービス・システム100の構成図である。たとえば、オン・デマンド・サービス・システム100が、タクシー呼出し、運転代行、急行貨物、カープール、バスサービス、バス業務、運転者雇用およびシャトルサービスなどの輸送サービスのためのオンライン輸送サービスプラットフォームであってもよい。オン・デマンド・サービス・システム100が、サーバ110、ネットワーク120、1つまたは複数のユーザ端末(たとえば、1つまたは複数の乗客端末130、運転者端末140)、およびデータ記憶領域150を含む、オンラインプラットフォームであってもよい。サーバ110が、処理エンジン112を含んでもよい。
図1に示すオン・デマンド・サービス・システム100が、単なる一実施例であり、限定することを意図するものではないことに留意されたい。いくつかの実施形態では、オン・デマンド・サービス・システム100が、1つまたは複数の乗客端末130、および1つまたは複数の運転者端末140を含んでもよい。たとえば、ナビゲーションシステムでは、ユーザが、自分の端末にインストールしたナビゲーションアプリケーションを使用して、2つの位置の間で自分の移動をナビゲートしてもよく、システムが、移動に関連する推定到着時間を決定してもよい。「乗客」および「サービス提供者/運転者/運転者端末」を使用するのは、オンライン輸送サービスプラットフォームに関する。「サービス要求者」、「ユーザ」、「ユーザ端末」、「端末」、または「ユーザ装置」を使用するとき、それらを使用するのは、オンライン輸送サービスおよびナビゲーションサービスを含む、位置に基づくサービス(location−based service、LBS)すべてに関する。
【0029】
いくつかの実施形態では、サーバ110が、単一サーバであっても、サーバグループであってもよい。サーバグループが、集中型であっても、分散型であってもよい(たとえば、サーバ110が、分散システムであってもよい)。いくつかの実施形態では、サーバ110が、ローカルにあっても、遠隔にあってもよい。たとえば、サーバ110が、1つもしくは複数のユーザ端末(たとえば、1つまたは複数の乗客端末130、運転者端末140)に記憶された情報および/もしくはデータに、ならびに/またはネットワーク120を介してデータ記憶領域150に、アクセスしてもよい。別の実施例では、サーバ110が、記憶された情報および/またはデータにアクセスするために、1つもしくは複数のユーザ端末(たとえば、1つまたは複数の乗客端末130、運転者端末140)および/またはデータ記憶領域150に、直接接続されてもよい。いくつかの実施形態では、サーバ110が、クラウドプラットフォーム上に実装されてもよい。単に実施例として、クラウドプラットフォームが、プライベートクラウド、パブリックプラウド、ハイブリッドクラウド、コミュニティクラウド、分散クラウド、インタークラウド、マルチクラウドなど、またはそれらの任意の組合せを含んでもよい。いくつかの実施形態では、サーバ110を、本開示の
図2で例示する1つまたは複数の構成要素を有するコンピューティング機器200上に実装してもよい。
【0030】
いくつかの実施形態では、サーバ110が、処理エンジン112を含んでもよい。処理エンジン112が、サービスリクエストに関連する情報および/またはデータを処理して、本開示での1つまたは複数の機能記述を遂行してもよい。たとえば、処理エンジン112が、1つまたは複数の乗客端末130から得たサービスリクエストに基づき、推定到着時間を決定してもよい。いくつかの実施形態では、処理エンジン112が、1つまたは複数の処理エンジン(たとえば、1つもしくは複数のシングルコア処理エンジン、または1つもしくは複数のマルチ・コア・プロセッサ)を含んでもよい。単に実施例として、処理エンジン112が、中央処理装置(central processing unit、CPU)、特定用途向け集積回路(application−specific integrated circuit、ASIC)、ASIP(application−specific instruction−set processor)、グラフィックス・プロセッシング・ユニット(graphics processing unit、GPU)、PPU(physical processing unit)、デジタル・シグナル・プロセッサ(digital signal processor、DSP)、フィールド・プログラマブル・ゲート・アレイ(field programmable gate array、FPGA)、プログラム可能論理デバイス(programmable logic device、PLD)、コントローラ、マイクロコントローラユニット、縮小命令セットコンピュータ(reduced instruction−set computer、RISC)、マイクロプロセッサなど、またはそれらの任意の組合せを含んでもよい。
【0031】
ネットワーク120が、情報および/またはデータの交換を容易にしてもよい。いくつかの実施形態では、オン・デマンド・サービス・システム100内の1つまたは複数の構成要素(たとえば、サーバ110、1つもしくは複数の乗客端末130、1つもしくは複数の運転者端末140、またはデータ記憶領域150)が、ネットワーク120を介してオン・デマンド・サービス・システム100内の1つもしくは複数の他の構成要素に情報および/またはデータを送信してもよい。たとえば、サーバ110が、ネットワーク120を介して乗客端末130からサービスリクエストを得てもよい/取得してもよい。いくつかの実施形態では、ネットワーク120が、任意のタイプの有線または無線のネットワークであっても、それらの任意の組合せであってもよい。単に実施例として、ネットワーク120が、ケーブルネットワーク、有線ネットワーク、光ファイバネットワーク、電気通信ネットワーク、イントラネット、インターネット、ローカル・エリア・ネットワーク(local area network、LAN)、広域ネットワーク(wide area network、WAN)、無線LAN(wireless local area network、WLAN)、メトロポリタン・エリア・ネットワーク(metropolitan area、network、MAN)、広域ネットワーク(WAN)、公衆電話交換網(public telephone switched network、PTSN)、Bluetooth(登録商標)ネットワーク、ZigBeeネットワーク、近距離無線通信(near field communication、NFC)ネットワークなど、またはそれらの任意の組合せを含んでもよい。いくつかの実施形態では、ネットワーク120が、1つまたは複数のネットワーク・アクセス・ポイントを含んでもよい。たとえば、ネットワーク120が、オン・デマンド・サービス・システム100の1つまたは複数の構成要素がデータおよび/または情報を交換するためにネットワーク120に接続されてもよい、基地局および/または相互接続点120−1、120−2、…などの、有線または無線のネットワーク・アクセス・ポイントを含んでもよい。
【0032】
いくつかの実施形態では、サービス要求者が、乗客端末130のユーザであってもよい。いくつかの実施形態では、乗客端末130のユーザが、サービス要求者以外のだれかであってもよい。たとえば、乗客端末130のユーザAが、乗客端末130を使用して、ユーザBへのサービスリクエストを送信しても、サーバ110からサービスおよび/もしくは情報、または命令を受信してもよい。いくつかの実施形態では、提供者が、運転者端末140のユーザであってもよい。いくつかの実施形態では、運転者端末140のユーザが、提供者以外のだれかであってもよい。たとえば、運転者端末140のユーザCが、運転者端末140を使用して、サーバ110から、ユーザDへのサービスリクエスト、および/または情報もしくは命令を受信してもよい。
【0033】
いくつかの実施形態では、乗客端末130が、移動体機器130−1、タブレットコンピュータ130−2、ラップトップコンピュータ130−3、自動車内の内蔵機器130−4など、またはそれらの任意の組合せを含んでもよい。いくつかの実施形態では、移動体機器130−1が、スマートホーム機器、ウェアラブル機器、スマート移動体機器、仮想現実機器、拡張現実感機器など、またはそれらの任意の組合せを含んでもよい。いくつかの実施形態では、スマートホーム機器が、スマート照明機器、インテリジェントな電気器具の制御機器、スマート監視機器、スマートテレビ、スマート・ビデオ・カメラ、インターホンなど、またはそれらの組合せを含んでもよい。いくつかの実施形態では、ウェアラブル機器が、スマートブレスレット、スマート履き物、スマートメガネ、スマートヘルメット、スマートウォッチ、スマート衣服、スマートバックパック、スマートアクセサリなど、またはそれらの任意の組合せを含んでもよい。いくつかの実施形態では、スマート移動体機器が、スマートホン、携帯情報端末(personal digital assistance、PDA)、ゲーム機器、ナビゲーション機器、POS(point of sale)機器など、またはそれらの任意の組合せを含んでもよい。いくつかの実施形態では、仮想現実機器および/または拡張現実感機器が、仮想現実ヘルメット、仮想現実メガネ、仮想現実パッチ、拡張現実感ヘルメット、拡張現実感メガネ、拡張現実感パッチなど、またはそれらの任意の組合せを含んでもよい。たとえば、仮想現実機器および/または拡張現実感機器が、グーグルグラス(Google Glass)、オキュラスリフト(Oculus Rift)、ホロレンズ(Hololens)、ギアVR(Gear VR)などを含んでもよい。いくつかの実施形態では、自動車内の内蔵機器130−4が、車載コンピュータ、車載テレビなどを含んでもよい。いくつかの実施形態では、乗客端末130が、サービス要求者および/または乗客端末130の場所を位置決めするための測位技術を有する機器であってもよい。
【0034】
いくつかの実施形態では、運転者端末140が、乗客端末130に類似する、またはそれと同じ機器であってもよい。いくつかの実施形態では、乗客端末140が、運転者および/または運転者端末140の場所を位置決めするための測位技術を有する機器であってもよい。いくつかの実施形態では、乗客端末130および/または運転者端末140が、他の測位機器と通信して、サービス要求者、乗客端末130、運転者、および/または運転者端末140の場所を決定してもよい。いくつかの実施形態では、乗客端末130および/または運転者端末140が、サーバ110に測位情報を送信してもよい。
【0035】
記憶機器150が、データおよび/または命令を記憶してもよい。いくつかの実施形態では、データ記憶領域150が、1つまたは複数のユーザ端末(たとえば、1つまたは複数の乗客端末130、運転者端末140)から得たデータを記憶してもよい。いくつかの実施形態では、本開示に記載する代表的方法を実装するためにサーバ110が実行しても、使用してもよいデータおよび/または命令を、データ記憶領域150が記憶してもよい。いくつかの実施形態では、データ記憶領域150が、大容量記憶領域、取外し可能記憶領域、揮発性読出し書込みメモリ、読出し専用メモリ(read−only memory、ROM)など、またはそれらの任意の組合せを含んでもよい。代表的大容量記憶領域が、磁気ディスク、光ディスク、SSD(solid−state drive)を含んでもよい。代表的取外し可能記憶領域が、フラッシュドライブ、フロッピーディスク、光ディスク、メモリカード、zipディスク、磁気テープなどを含んでもよい。代表的揮発性読出し書込みメモリが、ランダム・アクセス・メモリ(random access memory、RAM)を含んでもよい。代表的RAMが、ダイナミックRAM(DRAM)、DDR SDRAM(double data rate synchronous dynamic RAM)、スタティックRAM(SRAM)、サイリスタRAM(T−RAM)、およびゼロキャパシタRAM(Z−RAM)などを含んでもよい。代表的ROMが、マスクROM(MROM)、プログラム可能ROM(PROM)、消去可能プログラム可能ROM(EPROM)、電気的に消去可能プログラム可能ROM(EEPROM)、コンパクトディスクROM(CD−ROM)、およびデジタル多用途ディスクROMなどを含んでもよい。いくつかの実施形態では、データ記憶領域150が、クラウドプラットフォーム上に実装されてもよい。単に実施例として、クラウドプラットフォームが、プライベートクラウド、パブリックプラウド、ハイブリッドクラウド、コミュニティクラウド、分散クラウド、インタークラウド、マルチクラウドなど、またはそれらの任意の組合せを含んでもよい。
【0036】
いくつかの実施形態では、オン・デマンド・サービス・システム100内の1つまたは複数の構成要素(たとえば、サーバ110、1つまたは複数のユーザ端末など)と通信するために、データ記憶領域150をネットワーク120に接続してもよい。オン・デマンド・サービス・システム100内の1つまたは複数の構成要素が、ネットワーク120を介して、データ記憶領域150内に記憶されたデータおよび/または命令にアクセスしてもよい。いくつかの実施形態では、データ記憶領域150が、オン・デマンド・サービス・システム100内の1つまたは複数の構成要素(たとえば、サーバ110、1つまたは複数のユーザ端末など)に直接接続されても、それらと通信してもよい。いくつかの実施形態では、データ記憶領域150が、サーバ110の一部であってもよい。
【0037】
いくつかの実施形態では、オン・デマンド・サービス・システム100内の1つまたは複数の構成要素(たとえば、サーバ110、1つまたは複数のユーザ端末など)が、データ記憶領域150にアクセスする許可を得てもよい。いくつかの実施形態では、オン・デマンド・サービス・システム100内の1つまたは複数の構成要素が、1つまたは複数の条件が満たされたとき、サービス要求者、運転者、および/または公衆に関連する情報を読み出してもよい、および/または修正してもよい。たとえば、サーバ110が、サービス提供後に、1つまたは複数のユーザの情報を読み出してもよい、および/または修正してもよい。別の実施例として、運転者端末140が、乗客端末130からサービスリクエストを受信したとき、サービス要求者に関連する情報にアクセスしてもよいが、サービス要求者の関連情報を修正してはいけない。
【0038】
いくつかの実施形態では、オン・デマンド・サービス・システム100内の1つまたは複数の構成要素による情報交換が、サービスを要求することによって遂行されてもよい。サービスリクエストの対象が、任意の製品であってもよい。いくつかの実施形態では、製品が、有形の製品であっても、無形の製品であってもよい。有形の製品が、食糧、医薬品、日用品、化学製品、電気器具、衣服、乗用車、住宅、ぜいたく品など、またはそれらの任意の組合せを含んでもよい。無形の製品が、サービス財、金融商品、知識製品、インターネット製品など、またはそれらの任意の組合せを含んでもよい。インターネット製品が、個々のホスト製品、ウェブ製品、移動体インターネット製品、商用ホスト製品、組込型製品など、またはそれらの任意の組合せを含んでもよい。移動体インターネット製品を、移動体端末のソフトウェア、プログラム、システムなど、またはそれらの任意の組合せの形で使用してもよい。移動体端末が、タブレットコンピュータ、ラップトップコンピュータ、携帯電話、携帯情報端末(PDA)、スマートウォッチ、POS機器、車載コンピュータ、車載テレビ、ウェアラブル機器など、またはそれらの任意の組合せを含んでもよい。たとえば、製品が、コンピュータまたは携帯電話内で使用する、任意のソフトウェアおよび/またはアプリケーションであってもよい。ソフトウェアおよび/またはアプリケーションが、社交、ショッピング、輸送、娯楽、学習、投資など、またはそれらの任意の組合せに関係があってもよい。いくつかの実施形態では、輸送に関連するソフトウェアおよび/またはアプリケーションが、走行ソフトウェアおよび/またはアプリケーション、車両スケジューリングソフトウェアおよび/またはアプリケーション、マッピングソフトウェアおよび/またはアプリケーションなどを含んでもよい。車両スケジューリングソフトウェアおよび/またはアプリケーションでは、車両が、馬、馬車、人力車(たとえば、手押し車、自転車、三輪車など)、乗用車(たとえば、タクシー、バス、自家用車など)、列車、地下鉄、船、航空機(たとえば、飛行機、ヘリコプタ、スペースシャトル、ロケット、熱気球など)など、またはそれらの任意の組合せを含んでもよい。
【0039】
図2は、サーバ110、1つまたは複数のユーザ端末(たとえば、1つまたは複数の乗客端末130、運転者端末140)が本開示のいくつかの実施形態に従って実装されてもよいコンピューティング機器200の、代表的なハードウェアおよびソフトウェアの構成要素を例示する概略図である。たとえば、処理エンジン112が、コンピューティング機器200上に実装され、本開示で明らかにする処理エンジン112の機能を遂行するように構成されてもよい。
【0040】
コンピューティング機器200が、汎用コンピュータであっても、専用コンピュータであってもよく、両方とも、本開示のためのオン・デマンド・サービス・システム100を実装するために使用されてもよい。コンピューティング機器200を、本明細書に記載するようなオン・デマンド・サービス・システム100の任意の構成要素を実装するために使用してもよい。たとえば、処理エンジン112を、コンピューティング機器200のハードウェア、ソフトウェアプログラム、ファームウェア、またはそれらの組合せによって、コンピューティング機器200上に実装してもよい。便宜上、そのようなコンピュータを1つだけ示すが、本明細書に記載するような、オン・デマンド・サービスに関連するコンピュータ機能を、処理負荷を分配するために、いくつかの類似のプラットフォーム上に分散方式で実装してもよい。
【0041】
コンピューティング機器200が、たとえば、データ通信を容易にするために、コンピューティング機器200に接続されたネットワークに双方向接続されたCOMポート250を含んでもよい。コンピューティング機器200はまた、プログラム命令を実行するためのプロセッサ220を、1つまたは複数のプロセッサの形で含んでもよい。代表的コンピュータプラットフォームが、内部通信バス210、異なる形態のプログラム記憶領域およびデータ記憶領域、たとえば、コンピュータにより処理および/または伝送すべき、さまざまなデータファイルのためのディスク270および読出し専用メモリ(ROM)230、またはランダム・アクセス・メモリ(RAM)240を含んでもよい。代表的コンピュータプラットフォームはまた、ROM230、RAM240、および/または他のタイプの非一時的記憶媒体に記憶された、プロセッサ220により実行すべきプログラム命令を含んでもよい。本開示の方法および/または処理を、プログラム命令として実装してもよい。コンピューティング機器200はまた、I/O構成要素260、ユーザインタフェース要素280などの、コンピュータとコンピュータ内の他の構成要素との間の支援入出力を含む。コンピューティング機器200はまた、ネットワーク通信を介して、プログラミングおよびデータを受信してもよい。
【0042】
コンピューティング機器200はまた、ハードディスクと通信するハード・ディスク・コントローラ、キーパッド/キーボードと通信するキーパッド/キーボードコントローラ、シリアル周辺装置と通信するシリアル・インタフェース・コントローラ、パラレル周辺装置と通信するパラレル・インタフェース・コントローラ、表示装置と通信する表示装置コントローラなど、またはそれらの任意の組合せを含んでもよい。
【0043】
単に例示のために、コンピューティング機器200内の1つのCPUおよび/またはプロセッサだけについて記載している。しかしながら、本開示では、コンピューティング機器200はまた、複数のCPUおよび/またはプロセッサを含んでもよく、その結果、本開示に記載するような、1つのCPUおよび/またはプロセッサにより遂行される動作および/または方法ステップはまた、複数のCPUおよび/またはプロセッサにより、共同でまたは別々に遂行されてもよいことに留意されたい。たとえば、本開示で、コンピューティング機器200のCPUおよび/またはプロセッサが、ステップAとステップBの両方を実行する場合、ステップAおよびステップBはまた、コンピューティング機器200で2つの異なるCPUおよび/またはプロセッサにより、共同でまたは別々に遂行されてもよい(たとえば、第1のプロセッサがステップAを実行し、第2のプロセッサがステップBを実行する、または第1および第2のプロセッサが、ステップAおよびBを共同で実行する)ことを理解されたい。
【0044】
図3は、本開示のいくつかの実施形態による、到着時間を推定するための代表的プロセッサ300の構成図である。プロセッサ300が、コンピュータ可読記憶領域(たとえば、データ記憶領域150、乗客端末130、または運転者端末140など)と通信状態にあってもよく、コンピュータ可読記憶媒体に記憶された命令を実行してもよい。プロセッサ300が、獲得ユニット310、グループ化ユニット320、抽出ユニット330、トレーニングユニット340、および決定ユニット350を含んでもよい。
【0045】
獲得ユニット310が、サービス要求者に関連付けられた1つまたは複数のサービスリクエストを得てもよい。1つまたは複数のサービスリクエストが、対象となる移動、または複数の運転者に関連する1つもしくは複数の過去の移動に関連する情報を含んでもよい。いくつかの実施形態では、対象となる移動が、乗客端末130を介してユーザ(たとえば、乗客)により開始された注文に関連してもよい。いくつかの実施形態では、対象となる移動が、2つ以上の位置間の移動を含んでもよい。いくつかの実施形態では、過去の移動が、完了した1つまたは複数の注文に関係があってもよい。いくつかの実施形態では、過去の移動が、各任意の2つの間の移動を含んでもよい。獲得ユニット310が、乗客端末130または運転者端末140を通して、対象となる移動または過去の移動を得てもよい。獲得ユニット310が、データ記憶領域150から過去の移動を得てもよい。
【0046】
グループ化ユニット320が、獲得ユニット310により得た1つまたは複数の過去の移動を1つまたは複数のグループにグループ化してもよい。いくつかの実施形態では、グループ化ユニット320が、1つまたは複数の過去の移動に関連する経路のリンクのデータ(たとえば、過去の注文に関連する経路のリンクの数)に基づき、1つまたは複数の過去の移動を1つまたは複数のグループにグループ化してもよい。
【0047】
抽出ユニット330が、対象となる移動、または獲得ユニット310により得た1つもしくは複数の過去の移動に関連するデータを抽出してもよい。たとえば、抽出ユニット330が、対象となる移動に関連する特性データ(「サンプル特性データ」とも呼ばれる)を抽出してもよい。別の例として、抽出ユニット330が、1つまたは複数の過去の移動に関連する、過去の特性データおよび過去の到着時間データを抽出してもよい。いくつかの実施形態では、抽出ユニット330が、1つまたは複数の過去の移動に基づき、複数のトレーニング移動を抽出してもよい。複数のトレーニング移動を使用して、到着時間を推定するための予測モデルをトレーニングしてもよい。
【0048】
トレーニングユニット340が、抽出ユニット330により抽出したデータによりモデルをトレーニングしてもよい。たとえば、トレーニングユニット340が、1つまたは複数の過去の移動に基づき、到着時間を推定するための予測モデルをトレーニングしてもよい。
【0049】
決定ユニット350が、到着時間を推定するための予測モデルを決定してもよい。たとえば、決定ユニット350が、対象となる移動に関連する推定到着時間を決定してもよい。
【0050】
図4は、本開示のいくつかの実施形態による代表的トレーニングユニット400の構成図である。トレーニングユニット400が、本開示のいくつかの実施形態によれば、比較構成要素410および補正構成要素20を含んでもよい。
【0051】
比較構成要素410が、照合結果と所定の数値を比較してもよい。たとえば、比較構成要素410はまた、予測モデルをトレーニングしている間に発生した誤差または損失関数と、所定の値を比較して、トレーニングを終了することができるかどうかを判断してもよい。
【0052】
補正構成要素420が、予測モデルのパラメータを修正してもよい。いくつかの実施形態では、予測モデルが、時系列モデルおよび回顧モデルを含む。予測モデルをトレーニングしている間に、補正構成要素420が、時系列モデルに対応するパラメータ、および回帰モデルに対応するパラメータを修正してもよい。
【0053】
図5は、本開示のいくつかの実施形態による、対象となる移動に関連する推定到着時間を決定するための代表的処理500のフローチャートである。いくつかの実施形態では、対象となる移動に関連する推定到着時間を決定するための処理500が、
図1に例示するようなシステム100内に実装されてもよい。いくつかの実施形態では、処理500が、記憶領域150に記憶された1または複数の命令のセットとして実装され、処理エンジン112またはプロセッサ300により呼び出される、および/または実行されてもよい。いくつかの実施形態では、処理500を、ユーザ端末および/またはサーバ内に実装してもよい。
【0054】
510で、プロセッサ300(たとえば、獲得ユニット310)が、対象となる移動に関連する情報を得てもよい。対象となる移動が、1つまたは複数の位置間の移動であってもよい。いくつかの実施形態では、対象となる移動が、乗客端末130を介してユーザ(たとえば、乗客)により開始された注文であってもよい。注文が、開始位置および目的地に関係があってもよい。対象となる移動が、開始位置と目的地の間の移動であってもよい。いくつかの実施形態では、対象となる移動に関連付けられた情報および/またはデータが、開始位置、目的地、開始位置から目的地までの経路、開始時間、対象となる移動に関連する日付データ、交通量データ、対象となる移動に関連するユーザデータ、対象となる移動に関連する走行モードデータなど、またはそれらの任意の組合せを含んでもよい。いくつかの実施形態では、開始位置から目的地までの経路が、1つまたは複数のリンクを含んでもよい。経路のリンクの各々が、経路の少なくとも一部分に対応してもよい。日付データが、年、月、曜日(たとえば、平日、週末、休日)などを含んでもよい。交通量データが、渋滞の状態、交通の平均速度、人通り、車両の交通量など、またはそれらの任意の組合せを含んでもよい。対象となる移動に関連するユーザデータが、対象となる移動に関連するサービス注文を履行することができる運転者などの、対象となる移動に関連するサービスを提供してもよい1人または複数のユーザに関する情報および/またはデータを含んでもよい。ユーザデータが、たとえば、ユーザ識別子、名前、ニックネーム、性別、年齢、電話番号、職業、地位、使用時間、運転経験、車両の使用年数、ナンバープレート番号、運転免許証番号、認証状態、ユーザの習慣/好み(たとえば、運転速度)、追加のサービス能力(乗用車のトランクのサイズ、パノラマ式サンルーフなどのような追加の特徴)など、またはそれらの任意の組合せを含んでもよい。走行モデルに関連する車両が、馬、馬車、人力車(たとえば、自転車、三輪車など)、乗用車(たとえば、タクシー、バス、自家用車など)、列車、地下鉄、船、航空機(たとえば、飛行機、ヘリコプタ、スペースシャトル、ロケット、熱気球など)など、またはそれらの任意の組合せを含んでもよい。対象となる移動に関連する情報および/またはデータを、1つまたは複数のユーザ端末(たとえば、1つもしくは複数の乗客端末130、または1つもしくは複数の運転者端末140)に記憶してもよい。いくつかの実施形態では、対象となる移動に関連する情報および/またはデータを、データ記憶領域150に記憶してもよい。ネットワーク120を介してサーバ110により、対象となる移動に関連する情報および/またはデータにさらにアクセスしてもよい。
【0055】
520で、プロセッサ300が、到着時間を推定するための予測モデルを得てもよい。いくつかの実施形態では、予測モデルを前もってトレーニングしてもよい。代わりにまたは追加で、予測モデルをリアルタイムでトレーニングしてもよい、および/または更新してもよい。予測モデルを、1つまたは複数の機械学習技法を使用してトレーニングしてもよい。いくつかの実施形態では、
図7A〜
図8に関連して説明する、1つまたは複数の動作を遂行することにより、予測モデルを得てもよい。
【0056】
530で、プロセッサ300(たとえば、決定ユニット350)が、予測モデルに基づき、対象となる移動に関連する推定到着時間を決定してもよい。いくつかの実施形態では、プロセッサ300が、対象となる移動の経路に関する走行時間を最初に決定してもよい。次いで、プロセッサ300が、対象となる移動に関連する、走行時間および開始時間に基づき、推定到着時間を決定してもよい。いくつかの実施形態では、ユーザ端末を通してユーザにより開始時間を指定してもよい。いくつかの実施形態では、プロセッサ300が、複数のユーザ(たとえば、輸送サービスを提供することができる、複数の稼働中の運転者)に関する注文に関連する推定到着時間を決定してもよい。ユーザに関連するユーザデータ(たとえば、運転速度)に基づき、異なるユーザに関して、異なる推定到着時間を決定してもよい。たとえば、プロセッサ300が、第1のユーザおよび第2のユーザに関して、それぞれ第1の推定到着時間および第2の推定到着時間を決定することができる。第1のユーザに関連付けられた第1の運転速度(たとえば、平均運転速度)が第2のユーザに関連付けられた第2の運転速度より速いいくつかの実施形態では、第1の推定到着時間を、第2の推定到着時間よりも早くすることができる。いくつかの実施形態では、プロセッサ300が、異なるユーザに関連付けられた異なるユーザデータを考慮することなく、対象となる注文に関連する統一された推定到着時間を決定してもよい。
【0057】
いくつかの実施形態では、推定到着時間に基づき、プロセッサ300が、対象となる注文を履行するのに適したユーザ(たとえば、運転者)を決定してもよい。いくつかの実施形態では、プロセッサ300が、現在の運転者により遂行されている注文(本明細書では「現在の注文」とも呼ばれる)に関連するETAを決定してもよい。現在の注文に関連するETAに基づき、新しい注文を現在の運転者に割り当てるのに適しているかどうかを、プロセッサ300が決定してもよい。
【0058】
いくつかの実施形態では、プロセッサ300が、2つ以上の注文のうち少なくとも1つに関連する少なくとも1つのETAに基づき、2つ以上の注文を組み合わせることができるかどうかを判断してもよい。たとえば、プロセッサ300が、第1の注文(対象となる注文)および第2の注文を受信してもよい。第1の注文が、第1の開始位置、第1の目的地位置、および第1の開始時間に対応してもよい。第2の注文が、第2の開始位置、第2の目的地、および第2の開始時間に対応してもよい。第1の開始時間が、第2の開始時間よりも早い。プロセッサ300が、第1の開始位置と第1の目的地の間の経路に関連する第1のETAを決定してもよい。プロセッサ300はまた、第1の目的地と第2の開始位置の間の経路に関連する第2のETAを決定してもよい。プロセッサ300が、第1のETAまたは第2のETAの少なくとも一方に基づき、第1の注文と第2の注文を一緒にして組み合わせるべきかどうかを判断してもよい。プロセッサ300が、第1の注文と第2の注文を一緒にして組み合わせることができると判断した場合、第1の注文および第2の注文を同じ運転者に割り当ててもよい。
【0059】
図6は、本開示のいくつかの実施形態による、対象となる移動に関連する推定到着時間を決定するための、別の代表的処理600のフローチャートである。いくつかの実施形態では、処理600を、
図1に例示するようなシステム100内に実装してもよい。いくつかの実施形態では、処理600が、記憶領域150に記憶された1または複数の命令のセットとして実装され、処理エンジン112またはプロセッサ300により呼び出される、および/または実行されてもよい。いくつかの実施形態では、処理600を、ユーザ端末および/またはサーバ内に実装してもよい。
【0060】
610で、プロセッサ300(たとえば、抽出ユニット330)が、対象となる移動の特性データ(「サンプル特性データ」とも呼ばれる)を抽出してもよい。いくつかの実施形態では、サンプル特性データが、第1の特徴データおよび第2の特徴データを含んでもよい。本明細書で使用する第1の特徴データが、対象となる移動の経路に関連付けられた1つまたは複数の特徴に関連するデータを指してもよい。たとえば、第1の特徴データが、経路の開始位置、経路の目的地、経路に関連する1つもしくは複数の交通信号灯に関するデータ、経路のリンクの数、経路内の1つもしくは複数の交差点に関するデータ、経路に関連するタイミングデータ、交通量データ、経路に関連するユーザデータ、経路に関連する走行モードデータなど、またはそれらの任意の組合せを含んでもよい。タイミングデータが、年、月、曜日(たとえば、平日、週末、休日)、時刻などを含んでもよい。交通量データが、渋滞の状態、交通の平均速度、人通り、車両の交通量など、またはそれらの任意の組合せを含んでもよい。経路に関連するユーザデータが、経路に関連するサービス注文を履行することができる運転者などの、経路に関連するサービスを提供してもよい1人または複数のユーザに関する情報および/またはデータを含んでもよい。ユーザデータが、たとえば、ユーザ識別子、名前、ニックネーム、性別、年齢、電話番号、職業、地位、使用時間、運転経験、車両の使用年数、ナンバープレート番号、運転免許証番号、認証状態、ユーザの習慣/好み、追加のサービス能力(乗用車のトランクのサイズ、パノラマ式サンルーフなどのような追加の特徴)など、またはそれらの任意の組合せを含んでもよい。走行モデルに関連する車両が、馬、馬車、人力車(たとえば、自転車、三輪車など)、乗用車(たとえば、タクシー、バス、自家用車など)、列車、地下鉄、船、航空機(たとえば、飛行機、ヘリコプタ、スペースシャトル、ロケット、熱気球など)など、またはそれらの任意の組合せを含んでもよい。1つまたは複数の交通信号灯に関するデータが、交通信号灯の数、交通信号灯の状態などを含んでもよい。1つまたは複数の交差点に関するデータが、交差点の数、交差点の交通量などを含んでもよい。
【0061】
いくつかの実施形態では、本明細書で使用する第2の特徴データが、対象となる移動の経路の1つまたは複数のリンクに関連付けられた1つまたは複数の特徴に関連するデータを指してもよい。経路に関連する地図データ(たとえば、経路の地図)に基づき、経路を1つまたは複数の部分にセグメント化することができる。リンクの各々が、経路の一部分に対応してもよい。いくつかの実施形態では、1つまたは複数の所定のコンピュータ実装規則に基づき、経路を複数のリンクにセグメント化してもよい。いくつかの実施形態では、異なる技法を使用して、経路を複数の、リンクのグループにセグメント化してもよい。対象となる移動に関連する第2の特徴データが、経路の各リンクに対応する特徴データを含んでもよい。リンクに対応する特徴データが、リンクに関連する識別データ(たとえば、識別)、リンクに関連する1つまたは複数の交通信号灯に関するデータ、リンクに関連する1つまたは複数の交差点に関するデータ、リンクに関連するタイミングデータ、リンクに関連する交通量データ、リンクに関連するユーザデータ、リンクに関連する走行モードデータなど、またはそれらの任意の組合せを含んでもよい。リンクの識別するデータが、リンクの固有識別子などの、リンクを識別するために使用することができる任意の情報を含むことができる。経路の各リンクに関連するタイミングデータが、年、月、曜日(たとえば、平日、週末、休日)、時刻などを含んでもよい。経路の各リンクに関連する交通量データが、渋滞の状態、交通の平均速度、人通り、車両の交通量など、またはそれらの組合せを含んでもよい。経路の各リンクに関連するユーザデータが、(たとえば、リンクを含む経路のために輸送サービスを提供することにより)リンクに関連する注文を履行してもよいユーザに関する情報および/またはデータを含んでもよい。ユーザに関する情報および/またはデータが、ユーザ識別子、名前、ニックネーム、性別、年齢、電話番号、職業、地位、使用時間、運転経験、車両の使用年数、ナンバープレート番号、運転免許証番号、認証状態、ユーザの習慣/好み(通常の運転速度)、追加のサービス能力(乗用車のトランクのサイズ、パノラマ式サンルーフなどのような追加の特徴)など、またはそれらの任意の組合せを含んでもよい。経路の各リンクに関連する走行モデルに関連する車両が、馬、馬車、人力車(たとえば、自転車、三輪車など)、乗用車(たとえば、タクシー、バス、自家用車など)、列車、地下鉄、船、航空機(たとえば、飛行機、ヘリコプタ、スペースシャトル、ロケット、熱気球など)など、またはそれらの任意の組合せを含んでもよい。経路の各リンクに関連する1つまたは複数の交通信号灯に関するデータが、リンクの交通信号灯の数、リンクの交通信号灯の状態などを含んでもよい。経路の各リンクに関連する1つまたは複数の交差点に関するデータが、リンクの交差点の数、リンクの交差点の交通量データなどを含んでもよい。いくつかの実施形態では、対象となる移動の第2の特徴データが、経路の各リンクに対応する特徴データにより時間順に構成された時間シーケンスであってもよい。いくつかの実施形態では、プロセッサ300が、経路の1つまたは複数のリンクに関する1つまたは複数の特徴ベクトルを生成してもよい。たとえば、プロセッサが、リンクの識別、ユーザ識別子(たとえば、運転者の識別子)などに基づき、第1の特徴ベクトルを生成することができる。いくつかの実施形態では、第1の特徴ベクトルが、埋込ベクトルであってもよい。別の実施例では、プロセッサが、1つまたは複数の離散的特徴、たとえば、リンクに関連するタイミング情報、1週間の曜日のインデックスなどに基づき、第2の特徴ベクトルを生成することができる。いくつかの実施形態では、プロセッサ300が、第2の特徴ベクトルを処理して、ワン・ホット(one−hot)・ベクトルを生成してもよい。さらに別の実施例として、プロセッサが、1つまたは複数の数値的特徴、たとえば、リンクに関連するリアルタイムの速度、リンクに関連するETAなどに基づき、第3の特徴ベクトルを生成することができる。いくつかの実施形態では、対象となる移動の第2の特徴データが、第1の特徴ベクトル、第2の特徴ベクトル、および/または第3の特徴ベクトルのうち1つまたは複数を含んでもよい。
【0062】
620で、プロセッサ(たとえば、獲得ユニット310)が、予測モデルを得てもよい。いくつかの実施形態では、予測モデルが、時系列モデルおよび回顧モデルを含んでもよい。時系列モデルが、再帰型ニューラルネットワーク、畳込みニューラルネットワーク、隠れマルコフ(Markov)モデル、パーセプトロン・ニューラル・ネットワーク、ホップフィールドネットワーク、自己組織化マップ(SOM)、学習ベクトル量子化(LVQ)など、またはそれらの任意の組合せを含んでもよい。回帰モデルが、多層パーセプトロン・ニューラル・ネットワーク、ブースティング・アルゴリズム・モデル、ロジスティック回帰モデル、段階的回帰モデル、多変量適応型回帰スプライン、局所推定散布図平滑化など、またはそれらの任意の組合せを含んでもよい。
【0063】
630で、プロセッサ300(たとえば、決定ユニット350)が、予測モデルに基づき、隠れ状態情報を決定してもよい。いくつかの実施形態では、予測モデル(たとえば、時系列モデル)および第2の特徴データに基づき、隠れ状態情報を決定してもよい。たとえば、プロセッサ300が、予測モデル(たとえば、時系列モデル)に基づき、第2の特徴データを処理して、隠れ状態情報を出力することができる。より詳細には、たとえば、経路のリンクに対応する、時間シーケンスの形の特徴データを、時系列モデルに、時間順に入力してもよい。プロセッサ300が、時系列モデル(たとえば、再帰型ニューラルネットワーク)を使用して、第1のリンクに対応する特徴データを処理することにより、第1の出力を生成してもよい。次いで、第2のリンクに対応する、時間シーケンスの形の特徴データ、および第1の出力を、時系列モデルに入力して、第2の出力を生成してもよい。その他のリンクの特徴データを、類似の手法で処理してもよい。第1のリンクに対応する特徴データが時系列モデルに入力されたとき、最終出力が生成される。いくつかの実施形態では、隠れ状態情報が、時系列モデルの最終出力であってもよい。いくつかの実施形態では、リンクの識別に基づき決定した注文で、時系列モデル(たとえば、再帰型ニューラルネットワーク)を使用して、リンクの特徴データを処理してもよい。
【0064】
ステップ640で、プロセッサ300(たとえば、決定ユニット350)が、隠れ状態情報、特性データ、および/または予測モデルに基づき、対象となる移動に関連する推定到着時間を決定してもよい。いくつかの実施形態では、630で生成した隠れ状態情報、および対象となる移動に関連する第1の特徴データを回帰モデルに入力して、対象となる移動に関連する推定到着時間を決定してもよい。回顧モデルが、多層パーセプトロン・ニューラル・ネットワークを含んでもよい。
【0065】
図7Aは、本開示のいくつかの実施形態による、予測モデルを決定するための代表的処理700のフローチャートである。いくつかの実施形態では、処理700を、
図1に例示するようなシステム100内に実装してもよい。いくつかの実施形態では、処理700が、記憶領域150に記憶された1組または複数組の命令として実装され、処理エンジン112またはプロセッサ300により呼び出される、および/または実行されてもよい。いくつかの実施形態では、処理700を、ユーザ端末および/またはサーバ内に実装してもよい。
【0066】
710で、プロセッサ300(たとえば、獲得ユニット310)が、1つまたは複数の過去の移動に関連する情報を得てもよい。過去の移動が、1つまたは複数の過去の注文に関係があってもよい。過去の移動の各々が、1つまたは複数の位置間の移動を含むことができる。いくつかの実施形態では、過去の注文が、オンライン・サービス・プラットフォームの特定のユーザ(たとえば、輸送サービスプラットフォームの、一定数の運転者、特定の時間にサービスを提供するために利用できる運転者)に関連してもよい。過去の移動が、特定の期間中の、たとえば、この数か月、この半年、この10か月、この1年、この2年などの移動を含んでもよい。過去の移動が、週末または仕事日の移動を含んでもよい。別の実施例として、過去の移動が、所与の時間帯の間の(たとえば、午前中の、午後の、夜の)注文を含んでもよい。過去の移動が、1つまたは複数の特定の位置(たとえば、都市、都市の地区)での移動を含んでもよい。
【0067】
プロセッサ300が、データ記憶領域150から1つまたは複数の過去の移動に関するデータを得てもよい。また、ネットワーク120を介してサーバ110により、1つまたは複数の過去の移動に関連する情報および/またはデータにアクセスしてもよい。いくつかの実施形態では、1つまたは複数の過去の移動に関連する情報および/またはデータを、ユーザ端末(たとえば、乗客端末130または運転者端末140)に記憶してもよい。たとえば、過去の移動に関連する情報および/またはデータが、通常は位置に基づくサービス(LBS)アプリケーション(たとえば、運転アプリケーション、地図アプリケーション、ナビエーションアプリケーション、ソーシャル・メディア・アプリケーションなど)で生成され、その中に記録されてもよい。別の実施例として、1つまたは複数の過去の移動に関連する情報および/またはデータを、LBSアプリケーションによりダウンロードした過去の地図情報により記録してもよい。
【0068】
いくつかの実施形態では、1つまたは複数の過去の移動に関連する情報および/またはデータが、過去の移動の特性データ(本明細書では「過去の特性データ」とも呼ばれる)を含んでもよい。過去の特性データが、過去の移動に関連する経路に対応する1つまたは複数の特徴に関連するデータ(本明細書では「第1の過去の特徴データ」とも呼ばれる)、および/または過去の移動に関連する1つまたは複数のリンクに対応する1つまたは複数の特徴に関連するデータ(本明細書では「第2の過去の特徴データ」とも呼ばれる)を含んでもよい。過去の移動に関連する第1の過去の特徴データが、過去の移動に関連する経路の開始位置、過去の移動に関連する経路の目的地、過去の移動に関連する経路に関連する1つまたは複数の交通信号灯に関するデータ、過去の移動に関連する経路のリンクの数、過去の移動に関連する経路内の1つまたは複数の交差点に関するデータ、過去の移動の経路に関連するタイミングデータ、交通量データ、過去の移動の経路に関連するユーザデータ、過去の移動の経路に関連する走行モードデータなど、またはそれらの任意の組合せを含んでもよい。タイミングデータが、年、月、曜日(たとえば、平日、週末、休日)、時刻などを含んでもよい。交通量データが、渋滞の状態、交通の平均速度、人通り、車両の交通量など、またはそれらの任意の組合せを含んでもよい。経路に関連するユーザデータが、車両を運転して、対象となる移動を遂行してもよいユーザに関する情報および/またはデータ、たとえば、ユーザ識別子、名前、ニックネーム、性別、年齢、電話番号、職業、地位、使用時間、運転経験、車両の使用年数、ナンバープレート番号、運転免許証番号、認証状態、ユーザの習慣/好み(通常の運転速度)、追加のサービス能力(乗用車のトランクのサイズ、パノラマ式サンルーフなどのような追加の特徴)など、またはそれらの任意の組合せを含んでもよい。走行モデルに関連する車両が、馬、馬車、人力車(たとえば、自転車、三輪車など)、乗用車(たとえば、タクシー、バス、自家用車など)、列車、地下鉄、船、航空機(たとえば、飛行機、ヘリコプタ、スペースシャトル、ロケット、熱気球など)など、またはそれらの任意の組合せを含んでもよい。1つまたは複数の交通信号灯に関するデータが、交通信号灯の数、交通信号灯の状態などを含んでもよい。1つまたは複数の交差点に関するデータが、交差点の数、交差点の交通量データなどを含んでもよい。
【0069】
いくつかの実施形態では、過去の移動に関連する第2の過去の特徴データが、過去の移動の経路の1つまたは複数のリンクに関するデータを含んでもよい。いくつかの実施形態では、過去の移動に関連する第2の過去の特徴データが、過去の移動に関連する経路の各リンクに対応する特徴データを含んでもよい。過去の移動に関連する経路のリンクに対応する特徴データが、リンクに関連する、識別するデータ(たとえば、識別子)、リンクに関連する1つまたは複数の交通信号灯に関するデータ、リンクに関連する1つまたは複数の交差点に関するデータ、リンクに関連するタイミングデータ、リンクに関連する交通量データ、リンクに関連するユーザデータ、リンクに関連する走行モードデータなど、またはそれらの任意の組合せを含んでもよい。リンクの識別するデータが、リンクの固有識別子などの、リンクを識別するために使用することができる任意の情報を含むことができる。経路の各リンクに関連するタイミングデータが、年、月、曜日(たとえば、平日、週末、休日)、時刻などを含んでもよい。過去の移動に関連する経路の各リンクに関連する交通量データが、渋滞の状態、走行の平均速度、人通り、車両の交通量など、またはそれらの組合せを含んでもよい。過去の移動に関連する経路の各リンクに関連するユーザデータが、(たとえば、リンクを含む経路のために輸送サービスを提供することにより)リンクに関連する注文を履行してもよいユーザに関する情報および/またはデータを含んでもよい。ユーザに関する情報および/またはデータが、識別記号、名前、ニックネーム、性別、年齢、電話番号、職業、地位、使用時間、運転経験、車両の使用年数、ナンバープレート番号、運転免許証番号、認証状態、ユーザの習慣/好み(たとえば、運転速度)、追加のサービス能力(乗用車のトランクのサイズ、パノラマ式サンルーフなどのような追加の特徴)など、またはそれらの任意の組合せを含んでもよい。過去の移動に関連する経路の各リンクに関連する走行モデルに関連する車両が、馬、馬車、人力車(たとえば、自転車、三輪車など)、乗用車(たとえば、タクシー、バス、自家用車など)、列車、地下鉄、船、航空機(たとえば、飛行機、ヘリコプタ、スペースシャトル、ロケット、熱気球など)など、またはそれらの任意の組合せを含んでもよい。過去の移動に関連する経路の各リンクに関連する交通信号灯に関するデータが、リンクの交通信号灯の数、リンクの交通信号灯の状態などを含んでもよい。過去の移動に関連する経路の各リンクに関連する1つまたは複数の交差点に関するデータが、リンクの交差点の数、リンクの交差点の交通量データなどを含んでもよい。
【0070】
いくつかの実施形態では、プロセッサ300が、過去の移動に関連する経路の1つまたは複数のリンクに関する1つまたは複数の特徴ベクトルを生成してもよい。たとえば、プロセッサ300が、リンクの識別、ユーザ識別子(たとえば、運転者の識別子)などに基づき、第1の過去の特徴ベクトルを生成してもよい。いくつかの実施形態では、第1の過去の特徴ベクトルが、埋込ベクトルであってもよい。別の実施例として、プロセッサ300が、1つまたは複数の離散的特徴、たとえば、リンクに関連するタイミング情報、1週間の曜日のインデックスなどに基づき、第2の過去の特徴ベクトルを生成してもよい。いくつかの実施形態では、プロセッサ300が、第2の過去の特徴ベクトルを処理して、ワン・ホット・ベクトルを生成してもよい。さらに別の実施例では、プロセッサ300が、1つまたは複数の数値的特徴、たとえば、リンクに関連するリアルタイムの速度、リンクに関連するETAなどに基づき、第3の過去の特徴ベクトルを生成してもよい。いくつかの実施形態では、過去の移動の第2の過去の特徴データが、第1の過去の特徴ベクトル、第2の過去の特徴ベクトル、および/または第3の過去の特徴ベクトルのうち1つまたは複数を含んでもよい。
【0071】
プロセッサ300はまた、過去の移動の各々に関連する到着時間(本明細書では「過去の到着時間データ」とも呼ばれる)を得てもよい。過去の移動の各々に関連する到着時間が、過去の移動が完了した実際の時間であってもよい。
【0072】
720で、プロセッサ300が、1つまたは複数の過去の移動に関するデータ(たとえば、過去の特性データおよび過去の到着時間データ)に基づき、トレーニングデータを生成してもよい。いくつかの実施形態では、トレーニングデータが、過去の移動に関連する、過去の特性データおよび過去の到着時間データを含んでもよい。いくつかの実施形態では、トレーニングデータが、過去の移動のうち1つまたは複数から抽出したデータ(本明細書では「トレーニング移動」とも呼ばれる)を含んでもよい。トレーニング移動を、任意の適切な1つおよび/または複数の判断基準に基づき、過去の移動から選択することができる。たとえば、プロセッサ300が、1つまたは複数の過去の移動から、特定の期間(たとえば、1年、1か月、1日)内に行われた過去の移動を、トレーニング移動として選択してもよい。別の実施例では、プロセッサ300が、1つまたは複数の過去の移動から、特定の位置(たとえば、都市、都市の地区)で行われた過去の移動を、トレーニング移動として選択してもよい。いくつかの実施形態では、トレーニングデータが、過去の移動に関連する、過去の特性データおよび過去の到着時間データを含んでもよい。いくつかの実施形態では、トレーニングデータに関連する過去の特性データが、トレーニング移動に関連する経路に関するデータ、トレーニング移動に関連する1つまたは複数のリンクに関するデータ、トレーニング移動に関連する実際の到着時間に関するデータなどを含んでもよい。
【0073】
いくつかの実施形態では、トレーニング移動の各々に関連する経路のリンクの数が、1つまたは複数の条件を満たしてもよい。たとえば、リンクの数が、第1のしきい値未満であってもよい。別の実施例として、リンクの数が、第2のしきい値よりも多くてもよい。さらに別の実施例として、リンクの数が、ある範囲(たとえば、第1のしきい値と第2のしきい値の間の範囲)内に入ってもよい。なお別の実施例として、トレーニング移動に関連する経路のリンクの最大数と、トレーニング移動に関連する経路のリンクの最小数の差が、事前設定したしきい値を超えない。事前設定したしきい値が、任意の合理的値であってもよい。
【0074】
730で、プロセッサ300(たとえば、決定ユニット350)が、トレーニングデータに基づき、予測モデルを決定してもよい。予測モデルに基づき、プロセッサ300が、処理500および/または600に関連して説明した1つまたは複数の動作を遂行することにより、対象となる移動に関連する推定到着時間を決定してもよい。
【0075】
図7Bは、本開示のいくつかの実施形態による、トレーニングデータを生成するための代表的処理701のフローチャートである。いくつかの実施形態では、処理701を、
図1に例示するようなシステム100内に実装してもよい。いくつかの実施形態では、処理701が、記憶領域150に記憶された1または複数の命令のセットとして実装され、処理エンジン112またはプロセッサ300により呼び出される、および/または実行されてもよい。いくつかの実施形態では、処理701を、ユーザ端末および/またはサーバ内に実装してもよい。
【0076】
715で、プロセッサ300(たとえば、グループ化ユニット320)が、1つまたは複数の過去の移動に関連するリンクに基づき、1つまたは複数の過去の移動を1つまたは複数のグループにグループ化してもよい。いくつかの実施形態では、過去の移動に対応する経路が、異なる数のリンクを含んでもよい。プロセッサ300が、過去の移動に関連付けられたリンクの数に基づき、過去の移動を1つまたは複数のグループに分割してもよい。グループの各々が、特定の数のリンクおよび/またはある範囲の数のリンクに対応してもよい。いくつかの実施形態では、過去の移動に関連するリンクの最大数、および/または過去の移動に関連するリンクの最小数に基づき、リンクの数の、1つまたは複数の範囲を決定してもよい。たとえば、リンクの最大数とリンクの最小数の間の範囲を1つまたは複数の部分に分離することにより、1つまたは複数の範囲を決定してもよい。たとえば、リンクの数を3つの範囲に分割してもよい(たとえば、[1,10]、[11,20]、[21,30])。次いでそれに従って、プロセッサ300(たとえば、グループ化ユニット320)が、リンクの数に基づき、過去の移動を3つのグループ(たとえば、グループA、グループB、およびグループC)にグループ化してもよい。たとえば、リンクの数が範囲[1,10]にある過去の移動を、グループAにグループ化してもよい。リンクの数が範囲[11,20]にある過去の移動を、グループBにグループ化してもよい。リンクの数が範囲[21,30]にある過去の移動を、グループCにグループ化してもよい。
【0077】
725で、プロセッサ300(たとえば、抽出ユニット330)が、過去の移動の1つまたは複数のグループごとに、過去の特性データおよび過去の到着時間データを抽出してもよい。
【0078】
735で、プロセッサ300が、過去の移動の1つまたは複数のグループごとに、過去の特性データおよび過去の到着時間データに基づき、トレーニングデータを生成してもよい。プロセッサ300が、グループでの過去の特性データおよび過去の到着時間データに基づき、予測モデルを決定してもよい。いくつかの実施形態では、グループごとに、プロセッサ300が、ETA決定モジュールを決定してもよい。いくつかの実施形態では、プロセッサ300が、グループに関する過去の特性データおよび過去の到着時間データに基づき、ETA決定モデルを決定してもよい。たとえば、予測モデルをトレーニングするための処理が、いくつかの段階を含んでもよい。異なる段階で、異なるグループに対応する、過去の特性データおよび過去の到着時間データを使用してもよい。いくつかの実施形態では、プロセッサ300が、各グループから過去の特性データおよび過去の到着時間データの一部分を抽出して、トレーニングデータを生成してもよい。
【0079】
本開示のいくつかの実施形態によれば、プロセッサ300(たとえば決定ユニット350)が、トレーニングデータに基づき、予測モデルを決定してもよい。予測モデルに基づき、プロセッサ300が、(たとえば、処理500および/または600に関連して説明した1つまたは複数の動作を遂行することにより)対象となる移動に関連する推定到着時間を決定してもよい。
【0080】
図8は、本開示のいくつかの実施形態による、予測モデルを決定するための代表的処理800のフローチャートである。いくつかの実施形態では、予測モデルを決定するための処理800を、
図1に例示するようなシステム100内に実装してもよい。いくつかの実施形態では、処理800が、記憶領域150に記憶された1または複数の命令のセットとして実装され、処理エンジン112またはプロセッサ300により呼び出される、および/または実行されてもよい。いくつかの実施形態では、処理800を、ユーザ端末および/またはサーバ内に実装してもよい。
【0081】
810で、プロセッサ300(たとえば、獲得ユニット310)が、1つまたは複数の過去の移動を得てもよい。たとえば、ステップ710に関連して説明した1つまたは複数の動作を遂行してもよい。
【0082】
820で、プロセッサ300が、1つまたは複数の過去の移動に基づき、1つまたは複数の初期トレーニング移動(本明細書では「第1の複数のトレーニング移動」とも呼ばれる)を得てもよい。いくつかの実施形態では、プロセッサ300が、過去の移動から1つまたは複数の移動を初期トレーニング移動として選択してもよい。いくつかの実施形態では、プロセッサ300が、1つまたは複数の過去の移動を1つまたは複数のグループに分割してもよい。次いで、プロセッサ300が、1つのグループ内の過去の移動を初期トレーニング移動として選択してもよい。たとえば、ステップ715に関連して説明した1つまたは複数の動作を遂行することにより、過去の移動を分割してもよい。いくつかの実施形態では、プロセッサ300が、グループの1つまたは複数から1つまたは複数の過去の移動を選択して、初期トレーニング移動を生成してもよい。
【0083】
830で、プロセッサ300(たとえば、抽出ユニット330)が、初期トレーニング移動に基づき、初期トレーニングデータを生成してもよい。いくつかの実施形態では、初期トレーニングデータが、初期トレーニング移動に関連する特性データ(本明細書では「第1の過去の特性データ」とも呼ばれる)、および初期トレーニング移動に関連する到着時間(本明細書では「第1の過去の到着時間データ」とも呼ばれる)を含んでもよい。
【0084】
840で、プロセッサ300(たとえば、決定ユニット350)が、初期トレーニングデータに基づき、第1のETA決定モデルを決定してもよい。第1のETA決定モデルが、時系列モデルおよび回帰モデルの少なくとも一方を含んでもよい。前もってトレーニングした時系列モデルが、再帰型ニューラルネットワーク、畳込みニューラルネットワーク、隠れマルコフモデル、パーセプトロン・ニューラル・ネットワーク、ホップフィールドネットワーク、自己組織化マップ(SOM)、もしくは学習ベクトル量子化(LVQ)など、またはそれらの任意の組合せを含んでもよい。回帰モデルが、多層パーセプトロン・ニューラル・ネットワーク、ブースティングアルゴリズム、ロジスティック回帰モデル、段階的回帰モデル、多変量適応型回帰スプライン、局所推定散布図平滑化など、またはそれらの任意の組合せを含んでもよい。
【0085】
850で、プロセッサ300(たとえば、獲得ユニット310)が、1つまたは複数の過去の移動に基づき、1つまたは複数の更新されたトレーニング移動(「第2の複数のトレーニング移動」とも呼ばれる)を得てもよい。第2の複数のトレーニング移動を、820に関連して説明した1つまたは複数の動作を遂行することにより決定してもよい。
【0086】
860で、プロセッサ300が、更新されたトレーニング移動に基づき、更新されたトレーニングデータを生成してもよい。更新されたトレーニングデータが、更新されたトレーニング移動に関連する過去の特性データ、および更新されたトレーニング移動に関連する過去の到着時間データを含んでもよい。
【0087】
870で、プロセッサ300(たとえば、決定ユニット350)が、更新されたトレーニングデータに基づき、第2のETA決定モデルを決定してもよい。いくつかの実施形態では、プロセッサ300(たとえば、トレーニングユニット340内の補正構成要素420)が、第2の過去の特性データおよび第2の過去の到着時間データに基づき、第1のETA決定モデル(たとえば、時系列モデルまたは回帰モデルの少なくとも一方)の少なくとも1つのパラメータを修正して、第2のETA決定モデルを決定してもよい。たとえば、プロセッサ300が、第1のETA決定モデル、および更新されたトレーニング移動に関連する過去の特性データに基づき、第2の複数のトレーニング移動ごとに、推定到着時間を決定してもよい。次いで、プロセッサ300が、第2の複数のトレーニング移動の推定到着時間と、第2の過去の到着時間データを比較してもよい。プロセッサ300が、比較に基づき、比較結果を生成することができる。比較結果が、第2の複数のトレーニング移動の推定到着時間と第2の過去の到着時間の差を示してもよい。プロセッサ300が、比較結果に基づき、第1のETA決定モデル内のパラメータを修正すべきかどうかを判断してもよく、第1のETA決定モデルの少なくとも1つのパラメータを修正するための調整値を決定することができる。いくつかの実施形態では、プロセッサ300が、第2の複数のトレーニング移動の推定到着時間と第2の過去の到着時間データの間に比較的大きな差があるという判断に応答して、比較的大きな調整値を生成する可能性がある。同様に、プロセッサ300が、第2の複数のトレーニング移動の推定到着時間と第2の過去の到着時間データの間に比較的小さな差があるという判断に応答して、比較的小さな調整値を生成する可能性がある。
【0088】
880で、プロセッサ300が、適合条件を満たすかどうかを判断してもよい。いくつかの実施形態では、適合条件を満たす場合、プロセッサ300が、第2のETA決定モデルを予測モデルとして決定してもよい。適合条件を満たさない場合、プロセッサ300が、ステップ850〜ステップ880を再び遂行して、新しいトレーニングデータを得て、モデルをトレーニングして、予測モデルを決定してもよい。
【0089】
いくつかの実施形態では、適合条件が、損失関数が第1の値に収束するかどうかの判断を含んでもよい。損失関数を、第1のETA決定モデルおよび/または第2のETA決定モデルに基づき、決定してもよい。たとえば、損失関数が第1の値に収束する場合、890で、プロセッサ300が、第2のETA決定モデルを予測モデルとして決定してもよい。損失関数が第1の値に収束しない場合、プロセッサ300が、850に再び戻ってもよい。
【0090】
いくつかの実施形態では、適合条件が、誤差が第2の値未満であるかどうかの判断を含んでもよい。1つまたは複数の過去の移動から得られる第3の複数の過去の移動(「試験移動」とも呼ばれる)、および第2のETA決定モデルに基づき、誤差を決定してもよい。たとえば、プロセッサ300が、1つまたは複数の過去の移動から第3の複数の移動を選択してもよい。第3の複数の移動が、初期トレーニング移動および更新されたトレーニング移動と異なってもよい。プロセッサ300(たとえば、抽出ユニット330)が、試験移動に関連する特性データ(本明細書では「第3の過去の特性データ」とも呼ばれる)、および第3の複数の過去の移動に関連する到着時間(本明細書では「第3の過去の到着時間データ」とも呼ばれる)を抽出してもよい。第3の過去の特性データが、第3の複数の過去の移動の各々に関連する経路に対応する特徴データ、および第3の複数の過去の移動の各々に関連する経路の1つまたは複数のリンクに対応する特徴データを含んでもよい。第3の過去の特性データおよび第2のETA決定に基づき、プロセッサ300(たとえば、決定ユニット350)が、第3の複数の過去の移動に関連する推定到着時間を決定してもよい。次いで、プロセッサ300が、第3の複数の過去の移動に関連する推定到着時間と、第3の複数の過去の移動に関連する第3の過去の到着時間データとの間の誤差を決定してもよい。誤差が第2の値未満である場合、890で、プロセッサ300が、第2のETA決定モデルを予測モデルとして決定してもよい。誤差が第2の値以上である場合、プロセッサ300が、850までループを戻ってもよい。
【0091】
いくつかの実施形態では、適合条件が、誤差が第2の値未満であるかどうかの判断、および損失関数が第1の値に収束するかどうかの判断を含んでもよい。第2の値および損失関数が、任意の合理的値であってもよい。
【0092】
基本的な考え方について上に述べたように説明してきたが、この詳細な開示を読んだ後、前述の詳細な開示が、実施例としてだけ提示されることが意図され、限定していないことが当業者にはかなり明らかになるであろう。本明細書で明示的に言及していないが、さまざまな改変、改善、および修正が行われてもよく、当業者に意図される。これらの改変、改善、および修正が、この開示により示唆されることが意図され、この開示の代表的実施形態の精神および範囲に入る。
【0093】
さらに、本開示の実施形態を説明するために、ある種の専門用語を使用してきた。たとえば、用語「一実施形態(one embodiment)」、「ある実施形態(an embodiment)」、および/または「いくつかの実施形態」は、その実施形態に関連して説明する特定の特徴、構造、または特性が、本開示の少なくとも1つの実施形態に含まれることを意味する。したがって、本明細書のさまざまな部分で「ある実施形態」または「一実施形態」または「代替実施形態」への2つ以上の参照が、すべて同じ実施形態を参照しているわけでは必ずしもないことを、強調されており、認識されたい。さらに、特定の特徴、構造、または特性を、本開示の1つまたは複数の実施形態で、適切であるとして組み合わせてもよい。
【0094】
さらに、本開示の様態について、任意の新しく有用な処理、機械、製品、もしくは組成物、またはそれらの任意の新しく有用な改善を含む、任意の数の特許性のあるクラスまたは関係のいずれかで、本明細書で例示し、説明している場合があることが当業者には理解されるであろう。それに応じて、本開示の様態を、完全にハードウェアで、完全にソフトウェアで(ファームウェア、常駐ソフトウェア、マイクロコードなどを含む)、または本明細書で一般にすべて「モジュール」、「ユニット」、「構成要素」、「機器」または「システム」と呼ぶ場合がある、ソフトウェアとハードウェアを組み合わせる実装で、実装してもよい。さらに、本開示の様態が、具体化されたコンピュータ可読プログラムコードを有する1つまたは複数のコンピュータ可読媒体の形で具体化されたコンピュータプログラム製品の形をとってもよい。
【0095】
コンピュータ可読信号媒体が、中に具体化された、たとえば、ベースバンドの中に、または搬送波の一部として具体化された、コンピュータ可読プログラムコードを有する、伝播データ信号を含んでもよい。そのような伝播信号が、電磁的、光学的など、またはそれらの任意の適切な組合せを含むさまざまな形のいずれをとってもよい。コンピュータ可読信号媒体が、コンピュータ可読記憶媒体ではなく、かつ命令実行システム、装置、または機器により、またはそれらと接続して使用するために、プログラムを伝達し、伝搬し、または転送してもよい、任意のコンピュータ可読媒体であってもよい。コンピュータ可読信号媒体上に具体化されたプログラムコードを、無線、有線、光ファイバケーブル、RFなど、または前述の任意の適切な組合せを含む、任意の適切な媒体を使用して伝送してもよい。
【0096】
本開示の様態に関する動作を行うためのコンピュータ・プログラム・コードを、Java(登録商標)、Scala、Smalltalk、Eiffel、JADE、Emerald、C++、C#、VB.NET、Pythonなどのようなオブジェクト指向プログラミング言語、「C」プログラミング言語、Visual Basic、Fortran 2003、Perl、COBOL 2002、PHP、ABAPなどの従来の手続き型プログラミング言語、Python、Ruby、およびGroovyなどの動的プログラミング言語、または他のプログラミング言語を含む、1つまたは複数のプログラミング言語の任意の組合せで書いてもよい。プログラムコードが、ユーザのコンピュータ上で全部を、スタンド・アロン・ソフトウェア・パッケージとしてユーザのコンピュータ上で一部を、ユーザのコンピュータ上で一部を、かつ遠隔コンピュータ上で一部を、または遠隔コンピュータもしくはサーバ上で全部を実行されてもよい。遠隔コンピュータまたはサーバ上で全部を実行するシナリオでは、遠隔コンピュータが、ローカル・エリア・ネットワーク(LAN)もしくは広域ネットワーク(WAN)を含む、任意のタイプのネットワークを通してユーザのコンピュータに接続されてもよい、または接続が、(たとえば、インターネットサービス提供者を使用してインターネットを通して)外部コンピュータに行われても、クラウドコンピューティング環境で行われても、SaaS(software as a service)などのサービスとして提供されてもよい。
【0097】
その結果さらに、処理要素もしくはシーケンスについて説明する順序、または数値、文字、もしくは他の指定の使用が、特許請求の範囲で指定する場合があるときを除いて、特許請求される処理および方法を任意の順序に限定することを意図するものではない。上記の開示は、開示のさまざまな有用な実施形態であると現在考えられることを、さまざまな実施例を通して説明しているが、そのような詳細が、単にその目的のためだけのものであること、および添付の特許請求の範囲が、開示する実施形態に限定されるのではなく、それどころか、開示する実施形態の精神および範囲に入る修正形態および均等の構成を包含することが意図されることを理解されたい。たとえば、上述のさまざまな構成要素の実装が、ハードウェア機器の形で具体化されてもよいが、同じく、ソフトウェアだけの解決策として、たとえば、既存のサーバまたは移動体機器上へのインストールとして実装されてもよい。
【0098】
同様に、本開示の実施形態についての前述の説明では、さまざまな特徴が、本開示を合理化する目的で、さまざまな特徴の単一の実施形態、図、または説明の形で一緒にグループ化されることがあり、さまざまな実施形態の1つまたは複数について理解する手助けになることを認識されたい。しかしながら、この開示方法は、特許請求される主題が、各請求項で明示的に説明されるよりも多くの特徴を必要とするという意図を反映していると解釈されるべきではない。むしろ、特許請求される主題が、単一の前述の開示される実施形態の特徴すべてよりも少ない特徴に見いだされる場合がある。