(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022018834
(43)【公開日】2022-01-27
(54)【発明の名称】巡回経路生成装置、巡回経路生成方法及びプログラム
(51)【国際特許分類】
G06Q 50/10 20120101AFI20220120BHJP
G06Q 10/08 20120101ALI20220120BHJP
【FI】
G06Q50/10
G06Q10/08
【審査請求】未請求
【請求項の数】15
【出願形態】OL
(21)【出願番号】P 2020122217
(22)【出願日】2020-07-16
(71)【出願人】
【識別番号】507381857
【氏名又は名称】Kii株式会社
(74)【代理人】
【識別番号】110000176
【氏名又は名称】一色国際特許業務法人
(72)【発明者】
【氏名】岸本 英昭
【テーマコード(参考)】
5L049
【Fターム(参考)】
5L049AA16
5L049CC11
(57)【要約】
【課題】作業時間の短縮と平準化が両立可能な巡回経路を生成する。
【解決手段】複数の地点に物資の補給を行う際の巡回経路を生成する巡回経路生成装置であって、巡回の各サイクルにおける各地点の巡回の必要度を記憶する必要度記憶部と、巡回のサイクル毎に、必要度がより高い地点が選出される度合いを表す第1指標値と、経路長を表す第2指標値と、巡回所要時間と目標時間との差を表す第3指標値とに基づいて、巡回経路を生成する巡回経路生成処理を行う巡回経路生成部とを備え、巡回経路生成部は、いずれかのサイクルにおいて巡回所要時間が目標時間を超過する時間が第1所定時間以上となる巡回経路が生成された場合には、当該サイクルにおいて巡回地点として選出された所定地点が巡回地点として選出されにくくなるように必要度記憶部に記憶されている必要度を補正した後、再度、巡回経路生成処理を行う。
【選択図】
図2
【特許請求の範囲】
【請求項1】
複数の地点から選出される少なくとも一部の地点に対する巡回を前記地点の組み合わせを変えながら複数サイクル行うことにより前記複数の地点に物資の補給を行う際の巡回経路を生成する巡回経路生成装置であって、
前記地点毎の物資の在庫予測を元に算出される、初回から最終回までの巡回の各サイクルにおける各地点の巡回の必要度を記憶する必要度記憶部と、
巡回のサイクル毎に、前記複数の地点の中から巡回の必要度がより高い地点が巡回地点として選出される度合いを表す第1指標値と、前記巡回地点を巡回する巡回経路の経路長を表す第2指標値と、前記巡回経路の巡回所要時間と所定の目標時間との差を表す第3指標値と、を算出し、前記第1指標値、前記第2指標値、及び前記第3指標値に基づいて前記複数の地点から巡回地点を選出して巡回経路を生成する巡回経路生成処理を行う巡回経路生成部と、
を備え、
前記巡回経路生成部は、
いずれかのサイクルにおいて、巡回所要時間が所定の目標時間を超過する時間が第1所定時間以上となる巡回経路が生成された場合には、当該サイクルである時間超過サイクルにおいて巡回地点として選出された所定地点が、当該時間超過サイクルにおいて巡回地点として選出されにくくなるように前記必要度記憶部に記憶されている必要度を補正した後、再度、前記巡回経路生成処理を行う、巡回経路生成装置。
【請求項2】
請求項1に記載の巡回経路生成装置であって、
前記巡回経路生成部は、
前記時間超過サイクルに先行する先行サイクルにおける前記所定地点の必要度を第1所定値だけ増加させるように補正して、前記所定地点が前記先行サイクルにおいて巡回地点として選出されやくなるようにすることで、前記所定地点が前記時間超過サイクルにおいて巡回地点として選出されにくくなるようにする、巡回経路生成装置。
【請求項3】
請求項2に記載の巡回経路生成装置であって、
前記巡回経路生成部は、
前記先行サイクルにおける前記複数の地点の必要度の中の最大値を前記第1所定値として、前記第1所定値を前記先行サイクルにおける前記所定地点の必要度に加算することにより、前記所定地点の必要度を補正する、巡回経路生成装置。
【請求項4】
請求項1~3のいずれかに記載の巡回経路生成装置であって、
前記地点毎の物資の在庫予測を元に、前記時間超過サイクルに先行する先行サイクルにおいて物資の補給を行わなくても支障がないと見込まれる巡回遅延可能地点を、前記複数の地点の中から選出する巡回遅延可能地点選出部と、
を備え、
前記巡回経路生成部は、
前記巡回遅延可能地点の前記先行サイクルにおける必要度を第2所定値だけ減少させるように補正することで、前記巡回遅延可能地点が前記先行サイクルにおいて巡回地点として選出されにくくし、前記所定地点が前記先行サイクルにおいて相対的に巡回地点として選出されやくなるようにすることで、前記所定地点が前記時間超過サイクルにおいて巡回地点として選出されにくくなるようにする、巡回経路生成装置。
【請求項5】
請求項1~4のいずれかに記載の巡回経路生成装置であって、
初回から最終回までの各サイクルにおける巡回の目標時間を記憶する目標時間記憶部と、を備え、
前記巡回経路生成部は、
前記所定地点が前記時間超過サイクルにおいて巡回地点として選出されにくくなるようにするために必要度を補正し得る地点が所定数以下である場合には、前記目標時間記憶部に記憶されている、前記時間超過サイクルを含む連続する所定個数のサイクルにおける巡回の目標時間をそれぞれ第1目標時間だけ増加させるように補正した後、再度、前記巡回経路生成処理を行う、巡回経路生成装置。
【請求項6】
請求項1~5のいずれかに記載の巡回経路生成装置であって、
初回から最終回までの各サイクルにおける巡回の目標時間を記憶する目標時間記憶部と、
前記地点毎の物資の在庫予測を元に、巡回のサイクルごとに、前記複数の地点を、必ず巡回地点として選出されるべき巡回必須地点と、必ずしも巡回地点として選出されなくて良い巡回任意地点と、に分類する地点分類部と、
を備え、
前記巡回経路生成部は、
いずれかのサイクルにおいて、巡回所要時間が目標時間を超過する時間が前記第1所定時間よりも短い第2所定時間以下となる巡回経路が生成され、かつ、当該サイクルである軽負荷サイクルにおける巡回地点のうち、巡回必須地点及び必要度の補正が既になされている巡回任意地点が占める割合が第3所定値以下である場合には、前記目標時間記憶部に記憶されている、当該軽負荷サイクルにおける巡回の目標時間を第2目標時間だけ減少させた後、再度、前記巡回経路生成処理を行う、巡回経路生成装置。
【請求項7】
請求項1~6のいずれかに記載の巡回経路生成装置であって、
前記複数の地点を含む地域を複数の小地域に分割する地域分割部と、
を備え、
前記巡回経路生成部は、前記小地域ごとに、前記小地域内の複数の地点を、初回から最終回までの複数の前記サイクルで巡回する際の巡回経路を生成する、巡回経路生成装置。
【請求項8】
請求項1~7のいずれかに記載の巡回経路生成装置であって、
前記巡回経路生成部は、
前記巡回経路生成処理を所定回数繰り返した後、巡回の初回のサイクルに対して、再度、前記第1指標値と、前記第2指標値と、前記第3指標値と、を算出し、前記第1指標値、前記第2指標値、及び前記第3指標値に基づいて、前記複数の地点から巡回地点を選出して巡回経路を生成する、巡回経路生成装置。
【請求項9】
請求項8記載の巡回経路生成装置であって、
前記巡回経路生成部が前記巡回経路生成処理を繰り返す前記所定回数を示す情報を取得するインタフェースを備える、巡回経路生成装置。
【請求項10】
請求項1~9のいずれかに記載の巡回経路生成装置であって、
初回から最終回までの各サイクルにおける巡回の目標時間を示す情報を取得するインタフェースを備える、巡回経路生成装置。
【請求項11】
請求項10に記載の巡回経路生成装置であって、
前記目標時間を示す情報は、巡回を行う作業員の作業開始予定時刻及び作業終了予定時刻が記載された作業スケジュール情報である、巡回経路生成装置。
【請求項12】
請求項1~11のいずれかに記載の巡回経路生成装置であって、
前記巡回経路生成部が巡回経路を生成する初回から最終回までの巡回のサイクル数を示す情報を取得するインタフェースを備える、巡回経路生成装置。
【請求項13】
請求項1~12のいずれかに記載の巡回経路生成装置であって、
前記地点毎の物資の在庫予測を元に算出される、初回から最終回までの巡回の各サイクルにおける各地点の巡回の必要度を示す情報を取得するインタフェースを備える、巡回経路生成装置。
【請求項14】
複数の地点から選出される少なくとも一部の地点に対する巡回を前記地点の組み合わせを変えながら複数サイクル行うことにより前記複数の地点に物資の補給を行う際の巡回経路を生成するコンピュータによる巡回経路生成方法であって、
前記コンピュータが、
前記地点毎の物資の在庫予測を元に算出される、初回から最終回までの巡回の各サイクルにおける各地点の巡回の必要度を記憶し、
巡回のサイクル毎に、前記複数の地点の中から巡回の必要度がより高い地点が巡回地点として選出される度合いを表す第1指標値と、前記巡回地点を巡回する巡回経路の経路長を表す第2指標値と、前記巡回経路の巡回所要時間と所定の目標時間との差を表す第3指標値と、を算出し、前記第1指標値、前記第2指標値、及び前記第3指標値に基づいて前記複数の地点から巡回地点を選出して巡回経路を生成する巡回経路生成処理を行い、
いずれかのサイクルにおいて、巡回所要時間が所定の目標時間を超過する時間が第1所定時間以上となる巡回経路が生成された場合には、当該サイクルである時間超過サイクルにおいて巡回地点として選出された所定地点が、当該時間超過サイクルにおいて巡回地点として選出されにくくなるように前記必要度を補正した後、再度、前記巡回経路生成処理を行う、巡回経路生成方法。
【請求項15】
複数の地点から選出される少なくとも一部の地点に対する巡回を前記地点の組み合わせを変えながら複数サイクル行うことにより前記複数の地点に物資の補給を行う際の巡回経路を生成するコンピュータに、
前記地点毎の物資の在庫予測を元に算出される、初回から最終回までの巡回の各サイクルにおける各地点の巡回の必要度を記憶する手順と、
巡回のサイクル毎に、前記複数の地点の中から巡回の必要度がより高い地点が巡回地点として選出される度合いを表す第1指標値と、前記巡回地点を巡回する巡回経路の経路長を表す第2指標値と、前記巡回経路の巡回所要時間と所定の目標時間との差を表す第3指標値と、を算出し、前記第1指標値、前記第2指標値、及び前記第3指標値に基づいて前記複数の地点から巡回地点を選出して巡回経路を生成する巡回経路生成処理を行う手順と、
いずれかのサイクルにおいて、巡回所要時間が所定の目標時間を超過する時間が第1所定時間以上となる巡回経路が生成された場合には、当該サイクルである時間超過サイクルにおいて巡回地点として選出された所定地点が、当該時間超過サイクルにおいて巡回地点として選出されにくくなるように前記必要度を補正した後、再度、前記巡回経路生成処理を行う手順と、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、巡回経路生成装置、巡回経路生成方法及びプログラムに関する。
【背景技術】
【0002】
複数の地点を巡回する場合の最適な巡回経路は、例えば巡回セールスマン問題を解くことにより求めることができる(例えば特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
一方、灯油を配達するために各地の顧客を巡回する場合などのように、毎回すべての顧客を巡回するのではなく、灯油の残量が少なくなってきた顧客を選んで巡回すれば良い場合がある。このような場合、1回の巡回で訪問する顧客の数が少なくなり、灯油の配達を行う作業員の作業時間を減らすことができる。
【0005】
しかしながら、配達の作業時間を減らし続けていると、いずれ、灯油が枯渇する顧客が発生するため、灯油を配達しなければならない顧客の数が一気に増加する時が来て、長時間の残業が必要になることになる。
【0006】
本発明はこのような課題を鑑みてなされたものであり、複数の地点から選出される少なくとも一部の地点に対する巡回を、地点の組み合わせを変えながら複数サイクル行うことにより、複数の地点に物資の補給を行う際の巡回経路を生成する際に、巡回を行う作業員の作業時間の短縮と平準化が両立可能な巡回経路を生成することができる巡回経路生成装置、巡回経路生成方法及びプログラムを提供する。
【課題を解決するための手段】
【0007】
本発明の一実施形態に係る巡回経路生成装置は、複数の地点から選出される少なくとも一部の地点に対する巡回を前記地点の組み合わせを変えながら複数サイクル行うことにより前記複数の地点に物資の補給を行う際の巡回経路を生成する巡回経路生成装置であって、前記地点毎の物資の在庫予測を元に算出される、初回から最終回までの巡回の各サイクルにおける各地点の巡回の必要度を記憶する必要度記憶部と、巡回のサイクル毎に、前記複数の地点の中から巡回の必要度がより高い地点が巡回地点として選出される度合いを表す第1指標値と、前記巡回地点を巡回する巡回経路の経路長を表す第2指標値と、前記巡回経路の巡回所要時間と所定の目標時間との差を表す第3指標値と、を算出し、前記第1指標値、前記第2指標値、及び前記第3指標値に基づいて前記複数の地点から巡回地点を選出して巡回経路を生成する巡回経路生成処理を行う巡回経路生成部と、を備え、前記巡回経路生成部は、いずれかのサイクルにおいて、巡回所要時間が所定の目標時間を超過する時間が第1所定時間以上となる巡回経路が生成された場合には、当該サイクルである時間超過サイクルにおいて巡回地点として選出された所定地点が、当該時間超過サイクルにおいて巡回地点として選出されにくくなるように前記必要度記憶部に記憶されている必要度を補正した後、再度、前記巡回経路生成処理を行う。
【0008】
その他、本願が開示する課題、及びその解決方法は、発明を実施するための形態の欄の記載、及び図面の記載等により明らかにされる。
【発明の効果】
【0009】
複数の地点から選出される少なくとも一部の地点に対する巡回を、地点の組み合わせを変えながら複数サイクル行うことにより、複数の地点に物資の補給を行う際の巡回経路を生成する際に、巡回を行う作業員の作業時間の短縮と平準化が両立可能な巡回経路を生成することができる。
【図面の簡単な説明】
【0010】
【
図1】地域900内に複数の地点300が点在する様子を示す図である。
【
図2】巡回経路生成装置が複数日の巡回経路を生成する様子を示す図である。
【
図3】巡回経路生成装置のハードウェア構成を示す図である。
【
図4】巡回経路生成装置の記憶装置を示す図である。
【
図10】巡回経路生成装置の機能構成を示す図である。
【
図12】巡回経路生成方法の処理の流れを説明するためのフローチャートである。
【
図13】山登り法を説明するためのフローチャートである。
【
図14】シミュレーテッドアニーリング法を説明するためのフローチャートである。
【
図15】スコアの補正(正のスコアバイアスによる補正)を説明するための図である。
【
図16】スコアの補正(負のスコアバイアスによる補正)を説明するための図である。
【
図17】地域900の分割を説明するための図である。
【
図19】巡回経路生成方法の処理の流れを説明するためのフローチャートである。
【
図20】目標時間の更新処理を説明するための図である。
【発明を実施するための形態】
【0011】
本明細書および添付図面の記載により、少なくとも以下の事項が明らかとなる。以下、本発明を実施形態に即して添付図面を参照しつつ説明する。
【0012】
==概要==
図1に、地域900内に複数の地点300(18か所)が点在する様子を示す。本発明の実施形態に係る巡回経路生成装置100は、これらの複数の地点300から選出される少なくとも一部の地点300に対する巡回を、地点300の組み合わせを変えながら複数サイクル行うことにより、複数の地点300に灯油などの物資の補給を行う際の巡回経路を生成する。
【0013】
各地点300にはそれぞれ灯油のタンク(不図示)が設置されており、日々、各地点300を在所とする顧客によって灯油が消費されている。
【0014】
灯油は、随時、各地点300を巡回する作業員によって補充される。作業員は、巡回経路生成装置100によって生成された巡回経路に従って、拠点(
図1で星印で示されている)を出発し、指定された地点300を巡回しながら各地点300のタンクに灯油を補充して拠点に戻ってくる。作業員は、拠点を出発してから戻ってくるまでを1サイクルとして巡回を行う。本実施形態では、作業員は1日あたり1サイクルの巡回を行うが、1日で複数サイクルの巡回を行う態様でもよい。あるいは、巡回を行わない日があってもよい。
【0015】
灯油は、毎回すべての地点300に補充されなければならない訳ではなく、タンク内の在庫量(残量)が少なくなってきた地点300に選択的に補充されればよい。そのため、巡回経路生成装置100は、各地点300の灯油の在庫量と、巡回に要する移動距離と、巡回に要する作業時間と、を考慮して、最適な巡回経路を生成する。ただし、目先の巡回経路の最適化のみに着目して巡回経路を生成してしまうと、後のサイクルで、巡回しなければならない地点300の数が増加し、作業員の大幅な残業が必要になるなどの支障が生ずる可能性もある。
【0016】
そのため、本実施形態に係る巡回経路生成装置100は、巡回経路の生成対象になっている直近のサイクルのみで最適な巡回経路を生成するのではなく、そのサイクルに後続する複数サイクルの巡回経路をそれぞれ生成し、それらのサイクル(初回から最終回までのサイクル)における作業時間が平準化され、かつ、短縮化されるように調整を行った上で、再度、初回から最終回までの巡回経路を生成する。巡回経路生成装置100は、この工程を所定回数(本実施形態では5回)繰り返したのち、求めるべき初回(1日目)の巡回経路を生成して出力する。
【0017】
なお、2日目から最終日(本実施形態では7日目)までのサイクルで計算した巡回経路は、初回の巡回経路を平準化するための試行であるため破棄される。そのため、例えば、1日目から7日目までの巡回経路を計算して求めた1日目の巡回経路に沿って実際に巡回業務を行った後、翌日に2日目のサイクルに相当する巡回経路が必要になった場合は、最新の灯油の在庫予測状況を取り入れた新しい7日間のサイクルで(初日の2日目から8日目に相当するサイクルで)もう一度巡回経路を計算する。このように、巡回経路生成装置100は、常に一定の期間先までの状況を考慮した1日分の巡回経路を計算する。
【0018】
図2には、巡回経路生成装置100が、1日目から7日目までの各サイクルにおける巡回経路を生成する様子が示されている。また
図11には、各サイクルの作業時間が短縮化及び平準化されるように調整した上で生成された1日目の巡回経路が示されている。
【0019】
このような態様により、巡回を行う作業員の労働時間の短縮と平準化が両立可能な巡回経路を生成することが可能となる。
【0020】
なお、地域900内の地点300(
図1の例では18か所)の巡回は、一人の作業員が行う態様でも良いし、地域900を複数(例えば3つ)の小地域910に分割し、小地域910毎に異なる作業員が巡回を担当する態様でも良い(
図17参照)。
【0021】
なお、
図1、
図11及び
図17には、星印で示される作業員の拠点に巡回経路生成装置100が設置される様子が示されているが、巡回経路生成装置100の設置場所は、拠点でなくてもよいし、地域900の外部でもよい。
【0022】
==巡回経路生成装置==
次に、巡回経路生成装置100について説明する。
【0023】
巡回経路生成装置100のハードウェア構成を
図3に示す。巡回経路生成装置100は、CPU(Central Processing Unit)110、メモリ120、通信装置130、記憶装置140、入力装置150、出力装置160、及び記録媒体読取装置170を備えて構成されるコンピュータである。
【0024】
記憶装置140は、CPU110によって実行される巡回経路生成装置制御プログラム700等の各種のプログラムやデータを格納する。
【0025】
記憶装置140に記憶されている巡回経路生成装置制御プログラム700や各種のデータがメモリ120に読み出されてCPU110によって実行あるいは処理されることにより、巡回経路生成装置100の各種機能が実現される。
【0026】
ここで、記憶装置140は例えばハードディスクやSSD(Solid State Drive)、フラッシュメモリ等の不揮発性の記憶装置である。
【0027】
記憶装置140には、
図4に示すように巡回経路生成装置制御プログラム700、訪問地点管理テーブル600、必要度管理テーブル610、作業予定管理テーブル620、作業時間調整テーブル630及びエリア管理テーブル640が記憶されている。
【0028】
記録媒体読取装置170は、CDやDVD、SDカード等の記録媒体800に記録された巡回経路生成装置制御プログラム700やデータを読み取り、記憶装置140に格納する。
【0029】
通信装置130は、ネットワーク500を介して、上記各地点300やその他の地点に設けられる不図示の他のコンピュータと、各種データや巡回経路生成装置制御プログラム700の授受を行うインタフェースである。例えば他のコンピュータに上述した巡回経路生成装置制御プログラム700やデータを格納しておき、巡回経路生成装置100がこのコンピュータから巡回経路生成装置制御プログラム700やデータを取得するようにすることができる。あるいは通信装置130は、作業員が携帯する不図示のスマートフォンやノートパソコン等の携帯端末と通信を行い、種々の情報の授受を行うことも可能である。
【0030】
なおネットワーク500はインターネットやLAN(Local Area Network)、電話網等の各種の情報通信網である。
【0031】
入力装置150は、ユーザによるコマンドやデータの入力を受け付ける各種ボタンやスイッチ、マウス、キーボードなどの装置であり、入力ユーザインタフェースとして機能する。
【0032】
また出力装置160は、例えばディスプレイなどの表示装置、スピーカなどの装置であり、出力ユーザインタフェースとして機能する。
【0033】
<訪問地点管理テーブル>
記憶装置140に記憶される訪問地点管理テーブル600を
図5に示す。訪問地点管理テーブル600は、各地点300を一意に特定するための訪問地点IDと、各地点300の場所を示す情報とを対応付けて記憶したテーブルである。
【0034】
図5に示す例では、各地点300の場所は一例として緯度及び経度で特定されているが、住所で特定される態様でもよい。
【0035】
<必要度管理テーブル>
必要度管理テーブル610を
図6に示す。必要度管理テーブル610は、初回から最終回まで(本実施形態では1日目から7日目まで)の巡回の各サイクルにおける各地点300の巡回の必要度(スコア)を記憶するテーブルである。
図6には、地点Aに関するテーブルが示されている。スコアは、その地点300への巡回を行った方が好ましいほど大きな値になり、各地点300の灯油の在庫予測を元に、後述する巡回経路生成部102によって算出及び補正される。スコアは、例えばタンク容量に対する灯油の残量の比率から算出される。
【0036】
またスコアは、所定の地点300を巡回地点として選出されやすくしたり、あるいは巡回されにくくしたりするために、巡回経路生成部102によって適宜補正される。スコアの補正は、必要度管理テーブル610に記憶されているスコアに、スコアバイアスと呼ばれる補正値を加算あるいは減算することにより行われる。スコアに加算されるスコアバイアスを正のスコアバイアス、スコアから減算されるスコアバイアスを負のスコアバイアスという。このため、スコアに正のスコアバイアスが加算される場合は、その地点300の巡回の必要度が上がり、巡回経路生成装置100はその地点300を巡回地点として選出しやすくなる。反対に、スコアから負のスコアバイアスが減算される場合は、その地点300の巡回の必要度が下がり、巡回経路生成装置100はその地点300を巡回地点として選出しにくくなる。
【0037】
各地点300の灯油の在庫予測は、後述する在庫予測部107によって行われる。在庫予測部107は、例えば各地点300から、通信装置130を介して、灯油の日々の消費量や、タンク内の灯油の残量を随時収集しており、季節や時間帯、曜日、天候等による灯油の消費動向の変化や、各顧客のタンクの容量などを考慮しながら、各顧客の灯油の日々の在庫量の予測値を算出する。また在庫予測部107は、作業員によって灯油の補充が行われると、その地点300の灯油の在庫量(残量)を最大値(タンクの容量)に戻す。また在庫予測には、各地点300への灯油の補充が、1日目から7日目までの各サイクルで行われる場合と行われない場合の全ての態様を仮定した場合の予測が含まれている。
【0038】
必要度管理テーブル610には、1日目から7日目までの各「対象日」について、「給油実績」「地点の状態」「給油量」「スコア」の各情報が記録されている。
【0039】
「給油実績」欄は、対象日より前のサイクルでの給油実績の有無の態様を示すための欄である。「給油実績」の欄は、さらに「1日目」から「6日目」までの各欄を有しており、例えば巡回の1日目に灯油の補充がなされた態様の場合には「1日目」に〇印が記載され、1日目に灯油の補充がなされなかった態様の場合には「1日目」に×印が記載される。
【0040】
「地点の状態」欄は、その地点300に対する巡回の必要性を、「巡回必須」「巡回任意」「巡回不要」の3段階で表した情報が記録される。「巡回必須」は、その地点300は、必ず巡回しなければならない状態であることを表す。「巡回任意」は、その地点300は、巡回してもしなくても良い状態であることを表す。「巡回不要」は、その地点300は、巡回対象外とされる状態であることを表す。「巡回必須」「巡回任意」「巡回不要」の各状態は、後述する地点分類部105によって、スコアあるいは灯油の残量から特定される。
【0041】
「給油量」欄は、その地点300に補充可能な灯油の量を表す。給油量は、灯油のタンク容量と残量との差から算出可能である。給油量がより多い地点300を巡回するほど、巡回の効率は向上する。
【0042】
「スコア」欄は、巡回の必要度が記録される。本実施形態では、地点300の状態が「巡回任意」の場合に、その地点300にどの程度巡回した方が良いのかを示すために、スコアが記録されているが、「巡回必須」や「巡回不要」の状態でもスコアを記録してもよい。
【0043】
図6に示す例で必要度管理テーブル610の記載内容を説明すると、地点Aは、1日目は、スコア=4で「巡回任意」の状態であり、90リットルの灯油を給油可能である。この場合、地点Aは、1日目の巡回経路が生成される際に、巡回地点として選出されるかもしれないし、選出されないかもしれない。
【0044】
また2日目は、もし1日目に灯油の補給が行われなかった場合には、スコア=6に上がり、「巡回任意」の状態であり、220リットルの灯油を給油可能である。一方、1日目に灯油の補給が行われた場合には、2日目は「巡回不要」の状態になり、48リットルの灯油を給油可能である。「巡回不要」の場合、地点Aは巡回地点の選出対象にならない。
【0045】
3日目は、もし1日目と2日目のいずれの日にも灯油の補給が行われなかった場合には、「巡回必須」の状態になり、320リットルの灯油を給油可能である。この場合、地点Aは、3日目の巡回経路において必ず巡回地点として選出される。一方、1日目に灯油の補給が行われた場合には、2日目に続き「巡回不要」の状態であり、84リットルの灯油を給油可能である。この場合、地点Aは、3日目の巡回経路において巡回地点として選出されることはない。また、2日目に灯油の補給が行われた場合には、「巡回不要」の状態となり、30リットルの灯油を給油可能である。この場合も、地点Aは、3日目の巡回経路において巡回地点として選出されることはない。なお、2日目に灯油の補給が行われた場合には、1日目に補充が行われたかどうかに関係なく、同じ状態となる。
図6ではこれを「- 〇」としてまとめて表現している。同様の理由により、4日目の必要度の状態は「× × ×」「〇 × ×」「- 〇 ×」「- - 〇」の4通りで表現できる。
【0046】
<作業予定管理テーブル>
作業予定管理テーブル620を
図7に示す。作業予定管理テーブル620には、灯油の補充を行う作業員の、巡回の初回から最終回までの各サイクル(本実施形態では1日目から7日目)での作業予定時間、すなわち巡回を行う作業員の作業開始予定時刻及び作業終了予定時刻が記載された作業スケジュール情報が記録されている。
【0047】
なお
図7には作業員が一人の場合の例を示しているが、作業員が複数の場合は、
図18に示すように、各作業員の作業予定が記録される。
【0048】
この作業予定時間は、後述する作業時間調整テーブル630に記載されている調整時間と合わせ、巡回経路生成装置100が巡回経路を生成する際の作業時間の目標となる。つまり巡回経路生成装置100は、作業予定管理テーブル620に記録されている作業予定時間と、作業時間調整テーブル630に記載されている調整時間と、の合計時間に作業時間がなるべく近づくように巡回経路を生成する。もちろん、調整時間が0の場合は、巡回経路生成装置100は、作業予定管理テーブル620に記録されている作業予定時間を目標時間として巡回経路を生成する。
【0049】
また作業予定管理テーブル620には、各日の天候等に応じて、作業効率を記録するようにしてもよい。作業効率は、作業員が単位時間あたりに移動可能な移動距離を表し、晴天あるいは曇天の日を1.0として定めたものである。そのため、巡回経路が同じでも、作業効率が0.5の日(例えば雨天あるいは荒天の日)は、作業効率が1.0の日にくらべて作業時間は2倍必要になる。
【0050】
なおこの作業予定及び作業効率の各値は、事前に入力装置150や記録媒体読取装置170あるいは通信装置130、API(Application Programming Interface)等のインタフェースを通じて巡回経路生成装置100に入力される。
【0051】
<作業時間調整テーブル>
作業時間調整テーブル630を
図8に示す。作業時間調整テーブル630には、巡回経路生成装置100が巡回経路を生成する際の目標時間と、作業予定管理テーブル620に記録されている作業予定時間との差分に相当する時間が記録される。
【0052】
つまり、巡回経路生成装置100は、原則として作業予定管理テーブル620に記載されている作業予定時間とのずれがなるべく小さくなるように巡回経路を生成するが、複数サイクルの(1日目から7日目までの)巡回経路の作業時間を調整した結果、日によっては残業を行った方が全体として効率的であると判断できる場合や、早めに作業を切り上げて作業時間を短縮した方が効率的であると判断できる場合などが生じる。
【0053】
そのような場合、巡回経路生成装置100は、作業時間調整テーブル630の調整時間を更新する。例えば30分の残業を行った方が良い場合は、+0.5と記載する。
【0054】
このようにして巡回経路生成装置100は、巡回の各サイクルの目標時間を調整して巡回経路を再計算する。
【0055】
図8に示す例では、1日目に+0.5と記載されているため、1日目は作業時間の目標時間を30分延長することを意味する。また5日目には-1.0と記載されているため、5日目は作業時間の目標時間を60分短縮することを意味する。
【0056】
作業時間調整テーブル630の内容は、後述する巡回経路生成装置100が各サイクルの巡回経路を生成する際に適宜生成及び更新される。
【0057】
<エリア管理テーブル>
エリア管理テーブル640を
図9に示す。エリア管理テーブル640は、全体の地域900を分割してなる各小地域910の識別情報であるエリアIDと、各小地域910内の地点300の識別情報である地点IDと、を対応付けて記憶したテーブルである。
【0058】
図9に示す例では、全体の地域900が3つの小地域910(エリア0、エリア1、エリア2)に分割されており、各小地域910には、それぞれ6つの地点300が含まれていることが示されている。その様子を
図17に示す。
【0059】
この場合、3人の作業員がそれぞれ6つの地点300を分担して巡回することになる。そして巡回経路生成装置100は、小地域910毎に巡回経路を生成する。
【0060】
なお、地域900を分割しない場合には、地域900の全体を1つの小地域910として管理すれば良い。
【0061】
<巡回経路生成装置の機能構成>
次に、巡回経路生成装置100の機能構成について、
図10に示す機能構成図を参照しながら説明する。
【0062】
上述したように、巡回経路生成装置100は、記憶装置140に記憶されている巡回経路生成装置制御プログラム700や各種のデータがメモリ120に読み出されてCPU110によって実行あるいは処理されることにより、巡回経路生成装置100としての各種機能を実現する。
【0063】
具体的には、巡回経路生成装置100は、必要度記憶部101、巡回経路生成部102、巡回遅延可能地点選出部103、目標時間記憶部104、地点分類部105、地域分割部106、在庫予測部107の各機能を有する。
【0064】
在庫予測部107は、例えば各地点300から、通信装置130を介して、灯油の日々の消費量や、タンク内の灯油の残量を随時収集しており、季節や時間帯、曜日、天候等による灯油の消費動向の変化や、各顧客のタンクの容量などを考慮しながら、各顧客の灯油の日々の在庫量の予測値を算出する。また在庫予測部107は、灯油の補充が行われると、その地点300の灯油の在庫量(残量)を最大値(タンクの容量)に戻す。
【0065】
あるいは、在庫予測部107は、通信装置130を使って現在の在庫量を取得せず、過去の消費実績の動向と前回の訪問日から、灯油の消費量の予測を行って日々の在庫量の予測値を算出してもよい。
【0066】
なお、巡回経路生成装置100は在庫予測部107を備えない構成でもよい。この場合、在庫予測部107の機能は不図示の他のコンピュータが有し、巡回経路生成装置100は、このコンピュータから在庫予測の結果を取得するために構築されたAPIを用いて、通信装置130を介して日々の各地点300の灯油の在庫予測を取得する。
【0067】
あるいは、不図示の他のコンピュータが、各地点の灯油の在庫予測を元に、初回から最終回までの巡回の各サイクルにおける各地点の巡回の必要度を示す情報を算出し、この情報を元に必要度管理テーブル610に記録される各情報を求めるようにしてもよい。この場合、巡回経路生成装置100は、このコンピュータから必要度管理テーブル610に記録される各情報を取得するために構築されたAPIを用いて、通信装置130を介して上記各情報を取得し、必要度管理テーブル610に記録する。
【0068】
必要度記憶部101は、地点300毎の灯油の在庫予測を元に算出される、初回から最終回までの巡回の各サイクルにおける各地点300の巡回の必要度(スコア)を記憶する。本実施形態では、必要度記憶部101は、必要度管理テーブル610として具現化されている。
【0069】
巡回遅延可能地点選出部103は、詳細は後述するが、地点300毎の物資の在庫予測を元に、後述する時間超過サイクルに先行する先行サイクルにおいて物資の補給を行わなくても支障がないと見込まれる巡回遅延可能地点を、複数の地点300の中から選出する。
【0070】
目標時間記憶部104は、初回から最終回までの巡回の各サイクルにおける目標時間を記憶する。本実施形態では、目標時間記憶部104は、作業予定管理テーブル620と作業時間調整テーブル630により具現化される。つまり、各サイクルの目標時間は、作業予定管理テーブル620に記憶されている作業予定時間と、作業時間調整テーブル630に記憶されている調整時間との合計である。例えば作業予定時間が8時間で、調整時間が+1.0時間である場合は、目標時間は9時間となる。
【0071】
地点分類部105は、地点300毎の物資の在庫予測を元に、巡回のサイクルごとに、地域900内の複数の地点300を、必ず巡回地点として選出されるべき巡回必須地点と、必ずしも巡回地点として選出されなくて良い巡回任意地点と、に分類する。
【0072】
なお本実施形態では、地点分類部105は、地域900内の複数の地点300を、巡回必須地点と、巡回任意地点と、巡回地点として選出されない巡回不要地点と、に分類する。
【0073】
例えば地点分類部105は、灯油の残量がタンク容量に対して20%以下である地点300を巡回必須地点に分類し、灯油の残量がタンク容量に対して60%以上である地点300を巡回不要地点に分類し、巡回必須地点でも巡回不要地点でもない地点を巡回任意地点に分類する。
【0074】
地域分割部106は、複数の地点300を含む地域900を複数の小地域910に分割する。例えば地域分割部106は、地域900内の各所に点在する複数の地点300を、訪問地点管理テーブル600に記憶されているこれらの地点300の位置情報と、その日に巡回を行う作業員の人数を元に、k平均法等のクラスタリング手法を用いて、地域的にまとまりを持った複数のグループに分類し、各グループ内の地点300が各小地域910に含まれるように、地域900の区割りを行う。k平均法等のクラスタリング手法は公知の技術であるので、説明は省略する。地域分割部106が地域900を3つの小地域910に分割した様子を
図17に示す。
【0075】
巡回経路生成部102は、対象とするサイクル(本実施形態では1日目)の巡回経路を生成する。ただし巡回経路生成部102は、単にそのサイクルの巡回経路を生成するのではなく、後続する複数サイクルの巡回経路も生成して、各サイクルでの作業時間が短縮化及び平準化されるように調整を行った上で、対象とするサイクルの巡回経路を生成する。本実施形態では、巡回経路生成部102は、1日目から7日目までの巡回の各サイクルにおける巡回経路を順に生成して、作業時間が平準化されつつ、短縮化されるように調整を行った上で、再度、初回から最終回までの巡回経路を生成する。巡回経路生成部102は、この工程を所定回数(本実施形態では5回)繰り返したのち、1日目の巡回経路を生成する。
【0076】
なお、上記のサイクル数(7サイクル)や所定回数(5回)は、入力装置150や記録媒体読取装置170あるいは通信装置130、API(Application Programming Interface)等のインタフェースを通じて、設定及び変更が可能に構成されている。
【0077】
巡回経路生成部102は、各サイクルの巡回経路を、所定の経路探索アルゴリズムを用いることで生成する。経路探索アルゴリズムは、山登り法やシミュレーテッドアニーリング法、遺伝的アルゴリズム、タブーサーチなどである。本実施形態では、山登り法またはシミュレーテッドアニーリング法を用いる。
【0078】
巡回経路生成部102は、巡回経路を生成する際には、巡回経路となりうる複数の候補(候補経路)を生成し、これらの候補の中から最善の候補を巡回経路として選出する。
【0079】
巡回経路生成部102は、候補を生成する際には、全ての巡回必須地点を経路に含み、巡回不要地点を含まないように候補経路を生成する。
【0080】
具体的には、巡回経路生成部102は、まず、巡回不要地点を除いた全ての地点300に対して、これらの地点300を所定の順序で(例えばランダムな順序に)並べることにより巡回経路の候補経路(第1候補)を生成する。
【0081】
もちろん、第1候補には、全ての巡回任意地点が含まれていなくても良い。この場合は、巡回経路生成部102は、巡回不要地点を除いた地点300の中から、少なくとも全ての巡回必須地点を含むように(巡回任意地点は、0個以上が含まれていれば良い。巡回任意地点は例えばランダムに選ぶ)複数の地点300を選択した上で、これらの地点300を所定の順序(例えばランダム)で並べることにより巡回経路の第1候補を生成する。
【0082】
その後巡回経路生成部102は、以下の第1処理か、第2処理か、第3処理のいずれかをランダムに選択しながら繰り返し実行することで、複数の候補経路を順次生成する。
【0083】
第1処理は、上記第1候補に含まれる地点300の中から選択(例えばランダムに選択)した2つの地点300の順序を入れ替えることにより第2候補を生成する。
【0084】
第2処理は、上記第1候補に含まれる巡回任意地点から選択(例えばランダムに選択)した地点300を第1候補の巡回経路から削除することにより第2候補を生成する。
【0085】
第3処理は、上記第1候補に含まれない巡回任意地点から選択(例えばランダムに選択)した地点300を第1候補の巡回経路に組み込むことにより第2候補を生成する。
【0086】
なおこの際に、巡回経路生成部102は、新たに地点300を経路に追加することによる経路長の増加量が最小となるようにこの地点300を追加する。たとえば第1候補が「拠点→A→C→D→E→拠点」である場合に、この経路内に「B」を追加して第2候補を生成する場合、A、C、D、Eの前後の任意の位置に挿入可能であるが、それぞれ距離の和「(拠点→Bの距離)+(B→Aの距離)」「(A→B の距離)+(B→C の距離)」「(C→B の距離)+(B→D の距離)」「(D→B の距離)+(B→E の距離)」「(E→B の距離)+(B→拠点の距離)」が最小となる位置に挿入する。
【0087】
その後、巡回経路生成部102は、上記各処理で生成された第2候補を第1候補として再び第1~第3処理のいずれかをランダムに選択しながら、新たに第2候補を生成する処理を繰り返し実行する。
【0088】
このような態様により、巡回不要地点を含まず、かつ、巡回必須地点を必ず含むように、巡回する地点300の数が様々な候補経路を生成することが可能となる。
【0089】
巡回経路生成部102は、これらの各候補経路に対して、巡回の必要度(スコア)がより高い地点が巡回地点として選出される度合いを表す第1指標値と、巡回地点を巡回する巡回経路の経路長を表す第2指標値と、巡回経路の巡回所要時間と所定の目標時間との差を表す第3指標値と、を算出して、これら第1指標値、第2指標値、第3指標値に基づいて、複数の地点300から巡回地点を選出して巡回経路を生成する。
【0090】
具体的には、巡回経路生成部102は、各候補経路について下記の式(1)に示すコストを算出し、コストの値が最小となる候補経路を巡回経路として選出する。
【0091】
コスト=a×第1指標値+b×第2指標値+c×第3指標値
(aは負の重み係数、bは正の重み係数、cは正の重み係数) …(1)
ここで、第1指標値は、下記の式(2)により算出される。
【0092】
第1指標値=Σ経路内の各地点におけるスコア …(2)
第1指標値は候補経路内の地点300のスコアを合計した値であるので、第1指標値が大きいほど、負の重み係数aとの積は小さくなり、巡回経路として選ばれやすくなる。つまり、候補経路内にスコアのより大きな地点300がより多く含まれているほど、巡回経路として選ばれやすくなる。
【0093】
例えば、1日目の巡回経路を求める場合に、1つの候補経路が地点A、B、Cを訪問するものである場合、巡回経路生成部102は、必要度管理テーブル610を参照して、地点A、B、Cのそれぞれの1日目のスコアを読み出し、それらのスコアを合計することで、第1指標値を求める。
【0094】
また例えば、2日目の巡回経路を求める場合には、巡回経路生成部102は、必要度管理テーブル610を参照して、経路候補内の地点が1日目の巡回経路に含まれるか否か(1日目で訪問済みであるか否か)に応じて、各地点のそれぞれの該当する2日目のスコアを読み出し、それらのスコアを合計することで、第1指標値を求める。
【0095】
次に巡回経路生成部102は、以下の式(3)を用いて第2指標値を算出する。
【0096】
第2指標値=Σ経路上で隣り合う2つの地点間の距離 …(3)
第2指標値は、候補経路の経路長(総移動距離)を示す。2つの地点300間の距離は、訪問地点管理テーブル600に記載されている各地点300位置情報から求めることができる。あるいは不図示の地図データを利用して、各地点300間の道路に沿った距離を求めるようにしても良い。第2指標値が大きい程、コストは増大するため、巡回地点として選ばれにくくなる。
【0097】
また第2指標値は、候補経路の経路長そのものとする他、経路長に関する値であれば他の値でも良い。経路長に関する値としては、例えば、作業員の移動速度を用いて移動距離を移動時間に換算することで、候補経路を巡回するために要する巡回時間とすることができる。この場合、作業員の移動速度は、例えば、過去に地点300を巡回した際の巡回経路の経路長と、その巡回経路を作業員が巡回した時に要した時間を利用して計算するか、移動速度に相当する所定の固定値を用いればよい。
【0098】
次に巡回経路生成部102は、以下の式(4A)又は式(4B)を用いて第3指標値を算出する。
【0099】
第3指標値=(巡回所要時間-目標時間)×候補経路に含まれる巡回任意地点の数
(巡回所要時間>目標時間の場合) …(式4A)
第3指標値=(目標時間-巡回所要時間)×候補経路に含まれない巡回任意地点の数
(巡回所要時間≦目標時間の場合) …(式4B)
なお(式4A)は、巡回所要時間>目標時間の場合に用いられる第3指標値の算出式であり、例えば作業員が勤務終了時刻に拠点に戻ってくるように目標時間が定められている場合は、作業員に残業が発生する場合の算出式である。
【0100】
また(式4B)は、巡回所要時間≦目標時間の場合に用いられる第3指標値の算出式である。
【0101】
第3指標値を算出するにあたって、巡回経路生成部102は、作業員が各地点300を巡回して戻ってくるまでの巡回所要時間をシミュレーションする。
【0102】
この巡回所要時間は、各候補経路において、隣り合う地点300間の距離と、作業員の移動速度と、を用いて算出される隣り合う地点300間の移動時間と、各地点300での作業時間と、を経路全体で積算した値を、作業予定管理テーブル620に記録されている作業効率で割ることにより算出することができる。作業員の移動速度や作業時間は、例えば過去の経験から求めた所定値とすればよい。
【0103】
ここで第3指標値について補足すると、例えば、残業が発生するにも関わらず巡回任意地点を巡回している場合は、この巡回任意地点を巡回しないようにすることにより、巡回所要時間を短くできるはずであるから、それを第3指標値によるペナルティとしてコストに加算する。コストへの影響の大きさを係数cで調整している。これにより、残業が発生する場合は、巡回任意地点が少ない候補経路の方がよい経路と認識されて残りやすくなる。
【0104】
逆に、巡回作業が目標時間よりも早く終わるにもかかわらず、巡回していない巡回任意地点が残っている場合は、これらの巡回任意地点を巡回することで作業時間を増やせるはずであるから、巡回していない巡回任意地点の数に比例したペナルティとしてコストに加算する。
【0105】
ただし、第3指標値は、以下の式(5A)、式(5B)を用いて算出しても良い。
【0106】
第3指標値=巡回所要時間-目標時間(巡回所要時間>目標時間の場合)…(5A)
第3指標値=目標時間-巡回所要時間(巡回所要時間≦目標時間の場合)…(5B)
これらの式であっても、第3指標値は、巡回に要する時間が目標時間とずれている場合には、時間差に比例して大きくなるから、式(1)のコストを増大させることになる。
【0107】
あるいは、巡回所要時間≦目標時間の場合に式(4B)や式(5B)に代えて、第3指標値=所定値(例えば0や1等の固定値)としてもよい。この場合は、目標時間よりも短時間で巡回が終了するような候補経路であっても式(1)のコストをほとんど増加させないため、早めに巡回が終了するような経路が選択されやすくなるため、作業員の業務軽減を図ることが可能となる。あるいは、巡回する地点の数が少ないにもかかわらず目標時間が長すぎるような場合に、巡回所要時間を目標時間に近づけるために無理に遠回りをするような巡回経路が生成されないようにすることが可能となる。
【0108】
このようにして、巡回経路生成部102は、1日目から7日目までの巡回の各サイクルにおける巡回経路を順に生成する巡回経路生成処理を実行する。
【0109】
続いて、巡回経路生成部102は、これらの各サイクルにおける作業時間が平準化され、かつ、短縮化されるように調整を行う。
【0110】
つまり、上記の巡回経路生成処理により生成される各サイクルの巡回経路は、いずれも第3指標値が考慮されて生成されているため、原則として巡回所要時間は目標時間にほぼ近くなる。しかしながら、灯油が枯渇寸前の巡回必須地点が一気に増加したような場合には、いくら第3指標値を考慮して巡回任意地点を巡回経路から除外し、巡回経路を巡回必須地点のみで構成したとしても、巡回所要時間が目標時間を大幅に超過することもある。
【0111】
このような場合、巡回経路生成部102は、以下のa)~d)に示すような処理を行うことで、各巡回経路の巡回所要時間が平準化及び短縮化されるように、巡回経路を構成する巡回地点の調整を行う。
【0112】
a)正のスコアバイアスによる調整(補正値の加算によるスコアの補正)
b)負のスコアバイアスによる調整(補正値の減算によるスコアの補正)
c)目標時間の増加による調整
d)目標時間の減少による調整
これらのうちa)及びb)は、スコアを補正することにより巡回地点を調整するものであり、巡回経路生成部102は、いずれかのサイクルにおいて、巡回所要時間が所定の目標時間を超過する時間が第1所定時間以上(例えば30分以上)となる巡回経路が生成された場合には、当該サイクルである時間超過サイクルにおいて巡回地点として選出された所定地点が、当該時間超過サイクルにおいて巡回地点として選出されにくくなるように、必要度管理テーブル610に記憶されているスコアを補正する。
【0113】
具体的には、巡回経路生成部102は、巡回所要時間が目標時間に対して30分以上超過するサイクル(例えば5日目)があった場合には、5日目の巡回経路に含まれる上記所定地点300(たとえば地点A)が5日目の巡回地点として選出されにくくなるように、必要度管理テーブル610に記憶されているスコアを補正する。このようにスコアを補正することで、次回の巡回経路生成処理において生成される5日目の巡回経路において地点Aが巡回地点に含まれないようにできれば、巡回地点の数が減少するので、5日目の巡回所要時間を短縮できる。またその結果、各サイクルの巡回所要時間を平準化することができる。
【0114】
a)正のスコアバイアスによる調整
この場合、巡回経路生成部102は、残業発生日(5日目)に訪問した巡回必須地点(地点A)を、それより前のサイクルに訪問させることを目指して、この巡回必須地点の必要度(スコア)を補正する。
【0115】
具体的には、巡回経路生成部102は、時間超過サイクル(5日目)に先行する先行サイクル(4日目以前)における上記所定地点(地点A)の必要度を第1所定値(正のスコアバイアス)だけ増加させるように補正して、この所定地点が先行サイクルにおいて巡回地点として選出されやくなるようにすることで、この所定地点が時間超過サイクル(5日目)において巡回地点として選出されにくくなるようにする。
【0116】
例えば巡回経路生成部102は、先行サイクルにおける複数の地点300の必要度の中の最大値を第1所定値(正のスコアバイアス)として、この第1所定値を先行サイクルにおける所定地点の必要度に加算することにより、上記所定地点の必要度を増加させるように補正するとよい。
【0117】
図15を参照しながら説明すると、3日目サイクルが時間超過サイクルであるとした場合に、この時間超過サイクルにおいて巡回地点として選出されている地点2と地点5(巡回地点は、
図15において網掛けされている。)を、先行サイクル(2日目サイクル)において巡回地点として選出されやすくするために、2日目サイクルにおける地点2のスコア2に5(第1所定値)を加えて7に更新し、地点5のスコア4にも同様に5(第1所定値)を加えて9に更新する。なお、この時のスコアの増分である5(第1所定値)は、2日目サイクルにおける各地点のスコアの最大値(地点3のスコア5)である。第1所定値は、必要度管理テーブル610を参照することにより取得することができる。このような態様により、時間超過サイクルにおける巡回地点を、先行サイクルにおいて巡回地点として選出されやすくし、その結果、時間超過サイクルにおいて巡回地点として選出されにくくすることが可能になる。
図15に示す例では、地点5の2日目サイクルにおけるスコア(必要度)が上昇(4→9)することにより、地点5を2日目サイクルにおいて巡回地点として選出させることができるようになっている。
【0118】
またさらに、時間超過サイクルにおいて巡回地点として選出されている地点2と地点5を、先行サイクル(1日目サイクル)において巡回地点として選出されやすくするために、1日目サイクルにおける地点2のスコア1に7(第1所定値)を加えて8に更新し、地点5のスコア2にも同様に7(第1所定値)を加えて9に更新してもよい。この時のスコアの増分である7(第1所定値)は、1日目サイクルにおける各地点のスコアの最大値(地点1のスコア10)に係数0.67を乗じた値である。このような態様によっても、時間超過サイクルにおける巡回地点を、先行サイクルにおいて巡回地点として選出されやすくし、時間超過サイクルにおいて巡回地点として選出されにくくすることが可能になる。
【0119】
なお、2日目サイクルでは当該サイクル内の最高スコアを第1所定値とし、1日目サイクルでは当該サイクル内の最高スコアに係数0.67を乗じた値を第1所定値とし、時間超過サイクルに近い先行サイクルほどスコアの増加の程度が大きくなるようにしているが、このような態様により、時間超過サイクルで巡回させたくない所定地点を、時間超過サイクルにより近い先行サイクルで巡回地点として選出されるように誘導できる。これにより、その所定地点への灯油の補給タイミングを遅らせて、灯油の補給量を増大させ、灯油補充の作業効率を向上させることが可能となる。
【0120】
なお、第1所定値は、適宜定めた固定値であってもよい。これにより、スコアの更新処理を簡便にし、巡回経路生成装置100の処理負荷の軽減を図ることができる。
【0121】
b)負のスコアバイアスによる調整
この場合、巡回経路生成部102は、巡回遅延可能地点選出部103によって選出された巡回遅延可能地点(先行サイクルにおいて灯油の補給を行わなくても支障がないと見込まれる地点)の先行サイクルにおける必要度を第2所定値(負のスコアバイアス)だけ減少させることで、この巡回遅延可能地点が先行サイクルにおいて巡回地点として選出されにくくなるようにし、所定地点(上述した地点A)が先行サイクルにおいて相対的に巡回地点として選出されやくなるようにすることで、この所定地点が時間超過サイクルにおいて巡回地点として選出されにくくなるようにする。
【0122】
図16を参照しながら説明すると、2日目サイクルが時間超過サイクルである場合(巡回地点は、
図16において網掛けされている。)、先行サイクルは1日目サイクルになる。また巡回遅延可能地点選出部103は、先行サイクル(1日目サイクル)において地点3と地点4は、残業が発生している2日目サイクルまでに訪問する必要がなく(巡回必須とならないため)、時間超過解消後に訪問してよいため、巡回遅延可能地点であると認定している。この場合、巡回経路生成部102は、1日目サイクルにおける地点3のスコア7から3.5(第2所定値)を引いて(スコアを1/2倍している)3.5に更新し、地点4のスコア2から1(第2所定値)を引いて(スコアを1/2倍している)1に更新する。なお、この時のスコアの減少分は、1日目サイクルにおけるスコアの1/2となる値である。
【0123】
この結果、元々先行サイクル(1日目サイクル)で巡回地点として選ばれていた地点3が、地点4と共に巡回地点として選ばれなくなり、その代わり、時間超過サイクル(2日目サイクル)において巡回地点として選ばれていた地点5の先行サイクル(1日目サイクル)での必要度が相対的に上がり、先行サイクルの巡回地点として選ばれるようになった結果、時間超過サイクルにおける巡回地点を3か所(地点2と地点5と地点6)から2か所(地点2と地点6)に減少させることができている。
【0124】
このような態様により、先行サイクルにおける巡回遅延可能地点が巡回地点として選出されにくくなるようにし、所定地点が先行サイクルにおいて相対的に巡回地点として選出されやくなるようにすることで、この所定地点が時間超過サイクルにおいて巡回地点として選出されにくくすることができる。
【0125】
c)目標時間の増加による調整
また巡回経路生成部102は、上記の所定地点が時間超過サイクルにおいて巡回地点として選出されにくくなるようにするために必要度を補正し得る地点が所定数以下(例えば30%に相当する数以下)である場合のように、上記a)b)に記載した巡回地点の調整だけでは作業時間の超過を吸収しきれない(平準化が困難)場合には、後述する目標時間記憶部104に記憶されている、時間超過サイクルを含む連続する所定個数のサイクルにおける巡回の目標時間をそれぞれ第1目標時間だけ増加させるようにしてもよい。
【0126】
なお、目標時間の増加による調整は、前回の調整で、初回サイクルから最終回サイクルまでの各巡回経路に対して、上記a)、b)による調整を実行して必要度の補正を実施したにもかかわらず、今回の調整ではそれ以上必要度を補正できない状況にある場合に行われる調整である。
【0127】
これは、必要度を補正しうる地点の数が所定数以下となった場合は、もはや、必要度の補正によって作業時間を平準化する余地が少ないため、複数サイクルにわたって目標時間を増加させることで(つまり残業を増やすことで)作業時間の平準化を図るものである。
【0128】
例えば、巡回経路生成部102は、時間超過サイクルの目標時間が9時間であるところ、巡回所要時間が10時間となった場合に、時間超過サイクルと、その1サイクル前の先行サイクルにおける目標時間をそれぞれ0.5時間ずつ増加させる。このような態様によっても、作業時間の平準化を図ることが可能である。
【0129】
なお目標時間は、上述したように、作業予定管理テーブル620に記憶されている作業予定時間と、作業時間調整テーブル630に記憶されている調整時間との合計である。例えば作業予定時間が8時間で、調整時間が+1.0時間である場合は、目標時間は9時間である。そして上記の第1目標時間は、例えば巡回所要時間と目標時間との差を、上記所定個数(目標時間を補正するサイクルの数)で割った値にする。つまり上述したように、時間超過サイクルの目標時間が9時間であるところ、巡回所要時間が10時間となった場合に、時間超過サイクルと、その1サイクル前の先行サイクルにおける目標時間をそれぞれ0.5時間ずつ増加させる。
【0130】
また作業員が複数の場合は、第1目標時間は、巡回所要時間と目標時間との差を全作業員で合計した時間を、目標時間を補正する各サイクルの作業員の延べ人数で割った値となる。例えば
図20に示す例で説明すると、巡回所要時間と目標時間との差の合計が10時間であった場合、1日目サイクル、2日目サイクル、3日目サイクルの3サイクルにおける作業員の延べ人数は5人であるので、第1目標時間は2時間(10時間÷5人)となる。
【0131】
d)目標時間の減少による調整
また巡回経路生成部102は、いずれかのサイクルにおいて、巡回所要時間が目標時間を超過する時間が第1所定時間(例えば30分)よりも短い第2所定時間(例えば10分)以下となる巡回経路が生成され、かつ、当該サイクルである軽負荷サイクルにおける巡回地点のうち、巡回必須地点及び必要度の補正が既になされている巡回任意地点が占める割合が第3所定値以下(例えば30%以下)である場合、すなわち巡回所要時間に余裕がある場合には、後述する目標時間記憶部104に記憶されている、当該軽負荷サイクルにおける巡回の目標時間を第2目標時間(例えば20分)だけ減少させた後、再度、巡回経路生成処理を行うようにしてもよい。
【0132】
このような態様により、巡回所要時間の短縮化を図ることが可能となる。
【0133】
なお、1つの巡回経路に含まれる巡回地点のうち、巡回必須地点及び必要度の補正が既になされている巡回任意地点が占める割合を調整不可能率という。調整不可能率は、下記の式(6)のように表される。
【0134】
調整不可能率=(巡回必須地点数+スコア補正済みの巡回任意地点数)/(巡回経路上の地点数) …(6)
調整不可能率は、巡回経路の性質を表す指標値である。例えば、巡回経路上の地点がすべて巡回必須地点である場合には、調整不可能率は1となり、この巡回経路上の地点のスコアを補正して他のサイクルで巡回させるように誘導することはできない。逆に、巡回経路上の地点がすべて巡回任意地点であり、また、いずれの地点もいまだスコアの補正がなされていない場合には、調整不可能率は0となり、この巡回経路上のいずれの地点も、スコアを補正して他のサイクルで巡回させるように誘導することができる。
【0135】
巡回経路生成部102は、軽負荷サイクルの調整不可能率が30%以下(第3所定値以下)の場合は、この軽負荷サイクルの目標時間を減少させることで、巡回経路上の巡回地点を削減する。このような態様により、巡回所要時間の短縮化を図ることが可能となる。
【0136】
以上述べたようにして、巡回経路生成部102は、巡回経路生成処理により生成した初回のサイクル(1日目)から最終回のサイクル(7日目)までの巡回経路に対してスコアや目標時間を調整する調整処理を実行して、再度、巡回経路生成処理を実行して、初回から最終回までの各サイクルの巡回経路を再度生成する。
【0137】
巡回経路生成部102は、このような巡回経路生成処理と調整処理を所定回数(本実施形態では5回)繰り返す。
【0138】
そしてその後、巡回経路生成部102は、巡回の初回のサイクルに対して、再度、第1指標値と、第2指標値と、第3指標値と、を算出し、第1指標値、第2指標値、及び第3指標値に基づいて、複数の地点300から巡回地点を選出して巡回経路を生成する。このようにして生成された巡回経路の例を
図11に示す。
【0139】
このような態様により、直近だけでなく、その後の一定期間にわたって、巡回を行う作業員の作業時間が短縮化及び平準化された最適な巡回経路を生成することが可能となる。
【0140】
==処理の流れ==
次に、本実施形態に係る巡回経路生成装置100による処理の流れを、
図12~
図14に示すフローチャートを参照しながら説明する。
【0141】
図12において、巡回経路生成装置100は、地域900内の各地点300の1日目から7日目までの各サイクルの灯油の在庫予測の結果を取得する(S1000)。上述したように灯油の在庫予測は、在庫予測部107あるいは不図示の他のコンピュータによって実行される。またこの在庫予測には、各地点300への灯油の補充が、1日目から7日目までの各サイクルで行われる場合と行われない場合の全ての態様についての予測が含まれている。
【0142】
そして巡回経路生成装置100は、各地点300の在庫予測に基づいて、各地点300の状態や給油量、スコアを計算し、必要度管理テーブル610を作成する(S1010)。
【0143】
巡回経路生成装置100は、変数i、jを1に初期化した上で(S1020、S1030)、j日目(jサイクル目)の巡回経路を生成する(S1040)。つまり、巡回経路生成装置100は、jサイクル目の巡回について、複数の地点300の中から巡回の必要度がより高い地点が巡回地点として選出される度合いを表す第1指標値と、巡回地点を巡回する巡回経路の経路長を表す第2指標値と、巡回経路の巡回所要時間と所定の目標時間との差を表す第3指標値と、を算出し、第1指標値、第2指標値、及び第3指標値に基づいて、複数の地点300から巡回地点を選出して巡回経路を生成する。巡回経路の生成は、山登り法あるいはシミュレーテッドアニーリング法により行われるが、詳細は、
図13、
図14を参照しながら後述する。
【0144】
その後、巡回経路生成装置100は、j=7(7日目)であるかを判定し(S1050)、Noである場合はjに1を加算して(S1060)、j日目の巡回経路の生成を行う(S1040)。このようにして巡回経路生成装置100は、初回から最終回までの巡回経路を生成する巡回経路生成処理を実行する。
【0145】
一方、j=7となった場合は、巡回経路生成装置100は、1日目から7日目までの各巡回経路を比較し、各日の巡回作業時間を短縮化及び平準化するために、必要度管理テーブル610のスコアあるいは、作業時間調整テーブル630の調整時間を調整する(S1070)。
【0146】
具体的には、巡回経路生成装置100は、各日の残業時間(すなわち巡回所要時間から目標時間を引いた時間)を下記のように評価することによりスコアあるいは調整時間の調整を行う。
【0147】
巡回経路生成装置100は、残業時間が第2所定時間以下(例えば10分以下)の場合で、経路上の調整不可能率が第3所定値以下(例えば30%以下)の場合は、その日の目標時間を第2目標時間(例えば20分)だけ短縮する。具体的には、作業時間調整テーブル630の調整時間を第2目標時間だけ減少させる。
【0148】
また巡回経路生成装置100は、残業時間が第2所定時間(例えば10分)を超え第1所定時間(例えば30分)未満の場合は、特に調整を行わない。
【0149】
また巡回経路生成装置100は、残業時間が第1所定時間(例えば30分)以上の場合は、まず、前日までに作業時間調整テーブル630に負の調整時間が記録されていれば、0にクリアする。また巡回経路生成装置100は、巡回経路上の巡回必須地点(所定地点)の前日のスコアを第1所定値だけ増加させるように補正する。さらに巡回経路生成装置100は、前日の巡回遅延可能地点のスコアを第2所定値だけ減少させるように補正する。ただし、巡回経路生成装置100は、スコアを増加あるいは減少し得る地点が所定数以下(例えば30%以下)である場合には、残業時間を当日以前の各日に分散させる。つまり、作業時間調整テーブル630に記録されている当日とそれより前の各日の調整時間を、残業時間を分散させる日数で割った時間(第1目標時間)ずつ増加させる(なお上述したように、この処理はiが2以上の場合にのみ実行される)。
【0150】
その後、巡回経路生成装置100は、i=5(5回目)であるかを判定し(S1080)、Noである場合はiに1を加算して(S1090)、S1030に戻る。このようにして巡回経路生成装置100は、巡回経路生成処理を所定回数(5回)繰り返す。
【0151】
一方、i=5となった場合は、巡回経路生成装置100は、1日目の巡回のサイクルに対して、再度、S1040と同様に、山登り法あるいはシミュレーテッドアニーリング法によって巡回経路を生成する(S1100)。
【0152】
このような態様により、1日目だけでなくその後の一定期間にわたって、巡回を行う作業員の作業時間が短縮化及び平準化された最適な巡回経路を生成することが可能となる。
【0153】
続いて、
図13を参照しながら、山登り法によって巡回経路を生成する場合の処理(以下、経路探索処理S1200と称する。)の流れを説明する。
【0154】
まず巡回経路生成装置100は、巡回対象の各地点300を、巡回必須地点と巡回任意地点と巡回不要地点に分類しておく。そして巡回経路生成装置100は、現在経路の初期値を生成する(S1211)。本実施形態では一例として、巡回経路生成装置100は、巡回不要地点を除く全ての地点300(全ての巡回必須地点及び全ての巡回任意地点)が経路に含まれるようにし、順序はランダムに設定することで現在経路の初期値を生成する。また巡回経路生成装置100は、この現在経路を現在経路情報として記録するとともに、巡回経路の暫定解として設定しておく。
【0155】
続いて巡回経路生成装置100は、現在経路について、第1指標値から第3指標値を算出し(S1212)、これらの算出結果から現在経路のコストを求める(S1213)。
【0156】
そして巡回経路生成装置100は、現在経路に基づき次経路を生成する(S1214)。このとき巡回経路生成装置100は、上述した第1処理、第2処理、あるいは第3処理のいずれかをランダムに選んで実行することにより、次経路を生成する。また巡回経路生成装置100は、この次経路を次経路情報として記録しておく。
【0157】
次に巡回経路生成装置100は、次経路について第1指標値から第3指標値を算出し(S1215)、これらの算出結果から次経路のコストを求める(S1216)。
【0158】
そして巡回経路生成装置100は、次経路のコストが現在経路のコストよりも小さいか否かを判定する(S1217)。次経路のコストが現在経路のコストよりも小さい場合(S1217:YES)、巡回経路生成装置100は、次経路を暫定解として設定し直す(S1218)。その後、処理はS1219に進む。一方、次経路のコストが現在経路のコストよりも小さくない場合(S1217:NO)、処理はS1219に進む。
【0159】
S1219では、巡回経路生成装置100は、暫定解のコストが予め設定された閾値以下であるか否かを判定する。暫定解のコストが予め設定された閾値以下である場合(S1219:YES)、巡回経路生成装置100はS1220を実行する。暫定解のコストが予め設定された閾値以下でない場合(S1219:NO)、巡回経路生成装置100は、次経路を現在経路とし、次経路情報を現在経路情報に転記した上で、S1214に戻って処理を続ける。
【0160】
S1220では、巡回経路生成装置100は、暫定解を経路探索結果として記憶する。尚、巡回経路生成装置100は、経路探索結果を出力装置160に適宜出力する。
【0161】
図14は、シミュレーテッドアニーリング法により巡回経路生成装置100が巡回経路を探索する際に行う処理(以下、経路探索処理S1300と称する。)を説明するフローチャートである。以下、
図14を参照しながら経路探索処理S1300について説明する。
【0162】
まず巡回経路生成装置100は、温度Tの初期値を設定する(S1311)。
【0163】
続いて巡回経路生成装置100は、巡回対象の各地点300を、巡回必須地点と巡回任意地点と巡回不要地点に分類する。そして巡回経路生成装置100は、現在経路の初期値を生成する(S1312)。このとき巡回経路生成装置100は、一例として、巡回不要地点を除く全ての地点300(全ての巡回必須地点及び全ての巡回任意地点)が経路に含まれるようにし、順序はランダムに設定することにより、現在経路の初期値を生成する。また巡回経路生成装置100は、この現在経路を現在経路情報として記録するとともに、巡回経路の暫定解として設定しておく。
【0164】
巡回経路生成装置100は、現在経路について第1指標値から第3指標値を算出し(S1313)、これらの算出結果に基づき、現在経路のコストを求める(S1314)。
【0165】
そして巡回経路生成装置100は、現在経路に基づき次経路を生成する(S1315)。このとき巡回経路生成装置100は、上述した第1処理、第2処理、あるいは第3処理のいずれかをランダムに選んで実行することにより、次経路を生成する。また巡回経路生成装置100は、この次経路を次経路情報として記録しておく。
【0166】
続いて、巡回経路生成装置100は、次経路について第1指標値から第3指標値を算出し(S1316)、これらの算出結果に基づき、次経路のコストを求める(S1317)。
【0167】
そして巡回経路生成装置100は、次経路を受理するか否かを判定する(S1318)。上記判定に際し、巡回経路生成装置100は、原則として次経路のコストが現在経路のコストよりも小さい場合に次経路を受理するが、次経路のコストが現在経路のコストより小さくない場合でも(即ち改悪となる場合でも)、温度Tに依存する確率で次経路を受理する。尚、上記の確率としては、例えば、メトロポリス基準が用いられる。このようにすることで、局所最適解に陥りにくくすることができる。巡回経路生成装置100は、次経路を受理すると判定した場合(S1318:受理)、次経路を暫定解として設定し直した上で(S1319)、S1320に処理を進める。一方、次経路を受理しないと判定した場合(S1318:不受理)、巡回経路生成装置100は処理をS1320に進める。
【0168】
S1320では、巡回経路生成装置100は、温度Tを下げるか否かを判定する。巡回経路生成装置100は、例えば、S1315~S1320のループ処理を予め設定された回数以上繰り返された場合に温度Tを下げると判定する。なお、この繰り返し回数を増やすことにより、巡回経路の真の最適解が得られる可能性を向上することができる。逆に、繰り返し回数を減らすことにより、巡回経路の生成処理に要する時間を短縮できる。
【0169】
そのため、例えば、
図12のS1040において巡回経路を生成する場合には、繰り返し回数を少なめにして処理時間の短縮を図り、
図12のS1100において巡回経路を生成する場合には、繰り返し回数を増やし、より最適な巡回経路を生成するようにするとよい。
【0170】
巡回経路生成装置100は、温度Tを下げると判定した場合に(S1320:YES)、温度Tを下げ(S1321)、処理をS1322に進める。例えば、指数型アニーリングの場合、巡回経路生成装置100は、Tt+1=γ・Ttとする(但しγは冷却速度を決定する係数)。一方、巡回経路生成装置100は、温度Tを下げないと判定した場合(S1320:NO)、次経路を現在経路とし、次経路情報を現在経路情報に転記した上で、S1315に戻って処理を続ける。
【0171】
S1322では、巡回経路生成装置100は、暫定解のコストが予め設定された閾値以下であるか否かを判定する。暫定解のコストが予め設定された閾値以下である場合(S1322:YES)、巡回経路生成装置100はS1323を実行する。暫定解のコストが予め設定された閾値以下でない場合(S1322:NO)、巡回経路生成装置100は、次経路を現在経路とし、次経路情報を現在経路情報に転記した上で、S1315に戻って処理を続ける。
【0172】
S1323では、巡回経路生成装置100は、暫定解を経路探索結果として記憶する。尚、巡回経路生成装置100は、経路探索結果を出力装置160に適宜出力する。
【0173】
==他の実施形態==
次に、地域900を複数の小地域910に分割し、各小地域910をそれぞれ異なる作業員が巡回する場合について説明する。
【0174】
地域900が一例として3つの小地域910に分割されている様子を
図17に示す。またこの時のエリア管理テーブル640を
図9に示す。
【0175】
さらに複数の作業員の作業予定を記録する作業予定管理テーブル620を
図18に示す。
図18に示すように、灯油の配達を行う作業員の人数は日によって異なる。そのため、巡回経路生成装置100は、地域900を、その日に作業できる作業員の数の小地域910に分割する。
【0176】
地域900の分割は、地域分割部106によって行われる。地域分割部106は、地域900内の各所に点在する地点300を、訪問地点管理テーブル600に記憶されている地点300の位置情報と、その日の作業員の人数を元に、k平均法等のクラスタリング手法を用いて、地域的にまとまりを持った複数のグループに分類し、各グループ内の地点300が各小地域910に含まれるように、地域900の区割りを行う。k平均法等のクラスタリング手法は公知の技術であるので、説明は省略する。
【0177】
そして巡回経路生成装置100は、初回(例えば1日目)から最終回(例えば7日目)までの各サイクルの巡回経路を、小地域910毎にそれぞれ生成する。
【0178】
図19に、巡回経路生成装置100が複数の小地域910に巡回経路を生成する場合の処理の流れを示すフローチャートを示す。
【0179】
まず巡回経路生成装置100は、変数kを1に初期化した上で(S2000)、k日目(kサイクル目)の小地域910を決定する(S2010)。つまり巡回経路生成装置100は、地域900を、その日の作業員の人数に応じた数の小地域910に分割する。
【0180】
その後、巡回経路生成装置100は、k=7(7回目)であるかを判定し(S2020)、Noである場合はkに1を加算して(S2030)、S2010に戻る。このようにして巡回経路生成装置100は、初回から最終回までのサイクル毎に、地域900を小地域910に分割する。
【0181】
一方、k=7となった場合は、巡回経路生成装置100は、
図12に示した巡回経路の生成処理を開始する。なお、この巡回経路の生成処理は小地域910毎に行われる。
【0182】
このようにして、巡回経路生成装置100は、作業員が複数の場合であっても、各作業員の作業時間が短縮化及び平準化されるように最適な巡回経路を生成することが可能となる。このようにして生成された巡回経路の例を
図17に示す。
【0183】
以上説明したように、本実施形態に係る巡回経路生成装置100及び巡回経路生成方法及びプログラムによれば、複数の地点300から選出される少なくとも一部の地点300に対する巡回を、地点の組み合わせを変えながら複数サイクル行うことにより、複数の地点300に物資の補給を行う際の巡回経路を生成する際に、巡回を行う作業員の作業時間の短縮と平準化が両立可能な巡回経路を生成することが可能となる。
【0184】
なお上述した実施の形態は本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明はその趣旨を逸脱することなく変更、改良され得るとともに、本発明にはその等価物も含まれる。
【0185】
例えば、作業員が各地点300に配達する物資は灯油に限らず、例えば機械や工場、店舗、自動販売機で消費される様々な材料や商品、さらには農業用給水タンクで消費される水などでもよい。農業用給水タンクに対する巡回経路を生成する場合は、巡回経路生成装置100は、例えば各農業用給水タンクから残水量を収集するようにすればよい。
【符号の説明】
【0186】
100 巡回経路生成装置
101 必要度記憶部
102 巡回経路生成部
103 巡回遅延可能地点選出部
104 目標時間記憶部
105 地点分類部
106 地域分割部
110 CPU
120 メモリ
130 通信装置
140 記憶装置
150 入力装置
160 出力装置
170 記録媒体読取装置
300 地点
500 ネットワーク
600 訪問地点管理テーブル
610 必要度管理テーブル
620 作業予定管理テーブル
630 作業時間調整テーブル
640 エリア管理テーブル
700 巡回経路生成装置制御プログラム
800 記録媒体
900 地域
910 小地域