以下、本発明の一実施形態を添付図面に基づいて説明する。
図1は、本発明の第1の実施形態を示し、訪問計画作成装置の一構成例を示すブロック図である。訪問計画作成装置101は、キーボードやマウスなど操作者による入力を受ける入力装置102と、ディスプレイやプリンタなどの出力装置103と、演算を行うCPU(プロセッサ)104と、演算に用いるメモリ105と、ハードディスクなどの記憶装置106を含む計算機で構成される。
記憶装置106には、移動コスト入力部111と、候補日一覧入力部112と、付与日数入力部113と、担当許容量入力部117と、業務量入力部118と、最適化処理部114と、日程付与部115と、候補日程出力部116と、クラスタリング部119と、移動コスト計算部120と、地点情報入力部121などを格納している。これらの各機能部位から訪問計画装置が構成され、各機能部位はプログラムで構成されており必要に応じてメモリ105に読み出され、CPU104で実行される。また、図示はしないが、メモリ105にはOSがロードされてCPU104により実行される。
移動コスト入力部111は、保健指導を行う保健師(または指導者)が事業所に訪問する際のコストを移動コストデータとして入力する。候補日一覧入力部112は、保健師が事業所を訪問する候補日を入力する。付与日数入力部113は、訪問先の一事業所あたりに付与する候補日の数を入力する。担当許容量入力部117は、保健師が1日あたりに働くことができる時間を入力する。業務量入力部118は、指導を行う訪問先で必要とする保健師の人数と指導時間を入力する。地点情報入力部121は、訪問先の事業所の位置情報を入力する。クラスタリング部119は、複数の事業所をクラスタ単位にまとめるクラスタリングを行う。移動コスト計算部120は作成したクラスタ間の距離を計算する。最適化処理部114は、各クラスタを順番に訪問した場合の経路だけでなく、クラスタに付与する候補日の数から1を引いた値だけクラスタ番号が離れたクラスタ間の移動コストについても合計し、最短となる順番を求める。日程付与部115は、最適化処理部114が求めたクラスタの順序から移動コストの合計が最小になる場合に、クラスタ単位で保健師が訪問する候補日を付与し、候補日程出力部116により訪問先の事業所と候補日を出力する。なお、上記各部の詳細については後述する。
図2は、本発明の訪問計画作成装置101において、移動コスト入力部111から入力する移動コストデータの一例を示す図である。移動コストデータは、本実施形態では、保健指導の訪問先である事業所の所在地を一つの地点として、各事業所間の移動に要するコストを表現したデータである。移動のコストとは、地点間の距離やその移動に要する時間が考えられるが、ここでは、事業所間の移動時間とする。201は移動元の事業所の番号、202は移動先の事業所の番号を示し、それぞれの交差する点は、移動元事業所から移動先事業所までの移動時間が記録されている。入力装置102を介して移動コスト入力部111から入力された移動コストデータは記憶装置106またはメモリ105に保持される。
図3は、本発明の訪問計画作成装置101において、候補日一覧入力部112から入力する、候補日一覧データの一例を示す図である。候補日一覧データは、事業所を訪問する候補日の番号301と、候補日302が記録されている。候補日302には、今回の訪問計画の作成において、計画立案を行う日程として候補日302を列挙して、候補日302に候補番号301を付与しておく。本実施形態では、候補日302の総数が7の例を以下に示す。入力装置102を介して候補日一覧入力部112から入力された候補日一覧データは記憶装置106またはメモリ105に保持される。
図4は、本発明の訪問計画作成装置101において、業務量入力部118から入力する、業務量データの一例を示す図である。業務量データは、各事業所を訪問したときに必要な業務量が記録されたデータで、本実施形態では、事業所を示す地点番号401と、事業所毎の指導人数402、その事業所で指導人数の指導を行った場合の指導時間403が記録されている。入力装置102を介して業務量入力部118から入力された業務量データは記憶装置106またはメモリ105に保持される。
図5は、本発明の訪問計画作成装置101において、業務許容量入力部117から入力する、指導者が1日あたりに働くことができる時間を示す許容量データの一例を示す図である。訪問する指導者を識別する担当者番号501と、当該指導者が1日当たりに働く時間(分)を示す許容時間502が記録されている。入力装置102を介して業務許容量入力部117から入力された許容量データは記憶装置106またはメモリ105に保持される。
図6は、本発明の訪問計画作成装置101において、候補日程出力部116が出力装置103に出力する地点番号601と候補日602〜604の一覧を示す図である。各事業所の番号を示す地点番号601に対して、複数の候補日602〜604が付与された結果を示している。
次に、図7に示すフローチャートを用いて本発明の訪問計画作成装置101で行われる処理の一例について説明する。図7のフローチャートは、入力装置102から管理者(またはユーザ)が訪問計画の作成を指令したときに実行される。
訪問計画作成装置101のCPU104は、まずデータ入力ステップ701で、必要なデータの入力を行う。移動コスト入力部111が図2に示した事業所間の移動時間に関する移動コストデータを入力し、候補日一覧入力部112が図3に示した候補日の一覧データを入力し、業務量入力部118が図4に示した事業所訪問時の指導人数や指導時間を示した業務量データを入力し、担当許容量入力部117が図5に示した指導者1日あたりに働くことができる時間を示す許容量データを入力する。また、付与日数入力部113では、一つの事業所あたりに付与する候補日の数を入力する。本実施形態では各事業所に3日ずつの候補日を付与するように、キーボード等の入力装置102から“3”を入力するものとする。
次に、地点クラスタリングステップ702では、クラスタリング部119が、複数の事業所のクラスタリングを行う。本実施形態では、図5の許容量データから、担当者番号501=1の指導者(以下、指導者1とする)の業務について考える。指導者1は、許容時間502が300分である。そこで、図4の業務量データ事業所毎の指導時間403と図2の移動コストデータの事業所間の移動時間が300分以内に収まるように、複数の事業所をまとめていく。例えば、移動時間を示す図2の移動コストデータが近い複数の事業所を一つのクラスタにまとめ、指導時間403と移動コストデータの合計が、300分以内の範囲でクラスタを作る。
クラスタの数は、候補日の総数(以下、候補日総数)が7日、ひとつの事業所に付与する候補日の数(以下、付与候補日数)が3であるので、7から3−1を引いた5個のクラスタを作るものとする。すなわち、
クラスタの数 = 候補日総数−(付与候補日数−1)
となる。
また、図19で示すように、クラスタの識別子と事業所の識別子である図2の地点番号の関連付けを定義する対応表を作成しておく。この対応表は、クラスタ管理テーブルとして記憶装置106またはメモリ105に保持される。クラスタ管理テーブルは、クラスタ番号1901と、各クラスタに所属する地点番号1902と、各クラスタに所属する事業所を訪問する指導人数1903と、各クラスタに割り当てられて指導者の指導時間の総和を格納する指導時間1904で構成される。なお、クラスタ管理テーブルは、地点番号に代わって事業所番号を格納するようにしても良い。クラスタリングステップ702の詳細な処理については後述する。
次に、クラスタ間距離計算ステップ703で、移動コスト計算部120において、作成したクラスタ間の距離を計算する。図19で示したように、一つのクラスタには、複数の事業所が含まれているので、ここでは、一つ目のクラスタに含まれる事業所と、2つ目の事業所に含まれる事業所の間の移動コストの平均値を、クラスタ間の移動コストとする。作成した移動コストデータは、図2で示したデータと同様の形式のデータとなる。図2では、各行、列が事業所を示していたが、ここでは、行、列は各々クラスタを示すことになる。また、図4の業務量データについても、クラスタ内に属する事業所を訪問する指導人数402と、指導時間403を合計して、クラスタ毎の業務量データを作成し、図19のクラスタ管理テーブルの指導人数1903と指導時間1904へ格納しておく。
次に、最適化処理ステップ704で、最適化処理部114において、クラスタ単位の訪問の順番について最適化処理を行う。最適化処理部114では、クラスタ間の移動コストデータと付与日数入力部113から入力された付与日数の情報を用いて、各クラスタを巡回した場合の順番を決定する。
クラスタの順番は、クラスタの順番で移動した場合の各クラスタ間の移動コストを集計した値と、あるクラスタと付与日数から1を引いた数だけ前の順番のクラスタとの間の移動コストを全てのクラスタ間について集計した値の合計が最小となる順番を求める。下記の式1から式3は、この最適化を行う問題を表現した式の一例である。式1から式3において、xijはi番目に地点jに行くことを示し、cjkは地点jと地点kの間を移動する場合の移動コストを示す。
式1は、最小化する移動コストの合計Zの式を示し、1番目の項は、n個(ここでは5個)のクラスタを順番に移動する場合の移動コストの合計である。また、2番目の項は、あるクラスタと、付与候補日数から1を引いた数だけ前の順番のクラスタの移動コストの合計を示し、ここでは、付与する候補日数が3なので、順番の3番目から1番目、4番目から2番目、5番目から3番目の移動コストを合計したものとなる。
式2は一つの順番には一つのクラスタのみに行くこと、式3は一つのクラスタには1回だけ行くことを示す条件式である。このように、順番に移動した場合の移動時間、および、付与する候補日の数から1を引いた数だけ離れた区間の移動時間を合計した値が、最小になるクラスタの順番を求める。最適化処理(最適化処理部114)のより具体的な処理の流れについては、別途後述する。
次に、日程付与ステップ705では、日程付与部115において、訪問先の事業所に対して候補日を付与する。日程付与部115は、最適化処理ステップ704で求めたクラスタの順番を元に、図3の候補日一覧データから、付与日数3日ずつ付与する。例えば、最適化処理ステップ704の出力として、クラスタの順序で5−1−4−2−3の順番が最も移動コストの合計が最小になる場合、クラスタ5に対して、候補日一覧データの候補日番号1から3を、次のクラスタ1に対して候補日一覧データの候補日番号2から4を、クラスタ4に対して候補日番号3から5を、クラスタ2に対して候補日番号4から6を、クラスタ3に対して候補日番号5から7の候補日を、というように、候補日番号を1日ずつずらして候補日を付与する。そして、クラスタリングステップ702で作成したクラスタと事業所のクラスタ管理テーブルを用い、各クラスタに属する事業所に対して、クラスタに付与された候補日を付与する。そして、候補日程出力部116から、図6に示すような事業所毎の候補日の表を出力する。候補日程出力部116は、出力装置103に図6を表示する。
候補日程出力部116で出力された候補日を各事業所に送付して、各事業所の希望候補日を選択してもらう。そして、各事業所からの回答を得て最終的な候補日を決定する。
以上の処理手順により、各事業所に対して、3日ずつの候補日を付与することができる。このとき、最適化処理部114が、各クラスタを順番に訪問した場合の経路だけでなく、候補日を付与する候補日数から1を引いた数だけクラスタ番号が離れたクラスタ間の移動コストについても合計し、クラスタ間の距離が最短となる順番を求める。そして、日程付与部115がクラスタの順番に1日ずつすらして候補日を付与していく。これにより、候補日が重なる可能性があるクラスタ間の距離を短くすることができる効果がある。特に、事業所やクラスタを平面に分散している場合、経路の順番を最短化するだけでなく、付与候補日数から1引いた数離れたクラスタ間の距離を考慮することで、候補日が重なるクラスタ間の距離を短くすることができる。
さらに、クラスタリング部119において、複数の事業所を、1日分の作業量の範囲でまとめてからクラスタにしてから、最適化処理部114と日程付与部115で候補日を付与する。これにより、距離が近いクラスタは一つの地点として扱うことができるので、最適化処理の組み合わせ計算の数を減らすことができる。また、希望を聞くための候補日を作成するだけなので、考慮する必要がない、1日の中でどの順番に巡回するか、ということを計算せずに最適化処理を行うことができる。
これにより、本発明の保険指導計画支援装置101は、訪問先の事業所に対して複数の候補日を候補日程として提示することができ、且つ、事業所の回答が候補日程の中でばらついた場合でも、候補日が重なる事業所間の距離を短くできるため、効率よく事業所を訪問し、保健指導を行うことができる候補日を作成できる。
次に、近隣事業所をまとめるクラスタリングの処理手順について、図8のフローチャートを用いて詳細に説明する。図8は、クラスタリングステップ702において、クラスタリング部119が行う、近隣事業所をまとめるクラスタリングの処理手順の一例を示すフローチャートである。
まず、候補日一覧入力部112で取得した候補日の日数から、クラスタ数を上述のように計算する(801)。図3の候補日一覧のデータは7日間分の候補日を持つものとする。また、付与日数入力部113から、入力された付与候補日数は3である。そこで、付与候補日数3から1を引いた2を候補日の数7から引いた、5をクラスタの数とする。
次に、移動コスト入力部111から入力した図2の移動コストデータから、移動コストの最小値を求め、最小の移動コストとなる2つの地点を選択する(802)。図2に示す移動コストデータの対角線より上のデータのみを探索するものとした場合、最小値は10であり、ここでは、地点番号1と2を選択したものとする。
そして、選択した2つの地点が、これまで作成したクラスタに含まれるか否かを判定する(803)。ここでは、まだクラスタは作られていないのでどちらの地点(地点番号1、2)もクラスタには含まれない。そこで、ステップ805を処理し、業務量入力部118で取得した図4の業務量データから、2つの地点の指導時間403と、2つの地点間の移動コストを合計し、2つの地点の事業所を1日で指導する場合の作業時間を計算する。ここでは、地点番号1の事業所の指導時間403の90分と地点番号2の指導時間403の60分と、移動コストとして所定値の10を足して160分が2つの地点における作業(指導)時間となる。
次に、許容量データ入力部117で入力した値で保健師が1日当たりに働くことができる時間を示す許容時間502と、上記計算した2つの地点における1日分の作業時間を比較する(806)。ここでは、担当者番号1の場合のみ考慮するものとし、許容時間の300分と、上記2つの地点における1日の作業時間160分とを比較する。2地点の作業時間よりも許容時間が小さい場合は、これら2つの地点の事業所をひとりの指導者が1日で指導できるので、上記地点番号1,2の事業所を一つのクラスタにまとめて、図19のクラスタ管理テーブルにクラスタとして登録する(807)。一方、上記2つの地点で計算した作業時間が、許容量データよりも大きい場合は、これらの2つの地点をひとりの指導者によって1日で指導することができないので、クラスタにまとめない。ここでは、1日の作業時間160分が、許容時間300分よりも小さいので、一つのクラスタにまとめる。
次に、移動コストデータの中から、今回の処理で選択した移動コストを対象から除く(808)ここでは、地点番号1と地点番号2の移動コストを対象から外すため、これらのデータを削除するか、あるいは予め設定した大きな値(99999など)を入れておく。そして、終了条件に一致するかを判断し、終了条件に一致しない場合は、802のステップから繰り返す(809)。
終了条件を満足していない場合には、802のステップに戻って、図2に示した移動コストデータの最小値が15の地点番号2と地点番号3を選択する。このとき、803のステップで、地点番号2は、地点番号1とのクラスタが形成されているので、804のステップで図4の業務量データから作業時間を計算する。作業時間は、地点番号1と地点番号2の作業時間90分と60分と移動コスト10分に、地点番号3の作業時間90分と地点番号2と地点番号3の移動コスト15を加えた265分となる。
以上のような処理を繰り返すことで、複数の地点番号(または事業所番号)を一つのクラスタにまとめてクラスタを形成していく。また、ステップ809の終了条件としては、全ての移動コストデータを検索した、または、移動コストデータの最小値が許容時間を越えた、作成したクラスタ数がステップ801で計算したクラスタ数以下になった、などの予め設定した条件を満足したときに終了する。また、作成したクラスタ数が、ステップ801で計算したクラスタ数よりも大きい場合は、クラスタ内の地点番号の指導人数402の合計が大きい方から、必要なクラスタの数だけ取ることでクラスタを作ることができる。
以上に示したように、本発明の訪問計画作成装置101は、近隣の複数の事業所をまとめたクラスタを作成する。これにより、後の最適化処理において、距離が近い事業所同士をまとめたクラスタを一つの地点として扱うことができるので、組合せ計算の数を減らすことができる効果がある。また、事業所間の移動コストと、指導に要する時間を合計して、指導者の許容時間以内となるクラスタを作成することで、指導と移動を含めた作業時間が1日の業務に収まるようなクラスタを作成することができる。
次に、図7の最適化処理ステップ704で行われる最適化処理部114が行う最適化処理について説明する。図9は最適化処理の具体的な処理の流れの一例を示すフローチャートである。最適化の具体的な処理については、幾つか方法があるが、ここでは、総当りで解を探索する方法を示す。
まず、クラスタの順序に関する初期の順列を作成する(901)。図19において、クラスタ番号1901が1から5まである場合は、例えば1、2、3、4、5のクラスタ番号の昇順でソートしたものを初期値とする。
次に、上記初期値の順列の順に移動コストデータを合計する(902)。ここでは、初期値のクラスタ番号の順列が1、2、3、4、5なので、クラスタ1から2への移動コスト、クラスタ2から3への移動コストというように、クラスタ1−2間、2−3間、3−4間、4−5間の移動コストデータを合計していく。この移動コストデータを合計することが上記式1の1番目の項に相当し、ここでは、移動コストデータの合計を移動コスト計aとする。
次に、上記初期値の順列のi+付与候補日数−1番目のクラスタからi番目のクラスタへの移動コストを合計する(903)。ここでは、付与候補日数は3なので、クラスタ3−1間、4−2間、5−3間の移動コストデータを合計する。この移動コストデータの合計が上記式1の2番目の項に相当し、ここでは、これを移動コスト計bとする。ただし、iは1からクラスタ数−(付与候補日数−1)まで演算を行う。
次に、この移動コスト計aとbの和について、これまでに求めた移動コスト計aとbの和の最小値(最小時間)と比較し(904)、これまでの最小値より小さければ、移動コスト最小の順列として、順列と移動コストデータを登録する(905)。この時点では、最小値は存在しないので、この値を最小値として登録する。
そして、全ての順列について比較するまで(906)、次々と順列を作成して繰り返す(907)。907のステップでは、次の順列は、例えば1、2、3、5、4として、次の計算をし、902から907を繰り返して、全ての順列の中で、クラスタ間の移動コストの合計と、付与候補日数−1だけ順列中の順番がはなれたクラスタの間の移動コストの合計の和が最小になる順列を求める。
以上の処理により、隣り合うクラスタ間の移動コストと、付与候補日数−1だけ離れたクラスタ間の移動コストの合計が最小になるクラスタの順列を作ることができる。これにより、候補日を付与する処理において、付与する候補日が重複するクラスタ間の移動コストを小さくすることができる。
上述の説明では、総当りで移動コストデータの合計が最小となる順列を求めているが、実際は、クラスタ数に応じて処理時間が長くなるのに対応して、高速化の工夫を行う。具体的には、不要な順列に対する評価を省略する分枝限定法を用いる方法、また、遺伝的アルゴリズムなどに代表される公知または周知の最適化手法を用いて所定の時間内、または、所定の繰り返し回数内での最小値を求める方法などを適用する方法もある。これらの手法を導入することにより、処理を高速化することができる。
次に、本発明の訪問計画作成装置101の表示画面について説明する。図10(A)〜(D)は、本発明の訪問計画作成装置101において、候補日程出力部116が出力装置103のディスプレイ上に表示する画面の一例を示す図である。図10は、4つの画面を示しており、処理の進行に応じて変化するものとする。
また、図11は、地点情報入力部121から入力する事業所の情報の一例を示す図で、地点番号1101と、その地点の事業所のID1102、その地点の事業所の名称1103、住所1104と、その地点のX座標1105、Y座標1106などの情報を持つ。X座標1105、Y座標1106の位置は、事業所を代表する地点(中心や入り口位置など)の座標で、例えば地図情報処理などで用いられる平面直角座標系の座標を用いて表現する。住所情報と緯度経度や座標との対応関係については、国土交通省の公開情報や、各種地図ソフトなどを用いて別途対応させておく。
図10(A)において、画面1001は、事業所の位置情報を、画面上に表示したもので、ここでは、事業所1011を、地点番号1から21までの21個の例を表示している。図10(A)は、候補日付与の処理を始める前の段階の状態を示している。事業所の表示位置は、図11のX座標、Y座標などに基づいて表示する。
次に、図10(B)の画面1002は、クラスタリング部119において行われた、近隣の事業所同士をクラスタリングした結果を表示した例である。地点番号1から3の事業所1011を一つのクラスタ1021として、クラスタに番号1を付与している。これを全ての地点番号に適用して、各事業所が各々7つのクラスタに分割された様子を表示している。
次の図10(C)に示す画面1003は、最適化処理部114においてクラスタに付与する候補日の順序を決定した結果を表示した例である。図中クラスタ1〜7内に表示した丸数字1〜7のクラスタ1021対して、最適化処理によって決定した日程付与順序1031と、その順番を示す矢印1032及び移動コストデータの合計で考慮した距離1033を示している。
また、図10(D)に示す画面1004は、候補日程付与部116によって、クラスタ1021の順番1031に付与した候補日1041を表示した例である。
以上に示したように、本発明の訪問計画作成装置101は、事業所位置(地点番号)と、事業所をまとめたクラスタ位置と、そのクラスタに対して求めた候補日を付与する順序と、各クラスタに対して付与した候補日などを表示する。これにより、訪問計画作成装置101の利用者は、訪問予定の事業所がまとめられたクラスタの位置と、また、それぞれのクラスタに候補日を付与する順番と、事業所に付与された候補日などを、分かりやすく参照することができる。
また、上述の実施形態では、クラスタを作成する方法として、最短距離の事業所のペアからクラスタにまとめていく方法を示したが、他の方法を用いても良い。例えば、候補日の数が決まっている場合は、候補日の数だけ、ランダムに事業所を選択し、選択した事業所を中心として周囲の事業所とクラスタを作成し、クラスタ内の事業所の移動と指導が1日の業務に収まるようにしつつ、全事業所がクラスタに収まるように、あるいは、指導の人数が多くなるように、中心となる事業所を移動しながらクラスタを作成しても良い。前述の方法では、近接する事業所を中心に離れた事業所が周囲に存在するような場合、近い事業所同士のクラスタの他は離れた事業所が孤立してしまう可能性があるが、この方法を用いると孤立した事業所を減らして地域全体を幾つかのクラスタに分割することができる。
また、上述の実施形態では、クラスタ間の移動距離計算のステップ703では、クラスタに属する事業所間の距離の平均を用いる方法を例として説明したが、他の方法を用いても良い。クラスタの重心間の移動コストを計算する方法、クラスタ間で一番近い事業所間の移動コストを用いる方法、または、クラスタ間で一番遠い事業所間の移動コストを用いる方法などがある。クラスタを作成したときに、これらの計算を行い、クラスタ同士について、図2のような移動コストデータを作成する。
<第2実施形態>
次に、本発明の第2の実施の形態について、健診情報等を利用した事業所の選定から、事業所の希望に基づいた最終的な訪問の候補日の生成までの流れの一例について説明する。
図12は、本発明の第2実施形態の訪問計画作成装置2101の構成の一例を示すブロック図である。前記第1実施形態の図1の構成に対して、過去に実施した健診や指導の対象となる人の健診情報を入力する健診情報入力部1301と、過去の保健指導の内容や結果を入力する指導情報入力部1302と、健診情報や指導情報の個人の所属事業所など属性情報を入力する個人属性情報入力部1303と、健診情報や指導情報を基に事業所別の指導の優先度を算出する優先度計算部1304と、事業所からの指導の希望候補日を入力する希望日程入力部1305と、事業所の希望候補日を反映させた確定日程を生成する訪問日程作成部1210を加えたもので、その他の構成は前記第1実施形態と同様である。
図13は、健診情報入力部1301で入力する健診情報1201の一例を示す図である。健診の1回分を識別する健診ID1410と、個人を識別する個人ID1401と、健診の受診日1402と、受診時の年齢1403と、腹囲1404と、最低血圧1405と、最高血圧1406と、血糖値1407と、中性脂肪1408など、検査の結果や問診の結果などが記録されている。なお、入力された健診情報は記憶装置106またはメモリ105に保持される。
図15は、指導情報入力部1302で入力する指導情報1202の一例を示す図である。個人を識別する個人ID1501と、指導内容を示すプログラムID1502と、指導に入る判断を行った健診を示す導入判定健診ID1503と、指導の開始日1504と、指導の終了日1505と、指導の結果、改善した(1)か、改善できなかった(0)かを示す指導結果1506などが記録されている。なお、入力された指導情報は記憶装置106またはメモリ105に保持される。
図16は、個人属性情報入力部1303で入力する個人属性情報1214の一例を示す図である。個人を識別する個人ID1601と、氏名1602と、性別1603と、個人が所属する事業所のID1604などが記録されている。なお、入力された個人属性情報は記憶装置106またはメモリ105に保持される。
図14は、本発明の訪問計画作成装置2101の全体の処理の流れの一例を示す図である。健診情報1201は図13の健診情報が記録されたデータであり、指導情報1202は図15の指導情報が記録されたデータであり、個人属性情報1214は図16の個人属性情報が記録されたデータである。指導者勤務予定1204は保健指導を行う指導者のスケジュールから求めた図5の許容量データである。事業所情報1205は図11に示した事業所の座標などの位置を示すデータである。候補日一覧1213は、図3に示した候補日一覧データである。
訪問計画作成装置2101は、健診情報1201と、指導情報1202と、個人属性情報1214を用いて優先的に指導する事業所の優先度を計算する優先度計算部1304を含む。そして、訪問計画作成装置2101は、指導者の勤務予定1204と、事業所情報1205と、候補日一覧1213を用いて、事業所毎に保健指導に訪問する候補日の生成を行う訪問日程作成部1206を含む。なお、訪問日程作成部1206は、図12の移動コスト入力部〜移動コスト計算部120の各部に相当する。
訪問計画作成装置2101は、事業所に対する候補日の通知1207を出力し、事業所1208に送付または送信する。事業所1208では、受け付けた通知1207に対して指導者の訪問を受け入れられる希望候補日を回答1209を返信する。
訪問計画作成装置2101は、事業所からの回答1209を入力し、事業所の希望を基にした訪問候補日の生成を行う訪問日程作成部1210を含む。そして、訪問日程作成部1210が、最終的な訪問日程1211を出力する。
図17は、優先度計算部1304の処理の具体的な手順の一例を示すフローチャートである。事業所の優先度の付け方には幾つか考えられるが、ここでは、過去の健診情報、指導情報から、指導によって改善する可能性が高い人に高い優先度をつける事業所の選定方法について示す。
まず、ステップ1701では、優先度計算部1304が健診情報入力部1301と、指導情報入力部1302と、個人属性情報入力部1303から、図13に示した健診情報1201と、図15に示した指導情報1202と、図16に示した個人属性情報1214を取得する。このとき、健診情報1201は過去の5年分、指導情報1202は過去4年分を取得する。ここでは、過去分として、受診日1402と指導開始日1504が2007年以前のものを取得する。
次に、ステップ1702では、優先度計算部1304が上記取得した指導情報1202と健診情報1201をつき合わせて指導を受けた人のデータを取り出し、健診の検査項目と、指導結果との関連を分析して、指導結果に関連する項目を抽出する。
具体的には、指導情報1202の導入判定健診ID1503と、健診情報1201の健診ID1410が同じ健診情報を取り出し、年齢1403、腹囲1404、最低血圧1405、最高血圧1406、血糖値1407、中性脂肪1408などの検査値と、指導結果1506の改善1/非改善0との関係を分析する。指導結果1506の1、0毎に検査値の平均値を求め、平均値に違いがあるものを指導結果に関連する項目とする。平均値の差はT検定などにより差の有無を検定する。また、検査値だけでなく、個人ID1401が同じで受診日1402が前年の健診との検査値の差や変化率なども対象とする。ここでは、腹囲、血糖値の前年からの変化率などが指導結果に関連する項目として抽出されたものとする。
次に、ステップ1703では、優先度計算部1304が上記ステップ1702で抽出した検査項目と指導結果を回帰分析して優先度モデルを作成する。優先度モデルは、腹囲1404と血糖値1407の前年からの変化率を説明変数とし、指導結果1506の改善1、非改善0の値を目的変数として回帰分析を行い、指導結果を推定する回帰式を作成してモデルとする。
次に、ステップ1704では、選定の対象となる健診情報を取得する1704。ここでは、今回の選定の対象は、2008年の8月に健診を受けた人として、受診日1402が2008年8月の人を抽出する。
次に、ステップ1705では、上記ステップ1703で作成した優先度モデルに最新(または直近)の2008年8月の健診情報を適用して、個人の毎の優先度を計算する。ここでは、健診ID1410が0801から0804の腹囲データ1404と、健診ID1410が0701と0801、0702と0802、0803と0703、0804と0704の血糖値1407の変化率を、上記回帰式に代入して、指導結果の推定値を求める。指導結果の推定値は、改善と推定される場合は1に近い値、非改善と推定される場合は0に近い値が得られるので、これを優先度とする。
次に、ステップ1706では、上記ステップ1704で個人毎に求めた優先度を事業所毎に集計し、事業所毎の優先度を求める。この集計は、事業所に属する個人の優先度を合計した値や、合計値を事業所に属する人数で割った値などを用いる。
次に図14の訪問日程作成部1206では、優先度計算部1304による事業所の優先度の算出に続いて、事業所の希望を問い合わせる訪問日程の生成を行う。ここでは、所定の前処理の後、前記第1実施形態に示した図7、図8、図9に示したフローチャートで、候補日程の生成を行う。前処理としては、優先度計算部1304での事業所優先度の算出で対象となった事業所の事業所情報1205から、前記第1実施形態の図2に示した移動コストデータと、図4に示す業務量データを作成する処理を行う。
図2の移動コストデータは、本第2実施形態では、事業所間の直線距離から求めた移動時間とし、各々の事業所のX座標1105、Y座標1106から、事業所間の直線距離を求め、そこに移動時間に関する定数として、1kmあたり2分として距離から時間を求める方法とする。座標からの距離の計算方法については、国土地理院が公開している方法を用いることで計算できる。また、別途地図ソフトなどを用いて、事業所間の移動距離、移動時間を求めても良い。これらの方法で移動コストデータを作成することができる。また、前記第1実施形態に示した図4の業務量データは、優先度計算部1304での事業所優先度の算出の処理で、事業所毎の指導対象者の人数が集計されているので、ここでは、一人当たりの指導時間を30分として、指導時間403を計算する。
さらに、前記第1実施形態に示した図8のクラスタリングの処理の説明では、作成したクラスタ数が、前記第1実施形態の図8のステップ801で計算したクラスタ数よりも大きい場合に、クラスタ内の地点の指導人数402の合計が大きいクラスタから採用する方法について説明したが、ここでは、クラスタに属する事業所の優先度の合計が大きいクラスタから採用する方法を取る。これにより、改善の可能性の高いクラスタから指導を行うことができる。
次に、図14の訪問日程生成部1210の処理について説明する。図18は、訪問日程生成部1210で行われる処理の一例を示し、事業所の希望日程を受け付けて最終的な訪問日程を生成する処理のフローチャートの一例を示す図である。
まず、訪問日程生成部1210は、ステップ1801で日程生成の対象とする事業所について、事業所毎の希望日(事業所が選択した候補日)と、事業所毎の業務量と、事業所間の移動コストデータを取得し、さらに、候補日を取得する。事業所毎の希望日は、事業所から得られた回答1209を、キーボードなどの入力装置102を用いて、希望日程入力部1305から入力する。事業所毎の業務量は図4に示したデータで、事業所間の移動コストは図2に示したデータである。これらのデータは、各々、前述の候補日の生成1206の前処理で作成している。また、候補日の一覧は、前記第1実施形態の図3に示したデータで、候補日一覧1213から取得する。
次に、ステップ1802では、事業所の訪問順序に関する初期の順列を作成する1802。例えば、事業所が1から10まである場合は、地点番号の1、2、3、4、5、6、7、8、9、10という順列を最初の順列とする。
次に、ステップ1803では、候補日番号dを1、事業所の地点番号の順列の縦列内の番号jを1として初期化する。候補日番号dは、前記第1実施形態の図3に示した候補日番号301とする。
次に、ステップ1804では、候補日番号dの候補日の業務時間として、j番目の事業所とj−1番目の事業所の移動コストと、事業所jにおける指導時間を加算する1804。ここでは、j−1は0であるので、移動コストデータを無視し、1番目の事業所(地点番号1)の事業所の指導時間(403)90分を加える。
そして、ステップ1805では、候補日番号dの候補日の業務時間が、指導担当者の許容時間より大きいか否かを判定する。候補日番号1の業務時間はここでは90分で、指導担当者の許容時間502は、ここでは300分なので、事業所の番号jを1加算するステップ1812に進み、上記ステップ1804から処理を繰り返す。
ステップ1804では、図2の移動コストデータから、事業所の地点番号2と地点番号1の間の移動コスト10と、図4に示した業務量データから地点番号2の指導時間60を加算し、例えば、図3に示した候補日番号1の業務時間は90+10+60で160分となる。
ステップ1805では、候補日番号dの業務時間が担当指導者の許容時間よりも大きいか否かを判定し、大きければステップ1806に進み、等しいまたは小さい場合にはステップ1812へ進む。上記ステップ1804の加算結果は、まだステップ1805では担当指導者の許容時間300分より小さいので、さらにステップ1812、1804を繰り返す。そして、ステップ1805の判定で候補日番号dの業務時間が許容時間300より大きくなったときには、ステップ1806に進んで候補日番号dの業務時間を、事業所jの分を加算する前の状態として、候補日番号dを次の候補日とする。
そして、ステップ1807では、全ての候補日を計算したか、または、全ての事業所について計算したか否かを判断する1807。ここでは、まだ、次の事業所と候補日があるものとして、候補日番号dを2として、上記ステップ1804から1806を繰り返す。
候補日の全ての候補日について事業所の順番を割り当てたか、全ての事業所の候補日の割当が完了した場合、次のステップ1808に進む。
ステップ1808では、全候補日の移動コストの合計と、希望候補日を外れた事業所数、優先度の合計などを計算する。全候補日の移動コストの合計は、各候補日において、1日の間に事業所間を移動する移動コストの、全候補日での合計である。また、希望候補日を外れた事業所数は、前述の順列の順番に候補日を前から割り当てた結果、各事業所に割り当てられた候補日と、1801で取得した事業所毎の希望日が異なる事業所の数を数えて求める。また、優先度の合計は優先度計算部1304で求めた事業所の優先度を、候補日が割り当てられた事業所について合計した値である。また、指導人数の合計は、候補日が割り当てられた事業所の指導人数402の合計である。
次に、ステップ1809では、全候補日の移動コストデータの合計が、既に求めた移動コストデータの合計値の最小値より小さく、かつ、希望日を外れた事業所数が、既に求めた希望日を外れた事務所数の最小値より小さく、かつ、優先度の合計が最大値より大きいか、または、指導人数の合計が最大値より大きいか、の判定を行なう。これらの条件を満たせば適合状態が高いと判定してステップ1810へ進み、満足しない場合にはステップ1811へ進む。そして、上記ステップ1809の全ての条件を満足する場合、ステップ1810で、選択した順列に基づく候補日を解の候補日として保存する。ステップ1809の条件は、各々スコア化して組合せ合計するなどで評価しても良い。
次に、ステップ1811では、事業所の順列について全ての順列について比較したか否かを判定する。ここでは、まだ、地点番号の1、2、3、・・・、10の順列しか実施していないので、次に、1、3、2、・・・、10というように別の順列を作成して1813、1803のステップから、1810のステップを繰り返す。このようにして、全ての順列について比較したら処理を終了する。
ここで、ステップ1809において、複数のパラメータを比較している。例えば、事業所数が多くすべての事業所を回ることが困難な場合、優先度の合計や指導人数の合計が大きいものを採用することで、指導による効果が期待できる事業所、より多くの人を指導できる事業所を回る候補日が作成できる。また、事業所数が少なく、候補日が余る場合は、移動コストの合計が小さいものを採用することで、事業所間の移動の時間を最小にした候補日を作成できる。また、希望候補日を外れた事業所数を最小にすることで、複数の事業所からの希望候補日を反映した候補日を作成できる。
以上に示したように、健診情報1201や指導情報1202等に基づいて個人毎の改善の可能性から事業所単位の優先度を求め、この優先度に応じて候補日を割り当てることで、全体としての指導の効率、効果を高めることができる。また、事業所に複数の候補日を提示し、その回答(希望候補日)を受け付けて、優先度の合計や指導人数の合計、また、移動コストや希望候補日を見ながら候補日を作成することで、事業所の希望候補日を反映しつつ、効率的な訪問予定日を作成することができる。
また、上記第2の実施形態では、全候補日の移動コストの合計、希望候補日を外れた事業所数、優先度の合計の、それぞれ最大値や最小値となるものを解とする場合を例に説明したが、他の方法を用いてもよい。例えば、それぞれの条件をスコア化して全て、または一部を合計し、そのスコアが最大または最小となるようにすることもできる。このようにすることで、矛盾する条件下でも解を得ることができる。また、それぞれの条件に重要度に応じて重みをつけて、合計するようにしてもよい。事業所の希望を重視するか、優先度を重視するかなど、訪問計画を立てる時点で、計画を立てる人が重視する条件を優先した計画を作成することができる。
また、クラスタを作成するときの処理として、以下のような処理を加えても良い。例えば、ある事業所の業務量データにおいて、指導人数402が20人や100人などと大きい場合は、特例の事業所として例外事業所として提示しても良い。また、このような場合は指導時間403が許容量データの許容時間502より大きいので、一つの事業所を、指導時間403が許容時間502に収まるような数に分割して、分割した一つ一つを事業・クラスタとして扱ってもよい。このようにすることで、規模の大きな事業所について複数の指導日を割り当てることができる。
また、ある事業所について、他の全ての事業所との移動コストが大きく許容時間502を超える場合、候補日を重複させても移動が困難なので、孤立事業所として別扱いとしても良い。その場合、この事業所に対しては、1日分の候補日を提示し、他の事業所と、候補日から1日除いた日程を用いて、これまで述べた処理を行うようにしても良い。他の事業所と同日に訪問することが困難な事業所については、同じ候補日に重複することを避けることができる。
また、上記各実施形態では、クラスタリングの処理を行ってから、最適化処理を行う方法について示したが、クラスタを作る処理と、順番を決める最適化処理とを同時に行うようにしても良い。例えば、クラスタの分割について複数のパターンを作成し、最適化処理において、クラスタのパターン毎に最適化処理を行い、さらにそのクラスタのパターンの間で、最も移動コストが小さいクラスタのパターンと訪問順番の組合せを求める方法を用いることもできる。このようにすることで、クラスタの分割方法と、候補日の作成の両方を最適にすることができる効果がある。特に、事業所の数が候補日の数に比べて多く、全ての事業所を訪問することが困難な場合などにおいて、優先度と事業所間の移動コストの両方の観点から候補日を生成することができる。
また、上記各実施形態では、訪問する指導者が1人の場合を例に説明したが、複数の指導者が訪問するようにしてもよい。例えば、図5のように、担当者番号501が1、2、3と複数存在するが、1日あたりの許容時間は、許容時間502の300、200、120を合計した620を用いるようにしても良い。また、別の方法として、指導者の人数分、クラスタリングと最適化処理を行うようにしても良い。この場合、一人目の指導者の許容時間502を用いて図7に示すように、クラスタリング702から最適化処理704、候補日の付与705まで行った後、既に候補日を付与した事業所を除いたデータを用い、2人目の許容時間502を用いて図7の処理を行う、というように、指導担当者の人数分繰り返す方法を用いても良い。この方法では、一人当たりの許容時間の違いに対応して候補日を作成することができる。また、ここまで示した実施形態では、許容時間は1日あたりの勤務の時間を用いる方法を示したが、候補日に対する勤務予定から求めた1日毎の勤務時間を、候補日別の許容時間としてもよい。この場合、クラスタリングや最適化処理については、指導担当者の勤務が予定されている日のみを候補日の中から抜き出し、その平均の勤務時間を許容時間として用いてもよい。また、事業所の希望に基づく訪問日程生成部1210では、候補日別の勤務予定を許容時間とすることで、各訪問日毎の指導担当者の勤務時間に応じて訪問予定日を作成することができる。
また、上記各実施形態では、健診情報や指導情報を事業所の優先度の算出に用いる方法について示したが、別の活用をしてもよい。例えば、図4に示した業務量データは、指導一人当たり30分というように固定していたが、健診の結果が比較的良くない人がいる場合には、指導時間を長くして、比較的軽い人が多い場合には指導時間を短くして、事業所毎の指導時間を計算するようにしても良い。また、指導の実績から、前年の指導の結果に改善が見られた人については指導時間を短くし、前年の指導結果が良くない人については指導時間を長くする方法もある。また、事業所毎に、以前に指導に訪問した実績がある事業所は時間を短く、指導に訪問した実績が無い事業所は時間を長く取るなどの方法を取っても良い。このように、健診情報や指導情報に基づいて、指導時間を調整することで、最適化処理において事業所に重み付けをすることができる。
また、上記各実施形態では、最適化処理において総当り的に解を求める方法について説明したが、事業所の数やクラスタの数が多い場合には、現実的な時間では困難となる場合がある。そのような場合には、他の方法を用いても良い。例えば、予め処理時間や繰り返し回数を指定しておき、その中で最小の値を解とするようにしても良い。また、焼きなまし法や遺伝的アルゴリズムなどの手法を用いて解を探索してもよい。繰り返し回数や処理時間の制限などの条件を用いて、その中での最小値となる候補日を解とすることで、事業所数やクラスタ数が多い場合でも、実際に処理可能な時間の中で処理を行うことができる。
また、クラスタリングの処理や、事業所の希望に応じた候補日を生成する処理においても、高速化の手法を取り入れても良い。高速化の手法を加えることで、処理時間や繰り返し回数の条件を設定し、その範囲内で最小となるクラスタ区分や候補日を解とすることで、現実的な時間で処理可能となる。
また、上記の各実施形態では、式1が最小になるクラスタの順列を求める方法を例に説明したが、別の式を用いてもよい。例えば、式4は、式1の第2項の計算の順番を変えたものである。式1では、i+付与候補日数−1番目のクラスタからi番目のクラスタへの移動コストを合計していたが、この場合は、i番目のクラスタからi+付与候補日数−1番目のクラスタへの移動コストを合計する場合の式である。行きと帰りの移動コストが同じ場合は同じ結果が得られる。また、最適化処理で行うクラスタの順列は一般の順列を用いていたが、円順列の考え方を用いるようにしても良い。この場合は、式1や式4の変わりに式5の結果を最小とする順列を求めるようにする。式5では、第1項、第2項は式4と同じで、第3項は、順列の最後尾のクラスタと先頭のクラスタの移動コスト、さらに、第4項は、順列の後ろから先頭で、付与候補日数−1はなれたクラスタ間の移動コストを計算している。例えば、クラスタリング部119による、クラスタ数の計算ステップ801において、クラスタ数を候補日数と同数とする。例えば、候補日が5日の場合には、クラスタ数を5とする。さらに、最適化処理部114の処理を示す図9の説明では、1、2、3、4、5という順列の場合、902のステップでは、クラスタ1と2の移動コストからクラスタ4と5の移動コストまでの各地点間の移動コストを合計していたが、さらに、順列の最後尾と先頭の間の移動コストであるクラスタ5と1の移動コストを合計する。また、903のステップでは、第2項では、クラスタ1から3、クラスタ2から4、クラスタ3から5のみを合計していたが、さらに、クラスタ4から1、クラスタ5から2の移動コストを合計する。その上で、移動コストが最小となる順列を求めるようにする。そして、日程付与部115による候補日を付与するステップ705では、1日ずつずらしながら候補日を付与するとき、順列の1番目のクラスタに候補日番号1から3の候補日、2番目のクラスタに候補日番号2から4の候補日、3番目のクラスタに候補日番号3から5の候補日、4番目のクラスタに候補日番号4、5、1、5番目のクラスタに候補日番号5、1、2と、循環するように候補日を付与する。このようにすることで、クラスタ数と候補日の数を同数とすることができ、候補日の無駄を省くことができる。さらに、円順列とすることで、順列の数を減らすことができ、組合せ計算の繰り返し数を減らすことで、計算負荷を軽減することができる。
また、上記実施形態では、訪問保健指導を例に説明したが、営業担当者の訪問計画など他の利用場面にも応用することができる。地域の中に存在する地点の家庭や企業などの団体や個人に対して、複数の候補日を提示して希望日を聞いた上で訪問計画を作成するような場合において、本発明の訪問計画作成装置は、近隣の地点をクラスタ化し、候補日の数のクラスタ同士が近くなるように順番を決めて、その順番に1日ずつずらして候補日を付与することで、効率的な訪問を行うことができる候補日の作成、及び、効率的な実際の訪問の候補日を作成することができる。