説明

巡回スケジュール生成装置、巡回スケジュール生成方法、及び、巡回スケジュール生成プログラム

【課題】巡回地点ごとの既定の巡回日と巡回スケジュール変更後の巡回日との変更を抑制し、全巡回地点を巡回する巡回日を分散させるエリア分割処理を行うことができる巡回スケジュール生成装置、巡回スケジュール生成方法、及び、巡回スケジュール生成プログラムを提供する。
【解決手段】巡回スケジュール生成装置1において、エリア分割部400が巡回箇所を隣接する巡回箇所の集合でありエリア内巡回作業時間を平均化させたエリアに分割し、巡回スケジュール算出部500が、エリアごとに巡回日変更量が最小となる巡回候補日をエリア内に共通の新たな巡回日として設定する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、巡回作業を行う場合における既定巡回日の変更を抑制し、巡回作業を効率化させる巡回スケジュール生成装置、巡回スケジュール生成方法、及び、巡回スケジュール生成プログラムに関する。
【背景技術】
【0002】
近年、物品の配送などに伴う所定の範囲における車両や、配達作業者などによる巡回作業時において、巡回する地域内の巡回経路、巡回スケジュールなどを決定する技術がある。例えば、特許文献1に開示されている技術は、対象地域の地図データを読み出し、対象地域を所定のブロックに分割し、分割した各ブロック内における巡回対象ポイント数と、ブロック内における巡回にかかる所要時間とに基づき、ブロック同士の巡回の順番を決定する技術である。
【0003】
また、特許文献2には、巡回エリアを線路や渋滞箇所を地図上に表示させ、この表示をユーザが参考にすることにより、ユーザに巡回するエリアを決定させる巡回スケジュール決定を支援する技術が記載されている。さらに、特許文献3には、複数の巡回ポイントを含む地域をエリア分割する技術として、巡回ポイントが季節ごとに変わる場合であっても時期ごとの巡回移動距離が同じになるようにエリア分割を行う技術が示されている。
このような巡回経路や巡回スケジュールを決定する技術によれば、移動距離や、業務時間が等しくなるように、巡回対象の地域をエリア分割することによって、巡回に関する作業効率を向上させることが可能である。
【特許文献1】特開平11−134389号公報
【特許文献2】特開2002−145417号公報
【特許文献3】特開2005−53683号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
ところで、例えば水道料金や電気料金、ガス料金などの請求のためのメータ検針を行う検針日は、毎月3日など、通常各世帯ごとに予め決まった定期的な検針日が設定されている。このような検針日と、料金支払期限や銀行等からの料金引き落とし日などの料金請求日とは、連動することが多い。したがって、現在設定されている定期的な検針日の変更が生じると料金請求日が変更になる場合があり、そうすると消費者にとって利便性を低下させる場合がある。
【0005】
したがって、検針作業の効率化させる巡回経路や、巡回スケジュールを適用する場合、現在の定期的な検針日からの大幅な変更を伴わずに効率化を実現する巡回経路や巡回スケジュールを作成することが望まれている。
しかしながら、上述した特許文献1から3の技術において、上述の定期的な既定の検針日について考慮されていないため、既定の検針日の変更を抑制する巡回スケジュールを作成することができないという問題がある。
【0006】
本発明は、このような事情を考慮し、上記の問題を解決すべくなされたもので、その目的は、巡回地点ごとの既定の巡回日と巡回スケジュール変更後の巡回日との変更を抑制し、全巡回地点を巡回する巡回日を分散させるエリア分割処理を行うことができる巡回スケジュール生成装置、巡回スケジュール生成方法、及び、巡回スケジュール生成プログラムを提供することにある。
【課題を解決するための手段】
【0007】
上記問題を解決するために、本発明は、予め巡回箇所(例えば、実施形態における世帯)ごとに定められた既定巡回日(例えば、実施形態における既定検針日)と、前記巡回箇所の識別情報(例えば、実施形態における顧客ID)と、前記巡回箇所の位置情報(例えば、実施形態における住所)とを対応付けた巡回箇所情報を前記巡回箇所ごとに記憶する巡回箇所情報記憶部(例えば、実施形態における顧客情報記憶部10)と、前記巡回箇所ごとの巡回作業時間(例えば、実施形態における検針所要時間)を前記巡回箇所ごとに記憶する作業時間情報記憶部と、前記巡回箇所の前記位置情報と、前記巡回箇所間の隣接関係とが対応付けられた地図情報を記憶する地図情報記憶部と、隣接する前記巡回箇所の集合を1エリアとして、前記地図情報と前記作業時間情報とに基づき、前記エリア内に含まれる前記巡回箇所の前記巡回作業時間の合計であるエリア内巡回作業時間(例えば、実施形態におけるエリア内所要時間)を算出し、拡張対象エリアに隣接し、いずれのエリアにも含まれていない前記隣接巡回箇所のいずれかを選択し、当該拡張対象エリアに含めるエリア拡張処理を繰り返し、巡回スケジュール作成対象の前記巡回箇所を前記エリア内巡回作業時間を平均化した所定数(例えば、実施形態における分割するエリア数Na)のエリアに分割するエリア分割部と、分割された前記エリア内に共通の新たな巡回日として、当該エリア内に含まれる前記巡回箇所における前記既定巡回日と、巡回候補日(例えば、実施形態における検針候補日)との巡回日変更量を算出し、全ての巡回候補日のうち、前記巡回日変更量が最小となる巡回候補日を前記新たな巡回日として設定する巡回スケジュール算出部とを備えることを特徴とする巡回スケジュール生成装置である。
【0008】
また、本発明の前記巡回スケジュール生成装置は、前記地図情報記憶部が記憶する前記地図情報と、前記巡回箇所情報記憶部が記憶する前記巡回箇所情報とに基づき、隣接する第1巡回箇所と第2巡回箇所とにおける隣接種別を判定し、予め前記隣接種別ごとに定める重み値を前記第1巡回箇所と前記第2巡回箇所との組合せごとに対応付けた重み値情報(例えば、実施形態における街区グラフ隣接テーブル301)を作成するグラフ作成部をさらに備え、前記エリア分割部が、前記グラフ作成部が作成する重み値情報に基づき、前記エリア拡張処理において、前記隣接巡回箇所のうち、当該エリアに含まれる巡回箇所と前記隣接巡回箇所とにおける重み値が最も小さい隣接巡回箇所を新たに当該エリアに含めることを特徴とする。
【0009】
また、本発明の前記隣接種別ごとの重み値は、前記第1巡回箇所の第1既定巡回日と前記第2巡回箇所の第2既定巡回日との日程の差に応じた値であることを特徴とする。
【0010】
また、本発明の前記隣接種別ごとの重み値は、前記第1巡回箇所と前記第2巡回箇所との間の土地種別ごとに予め定められた値であることを特徴とする。
【0011】
本発明は、予め巡回箇所ごとに定められた既定巡回日と、前記巡回箇所の識別情報と、前記巡回箇所の位置情報とを対応付けた巡回箇所情報を前記巡回箇所ごとに記憶する巡回箇所情報記憶ステップと、前記巡回箇所ごとの巡回作業時間を前記巡回箇所ごとに記憶する作業時間情報記憶ステップと、前記巡回箇所の前記位置情報と、前記巡回箇所間の隣接関係とが対応付けられた地図情報を記憶する地図情報記憶ステップと、隣接する前記巡回箇所の集合を1エリアとして、前記地図情報と前記作業時間情報とに基づき、前記エリア内に含まれる前記巡回箇所の前記巡回作業時間の合計であるエリア内巡回作業時間を算出し、拡張対象エリアに隣接し、いずれのエリアにも含まれていない前記隣接巡回箇所のいずれかを選択し、当該拡張対象エリアに含めるエリア拡張処理を繰り返し、巡回スケジュール作成対象の前記巡回箇所を前記エリア内巡回作業時間を平均化した所定数のエリアに分割するエリア分割ステップと、分割された前記エリア内に共通の新たな巡回日として、当該エリア内に含まれる前記巡回箇所における前記既定巡回日と、巡回候補日との巡回日変更量を算出し、全ての巡回候補日のうち、前記巡回日変更量が最小となる巡回候補日を前記新たな巡回日として設定する巡回スケジュール算出ステップとを有することを特徴とする巡回スケジュール生成方法である。
【0012】
本発明は、巡回スケジュール生成装置に用いられるコンピュータを予め巡回箇所ごとに定められた既定巡回日と、前記巡回箇所の識別情報と、前記巡回箇所の位置情報とを対応付けた巡回箇所情報を前記巡回箇所ごとに記憶する巡回箇所情報記憶部、前記巡回箇所ごとの巡回作業時間を前記巡回箇所ごとに記憶する作業時間情報記憶部、前記巡回箇所の前記位置情報と、前記巡回箇所間の隣接関係とが対応付けられた地図情報を記憶する地図情報記憶部、隣接する前記巡回箇所の集合を1エリアとして、前記地図情報と前記作業時間情報とに基づき、前記エリア内に含まれる前記巡回箇所の前記巡回作業時間の合計であるエリア内巡回作業時間を算出し、拡張対象エリアに隣接し、いずれのエリアにも含まれていない前記隣接巡回箇所のいずれかを選択し、当該拡張対象エリアに含めるエリア拡張処理を繰り返し、巡回スケジュール作成対象の前記巡回箇所を前記エリア内巡回作業時間を平均化した所定数のエリアに分割するエリア分割部、分割された前記エリア内に共通の新たな巡回日として、当該エリア内に含まれる前記巡回箇所における前記既定巡回日と、巡回候補日との巡回日変更量を算出し、全ての巡回候補日のうち、前記巡回日変更量が最小となる巡回候補日を前記新たな巡回日として設定する巡回スケジュール算出部として機能させることを特徴とする巡回スケジュール生成プログラムである。
【発明の効果】
【0013】
本発明によれば、エリア分割部が、巡回箇所を隣接する巡回箇所の集合でありエリア内巡回作業時間を平均化させたエリアに分割し、巡回スケジュール算出部が、エリアごとに巡回日変更量が最小となる巡回候補日をエリア内に共通の新たな巡回日として設定することとした。
これにより、各エリアのエリア内巡回作業時間を平均化し、既定巡回日からの巡回日変更量を最小化する新たな巡回スケジュールを作成することが可能になるという効果がある。
【0014】
また、この発明によれば、エリア分割部が、エリア分割を行う際に隣接種別ごとの重み値が小さい巡回箇所を含めることによってエリア拡張処理を行う。これにより、重み値が大きい巡回箇所に比して重み値が小さい巡回箇所を優先的にエリアに含めることが可能になるという効果がある。
【0015】
また、この発明によれば、隣接する巡回箇所の間の巡回日の日程の差に応じた重み値とすることにより、巡回日の日程の差が小さい巡回箇所を優先的にエリアに含めることが可能になるという効果がある。
【0016】
また、この発明によれば、隣接する巡回箇所の間の土地種別に応じた重み値を用いることにより、巡回箇所間の移動の難易に応じた重み値を設定することが可能になるという効果がある。
【発明を実施するための最良の形態】
【0017】
以下、本発明の一実施形態による巡回スケジュール生成装置1について図面を参照して説明する。図1は、本実施形態による巡回スケジュール生成装置1を示す概略ブロック図である。
巡回スケジュール生成装置1は、顧客情報記憶部10、作業時間記憶部11、地図情報記憶部12、所要時間モデル化部200、グラフ作成部300、エリア分割部400、巡回スケジュール算出部500、街区グラフノード情報記憶部20、街区グラフ隣接情報記憶部30、検針エリア情報記憶部40、巡回スケジュール情報記憶部50を備える。
【0018】
巡回スケジュール生成装置1は、例えば、水道料金を課金するために行う水道メータ検針作業や電気使用量の検針作業、集金や定期的な配達など、所定の地域を巡回する作業において、効率的な巡回スケジュールを作成する。以下、本実施形態において、巡回作業の例として、検針員が所定の地域において世帯ごとに設置されたメータを検針する際の検針作業について説明する。また、この検針作業は、例えば1ヶ月あたり1回などの所定周期となる既定検針日に行う作業である。また、世帯ごとに異なる既定検針日が予め設定されており、検針作業員は、通常既定検針日、又は、既定検針日が法定休日に該当する場合などに既定検針日の前後数日以内に対象の世帯において検針処理を行う。
【0019】
顧客情報記憶部10は、検針対象の世帯に関する情報として顧客情報テーブル100を予め記憶する。図2は、顧客情報テーブル100のデータ構成例と、データ例とを示す図面である。同図に示すように顧客情報テーブル100は、行と列からなる2次元の表形式のデータであり、世帯を識別するための識別情報である顧客IDと、世帯ごとの住所情報と、世帯ごとに予め設定されている既定検針日情報との項目の列を有している。顧客情報テーブル100の各行は、顧客IDごとに存在する。
【0020】
図1に戻り、作業時間記憶部11は、検針作業にかかる所要時間の情報として作業時間テーブル101を予め記憶する。図3は、作業時間テーブル101のデータ構成例と、データ例とを示す図面である。同図に示すように、作業時間テーブル101は、行と列からなる2次元の表形式のデータであり、検針員を識別するための識別情報である検針員IDと、検針場所の住所情報と、検針作業にかかった時間を示す検針所要時間情報との項目の列を有している。作業時間テーブル101の各行は、検針員IDと検針場所の住所との組合せごとに存在する。
【0021】
図1に戻り、地図情報記憶部12は、地図や、街区の面積、隣接する街区間の土地種別など、地図に関する地図情報102を予め記憶する。ここで、街区とは、道路、鉄道、河川などによって区切られた区画の単位である。また、土地種別とは、土地の用途による分類を示す地目の種類である。
所要時間モデル化部200は、街区の世帯密度と、1世帯あたりの検針作業の所要時間時間との相関関係を示す推定モデル式を、作業時間記憶部11が記憶する作業時間テーブル101と世帯密度情報とに基づき算出する。また、所要時間モデル化部200は、算出した推定モデル式と、街区の世帯密度情報と、街区内の世帯数とに基づき、街区内の全世帯を検針する際の総検針作業時間を街区ごとに算出する。
【0022】
所要時間モデル化部200は、算出した街区内の総検針作業時間を街区内所要時間として、街区を識別するための識別情報である街区IDと、街区の住所情報と、算出した街区内所要時間情報と、平均既定検針日情報とを対応付けた街区グラフノードテーブル201を街区グラフノード情報記憶部20に書き込む。平均既定検針日情報は、街区内の各世帯の既定検針日の平均である。なお、平均既定検針日情報として、既定検針日のうち、最も街区内における世帯数が多い既定検針日を用いてもよい。
【0023】
グラフ作成部300は、地図情報記憶部12の地図情報102に基づき、街区間の土地種別を選択する。また、隣接部分の土地種別と、既定検針日の日程の差とに対応する重み値を内部の記憶領域に予め記憶しており、隣接する街区の組合せと、その隣接部分の隣接種別に対応する重み値とを対応付けた街区グラフ隣接テーブル301を街区グラフ隣接情報記憶部30に書き込む。ここで隣接種別は、土地種別と既定検針日の日程の差との組合せである。また、重み値は、既定検針日の日程の差の値に比例して大きい重み値となり、この街区間の隣接部分の土地種別や、既定検針日の差など、街区間の移動の容易性に応じて異なる値である。土地種別は、例えば、道路、高速道路、川、崖、柵などがある。
【0024】
エリア分割部400は、巡回スケジュール作成対象の地域内の街区を複数のエリアに分割する。ここで、エリアとは、検針員一人あたりに割り当てる一日分の検針対象地域の範囲であり、1又は複数の街区を含む検針作業対象の範囲を示す。
エリア分割部400は、各エリアにおける総検針作業時間であるエリア内所要時間が全てのエリアにおいてほぼ均一化させるエリア分割処理を行う。
エリア分割部400は、エリア分割処理結果として、エリアを識別するための識別情報であるエリアIDと街区IDと街区内所要時間情報と、既定検針日情報とを対応付けた検針エリアテーブル401を検針エリア情報記憶部40に書き込む。
【0025】
巡回スケジュール算出部500は、エリア内の既定検針日に基づき、検針日ごとのエリア数を平均化させる新たな検針日を決定する。また、巡回スケジュール算出部500は、検針エリア情報記憶部40の検針エリアテーブル401に基づき、エリアごとに検針作業者である検針員を割り当てる。巡回スケジュール算出部500は、エリアIDと、決定した検針日と、エリア内の総検針作業時間を示すエリア内所要時間と、検針作業者である検針員の検針員IDとを対応付けた巡回スケジュールテーブル501を巡回スケジュール情報記憶部50に書き込む。
【0026】
次に、本発明の一実施形態による巡回スケジュール生成装置1の動作について説明する。図4は、巡回スケジュール生成装置1の巡回スケジュール作成処理のフローを示す。
所要時間モデル化部200は、地図情報記憶部12の地図情報102を読み出す。所要時間モデル化部200は、読み出した地図情報に基づき、街区(ノード)gについて、当該街区に含まれる世帯の住所を検索キーとして、読み出した住所に対応する検針処理時間情報t(a)を作業時間テーブル101から読み出す(ステップS1)。
【0027】
所要時間モデル化部200は、街区gに含まれる世帯全ての総検針作業時間と、合計移動時間とを合計した街区内所要時間t(g)を算出する(ステップS2)。なお、合計移動時間は、例えば、世帯間の移動にかかる時間の平均値を所要時間モデル化部200が内部の記憶領域に予め記憶しており、所要時間モデル化部200が、この平均値と街区内の世帯の数とを乗算することにより算出する。
また、所要時間モデル化部200は、街区内合計検針時間t(g)を街区gの世帯数で除算することにより街区gにおける世帯あたりの合計検針時間の平均値として平均所要時間t(g)を算出する(ステップS3)。
【0028】
また、所要時間モデル化部200は、地図情報102から、街区gの面積情報を読み出すとともに、街区gに含まれる住所に対応する顧客情報テーブル100を顧客情報記憶部10から読み出す(ステップS4)。所要時間モデル化部200は、読み出した顧客情報テーブル100に基づき街区gに含まれる世帯数を算出し、世帯密度D(g)を算出する(ステップS5)。世帯密度D(g)は、所要時間モデル化部200が世帯数を面積で除算することにより得られる街区gにおける面積あたりの世帯数の割合である。
所要時間モデル化部200は、上述の平均所要時間t(g)と世帯密度D(g)とが未算出である街区の有無を判定し、未算出の街区が存在すると判定した場合、当該未算出の街区について上述のステップS1からS5の処理を繰り返す。また、所要時間モデル化部200は、未算出の街区が存在しないと判定した場合、ステップS7に進む(ステップS6)。
【0029】
所要時間モデル化部200は、上述の傾向に基づき、世帯密度と世帯あたりの合計検針時間との相関関係を示す関数の推定モデル式を算出する(ステップS7)。この推定モデル式の算出は、例えば、単回帰や、多重回帰、最小二乗回帰などの関数に基づく解析処理により算出する処理である。
次に、所要時間モデル化部200は、算出した推定モデル式に基づき、街区gの世帯密度に対応する1世帯あたりの推定所要時間を算出する。また、所要時間モデル化部200は、算出した1世帯あたりの推定所要時間と、街区gの世帯数とを乗算し、算出結果の推定街区内所要時間t(g)を取得する(ステップS8)。
【0030】
所要時間モデル化部200は、街区gの住所と、算出した推定街区内合計検診時間t(g)と、顧客情報テーブル100から読み出した街区gに含まれる世帯の平均既定検針日とを対応付けた街区グラフノードテーブル201を作成し、一時的に内部の記憶領域に記憶する(ステップS9)。
【0031】
所要時間モデル化部200は、上述の街区グラフノードテーブル201への書き込みが未処理である街区の有無を判定し、未処理の街区が存在すると判定した場合、当該未処理の街区について上述のステップS8、S9の処理を繰り返す。また、所要時間モデル化部200は、未処理の街区が存在しないと判定した場合、街区グラフノードテーブル201を街区グラフノード情報記憶部20に書き込むとともに、グラフ作成部300に処理実行要求を出力する(ステップS10)。
【0032】
グラフ作成部300は、グラフ作成対象の第一街区の住所と、第一街区に隣接する第二街区の住所と、第一街区と第二街区との隣接部分の土地種別とを地図情報記憶部12の地図情報102から読み出す。また、グラフ作成部300は、読み出した土地種別に対応する重み値を内部の記憶領域から読み出す。
グラフ作成部300は、読み出した住所を検索キーとして、第一街区の街区IDと第二街区の街区IDとを街区グラフノード情報記憶部20の街区グラフノードテーブル201から読み出す(ステップS11)。
【0033】
グラフ作成部300は、読み出した第一街区IDと第二街区との組合せに算出した重み値を対応付けた街区グラフ隣接テーブル301を作成する(ステップS12)。
グラフ作成部300は、上述の街区グラフ隣接テーブル301への書き込みが未処理である街区の有無を判定し、未処理の街区が存在すると判定した場合、当該未処理の街区について上述のステップS11、S12の処理を繰り返す。また、グラフ作成部300は、未処理の街区が存在しないと判定した場合、作成した街区グラフ隣接テーブル301を街区グラフ隣接情報記憶部30に書き込むとともに、エリア分割部400に処理実行要求を出力する(ステップS13)。
【0034】
エリア分割部400は、推定街区内所要時間t(g)の全街区における合計値を算出する。エリア分割部400は、算出した合計値を分割するエリア数Naで除算することにより、エリアあたりの平均エリア内所要時間t(a)を算出する(ステップS14)。
ここで、エリア数Naは、検針作業を行う検針員ごとの月当たりの検針作業日数を全検針員分合計した合計検針作業日数Dに等しい。なお、エリア数Naを決定するにあたっては、前述の方法のほかに、一日で巡回可能な平均エリア所要時間を予め設定し、推定街区内所要時間t(g)の合計値を平均エリア所要時間t(a)で除算することによりエリア数Naを決定することでも良い。また、エリア数Na、平均エリア内所要時間t(a)は、上述の方法で算出するほか、予めエリア分割部400が記憶しておくことや、巡回スケジュール生成装置1が備える入力装置を介してユーザが入力することなどでも良い。
次に、エリア分割部400は、算出した平均エリア内所要時間t(a)とエリア内の総検針作業時間との差が許容範囲Δt以内となり、検針日の変更が最小となるようにエリア(街区群)に分割するグラフパーティショニング処理を行う(ステップS15)。
【0035】
エリア分割部400は、グラフパーティショニング処理結果として、ノードの街区IDと、分割したエリアを識別するための識別情報であるエリアIDと、街区グラフノード情報記憶部20の街区グラフノードテーブル201が記憶する推定街区内所要時間情報と、平均既定検針日情報とを対応付けた検針エリアテーブル401を作成する(ステップS16)。
【0036】
エリア分割部400は、作成した検針エリアテーブル401を検針エリア情報記憶部40に書き込むとともに、巡回スケジュール算出部500に処理実行要求を出力する(ステップS17)。
巡回スケジュール算出部500は、検針エリア情報記憶部40の検針エリアテーブル401を読み出し、エリアaにおいて平均既定検針日ごとの街区数の逆数を巡回日変更量として算出し、最も巡回日変更量が小さい平均既定検針日を新たな検針日の候補である検針候補日として設定する処理を全てのエリアについて繰り返す(ステップS18)。
【0037】
次に、巡回スケジュール算出部500は、検針候補日ごとのエリア数を算出する(ステップS19)。次に、巡回スケジュール算出部500は、検針候補日ごとのエリア数を平均化させるように新たな検針日を変更する(ステップS20)。具体的には、例えば、検針日ごとの検針員の数を予め記憶しておき、巡回スケジュール算出部500が、検針候補日ごとに、エリア数と検針員の数とを比較する。
巡回スケジュール算出部500は、比較の結果に基づき、検針員の数よりエリア数が大きいエリアの検針候補日を、検針員の数よりエリア数が少ないエリアの検針候補日に変更する。このとき、検針員の数よりエリア数が少ないエリアのうち、元の検針候補日に近い日程を検針候補日とするエリアを選択する。
【0038】
上述したステップS18の処理を行うことにより、巡回スケジュール算出部500は、エリア分割部400により分割されたエリアにおける新たな検針日を設定する際に、巡回スケジュール作成対象の地域における検針日変更世帯数が少なく、また、検針日ごとの検針員の人数を平均化させる検針日を設定することができる。検針日変更世帯数は、既定検針日と新たな検針日とが異なり、検針日が変更される世帯数である。
【0039】
巡回スケジュール算出部500は、エリアIDと、設定した新たな検針日と、エリア内における街区内所要時間の合計値である推定エリア内所要時間と、検針員IDとを対応付けた巡回スケジュールテーブル501を作成し、作成した巡回スケジュールテーブル501を巡回スケジュール情報記憶部50に書き込む(ステップS21)。
【0040】
図5は、全ての街区について、算出結果に基づき、世帯密度D(g)と世帯あたりの平均所要時間t(g)とのデータ例をプロットした図である。
ここで、各世帯の検針場所が近接すると移動距離とともに移動時間が短くなる。このため、世帯あたりの平均所要時間と世帯密度との相関関係として、世帯密度D(g)の値の増加に応じて世帯あたりの平均所要時間t(g)の値は減少し、所定値に向かって収束する傾向がある。
【0041】
図6は、図4のステップS9において所要時間モデル化部200が作成する街区グラフノードテーブル201のデータ構成例とデータ例とを示す図である。同図に示すように、街区グラフノードテーブル201は、行と列からなる2次元の表形式のデータであり、街区IDと、街区の住所情報と、算出した推定街区内所要時間と、平均既定検針日との項目の列を有する。街区グラフノードテーブル201の各行は、街区IDごとに存在する。
【0042】
図7は、図4のステップS12においてグラフ作成部300が作成する街区グラフ隣接テーブル301のデータ構成例とデータ例とを示す図である。同図に示すように、街区グラフ隣接テーブル301は、行と列からなる2次元の表形式のデータであり、第一街区IDと、第二街区IDと、隣接部分の土地種別に対応する重み値との項目の列を有する。街区グラフ隣接テーブル301の各行は、第一街区IDと第二街区IDとの組合せごとに存在する。
【0043】
次に、図4のステップS15におけるグラフパーティショニング処理の具体例について図面を用いて説明する。図8は、グラフパーティショニング処理における処理対象の地域について、推定街区内所要時間を地図上に表示した際のグラフ例である。ここでは、処理対象の地域の例として、道路や川などの格子状の境界で囲まれた縦5ブロック、横5ブロックの街区が存在する地域について説明する。
【0044】
図8(a)に示すように、境界Bは、例えば、川や、既定検針日等が異なる境界などであり、街区間を移動する際に他の境界に比して重み値が高い境界を示す。なお、以下において、簡単のために、境界B以外の境界について、重み値を0とし、境界Bについて、重み値を60として説明する。同図において、例えば、ノードG1は、例えば、一戸建てが集中する街区など、世帯密度が低い街区であり、推定街区内所要時間の値が60分の街区である。また、ノードG2は、例えば、複数の集合住宅が含まれる世帯密度が高い地域であり、推定街区内所要時間の値が240分の街区である。
【0045】
図8(b)は、推定街区内所要時間の大きさに準じた直径となる円を街区上にノード円として示し、ノード円同士の全ての隣接関係を直線による接続で示す図である。同図において、例えば、接続Lのように、境界Bを越えるため、重み値60を加算する接続を破線で示している。
次に、図9から図11を用いて、グラフパーティショニング処理の流れについて説明する。ここでは、分割するエリア数Na=8、許容範囲Δt=60である場合について説明する。また、図8(b)における全ノードの推定街区内所要時間を合計した合計値は、2730分、この合計値をエリア数8で除算して得られる平均エリア内所要時間t(a)は341.25分となる。
【0046】
全ノードのうちのいずれか2のノードを中心ノードとして選択する(例えば、図9(a)の中心ノードCG1と中心ノードCG2)。
次に、選択した中心ノードを中心として、隣接するノードに接続することにより、接続範囲を拡張する。このとき、隣接するノードのうち、接続するノード間における重み値が最も小さいものを優先的に選択する。そして、全てのノードがいずれかの中心ノードから接続されるノード群に接続するまで接続範囲を拡張する作業を繰り返す。このとき、中心ノードCG1を中心に接続するノード群と、中心ノードCG2を中心に接続するノード群とにおける街区内所要時間の合計値がほぼ等しくなるように接続する。以下、図9(b)から図10(d)において、この接続処理の流れを示す。
【0047】
図9(b)において、中心ノードCG1と隣接するノードとを接続し、中心ノードCG2と隣接するノードとを接続する。この結果、中心ノードCG1の接続範囲と、中心ノードCG2の接続範囲とのいずれも街区内所要時間の合計値が150分となる。同図において、中心ノードCG1、CG2のいずれにおいても、隣接ノードの重み値はいずれも0であるため、街区内所要時間の合計値がほぼ等しくなるノードを選択する。同様に、図9(c)に図示するように、さらに隣接ノードを選択した結果中心ノードCG1の接続範囲と、中心ノードCG2の接続範囲とのいずれも街区内所要時間の合計値が450分となる。
【0048】
ここで、中心ノードCG1の接続範囲において、隣接するノードのうち、接続線が境界Bを越えるノードが存在する。ここで、境界Bを越える場合の重み値が60であり、他の境界を越える場合の重み値が0であることから、重み値0となるノードを優先的に中心ノードCG1の接続範囲に含める。以下、同様に、重み値0となるノードを優先的に選択し、図9(d)図示するように、さらに隣接ノードを選択し、その結果中心ノードCG1の接続範囲における街区内所要時間の合計値は、630分となり、中心ノードCG2の接続範囲の街区内所要時間の合計値は、690分となる。
【0049】
図10(a)においてさらに隣接ノードを選択し、その結果中心ノードCG1の接続範囲と、中心ノードCG2の接続範囲とのいずれも街区内所要時間の合計値が810分となる。図10(b)においてさらに隣接ノードを選択し、その結果中心ノードCG1の接続範囲における街区内所要時間の合計値は、990分となり、中心ノードCG2の接続範囲の街区内所要時間の合計値は、1050分となる。
【0050】
ここで、図10(b)に示すように、中心ノードCG1の隣接ノードは、いずれも境界Bを越える接続となる。このため、次の拡張処理において、いずれの隣接ノードと接続する場合であっても、重み値60を加算する。図10(c)に図示するように、さらに隣接ノードを選択し、その結果中心ノードCG1の接続範囲として、境界Bを超える接続Lbを含むため、重み値60を加算し、街区内所要時間の合計値は、1290分となる。また、中心ノードCG2の接続範囲の街区内所要時間の合計値は、1350分となる。
【0051】
図10(d)においてさらに隣接ノードを選択し、その結果中心ノードCG1の接続範囲における街区内所要時間の合計値は、1380分となり、中心ノードCG2の接続範囲の街区内所要時間の合計値は、1410分となる。
図10(d)において、全てのノードが中心ノードCG1の接続範囲又は中心ノードCG2の接続範囲のいずれかに接続する。このようにすることで、街区内所要時間の合計がほぼ等しい街区群として、中心ノードCG1の接続範囲と中心ノードCG2の接続範囲との二つの街区群に分割することができる。
【0052】
次に、図9、図10に示す処理について、中心ノードCG1の接続範囲と、中心ノードCG2の接続範囲とに対して処理を行う。図11(a)において、図10(d)において示した中心ノードCG1の接続範囲と、中心ノードCG2の接続範囲とにおいて、それぞれいずれか2のノードを中心ノードとして選択する(図11(a)の中心ノードCG11と中心ノードCG12、中心ノードCG21と中心ノードCG22)。
【0053】
以降、図9(b)から図10(d)の処理と同様に選択した中心ノードを中心として、接続範囲を拡張し、中心ノードCG1の接続範囲と、中心ノードCG2の接続範囲とにおいて、それぞれ2分割する。図11(b)は、中心ノードCG1の接続範囲と、中心ノードCG2の接続範囲とのそれぞれを2分割した図である。同図に示すように、中心ノードCG11の接続範囲の街区内所要時間の合計値は、660分であり、接続Lbを含む中心ノードCG12の接続範囲の街区内所要時間の合計値は、720分である。また、中心ノードCG21の接続範囲の街区内所要時間の合計値は、720分であり、中心ノードCG22の接続範囲の街区内所要時間の合計値は、690分である。
【0054】
以下同様に、中心ノードCG11、CG12、CG21、CG22の各々の接続範囲において、中心ノードを2つずつ選択する(図11(c)の中心ノードCG111、CG112、CG121、CG122、CG211、CG212、CG221、CG222)。
選択した中心ノードを中心に接続範囲を拡張し、中心ノードCG11、CG12、CG21、CG22の接続範囲をそれぞれ2分割する。図11(d)は、2分割後の接続範囲を示す図である。
【0055】
同図に示すように、中心ノードCG111の接続範囲は、街区内所要時間の合計値が300分であり、中心ノードCG121、CG122、CG222の接続範囲の街区内所要時間の合計値は、いずれも330分である。また、中心ノードCG112、CG211、CG212、CG221の接続範囲の街区内所要時間の合計値は、いずれも360分である。
【0056】
このように、接続範囲における街区内所要時間の合計値が等しくなるように中心ノードから接続範囲を拡張することにより分割処理を行うため、街区内所要時間の合計値がほぼ等しい接続範囲に分割することができる。エリア分割部400は、この分割処理を接続範囲数が上述の分割エリア数Naになるまで繰り返すことにより、グラフパーティショニング処理を行う。
なお、エリア分割部400は、グラフパーティショニング処理において常に中心ノードを2つずつ選択することにより、2分割することとしたが、3以上の中心ノードを選択することにより、3以上に分割することができる。
【0057】
図12は、図4のステップS16においてエリア分割部400が作成する検針エリア情報記憶部40の検針エリアテーブル401のデータ構成例とデータ例とを示す図である。同図に示すように、検針エリアテーブル401は、行と列からなる2次元の表形式のデータであり、エリアIDと、ノードの街区IDと、推定街区内所要時間情報と、平均既定検針日情報との項目の列を有する。検針エリアテーブル401の各行は、街区IDごとに存在する。
【0058】
図13は、巡回スケジュール情報記憶部50の巡回スケジュールテーブル501のデータ構成例とデータ例とを示す図である。同図に示すように、巡回スケジュールテーブル501は、行と列からなる2次元の表形式のデータであり、エリアIDと、検針日情報と、推定エリア内所要時間情報と、検針員IDとの項目の列を有する。巡回スケジュールテーブル501の各行は、エリアごとに存在する。
【0059】
以上、上述した処理を行うことにより、巡回スケジュール作成対象の地域における検針日変更世帯数が少なく、また、検針日ごとの検針員の人数と一日あたりの検針作業時間とを平均化させて作業効率を向上させることができる巡回スケジュールを作成することができる。
また、所要時間モデル化部200が、ステップS7において推定モデル式を算出し、この推定モデル式を用いて巡回スケジュールを算出することにより、検針員のスキルの差に左右されない平均的な作業時間に基づき街区ごとの街区内所要時間を算出することができる。
【0060】
なお、ステップS18において、巡回スケジュール算出部500が、新たな検針日の候補を設定する際、平均既定検針日ごとの街区数の逆数を算出し、算出結果を巡回日変更量として用いることとして説明したが、これに限らず、いずれの巡回日変更量を用いることも可能である。例えば、既定検針日ごとの世帯数の逆数を巡回日変更量として用いることでも良い。この場合、巡回スケジュール算出部500は、検針エリアテーブル401から読み出すエリアaに対応する街区IDを検索キーとして、街区グラフノードテーブル201から住所情報を読み出す。
【0061】
次に、巡回スケジュール算出部500は、読み出した住所情報に基づき、エリアaに含まれる全ての世帯の既定検針日の情報を顧客情報記憶部10の顧客情報テーブル100から読み出す。巡回スケジュール算出部500は、読み出したエリアaに含まれる世帯の既定検針日の情報に基づき、既定検針日ごとの世帯数の逆数を巡回日変更量として算出する。巡回スケジュール算出部500は、算出した巡回日変更量が最も小さい既定検針日を選択することにより、最も世帯数が多い既定検針日を選択することで実現可能である。
また、巡回日変更量として、検針候補日ごとに、検針候補日とエリア内に含まれる世帯に設定されている既定検針日との差を算出し、この差をエリア内に含まれる全世帯について合計した値を用いることでもよい。
【0062】
また、エリア分割部400によるグラフパーティショニング処理は、例えば、総当たりでエリアに分割する方法や、METISと呼ばれる領域分割ソフトウェアなどを適用することも可能である。
例えば、総当たりを用いる方法は、エリア分割部400が、街区gを中心に隣接する街区を組み合わせたエリアにおいて、総検針作業時間の平均エリア内所要時間t(a)との差が許容範囲Δt以内となる街区の組合せを総当たり(隣接する街区の全組合せ)で検索する。次に、エリア分割部400が、この組合せごとに、組合せに含まれる街区の既定検針日のうち、最も多い既定検針日を選択する。そして、エリア分割部400は、選択した既定検針日と異なる既定検針日となる街区の数を検針日変更街区数として算出する。検針エリア情報記憶部40は、全ての組合せについて、検針日変更街区数を算出し、最も検針日変更街区数が少ない組合せをエリアとして確定する。この作業を繰り返すことにより、エリア分割処理を行う。
【0063】
また、上述した街区間のつながりに対応する重み値は、土地種別ごとの重みと、既定検針日の差に基づく重みとを足し合わせた値を適用することも可能である。また、この場合、重み値をそのまま足し合わせるほか、土地種別ごとの重みと既定検針日の差に基づく重みとを異なる加重により足し合わせることで、土地種別と、既定検針日との差との間で優先度を設定することができる。
【0064】
なお、上述の巡回スケジュール生成装置1は、内部にコンピュータシステムを有している。そして、巡回スケジュール生成装置1の顧客情報テーブル100、所要時間モデル化部200、グラフ作成部300、エリア分割部400、並びに、巡回スケジュール算出部500の動作の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータシステムが読み出して実行することによって、上記処理が行われる。ここでいう「コンピュータシステム」とは、CPU及び各種メモリやOS、周辺機器等のハードウェアを含むものである。
また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。
【0065】
また、図4に示す各ステップを実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、また、図1に示す巡回スケジュール生成装置1の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより、既定検針日の変更を最小限に抑えつつ巡回作業を効率化させることができる巡回スケジュールを作成する処理を行ってもよい。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、フラッシュメモリ等の書き込み可能な不揮発性メモリ、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
【0066】
さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(例えばDRAM(Dynamic Random Access Memory))のように、一定時間プログラムを保持しているものも含むものとする。
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムに既に記録されているプログラムとの組合せで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。
【図面の簡単な説明】
【0067】
【図1】本発明の一実施形態による巡回スケジュール生成装置1の全体構成を示すブロック図である。
【図2】同実施形態における顧客情報記憶部10の作業時間テーブル101のデータ構成例とデータ例とを示す図である。
【図3】同実施形態における作業時間記憶部11の作業時間テーブル101のデータ構成例とデータ例とを示す図である。
【図4】同実施形態における巡回スケジュール生成装置1の動作フローを示す図である。
【図5】同実施形態における世帯あたりの所要時間と街区の世帯密度とをプロットしたグラフである。
【図6】同実施形態における街区グラフノード情報記憶部20の街区グラフノードテーブル201のデータ構成例とデータ例とを示す図である。
【図7】同実施形態における街区グラフ隣接情報記憶部30の街区グラフ隣接テーブル301のデータ構成例とデータ例とを示す図である。
【図8】同実施形態におけるグラフパーティショニング処理対象の地域のグラフ例である。
【図9】同実施形態におけるグラフパーティショニング処理の具体例における流れを示す図である。
【図10】同実施形態におけるグラフパーティショニング処理の具体例における流れを示す図である。
【図11】同実施形態におけるグラフパーティショニング処理の具体例における流れを示す図である。
【図12】同実施形態における検針エリア情報記憶部40の検針エリアテーブル401のデータ構成例とデータ例とを示す図である。
【図13】同実施形態における巡回スケジュール情報記憶部50の巡回スケジュールテーブル501のデータ構成例とデータ例とを示す図である。
【符号の説明】
【0068】
1 巡回スケジュール生成装置
10 顧客情報記憶部
11 作業時間記憶部
12 地図情報記憶部
20 街区グラフノード情報記憶部
30 街区グラフ隣接情報記憶部
40 検針エリア情報記憶部
50 巡回スケジュール情報記憶部
100 顧客情報テーブル
101 作業時間テーブル
102 地図情報
200 所要時間モデル化部
201 街区グラフノードテーブル
300 グラフ作成部
301 街区グラフ隣接テーブル
400 エリア分割部
401 検針エリアテーブル
500 巡回スケジュール算出部
501 巡回スケジュールテーブル

【特許請求の範囲】
【請求項1】
予め巡回箇所ごとに定められた既定巡回日と、前記巡回箇所の識別情報と、前記巡回箇所の位置情報とを対応付けた巡回箇所情報を前記巡回箇所ごとに記憶する巡回箇所情報記憶部と、
前記巡回箇所ごとの巡回作業時間を前記巡回箇所ごとに記憶する作業時間情報記憶部と、
前記巡回箇所の前記位置情報と、前記巡回箇所間の隣接関係とが対応付けられた地図情報を記憶する地図情報記憶部と、
隣接する前記巡回箇所の集合を1エリアとして、前記地図情報と前記作業時間情報とに基づき、前記エリア内に含まれる前記巡回箇所の前記巡回作業時間の合計であるエリア内巡回作業時間を算出し、拡張対象エリアに隣接し、いずれのエリアにも含まれていない前記隣接巡回箇所のいずれかを選択し、当該拡張対象エリアに含めるエリア拡張処理を繰り返し、巡回スケジュール作成対象の前記巡回箇所を前記エリア内巡回作業時間を平均化した所定数のエリアに分割するエリア分割部と、
分割された前記エリア内に共通の新たな巡回日として、当該エリア内に含まれる前記巡回箇所における前記既定巡回日と、巡回候補日との巡回日変更量を算出し、全ての巡回候補日のうち、前記巡回日変更量が最小となる巡回候補日を前記新たな巡回日として設定する巡回スケジュール算出部と
を備えることを特徴とする巡回スケジュール生成装置。
【請求項2】
前記巡回スケジュール生成装置は、
前記地図情報記憶部が記憶する前記地図情報と、前記巡回箇所情報記憶部が記憶する前記巡回箇所情報とに基づき、隣接する第1巡回箇所と第2巡回箇所とにおける隣接種別を判定し、予め前記隣接種別ごとに定める重み値を前記第1巡回箇所と前記第2巡回箇所との組合せごとに対応付けた重み値情報を作成するグラフ作成部をさらに備え、
前記エリア分割部は、
前記グラフ作成部が作成する重み値情報に基づき、前記エリア拡張処理において、前記隣接巡回箇所のうち、当該エリアに含まれる巡回箇所と前記隣接巡回箇所とにおける重み値が最も小さい隣接巡回箇所を新たに当該エリアに含める
ことを特徴とする請求項1に記載の巡回スケジュール生成装置。
【請求項3】
前記隣接種別ごとの重み値は、
前記第1巡回箇所の第1既定巡回日と前記第2巡回箇所の第2既定巡回日との日程の差に応じた値である
ことを特徴とする請求項2に記載の巡回スケジュール生成装置。
【請求項4】
前記隣接種別ごとの重み値は、
前記第1巡回箇所と前記第2巡回箇所との間の土地種別ごとに予め定められた値である
ことを特徴とする請求項2又は3のいずれかに記載の巡回スケジュール生成装置。
【請求項5】
予め巡回箇所ごとに定められた既定巡回日と、前記巡回箇所の識別情報と、前記巡回箇所の位置情報とを対応付けた巡回箇所情報を前記巡回箇所ごとに記憶する巡回箇所情報記憶ステップと、
前記巡回箇所ごとの巡回作業時間を前記巡回箇所ごとに記憶する作業時間情報記憶ステップと、
前記巡回箇所の前記位置情報と、前記巡回箇所間の隣接関係とが対応付けられた地図情報を記憶する地図情報記憶ステップと、
隣接する前記巡回箇所の集合を1エリアとして、前記地図情報と前記作業時間情報とに基づき、前記エリア内に含まれる前記巡回箇所の前記巡回作業時間の合計であるエリア内巡回作業時間を算出し、拡張対象エリアに隣接し、いずれのエリアにも含まれていない前記隣接巡回箇所のいずれかを選択し、当該拡張対象エリアに含めるエリア拡張処理を繰り返し、巡回スケジュール作成対象の前記巡回箇所を前記エリア内巡回作業時間を平均化した所定数のエリアに分割するエリア分割ステップと、
分割された前記エリア内に共通の新たな巡回日として、当該エリア内に含まれる前記巡回箇所における前記既定巡回日と、巡回候補日との巡回日変更量を算出し、全ての巡回候補日のうち、前記巡回日変更量が最小となる巡回候補日を前記新たな巡回日として設定する巡回スケジュール算出ステップと
を有することを特徴とする巡回スケジュール生成方法。
【請求項6】
巡回スケジュール生成装置に用いられるコンピュータを
予め巡回箇所ごとに定められた既定巡回日と、前記巡回箇所の識別情報と、前記巡回箇所の位置情報とを対応付けた巡回箇所情報を前記巡回箇所ごとに記憶する巡回箇所情報記憶部、
前記巡回箇所ごとの巡回作業時間を前記巡回箇所ごとに記憶する作業時間情報記憶部、
前記巡回箇所の前記位置情報と、前記巡回箇所間の隣接関係とが対応付けられた地図情報を記憶する地図情報記憶部、
隣接する前記巡回箇所の集合を1エリアとして、前記地図情報と前記作業時間情報とに基づき、前記エリア内に含まれる前記巡回箇所の前記巡回作業時間の合計であるエリア内巡回作業時間を算出し、拡張対象エリアに隣接し、いずれのエリアにも含まれていない前記隣接巡回箇所のいずれかを選択し、当該拡張対象エリアに含めるエリア拡張処理を繰り返し、巡回スケジュール作成対象の前記巡回箇所を前記エリア内巡回作業時間を平均化した所定数のエリアに分割するエリア分割部、
分割された前記エリア内に共通の新たな巡回日として、当該エリア内に含まれる前記巡回箇所における前記既定巡回日と、巡回候補日との巡回日変更量を算出し、全ての巡回候補日のうち、前記巡回日変更量が最小となる巡回候補日を前記新たな巡回日として設定する巡回スケジュール算出部
として機能させることを特徴とする巡回スケジュール生成プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate


【公開番号】特開2010−79650(P2010−79650A)
【公開日】平成22年4月8日(2010.4.8)
【国際特許分類】
【出願番号】特願2008−248051(P2008−248051)
【出願日】平成20年9月26日(2008.9.26)
【出願人】(000102728)株式会社エヌ・ティ・ティ・データ (438)