<実施例>
以下、本発明の実施例について添付図面を参照しつつ説明する。
本発明の実施例に係る情報処理システム1は、荷物の配送を求める配送依頼を受け付ける、図1に示すような情報処理装置100を備えている。また、情報処理システム1は、配送を求められた荷物を配送する配送機400及び500を備えている。配送機400は、荷物を格納可能な格納ボックス421から424を備え、配送機500は、格納ボックス521から524を備える。
さらに、情報処理システム1は、図2に示すような荷物の集荷場所G1からG5をそれぞれ有する不図示の店舗S1からS5に設置された、又は、店舗S1からS5の従業員が携帯する、端末装置601から605を備える。また、情報処理システム1は、配送依頼を行う第1ユーザから第4ユーザによってそれぞれ携帯される端末装置901から904にインターネットINを介して接続されている。
本実施例では、説明を簡単にするため、荷物が商品である場合を具体例として挙げて説明を行うが、これに限定される訳では無い。また、本実施例では、商品の注文は、当該商品の販売を求める販売依頼と、販売された商品を集荷して配送することを求める配送依頼と、を含むとして説明を行う。
情報処理装置100は、ハードウェアである、図3に表すようなCPU(Central Processing Unit)101、RAM(Random Access Memory)102、ROM(Read Only Memory)103a、ハードディスク103b、データ通信回路104a、ビデオカード105a、表示装置105b、及び、入力装置105cを備える。情報処理装置100は、複数のCPUを備えても良いし、複数のRAM及びフラッシュメモリを備えても良い。
情報処理装置100のCPU101は、ROM103a又はハードディスク103bに保存されたプログラムを実行することで、情報処理装置100の全体制御を行う。RAM102は、CPU101によるプログラムの実行時において、処理対象とされるデータを一時的に記憶する。ROM103a及びハードディスク103bは、各種のプログラムと、プログラムの実行に用いられる各種のデータ及びデータが保存されたテーブルと、を記憶している。
情報処理装置100のデータ通信回路104aは、NIC(Network Interface Card)であり、例えば、LTE(Long Term Evolution)及び5G(5th Generation)を含む通信規格に従って、インターネットINに接続された不図示の基地局と電波を用いてデータ通信を行う。これにより、情報処理装置100のデータ通信回路104aは、インターネットINに接続された配送機400及び500、並びに、端末装置601から605及び901から904とデータ通信を行う。
情報処理装置100のビデオカード105aは、CPU101から出力されたデジタル信号に基づいて画像をレンダリングすると共に、レンダリングされた画像を表す画像信号を出力する。表示装置105bは、EL(Electroluminescence)ディスプレイ、PDP(Plasma Display Panel)、又は、LCD(Liquid Crystal Display)であり、ビデオカード105aから出力された画像信号に従って画像を表示する。入力装置105cは、キーボード、マウス、タッチパッド、及び、ボタンのいずれか1つ以上であり、仲介業者の従業員の操作に応じた信号を入力する。
情報処理装置100のデータ通信回路104aが、情報処理装置100への接続の許可を求める接続要求を、端末装置901から904のいずれかから受信すると、情報処理装置100のCPU101は、商品の販売を仲介する、図4に示すような販売仲介処理を実行する。本実施例では、情報処理装置100が、第2ユーザの端末装置902から接続要求を受信した場合を具体例として挙げて以下の説明を行う。
情報処理装置100のCPU101は、販売仲介処理を実行することで、データ通信回路104aから接続要求を取得する、図5に示すような取得部110として機能する。また、CPU101は、取得された接続要求に含まれる、第2ユーザの認証情報に基づいてユーザ認証を行い、ユーザ認証が成功すると、接続要求を承認して端末装置902の接続を許可する認証部115として機能する。また、CPU101は、接続要求が承認されると、第2ユーザの端末装置902が情報処理装置100にアクセスしたことを検知する検知部120として機能する。
さらに、情報処理装置100のCPU101は、配送機400に格納された商品の配送経路と、配送機500に格納された商品の配送経路と、の1つ以上から、第2ユーザによって設定された配送先D2の近傍経路G1D1を抽出する抽出部125として機能する。配送先D2の近傍経路は、配送先D2に、又は、配送先D2の近傍に、終点が位置する配送経路をいう。
本実施例では、配送先D2は、第2ユーザが居住するマンションのエントランスであり、後述する配送先D1及びD3は、それぞれ第1ユーザ及び第3ユーザのマンションのエントランスであるが、これらに限定される訳では無い。また、本実施例において、配送先D2の近傍は、配送先D2から予め定められた距離LDだけ離れた境界B2よりも配送先D2側の領域である。また、本実施例では、説明を簡単にするため、配送機400に格納された商品の配送経路G1D1が近傍経路として抽出された場合を具体例として挙げて以下の説明を行う。
情報処理装置100のCPU101は、抽出された近傍経路G1D1の終点D1に配送機400が到るまでに商品の集荷が可能な集荷場所G1、G2、及び、G4を特定する特定部130として機能する。本実施例では、特定部130は、特定された集荷場所G1、G2、及び、G4の内で、集荷場所G2を、第2ユーザに推奨する集荷場所(以下、推奨集荷場所という)に決定するとして以下の説明を行う。
さらに、情報処理装置100のCPU101は、配送機400が推奨集荷場所G2まで移動するのに要する移動時間と、配送機400が推奨集荷場所G2に到着する到着時刻と、を推定する推定部135として機能する。また、CPU101は、推定された配送機400の到着時刻に基づいて、推奨集荷場所G2で集荷される商品の注文が受け付けられる受付期限を決定する決定部140として機能する。
また、情報処理装置100のCPU101は、特定された推奨集荷場所G2と、推奨集荷場所G2で集荷される商品と、決定された注文期限と、を表す推奨情報を第2ユーザの端末装置902に送信させる制御をデータ通信回路104aに行う制御部145として機能する。
さらに、情報処理装置100のCPU101は、推奨集荷場所G2で商品を集荷して第2ユーザの配送先D2まで配送することを求める配送依頼が受け付けられると、第2ユーザに特典を付与する付与部150として機能する。本実施例において、特典は、配送料金及び商品の代金のいずれか1つ以上を含む金銭の支払い、又は、物品との交換、に用いることができるポイントであるが、これに限定される訳では無い。
情報処理装置100のハードディスク103bは、販売仲介処理の実行に用いられる情報を記憶する情報記憶部190として機能する。情報記憶部190は、ユーザに関する情報が予め保存されている、図6に示すようなユーザテーブルを予め記憶している。ユーザテーブルには、複数のレコードが予め保存されており、各レコードには、ユーザを識別するユーザID(IDentification)が予め保存されている。また、ユーザテーブルの各レコードには、ユーザIDに対して、当該ユーザIDで識別されるユーザによって予め設定されたパスワードを表す情報と、当該ユーザによって予め設定された配送先を住所で表す情報と、当該ユーザに付与された特典を表す情報と、が予め対応付けられて保存されている。
また、情報処理装置100の情報記憶部190は、図7に示すような予定テーブルを予め記憶している。予定テーブルには、配送機400又は500に商品を集荷させる予定(以下、集荷予定という)と、集荷された商品を配送機400又は500に配送させる予定(以下、配送予定という)と、に関する情報が保存されている。
予定テーブルには、8つのレコードが予め保存されており、1番目のレコードには、配送機400を識別する機体ID「400」と、配送機400の格納ボックス421を識別するボックスID「1」と、が予め保存されている。2番目から4番目のレコードには、機体ID「400」と、格納ボックス422から424をそれぞれ識別するボックスID「2」から「4」が予め保存されている。また、5番目から8番目のレコードには、配送機500の機体ID「500」と、配送機500の格納ボックス521から524をそれぞれ識別するボックスID「1」から「4」とが予め保存されている。
本実施例では、第1ユーザの注文であって、不図示の商品I11を集荷場所G1で集荷して配送先D1まで配送することを求める注文が受け付けられており、配送機400の格納ボックス421には、集荷された商品I11が既に格納されている場合を具体例として挙げて以下の説明を行う。
このため、予定テーブルの1番目のレコードには、機体ID「400」とボックスID「1」に対応付けられて、格納ボックス421の状態が、商品を格納している「格納状態」であることを表す状態情報が保存されている。また、機体ID「400」とボックスID「1」に対応付けられて、配送機400の格納ボックス421に格納された商品I11を識別する商品ID「I11」と、商品I11を注文した第1ユーザのユーザID「U1」と、が対応付けられて保存されている。
また、1番目のレコードには、機体ID「400」とボックスID「1」に対応付けられて、商品I11の集荷予定と配送予定とが対応付けられて保存されている。商品I11の集荷予定は、図2に示すような、商品I11の集荷場所G1の位置情報と、集荷場所G1に到る集荷経路S4G1を表す情報と、配送機400が移動する順番が集荷経路S4G1に割り振られていないことを表す文字列「NULL」と、を含む。集荷場所G1に到る集荷経路S4G1に順番が割り振られていないのは、配送機400が既に集荷場所G1に移動して商品I11を集荷したため、当該集荷予定が既に削除されているためである。
本実施例において、集荷場所G1の位置情報は、集荷場所G1の位置を緯度、経度、及び、高度で表す情報である。また、集荷経路SG1を表す情報には、集荷経路SG1に含まれる複数のノードの位置を緯度、経度、及び、高度で表す位置情報と、複数のノードの到着順を表す情報と、が含まれている。
商品I11の配送予定は、商品I11の配送先D1の位置情報と、集荷場所G1から配送先D1に到る配送経路G1D1を表す情報と、配送経路G1D1の順番が1番であることを表す情報と、を含む。配送経路G1D1の順番は、予定テーブルに保存された情報で表される配送機400の集荷経路及び配送経路の内で、配送機400が配送経路G1D1を移動する順番を意味する。
本実施例では、配送機400の格納ボックス422から424の状態がそれぞれ「空き状態」である場合を具体例として挙げて説明する。格納ボックス422が「空き状態」であるとは、格納ボックス422に格納されることが予定されている商品が存在せず、かつ、格納ボックス422に商品が格納されていない状態を意味する。
このため、2番目のレコードには、機体ID「400」とボックスID「2」とに対応付けられて、格納ボックス422の状態が「空き状態」であることを表す状態情報が対応付けられて保存されている。また、2番目のレコードには、機体ID「400」とボックスID「2」とに対応付けられて、格納ボックス422に格納される予定の商品、そのような商品を注文したユーザ、及び、そのような商品の集荷予定及び配送予定が存在しないことを表す文字列「NULL」が保存されている。同様に、3番目及び4番目のレコードには、機体IDとボックスIDに対応付けられて「空き状態」であることを表す状態情報と文字列「NULL」とが対応付けられて保存されている。
本実施例では、第3ユーザの注文であって、不図示の商品I33を集荷場所G3で集荷して配送先D3まで配送することを求める注文が受け付けられており、配送機500の格納ボックス521に商品I33を格納することが既に予定されている場合を具体例として挙げて以下の説明を行う。
このため、予定テーブルの5番目のレコードには、機体ID「500」とボックスID「1」とに対応付けられて、格納ボックス521の状態が、「予約状態」であることを表す状態情報が保存されている。格納ボックス521が「予約状態」であるとは、格納ボックス521に格納されることが予定されている商品が存在するが、当該商品が格納ボックス521に格納されていない状態であることを意味する。
また、5番目のレコードには、機体ID「500」とボックスID「1」とに対応付けられて、商品I33の商品ID「I33」と、商品I33を注文した第3ユーザのユーザID「U3」と、が対応付けられて保存されている。
さらに、5番目のレコードには、機体ID「500」とボックスID「1」とに対応付けられて、商品I33の集荷予定と配送予定とが対応付けられて保存されている。商品I33の集荷予定は、商品I33の集荷場所G3の位置情報と、集荷場所G3に到る集荷経路S5G3を表す情報と、集荷経路S5G3の順番が1番であることを表す情報と、を含む。
また、商品I33の配送予定は、商品I33の配送先D3の位置情報と、集荷場所G3から配送先D3に到る配送経路G3D3を表す情報と、配送経路G3D3の順番が2番であることを表す情報と、を含む。
本実施例では、配送機500の格納ボックス522から524の状態がそれぞれ「空き状態」である場合を具体例として挙げて説明する。このため、6番目から8番目のレコードには、機体ID「500」とボックスID「2」から「4」にそれぞれ対応付けられて「空き状態」であることを表す状態情報と文字列「NULL」とが対応付けられて保存されている。
情報処理装置100の情報記憶部190は、商品を販売する店舗に関する情報が保存されている、図8に示すような店舗テーブルを予め記憶している。店舗テーブルには、複数のレコードが予め保存されており、1番目のレコードには、不図示の店舗S1を識別する店舗ID「S1」と、店舗S1の名称を表す情報と、当該店舗S1のエントランスにある集荷場所G1の位置情報と、が対応付けられて保存されている。同様に、2番目から5番目のレコードには、不図示の店舗S2からS5をそれぞれ識別する店舗ID「S2」から「S5」と、店舗S2からS5それぞれの名称を表す情報と、当該店舗S2からS5それぞれのエントランスにある集荷場所G2からG5の位置情報と、が対応付けられて保存されている。
またさらに、情報処理装置100の情報記憶部190は、商品に関する情報が保存されている、図9に示すような商品テーブルを予め記憶している。商品テーブルには、複数のレコードが予め保存されており、各レコードには、店舗の店舗IDと、当該店舗で販売される商品を識別する商品IDと、当該商品の名称を表す情報と、が対応付けられて保存されている。また、各レコードには、店舗IDと、商品IDと、に対して、当該店舗IDで識別される店舗において当該商品IDで識別される商品を集荷可能にするための準備に要する準備時間を表す情報が対応付けられて予め保存されている。
例えば、商品テーブルには、店舗S2の店舗ID「S2」と、店舗S2で販売される商品I21の商品ID「I21」と、商品I21の名称「ステーキ」と、商品I21の準備時間「30分」を表す情報と、が保存されている。また、商品テーブルには、店舗ID「S2」と、商品ID「I22」と、名称「ハンバーガー」と、準備時間「15分」を表す情報と、が保存されている。さらに、商品テーブルには、店舗ID「S2」と、商品ID「I23」と、名称「ラーメン」と、準備時間「15分」を表す情報と、が保存されている。
本実施例において、商品が集荷可能になるとは、配送機400又は500が集荷可能な状態に商品の状態が変化することを意味する。また、本実施例において、配送機400又は500が集荷可能な商品の状態は、配送機400又は500が商品の配送を開始可能な状態を含む。
本実施例において、商品は、飲食物である。このため、配送を開始可能な商品の状態は、当該商品の配送の開始までに調理される必要性が当該商品にあれば、調理がされた状態を含む。また、配送を開始可能な商品の状態は、当該商品の配送の開始までに包装される必要性が当該商品にあれば、包装された状態を含む。調理される必要性の有無、及び、包装される必要性の有無は、当該商品の注文の受付時に注文者と店舗の従業員との間で明示的若しくは黙示的に合意がなされる、又は、商慣習上予め定められている。また、配送を開始可能な商品の状態は、当該商品の集荷場所に当該商品が位置している状態を含む。
これらのため、調理及び包装の必要性が無い商品であれば、当該商品を集荷可能にするための準備は、例えば、倉庫の棚から当該商品を探し出すこと、及び、探し出された商品を、当該商品の集荷場所まで運搬することを含む。このため、準備時間は、当該商品の探出に要する探出時間と、探し出された商品の集荷場所への運搬に要する運搬時間と、を含む。
また、調理の必要性が無いが、包装の必要性がある商品であれば、当該商品の準備は、当該商品の探出と、当該商品の包装と、集荷場所までの運搬と、を含む。このため、当該商品の準備時間は、当該商品の探出時間と、探し出された商品の包装に要する包装時間と、包装された当該商品の集荷場所までの運搬時間と、の合計を含む。
さらに、調理及び包装の必要性がある商品であれば、当該商品の準備は、商品又は当該商品の材料の探出と、当該商品の調理と、調理された商品の包装と、包装された商品の集荷場所までの運搬と、を含む。このため、当該商品の準備時間は、商品又は当該商品の材料の探出に要する探出時間と、当該商品の調理に要する調理時間と、調理された商品の包装時間と、包装された商品の集荷場所までの運搬時間と、の合計を含む。
本実施例では、商品は、ステーキ、ラーメン、ハンバーガー、トマト、及び、パンを含む。また、本実施例では、トマト及びパンの状態を集荷可能な状態にするための準備には、調理が含まれないが、ステーキ、ラーメン、及び、ハンバーガーの準備には、調理が含まれる。これらのため、トマト及びパンの準備時間は、ステーキ、ラーメン、及び、ハンバーガーの準備時間よりも短く予め設定されている。
また、本実施例では、商品の性質は、時間の経過に伴って商品の状態が変化する性質を含む。例えば、ステーキ、ラーメン、及び、ハンバーガーの性質は、商品の温度を予め定められた温度よりも高い温度にする調理の必要性(以下、暖める調理の必要性)と、調理によって当該予め定められた温度よりも高くされた商品の温度が時間の経過に伴って当該予め定められた温度以下の温度になるという性質(以下、冷める性質)を含む。これに対して、例えば、トマト及びパンの性質は、暖める調理の必要性及び冷める性質を含まない。
さらに、本実施例では、ラーメンの性質は、時間の経過に伴って麺が伸びるという性質(以下、麺が伸びる性質という)を含む。麺が伸びるとは、単位長さ当たり予め定められた水分量より少ない量の水分を含む状態から、予め定められた水分量以上の量の水分を含む状態に麺の状態が変化することを意味する。これに対して、例えば、トマト、パン、ハンバーガー、及び、ステーキの性質は、麺が伸びる性質を含まない。
商品及び商品の性質は、これらに限定される訳では無く、商品は、冷製スープ又はアイスリームであっても良い。また、商品の性質は、商品の温度を予め定められた温度よりも低い温度にする調理又は保管の必要性(以下、冷やす調理又は保管の必要性)と、当該予め定められた温度よりも低くされた商品の温度が時間の経過に伴って当該予め定められた温度以上の温度になるという性質(以下、暖まる性質)を含んでも良い。
図4の販売仲介処理の実行が開始されると、情報処理装置100の取得部110は、第2ユーザの端末装置902から受信された接続要求を、データ通信回路104aから取得する(ステップS01)。次に、取得部110は、第2ユーザのユーザID「U2」と、第2ユーザのパスワードを表す情報と、を含む認証情報を接続要求から取得する。その後、取得部110は、図6のユーザテーブルから、取得されたユーザID「U2」と対応付けられたパスワードを表す情報を取得する。
その後、情報処理装置100の認証部115は、接続要求から取得された情報で表されるパスワードと、ユーザテーブルから取得された情報で表されるパスワードと、に基づいて、ユーザ認証を行う。認証部115は、これらのパスワードが一致しないと、ユーザ認証が失敗したと判別し(ステップS02;No)、販売仲介処理の実行を終了する。
これに対して、情報処理装置100の認証部115は、これらのパスワードが一致すると、ユーザ認証が成功したと判別し(ステップS02;Yes)、接続要求を承認する。次に、制御部145は、接続が許可されたことを告げる許可報告を、第2ユーザの端末装置902を宛先として、データ通信回路104aに出力する。その後、情報処理装置100のデータ通信回路104aは、許可報告を端末装置902へ送信する。
第2ユーザの端末装置902から受信された接続要求が承認されると、情報処理装置100の検知部120は、第2ユーザが情報処理装置100にアクセスしたことを検知する(ステップS03)。次に、情報処理装置100は、第2ユーザに商品を推奨する、図10に示すような商品推奨処理を実行する(ステップS04)。
商品推奨処理の実行が開始されると、情報処理装置100の抽出部125は、配送機400の格納ボックス421から424、及び、配送機500の格納ボックス521から524のいずれか1つ以上に空きがあるか否かを判別する(ステップS31)。このために、取得部110は、図7の予定テーブルから、「空き状態」を表す状態情報と対応付けられた機体ID「400」とボックスID「2」から「4」との組み合わせ、及び、機体ID「500」とボックスID「2」から「4」との組み合わせ、を取得する。このため、抽出部125は、配送機400の格納ボックス422から424、及び、配送機500の格納ボックス522から524、が空いている(以下、配送機400及び500に空きがあるという)と判別する(ステップS31;Yes)。
次に、情報処理装置100の抽出部125は、空きがあると判別された配送機400の格納ボックス421から424、及び、空きがあると判別された配送機500の格納ボックス521から524のいずれか1つ以上に商品が格納されているか否かを判別する(ステップS32)。このために、取得部110は、図7の予定テーブルから、「格納状態」を表す状態情報と機体ID「400」とに対応付けられたボックスIDの取得と、「格納状態」を表す状態情報と機体ID「500」とに対応付けられたボックスIDの取得と、を試行する。これにより、取得部110は、「格納状態」を表す状態情報と機体ID「400」とに対応付けられたボックスID「1」を取得する。このため、抽出部125は、空きがあると判別された配送機400の格納ボックス421に商品が格納されていると判別する(ステップS32;Yes)。
次に、情報処理装置100の取得部110は、予定テーブルから、機体ID「400」と、ボックスID「1」と、1番の順番を表す情報と、に対応付けられた配送経路G1D1を表す情報を取得する。これにより、配送機400が移動中の経路であって、かつ、配送機400の格納ボックス421に格納された商品I11を配送機400が配送するために移動する配送経路G1D1を表す情報が取得される(ステップS33)。配送機400が移動中の配送経路G1D1が取得されるのは、配送機400が移動していない経路に基づくよりも、配送機400が移動中の経路に基づく方が、より早く第2ユーザに配送できる商品の集荷場所を情報処理装置100が特定できるからである。
次に、情報処理装置100の取得部110は、図6のユーザテーブルから、図4のステップS01で取得された第2ユーザのユーザID「U2」に対応付けられた情報であって、かつ、第2ユーザによって予め設定された配送先D2を住所で表す情報を取得する。次に、取得部110は、配送先D2を住所で表す情報と情報記憶部190が予め対応付けて記憶する配送先D2の緯度、経度、及び、高度を表す位置情報を取得する(ステップS34)。
その後、情報処理装置100の抽出部125は、取得された配送経路G1D1を表す情報と、第2ユーザの配送先D2の位置情報と、基づいて、第2ユーザの配送先D2に、又は、配送先D2の近傍に、終点が位置する近傍経路の抽出を試行する。次に、抽出部125は、近傍経路が抽出されたか否かを判別する(ステップS35)。
このために、情報処理装置100の取得部110は、情報記憶部190が予め記憶する距離LDを表す情報を取得する。その後、抽出部125は、配送経路G1D1を表す情報に含まれる終点D1を表すノードの位置情報と、第2ユーザの配送先D2の位置情報と、に基づいて、配送先D2と終点D1との距離を算出する。次に、抽出部125は、算出された配送先D2と終点D1との距離が、予め定められた距離LD以下であるか否かに基づいて、配送経路G1D1の終点D1が、第2ユーザの配送先D2に、又は、配送先D2の近傍に位置するか否かを判別する。
本実施例では、配送経路G1D1の終点D1が配送先D2に、又は、配送先D2の近傍に、位置する場合を具体例として挙げて説明する。このため、情報処理装置100の抽出部125は、算出された配送先D2と終点D1との距離が、予め定められた距離LD以下であるため、配送経路G1D1の終点D1が、第2ユーザの配送先D2に、又は、配送先D2の近傍に位置すると判別する。次に、抽出部125は、配送経路G1D1を、第2ユーザの配送先D2の近傍経路として抽出した後、近傍経路が抽出されたと判別する(ステップS35;Yes)。
その後、情報処理装置100の取得部110は、図7の予定テーブルから、配送機400の配送ID「400」と、2番の順番を表す情報と、が保存されたレコードの取得を試行する。特定部130は、そのようなレコードが取得されたか否かに基づいて、近傍経路G1D1の1つ後に配送機400が移動することが予定されている後続経路が存在するか否かを判別する。すなわち、特定部130は、配送機400の移動が予定されている経路の内で、配送機400が最後に移動することが予定されている最終経路が、近傍経路G1D1であるか否かを判別する(ステップS36)。このとき、特定部130は、配送ID「400」と2番の順番を表す情報とが保存されたレコードが取得されなかったため、近傍経路G1D1が最終経路であると判別する(ステップS36;Yes)。
次に、情報処理装置100の特定部130は、集荷場所G1からG5の内で、近傍経路G1D1の終点D1に配送機400が到るまでに商品の集荷が可能な集荷場所を特定する。
本実施例では、情報処理装置100の特定部130は、集荷場所G1からG5の内で、下記の第1条件を満たす集荷場所を、近傍経路G1D1の終点D1に配送機400が到るまでに商品の集荷が可能な集荷場所として特定することを試行する。次に、特定部130は、第1条件を満たす集荷場所が特定できたか否かを判別する(ステップS37)。
第1条件は、第1条件の第1詳細条件と第2詳細条件との双方が満たされるという条件である。第1条件の第1詳細条件は、近傍経路G1D1上の位置、又は、近傍経路G1D1の近傍の位置であるという条件である。第1条件の第2詳細条件は、第2ユーザの配送依頼が受け付けられた場合における、図11に示すような注文順経路の距離よりも、図12に示すような非注文順経路の距離の方が短い位置にある、という条件である。
注文順経路とは、既に受け付けられている第1ユーザの注文(以下、先行依頼という)に従った近傍経路G1D1の終点D1への配送、これから受け付けられる第2ユーザの注文(以下、後行依頼という)に従った集荷位置GXでの集荷、後行依頼に従った集荷位置GXからの配送、を順に行うための経路である。すなわち、図11の注文順経路は、配送機400の位置Tから最終経路である近傍経路G1D1の終点D1に到る配送経路TD1、最終経路G1D1の終点D1から後行依頼に従って集荷が行われる集荷位置GXに到る集荷経路D1GX、及び、集荷位置GXから第2ユーザの配送先D2に到る配送経路GXD2を順に含む経路である。
これに対して、非注文順経路とは、後行依頼に従った集荷、先行依頼に従った配送、及び、後行依頼に従った配送、を順に行うための経路である。すなわち、図12の非注文順経路は、配送機400の位置Tから集荷位置GXに到る集荷経路TGX、集荷位置GXから近傍経路G1D1の終点D1に到る配送経路GXD1、及び、近傍経路G1D1の終点D1から第2ユーザの配送先D2に到る配送経路D1D2、を順に含む経路である。
第1条件を満たす集荷場所を特定するために、情報処理装置100の特定部130は、第1条件の第1詳細条件を集荷場所G1が満たすか否かを判別する。このために、取得部110は、図8の店舗テーブルから集荷場所G1の位置情報を取得し、図7の予定テーブルから近傍経路G1D1を表す情報を取得する。次に、特定部130は、取得された集荷場所G1の位置情報と、近傍経路G1D1を表す情報に含まれる複数のノードの位置情報と、に基づいて、近傍経路G1D1と集荷場所G1との距離を算出する。本実施例では、特定部130は、近傍経路G1D1と集荷場所G1との最短距離を算出するが、これに限定される訳では無い。
次に、情報処理装置100の取得部110は、情報記憶部190が予め記憶する距離LPを表す情報を取得する。その後、特定部130は、算出された集荷場所G1と近傍経路G1D1との距離が距離LP以下であるか否かに基づいて、集荷場所G1が近傍経路G1D1上、又は、近傍経路G1D1の近傍に位置するか否かを判別する。距離LPは、配送先D2の近傍を定める距離LDと同じ距離であっても良いし、距離LDより短くても長くても良く、当業者は、好適な距離LD及び距離LPの値を実験により定めることができる。
本実施例では、図2に示すように、集荷場所G1、G2、及び、G5が、近傍経路G1D1の近傍に位置し、集荷場所G4が近傍経路G1D1上に位置し、集荷場所G3が、近傍経路G1D1上、及び、近傍経路G1D1の近傍のいずれにも位置しない場合を具体例として挙げて以下の説明を行う。このため、情報処理装置100の特定部130は、算出された集荷場所G1と近傍経路G1D1との距離が距離LP以下であると判別する。次に、特定部130は、集荷場所G1は、近傍経路G1D1上、又は、近傍経路G1D1の近傍に位置するという第1条件の第1詳細条件を満たすと判別する。
次に、情報処理装置100の特定部130は、図11の注文順経路の距離よりも、図12の非注文順経路の距離の方が短い位置にあるという第1条件の第2詳細条件を、集荷場所G1が満たすか否かを判別する。このために、特定部130は、配送機400の位置Tから近傍経路G1D1の終点D1に到る配送経路TD1の距離を算出する。
配送経路TD1の距離の算出のために、情報処理装置100の制御部145は、配送機400の位置Tを緯度、経度、及び、高度で表す位置情報の送信を求める位置送信要求を、配送機400を宛先としてデータ通信回路104aへ出力する。情報処理装置100のデータ通信回路104aが位置送信要求を配送機400へ送信した後に配送機400から位置情報を受信すると、取得部110は、データ通信回路104aから配送機400の位置情報を取得する。
その後、情報処理装置100の特定部130は、取得された配送機400の位置情報と、近傍経路G1D1を表す情報に含まれる複数のノードの位置情報と、に基づいて、配送機400の位置Tから近傍経路G1D1の終点D1に到る部分経路TD1の距離を算出する。
次に、情報処理装置100の特定部130は、近傍経路G1D1の終点である配送先D1から、集荷場所G1の位置である集荷位置GXに到る集荷経路D1GXを特定し、特定された集荷経路D1GXの距離を算出する。本実施例において、集荷場所G1から配送先D1に到る近傍経路G1D1は、一方通行路を含むため、配送先D1から集荷場所G1の位置である集荷位置GXに到る集荷経路D1GXと近傍経路G1D1とは、互いに異なる経路である。しかし、これに限定される訳では無く、集荷経路D1GXと近傍経路G1D1とは、同じ経路であっても良い。
集荷経路D1GXの特定のために、情報処理装置100の取得部110は、情報記憶部190が予め記憶している部分経路テーブルに保存されている複数のレコードを読み出す。部分経路テーブルには、例えば、道路及び歩道といった配送機400及び500が移動可能な部分経路に関する情報が保存された複数のレコードが予め保存されている。部分経路テーブルの各レコードには、部分経路であるエッジの始点ノードの緯度、経度、及び、高度と、当該エッジの終点ノードの緯度、経度、及び、高度と、当該エッジの距離を表す情報と、が対応付けられて予め保存されている。
次に、情報処理装置100の特定部130は、読み出された部分経路テーブルの各レコードに保存されているエッジの距離と、当該エッジの始点ノード及び終点ノードの緯度、経度、及び、高度と、配送先D1及び集荷場所G1の位置である集荷位置GXの緯度、経度、及び、高度と、を用いて、例えば、ダイクストラ法といった公知の経路探索アルゴリズムを実行する。これにより、特定部130は、部分経路を組み合わせることで、最短の集荷経路D1GXを特定し、当該集荷経路D1GXの距離を算出する。
同様にして、情報処理装置100の特定部130は、集荷場所G1の位置である集荷位置GXから第2ユーザの配送先D2に到る最短の配送経路GXD2の距離を特定し、配送経路GXD2の距離を算出する。その後、特定部130は、特定された配送経路TD1の距離、集荷経路D1GXの距離、及び、配送経路GXD2の距離の合計を、注文順経路の距離として算出する。
次に、情報処理装置100の特定部130は、図12の非注文順経路の距離を算出するために、配送機400の位置Tから、集荷場所G1の位置である集荷位置GXに到る最短の集荷経路TGXを特定し、集荷経路TGXの距離を算出する。また、特定部130は、集荷位置GXから近傍経路G1D1の終点D1に到る最短の配送経路GXD1を特定し、配送経路GXD1の距離を算出する。さらに、特定部130は、近傍経路G1D1の終点D1から第2ユーザの配送先D2に到る最短の配送経路D1D2を特定し、配送経路D1D2の距離を算出する。その後、特定部130は、特定された集荷経路TGXの距離、配送経路GXD1の距離、及び、配送経路D1D2の距離の合計を、非注文順経路の距離として算出する。
その後、情報処理装置100の特定部130は、算出された注文順経路の距離よりも、非注文順経路の距離の方が短いか否かを判別する。本実施例では、集荷場所G1、G2、及び、G4のいずれかで集荷をすることを求める注文が受け付けられた場合、注文順経路の距離よりも非注文順経路の距離の方が短くなるとして以下の説明を行う。このため、特定部130は、注文順経路の距離よりも非注文順経路の距離の方が短いと判別し、集荷場所G1が第1条件の第2詳細条件を満たすと判別する。よって、特定部130は、集荷場所G1が第1条件を満たすと判別する。
その後、情報処理装置100の特定部130は、集荷場所G2及びG4が第1条件を満たすと判別する。これに対して、特定部130は、集荷場所G3が、近傍経路G1D1上に位置せず、かつ、近傍経路G1D1の近傍に位置しないため、第1条件の第1詳細条件を満たさないと判別する。このため、特定部130は、集荷場所G3が第1条件の第2詳細条件を満たすか否かを判別せずに、集荷場所G3が第1条件を満たさないと判別する。
次に、情報処理装置100の特定部130は、集荷場所G5が、近傍経路G1D1の近傍に位置するため、第1条件の第1詳細条件を満たすと判別する。次に、特定部130は、集荷場所G5の位置が、注文順経路の距離よりも非注文順経路の距離の方が短い位置であるという第1条件の第2詳細条件を満たさないと判別する。
このような判別が行われるのは、本実施例において、集荷場所G5は、図13に示すように、近傍経路G1D1の終点D1から第2ユーザの配送先D2に到る配送経路D1D2上に位置するためである。このように、集荷場所G5が配送経路D1D2上に位置する場合、図13に示すような注文順経路の集荷経路D1G5の距離と配送経路G5D2の距離との合計は、図14に示すような非注文順経路の配送経路D1D2の距離と等しくなる。但し、集荷経路D1G5は、近傍経路G1D1の終点D1から集荷場所G5に到る経路であり、配送経路G5D2は、集荷場所G5から第2ユーザの配送先D2に到る経路である。
また、図13の注文順経路の配送経路TD1の距離は、図14の非注文順経路の集荷経路TG5の距離と、配送経路G5D1の距離と、の合計よりも短い。配送経路TD1の距離が集荷経路TG5の距離と配送経路G5D1の距離との合計よりも短いのは、配送経路TD1と、集荷経路TG5及び配送経路G5D1と、が、それぞれ直線経路であれば、三角形を形成するためである。すなわち、三角形の一辺に対応する注文順経路の配送経路TD1の距離は、残りの二辺に対応する非注文順経路の集荷経路TG5の距離と配送経路G5D1の距離との合計よりも短いからである。但し、集荷経路TG5は、配送機400の位置Tから集荷場所G5に到る経路であり、配送経路G5D1は、集荷場所G5から第1ユーザの配送先D1に到る経路である。これらのため、図13の注文順経路の距離は、図14の非注文順経路の距離よりも短いので、特定部130は、集荷場所G5が第1条件の第2詳細条件を満たさないと判別する。
このようにして、情報処理装置100の特定部130は、第1条件を満足する集荷場所(以下、好適な集荷場所という)G1、G2、及び、G4を特定し、第1条件を満足しない集荷場所(以下、通常集荷場所という)G3及びG5を特定する。このため、特定部130は、第1条件を満足する好適な集荷場所G1、G2、及び、G4を特定できたと判別する(図10のステップS37;Yes)。
次に、情報処理装置100の特定部130は、予め定められた規則又はソフトウェア乱数に基づいて、特定された1又は複数の好適な集荷場所G1、G2、及び、G4から、第2ユーザに推奨する1又は複数の集荷場所(以下、推奨集荷場所という)を決定する。
本実施例では、情報処理装置100の特定部130は、第2ユーザの購入履歴に基づいて、複数の好適な集荷場所G1、G2、及び、G4から推奨集荷場所G2を決定する場合について説明する。このため、情報記憶部190は、第2ユーザのユーザID「U2」と、第2ユーザによって過去に購入された商品の商品IDと、当該商品が第2ユーザに販売された店舗の店舗IDと、当該商品が当該店舗で購入された購入回数を表す情報と、を対応付けた情報を予め複数記憶している。取得部110は、集荷場所G1を有する店舗S1の店舗ID「S1」と、第2ユーザのユーザID「U2」と、に対応付けられた購入回数を表す情報を情報記憶部190から取得し、特定部130は、取得された情報で表される購入回数の総和である総購入回数を算出する。同様に、特定部130は、集荷場所G2及びG4について、総購入回数を算出する。その後、特定部130は、算出された総購回数が最も多い店舗にある集荷場所を推奨集荷場所とするという予め定められた規則に従って、集荷場所G1、G2、及び、G4の内から推奨集荷場所G2を決定する(ステップS38)。
次に、情報処理装置100の取得部110は、情報記憶部190が予め記憶する、配送機400の移動速度を表す情報を取得する。本実施例において、配送機400の移動速度は、配送機400に予め設定された設定速度であるが、これに限定される訳では無い。配送機400の移動速度は、例えば、過去に計測された配送機400の計測速度の平均速度、最高速度、若しくは、最低速度、配送機400が達成可能な最高速度、又は、法律で定められている制限速度であっても良い。
その後、情報処理装置100の推定部135は、配送機400の位置Tから、集荷位置GXにある推奨集荷場所G2に到る集荷経路TGXの距離を、取得された情報で表される移動速度で除算する。これにより、推定部135は、配送機400の位置Tから推奨集荷場所G2まで配送機400が移動するのに要する移動時間を推測する。本実施例では、推奨集荷場所G2までの移動時間が「25分」と推定された場合を具体例として挙げて以下の説明を行う。
次に、情報処理装置100の取得部110は、例えば、OS(Operating System)が管理するシステム時刻を取得し、推定部135は、システム時刻に対して、推定された移動時間を加算することで、配送機400の推奨集荷場所G2への到着時刻を推定する(ステップS39)。
その後、情報処理装置100の特定部130は、配送機400による推奨集荷場所G2への到着までに準備を終了できる準備可能商品の特定を試行し、準備可能商品が特定できたか否かを判別する(ステップS40)。このために、取得部110は、図9の商品テーブルから、推奨集荷場所G2を有する店舗S2の店舗ID「S2」と、移動時間「25分」以下の準備時間を表す情報と、に対応付けられた商品ID「I22」及び商品名「ハンバーガー」を表す情報と、商品ID「I23」及び商品名「ラーメン」を表す情報と、を取得する。次に、特定部130は、商品ID「I22」で識別される商品I22「ハンバーガー」と、商品ID「I23」で識別される商品I23「ラーメン」と、が、配送機400による推奨集荷場所G2への到着までに準備を終了できる準備可能商品であると特定する。その後、特定部130は、準備可能商品を特定できたと判別する(ステップS40;Yes)。
次に、情報処理装置100の特定部130は、予め定められた規則又はソフトウェア乱数に基づいて、特定された1又は複数の準備可能商品から、第2ユーザに推奨する1又は複数の商品(以下、推奨商品という)を決定する(ステップS41)。
本実施例では、情報処理装置100の特定部130は、第2ユーザの購入履歴に基づいて、複数の準備可能商品から推奨商品I22「ハンバーガー」を特定する場合について説明する。このため、取得部110は、第2ユーザのユーザID「U2」と、推奨集荷場所G2を有する店舗S2の店舗ID「S2」と、準備可能商品I22「ハンバーガー」の商品ID「I22」と、に対応付けられた購入回数を表す情報を情報記憶部190から取得する。これにより、第2ユーザが店舗S2で準備可能商品I22「ハンバーガー」を過去に購入した回数を表す情報が取得される。
同様に、情報処理装置100の取得部110は、ユーザID「U2」と、店舗ID「S2」と、準備可能商品I23「ラーメン」の商品ID「I23」と、に対応付けられた購入回数を表す情報を取得する。その後、特定部130は、購入回数が最も多い商品を推奨商品とするという予め定められた規則に従って、商品I22「ハンバーガー」を第2ユーザに推奨する推奨商品に決定する。
その後、情報処理装置100の決定部140は、推奨商品I22の注文が受け付けられる受付期限を決定する(ステップS42)。このために、取得部110は、図9の商品テーブルにおいて、推奨商品I22の商品ID「I22」と対応付けられた準備時間「15分」を表す情報を取得する。次に、決定部140は、配送機400の推奨集荷場所G2への到着時刻と、取得された情報で表される準備時間と、に基づいて受付期限を決定する。本実施例では、決定部140は、受付期限を、到着時刻よりも準備時間だけ早い時刻に決定するが、これに限定される訳ではない。
このようにして、情報処理装置100の決定部140は、推奨集荷場所G2を有する店舗S2で販売される推奨商品I22の注文の受付期限を、配送機400が推奨集荷場所G2にする到着までに店舗S2が推奨商品I22の準備を終了できる注文の受付時刻の内で最も遅い時刻に決定する。
その後、情報処理装置100の取得部110は、図8の店舗テーブルから店舗ID「S2」に対応付けられた店舗S2の名称を表す情報を取得する。次に、制御部145は、推奨集荷場所G2の位置情報と、推奨集荷場所G2を有する店舗S2の店舗ID「S2」及び名称を表す情報と、店舗S2で販売される推奨商品I22の商品ID「I22」及び名称を表す情報と、注文期限を表す情報と、を含む推奨情報を生成する。推奨情報は、店舗S2で販売される推奨商品I22を注文期限までに注文することを推奨する情報である。次に、制御部145は、生成された推奨情報を、第2ユーザの端末装置902を宛先として、データ通信回路104aへ出力する(ステップS43)。その後、制御部145は、データ通信回路104aが推奨情報を端末装置902に送信すると、商品推奨処理の実行を終了する。
商品推奨処理の実行を終了すると、情報処理装置100の取得部110は、第2ユーザの端末装置902から受信された注文をデータ通信回路104aから取得することを試行し、注文を取得できたか否かを判別する(図4のステップS05)。
本実施例では、注文が取得された場合を具体例に挙げて以下の説明を行う。また、取得された注文には、店舗ID「S2」及び商品ID「I22」を含み、かつ、店舗S2に推奨商品I22の販売を求める販売依頼が含まれる場合を具体例に挙げて以下の説明を行う。さらに、当該注文には、店舗ID「S2」、商品ID「I22」、及び、ユーザID「U2」を含み、かつ、販売された推奨商品I22を店舗S2にある推奨集荷場所G2で集荷して第2ユーザの配送先D2へ配送することを求める配送依頼が含まれる場合を具体例に挙げて以下の説明を行う。
情報処理装置100の取得部110は、注文を取得できたと判別すると(ステップS05;Yes)、注文に含まれる店舗ID「S2」を取得する。次に、制御部145は、店舗ID「S2」で識別される店舗S2の端末装置602を宛先として販売依頼をデータ通信回路104aへ出力する。これにより、制御部145は、販売依頼を端末装置602へ転送させる制御をデータ通信回路104aに行う(ステップS06)。
情報処理装置100の制御部145は、販売依頼を出力すると、不図示のハードウェアタイマー又はソフトウェアタイマーを用いて計時を開始する。その後、取得部110は、予め定められた周期で、店舗S2の端末装置602から受信された受付報告をデータ通信回路104aから取得することを試行する。端末装置602から受信される受付報告は、店舗ID「S2」及び商品ID「I22」を含み、推奨商品I22の販売を求める販売依頼が店舗S2で受け付けられたことを告げる報告である。
情報処理装置100の制御部145は、計時された時間である計時時間が予め定められた時間を超えても、取得部110が受付報告を取得しないと(ステップS07;No)、推奨商品I22の販売依頼が受け付けられなかったと判別する。その後、決定部140は、推奨商品I22が販売されないため、推奨商品I22の配送を求める配送依頼を受け付けないことを決定する。次に、制御部145は、注文が受け付けられなかったことを告げる報告を、第2ユーザの端末装置902を宛先としてデータ通信回路104aへ出力してから、販売仲介処理の実行を終了する。
これに対して、情報処理装置100の制御部145は、計時時間が予め定められた時間となる以前に、取得部110が受付報告を取得すると(ステップS07;Yes)、推奨商品I22の販売依頼が受け付けられたと判別する。次に、決定部140は、推奨商品I22の配送を求める配送依頼を受け付けると決定する(ステップS08)。
その後、情報処理装置100の取得部110は、販売依頼に含まれる店舗ID「S2」と商品ID「I22」とを取得する。次に、付与部150は、販売依頼から取得された店舗ID「S2」と商品ID「I22」との組合せが、図10のステップS43で出力された推奨情報に含まれる店舗ID「S2」と商品ID「I22」との組合せに一致するか否かを判別する。このとき、付与部150は、これらの組合せが一致するため、推奨集荷場所G2を有する店舗S2で推奨商品I22を集荷して配送することを求める配送依頼が受け付けられたと判別する(ステップS09;Yes)。すなわち、付与部150は、ステップS43で出力された推奨情報によって推奨された注文が受け付けられたと判別する。
その後、情報処理装置100の付与部150は、当該配送依頼を端末装置902に送信させた第2ユーザに対して、予め定められた特典を付与する(ステップS10)。本実施例では、予め定められた特典は、予め定められた数のポイントであるが、これに限定される訳ではない。このために、取得部110は、配送依頼から第2ユーザのユーザID「U2」を取得し、図6のユーザテーブルにおいて、取得されたユーザID「U2」に対応付けられているポイント数を表す情報を取得する。また、取得部110は、情報記憶部190が予め記憶する予め定められた加算ポイント数を表す情報を取得する。次に、付与部150は、取得された情報で表される第2ユーザのポイント数に対して加算ポイント数を加算することで、特典付与後の第2ユーザのポイント数を算出する。その後、付与部150は、ユーザテーブルにおいて、ユーザID「U2」に対応付けられているポイント数を表す情報を、特典付与後のポイント数を表す情報に変更する。
その後、情報処理装置100の制御部145は、注文の受付にともなって配送機400の配送予定を変更する。これに先立って、移動を中断して停止することを命じる停止命令を、配送機400を宛先としてデータ通信回路104aへ出力する(ステップS11)。次に、制御部145は、図2に示した近傍経路G1D1を1番目に配送機400が移動するという配送予定を、図12に示す非注文順経路の配送経路GXD1を2番目に配送機400が移動するという配送予定に変更する(ステップS12)。次に、情報処理装置100の制御部145は、非注文順経路の集荷経路TGXを1番目に配送機400が移動するという集荷予定と、配送経路D1D2を3番目に配送機400が移動するという配送予定と、を追加する(ステップS13)。
ステップS12で説明した配送予定の変更を、情報処理装置100自身に対して行うために、情報処理装置100の制御部145は、情報記憶部190が記憶する、図7の予定テーブルを、図15に示すような予定テーブルに変更する。このため、制御部145は、図7の予定テーブルにおいて、配送機400の機体ID「400」と、1番目の順番を表す情報と、が保存された1番目のレコードに保存されている近傍経路G1D1を表す情報を、配送経路GXD1を表す情報に変更する。次に、制御部145は、1番目のレコードに保存されている1番の順番を表す情報を2番の順番を表す情報に変更する。
また、情報処理装置100の制御部145は、ステップS12の予定変更を、配送機400に対して行うために、配送機400が記憶している不図示の予定テーブルの変更を命じる予定変更命令を生成する。その後、制御部145は、生成された予定変更命令を、配送機400を宛先としてデータ通信回路104aへ出力する。
本実施例において、配送機400が記憶している不図示の予定テーブルには、図7の予定テーブルの1番目から4番目のレコードと同じ4本のレコードが保存されている。このため、ステップS12で出力される予定変更命令は、配送機400の予定テーブルの1番目のレコードに保存された情報を、図15に示した変更後の予定テーブルの1番目のレコードに保存された情報に変更することを命じる命令である。このため、当該予定変更命令には、図15の予定テーブルの1番目のレコードが含まれている。
また、ステップS13で説明した予定の追加を、情報処理装置100自身に対して行うために、情報処理装置100の取得部110は、図7の予定テーブルにおいて、機体ID「400」と「空き状態」とに対応付けられた2番目から4番目のレコードを取得し、取得された2番目から4番目のレコードから1つを、予め定められた規則又はソフトウェア乱数に基づいて選択する。本実施例では、2番目のレコードが選択された場合を具体例として挙げて説明する。
次に、情報処理装置100の制御部145は、2番目のレコードに保存されたボックスID「2」で識別される配送機400の格納ボックス422に対して第2ユーザによって注文された推奨商品I22を格納させる予定を追加する。このために、制御部145は、図7の予定テーブルにおいて、機体ID「400」と、ボックスID「2」と、が保存された2番目のレコードの文字列「NULL」を、「予約状態」を表す情報、第2ユーザのユーザID「U2」、及び、推奨商品I22の商品ID「I22」に変更する。また、制御部145は、集荷予定を追加するため、2番目のレコードに保存された集荷予定が無いことを表す文字列「NULL」を、推奨集荷場所G2を表す情報、集荷経路TGXを表す情報、及び、1番の順番を表す情報に変更する。さらに、制御部145は、配送予定を追加するため、2番目のレコードに保存された配送予定が無いことを表す文字列「NULL」を、第2ユーザの配送先D2を表す情報、配送経路D1D2を表す情報、及び、3番の順番を表す情報に変更する。
また、情報処理装置100の制御部145は、ステップS13の予定追加を配送機400に対して行うために予定変更命令を生成する。ステップS13で生成される予定変更命令は、配送機400の予定テーブルの2番目のレコードに保存された情報を、図15に示した変更後の予定テーブルの2番目のレコードに保存された情報に変更することを命じる命令である。このため、当該予定変更命令には、図15の予定テーブルの2番目のレコードが含まれている。その後、制御部145は、生成された予定変更命令を、配送機400を宛先としてデータ通信回路104aへ出力する。
その後、情報処理装置100の制御部145は、1番の順番が割り当てられた集荷経路TGXを移動し始めることを命じる移動開始命令を、配送機400を宛先としてデータ通信回路104aへ出力する(ステップS14)。これにより、制御部145は、図12に示した非注文順経路を配送機400に移動させる制御を行う。その後、情報処理装置100のデータ通信回路104aが移動開始命令を配送機400へ送信すると、制御部145は、販売仲介処理の実行を終了する。
情報処理装置100のCPU101は、起動すると、配送機400の移動を制御するため、図16に示すような移動制御処理を実行する。移動制御処理の実行を開始すると、取得部110は、データ通信回路104aから配送機400の到着報告を取得することを試行し、到着報告を取得できたか否かを判別する(ステップS51)。配送機400の到着報告は、配送機400が集荷場所G1からG5のいずれか、又は、配送先D1若しくはD2のいずれかに到着したことを告げる報告である。このとき、取得部110は、到着報告を取得しなかったと判別すると(ステップS51;No)、予め定められた時間に亘ってスリープした後に、ステップS51の処理を実行する。
これに対して、情報処理装置100の取得部110が配送機400の到着報告を受信したと判別すると(ステップS51;Yes)、到着報告に含まれる位置情報を取得する。到着報告に含まれる位置情報は、配送機400が到着した位置を緯度、経路、及び、高度で表す情報である。次に、取得部110は、図8の店舗テーブルから、取得された位置情報と対応付けられた店舗IDの取得を試行する。その後、取得部110は、店舗IDが取得できたか否かに基づいて配送機400が集荷場所G1からG5のいずれかに到着したのか、又は、配送先D1若しくはD2のいずれかに到着したのかを判別する(ステップS52)。
本実施例では、図12に示す非注文順経路を移動する配送機400が、集荷位置GXにある推奨集荷場所G2に到着したため、到着報告には、推奨集荷場所G2の位置情報が含まれている場合を具体例として挙げて説明する。このため、情報処理装置100の取得部110は、推奨集荷場所G2を有する店舗S2の店舗ID「S2」が取得できたため、配送機400が推奨集荷場所G2に到着したと判別する(ステップS52;Yes)。
次に、情報処理装置100の取得部110は、図15の予定テーブルから、配送機400の機体ID「400」と、推奨集荷場所G2の位置情報と、に対応付けられたボックスID「2」と、商品ID「I22」と、を取得する。次に、制御部145は、機体ID「400」とボックスID「2」と商品ID「I22」とを含み、配送機400の格納ボックス422に推奨商品I22を格納させることを店舗S2の従業員に求める格納依頼を生成する。その後、制御部145は、生成された格納依頼を、店舗S2の端末装置602を宛先としてデータ通信回路104aに出力する(ステップS53)。
その後、情報処理装置100の取得部110は、店舗S2の端末装置602から受信された格納報告をデータ通信回路104aから取得することを試行する。格納報告は、配送機400の機体ID「400」と格納ボックス422のボックスID「2」とを含み、かつ、配送機400の格納ボックス422に推奨商品I22を格納させたことを告げる報告である。
次に、情報処理装置100の取得部110は、格納報告を取得できたか否かを判別し(ステップS54)、判別結果に基づいて商品I22の集荷が終了したか否かを判別する。このとき、取得部110は、格納報告を取得できなかったと判別すると(ステップS54;No)、集荷が終了していないと判別する。その後、情報処理装置100は、予め定められた時間に亘ってスリープした後に、ステップS54から上記処理を繰り返す。
これに対して、情報処理装置100の取得部110は、格納報告を取得できたと判別すると(ステップS54;Yes)、商品I22の集荷が終了したと判別する。次に、取得部110は、格納報告に含まれる機体ID「400」とボックスID「2」とを取得する。その後、制御部145は、ボックスID「2」を含み、格納ボックス422の施錠を命じる施錠命令を、機体ID「400」で識別される配送機400を宛先としてデータ通信回路104aへ出力する(ステップS55)。次に、制御部145は、図15の予定テーブルにおいて、機体ID「400」とボックスID「2」とに対応付けられた状態情報を「格納状態」に変更する。
その後、情報処理装置100の制御部145は、配送機400の格納ボックス422に格納された商品I22の集荷予定を、情報処理装置100から削除する(ステップS56)。このため、制御部145は、図15の予定テーブルを、図17に示すような予定テーブルに変更する。このような変更をするために、制御部145は、図15の予定テーブルにおいて、取得された機体ID「400」とボックスID「2」とが保存されている2番目のレコードに保存されている1番の順番を表す情報を、集荷予定が削除されていることを表す文字列「NULL」に変更する。また、制御部145は、図15の予定テーブルの1番目のレコードに保存されている2番を表す情報を、1番を表す情報に変更し、2番目のレコードに保存されている最後の順番である3番を表す情報を、2番を表す情報に変更する。
次に、情報処理装置100の制御部145は、商品I22の集荷予定を配送機400から削除する。このため、制御部145は、配送機400の予定テーブルの1番目のレコードに保存された情報を、図17の予定テーブルの1番目レコードに保存された情報に変更することを命じる1つ目の予定変更命令を生成する。また、制御部145は、配送機400の予定テーブルの2番目のレコードに保存された情報を、図17の予定テーブルの2番目のレコードに保存された情報に変更することを命じる2つ目の予定変更命令を生成する。次に、制御部145は、生成された2つの予定変更命令を、配送機400を宛先としてデータ通信回路104aへ出力する。その後、情報処理装置100のデータ通信回路104aは、予定変更命令を配送機400に送信する。
次に、情報処理装置100の制御部145は、順番が1番に変更された配送経路G2D1の移動を開始することを命じる移動開始命令を、配送機400を宛先としてデータ通信回路104aへ出力する(ステップS57)。その後、情報処理装置100のデータ通信回路104aが移動開始命令を配送機400に送信すると、情報処理装置100は、ステップS51から上記処理を繰り返す。
その後、情報処理装置100の取得部110は、ステップS51において、到着報告を取得できたと判別した後に(ステップS51;Yes)、配送機400が集荷場所G1からG5のいずれかに到着したのか、又は、配送先D1若しくはD2のいずれかに到着したのかを再度判別する(ステップS52)。
本実施例では、図12の非注文順経路を移動する配送機400が、推奨集荷場所G2がある集荷位置GXから配送経路GXD1を移動して第1ユーザの配送先D1に到着した場合を具体例として挙げて説明する。このため、情報処理装置100の取得部110は、到着報告に含まれる位置情報に基づいて、図8の店舗テーブルから店舗IDが取得できなかったため、配送機400が当該位置情報で表される位置にある配送先D1に到着したと判別する(ステップS52;No)。
次に、情報処理装置100の制御部145は、不図示のハードウェアタイマー又はソフトウェアタイマーを用いて計時を開始する。次に、取得部110は、図17の予定テーブルから、配送機400の機体ID「400」と、配送先D1の位置情報と、に対応付けられたボックスID「1」とユーザID「U1」と商品ID「I11」とを取得する。
次に、情報処理装置100の取得部110は、図9の商品テーブルから取得された商品ID「I11」に対応付けられた商品名「トマト」を表す情報を取得する。また、取得部110は、配送先D1の位置を緯度、経度、及び、高度で表す位置情報と情報記憶部190が予め対応付けて記憶する配送先D1の位置を住所で表す情報を取得する。次に、制御部145は、機体ID「400」、ボックスID「1」、商品I11の商品名「トマト」を表す情報、及び、配送先D1を住所で表す情報を含む受取依頼を生成する。本実施例で生成される受取依頼は、配送先D1に到着した配送機400に第1ユーザのパスワードを入力して認証を受けること、及び、認証が成功した場合に格納ボックス421から商品I11を受け取ること、を第1ユーザに求める依頼である。その後、制御部145は、生成された受取依頼を、第1ユーザが携帯する端末装置901を宛先としてデータ通信回路104aへ出力する(ステップS58)。
その後、情報処理装置100の取得部110は、予め定められた時間を表す情報を情報記憶部190から取得する。次に、制御部145は、計時時間の長さが予め定められた時間の長さ以上であるか否かに基づいて、受取依頼を出力してから予め定められた時間が経過したか否かを判別する(ステップS59)。
このとき、情報処理装置100の制御部145は、計時時間の長さが予め定められた時間の長さ以上であると、予め定められた時間が経過したと判別する(ステップS59;Yes)。次に、制御部145は、第1ユーザが商品I11を受け取っていないが、商品I11の配送が終了したと判別する。
これに対して、情報処理装置100の制御部145は、計時時間の長さが予め定められた時間の長さよりも短いと、予め定められた時間が経過していないと判別する(ステップS59;No)。次に、取得部110は、データ通信回路104aから、配送機400から受信された認証要求を取得することを試行する。認証要求は、第1ユーザによって配送機400に入力されたパスワードを表す情報を含み、パスワード認証を行うことを求める要求である。
このとき、情報処理装置100の取得部110は、認証情報を取得すると、図6のユーザテーブルにおいて、第1ユーザのユーザID「U1」と対応付けられたパスワードを表す情報を取得する。次に、認証部115は、ユーザテーブルから取得された情報で表されるパスワードと、認証情報によって表されるパスワードと、が一致するか否かに基づいてパスワード認証が成功したか否かを判別する(ステップS60)。このとき、これらのパスワードが一致しないため、パスワード認証が成功せず、失敗したと認証部115が判別すると(ステップS60;No)、制御部145は、パスワード認証が失敗したことを告げる認証失敗報告を、配送機400を宛先としてデータ通信回路104aに出力する。その後、情報処理装置100は、ステップS59から上記処理を繰り返す。
これに対して、情報処理装置100の認証部115が、2つのパスワードが一致するため、認証が成功したと判別すると(ステップS60;Yes)、制御部145は、ボックスID「1」を含み、格納ボックス421の解錠を命じる解錠命令を生成する。次に、制御部145は、生成された解錠命令を、配送機400を宛先としてデータ通信回路104aへ出力する(ステップS61)。
その後、情報処理装置100の取得部110は、配送機400から受信された受渡報告をデータ通信回路104aから取得することを試行する。受渡報告は、配送機400の機体ID「400」と格納ボックス421のボックスID「1」とを含み、配送機400の格納ボックス421に格納されていた商品I11が第1ユーザに受け渡されたことを告げる報告である。
次に、情報処理装置100の制御部145は、受渡報告が取得された否かを判別し(ステップS62)、判別結果に基づいて商品I11の配送が終了したか否かを判別する。このとき、制御部145は、受渡報告が取得されなかったと判別すると(ステップS62;No)、配送が終了していないと判別する。その後、情報処理装置100は、予め定められた時間に亘ってスリープした後に、ステップS62から上記処理を繰り返す。
これに対して、情報処理装置100の制御部145は、受渡報告が取得されたと判別すると(ステップS62;Yes)、配送が終了したと判別する。配送が終了したと判別すると、制御部145は、配送機400の格納ボックス421に格納された商品I11の配送予定等を、情報処理装置100から削除する(ステップS63)。このため、制御部145は、図17の予定テーブルを、図18に示すような予定テーブルに変更する。このような変更をするために、制御部145は、図17の予定テーブルにおいて、機体ID「400」とボックスID「1」とが保存されている1番目のレコードの状態情報と、商品ID、ユーザID、集荷予定、及び、配送予定と、を、「空き状態」を表す状態情報と、文字列「NULL」と、に変更する。また、制御部145は、予定テーブルの2番目のレコードに保存されている2番を表す情報を、1番を表す情報に変更する。
次に、情報処理装置100の制御部145は、商品I11の配送予定等を配送機400から削除する。このため、制御部145は、配送機400の予定テーブルの1番目のレコードに保存された情報を、図18の予定テーブルの1番目のレコードに保存された情報に変更することを命じる予定変更命令を生成する。また、制御部145は、配送機400の予定テーブルの2番目のレコードに保存された情報を、図18の予定テーブルの2番目のレコードに保存された情報に変更することを命じる予定変更命令を生成する。次に、制御部145は、生成された2つの予定変更命令を、配送機400を宛先としてデータ通信回路104aへ出力する。
その後、情報処理装置100の取得部110は、図18の予定テーブルから1番の番号を表す情報の取得を試行する。次に、取得部110は、情報が取得できたか否かに基づいて、未だ実行されていない集荷予定又は配送予定が存在するか否かを判別する(ステップS64)。このとき、取得部110は、1番の番号を表す情報が取得できたため、取得できた当該情報と対応付けられた配送経路D1D2を未だ配送機400が移動していないと判別する。このため、取得部110は、未だ実行されていない配送予定が存在すると判別する(ステップS64;Yes)。
その後、情報処理装置100の制御部145は、配送経路D1D2の移動を開始することを命じる移動開始命令を、配送機400を宛先としてデータ通信回路104aへ出力する(ステップS65)。その後、情報処理装置100のデータ通信回路104aが移動開始命令を配送機400に送信すると、情報処理装置100は、ステップS51から上記処理を繰り返す。
その後、情報処理装置100は、ステップS51及びS52の処理を順に実行することで(ステップS51及びS52)、配送機400が第2ユーザの配送先D2にと到着したと判別する(ステップS52;No)。次に、情報処理装置100は、ステップS58からS62の処理を順に実行することで(ステップS58からS62)、第2ユーザが注文した商品I22の配送が終了したと判別してから、商品I22の配送予定を削除する(ステップS63)。その後、情報処理装置100は、未実行の集荷予定及び配送予定が存在しないと判別すると(ステップS64;No)、ステップS51から上記処理を繰り返す。
情報処理装置100のCPU101は、起動すると、配送機500の移動を制御するため、図16に示した移動制御処理と同様の処理を実行する。
配送機400は、例えば、無人地上車両であり、無人で地上を走行可能な走行機である。配送機400は、図19に示すような車輪401及び402を含む複数の車輪を備える車台410と、車台410の上面に設置された格納庫420と、格納庫420に内蔵された情報処理装置490と、を備える。
配送機400の格納庫420には、配送機400の機体ID「400」が印字されており、それぞれボックスID「1」から「4」が印字された4つの格納ボックス421から424を備える。格納ボックス421は、不図示の1枚の底板、天板、及び、背板、並びに、2枚の側板を備え、これらの板により閉塞されて前方が開放された空間を形成する箱体を備える。箱体の開口部には、扉421aを受け止める扉枠421bが設置されている。扉421aは、カンヌキであるデッドボルト421cを備え、扉枠421bは、デッドボルト421cの受座であるストライク421dを備える。
配送機400が備える格納ボックス421の扉421aは、配送機400の情報処理装置490から出力される信号に従って、デッドボルト421cをストライク421dへ挿入させる不図示のモータをさらに備えている。また、当該モータは、情報処理装置490から出力される信号に従って、デッドボルト421cをストライク421dから抜出させる。デッドボルト421cがストライク421dへ挿入されると、格納ボックス421の扉421aが施錠される。デッドボルト421cがストライク421dから抜出されると、格納ボックス421の扉421aが解錠される。格納ボックス422から424が有する構成及び機能は、格納ボックス421が有する構成及び機能と同様である。
配送機400の格納庫420は、例えば、デジタルカメラである撮像装置430を、格納ボックス421から424の扉が設置されている面に備える。撮像装置430の光軸及び画角は、格納ボックス421から424に格納された商品を受け取るユーザが撮像範囲に含まれるように調整されている。撮像装置430は、予め定められた周期で撮像を行い、撮像により得られた画像を表す信号を情報処理装置490へ出力する。
配送機400は、車台410の前面に設置されたLiDAR(Light Detection and Ranging)センサ441と、車台410の後面に設置された不図示のLiDARセンサと、をさらに備える。
配送機400が備える前面のLiDARセンサ441は、配送機400の前方向を基準の方位として用いる場合に、当該基準の方位となす方位角が-90度から+90度まで、かつ、配送機400の前方向となす仰角が-90度から+90度までの範囲に含まれる複数の方向へレーザー光を照射する。前面のLiDARセンサ441は、照射されたレーザー光の反射光を受光し、レーザー光の照射から反射光の受光までの時間に基づいて、レーザー光が反射された複数の反射点までの距離を計測する。次に、前面のLiDARセンサ441は、レーザー光の照射方向と計測された距離とに基づいて、配送機400の中心点を原点として用いた三次元座標系における座標値を、複数の反射点について算出する。その後、前面のLiDARセンサ441は、算出された複数の反射点の座標値を配送機400の情報処理装置490へ出力する。
配送機400が備える後面のLiDARセンサは、配送機400の後方向を基準の方位として用いる場合に、当該基準の方位となす方位角が-90度から+90度まで、かつ、配送機500の後方向となす仰角が-90度から+90度までの範囲に含まれる複数の方向へ赤外線のレーザー光を照射する。また、後面のLiDARセンサは、照射されたレーザー光の複数の反射点について配送機400の三次元座標系における座標値を算出し、算出された複数の反射点の座標値を配送機400の情報処理装置490へ出力する。
配送機400が備える前面のLiDARセンサ441及び後面のLiDARセンサが複数の反射点の座標値を情報処理装置490へ出力するのは、例えば、障害物等の物体を回避して走行するために、配送機400の情報処理装置490が、配送機400を基準として用いた全方向にある物体の三次元空間における座標値及びサイズ等を特定するためである。
配送機400の情報処理装置490は、図20に示すようなハードウェアであるCPU491、RAM492、ROM493a、フラッシュメモリ493b、データ通信回路494a、ビデオカード495a、表示装置495b、入力装置495c、位置計測回路496、入出力ポート498、及び、駆動回路499を備える。本実施例では、配送機400は、1つのCPU491を備えるが、複数のCPUを備えても良い。また、配送機400は、複数のRAM及びフラッシュメモリを備えても良い。
配送機400のCPU491、RAM492、ROM493a、データ通信回路494a、ビデオカード495a、表示装置495b、及び、入力装置495cの構成及び機能は、情報処理装置100のCPU101、RAM102、ROM103a、データ通信回路104a、ビデオカード105a、表示装置105b、及び、入力装置105cの構成及び機能と同様である。
配送機400のフラッシュメモリ493bは、各種のプログラムと、プログラムの実行に用いられる各種のデータ及びデータが保存されたテーブルと、を記憶している。フラッシュメモリ493bは、不図示の予定テーブルを予め記憶している。フラッシュメモリ493bが記憶している予定テーブルには、情報処理装置100が記憶している、図7の予定テーブルの1番目から4番目のレコードと同じ4つのレコードが保存されている。
配送機400の位置計測回路496は、QZSS(Quasi-Zenith Satellite System)回路である。位置計測回路496は、準天頂衛星から発せられた信号を受信し、受信された信号に基づいて配送機400の位置を表す緯度、経度、及び、高度を計測し、計測された緯度、経度、及び、高度を表す信号を出力する。位置計測回路496は、QZSS回路ではなく、GPS(Global Positioning System)衛星から発せられたGPS信号を受信し、受信されたGPS信号に基づいて配送機400の位置を表す緯度、経度、及び、高度を計測するGPS回路であっても良い。
配送機400の入出力ポート498は、撮像装置430に接続された不図示のケーブルに接続されており、撮像装置430が出力する信号をCPU491へ入力する。また、配送機400の入出力ポート498は、前面のLiDARセンサ441及び後面のLiDARセンサとそれぞれ接続された不図示のケーブルに接続されている。入出力ポート498は、前面のLiDARセンサ441及び後面のLiDARセンサがそれぞれ出力する座標値を表す信号をCPU491へ入力する。
配送機400の駆動回路499は、複数の車輪を回転させる不図示のモータにそれぞれ接続された不図示のケーブルに接続されている。駆動回路499は、CPU491が出力する制御信号に従って当該モータを駆動させることで、複数の車輪を回転させる。
また、配送機400の駆動回路499は、扉421aが備える不図示のモータに接続されたケーブルに接続されており、CPU491が出力する信号に従って当該モータを駆動させる。扉421aが備える当該モータの駆動により、デッドボルト421cは、ストライク421dから抜出させる又はストライク421dに挿入させる。
配送機400のデータ通信回路494aが、図10のステップS37で出力された位置送信要求を情報処理装置100から受信すると、配送機400のCPU491は、位置計測回路496から出力される信号に基づいて、配送機400の緯度、経度、及び、高度を特定する。次に、CPU491は、配送機400の位置を、緯度、経度、及び、高度で表す位置情報を生成し、生成された位置情報を、情報処理装置100を宛先としてデータ通信回路494aへ出力する。その後、配送機400のデータ通信回路494aは、配送機400の位置情報を情報処理装置100へ送信する。
その後、配送機400のデータ通信回路494aが、図4のステップS12又はS13で出力された予定変更命令を受信すると、配送機400のCPU491は、データ通信回路494aから予定変更命令を取得する。次に、CPU491は、予定変更命令に含まれるレコードを取得し、取得されたレコードに保存されたボックスIDを取得する。その後、CPU491は、フラッシュメモリ493bが記憶する不図示の予定テーブルに保存された4つのレコードの内で、取得されたボックスIDが保存されたレコードを特定する。次に、配送機400のCPU491は、特定されたフラッシュメモリ493bのレコードに保存された状態情報、商品ID、ユーザID、集荷予定、及び、配送予定を、予定変更命令から取得されたレコードに保存された状態情報、商品ID、ユーザID、集荷予定、及び、配送予定に変更する。
配送機400のデータ通信回路494aが移動開始命令を情報処理装置100から受信すると、移動開始命令に従って移動するため、配送機400のCPU491は、図21に示すような移動処理を実行する。移動処理の実行を開始すると、配送機400のCPU491は、フラッシュメモリ493bが記憶する不図示の予定テーブルから1番の順番を表す情報と対応付けられた集荷経路TGXを表す情報を取得する(ステップS71)。
次に、配送機400のCPU491は、フラッシュメモリ493bが予め記憶している配送機400の設定速度を表す情報を取得する。その後、CPU491は、位置計測回路496から出力される信号に基づいて、配送機400の緯度、経度、及び、高度を特定する。次に、CPU491は、特定された緯度、経度、及び、高度と、移動経路に含まれる複数の未通過のノードの内で最も通過順が早いノードの緯度、経度、及び、高度と、の相違を縮小させるように設定速度で移動するための制御信号を生成し、生成された制御信号を駆動回路699へ出力する(ステップS72)。これにより、配送機400は、複数の車輪を回転させて、最も通過順が早い未通過のノードへ向かって設定速度で移動する。
その後、配送機400のCPU491は、データ通信回路494aから停止命令を取得することを試行し、停止命令を取得したか否かを判別する(ステップS73)。このとき、CPU491は、停止命令を取得すると(ステップS73;Yes)、複数の車輪の回転を停止させるための制御信号を駆動回路699へ出力した後に、移動処理の実行を終了する。これにより、配送機400は、移動を中断して停止する。
これに対して、配送機400のCPU491は、停止命令を取得しなかったと判別すると(ステップS73;No)、集荷経路TGXに含まれる複数のノードの全てに到着したか否かに基づいて、集荷経路TGXの終点GXに到着したか否かを判別する(ステップS74)。このとき、複数のノードの全てに到着した訳ではないため、集荷経路TGXの終点GXに到着していないと判別すると(ステップS74;No)、ステップS72から上記処理を繰り返す。
これに対して、配送機400のCPU491は、複数のノードの全てに到着したため、集荷経路TGXの終点GXに到着したと判別すると(ステップS74;Yes)、複数の車輪の回転を停止させるための制御信号を駆動回路699へ出力する。これにより、配送機400は、集荷経路TGXの終点GXで駐車又は停車を行う。その後、CPU491は、集荷経路TGXを表す情報から、終点GXに対応するノードの位置情報を取得し、取得された位置情報を含み、かつ、配送機400が集荷経路TGXの終点GXに到着したことを告げる到着報告を生成する、次に、CPU491は、生成された到着報告を、情報処理装置100を宛先としてデータ通信回路494aへ出力してから(ステップS75)、移動処理の実行を終了する。
配送機400が店舗S2の集荷場所G2がある集荷位置GXに到着し、店舗S2の従業員によって商品I22が格納ボックス422に格納された後、配送機400のデータ通信回路494aが施錠命令を受信すると、配送機400のCPU491は、格納ボックス422を施錠させる制御信号を駆動回路499へ出力する。このようにして、配送機400は、格納ボックス422を施錠する。
その後、配送機400は、移動開始命令を受信すると、図21に示した移動処理を再度実行することで、配送経路GXD1を移動して第1ユーザの配送先D1に到着する。次に、第1ユーザが配送先D1に到着し、配送機400の入力装置495cに第1ユーザのパスワードを入力するための操作を行うと、配送機400の入力装置495cは、当該操作に応じた信号を出力する。次に、配送機400のCPU491は、当該信号に基づいて入力されたパスワードを特定する処理を実行する。次に、CPU491は、入力されたパスワードを表す情報を含み、かつ、パスワード認証を要求する認証要求を、情報処理装置100を宛先としてデータ通信回路494aへ出力する。
その後、配送機400のデータ通信回路494aが認証失敗報告を受信すると、配送機400のCPU491は、パスワード認証が失敗したと判別する。次に、CPU491は、認証が失敗したことを表すメッセージと、パスワードの再入力を促すメッセージと、を表示装置495bに表示させる。その後、CPU491は、入力されたパスワードを取得する処理から上記処理を繰り返す。
これに対して、配送機400のデータ通信回路494aが解錠命令を受信すると、配送機400のCPU491は、パスワード認証が成功したと判別する。次に、CPU491は、解錠命令に含まれるボックスID「1」で識別される格納ボックス421を解錠させる制御信号を駆動回路499へ出力する。
その後、配送機400のCPU491は、撮像装置430から出力される信号を取得し、取得された信号で表される画像(以下、撮像画像という)に基づいて、解錠された格納ボックス421から商品I11が受け取られたか否かを予め定められた周期で判別する。このために、CPU491は、フラッシュメモリ493bに予め記憶されている商品のテンプレート画像を表す情報を取得し、取得された情報で表されるテンプレート画像と、取得された信号で表される撮像画像と、に基づいてテンプレートマッチングを行えば良い。その後、CPU491は、テンプレートマッチングにより、撮像画像から商品に対応する画像領域が検出されると、商品I11が受け取られたと判別する。次に、CPU491は、配送機400の機体ID「400」と格納ボックス421のボックスID「1」とを含み、配送機400の格納ボックス421に格納されていた商品I11の受け渡しが完了したことを告げる受渡報告を生成する。その後、CPU491は、情報処理装置100を宛先として受渡報告をデータ通信回路494aへ出力する。
その後、配送機400は、移動開始命令を受信すると、図21の移動処理を再度実行することで、配送経路D1D2を移動して第2ユーザの配送先D2に到着する。次に、第2ユーザが配送先D2に到着し、配送機400に第2ユーザのパスワードを入力するための操作を行うと、配送機400は、入力されたパスワードを含む認証要求を情報処理装置100に送信する。その後、配送機400は、解錠命令を情報処理装置100から受信すると、商品I22が格納されている格納ボックス422を解錠する。次に、配送機400は、商品I22が受け取られたと判別すると、機体ID「400」とボックスID「2」とを含み、配送機400の格納ボックス422に格納されていた商品I22の受け渡しが完了したことを告げる受渡報告を情報処理装置100へ送信する。
配送機500の構成及び機能は、配送機400の構成及び機能と同様である。
店舗S1からS5の従業員がそれぞれ携帯する端末装置601から605は、例えば、スマートフォン、又は、タブレット型若しくはノートブック型のパーソナルコンピュータであり、それぞれ同様の構成及び機能を有している。このため、推奨集荷場所G2を有する店舗S2の従業員が携帯する端末装置602について主に説明する。
端末装置602は、図22に示すような、ハードウェアであるCPU621、RAM622、ROM623a、フラッシュメモリ623b、データ通信回路624a、音声通信回路624b、ビデオカード625a、表示装置625b、入力装置625c、位置計測回路626、スピーカ629a、及び、マイクロフォン629bを備える。端末装置602は、複数のCPUを備えても良いし、複数のRAM及びフラッシュメモリを備えても良い。
端末装置602のCPU621、RAM622、ROM623a、データ通信回路624a、ビデオカード625a、表示装置625b、及び、入力装置625cの構成及び機能は、情報処理装置100のCPU101、RAM102、ROM103a、データ通信回路104a、ビデオカード105a、表示装置105b、及び、入力装置105cの構成及び機能と同様である。
端末装置602のフラッシュメモリ623b及び位置計測回路626の構成及び機能は、配送機400のフラッシュメモリ493b及び位置計測回路496の構成及び機能と同様である。
端末装置602の音声通信回路624bは、不図示の基地局と電波を用いた音声通信を行う。スピーカ629aは、CPU101が出力する信号に従って音声を出力し、マイクロフォン629bは、端末装置602の周囲の音声を表す信号を出力する。
端末装置602のデータ通信回路624aが、図4のステップS06で転送された販売依頼を受信すると、端末装置602のCPU621は、データ通信回路624aから販売依頼を取得し、取得された販売依頼を表示装置625bに表示させる。店舗S2の従業員は、表示された販売依頼を視認すると、販売依頼を受け付けるか否かを判断する。従業員は、販売依頼を受け付けないと判断すると、販売依頼を受け付けず、受付報告を送信させるための操作を端末装置602に行わず、かつ、販売が依頼された商品I22の準備を行わない。
これに対して、店舗S2の従業員は、販売依頼を受け付けると判断すると、販売依頼を受け付けてから、当該販売依頼が受け付けられたことを告げる受付報告を送信させるための操作を端末装置602の入力装置625cに行う。端末装置602の入力装置625cが当該操作に応じた信号を出力すると、端末装置602のCPU621は、当該信号に基づいて、販売依頼に含まれる店舗ID「S2」と商品ID「I22」とを含む受付報告を生成し、生成された受付報告を、情報処理装置100を宛先としてデータ通信回路624aへ出力する。その後、端末装置602のデータ通信回路624aは、受付報告を情報処理装置100へ送信する。次に、従業員は、商品ID「I22」で識別される商品I22の準備を開始する。
その後、端末装置602のデータ通信回路624aが、図16のステップS53で出力された格納依頼を受信すると、端末装置602のCPU621は、データ通信回路624aから格納依頼を取得し、取得された格納依頼を表示装置625bに表示させる。店舗S2の従業員は、表示された格納依頼に含まれる機体ID「400」、ボックスID「2」、及び、商品ID「I22」を視認する。次に、従業員は、店舗S2の推奨集荷場所G2に到着している1又は複数の配送機の内で、視認した機体ID「400」が印字されている配送機400を探し出す。その後、従業員は、視認した商品ID「I22」で識別される商品であり、かつ、準備が完了した推奨商品I22を、視認したボックスID「2」が印字されている格納ボックス422に格納させる。
その後、従業員は、配送機400の格納ボックス422に推奨商品I22を格納させたことを告げる格納報告を送信させるための操作を端末装置602の入力装置625cに行う。端末装置602の入力装置625cが当該操作に応じた信号を出力すると、端末装置602のCPU621は、当該信号に基づいて、格納依頼に含まれる機体ID「400」とボックスID「2」とを含む格納報告を生成し、生成された格納報告を、情報処理装置100を宛先としてデータ通信回路624aへ出力する。その後、端末装置602のデータ通信回路624aは、格納報告を情報処理装置100へ送信する。
第1ユーザから第4ユーザがそれぞれ携帯する端末装置901から904は、例えば、スマートフォン、又は、タブレット型若しくはノートブック型のパーソナルコンピュータであり、それぞれ同様の構成及び機能を有している。このため、第2ユーザが携帯する端末装置902について主に説明する。
端末装置902は、図22に示した端末装置602のハードウェアと同様の構成及び機能を有するハードウェアを備える。端末装置902は、商品を注文するために用いられるアプリケーション(以下、アプリという)を予め記憶している。端末装置902を携帯する第2ユーザがアプリを起動させる操作を端末装置902に行うと、端末装置902は、アプリによって規定された、図23に示すような注文処理の実行を開始する。
注文処理の実行が開始されると、端末装置902は、第2ユーザのユーザID及びパスワードを含む認証情報の入力を促すメッセージを表示する。当該メッセージを視認した第2ユーザが端末装置902を操作すると、端末装置902は、当該操作に応じて第2ユーザの認証情報を取得する。その後、端末装置902は、取得された認証情報を含む接続要求を情報処理装置100へ送信する(ステップS81)。
端末装置902は、接続要求を情報処理装置100へ送信してから予め定められた時間が経過しても許可報告を受信しないと(ステップS82;No)、認証が失敗したため接続が許可されなかったと判別する。その後、端末装置902は、認証が失敗したことを告げるメッセージを表示してから、注文処理の実行を終了する。
これに対して、端末装置902は、認証要求を送信してから予め定められた時間が経過する前に許可報告を受信すると(ステップS82;Yes)、認証が成功したため、接続が許可されたと判別する。次に、端末装置902は、許可報告を受信してから予め定められた時間が経過する前に、図10のステップS43で出力された推奨情報を受信する(ステップS83;Yes)。受信される推奨情報は、店舗S2で販売される推奨商品I22を注文期限までに注文することを推奨する情報である。当該推奨情報には、推奨集荷場所G2の位置情報と、推奨集荷場所G2がある店舗S2の店舗ID「S2」及び名称を表す情報と、店舗S2で販売される推奨商品I22の商品ID「I22」及び名称を表す情報と、注文期限を表す情報と、が含まれている。
その後、端末装置902は、推奨情報が表示された、図24に示すような推奨画面を、不図示の表示装置に表示させる。これにより、端末装置902は、推奨集荷場所G2及び推奨商品I22と、推奨集荷場所G2で集荷される推奨商品I22の注文が受け付けられる受付期限と、を第2ユーザに提示する(ステップS84)。
次に、端末装置902は、例えば、OSが管理するシステム時刻を取得し(ステップS85)、取得されたシステム時刻が受付期限よりも後の時刻であるか否かに基づいて、受付期限が徒過されたか否かを判別する(ステップS86)。
本実施例では、受付期限が徒過されるよりも前に、推奨情報によって推奨された注文を行うための操作(以下、注文操作という)が端末装置902に行われた場合を具体例として挙げて以下の説明を行う。このため、端末装置902は、取得されたシステム時刻が受付期限以前の時刻であるため、受付期限が徒過されていないと判別する(ステップS86;No)。
次に、端末装置902は、不図示の入力装置から出力される信号に基づいて、第2ユーザによって何らかの操作が行われたか否かを判別する(ステップS87)。このとき、端末装置902は、何ら操作が行われていないと判別すると(ステップS87;No)、ステップS85から上記処理を繰り返す。
これに対して、端末装置902は、何らかの操作が行われたと判別すると(ステップS87;Yes)、行われた操作が注文操作であるか否かを、入力装置から出力される信号に基づいて判別する(ステップS88)。本実施例において、端末装置902は、行われた操作が注文操作であると判別し(ステップS88;Yes)、推奨情報によって推奨された注文を情報処理装置100へ送信する(ステップS89)。その後、端末装置902は、注文処理の実行を終了する。情報処理装置100へ送信される注文には、推奨情報に含まれている店舗ID「S2」及び商品ID「I22」を含み、かつ、店舗S2に推奨商品I22の販売を求める販売依頼が含まれる。また、当該注文には、推奨情報に含まれている店舗ID「S2」及び商品ID「I22」と、注文を行った第2ユーザのユーザID「U2」と、を含み、かつ、販売される推奨商品I22を店舗S2にある推奨集荷場所G2で集荷して、第2ユーザの配送先D2へ配送することを求める配送依頼が含まれる。
これらの構成によれば、情報処理システム1は、荷物である商品の配送依頼を受け付けると、複数の格納ボックス421から424を有する配送機400に、商品を配送させる制御を行う。また、情報処理システム1は、情報処理システム1に第2ユーザがアクセスしたことが検知されると、第2ユーザについて設定された配送先D2を取得する取得部110を備える。さらに、情報処理システム1は、複数の格納ボックス421から424の1つ以上に空きがある場合に、複数の格納ボックス421から424の1つ以上に格納された商品の配送経路G1D1及びG3D3から、取得された第2ユーザの配送先D2に、又は、配送先D2の近傍に、終点D1が位置する近傍経路G1D1を抽出する抽出部125を備える。さらに、情報処理システム1は、抽出された近傍経路G1D1の終点D1に配送機400が到るまでに、商品の集荷が可能な集荷場所G1、G2、及び、G4を特定する特定部130を備える。このため、情報処理システム1は、荷物である商品の配送効率を向上させる集荷場所G1、G2、及び、G4を特定できる。本実施例では、配送機400による商品の配送効率は、単位時間当たり、又は、配送機400による単位距離の移動当たり、配送機400が配送する商品の総数で表される。同様に、配送機500による商品の配送効率は、単位時間当たり、又は、配送機500による単位距離の移動当たり、配送機500が配送する商品の総数で表される。しかし、配送機400による商品の配送効率、及び、配送機500による商品の配送効率は、これらに限定される訳ではない。
またこれらの構成によれば、近傍経路G1D1は、配送機400が移動中の経路である。このため、情報処理システム1は、配送機400が移動している近傍経路G1D1の終点D1に配送機400が到るまでに商品の集荷が可能な集荷場所G1、G2、及び、G4を特定する。よって、情報処理システム1は、配送機400が移動していない経路の終点に配送機400が到るまでに商品の集荷が可能な集荷場所よりも早く第2ユーザの配送先D2に配送できる商品の集荷場所G1、G2、及び、G4を特定できる。このため、集荷場所G1、G2、及び、G4で集荷される商品の性質が、時間の経過に伴って商品の状態が変化する性質を含む場合に、商品の集荷場所G1、G2、及び、G4での集荷から配送先D2への到着までに、商品の状態が変化することを抑制できる。時間の経過に伴って商品の状態が変化する性質は、例えば、麺が伸びる性質、冷める性質、及び、暖まる性質の1以上を含む。
さらにこれらの構成によれば、情報処理システム1は、配送機400が、特定された集荷場所G2まで移動するのに要する移動時間「25分」を推定する推定部135をさらに備える。また、情報処理システム1の特定部130は、特定された集荷場所G2において集荷可能とするための準備に要する準備時間が、推定された移動時間「25分」以下の商品である準備可能商品I22及びI23を特定する。このため、情報処理装置100は、配送機400が集荷場所G2に到着するよりも前に集荷可能となると推定される準備可能商品I22及びI23を特定できる。
またこれらの構成によれば、情報処理システム1の推定部135は、配送機400が、特定された集荷場所G2に到着する到着時刻をさらに推定する。また、情報処理システム1は、推定された到着時刻と準備時間「15分」とに基づいて、準備可能商品I22の配送依頼が受け付けられる受付期限を決定する決定部140を備える。さらに、情報処理システム1は、特定された集荷場所G2と、特定された準備可能商品I22と、決定された受付期限と、を表す推奨情報を、第2ユーザの端末装置902へ送信するデータ通信回路104aを備える。このため、情報処理システム1は、配送機400の集荷場所G2への到着時刻と、準備可能商品I22の準備時間と、に基づいて決定された注文の受付期限を第2ユーザの端末装置902へ送信できる。よって、端末装置902によって受信された受付期限を第2ユーザが確認すれば、集荷場所G2へ配送機400が到着するまでに準備可能商品I22の準備を終了させるために、いつまでに注文を行わなければならないかを知ることができる。このため、集荷場所G2で集荷される準備可能商品I22の注文を、第2ユーザが注文期限までに行えば、配送機400が集荷場所G2に到着してから準備可能商品I22の準備が終了するまでの待ち時間を無くす、又は、従来よりも短くできるため、配送効率を従来よりも向上できる。
またこれらの構成によれば、情報処理システム1が備えるデータ通信回路104aは、特定された集荷場所G2で準備可能商品I22を集荷して配送することを求める配送依頼を受信する。また、情報処理システム1は、受信された配送依頼が受け付けられると、第2ユーザに特典を付与する付与部150をさらに備える。このため、情報処理システム1は、配送効率を向上させる集荷場所G2で準備可能商品I22を集荷して配送すること求めるインセンティブを第2ユーザに与えることができる。インセンティブに従って第2ユーザが集荷場所G2で準備可能商品I22を集荷して配送すること求める配送依頼を端末装置902に送信させると配送効率が向上する。
またこれらの構成によれば、情報処理システム1の特定部130は、受信された配送依頼が受け付けられた場合に、準備可能商品I22の集荷が行われる集荷位置GXであり、かつ、受信された配送依頼よりも先に受け付けられた先行依頼に従った近傍経路G1D1の終点D1への配送、受信された配送依頼である後行依頼に従った集荷位置GXでの集荷、後行依頼に従った集荷位置GXからの配送、を順に行うための注文順経路の距離よりも、後行依頼に従った集荷、先行依頼に従った配送、及び、後行依頼に従った配送、を順に行うための非注文順経路の距離の方が短い位置、にある集荷場所G1、G2、及び、G4を特定する。このため、情報処理システム1は、配送機400が非注文順経路を移動した場合に、注文順経路を移動した場合よりも配送効率を向上させる集荷場所G1、G2、及び、G4を特定できる。
またこれらの構成によれば、情報処理システム1の情報処理装置100が備える制御部145は、後行依頼が受け付けられると、非注文順経路を配送機400に移動させる制御を行う。このため、情報処理システム1は、配送機400が注文順経路を移動する場合よりも配送効率を向上させることができる。
<実施例の変形例1>
実施例では、情報処理装置100の取得部110は、第2ユーザについて設定された配送先D2の位置情報を取得すると説明した。しかし、これに限定される訳では無く、本変形例に係る配送先D2は、第2ユーザについて推定された配送先であり、本変形例に係る取得部110は、第2ユーザについて推定された配送先D2の位置情報を取得する。
このために、本変形例に係る情報記憶部190は、不図示のユーザテーブルを記憶している。本変形例に係るユーザテーブルには、複数のレコードが予め保存されており、各レコードには、ユーザのユーザIDと、当該ユーザのパスワードを表す情報と、当該ユーザについて予め推定された配送先の位置を住所で表す情報と、当該ユーザの特典を表す情報と、が予め対応付けられて保存されている。このため、本変形例に係る取得部110は、図10のステップS34において、不図示のユーザテーブルから、第2ユーザのユーザID「ID」と対応付けられた情報であって、かつ、第2ユーザについて推定された配送先D2の位置を住所で表す情報を取得する。その後、取得部110は、推定された配送先D2の位置を住所で表す情報と予め対応付けて情報記憶部190が記憶している情報であり、かつ、推定された配送先D2の位置を緯度、経度、及び、高度で表す位置情報を取得する。
本変形例において、ユーザについて推定された配送先の位置を住所で表す情報は、情報記憶部190が予め記憶している当該ユーザの住所を表す情報であるが、これに限定される訳では無い。ユーザについて推定された配送先の位置を住所で表す情報は、当該ユーザの職場の位置を住所で表す情報であっても良い。また、ユーザについて推定された配送先を住所で表す情報は、情報記憶部190が予め記憶している情報であり、かつ、当該ユーザによって過去に行われた注文において配送先として指定された回数が最も多い位置を住所で表す情報であっても良い。ユーザについて配送先を推定し、推定された配送先の位置を住所で表す情報を、不図示のユーザテーブルに、当該ユーザのユーザIDと対応付けて保存する推定処理は、情報処理装置100のCPU101が、例えば、午前2時といった予め定められた時刻に実行すれば良い。
<実施例の変形例2>
本変形例では、情報処理装置100の取得部110は、不図示のユーザテーブルから、第2ユーザについて推定された配送先D2の位置を住所で表す情報を取得すると説明した。また、取得部110は、取得された情報に情報記憶部190が対応付けて記憶している情報であり、かつ、推定された配送先D2の位置を緯度、経度、及び、高度で表す位置情報を取得すると説明した。しかし、これに限定される訳では無く、第2ユーザが携帯する端末装置902の位置情報を、第2ユーザについて推定された配送先D2の位置情報として取得しても良い。
このために、情報処理装置100の取得部110は、端末装置902の位置を緯度、経度、及び、高度で表す位置情報の送信を求める位置送信要求を、端末装置902を宛先としてデータ通信回路104aへ出力する。端末装置902は、情報処理装置100から位置送信要求を受信すると、不図示の位置計測回路から出力される信号に基づいて端末装置902の緯度、経度、及び、高度を特定する。次に、端末装置902は、端末装置902の位置を、特定された緯度、経度、及び、高度で表す位置情報を生成し、生成された位置情報を情報処理装置100へ返送する。情報処理装置100のデータ通信回路104aが位置情報を端末装置902から受信すると、取得部110は、データ通信回路104aから端末装置902の位置情報を、第2ユーザについて推定された配送先D2の位置情報として取得する。
<実施例の変形例3>
実施例では、情報処理装置100は、第2ユーザによって予め設定された配送先D2へ商品I22を配送させる制御を配送機400に行うと説明したが、これに限定される訳では無い。本変形例に係る情報処理装置100は、第2ユーザによって予め設定された配送先D2と異なる位置にあり、かつ、第2ユーザによって指定された不図示の配送先DDへ商品I22を配送させる制御を配送機400に行う。
このために、第2ユーザが携帯する端末装置902は、図23のステップS88において、注文操作が行われたと判別すると(ステップS88;Yes)、第2ユーザのユーザID「U2」を含み、第2ユーザによって設定された配送先D2の位置を住所で表す情報の送信を求める配送先送信要求を情報処理装置100へ送信する。
情報処理装置100のデータ通信回路104aが配送先送信要求を受信すると、情報処理装置100の取得部110は、データ通信回路104aから配送先送信要求を取得し、取得された配送先送信要求から第2ユーザのユーザID「U2」を取得する。次に、取得部110は、図6のユーザテーブルにおいて、ユーザID「U2」に対応付けられた配送先D2の位置を住所で表す情報を取得し、取得された情報を、端末装置902を宛先としてデータ通信回路104aに出力する。
第2ユーザの端末装置902は、配送先D2の位置を住所で表す情報を受信すると、受信された情報で表される配送先D2の住所を表示する。その後、表示された住所を視認した第2ユーザが端末装置902に操作を行うと、端末装置902は、不図示の入力装置から出力される当該操作に応じた信号に基づいて、表示された住所にある配送先D2を承認するための承認操作が行われたか否かを判別する。このとき、端末装置902は、承認操作が行われたと判別すると、配送先D2が承認されたことを告げる承認報告を注文に含めて情報処理装置100へ送信する(ステップS89)。
これに対して、端末装置902は、承認操作が行われなかったと判別すると、表示された住所と異なる住所にある配送先DDを指定する操作が第2ユーザによって行われたと判別する。次に、端末装置902は、入力装置から出力される信号に基づいて、第2ユーザによって指定された配送先DDの住所を表す情報を取得する。その後、端末装置902は、取得された情報を含み、かつ、配送先D2と異なる配送先DDが指定されたことを告げる指定報告を注文に含めて情報処理装置100へ送信する(ステップS89)。
情報処理装置100は、注文が取得されたと判別すると(図4のステップS05;Yes)、ステップS06からS12の処理を実行する(ステップS06からS12)。その後、情報処理装置100の制御部145は、実施例で説明した集荷予定を追加した後に、取得された注文に承認報告が含まれるか、指定報告が含まれるか、を判別する。このとき、制御部145は、注文に承認報告が含まれると判別すると、近傍経路G1D1の終点D1から、第2ユーザによって承認された配送先D2に到る配送経路D1D2を配送機400が移動するという配送予定を追加する。
これに対して、情報処理装置100の制御部145は、注文に指定報告が含まれると判別すると、指定報告に含まれる配送先DDの住所を表す情報を取得する。次に、取得部110は、配送先DDの住所を表す情報に対応付けて情報記憶部190が予め記憶する配送先DDの位置を緯度、経度、及び、高度で表す位置情報を取得する。その後、制御部145は、取得された配送先DDの位置情報に基づいて、近傍経路G1D1の終点D1から、第2ユーザによって指定された配送先DDに到る配送経路D1DDを配送機400が移動するという配送予定を追加する(ステップS13)。次に、制御部145は、図16に示した移動制御処理を実行することで、追加された配送予定に基づいて配送経路D1DDを配送機400に移動させる制御を行う。
本変形例では、情報処理装置100は、第2ユーザによって予め設定された配送先D2と異なる位置にあり、かつ、第2ユーザによって指定された配送先DDへ商品I22を配送させる制御を配送機400に行うと説明した。しかし、これに限定される訳では無い。情報処理装置100は、第2ユーザについて推定された配送先D2と異なる位置にあり、かつ、第2ユーザによって指定された配送先DDへ商品I22を配送させる制御を配送機400に行っても良い。
<実施例の変形例4>
実施例では、情報処理装置100の決定部140は、推奨集荷場所G2で集荷される推奨商品I22の注文が受け付けられる受付期限を、推奨集荷場所G2における推奨商品I22の準備時間だけ、配送機400の推奨集荷場所G2への到着時刻よりも早い時刻に決定すると説明した。しかし、これに限定される訳ではなく、決定部140は、準備時間と、予め定められた余裕時間と、の合計時間だけ到着時刻よりも早い時刻に、受付期限を決定しても良い。余裕時間の好適な長さは、当業者が実験により定めることができる。
また、情報処理装置100の決定部140は、準備時間から予め定められた許容時間を減算して得られる時間だけ到着時刻よりも早い時刻に、受付期限を決定しても良い。許容時間は、配送機400が推奨集荷場所G2に到着してから、推奨集荷場所G2で推奨商品I22の準備が終了するまでの待ち時間として許容される、予め定められた最長の時間である。許容時間の好適な長さは、当業者が実験により定めることができる。
<実施例の変形例5>
実施例では、情報処理装置100の付与部150は、後行依頼である第2ユーザの配送依頼が受け付けられると、第2ユーザに特典を付与すると説明したが、これに限定される訳ではない。
本変形例に係る情報処理装置100の制御部145は、第2ユーザの後行依頼が受け付けられると、先行依頼を行った第1ユーザの端末装置901を宛先として、当該先行依頼に従った配送を、後行依頼に従った集荷の後に行うために、非注文順経路を配送機400に移動させて良いか否かを問う問合せをデータ通信回路104aへ出力する。
情報処理装置100のデータ通信回路104aが問合せを端末装置901に送信した後に、非注文順経路を配送機400に移動させてはならないとの回答を端末装置901から受信すると、制御部145は、非注文順経路ではなく注文順経路を配送機400に移動させる。また、付与部150は、第1ユーザと第2ユーザとの双方に特典を付与しない。
これに対して、情報処理装置100のデータ通信回路104aが、非注文順経路を配送機400に移動させて良いとの回答を端末装置901から受信すると、制御部145は、非注文順経路を配送機400に移動させる。また、付与部150は、第1ユーザに特典を付与するが、第2ユーザに特典を付与しない。これらの構成によれば、非注文順経路を配送機400に移動させることを容認するインセンティブを第1ユーザに与えることができる。インセンティブに従って第1ユーザが非注文順経路を配送機400に移動させることを容認すると配送効率が向上する。
本変形例では、情報処理装置100の付与部150は、非注文順経路を配送機400に移動させてはならないとの回答が第1ユーザの端末装置901から受信されると、第1ユーザと第2ユーザとの双方に特典を付与しないと説明した。また、本変形例では、付与部150は、非注文順経路を配送機400に移動させて良いとの回答が受信されると、第1ユーザに特典を付与するが、第2ユーザに特典を付与しないと説明した。しかし、これらに限定される訳では無い。付与部150は、非注文順経路を配送機400に移動させてはならないとの回答が第1ユーザの端末装置901から受信されると、第1ユーザに特典を付与しないが、推奨された注文を行った第2ユーザに特典を付与しても良い。また、付与部150は、非注文順経路を配送機400に移動させて良いとの回答が受信されると、第1ユーザと第2ユーザとの双方に特典を付与しても良い。
<実施例の変形例6>
実施例では、第1条件は、第1条件の第1詳細条件と第2詳細条件との双方が満たされるという条件であると説明した。また、実施例では、第1条件の第1詳細条件は、近傍経路G1D1上の位置、又は、近傍経路G1D1の近傍の位置であるという条件であると説明した。さらに、実施例では、第1条件の第2詳細条件は、第2ユーザの配送依頼が受け付けられた場合における、図11に示すような注文順経路の距離よりも、図12に示すような非注文順経路の距離の方が短い位置にある、という条件であると説明した。
しかし、これらに限定される訳では無く、第1条件は、第2詳細条件が満たされるという条件であっても良い。また、これらに限定される訳では無く、第1条件は、第1詳細条件が満たされるという条件であっても良い。
さらに、第1条件は、図11に示すような近傍経路G1D1の始点G1と異なる配送機400の位置Tから、近傍経路G1D1の終点D1に到る近傍経路G1D1の部分経路TD1上の位置であり、かつ、終点D1と異なる位置である、という条件であっても良い。このような第1条件を満たす集荷位置GXで商品を集荷して配送先D2へ配送することを求める配送依頼が受け付けられる場合、図12に示した非注文順経路の距離は、図11に示した注文順経路の距離よりも短くなるからである。
すなわち、集荷位置GXが部分経路TD1上に位置する場合、非注文順経路の集荷経路TGXの距離と、配送経路GXD1の距離と、の合計は、注文順経路の配送経路TD1の距離に等しい。また、集荷位置GXが部分経路TD1の終点D1の位置と異なる場合、非注文順経路の配送経路D1D2と、注文順経路の集荷経路D1GX及び配送経路GXD2と、が、それぞれが直線経路であれば、これら3つの経路は、三角形を形成する。このため、三角形の一辺に対応する非注文順経路の配送経路D1D2の距離は、三角形の残りの二辺に対応する注文順経路の集荷経路D1GX及び配送経路GXD2の距離の合計よりも短いからである。
これに対して、第1条件を満たさない集荷位置GXで商品を集荷して配送先D2へ配送することを求める配送依頼が受け付けられる場合、非注文順経路の距離は、注文順経路の距離よりも短くなることも、注文順経路の距離以上となることもある。
これらのため、本変形例では、図10のステップS37で、情報処理装置100の特定部130は、集荷場所G1からG5の内で、部分経路TD1上の位置であり、かつ、終点D1と異なる位置である、という第1条件を満たす集荷場所の特定を試行し、集荷場所が特定できたか否かを判別する(ステップS37)。本変形例では、特定部130は、集荷場所G4が当該第1条件を満たすと判別する。次に、特定部130は、集荷場所G4について注文順経路の距離よりも非注文順経路の距離の方が短いか否かを判別せずに、集荷場所G4が、配送効率を向上できる好適な集荷場所であると特定する。
これに対して、本変形例では、情報処理装置100の特定部130は、集荷場所G1からG3及びG5が、当該第1条件を満たさないと判別する。次に、特定部130は、集荷場所G1からG3及びG5のそれぞれについて、注文順経路の距離よりも非注文順経路の距離の方が短いか否かを判別しない。このため、特定部130は、集荷場所G1からG3及びG5が、配送効率を向上できる位置にあるか否かを特定できないため、集荷場所G1からG3及びG5が好適な集荷場所であるか否かを特定しない。
その後、情報処理装置100の特定部130は、好適な集荷場所G4が特定できたと判別し(ステップS37;Yes)、特定された好適な集荷場所G4を、第2ユーザに推奨する推奨集荷場所に決定する(ステップS38)。
このような構成によれば、情報処理装置100の特定部130は、集荷場所G4が、部分経路TD1上の位置であり、かつ、部分経路TD1の終点D1と異なる位置にあることを判別すれば、集荷場所G4が配送効率を向上できる位置にあることを判別できる。このため、集荷場所G4で商品を集荷して配送することを求める配送依頼が受け付けられた場合における注文順経路の距離よりも非注文順経路の距離の方が短いか否かを判別しなくとも、集荷場所G4が配送効率を向上できる位置にあることを判別できる。よって、集荷場所G4が配送効率を向上できる位置にあることを判別ために要する計算量を、注文順経路の距離よりも非注文順経路の距離の方が短いことを判別する場合と比べて軽減できる。
<実施例の変形例7>
実施例では、第1条件の第2詳細条件は、第2ユーザの配送依頼が受け付けられた場合における、図11に示すような注文順経路の距離よりも、図12に示すような非注文順経路の距離の方が短い位置にある、という条件であると説明した。
しかしこれに限定される訳では無い。本変形例に係る第2詳細条件は、第2ユーザの配送依頼が受け付けられた場合における、注文順経路を配送機400が移動するのに要する移動時間よりも、非注文順経路を配送機400が移動するのに要する移動時間の方が短い位置にある、という条件である。
注文順経路の移動時間を算出するために、情報処理システム1の取得部110は、情報記憶部190が記憶する配送機400の移動速度を表す情報を取得する。次に、特定部130は、図10のステップS37で特定された注文順経路の距離を、取得された情報で表される配送機400の移動速度で除算することで、注文順経路の移動時間を特定すれば良い。同様に、特定部130は、非注文順経路の距離を配送機400の移動速度で除算することで、非注文順経路の移動時間を特定すれば良い。
本変形例では、情報処理システム1の特定部130は、配送機400の移動速度と、注文順経路の距離と、に基づいて、配送機400による注文順経路の移動時間を特定すると説明した。しかし、これに限定される訳では無く、特定部130は、注文順経路の交通状況に基づいて、配送機400による注文順経路の移動時間を特定しても良い。
このために、情報処理システム1の特定部130は、図10のステップS37の処理を実行することで、注文順経路を特定する。次に、制御部145は、注文順経路に含まれる複数のエッジをそれぞれ表す情報を含み、当該複数のエッジそれぞれの交通状況を表す情報を返信するように求める返信要求を生成する。エッジを表す情報は、当該エッジの始点ノードの位置情報と終点ノードの位置情報とを含む。
その後、情報処理システム1の制御部145は、生成された返信要求を、不図示の交通サーバを宛先としてデータ通信回路104aへ出力する。また、エッジの交通状況は、当該エッジを通過するのに要する通過時間を含む。エッジの通過時間は、単位時間当たり当該エッジを通過した複数の配送機又は自動車が当該エッジを通過するのに要した時間の平均値であるが、最大値又は最小値であっても良い。
交通サーバは、エッジを表す情報と、当該エッジの交通状況を表す情報と、を対応付けて複数記憶している。交通サーバは、返信要求を受信すると、返信要求に含まれる複数のエッジをそれぞれ表す情報と対応付けられた交通状況を表す情報を取得する。その後、交通サーバは、取得された複数のエッジそれぞれの交通状況を表す情報を情報処理装置100へ返信する。
情報処理装置100のデータ通信回路104aが複数のエッジそれぞれの交通状況を表す情報を交通サーバから受信すると、取得部110は、当該情報をデータ通信回路104aから取得する。次に、特定部130は、取得された情報で表される複数のエッジの通過時間の総和を算出することで、当該複数のエッジを含む注文順経路の移動時間を特定する。同様に、特定部130は、非注文順経路の移動時間を、非注文順経路の交通状況に基づいて特定する。
<実施例の変形例8>
実施例では、近傍経路G1D1が最終経路である場合を具体例として挙げて説明したが、これに限定される訳では無い。本変形例では、近傍経路G1D1は、最終経路ではない場合を具体例として挙げて説明を行う。
本変形例では、集荷場所G1で商品I11を集荷して配送先D1へ配送することを求める第1ユーザの配送依頼の後に、集荷場所G3で商品I33を集荷して配送先D3へ配送することを求める第3ユーザの配送依頼が受け付けられている。このため、第1ユーザの配送先D1に到る近傍経路G1D1の順番の1つ後の順番に、図25に示すような配送先D1から集荷場所G3に到る集荷経路D1G3を配送機400が移動することが予定されている。また、集荷経路D1G3の順番の1つ後の順番に、集荷場所G3から第3ユーザの配送先D3に到る配送経路G3D3を配送機400が移動することが予定されている。
このため、図10のステップS36において、情報処理装置100の特定部130は、近傍経路G1D1が最終経路でないと判別し(ステップS36;No)、下記の第2条件を満たす集荷場所の特定を試行し、集荷場所が特定できたか否かを判別する(ステップS44)。
第2条件は、第2条件の第1詳細条件と第2詳細条件との双方が満たされるという条件である。第2条件の第1詳細条件は、第1条件の第1詳細条件と同じである。すなわち、第2条件の第1詳細条件は、近傍経路G1D1上の位置、又は、近傍経路G1D1の近傍の位置であるという条件である。
第2条件の第2詳細条件は、第2ユーザの配送依頼が受け付けられた場合における、図25に示すような注文順経路の距離よりも、図26に示すような非注文順経路の距離の方が短い位置にある、という条件である。
図25の注文順経路は、配送機400の位置Tから近傍経路G1D1の終点D1に到る配送経路TD1、近傍経路G1D1の順番の1つ後の順番の集荷経路である後続経路D1G3、後続経路D1G3の順番の1つ後の順番の経路であり、かつ、最終経路である配送経路G3D3を順に含む経路である。また、当該注文順経路は、最終経路G3D3の後に、最終経路G3D3の終点D3から、後行依頼である第2ユーザの配送依頼に従って集荷が行われる集荷位置GXに到る集荷経路D3GX、及び、集荷位置GXから第2ユーザの配送先D2に到る配送経路GXD2を順に含む経路である。
これに対して、図26の非注文順経路は、配送機400の位置Tから集荷位置GXに到る集荷経路TGX、集荷位置GXから近傍経路G1D1の終点D1に到る配送経路GXD1、及び、近傍経路G1D1の終点D1から第2ユーザの配送先D2に到る配送経路D1D2、を順に含む経路である。また、当該非注文順経路は、配送経路D1D2の後に、第2ユーザの配送依頼よりも先に受け付けられた第3ユーザの配送依頼に従って商品I33が集荷される集荷場所G3へ配送先D2から到る集荷経路D2G3、及び、集荷場所G3から第3ユーザの配送先D3に到る最終経路G3D3を順に含む経路である。
情報処理装置100の特定部130は、集荷場所G1からG5の内で、第2条件の第1詳細条件及び第2詳細条件を満たす位置にある集荷場所が特定できたと判別すると(図10のステップS44;Yes)、ステップS38から上記の処理を続行する。これに対して、特定部130は、第2条件を満たす位置にある集荷場所が特定できなかったと判別すると(ステップS44;No)、商品推奨処理の実行を終了する。
<実施例の変形例9>
実施例では、情報処理装置100の抽出部125は、配送機400が移動中の配送経路と配送機500が移動中の配送経路とから近傍経路G1D1を抽出すると説明したが、これに限定される訳では無い。抽出部125は、配送機400が移動中の配送経路、及び、配送機500が移動中の配送経路、並びに、配送機400が移動を開始していない配送経路、及び、配送機500が移動を開始していない配送経路、から近傍経路を抽出しても良い。すなわち、抽出部125は、配送機400の格納ボックス421から424及び配送機500の格納ボックス521から524の1つ以上に格納された、又は、格納される予定の商品の配送経路から近傍経路を抽出しても良い。
また、情報処理装置100の抽出部125は、配送機400が移動を開始していない配送経路と、配送機500が移動を開始していない配送経路と、から近傍経路を抽出しても良い。すなわち、抽出部125は、配送機400の格納ボックス421から424及び配送機500の格納ボックス521から524の1つ以上に格納される予定の商品の配送経路から近傍経路を抽出しても良い。
<実施例の変形例10>
実施例では、情報処理システム1は、無人地上車両である配送機400及び500を備えると説明した。しかし、これに限定される訳ではなく、本変形例に係る情報処理システム1は、図27に示すような、例えば、ドローン等の無人航空機である配送機700と、無人地上車両である配送機500と、を備える。
本変形例に係る配送機700は、配送機700の姿勢及び飛行を制御する情報処理装置790と、情報処理装置790の前面から右前方及び左前方、並びに、情報処理装置790の後面から左後方及び右後方にそれぞれ突出したプロペラアーム701及び702、並びに、703及び704と、を備える。また、配送機700は、プロペラアーム701から704の先端にそれぞれ設置されたプロペラ711から714、及び、情報処理装置790の制御に従ってプロペラ711から714を回転させる不図示のモータを備える。
さらに、配送機700の情報処理装置790の下面には、商品を格納する複数の格納ボックス721及び722を備える格納庫720が設置されている。配送機700が備える格納庫720の構成及び機能は、配送機400が備える格納庫420の構成及び機能と同様である。
また、配送機700は、情報処理装置790の前面に設けられたLiDARセンサ741と、情報処理装置790の後面に設けられた不図示のLiDARセンサと、を備える。配送機700が備える前面のLiDARセンサ741と後面のLiDARセンサとの構成及び機能は、それぞれ配送機400が備える前面のLiDARセンサ441と後面のLiDARセンサとの構成及び機能と同様である。
配送機700の情報処理装置790が備えるハードウェアの構成及び機能は、配送機400の情報処理装置490が備えるハードウェアの構成及び機能と同様である。
配送機700の不図示の駆動回路は、プロペラ711から714を回転させる不図示のモータにそれぞれ接続された不図示のケーブルに接続されている。駆動回路は、CPUが出力する信号に従って、プロペラ711から714を回転させる不図示のモータを駆動させる。
配送機700の不図示のCPUは、図21に示した移動処理と同様の処理を実行する。このとき、配送機700のCPUは、停止命令を取得すると、予め定められた範囲内の高度でホバリング飛行、往復飛行、旋回飛行するための制御信号、又は、着陸するための制御信号を不図示の駆動回路に出力することで、移動を停止する。次に、CPUは、移動処理と同様の処理の実行を終了する。
その後、配送機700の不図示のデータ通信回路が移動開始命令を受信すると、配送機700のCPUは、移動処理と同様の処理を再度実行する。これにより、配送機700は、移動を再開する。その後、配送機700のCPUは、移動経路の終点に到着したと判別すると、終点に着陸するための制御信号を駆動回路へ出力してから、移動処理と同様の処理の実行を終了する。
実施例及び本変形例では、配送機500は、地上走行車両であると説明したが、これに限定される訳ではない。配送機500は、配送機700の構成及び機能と同様の構成及び機能を有する無人航空機であっても良い。
また、本変形例では、配送機700は、無人航空機であると説明したが、これに限定される訳ではなく、無人飛翔体であっても良い。さらに、本変形例では、配送機700は、プロペラ711から714で揚力及び推力を得るドローンであると説明したが、これに限定される訳ではない。配送機700は、翼を備え、翼で揚力を得えても良いし、空気よりも比重の小さい気体で満たされた気嚢を備え、気嚢で揚力を得えても良い。また、配送機700は、ジェットエンジン又はロケットエンジンを備え、ジェットエンジン又はロケットエンジンで推力を得ても良い。
<実施例の変形例11>
実施例では、配送先D1からD3は、それぞれ第1ユーザから第3ユーザが居住するマンションのエントランスであると説明したが、これに限定される訳では無い。配送先D1からD3は、配送機400及び500が停車可能若しくは駐車可能な位置、又は、配送機700が着陸可能な位置であれば、どのような位置であっても良い。
実施例では、集荷場所G1からG5は、それぞれ店舗S1からS5のエントランスの位置にあると説明したが、これに限定される訳では無い。集荷場所G1からG5は、配送機400及び500が停車可能若しくは駐車可能な位置、又は、配送機700が着陸可能な位置にあり、商品の集荷が行われる場所であれば、どのような位置であっても良い。集荷場所G1からG5は、例えば、店舗S1からS5の店内の位置にあっても良いし、店舗S1からS5の駐車場の位置にあっても良いし、注文された商品を保管している倉庫内の位置にあっても良いし、当該倉庫の搬出口の位置にあっても良い。
配送機400及び500が停車又は駐車可能な位置は、例えば、共同住宅、オフィスビル、ホテル、商業施設、若しくは、公共施設のエントランス、又は、一軒家の玄関先であっても良い。また、配送機400及び500が停車又は駐車可能な位置は、共同住宅、オフィスビル、ホテル、商業施設、若しくは、公共施設のロビーであっても良いし、一軒家、共同住宅、オフィスビル、ホテル、商業施設、若しくは、公共施設の庭、駐車場、河原、又は、公園であっても良い。
また、配送機700が着陸可能な位置は、配送機400及び500が停車又は駐車できる位置に加え、一軒家、共同住宅、オフィスビル、ホテル、商業施設、又は、公共施設のベランダ、又は、屋上であっても良い。
<実施例の変形例12>
実施例では、注文の対象は、商品であると説明したが、これに限定される訳では無い。注文の対象は、荷物であればどのような物であっても良く、例えば、商取引の対象とされない物であっても良い。また、注文の対象は、物でなく、生き物であっても良い。
実施例では、商品は、飲食物であると説明したが、これに限定される訳では無く、例えば、書籍又は家電機器といった飲食物と異なる物であっても良い。
<実施例の変形例13>
実施例において、特典の一例としてポイントを挙げて説明したが、これに限定される訳では無い。特典は、例えば、配送料金の割引又は値引と引き換えることができるクーポンであっても良いし、配送料金等の一部が現金で返還されるキャッシュバックであっても良い。
<実施例の変形例14>
実施例において、情報処理システム1は、2台の配送機400及び500を備えると説明したが、これに限定される訳ではない。情報処理システム1は、配送機400を備えるが、配送機500を備えなくても良いし、K台(但し、Kは、3以上の整数)の配送機を備えても良い。
実施例において、配送機400は、4個の格納ボックス421から424を備えると説明したが、これに限定される訳では無い。配送機400は、2個、3個、又は、I個(但し、Iは、5以上の整数)の格納ボックスを備えても良い。配送機500も、同様に、2個、3個、又は、I個(但し、Iは、5以上の整数)の格納ボックスを備えても良い。
<実施例の変形例15>
実施例において、情報処理装置100の特定部130は、図10のステップS38で、第1条件を満足する好適な集荷場所G1、G2、及び、G4から、第2ユーザに推奨する1つの推奨集荷場所G2を決定すると説明した。しかし、これに限定される訳では無い。特定部130は、好適な集荷場所G1、G2、及び、G4から、複数の推奨集荷場所を決定しても良いし、好適な集荷場所G1、G2、及び、G4の全てを推奨集荷場所に決定しても良い。
また、実施例において、情報処理装置100の特定部130は、図10のステップS41で、準備可能商品I22及びI23から、第2ユーザに推奨する1つの推奨商品I22を決定すると説明した。しかし、これに限定される訳では無い。特定部130は、準備可能商品I22及びI23から、複数の又は全部の商品を推奨商品に決定しても良い。
<実施例の変形例16>
変形例では、図10のステップS43で、推奨情報が出力される場合を具体例として挙げて説明したが、これに限定される訳ではない。本変形例では、推奨情報が出力されない場合を具体例として挙げて説明を行う。
図10のステップS31において、情報処理装置100の取得部110が、図7の予定テーブルから、「空き状態」を表す状態情報と対応付けられた機体IDとボックスIDとの組み合わせを取得できない場合、抽出部125は、配送機400の格納ボックス421から424、及び、配送機500の格納ボックス521から524、のいずれも空いていないと判別する(ステップS31;No)。このため、情報処理装置100の制御部145は、推奨情報で推奨される注文が受け付けられても、配送機400及び500のいずれにも注文された荷物を格納させることができないと判別し、推奨情報を出力せずに商品推奨処理の実行を終了する。
図10のステップS32において、情報処理装置100の取得部110は、予定テーブルから、「格納状態」を表す状態情報と機体ID「400」とに対応付けられたボックスIDの取得、及び、「格納状態」を表す状態情報と機体ID「500」とに対応付けられたボックスIDの取得を試行する。このとき、取得部110が、ボックスIDを取得できない場合、抽出部125は、空きがあると判別された配送機400の格納ボックス421から424、及び、空きがあると判別された配送機500の格納ボックス521から524のいずれにも商品が格納されていないと判別する(ステップS32;No)。このため、情報処理装置100の制御部145は、配送効率を向上させる集荷場所を特定できないため、第2ユーザに集荷場所及び商品を推奨でき無いと判別する。その後、制御部145は、推奨情報を出力せずに商品推奨処理の実行を終了する。
図10のステップS35において、情報処理装置100の抽出部125は、配送先D2と、図2に示した配送経路G1D1の終点D1と、の距離が、予め定められた距離LDよりも長い場合、配送経路G1D1の終点D1が、第2ユーザの配送先D2に位置せず、かつ、配送先D2の近傍に位置しないと判別する。このため、抽出部125は、配送経路G1D1が近傍経路でないため、近傍経路が抽出されなかったと判別する(ステップS35;No)。次に、制御部145は、配送効率を向上させる集荷場所を特定できないと判別し、商品推奨処理の実行を終了する。
図10のステップS37において、情報処理装置100の特定部130は、第1条件を満足する好適な集荷場所を特定できなかったと判別すると(ステップS37;No)、商品推奨処理の実行を終了する。
図10のステップS40において、情報処理装置100の特定部130は、準備可能商品を特定できなかったと判別すると(ステップS40;No)、商品推奨処理の実行を終了する。
図23のステップS83において、第2ユーザの端末装置902は、情報処理装置100への接続が許可されたことを告げる許可報告を受信してから予め定められた時間が経過しても、図10のステップS43で説明した推奨情報を受信しないと(ステップS83;No)、店舗一覧送信要求を情報処理装置100へ送信する(ステップS90)。店舗一覧送信要求とは、集荷場所G1からG5をそれぞれ有する店舗S1からS5の店舗IDと名称との一覧(以下、店舗一覧という)を送信することを求める要求である。
端末装置902は、情報処理装置100から店舗一覧を表す情報を受信すると、受信された情報で表される店舗一覧を表示する(ステップS91)。その後、端末装置902は、不図示の入力装置から出力される信号に基づいて、店舗S1からS5のいずれかを選択する操作(店舗選択操作という)が行われず、アプリの実行を終了させる操作が行われたと判別すると(ステップS92;No)、注文処理の実行を終了する。
これに対して、端末装置902は、店舗選択操作が行われたと判別すると(ステップS92;Yes)、入力装置から出力される信号に基づいて、選択された店舗の店舗IDを取得する。次に、取得された店舗IDを含み、当該店舗IDで識別される店舗で販売される商品の商品IDと名称との一覧(以下、商品一覧という)を送信することを求める商品一覧送信要求を情報処理装置100へ送信する(ステップS93)。
端末装置902は、情報処理装置100から商品一覧を表す情報を受信すると、受信された情報で表される商品一覧を表示する(ステップS94)。その後、端末装置902は、入力装置から出力される信号に基づいて、商品を選択する操作(商品選択操作という)が行われず、店舗の選択をやり直すための操作が行われたと判別すると(ステップS95;No)、ステップS91から上記処理を繰り返す。
これに対して、端末装置902は、商品選択操作が行われたと判別すると(ステップS95;Yes)、選択された商品の注文を促す表示を行う。その後、端末装置902は、入力装置から出力される信号に基づいて、注文操作が行われず、商品の選択をやり直すための操作が行われたと判別すると(ステップS96;No)、ステップS94から上記処理を繰り返す。
これに対して、端末装置902は、注文操作が行われたと判別すると(ステップS96;Yes)、注文を情報処理装置100へ送信した後に(ステップS89)、注文処理の実行を終了する。本変形例で送信される注文には、選択された店舗の店舗IDと、選択された商品の商品IDと、を含み、かつ、当該店舗に当該商品の販売を求める販売依頼が含まれる。また、当該注文には、選択された店舗の店舗IDと、注文を行った第2ユーザのユーザID「U2」と、を含み、かつ、販売された商品を選択された店舗にある集荷場所で集荷して、第2ユーザの配送先D2へ配送することを求める配送依頼が含まれる。
情報処理装置100の取得部110は、図4のステップS05で、データ通信回路104aから注文を取得できなかったと判別すると(ステップS05;No)、データ通信回路104aからの店舗一覧送信要求の取得を試行する(ステップS15)。このとき、取得部110は、店舗一覧送信要求を取得したと判別すると(ステップS15;Yes)、図8の店舗テーブルから、店舗IDと店舗の名称との一覧である店舗一覧を表す情報を取得する。その後、制御部145は、取得された店舗一覧を表す情報を、店舗一覧送信要求を送信した端末装置902を宛先としてデータ通信回路104aへ出力する(ステップS16)。その後、情報処理装置100は、ステップS05から上記処理を繰り返す。
ステップS15において、情報処理装置100の取得部110は、店舗一覧を取得できなかったと判別すると(ステップS15;No)、データ通信回路104aからの商品一覧送信要求の取得を試行する(ステップS17)。このとき、取得部110は、商品一覧送信要求を取得しなかったと判別すると(ステップS17;No)、ステップS05から上記処理を繰り返す。これに対して、商品一覧送信要求を取得したと判別すると(ステップS17;Yes)、商品一覧送信要求に含まれる店舗IDを取得する。次に、取得部110は、図9の商品テーブルから、取得された店舗IDと対応付けられた商品IDと名称との一覧である店舗一覧を表す情報を取得する。その後、制御部145は、取得された商品一覧を表す情報を、商品一覧送信要求を送信した端末装置902を宛先としてデータ通信回路104aへ出力する(ステップS18)。その後、情報処理装置100は、ステップS05から上記処理を繰り返す。
ステップS09において、情報処理装置100の付与部150は、ステップS08で受け付けられた販売依頼から取得された店舗IDと商品IDとの組合せが、図10のステップS43で出力された推奨情報に含まれる店舗ID「S2」と商品ID「I22」との組合せに一致するか否かを判別する。このとき、付与部150は、これらの組合せが一致しないと判別すると、推奨集荷場所G2を有する店舗S2で推奨商品I22を集荷して配送することを求める配送依頼ではないと判別する。すなわち、付与部150は、ステップS43で出力された推奨情報によって推奨された注文に含まれる配送依頼ではなく、店舗一覧から選択された店舗で商品一覧から選択された商品を集荷して配送することを求める配送依頼が受け付けられたと判別する(ステップS09;No)。次に、制御部145は、予め定められた規則又はソフトウェア乱数に基づいて、配送機400及び500から、商品を配送させる配送機を選択する。
その後、情報処理装置100の制御部145は、選択された配送機を宛先として停止命令をデータ通信回路104aへ出力する(ステップS19)。次に、情報処理装置100は、ステップS13及びS14の処理を実行することで(ステップS13及びS14)、選択された店舗が有する集荷場所に到る集荷経路を、選択された配送機が移動する集荷予定を追加する。また、情報処理装置100は、当該集荷場所から第2ユーザの配送先D2に到る配送経路を、選択された配送機が移動する配送予定を追加する。このようにして、情報処理装置100は、選択された配送機に注文順経路を移動させる予定を追加した後に、販売仲介処理の実行を終了する。次に、制御部145は、図16に示した移動制御処理を実行することで、追加された集荷予定及び配送予定に基づいて注文順経路を配送機400に移動させる制御を行う。
<実施例の変形例17>
実施例では、受付期限が徒過されるよりも前に、推奨情報によって推奨された注文を行うための注文操作が端末装置902に行われた場合を具体例として挙げて説明を行った。しかし、これに限定される訳では無く、本変形例では、受付期限が徒過されても注文操作が行われない場合を具体例として挙げて説明を行う。
このため、端末装置902は、図23のステップS86において、システム時刻が受付期限よりも後の時刻であるため、受付期限が徒過されたと判別すると(ステップS86;Yes)、ステップS90から上記処理を実行する。これにより、端末装置902は、第2ユーザの操作に従って、店舗一覧から選択された店舗で集荷される、商品一覧から選択された商品の注文を送信する。
尚、端末装置902は、ステップS88において、第2ユーザによって行われた操作が注文操作でなく、店舗一覧を表示させるための操作であると判別すると(ステップS88;No)、ステップS90から上記処理を実行する。
<実施例の変形例18>
実施例では、配送機400及び500は、無人地上車両であると説明した。また、実施例の変形例10では、配送機700は、無人航空機であると説明した。しかし、配送機400、500、及び、700は、必ずしも無人である必要はなく、情報処理装置100による制御を除き、自律して移動する物体であれば、人が乗っていても良い。
<実施例の変形例19>
実施例では、情報処理装置100は、情報記憶部190を備えると説明したが、これに限定される訳ではない。本変形例に係る情報処理装置100は、情報記憶部190を備えない。本変形例に係る情報処理装置100は、例えば、NAS(Network Attached Storage)であり、かつ、情報記憶部190の機能と同様の機能を有する不図示の情報記憶装置とインターネットINを介して接続されており、情報記憶装置が記憶する情報を用いて、図4に示した販売仲介処理と、図10に示した商品推奨処理と、図16に示した移動制御処理と、を実行する。本変形例に係る情報処理システム1は、情報記憶装置を備えても良いし、情報記憶装置を備えなくても良い。
<実施例の変形例20>
実施例では、情報処理システム1は、情報処理装置100を備えると説明した。また、実施例では、情報処理装置100のCPU101は、図4に示した販売仲介処理と、図10に示した商品推奨処理と、図16に示した移動制御処理と、を実行することで、図5に示した取得部110、認証部115、検知部120、抽出部125、特定部130、推定部135、決定部140、制御部145、及び、付与部150として機能すると説明した。また、情報処理装置100のハードディスク103bは、情報記憶部190として機能すると説明した。
しかし、これらに限定される訳ではなく、情報処理システム1は、情報処理装置100を備えなくとも良い。この場合、図4に示した販売仲介処理と、図10に示した商品推奨処理と、図16に示した移動制御処理と、は、配送機400が備える情報処理装置490のCPU491によって実行されても良い。このため、配送機400のCPU491が、情報処理装置100の取得部110、認証部115、検知部120、抽出部125、特定部130、推定部135、決定部140、制御部145、及び、付与部150に相当する不図示の機能部として機能しても良い。また、配送機400のフラッシュメモリ493bが、情報処理装置100の情報記憶部190に相当する不図示の機能部として機能しても良い。
また、これに限定される訳ではなく、図4に示した販売仲介処理と、図10に示した商品推奨処理と、図16に示した移動制御処理と、は、情報処理装置100のCPU101と、配送機400のCPU491と、端末装置901から904が備える不図示のCPUと、の2つ以上によって分散実行されても良い。
本発明の実施例及び実施例の変形例1から20は、互いに組み合わせることができる。
実施例及び実施例の変形例1から19のいずれかに係る機能を実現するための構成を備えた情報処理装置100、並びに、実施例の変形例20に係る機能を実現するための構成を備えた情報処理装置490として提供できることはもとより、複数の装置で構成されるシステムであって、本発明の実施例及び実施例の変形例1から20のいずれかに係る機能を実現するための構成をシステム全体として備えたシステムとして提供することもできる。
実施例及び実施例の変形例1から19のいずれかに係る機能を実現するための構成を予め備えた情報処理装置100として提供できる。また、プログラムの適用により、既存の情報処理装置を実施例及び実施例の変形例1から19のいずれかに係る情報処理装置100として機能させることもできる。すなわち、実施例及び実施例の変形例1から19のいずれかで例示した情報処理装置100による各機能構成を実現させるためのプログラムを、既存の情報処理装置を制御するコンピュータ(CPUなど)が実行することで、実施例及び実施例の変形例1から19のいずれかに係る情報処理装置100として機能させることができる。
本発明の実施例の変形例20に係る機能を実現するための構成を予め備えた情報処理装置490として提供できる。また、プログラムの適用により、既存の情報処理装置を実施例の変形例20に係る情報処理装置490として機能させることもできる。すなわち、上記実施例の変形例20で例示した情報処理装置490による各機能構成を実現させるためのプログラムを、既存の情報処理装置を制御するコンピュータ(CPUなど)が実行することで、実施例の変形例20に係る情報処理装置490として機能させることができる。
このようなプログラムの配布方法は任意であり、例えば、メモリカード、CD(Compact Disc)-ROM、又は、DVD(Digital Versatile Disc)-ROMなどの記録媒体に収納して配布できる他、インターネットなどの通信媒体を介して配布することもできる。
本発明に係る方法は、実施例及び実施例の変形例1から19のいずれかに係る情報処理装置100、並びに、実施例の変形例20に係る情報処理装置490を用いて実施できる。また、本発明に係る方法は、実施例及び実施例の変形例1から20のいずれかに係る情報処理システム1を用いて実施できる。
また、本発明は、本発明の広義の精神と範囲を逸脱することなく、様々な実施の形態及び変形が可能とされるものである。また、上述した実施の形態は、本発明を説明するためのものであり、本発明の範囲を限定するものではない。つまり、本発明の範囲は、実施の形態ではなく、特許請求の範囲によって示される。そして、特許請求の範囲内及びそれと同等の発明の意義の範囲内で施される様々な変形が、本発明の範囲内とみなされる。
(付記)
(付記1)
荷物の配送依頼を受け付けると、複数の格納ボックスを有する配送機に、前記荷物を配送させる制御を行う情報処理システムであって、
前記情報処理システムにユーザがアクセスしたことが検知されると、前記ユーザについて設定又は推定された配送先を取得する取得部と、
前記複数の格納ボックスの1つ以上に空きがある場合に、前記複数の格納ボックスの1つ以上に格納された荷物の配送経路から、取得された前記ユーザの前記配送先に、又は、前記配送先の近傍に、終点が位置する近傍経路を抽出する抽出部と、
抽出された前記近傍経路の終点に前記配送機が到るまでに、荷物の集荷が可能な集荷場所を特定する特定部と、
を備えることを特徴とする情報処理システム。
(付記2)
前記近傍経路は、前記配送機が移動中の経路である、
ことを特徴とする付記1に記載の情報処理システム。
(付記3)
前記特定部は、前記近傍経路上に位置する、又は、前記近傍経路の近傍に位置する、前記集荷場所を特定する、
ことを特徴とする付記1又は2に記載の情報処理システム。
(付記4)
前記配送機が、特定された前記集荷場所まで移動するのに要する移動時間を推定する推定部、をさらに備え、
前記特定部は、特定された前記集荷場所において集荷可能とするための準備に要する準備時間が、推定された前記移動時間以下の荷物である準備可能荷物を特定する、
ことを特徴とする付記1から3のいずれか一つに記載の情報処理システム。
(付記5)
前記推定部は、特定された前記集荷場所に前記配送機が到着する到着時刻をさらに推定し、
推定された前記到着時刻と前記準備時間とに基づいて、前記準備可能荷物の配送依頼が受け付けられる受付期限を決定する決定部と、
特定された前記集荷場所と、特定された前記準備可能荷物と、決定された前記受付期限と、を表す情報を、前記ユーザの端末装置へ送信する通信部と、
をさらに備えることを特徴とする付記4に記載の情報処理システム。
(付記6)
前記通信部は、特定された前記集荷場所で前記準備可能荷物を集荷して配送することを求める配送依頼を受信し、
受信された前記配送依頼が受け付けられると、前記ユーザに特典を付与する付与部、
をさらに備えることを特徴とする付記5に記載の情報処理システム。
(付記7)
前記特定部は、受信された前記配送依頼が受け付けられた場合に、
前記準備可能荷物の集荷が行われる集荷位置であり、かつ、
受信された前記配送依頼よりも先に受け付けられた先行依頼に従った前記近傍経路の前記終点への配送、受信された前記配送依頼である後行依頼に従った前記集荷位置での集荷、前記後行依頼に従った前記集荷位置からの配送、を順に行うための注文順経路を前記配送機が移動するのに要する移動時間、又は、前記注文順経路の距離よりも、
前記後行依頼に従った前記集荷、前記先行依頼に従った前記配送、及び、前記後行依頼に従った前記配送、を順に行うための非注文順経路を前記配送機が移動するのに要する移動時間、又は、前記非注文順経路の距離の方が、
短い位置、にある前記集荷場所を特定する、
ことを特徴とする付記6に記載の情報処理システム。
(付記8)
前記後行依頼が受け付けられる前に前記配送機の移動が予定されている経路の内で、前記配送機が最後に移動することが予定されている最終経路が前記近傍経路である場合に、
前記注文順経路は、
前記配送機の位置から前記近傍経路の前記終点に到る、前記近傍経路の部分経路、
前記最終経路の前記終点から前記集荷位置に到る集荷経路、及び、
前記集荷位置から前記ユーザの前記配送先に到る配送経路、
を順に含む経路であり、
前記非注文順経路は、
前記配送機の前記位置から前記集荷位置に到る集荷経路、
前記集荷位置から前記近傍経路の前記終点に到る配送経路、及び、
前記近傍経路の前記終点から前記ユーザの前記配送先に到る配送経路、
を順に含む経路である、
ことを特徴とする付記7に記載の情報処理システム。
(付記9)
前記最終経路が前記近傍経路でない場合に、
前記注文順経路は、
前記部分経路の後に、前記近傍経路の1つ後に前記配送機が移動することが前記後行依頼の受け付け前に予定されている後続経路をさらに含み、かつ、
前記後続経路の後に、前記最終経路の前記終点から前記集荷位置に到る前記集荷経路を含み、
前記非注文順経路は、前記近傍経路の前記終点から前記ユーザの前記配送先に到る前記配送経路の後に、前記ユーザの前記配送先から前記後続経路の終点に到る集荷経路をさらに含む、
ことを特徴とする付記8に記載の情報処理システム。
(付記10)
前記後行依頼が受け付けられると、前記非注文順経路を前記配送機に移動させる制御を行う制御部、
をさらに備えることを特徴とする付記8又は9に記載の情報処理システム。
(付記11)
前記通信部は、前記ユーザを識別する識別情報を含み、かつ、前記情報処理システムに対する接続を要求する、接続要求を受信し、
受信された前記接続要求が承認されると、前記ユーザが前記情報処理システムにアクセスしたことを検知する検知部、をさらに備え、
前記取得部は、
前記接続要求から前記識別情報を取得すると、前記ユーザの前記識別情報と、前記ユーザの前記配送先の位置を表す位置情報と、を対応付けて記憶する記憶部から、取得された前記識別情報に対応付けられた前記配送先の前記位置情報を取得し、又は、
前記ユーザの前記端末装置の位置を表す位置情報を、前記配送先の前記位置を表す前記位置情報として取得し、
前記記憶部は、前記複数の格納ボックスの1つ以上のそれぞれについて、格納された前記荷物の前記配送経路を表す配送予定をさらに記憶し、
前記抽出部は、記憶された1つ以上の前記配送予定から、前記近傍経路を表す前記配送予定を、取得された前記配送先の前記位置情報に基づいて抽出し、
前記記憶部は、集荷場所の位置を表す位置情報をさらに記憶し、
前記特定部は、記憶された前記集荷場所の前記位置情報と、抽出された前記近傍経路を表す前記配送予定と、に基づいて、前記配送機が前記近傍経路の前記終点に到るまでに荷物の集荷が可能な前記集荷場所を特定する、
ことを特徴とする付記5から10のいずれか一つに記載の情報処理システム。
(付記12)
荷物の配送依頼を受け付けると、複数の格納ボックスを有する配送機に、前記荷物を配送させる制御を行う情報処理装置であって、
前記情報処理装置にユーザがアクセスしたことが検知されると、前記ユーザについて設定又は推定された配送先を取得する取得部と、
前記複数の格納ボックスの1つ以上に空きがある場合に、前記複数の格納ボックスの1つ以上に格納された荷物の配送経路から、取得された前記ユーザの前記配送先に、又は、前記配送先の近傍に、終点が位置する近傍経路を抽出する抽出部と、
抽出された前記近傍経路の終点に前記配送機が到るまでに、荷物の集荷が可能な集荷場所を特定する特定部と、
を備えることを特徴とする情報処理装置。
(付記13)
荷物の配送依頼を受け付けると、複数の格納ボックスを有する配送機に、前記荷物を配送させる制御を行う情報処理システム又は情報処理装置が実行する方法であって、
前記情報処理システム又は前記情報処理装置にユーザがアクセスしたことが検知されると、前記ユーザについて設定又は推定された配送先を取得する取得ステップと、
前記複数の格納ボックスの1つ以上に空きがある場合に、前記複数の格納ボックスの1つ以上に格納された荷物の配送経路から、取得された前記ユーザの前記配送先に、又は、前記配送先の近傍に、終点が位置する近傍経路を抽出する抽出ステップと、
抽出された前記近傍経路の終点に前記配送機が到るまでに、荷物の集荷が可能な集荷場所を特定する特定ステップと、
を有することを特徴とする方法。