(58)【調査した分野】(Int.Cl.,DB名)
前記複数の技能としての第一技能及び第二技能を有する作業員に、前記特定の業務日の業務の割当てが終了すると、前記特定の業務日において前記業務割当対象となる前記第一技能を有する作業員の数、及び前記第二技能を有する作業員の数のそれぞれから一を減算する、
ことを特徴とする請求項1に記載の業務割当装置。
前記制御部は、前記特定の業務日における前記業務割当対象となる作業員の業務時間を、当該作業員の総移動時間、総作業時間、及び休憩時間を加算した時間として求め、当該休憩時間は、取得することが必須である必須取得時間、及び任意に取得ができる任意取得時間を含み、
前記作業員が終点地に到着する時刻が、予め規定された業務の終了時刻よリも遅い場合、前記終了時刻以前に前記終点地に到着するように前記任意取得時間を短くする、
ことを特徴とする請求項1に記載の業務割当装置。
前記制御部は、前記業務の実施の依頼を、当該業務の実施希望日及びその業務を実施する作業員の指名と共に受け付けると、前記暫定的な業務の割当ての解除を禁止する最適化ロック情報を付与し、
前記依頼が有った業務を前記作業員が実施するために必要な作業時間を算出し、
前記作業時間を用いて前記直後滞在地到着時刻を算出し、
前記直後滞在地到着時刻が、前記直後滞在地制約時刻以前であれば、前記作業員に前記依頼があった業務を暫定的に割当てて前記業務の実施依頼を受け付け、
前記割当対象業務を割当てる処理に際しては、前記最適化ロック情報が付与されていない暫定的な業務についてのみ、その暫定的な割り当てを解除し、前記割当対象業務を、移動時間を加味して割当てる処理を実行する、
ことを特徴とする請求項1乃至6のいずれか一つに記載の業務割当装置。
前記業務の実施の依頼を、当該業務の実施希望日及びその業務を実施する作業員の指名と共に受け付けると、前記暫定的な業務の割当ての解除を禁止する最適化ロック情報を付与し、
前記依頼があった業務を実施するために必要な技能を有する全作業員から、前記優先度に従って作業員を抽出し、
前記依頼が有った業務を前記作業員が実施するために必要な作業時間を算出し、
前記作業時間を用いて前記直後滞在地到着時刻を算出し、
前記直後滞在地到着時刻が、前記直後滞在地制約時刻以前であれば、前記作業員に前記依頼があった業務を暫定的に割当てて前記業務の実施依頼を受け付け、
前記割当対象業務を割当てる処理に際しては、前記最適化ロック情報が付与されていない暫定的な業務についてのみ、その暫定的な業務の割当てを解除し、前記割当対象業務を、移動時間を加味して割当てる処理を更にコンピュータに実行させることを特徴とする請求項8に記載の業務割当プログラム。
【発明を実施するための形態】
【0025】
以下、図面を参照して、本発明の実施形態を詳細に説明する。本実施形態では、建築物の検査の予約受付及び検査員の予定表(検査予定表という)の作成を行う予定表生成システムに本発明に係る業務割当装置を適用した例を挙げて説明する。そして、以下の説明では業務を「検査」といい、その検査を実施する作業員を「検査員」という。更に、ある検査を実施するために必要な技能を「資格」という。また、1回の予約内容を「案件」と呼び、一つの案件に複数の検査が含まれることがある。
【0026】
図1は、本実施形態に係る予定表生成システムの概要を示す図である。
図1に示すように、本実施形態に係る予定表生成システム1は、建物検査を行う検査会社において、検査予定表を生成する予定表生成装置10と、検査会社に対して検査依頼を行う顧客が操作する予約端末40とが、インターネットなどの公衆回線網(ネットワーク)30を介して有線又は無線接続されて構成される。更に、本実施形態では検査会社に属する各検査員が操作する携帯端末21と、公衆回線網30に接続された基地局31とが、無線接続される。そして、予定表生成装置10から携帯端末21に対し、その携帯端末21を使用する検査員の予定表が送信され、携帯端末21の画面に表示される。
【0027】
予定表生成装置10は、一般的なサーバやPC(Personal Computer)等の情報処理装置と同様の構成に加えて、生成した帳票を出力するための出力装置を有する。即ち、本実施形態に係る予定表生成装置10は、CPU(Central Processing Unit)11、RAM(Random Access Memory)12、記憶装置13、ネットワークI/F(InterFace)14、出入力I/F15がバス16を介して接続されている。
【0028】
CPU11は演算手段であり、予定表生成装置10全体の動作を制御する。RAM12は、情報の高速な読み書きが可能な揮発性の記憶媒体であり、CPU11が情報を処理する際の作業領域として用いられる。
【0029】
記憶装置13には、ROM(Read Only Memory)及びHDD(Hard Disk Drive)が含まれる。ROMは、読み出し専用の不揮発性記憶媒体である。また、HDDは、情報の読み書きが可能な不揮発性の記憶媒体であり、OS(Operating System)や各種の制御プログラム、アプリケーション・プログラム等が格納されている。更にHDDには、本実施形態において特徴的な検査員マスター、検査員カレンダー、及び検査員割当表が格納されるとともに、これらのデータを参照して、検査を自動割当するとともに、それに基づく帳票を生成する業務割当プログラムが格納される。上記の各種データ及び業務割当プログラムの詳細については後述する。
【0030】
ネットワークI/F14は、バス16を介して各種のハードウェアと公衆回線網(ネットワーク)30とを接続し制御する。
【0031】
出入力I/F15は、バス16を介して各種のハードウェアと、入力装置17、モニタ18、及びプリンタ19とを接続し制御する。入力装置17は、キーボードやマウス等、ユーザが予定表生成装置10に情報を入力するためのユーザインターフェースである。モニタ18は、LCD(Liquid Crystal Display)などの装置を用いて構成され、ユーザが予定表生成装置10の状態やそれが生成した帳票を確認するための視覚的ユーザインターフェースである。プリンタ19は、予定表生成装置10が生成した帳票を紙媒体に印刷する出力装置である。モニタ18及びプリンタ19は、携帯端末21と同様、予定表生成装置10が生成した帳票の出力先となる。
【0032】
このようなハードウェア構成において、ROMやHDD若しくは図示しない光学ディスク等の記録媒体に格納された業務割当プログラムがRAM12に読み出され、CPU11の制御に従って動作することにより、ソフトウェア制御部が構成される。このようにして構成されたソフトウェア制御部と、ハードウェアとの組み合わせによって、本実施形態に係る予定表生成装置10の機能を実現する機能ブロックが構成される。
【0033】
次に
図2に基づいて、予定表生成装置10の機能ブロックについて説明する。
図2は、予定表生成装置の機能ブロックを示すブロック図である。予定表作成装置10は、データ記憶部107、帳票出力部108、及び制御部110を含む。制御部110は、予約受付部101、移動時間算出部102、作業時間算出部103、空人数カレンダー生成部104、仮割当処理部105、及び最適化処理部106を含む。
【0034】
予約受付部101は、予約端末40から案件の予約内容を含む検査予約情報を受け付けると、その案件に対応できる検査員がいるか否かを判断し、判断結果を予約端末40に返信する。更に、予約受付部101は、予約された案件に対応できると判断した検査員に当該案件の仮割当を行う。ここでいう「案件」とは、ある建物への1回の訪問機会で行う1つ又は複数の検査を総称したものである。例えば、1つの案件に検査aのみを含む場合と、検査種別が異なる複数の検査、例えば検査a及び検査bを含む場合と、がある。また「割当て」とは、検査予約情報の受付時に移動時間及び作業時間を基に、検査員に空きがあるか否かを判断し、空きがあると判断した場合に、その検査員を当該案件の担当者として暫定的に割当てることをいう。ここでの割当ては、後述する最適化処理の際に一旦解除される。そして、改めて移動時間が最短になるように業務の割当処理を行い、実際に当該案件を担当する検査員を決定する。このように、業務を実際に担当する検査員に割当てる処理を「本割当処理」という。後述する「最適化処理」とは、業務の本割当処理を行うことをいう。
【0035】
移動時間算出部102は、検査員が異なる二点間を移動する際の移動時間、及び到着時刻を算出する。移動時間算出部102は、下式(1)に示すように、一方の地点(以下「出発地」という)、他方の地点(以下「到着地」という)、及び移動手段を変数として移動時間を算出する。
【0036】
移動時間=f(出発地、到着地,移動手段)・・・(1)
式(1)における出発地、到着地は、移動時間算出部102が後述する検査員マスターに登録された出発地、終点地、及び検査予約情報に含まれる物件所在地を基に算出する。また移動手段として公共交通機関が選択されているときには、移動時間算出部102は、出発地、到着地の各住所を基にそれぞれの最寄駅を探索し、移動時間が最短となるルートを検索する。ルートの検索条件、すなわち、式(1)の変数に移動費用を含め、移動費用が最安となる条件でルートを検索し、移動時間を算出してもよい。また、移動手段として車両が選択されている場合には、出発地、到着地の各住所を基に自動車ルートを検索し、その移動時間を算出してもよい。
【0037】
作業時間算出部103は、各案件に含まれる検査単位で、その検査を実施する際の所要時間を作業時間として算出する。作業時間は、検査の種別、検査の対象物件の構造、用途、延床面積などによって異なる。そこで、作業時間算出部103は、下式(2)に示すように、検査の種別毎に、構造、用途、延床面積を変数とする作業時間算出関数を予め備えておく。そして、各案件に含まれる検査の種別に応じた関数を選択し、それに対象物件の構造、用途、延床面積をあてはめて作業時間を算出する。
【0038】
作業時間=g
a(x、y、z)・・・(2)
但し、
g
a:検査種別が検査aであるときの作業時間算出関数
x:対象物件の構造
y:用途
z:延床面積
変数x、y、zは一例であって、変数の種類及び数はこれらに限定されない。
【0039】
1つの案件に複数の検査、例えば検査a及び検査bが含まれる場合には、各検査に対応した作業時間算出関数を選択し、検査毎に作業時間を算出する。そして、検査aについての作業時間及び検査bについての作業時間を加算して、当該案件についての総作業時間を算出する。なお、作業時間の算出に際して、加算は一例にすぎず、作業時間が最長のものを選択したり、各種計算式や条件を付けることもできる。
【0040】
更に、同一の検査であっても、検査員の熟練度や、検査員の随伴者の有無によって作業時間は異なる。そこで、作業時間の長短に関与する検査員の属性を、作業係数として予め規定しておき、これを用いて作業時間を算出してもよい。この場合の作業時間算出関数は式(3)と表せる。
【0041】
作業時間=g
a(x、y、z)×α・・・(3)
但し、
g
a:検査種別が検査aであるときの作業時間算出関数
x:対象物件の構造
y:用途
z:延床面積
α:検査員毎に定められた作業係数
ここでいう作業係数αとは、検査員の熟練度やその検査員の随伴者の有無を勘案して決められる係数である。作業係数の値は、モデル検査員の熟練度を1.0と想定し、熟練度がそれよりも高い検査員の場合は、同一作業をより短時間で行うことが可能となるので、作業係数を1.0よりも低く設定する。一方、熟練度がモデル検査員よりも低い検査員は、作業係数を1.0よりも高い値に設定する。更に、検査員に随伴者がある場合、例えば、当該検査員には必ず補助者、例えば、研修中の検査員や運転手など、単独では作業を行わず、作業係数が一定以上の者と行動を共にする者が同伴する場合には、同伴者が検査時の補助業務を行うことで、検査員が単独で検査を実施する場合に比べてより短時間で行うことが可能となる。そのため、作業係数を1.0よりも低い値を用いて設定する。
【0042】
作業係数αは、作業員単位で設定してもよいし、さらに細かく、各作業員の検査単位で細分化して設定してもよい。例えば、検査員甲は、業務年数が比較的長いことから検査員単位で0.7と設定してもよい。また、検査aについては熟練度が相対的に高いので0.7、検査bについてはモデル検査員と同程度であるので1.0と設定してもよい。
【0043】
空人数カレンダー生成部104は、予約端末40から受け付けた検査依頼情報を基に、所定期間内の各日毎に検査依頼情報に含まれる検査を行える検査員の空人数を示す一覧表(以下「空人数カレンダー」という)を生成する。
【0044】
仮割当処理部105は、予約端末40から検査予約を受け付けると、検査依頼情報に含まれる検査日時に予定が入っていない検査員に対し、検査を割当てる処理を行う。ここでの検査の割当ては当該検査の暫定的なものであり、後日、後述する最適化処理を行うことで、各検査を実際に行う検査員に割当てる。
【0045】
最適化処理部106は、ある業務日において仮割当された全案件を、各検査員単位の業務時間が最短となり、その結果検査会社全体としての業務時間が最短となるように、再度の割当処理(本割当処理)を行う。ここでいう「業務時間」とは、総移動時間及び総作業時間を加算した時間を意味する。
【0046】
検査員単位の業務時間は、最適化処理の対象となる日において、各検査員が業務を開始する時間から終点地に到着するまでの時間をいう。検査会社全体としての業務時間は、最適化処理の対象となる日における各検査員単位の業務時間の総和により求める。上記業務時間には、休憩時間を含んでもよいし、そうでなくてもよい。例えば検査員全員が同一の休憩時間を毎日取得するように固定的である場合には、休憩時間の長短が業務時間に影響しないので、これを含まずに業務時間を算出してもよい。
【0047】
一方、休憩時間が必須取得時間と取得が任意である任意取得時間との合計として定義され、移動時間及び作業時間との兼ね合いで任意取得時間が日によって異なる場合には、休憩時間の長さが業務時間に影響を及ぼすので、業務時間に休憩時間を含んで算出してもよい。例えば、休憩時間の最大値が1時間と定められており、必須取得時間が30分、任意取得時間が30分であるとする。この場合、休憩時間を1時間取得しても、終点地の到着する時刻が検査員マスターで規定された終了時刻よりも前であれば休憩時間を1時間取得してもよい。一方、終点地に到着する時刻が15分ほど遅くなると算出される場合には、総休憩時間を45分に設定してもよい。この休憩時間の長さの調整は、最適化処理部106が本割当をする際に行ってもよい。
【0048】
本実施形態では、各検査員単位の業務時間を最短とするために、総移動時間が最短となるように本割当処理を行う。そして、各検査員単位の業務時間が最短となる結果、会社全体の業務時間が最短となるように業務の割当てを行う。
【0049】
図3及び
図4に基づいて、最適化処理の概念について説明する。
図3は、最適化の前後でルートが変更された例を示す図であり、(a)は最適化処理前のルートを示し、(b)は最適化処理後のルートを示す。また、
図4は、
図3の最適化の前後でタイムチャートが変更された例を示す図であり、(a)は最適化処理前のタイムチャートを示し、(b)は最適化処理後のタイムチャートを示す。
【0050】
仮割当処理部105により案件が仮割当てされた状態を
図3の(a)に示す。仮割当処理では、検査員甲は、出発地→第1案件の物件所在地→第2案件の物件所在地→第3案件の物件所在地→終点地の順に巡回する。このときの検査員甲の業務時間は、
図4の(a)に示すように、8時に出発地を出発し、17時30分に終点地に到着する。この場合、検査員甲の業務時間は9時間30分となる。一方、検査員乙は、仮割当ての状態において、8時に出発地を経ち、出発地→第4案件の物件所在地→第5案件の物件所在地→第6案件の物件所在地→終点地の順に巡回し、17時30分に終点地に到着するとする(
図3の(a)、
図4の(a)参照)。この場合の検査員乙の業務時間も9時間30分となる。そして、検査会社に検査員甲、乙の両名しかいないとすると、検査会社全体としての業務時間は、19時間(9時間30分+9時間30分)となる。
【0051】
ここで第1案件の物件所在地は検査員甲の出発地よりも検査員乙の出発地に相対的に近く、第4案件の物件所在地は検査員乙の出発地より検査員甲の出発地に相対的に近いとする。そこで、検査員甲に仮割当てされた第1案件と、検査員乙に仮割当てされた第4案件と、を交換して再割当てする。その結果、
図3の(b)に示すように、検査員甲は、出発地から第4案件に向かう。次いで、第4案件には、第2案件よりも第3案件が近いので、第4案件から第3案件に向かい、次いで、第2案件へ向かう。従って、最適化後は、検査員甲は、出発地→第4案件→第3案件→第2案件→終点地と巡回する。その結果出発地から第4案件までの移動時間、及び第4案件から第3案件までの移動時間はそれぞれ30分に短縮されるとする(
図4の(b)参照)。
【0052】
ここで、検査員甲の作業係数が1.5、検査員乙の作業係数が1.0であるとすると、検査員乙が1時間の作業時間を要する第4案件は、検査員甲は1.5時間(1時間×1.5)を要する。従って、最適化後の検査員甲のタイムチャートは、
図4の(b)に示すように、8時に出発地を出てから16時30分に終点地に到着し、業務時間は8時間30分となる。よって、検査員甲は、最適化処理により業務時間が1時間短縮される。
【0053】
一方、検査員乙は、
図3の(b)に示すように、出発地→第1案件→第5案件→第6案件→終点地と巡回する。出発地から第1案件までの移動時間、及び第1案件から第5案件までの移動時間はそれぞれ30分に短縮されるとする。また、検査員甲が1.5時間の作業時間を要する第1案件は、検査員乙は1時間(1.5時間÷1.5)で作業を終えることができる。従って、最適化後の検査員乙のタイムチャートは、
図4の(b)に示すように、8時に出発地を出てから16時30分に終点地に到着し、業務時間は8時間30分となる。よって、検査員乙も、最適化処理により業務時間が1時間短縮される。その結果、会社全体としては、2時間(1時間×2)の業務時間の短縮化が図れる。
【0054】
上記のように案件の本割当処理を行い、検査員単位及び会社全体としての業務時間の更なる短縮化ができなくなった状態を、最適化が図れた状態という。
【0055】
最適化の他の例として、ある案件に検査種別が異なる複数の検査、検査a及び検査bが含まれるとする。そして、検査員甲は検査aを行う技能しか有しておらず作業係数は1.5であり、この案件における検査aの作業時間は1.5時間であるとする。検査員丙は、検査bを行う技能しか有しておらず、作業係数は0.75であり、検査bの作業時間は1.5時間であるとする。この場合、検査員甲、丙の総作業時間は3時間となる。
【0056】
上記の案件では、検査員甲、丙の両名を派遣する必要があるので検査員甲、丙の各々の直前滞在地から当該物件所在地に移動するまでの時間が1時間、当該物件所在地から直後滞在地までの移動時間が1時間とすると、両名の移動時間の合計は4時間となる。よって会社全体としての上記案件の処理に要する業務時間は、作業時間が3時間、移動時間が4時間の合計7時間となる。
【0057】
ここで、検査員乙は、検査a,bの両方を行う技能を有しており、作業係数が1.0と規定されているとする。検査員乙が上記検査aを行った場合の作業時間は1時間(1.5時間÷1.5)、検査bを行った場合の作業時間は2時間(1.5÷0.75)となる。
【0058】
一方、検査員乙の直前滞在地からこの案件の物件所在地までの移動時間が1時間、当該物件所在地から直後滞在地までの移動時間が1時間とすると、総移動時間は2時間となる。検査員乙は単独で当該案件を処理できるので、検査員乙がこの案件を単独で処理した場合、作業時間が3時間、移動時間が2時間となり、合計5時間が会社全体のこの案件についての業務時間となる。従って、この例では、検査員が有する技能数を考慮にいれて本割当を行うことで、総作業時間が同じであっても、派遣する検査員の人数が異なる結果、総移動時間を短縮することができる。また、一般に派遣する検査員数が少ないほど、移動費用は安価になる。
【0059】
このように、最適化を行う際の着目要素は、移動時間、作業時間、一つの案件に派遣する検査員数、及び移動費用の少なくとも一つ以上を適宜組み合わせて行える。
【0060】
データ記憶部107は、予定表の作成に必要な各種データを固定的に格納する。具体的には、各検査員の属性を規定した検査員マスター、各検査員に仮割当された案件及び各検査員の休暇(日単位、及び時間単位の休暇を含む)等の検査以外の予定であって案件の割当てを行えない日時を記憶した検査員カレンダー、及び各検査員に割当てられた案件を記憶する検査員割当表を格納する。更に、顧客をユニークに識別する顧客識別情報と顧客が定めたログインパスワードとを関連付けて規定する顧客データを格納してもよい。以下、
図5乃至
図7に基づいて、データ記憶部107に格納されるデータの一例について説明する。
図5は、検査員マスターの構成を示す図である。
図6は、検査員カレンダーを示す図である。
図7は、検査員割当表を表示した画面表示例を示す図である。
【0061】
図5に示す検査員マスター151は、検査会社に所属する検査員の属性を記録したデータベースである。より具体的には、検査員マスター151は、検査員を固有に識別可能な検査員識別情報(例えば「検査員氏名」)、検査員の「出発地」、「終点地」、「自動割当」、検査員が保有している「技能」(例えば資格名や業務種類)、「作業係数」、「出発時刻」、及び「終了時刻」が互いに関連づけられて規定されている。「出発地」及び「終点地」は、各検査員の自宅であってもよいし、検査員が所属する営業所であってもよい。「自動割当」は、仮割当処理部105及び最適化処理部106により案件の仮割当及び本割当を行う際に、自動的に仮割当及び本割当をする対象となる検査員であるか否かを判別するためのフラグを収容するフィールドである。本フィールドでフラグがない(○がない)検査員は、手動割当のみを行う検査員であり、例えば繁忙期のみ勤務する検査員や、保有する技能を複数有する者である。
【0062】
更に検査員マスター151では、「技能a」、「技能b」、及び「技能c」の3つの技能の有無を規定しているが、技能の種類数はこれに限定されない。「技能」の具体例として、例えば建築検査会社では、構造物の強度検査を行うための資格、瑕疵担保責任や損害保険の算定率を算出するための資格、住宅金融公庫からの借り受けの適格性を判断するための資格等、様々な検査がある。「作業係数」は、既述の式(3)で用いた作業係数と同じものである。また、「技能」は作業員の属性を兼ねてもよく、例えば作業員の体型情報(細身、小柄であるか否かなど)を含んでもよい。これにより、作業口や作業箇所が相対的に狭い物件には、細身や小柄な作業員を優先的に割当てるようにしてもよい。この場合、後述する
図10の検査予約画面において、細身や小柄な作業員を指定できる欄を設けてもよい。
【0063】
「出発時刻」は「出発地」を発つ最も早い時刻、「終了時刻」は「終点地」に到着する最も遅い時刻である。なお、検査員マスター151において、検査員戌の「技能c」に「補助員(丁)」と規定されているが、これは、検査員戌が検査員丁の補助員として常に検査員丁と同行することを示す。検査員丁は、作業時に検査員戌が検査補助をすることでより短時間で作業を終えることができる。そこで、検査員丁の「作業係数」は、0.7とする。また検査員戌は、技能(資格)を有さない、いわば補助者であるので、「作業係数」は、0と規定する。補助員は静的(固定でマスターに登録されるもの)または動的なものがある。動的な場合は、検査員割当表153でペアを割当てることができる。
【0064】
検査員カレンダーは、検査員毎に作成される。
図6は、検査員甲の2013年5月の検査員カレンダー152を示している。各検査員は、自身の検査員カレンダー152に検査以外の予定が入っている時間帯を予め登録しておく。ここで登録された時間帯は、案件の仮割当及び本割当てがされない。空人数カレンダーの人数からも減らされる。また、案件が自動割当されると、検査員カレンダー152におけるその時間帯に「仮割当」と記入される。なお、
図6では、「仮割当」と記入されているが、仮割当された案件をユニークに識別可能な情報(例えば案件番号)を記入してもよい。更に、最適化処理部106により本割当てが行われると、本割当てをされた案件が検査員カレンダー152に登録される。
図6の検査員カレンダー152では、5月1日から5月3日までは、後述する最適化処理により検査員甲に本割当てられた案件名及びその作業時間が規定されている。また、5月10日には「講習」、5月12日には「休日」が登録されており、これらの日時には案件の仮割当て、及び本割当てが行われない。検査員カレンダー152に記載された各予定にマウスカーソルを合わせると、各予定の詳細情報がポップアップ表示されるように構成されてもよい。
【0065】
図7の検査員割当表153は、仮割当処理部105が仮割当した案件の詳細情報と、検査員識別情報とを関連付けて格納したものである。
図7は、2013年5月7日に各検査員に割当てられた案件を格納した検査員割当表153をモニタ18の画面に表示した状態を示す。画面には、検査員割当表153とともに、最適化処理を実行する指示を入力するための最適化ボタン154が表示される。
【0066】
検査員割当表153は、検査員を固有に識別可能な「検査員名」、各案件の作業の「開始時刻」、各案件を固有に識別する「案件番号」、最適化処理の対象から外す案件を特定するためのフラグを収容する「最適化ロック」、案件の対象となる物件の住所地が格納される「物件所在地」、各案件に含まれる検査種別を格納する「検査種別」、物件の属性として「構造物種類」(式(3)における対象物件の構造に相当する)、「用途」、及び「延床面積」を格納する各フィールドを有する。このうち、「案件番号」は、予約受付部101が予約端末40から検査予約情報を受信した順に自動発番して入力する。また、仮割当処理部105は、仮割当を行った際に算出した各案件の作業開始時刻を登録する。
【0067】
「最適化ロック」は、最適化ボタン154を操作して、最適化処理部106が最適化処理を行う際に、「最適化ロック」にフラグが収容されている案件については本割当の対象から除外する、すなわち、「最適化ロック」にフラグが入力されている第5案件は、既に検査員乙に本割当されていることを示す。「最適化ロック」へのフラグの入力は、例えば、顧客が検査員を指名する場合など、必要に応じて操作者が手動で入力する。
【0068】
検査員割当表153の「物件所在地」、「検査種別」、「構造物種類」、「用途」、及び「延床面積」は、予約受付部101が予約端末40から受信した検査依頼情報を基に取得し、更新保存する。検査依頼情報は予約端末40から受信する態様の他、予定表生成装置10に連動又は接続された、検査依頼情報を格納した自社システムから取得してもよい。なお、
図7では省略するものの、検査員割当表153にマンション名などの「物件名」を入力するフィールドや、「建築確認番号」を入力するフィールドを設けてもよい。建築中で正式な物件名が定まっていない場合には、建築確認番号が案件の対象となる物件を固有に識別する情報として有用である。
【0069】
上記検査員マスター151、検査員カレンダー152、及び検査員割当表153のデータ構造は一例にすぎず、正規化を行って異なる構造となってもよい。また、更なる詳細なデータを付加してもよい。また、データ記憶部107には、予定表生成システム1の動作中に表示される各種画面のテンプレートが保存される。
【0070】
本実施形態に係る予定表生成システム1は、検査依頼を受け付けて、検査員の空状況を表示する空人数カレンダー生成処理と、検査員に暫定的に検査を割当てる仮割当処理と、特定の業務日の案件を検査員に割当てる最適化処理と、を実行する。このうち、空人数カレンダー生成処理及び仮割当処理では、処理結果を予約端末40により速く表示することを優先し、最適化処理では、表示速度よりも業務時間の最短化が図れる業務割当処理を実行することを優先する。そこで、予約表生成システム1が予約端末から検査依頼を受け付けてから本割当を行うまでの一連の処理において、上記各処理が実行される順を、
図8乃至
図14を基に説明する。
図8は、予約表生成システムの動作手順を示すフローチャートである。
図9は、ログイン画面を示す図である。
図10は、検査予約画面を示す図である。
図11は、空人数カレンダーを示す図である。
図12は、予定表画面を示す図である。
図13は、地図帳票を示す図であって、(a)は手動調整前、(b)は手動調整後を示す。
図14は、地図帳票を示す図であって、(a)は手動調整前、(b)は手動調整後を示す。以下、
図8の各ステップ順に沿って説明する。
【0071】
図8に示すように、予約表生成システム1を動作させるに先立ち、事前準備を行う(S801)。予約表生成装置10のデータ記憶部107に検査員マスター151及び検査員カレンダー152を格納し、必要事項を登録しておく。更に検査員割当表153のフォーム、その他、随時表示される画面を予め生成しデータ記憶部107に格納しておく。また、本実施形態では図示を省略するものの、例えば建築事務所のような検査依頼を行う者(以下「顧客」という)と検査会社との間の取引事項を記録した顧客マスター(顧客を固有に識別するユーザID、ログインパスワード等を格納するテーブル)を生成しておき、データ記憶部107に格納しておく。
【0072】
顧客が操作する予約端末40から公衆回線網30を経由して検査会社のHPにアクセスし(S802)、予約受付部101からログイン画面を取得する(S803)。
図9のログイン画面160は、顧客を固有に識別する「ユーザID」の入力欄161、「ログインパスワード」の入力欄162、及びログインボタン163を備える。顧客が予約端末40の画面上でユーザID及びログインパスワードを入力してログインボタン163を操作すると、予定表生成装置10にそれらのログイン情報が送信される(S804)。ログイン画面160には、初めて検査依頼を行う顧客に対し、顧客登録をさせるための操作ボタン164を備えてもよい。この操作ボタン164が操作されると、予約受付部101は、顧客情報を入力するための画面を予約端末40に送信し、その画面で登録された情報を顧客マスターに登録する。
【0073】
予約受付部101がログイン情報及び顧客マスターを参照し、顧客の認証処理を行う(S805)。認証処理が成功すると、予約受付部101から予約端末40に検査予約画面170が送信される(S806)。
【0074】
図10に示す検査予約画面170には、検査対象となる物件の「物件名」入力欄171、「物件所在地」入力欄172、「検査種別」入力欄173、検査対象となる「建築物の構造」入力欄174、「建築物の用途」入力欄175、「延床面積」入力欄176、「希望日時」選択ボタン177、細身の作業員を指定するためのチェックボックス178、及び「送信」ボタン179が含まれる。顧客が検査予約画面に必要事項を入力し、「送信」ボタン179を操作すると、入力された予約内容を示す情報(以下「検査依頼情報」という)が予約表生成装置10に送信される(S807)。なお、
図10では、「希望日時」ボタン177で空人数カレンダーを表示する。
【0075】
空人数カレンダー生成部104は、検査依頼情報を基に検査員マスター151及び検査員カレンダー152を参照し、所定の期間、例えば2か月先までの検査依頼情報に対応できる検査員の有無を判定し、その結果を示す空人数カレンダーを生成し(S808)、予約端末40に送信する(S809)。
図11の(a)に示す空人数カレンダー180aは、2013年5月及び6月の2か月間における検査aを行える検査員の空き情報を示す。「終」は、検査依頼の受付を締め切った日を示し、各日欄内の数字は自動割当可能な検査員の残数を示し、「△」は、手動割当が可能な検査員がいることを示し、「×」は対応できる検査員がいないことを示す。「希望時間」選択ボタン181のリスト表示ボタン(図中の三角形のボタン)を選択するように構成したが、任意の時間帯を入力できるように構成してもよい。また、リスト表示ボタン内に「指定なし」の項目を備えることにより、時間指定をしない予約態様も可能となる。
図11の(a)では、「希望時間」選択ボタン181において「9:00〜11:00」が指定された場合の空人数カレンダー180aを示す。空人数カレンダー180a内の希望時間表示欄181の時間を変更することで、他の時間帯の検査員の空状況の表示も行える。例えば、
図11の(b)に示す空人数カレンダー180bは、希望時間表示欄181を「指定なし」とすることにより検査員の予約状況が緩和されて表示される。例えば、5月7日は、空人数カレンダー180a(
図11の(a)参照)では三角形、すなわち自動割当対象の検査員に空きがなく、手動割当対象の検査員に空きがあることが表示されているが、空人数カレンダー180b(
図11の(b))では、「2」と表示される。つまり、時間指定をしないことで空き状況が改善され、その日に予約を確定的に行うことができる。ここでいう「確定的」とは、後述する仮割当処理において、検査員を自動割当により確保することができるという意味である。
【0076】
予約端末40の画面上で顧客が空人数カレンダーに数字が表示されている日から希望日を選択してクリックすると、希望日が予約表生成装置10に送信される(S810)。「△」、「×」は、ユーザが選択はできるものの、その選択情報だけが予定表生成装置10の記憶装置13内の図示しない領域内に保存され、自動割当処理は実行されない。この保存された選択情報に基づいて、選択された日の予約がキャンセルされて自動割当が可能な検査員の残数が1以上となったとき、また手動割当対象となる検査員に空きが生じたときに、予約端末40に対して、指定可能となったことを通知してもよい。また「△」であれば、後述する最適化処理後に手動割当を行って、検査員に作業を割当てることで、顧客からの要望に応じられるように構成してもよい。予約受付部101は、自動割当対象の検査員に検査依頼情報に含まれる検査の仮割当てを行い、検査員カレンダー152及び検査員割当表153に仮登録する(S811)。
【0077】
検査日の数日前に予約表生成装置10の操作者は、仮割当された案件の最適化処理を行う(S812)。最適化処理では、ある業務日単位で、移動時間や作業時間を考慮して各検査員の業務時間が最短になるように再度の割当処理(本割当)を行う。
【0078】
予定表生成装置10の帳票出力部108は、最適化された検査員割当表153を基に各種帳票を生成・出力する。その出力の一つの態様として、各検査員の携帯端末21に対し、最適化処理後のある業務日(以下「特定日」という)における行動計画を示した予定表画面を生成し、送信する(S813)。
図12の予定表画面190は、検査員乙の特定日の日付及び検査員名(符号191)、出発地及び出発時刻(符号192)、巡回ルートに沿って、乗車時間、乗車駅名、検査種別、及び顧客名(符号193)が表示される。これらの表示内容は一例であり、当該日に当該検査員が担当する案件及びその順序がわかる内容が含まれていればよい。なお、本ステップは、予定表画面190の送信が不要であれば省略してもよい。
【0079】
更に帳票出力部108は、最適化された検査員割当表153を基に他の形式の帳票を生成・出力してよい(S814)。帳票の出力形態の一例として、例えば、
図13の(a)に示すように、地図情報に各検査員の経路及び案件を図示した地図帳票200を用いてもよい。この地図帳票200により、各検査員の巡回ルートを可視化することができる。地図帳票200上に、マウスやタッチパッドなどの入力装置17を用いて、検査員が割当てられていない新案件の物件所在地201を登録し、所定の検査員、例えば検査員甲の巡回ルート202を、新案件の物件所在地を通過するように手動で入力すると、
図13の(b)に示す修正後の地図帳票200’のように、検査員甲に対し、未割当の案件(第7案件)を検査員甲に割当て、検査員甲の巡回ルートを変更できるように構成してもよい。(符号202’に相当)。この場合、例えば予約受付部101が入力装置17からの入力指示に従って、新案件への自動発番、検査員甲への割当て、及び検査員割当表153の更新をするように構成してもよい。担当者変更・経路順番入替・希望日などの変更も可能である。この機能を使うことにより、地図帳票200は、各検査員の巡回ルートを可視化するだけでなく、この地図帳票200上で経路順番の入れ替え、担当者の変更、希望日の変更(例えば第1〜第3希望日までがあるとき、どの日のどのルートに組み込むと一番効率がよさそうか)のシミュレーションを行うこともできる。
【0080】
また
図14の(a)に示すように、全検査員の作業工程を図示したタイムテーブル210を生成してもよい。このタイムテーブル210により、各検査員の業務時間を可視化することができる。タイムテーブル210のうち、「M」は移動、「休」は休憩、数字は案件番号を示す。タイムテーブル210上で、新たな案件213を登録すると(
図14の(b)参照)、予約受付部101が入力装置17からの入力指示に従って、新案件への自動発番、検査員甲への割当て、及び検査員割当表153の更新をするように構成してもよい。タイムテーブル210上で、新規の休みや既に割り当てられた案件の変更ができるように構成してもよい。タイムテーブル210により空時間の可視化が行える。その他の帳票例として、出張命令書などの態様もありうる。なお、本ステップは、帳票の出力が不要であれば省略してもよい。
【0081】
次に
図15及び
図16に基づき、
図8のステップS808の空人数カレンダー生成処理について説明する。
図15は、空人数カレンダー生成処理の前半の処理を示すフローチャートである。
図16は、空人数カレンダー生成処理の後半の処理を示すフローチャートである。以下、
図15、
図16の各ステップ順に沿って説明する。
図15の空人数カレンダー生成処理に先立ち、図示を省略するものの、検査員の空人数の残数を示すパラメータNの初期化(N=0)を行い、以下の各処理を実行する。
【0082】
作業時間算出部103は、検査依頼情報を基に作業時間を算出する(S1501)。このステップで求める作業時間は、標準作業時間でよい。作業係数は、多くの場合は1.0に設定して算出するが、遅い人に合わせて作業時間を決める場合は、1.0を超える値を用いて算出してもよい。
【0083】
次に空人数カレンダー生成部104は、検査依頼情報を参照し、当該検査依頼情報に含まれる検査に必要な技能を決定する。そして、検査員マスター151に登録された検査員のうち、検査依頼に対応するための技能を有し、かつ自動割当対象となっており、実施日が休日でない検査員の集合(「集合A」という)を生成する(S1502)。休日かどうかは、検査員カレンダー152を参照する。また、検査依頼情報を受信した日から起算して予め定められた所定期間、例えば2か月先までの期間を設定し、そのうちの1日を、空人数算出対象となる業務日(D
1)として設定する(S1503)。
【0084】
空人数カレンダー生成部104は、集合Aから空き状況を確認する対象となる一人目の検査員(X
1)を抽出する(S1504)。本ステップにおける検査員(X
1)の抽出順は任意であり、例えば集合A内において検査員の識別情報を基にソートをかけ、ソート後の検査員の識別情報の先頭から順、又は最後尾から順に抽出してもよい。
【0085】
検査員(X
1)の検査員カレンダー152を参照し、検査依頼情報に時間指定があり(S1505/Yes)、かつ指定時間に予定がない場合(S1506/No)、及び検査依頼情報に時間指定がなく(S1505/No)、かつ業務日(D
1)にステップS1501で算出した作業時間分の空時間がある場合(S1507/Yes)は、検査員空人数の値Nを1加算して(S1507)、ステップS1509へ進む。
【0086】
検査依頼情報に時間指定があり(S1505/Yes)、その指定時間に予定がある場合(S1506/Yes)、及び検査依頼情報に時間指定がなく(S1505/No)、かつ業務日(D
1)にステップS1501で算出した作業時間分の空時間がない場合(S1507/No)は、当該検査員は検査を行えないので、検査員空人数の値Nは変更することなくステップS1509へ進む。
【0087】
集合Aに空状況を確認していない検査員がいれば(S1509/No)、集合Aから検査員(X
1)を削除して集合Aを更新し(S1510)、ステップS1504へ戻り、次の検査員(X
2)を抽出して、ステップS1505以下の処理を繰り返す。集合Aの全ての検査員について空き状況を確認した場合は(S1509/Yes)、検査員空人数Nの値を判定処理へ移行する。
【0088】
N=0でない、即ち自動割当可能な検査員が1人以上いる場合(S1601/No)、業務日(D
1)の空人数の値としてNを保存する(S1602)。
【0089】
N=0、即ち自動割当可能な検査員が全くいない場合(S1601/YES)、検査員マスター151に登録された検査員のうち、検査依頼に対応するための技能を有し、かつ手動割当対象となっている検査員の集合(「集合B」という)を生成する(S1603)。そして、集合Bから任意の検査員(Y
1)を抽出し、(S1604)、検査員(Y
1)が検査依頼に対応できるか否かの判定処理を行う。即ち検査依頼情報に時間指定がある場合(S1605/Yes)、検査員(Y
1)の検査員カレンダー152を参照した結果、業務日(D
1)の上記指定された時間に作業時間相当の空時間がある場合(S1606/Yes)、及び検査依頼情報に時間指定がなく(S1605/No)、かつ業務日(D
1)にステップS1501で算出した作業時間分の空時間がある場合(S1607/Yes)は、業務日(D
1)に手動割当対象の検査員に空きがあると判断し、業務日(D
1)に△を表示すると判定する(S1608)。
【0090】
検査依頼情報に時間指定があり(S1605/Yes)、その指定時間に予定がある場合(S1606/No)、及び検査依頼情報に時間指定がなく(S1605/No)、かつ業務日(D
1)にステップS1501で算出した作業時間分の空時間がない場合(S1607/No)は、検査員(Y
1)は検査を行えないと判断する。そして、集合Bに空状況を確認していない検査員がいれば(S1609/No)、集合Bから検査員(Y
1)を削除して集合Bを更新し(S1610)、ステップS1604へ戻り、次の検査員(Y
2)を抽出する。そして、ステップS1605以下の処理を繰り返す。集合Bの全ての検査員について空状況を確認した場合は(S1609/Yes)、業務日(D
1)に手動割当対象の検査員に空きがないと判断し、業務日(D
1)に×を表示すると判定する(S1611)。
【0091】
ステップS1602、S1608、S1611の終了後、所定期間内にまだ空状況を確認していない業務日があれば(S1612/No)、ステップS1503へ戻り、次の業務日(D
2)を設定してステッS1504以下の処理を繰り返す。所定期間内の全日について空き状況を確認していれば(S1612/Yes)、ステップS1602、S1608、S1611の結果を基に空人数カレンダーを生成し、表示する(S613)。
【0092】
空カレンダー生成処理では、検査依頼情報に含まれる指定時間の予定の有無、又は指定時間がない場合には標準作業時間相当の空時間の有無を判定し、これを基に空カレンダーを表示する。このとき、移動時間を考慮しないことによって演算量を減らし、空カレンダーを表示させるまでの所要時間をより短くすることができる。
【0093】
次に
図17及び
図18に基づき、
図8のステップS811の仮割当処理について説明する。
図17は、仮割当処理を示すフローチャートである。
図18は、移動時間算出処理を示す図である。以下、
図17の各ステップ順に沿って説明する。
【0094】
仮割当処理部105は、検査員マスター151に登録された検査員のうち、検査依頼に対応するための技能を有し、自動割当対象となり、実施日が休日でない検査員の集合(「集合A」という)を生成する(S1701)。そして、集合Aから予め定められた優先度(p)順に従って、一人目の検査員(X
1)を抽出する(S1702)。
【0095】
ここでの「優先度」は、各検査員が有する技能数を比較し、それが少ない順に優先度を高くなるように設定する。例えば、検査員甲は、技能aを保有し、検査員乙が技能a及び技能bを有するとする。この場合、検査員甲は、技能aが必要となる作業しか従事できないが、検査員乙は技能a、bの両方が必要とされる作業に従事できる。検査依頼情報に含まれる検査に技能aのみが必要であるとすると、検査員甲の優先度を、検査員乙の優先度よりも相対的に高くすることで、まず、検査員甲が検査員(X
1)として抽出され、より作業の汎用性が高い検査員乙が留保される。その結果、今後、技能a、bを要する検査のいずれか、又は両方同時に行う検査依頼があったときに、検査員乙がその検査依頼に対応することができる。
【0096】
作業時間算出部103は、及び作業係数を基に、検査員(X
1)について設定された作業係数を適用し、検査員(X
1)が検査依頼情報に含まれる検査を実施する際に必要な作業時間t
wを算出する(S1703)。
【0097】
仮割当処理部105は、検査員(X
1)の検査員カレンダー152を参照し、検査依頼情報に時間指定があり(S1704/Yes)、かつ指定時間にステップS1703で算出した作業時間分の空時間がある場合(S1705/Yes)、及び検査依頼情報に時間指定がなく(S1704/No)、かつ検査依頼情報に含まれる業務日にステップS1703で算出した作業時間分の空時間がある場合(S1706/Yes)は、移動時間チェック処理(S1707〜ステップS1710)へ進む。上記ステップS1705において「空時間がある」に該当するためには、検査員割当表上において他の検査が入っておらず、かつ検査員カレンダーにおいて、検査以外の他の予定が入っていないことが必要である。
【0098】
移動時間チェック処理では、移動時間算出部102が検査員(X
1)の検査員マスター151及び検査員カレンダー152を参照し、検査員(X
1)の直前滞在地の出発時刻(t
0)、及び直前滞在地から検査依頼情報に含まれる案件の物件所在地(以下「物件所在地」と略記する)までの移動時間(t
1)を算出し、下式(4)に従って、物件所在地の到着時刻(以下「物件到着時刻」という)t
2を算出する(S1707)。
【0099】
t
2=t
0+t
1・・・(4)
但し、
t
0:直前滞在地の出発時刻
t
1:直前滞在地から物件所在地までの移動時間
t
2:物件到着時刻
物件到着時刻(t
2)と、検査依頼情報に含まれる検査開始の指定時刻とを比較し、物件到着時刻(t
2)が指定時刻以前であれば(S1708/Yes)、直後滞在地の到着時刻(t
4)を算出する(S1709)。
【0100】
直後滞在地の到着時刻(t
4)は、物件所在地から直後滞在地までの移動時間(t
3)を算出し、物件到着時刻t
2に作業時間t
w及び物件所在地から直後滞在地までの移動時間(t
3)を加算して求められる。従って、下式(5)により求められる。
【0101】
t
4=t
2+t
w+t
3・・・(5)但し、
t
4:直後滞在地の到着時刻
t
2:物件到着時刻
t
w:作業時間
t
3:物件所在地から直後滞在地までの移動時間
【0102】
仮割当処理部105は、直後滞在地の到着時刻t
4が、直後滞在地における制約時刻(以下「直後滞在地制約時刻」という)以前であれば(S1710/Yes)、検査員(X
1)に検査依頼情報に含まれる検査の仮割当を行う(S1711)。直後滞在地制約時刻は、直後滞在地が終点地であれば検査員マスター151に規定された終了時刻であり、直後滞在地が次の案件の物件所在地であれば、次の案件の業務開始時刻である。この詳細については後述する。仮割当を行うと検査員(X
1)の検査員カレンダー152に仮割当された案件の詳細情報を追記し、仮割当処理を終了する。
【0103】
物件到着時刻が指定時刻よりも後である場合(S1708/No)、直後滞在地の到着時刻t
4が、直後滞在地制約時刻よりも後である場合(S1710/No)、検査依頼情報に時間指定があり(S1704/Yes)、かつその指定時間に作業時間分の空時間がない場合(S1705/No)、及び検査依頼情報に時間指定がなく(S1704/No)、作業時間分の空時間がない場合(S1706/No)は、仮割当処理部105は、検査員(X
1)は検査依頼情報に含まれる検査を実施できないと判断し、ステップS1712へ進む。
集合Aにまだ仮割当が可能か否かの判定をしていない検査員が残っていれば(S1712/No)、仮割当処理部105は、集合Aから検査員(X
1)を削除して集合Aを更新し(S1713)、ステップS1702へ戻って次の検査員(X
2)を抽出し、ステップS1703以下の処理を繰り返す。
【0104】
集合Aの全ての検査員について判定をしていれば(S1712/Yes)、自動割当対象となる検査員の中に、検査依頼情報に含まれる検査を仮割当可能な検査員がいないので、仮割当処理を行うことなく、処理を終了する。
【0105】
上記移動時間チェック処理における「直前滞在地」及び「直前滞在地の出発時刻(t
0)」とは、検査依頼情報に含まれる検査よりも前に予定がなければ検査員マスター151に規定された「出発地」及び「開始時刻」、検査依頼情報に含まれる検査とは異なる検査が既に仮割当されている場合には、その異なる検査の物件所在地及び他の検査の作業終了時刻である。また「直後滞在地」及び「制約時刻」とは、検査依頼情報に含まれる検査よりも後に予定がなければ検査員マスター151に規定された「到着地」及び「終了時刻」であり、検査依頼情報に含まれる検査とは異なる検査が既に仮割当されている場合には、その異なる検査の物件所在地及びその異なる検査の検査開始時刻である。
【0106】
例えば、
図18の上段に示すように、検査員(X)にまだ案件が全く入っていないとする。この場合、検査依頼情報の案件が第1案件となる。そして、第1案件の直前滞在地は、検査員マスター151において、検査員毎に予め定められた出発地となる。そこで、移動時間算出部102は、出発地から第1案件の物件所在地までの移動時間1をt
1として算出する。そして、検査員マスター151に予め定められた出発時刻t
0にt
1を加算して、第1案件の物件到着時刻t
2を算出する。第1案件の後に予定が入っていない場合は、終点地までの移動時間2をt
3として算出する。そして、既述の式(5)に従って終点地の到着時刻t
4を算出し、これが検査員マスター151に規定された終了時刻よりも前であれば仮割当をする。
【0107】
また、
図18の下段に示すように、既に第1案件が割当てられており、検査依頼情報の案件が第2案件となる場合は、第1案件の物件所在地が直前滞在地となり、第2案件が物件所在地となる。この場合は第1案件の物件所在地から第2案件の物件所在地までの移動時間3をt
1として算出する。また、第2案件の後に、別の案件(第3案件)が既に入っている場合には、第2案件の物件所在地から第3案件の物件所在地までの移動時間4をt
3として算出する。そして、既述の式(5)に従って第3案件の到着時刻t
4を算出し、これが第3案件の検査開始時刻よりも前であれば仮割当をする。
【0108】
上記仮割当処理によれば、検査依頼の内容に応じた技能を有する検査員のうち、優先度が高い順(上記の例では技能数の少ない順)に仮割当てを行うことで、汎用性が低い検査員の予定を優先的に埋めることができる。また、検査員依頼に応じられるか否かの判断に際し、各検査員の熟練度を加味した作業時間及び各検査員の当該検査依頼の直前滞在地と直後滞在地との移動時間を考慮して判断するので、物件所在地への到着遅延といった不具合を回避しやすくなる。
【0109】
仮割当処理により、検査依頼に応じられる検査員に案件を自動的に割当てることができる。しかし、
図3及び
図4を用いて既に説明したように、仮割当処理では、検査員が検査作業をして回るルートは、必ずしも最適化されていない。そこで、実際に検査を行う日(検査実施日)の前に、仮割当された案件を、各検査員の業務時間が最短となるように再度割当し直す処理、所謂最適化処理を実行する。
【0110】
次に、
図19及び
図20に基づき、
図8のステップS812の最適化処理について説明する。
図19は、最適化処理の全体の処理の流れを示すフローチャートである。
図20は、検査員(X
1)についての最適化処理の詳細を示すフローチャートである。以下、
図19の各ステップ順に沿って最適化処理の全体処理を説明し、それに続いて
図20に基づいて、最適化処理の全体処理の一部を構成する、検査員(X
1)についての最適化処理の詳細について説明する。
【0111】
操作者が、検査員割当表153とともに表示された最適化ボタン154(
図7参照)を操作すると、最適化処理部106は、検査員カレンダー152を参照し、最適化処理の対象日(
図7では2013年5月7日)に業務に従事する、自動割当対象の検査員の集合A
1を生成する。また、検査員割当表153を参照して、最適化処理の対象日に実施予定の全案件の案件集合Cを生成する(S1901)。なお、ある案件に特定の検査員を指定したいときには、最適化ボタン154の操作前に手動で検査員割当表153の最適化ロックフィールドにフラグを入力しておく。
【0112】
次いで、最適化処理部106は、集合A
1から優先度(p)が高い順位に、検査員(X
1)を抽出し(S1902)、検査員(X
1)についての最適化処理を行う(S1903)。この詳細は、後述する。
【0113】
案件集合Cに、まだ最適化処理の対象となっていない案件が残っており(S1904/No)、集合A
1にも最適化処理を行っていない検査員が残っている場合は(S1905/No)、集合A
1から検査員(X
1)を除いて集合A
1を更新し(S1906)、ステップS1902に戻って次の検査員(X
2)を抽出し、ステップS1903以下の処理を繰り返す。
【0114】
案件集合Cに、まだ最適化処理の対象となっていない案件が残っているにも関わらず(S1904/No)、集合A
1の全ての検査員について最適化処理を実施し終えた場合は(S1905/Yes)、案件集合Cから本割当済の案件を削除した残りの案件について、ユーザが手動で検査員を割当てる(S1906)。ここで手動割当を行う検査員は、検査員マスター151で自動割当のフラグが立っていない検査員である。また、自動割当の検査員の休憩時間及び業務終了時間以降(残業)に手動割当することも可能。手動割当処理が終了した場合、及び案件集合Cの全案件の本割当が終了すると(S1904/Yes)、最適化処理を終了する。なお、上記では、説明の便宜上、手動割当処理を最適化処理の一部として説明したが、最適化処理は予定表生成装置10による割当処理を意味し、操作者による手動割当処理は最適化処理後の結果を修正する処理に相当する。よって、最適化処理に手動割当処理を含まなくてもよい。
【0115】
次に
図20の各ステップ順に沿って、検査員(X
1)についての最適化処理の詳細について説明する。
【0116】
最適化処理部106は、案件集合Cのうち、検査員(X
1)が保有する技能で実施できる案件集合C
1を生成し(S2001)、検査員(X
1)の検査員カレンダー152を参照して、最適化処理の対象日における検査員(X
1)の空時間を検索する(S2002)。
【0117】
案件集合C
1の任意の1件、例えば案件c
1を抽出し(S2003)、直前滞在地から抽出案件の物件所在地までの移動時間t
1を算出し、抽出案件の物件所在地から直後滞在地までの移動時間t
3を算出する(S2004)。そして、抽出案件の物件所在地に行くまでの移動時間t
1と、直後滞在地に移動するまでの移動時間t
3の合計移動時間t
mを算出する(S2005)。よって、合計移動時間t
mは、式(6)により求められる。
【0118】
合計移動時間t
m=t
1+t
3・・・(6) 算出した合計移動時間t
mは、抽出した案件と関連付けて一時的に保存しておく。
【0119】
案件集合C
1に合計移動時間t
mを算出していない案件が残っていれば(S2006/No)、案件集合C
1から上記抽出案件c
1を削除して案件集合C
1を更新し(S2007)、ステップS2003に戻って次の案件c
2を抽出する。
【0120】
案件集合C
1の全案件について合計移動時間t
mを算出すると(S2006/Yes)、合計移動時間t
mが最小となる案件c
minを決定する(S2008)。ステップS2008において、案件c
minを抽出する前にソート条件「合計移動時間t
m降順かつ住所昇順」で案件集合C
1を並べ替えてから案件c
minの抽出を行ってもよい。これにより、移動時間が同一であっても、住所が近い場所がより選択されて作業員が同じ地域をまとめて回ることができ、案件所在地間の移動のロスを減らしやすくなる。作業時間算出部103は、検査員(X
1)が案件c
minを実施する際に要する作業時間t
wを、検査員(X
1)の作業係数を反映して算出する(S2009)。そして、最適化処理部106は、下式(7)により直後滞在地の到着時刻t
4を算出する(S2010)。
【0121】
t
4=t
0+t
m+t
w・・・(7)t
0:直前滞在地の出発時刻t
m:合計移動時間(t
m=t
1+t
3)t
w:検査員(X
1)が案件c
1を実施する際に要する作業時間 直後滞在地の到着時刻t
4が、直後滞在地制約時刻よりも後であれば(S2011/No)、検査員(X
1)に案件c
minを本割当できないこととなる。案件集合C
1に本割当の可否の判断していない案件が残っていれば(S2012/No)、次に合計移動時間t
mが短く、住所が近い案件を抽出し(S2013)、ステップS2009へ戻り、以後の処理を繰り返す。
【0122】
直後滞在地の到着時刻t
4が、直後滞在地制約時刻以前であれば(S2011/Yes)、検査員(X
1)に案件c
minを本割当し(S2014)、案件集合C
1から案件c
minを削除して案件集合C
1を更新する(S2015)。案件集合C
1にまだ本割当をしていない案件が残っていれば(S2016/No)、ステップS2002へ戻り検査員(X
1)の検査員カレンダー152を検索する。そして、次の案件c
2を抽出する(S2003)。そして、直前に行ったステップS2014で本割当を行った案件c
minを直前滞在地とし、ステップS2004以下の処理を繰り返す。案件集合C
1の全案件について本割当の可否を判断し終えた場合(S2012/Yes)、及び案件集合C
1に本割当をしていない案件が残っていない場合(S2016/Yes)、検査員X
1の処理を終了する。
【0123】
上記最適化処理によれば、検査を行うために必要な技能を有する検査員に対して、業務時間が最短となるように案件を割当てることができる。その結果、検査員が所属する会社全体としての業務時間の短縮化を図り、業務コストダウンに貢献することができる。また、空き時間が増えることにより、より多くの作業を請けられ、売上アップにもつながる。
【0124】
上記実施形態では、建築物の検査を行う検査員についての予定表生成システムを例に挙げて説明したが、本発明が適用できる業務は、上記に限定されない。例えば、住宅の害虫駆除業務において、白アリ駆除の技能を有する作業員、スズメバチの駆除の技能を有する作業員についての案件の自動割当及びその結果を示す予定表の生成に本発明を適用してもよい。また、太陽光パネル設置業務においては、発電量の算出を行う技能、太陽光パネルを屋根に固定設置する技能、太陽光パネルを家庭用電気配線に接続する電気工事の技能のそれぞれを有する者が必要となるが、これらの業務についての案件の自動割当及び予定表の生成を行ってもよい。