(57)【要約】      （修正有）【課題】αアルゴリズムよりも複雑な業務プロセスモデルの構造も推定し、実際の業務プロセスモデルでは実行可能なすべての実行パターンが履歴中に含まれていることを必要としない業務プロセスモデルの構造推定方法及びその装置を提供する。【解決手段】推定装置1により、業務プロセスモデルにおける処理に関する制約条件と業務プロセスモデルが持っている傾向を表す評価関数情報を予め事前知識設定部3に記憶し、履歴データベース2に記憶されている情報と事前知識設定部3に記憶されている制約条件及び評価関数情報から、案件に対応する業務プロセスモデルが満たすべき制約条件とこの業務プロセスモデルに対応する評価関数を制約条件・評価関数導出部4によって立式し、制約条件を満たし且つ立式した評価関数を最適化する数値的な解を整数計画問題ソルバ5によって求め、この数値的な解を、個々の処理単位でブロック化された業務プロセスモデルに変換して提示する。【選択図】図１
2006338274.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ装置からなる業務システムによって所定案件に対して実行された業務における処理の履歴が記録されている履歴蓄積手段を備えた推定装置を用い、前記履歴蓄積手段に蓄積されている案件に対して前記業務システムによって実行される業務における処理の進め方を表した業務プロセスモデルの構造を前記推定装置によって推定して提示する業務プロセスモデルの構造推定方法であって、
前記推定装置は、
前記業務プロセスモデルにおける処理の進め方に関する制約条件と該業務プロセスモデルが持っている傾向を表す評価関数に関する情報を予め記憶し、
前記履歴蓄積手段に記憶されている情報と前記制約条件及び評価関数に関する情報から、前記案件に対応する業務プロセスモデルが満たすべき制約条件と該業務プロセスモデルに対応する評価関数を立式し、
前記立式した制約条件を満たし且つ前記立式した評価関数を最適化する数値的な解を求め、
前記数値的な解を、個々の処理を単位としてブロック化された１つの業務プロセスモデルに変換して提示する
ことを特徴とする業務プロセスモデルの構造推定方法。
【請求項２】
前記推定装置は、予め定義されている所定の整数変数を用いて前記制約条件と前記評価関数を立式することにより整数計画問題となし、該整数計画問題を解いて得られる数値的な解を前記ブロック化された業務プロセスモデルに変換して提示する
ことを特徴とする請求項１に記載の業務プロセスモデルの構造推定方法。
【請求項３】
前記推定装置は、
前記変数として、異なる２つの処理間におけるリンクの有無を表す第１整数変数と、２つの処理実行の間の遷移の有無を表す第２整数変数とを設定し、
前記立式した制約条件及び評価関数を解いて前記第１整数変数の値を算出した後に、該第１整数変数の値に基づいて前記制約条件の下で解となる前記第２整数変数の値を算出し、これらの解を前記ブロック化された業務プロセスモデルに変換して提示する
ことを特徴とする請求項２に記載の業務プロセスモデルの構造推定方法。
【請求項４】
前記履歴蓄積手段に蓄積されている情報は、処理の実行順序情報に加えて、履歴中に含まれる処理の実行者に関する情報を含み、
前記推定装置は、
同一実行者が実行した処理間の遷移は、実行した処理の直前或いは直後に限られるという条件を制約条件として用いると共に、
処理間における無駄なリンク及び無駄な遷移が少ない程良い評価を与え、実行者が異なる処理間でのリンク及び遷移が少ないほど良い評価を与え、存在する可能性が低いリンクが少ないほど良い評価を与える関数を評価関数として用い、
前記数値的な解をブロック化された業務プロセスモデルに変換して提示する
ことを特徴とする請求項１乃至請求項３の何れかに記載の業務プロセスモデルの構造推定方法。
【請求項５】
前記推定装置は、
１つの処理をブロックとなし、該１つの処理ブロックは、１つの処理ノードと、該処理ノードの入力側に出力側がリンクされた１つのＯＲジャンクションと、前記処理ノードの出力側に入力側がリンクされた１つのＯＲジャンクションと、前記入力側のＯＲジャンクションの入力側に出力側がリンクされた１つ以上のＡＮＤジャンクションと、前記出力側のＯＲジャンクションの出力側に入力側がリンクされた１つ以上のＡＮＤジャンクションとからなるものとして、前記ブロック化された業務プロセスモデルを１つ以上の処理ブロックによって表して提示する
ことを特徴とする請求項１乃至請求項４の何れかに記載の業務プロセスモデルの構造推定方法。
【請求項６】
コンピュータ装置からなる業務システムによって所定案件に対して実行された業務における処理の履歴が記録されている履歴蓄積手段を備え、前記履歴蓄積手段に蓄積されている案件に対して前記業務システムによって実行される業務における処理の進め方を表した業務プロセスモデルの構造を推定して提示する業務プロセスモデルの構造推定装置であって、
前記業務プロセスモデルにおける処理の進め方に関する制約条件と該業務プロセスモデルが持っている傾向を表す評価関数に関する情報が記憶されている事前知識設定部と、
前記履歴蓄積手段と前記事前知識設定部に記憶されている情報から、前記案件に対応する業務プロセスモデルが満たすべき制約条件と該業務プロセスモデルに対応する評価関数を、整数計画問題ソルバが利用できる形式で立式する制約条件・評価関数導出部と、
前記制約条件・評価関数導出部から与えられた制約条件を満たし且つ評価関数を最適化する数値的な解を求めて出力する前記整数計画問題ソルバと、
前記整数計画問題ソルバが出力する数値的な解を、個々の処理を単位としてブロック化された１つの業務プロセスモデルに変換して提示する結果提示部とを備えている
ことを特徴とする業務プロセスモデルの構造推定装置。
【請求項７】
前記履歴蓄積手段に蓄積されている情報は、処理の実行順序情報に加えて、履歴中に含まれる処理の実行者に関する情報を含み、
前記事前知識設定部には、前記制約条件に関する情報として、同一担当者は同じ案件に対して並列処理を行わないことを仮定できるか否かの情報、実行者が異なる処理間での遷移は実行者が同じ処理間での遷移よりも起こりにくいことを仮定できるか否かの情報、各処理間のリンクが存在する可能性に関する情報のうちの１種類以上の情報が記憶されている
ことを特徴とする請求項６に記載の業務プロセスモデルの構造推定装置。
【請求項８】
前記事前知識設定部には、前記制約条件に関する情報として、同一実行者が実行した処理間の遷移は、実行した処理の直前或いは直後に限られるという条件に関する情報が記憶されている
ことを特徴とする請求項７に記載の業務プロセスモデルの構造推定装置。
【請求項９】
前記事前知識設定部には、前記評価関数に関する情報として、処理間における無駄なリンク及び無駄な遷移が少ない程良い評価を与える関数に関する情報、実行者が異なる処理間でのリンク及び遷移が少ないほど良い評価を与える関数に関する情報、存在する可能性が低いリンクが少ないほど良い評価を与える関数に関する情報のうちの１つ以上の情報が記憶されている
ことを特徴とする請求項６乃至請求項８の何れかに記載の業務プロセスモデルの構造推定装置。
【請求項１０】
前記ブロック化された業務プロセスモデルは、１つ以上の処理ブロックからなり、
１つの処理ブロックは、１つの処理ノードと、該処理ノードの入力側に出力側がリンクされた１つのＯＲジャンクションと、前記処理ノードの出力側に入力側がリンクされた１つのＯＲジャンクションと、前記入力側のＯＲジャンクションの入力側に出力側がリンクされた１つ以上のＡＮＤジャンクションと、前記出力側のＯＲジャンクションの出力側に入力側がリンクされた１つ以上のＡＮＤジャンクションとからなる
ことを特徴とする請求項６乃至請求項９の何れかに記載の業務プロセスモデルの構造推定装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、業務システムを用いて業務を行った際に業務システム上に自動的に残された履歴を利用して、計算機により業務分析を支援する技術に関し、特に業務プロセスモデルの構造を推定して提示する方法及びその装置に関するものである。
【背景技術】
【０００２】
企業では顧客からの注文や社内での決裁或いは他企業への発注といった案件に対する処理を行う業務を効率的に行うため、案件に対する処理の進め方を表した業務プロセスモデルを作成し、それにあわせて多くの業務システムが構築され、利用されている。
【０００３】
業務効率をさらに向上させるための業務改善活動では、業務上の問題点を発見して解決するために、業務プロセスモデルの見直しを行う。業務上の問題点の発見は、現状の業務プロセスモデルに基づいて行われるが、以下の理由のために現状の業務プロセスモデルは業務システム構築時に想定された業務プロセスモデルと一致するとは限らないため、別途現状把握を行う必要がある。
【０００４】
・業務が複雑、多様であると、異常処理も含めたすべての場合の処理の進め方を業務システム導入前に洗い出し、業務プロセスモデル中に表現しておくことは困難である。そのため実際には必要に応じて、業務システム構築時に想定された業務プロセスモデルでは表現されていない処理の進め方で業務を行う場合がある。
【０００５】
・処理する案件の種類や数は時間の経過とともに変動する。また案件を処理する作業者のスキルも時間の経過とともに変動する。これら時間的な変動の影響により、実際の業務プロセスモデルも次第に変化し得る。
【０００６】
・1個の業務システムで行われる狭い範囲の業務では、想定された業務プロセスモデルに従って処理を進めるように、業務システムによって強制できるのに対し、複数の業務システムにまたがる広い範囲の業務ではそのような強制ができない。したがって実際の業務プロセスモデルが変化するのを妨げられるとは限らない。
【０００７】
現状把握は通常、ヒアリングや観察によって行われる。これにはコンサルタントや複数の部署の業務管理者が現場に赴かなければならず、また大勢の現場の作業者が協力する必要がある。そのため多くの労力と時間がかかり、業務改善活動を困難なものにしている。
【０００８】
現状把握にかかる労力と時間の削減を目的として、業務システム上に自動的に残される業務実行時の履歴から現状の業務プロセスモデルを把握する製品や手法が提案されている。
【０００９】
ただし業務プロセスモデルは以下のような情報を含むものとする。
【００１０】
(I1) アクティビティモデルの種類
どのような処理が存在するのか、という情報
(I2) アクティビティモデル間の関係
案件に対してどの順番で処理が行われ、どこからどこまで処理が並列に実行されるのか、という規則
(I3) アクティビティモデルの実行規則
処理の実行に際して、複数の案件を一括処理するのか逐次処理するのか、逐次処理の場合には案件を到着順に処理するのか任意の順に処理するのか、という規則
(I4) アクティビティモデルのリソース割当規則
処理の実行に際して、人的・物的リソースを割当てるための規則
(I5) アクティビティモデルの実行時間分布
各処理の開始から終了までにどのくらいの時間を要するか、という情報
(I6) 分岐における判断条件
アクティビティモデル間の関係において、ある処理の後に実行できる処理が複数存在する場合、どの場合にはどの処理を行うのか、という規則
尚、ここでは、業務プロセスモデルをＡ、Ａに含まれるアクティビティモデルの個数を|Ａ|で表す。アクティビティモデルに対しては、任意の方法で１から|Ａ|までの番号を一意に付与し、ｉ番目のアクティビティモデルをａiで表す。
〔処理の回数・時間・コストを算出するＥＡＩ製品付属の履歴分析ツール〕
例えば業務システムのミドルウェアとして使用されるEnterprise Application Integration(以下ＥＡＩと称する)製品には、履歴分析ツールが付随しているものがある。この履歴分析ツールは、ＥＡＩ製品上であらかじめ定義された業務プロセスモデルに沿って実行された処理に対し、実行回数や処理時間、コスト等の集計値、統計値を業務分析者に提供する。
【００１１】
しかし個々の業務システム内で行われる処理のみを分析対象としているため、どのような処理があるのか、どの処理からどの処理へ遷移するのか、あるいはどこで分岐、合流するのか、といった業務プロセスモデルの構造(I1),(I2)の定義はＥＡＩ製品にあらかじめ与えられていることを前提としており、業務プロセスモデルの構造を推定する機能はもたない。そのため複数の業務システムにまたがって行われる業務を業務改善の対象とした場合には、上記履歴分析ツールでは分析対象の業務プロセスモデルの構造を知ることはできない。
〔業務プロセスモデルの構造推定手法〕
業務実行時の履歴から業務プロセスモデルの構造を推定する手法も検討されている。
【００１２】
ここで履歴には、処理内容とその処理の対象となった案件の識別子、および処理の実行順序に関する情報が最低限含まれているものとする。また履歴には、これら以外に処理の実行者や処理結果、処理に使用されたデータ等が含まれることもある。
【００１３】
案件に対する処理の進め方を表す業務プロセスモデルの構造は、図１１に示す開始ノード、終了ノード、ＯＲジャンクション、ＡＮＤジャンクション、アクティビティノードを有向リンクで接続した有向グラフとして表現される。
【００１４】
図１１に示すように、開始ノードは、業務プロセスの開始点を表し、入力リンクを持たずに１個以上の出力リンクを持つ構造を有し、その動作としては１個の出力リンク先ノードに遷移する。
【００１５】
終了ノードは、業務プロセスの終了点を表し、出力リンクを持たずに１個以上の入力リンクを持つ構造を有し、その動作としては１個の入力リンクもとノードから遷移する。
【００１６】
ＯＲジャンクションは、選択的な合流・分岐点を表し、１個以上の入力リンクと１個以上の出力リンクを持つ構造を有し、その動作としては１個の入力リンクもとノードから遷移し、１個の出力リンク先ノードに遷移する。
【００１７】
ＡＮＤジャンクションは、並列的な合流・分岐点を表し、１個以上の入力リンクと１個以上の出力リンクを持つ構造を有し、その動作としては全ての入力リンクもとノードから遷移し、全ての出力リンク先ノードに遷移する。
【００１８】
アクティビティノードは、アクティビティモデルを表し、１個以上の入力リンクと１個以上の出力リンクを持つ構造を有し、その動作としては全ての入力リンク先ノードから遷移し、全ての出力リンク先ノードに遷移する。
【００１９】
また、案件に対する処理の進め方を表す業務プロセスモデルの構造を表す有向グラフは、開始ノードと終了ノードを１個ずつ含む。またこの有向グラフ中では、どのノードも、開始ノードから有向リンクを順向きにたどることで到達可能であり、かつ終了ノードから有向リンクを逆向きにたどることでも到達可能である。尚、これ以降の説明では、アクティビティモデルａiのノードから、有向リンクを順向きにたどることで他のアクティビティモデルのノードを介さずにアクティビティモデルａi'のノードへ到達できる場合、「ａiはａi'のリンク元アクティビティモデルである」、「ａi'はａiのリンク先アクティビティモデルである」ということにする。
【００２０】
履歴から業務プロセスモデルの構造を推定するためには、業務プロセスモデル中に存在するアクティビティモデルの種類(I1)と、その間のリンク関係(I2)を求める必要がある。業務プロセスモデル中のアクティビティモデルの種類は履歴中の処理内容をリストアップすることで容易に把握可能であるのに対し、アクティビティモデル間の関係は把握が困難である。例えば履歴から、ある案件に対してアクティビティモデルａiの直後にアクティビティモデルａi'が実行されたことがわかっても、その案件に対する複数の処理が並列に実行される可能性を考えると、現状の業務プロセスモデルにおいてａiがａi'のリンク元アクティビティモデルであるとは限らない。したがってアクティビティモデル間のリンク関係を求めることが問題の中心である。
【００２１】
同一案件に対する並列処理を含む業務プロセスモデルのアクティビティモデル間のリンク関係を推定する手法としてαアルゴリズム(Wil van der Aalst, Ton Weijters, Laura Maruster: "Workflow Mining: Discovering Process Models from Event Logs," IEEE Transactions on Knowledge and Data Engineering, Vol. 16, No.9, pp.1128-1142, 2004.)（非特許文献１）が提案されている。αアルゴリズムでは、例えば図１２に示すように、並列処理の開始、終了を、ＡＮＤジャンクションを用いずにアクティビティノードが複数の入力リンクと出力リンクを持つことで表現し、その表現方法で表される範囲内で業務プロセスモデルの構造を推定する。図１２は、αアルゴリズムにおける並列処理の表現方法を表したもので、開始ノード10は出力リンク先ノードとなるアクティビティノードａ1(11)にリンクされ、アクティビティノードａ1(11)は出力リンク先ノードとなる２つのＯＲジャンクション15,16にリンクされている。また、ＯＲジャンクション15は出力リンク先ノードとなるアクティビティノードａ2(12)にリンクされ、ＯＲジャンクション16は出力リンク先ノードとなるアクティビティノードａ3(13),ａ4(14)にリンクされている。これにより、ａ1実行後、ａ2とａ3を並列に実行するか或いはａ2とａ4を並列に実行するプロセスが表現されている。
【００２２】
また、現状の業務プロセスモデルで可能なすべての実行パターンが履歴に含まれていること(履歴の完全性)を前提とし、以下の手順で業務プロセスモデルの構造を推定する。
【００２３】
STEP1：１個のアクティビティモデルの組[ａ1,ａ2],[ａ1,ａ3],…それぞれについて履歴中での同一案件に関するアクティビティモデルの実行順序から個別にアクティビティモデル間の関係を図１３に示す規則にしたがって決定する。
【００２４】
STEP2：アクティビティモデル間の関係を統合することでＯＲジャンクションの有無を決定する。
【００２５】
図１３は、αアルゴリズムにおいて履歴からアクティビティモデルの関係を決定する規則を示し、アクティビティトレースの出現順序に関する条件に対応するアクティビティモデル間の関係を表している。即ち、「ａiがａi'の直前に実行される場合はあるが、直後には実行されない。」という条件のときは「ａiはａi'のリンク元アクティビティもである。（ａi→ａi'）」という関係を有し、「ａiがａi'の直後に実行される場合はあるが、直前には実行されない。」という条件のときは「ａiはａi'のリンク先アクティビティもである。（ａi←ａi'）」という関係を有する。また、「ａiがａi'の直前にも直後にも実行される。」という条件のときは「ａiとａi'は並列に実行されるアクティビティモデル。（ａi‖ａi'）」という関係を有し、「ａiがａi'の直前にも直後にも実行されない。」という条件のときは「それ以外。（ａi≠ａi'）」という関係を有する。
【非特許文献１】Wil van der Aalst, Ton Weijters, Laura Maruster: "Workflow Mining: Discovering Process Models from Event Logs," IEEE Transactions on Knowledge and Data Engineering, Vol. 16, No.9, pp.1128-1142, 2004.
【発明の開示】
【発明が解決しようとする課題】
【００２６】
従来の業務プロセスモデルの構造推定手法では並列処理を含む業務プロセスモデルを、ＡＮＤジャンクションを用いずに表現して推定するため、遷移元あるいは遷移先のアクティビティモデルの数が場合によって異なる業務プロセスモデルの構造を推定できない場合がある。例えば図１４のように、アクティビティモデルａ1の実行後にアクティビティモデルａ2のみに遷移する場合と、アクティビティモデルａ2,ａ3,ａ4のすべてに遷移する場合が存在するような業務プロセスモデルを扱うことができず、推定結果として得られる業務プロセスモデルではすべてに遷移する場合しか許されない。
【００２７】
また従来の業務プロセスモデルの構造推定手法では、図１５及び図１６に示すように、開始ノード、終了ノード、ＯＲジャンクション、アクティビティノードから構成される業務プロセスモデルの構造に対しても、「ＯＲジャンクションのリンク先アクティビティノードが複数ある場合、それらのアクティビティノードは各々入力リンクを1個しかもたない」、「複数のＯＲジャンクションから１個のアクティビティノードへのリンクが存在する場合、それらのＯＲジャンクションは各々入力リンクを１個しか持たない」等のさらに厳しい制限を設けている。現状の業務プロセスモデルがこれらの制限を満たしているとは限らず、どのような推定手法を用いても推定結果は現状の業務プロセスモデルと異ならざるを得ない。
【００２８】
また上記従来手法では現状の業務プロセスモデルで可能なすべての実行パターンが履歴に含まれていることを前提としているが、実際に得られる履歴がこの条件を満たしている可能性は極めて低い。
【００２９】
業務プロセスモデルの構造推定においてアクティビティモデル間の関係を求めることは、履歴中に出現するアクティビティモデルから構成される有向グラフの集合の中から、現状の業務プロセスモデルを探索することだと考えられる。その際、与えられた履歴に含まれる情報から探索範囲を絞り込んでいく。
【００３０】
履歴の完全性が満たされない場合、従来手法では上記STEP1でアクティビティモデル間の関係を決定する際に、必ず、余分なリンク関係を検出したり或いは必要なリンク関係を見落とすことになる。そのためαアルゴリズムでは、与えられた履歴のもとで常に成り立つとは限らない、即ち、リンクの有無に関する断定的な条件によって探索範囲を絞り込むことになり、真の現状の業務プロセスモデルが解の候補から外れ、最終的に誤った業務プロセスモデルを推定結果として得ることになる。また、推定結果として得られる業務プロセスモデルは与えられた履歴を出力可能であることも保障されないため、各案件に対してどのように処理が進められたかを知ることもできず、推定結果から現状の業務プロセスモデルの特徴を捉えることもできない。
【００３１】
また、履歴が完全でない場合には、処理の実行順序情報のみから正しく業務プロセスモデルの構造を推定することは、どのような手法を用いても不可能であるため、それ以外に利用できる情報、例えば処理の実行者、或いは業務分析者があらかじめ知っている断片的な知識も一緒に考慮して推定を行うことにより推定精度を向上する必要がある。しかし、上記STEP1でアクティビティモデル間の関係を決定する際には各関係を個別に決定するため、処理の実行順序以外に利用できる情報が各関係を個別に決定できる情報でなければ利用できない。つまり「アクティビティモデルａiはアクティビティモデルａi'のリンク元ではない」、「アクティビティモデルａiがアクティビティモデルａi'のリンク先である可能性はアクティビティモデルａiがアクティビティモデルａi"のリンク先である可能性よりも低い」といった情報はアクティビティモデルａiとアクティビティモデルａi'の関係を個別に決定できないため、推定精度の向上に利用することは困難である。また、上記STEP1で一度解の候補から外れてしまった業務プロセスモデルは、その後いくら条件を追加しても解の候補にはなりえないため、精度向上にはつながらない。
〔本発明の目的〕
本発明は、αアルゴリズムよりも複雑な業務プロセスモデルの構造も推定し、さらに、実際の業務プロセスモデルでは実行可能なすべての実行パターンが履歴中に含まれていることを必要としないで業務プロセスモデルの構造を推定して提示できる業務プロセスモデルの構造推定方法及びその装置を提供することを目的とする。また、現状の業務プロセスモデルの特徴をより正確に捉えられるようにするため、真の現状の業務プロセスモデルが解となり得るようにするとともに、処理の実行者に関する情報、あるいは業務分析者があらかじめ知っている断片的な知識を併せて利用することで、推定精度の向上を図れるようにすることを目的とする。
【課題を解決するための手段】
【００３２】
本発明は、上記の目的を達成するために、コンピュータ装置からなる業務システムによって所定案件に対して実行された業務における処理の履歴が記録されている履歴蓄積手段を備えた推定装置を用い、前記履歴蓄積手段に蓄積されている案件に対して前記業務システムによって実行される業務における処理の進め方を表した業務プロセスモデルの構造を前記推定装置によって推定して提示する業務プロセスモデルの構造推定方法であって、前記推定装置は、前記業務プロセスモデルにおける処理の進め方に関する制約条件と該業務プロセスモデルが持っている傾向を表す評価関数に関する情報を予め記憶し、前記履歴蓄積手段に記憶されている情報と前記制約条件及び評価関数に関する情報から、前記案件に対応する業務プロセスモデルが満たすべき制約条件と該業務プロセスモデルに対応する評価関数を立式し、前記立式した制約条件を満たし且つ前記立式した評価関数を最適化する数値的な解を求め、前記数値的な解を、個々の処理を単位としてブロック化された１つの業務プロセスモデルに変換して提示する業務プロセスモデルの構造推定方法を提案する。
【００３３】
本発明の業務プロセスモデルの構造推定方法によれば、前記案件に対応する業務プロセスモデルが満たすべき制約条件と該業務プロセスモデルに対応する評価関数が立式され、該立式された制約条件を満たし且つ前記立式された評価関数を最適化する数値的な解が求められ、この数値的な解がブロック化された１つの業務プロセスモデルに変換されて提示される。
【００３４】
さらに、本発明では、上記の業務プロセスモデルの構造推定方法において、１つの処理をブロックとなし、該１つの処理ブロックは、１つの処理ノードと、該処理ノードの入力側に出力側がリンクされた１つのＯＲジャンクションと、前記処理ノードの出力側に入力側がリンクされた１つのＯＲジャンクションと、前記入力側のＯＲジャンクションの入力側に出力側がリンクされた１つ以上のＡＮＤジャンクションと、前記出力側のＯＲジャンクションの出力側に入力側がリンクされた１つ以上のＡＮＤジャンクションとからなるものとして、前記ブロック化された業務プロセスモデルを１つ以上の処理ブロックによって表して提示する業務プロセスモデルの構造推定方法を提案する。
【００３５】
本発明によれば、個々の処理を単位としてブロック化された処理ブロックによって業務プロセスモデルが表現されるため、遷移元及び遷移先の処理ブロックの組合せがどのような業務プロセスモデルであっても推定対象として扱えるようになる。さらに、現状の業務プロセスモデルで可能なすべての実行パターンが履歴に含まれるか否かによらず、与えられた履歴をすべて出力可能であるという常に成立する条件によって解の候補を絞り込むことができるので、真の業務プロセスモデル或いはそれに類似した業務プロセスモデルを推定して提示する可能性が高まる。
【００３６】
また、本発明は、上記の目的を達成するために、コンピュータ装置からなる業務システムによって所定案件に対して実行された業務における処理の履歴が記録されている履歴蓄積手段を備え、前記履歴蓄積手段に蓄積されている案件に対して前記業務システムによって実行される業務における処理の進め方を表した業務プロセスモデルの構造を推定して提示する業務プロセスモデルの構造推定装置であって、前記業務プロセスモデルにおける処理の進め方に関する制約条件と該業務プロセスモデルが持っている傾向を表す評価関数に関する情報が記憶されている事前知識設定部と、前記履歴蓄積手段と前記事前知識設定部に記憶されている情報から、前記案件に対応する業務プロセスモデルが満たすべき制約条件と該業務プロセスモデルに対応する評価関数を、整数計画問題ソルバが利用できる形式で立式する制約条件・評価関数導出部と、前記制約条件・評価関数導出部から与えられた制約条件を満たし且つ評価関数を最適化する数値的な解を求めて出力する前記整数計画問題ソルバと、前記整数計画問題ソルバが出力する数値的な解を、個々の処理を単位としてブロック化された１つの業務プロセスモデルに変換して提示する結果提示部とを備えている業務プロセスモデルの構造推定装置を提案する。
【００３７】
本発明の業務プロセスモデルの構造推定装置によれば、事前知識設定部には、前記業務プロセスモデルにおける処理の進め方に関する制約条件と該業務プロセスモデルが持っている傾向を表す評価関数に関する情報が予め記憶されている。また、制約条件・評価関数導出部によって、前記履歴蓄積手段と前記事前知識設定部に記憶されている情報から、前記案件に対応する業務プロセスモデルが満たすべき制約条件と該業務プロセスモデルに対応する評価関数が整数計画問題ソルバが利用できる形式で立式され、前記整数計画問題ソルバは、前記制約条件・評価関数導出部から与えられた制約条件を満たし且つ評価関数を最適化する数値的な解を求めて出力する。さらに、結果提示部によって、前記整数計画問題ソルバが出力する数値的な解が、個々の処理を単位としてブロック化された１つの業務プロセスモデルに変換されて提示される。
【００３８】
さらに、本発明では、上記の業務プロセスモデルの構造推定装置において、１つの処理をブロックとなし、該１つの処理ブロックは、１つの処理ノードと、該処理ノードの入力側に出力側がリンクされた１つのＯＲジャンクションと、前記処理ノードの出力側に入力側がリンクされた１つのＯＲジャンクションと、前記入力側のＯＲジャンクションの入力側に出力側がリンクされた１つ以上のＡＮＤジャンクションと、前記出力側のＯＲジャンクションの出力側に入力側がリンクされた１つ以上のＡＮＤジャンクションとからなるものとして、前記ブロック化された業務プロセスモデルを１つ以上の処理ブロックによって表して提示する業務プロセスモデルの構造推定装置を提案する。
【００３９】
本発明によれば、個々の処理を単位としてブロック化された処理ブロックによって業務プロセスモデルが表現されるため、遷移元及び遷移先の処理ブロックの組合せがどのような業務プロセスモデルであっても推定対象として扱えるようになる。さらに、現状の業務プロセスモデルで可能なすべての実行パターンが履歴に含まれるか否かによらず、与えられた履歴をすべて出力可能であるという常に成立する条件によって解の候補を絞り込むことができるので、真の業務プロセスモデル或いはそれに類似した業務プロセスモデルを推定して提示する可能性が高まる。
【発明の効果】
【００４０】
本発明の業務プロセスモデルの構造推定方法及びその装置によれば、業務プロセスモデルを、個々の処理を単位としてブロック化された業務プロセスモデルにより表現することで、遷移元および遷移先の処理ブロックの組合せがどのような業務プロセスモデルであっても推定対象として扱えるようになる。また現状の業務プロセスモデルで可能なすべての実行パターンが履歴に含まれるか否かによらず、与えられた履歴をすべて出力可能であるという常に成立する条件によって解の候補を絞り込むことで、真の業務プロセスモデル或いはそれに類似した業務プロセスモデルが推定結果となる可能性を高める。これらにより現状の業務プロセスモデルの構造を履歴から高い精度で自動的に推定して提示できるようになるため、業務分析者は業務改善活動において時間と労力をかけずに現状業務の概略を現場に赴く前に把握できるようになり、その後の現場での現状業務の把握や問題点の分析を従来に比べて効率的に行えるようになる。その結果、継続的な業務改善活動が可能となり、業務プロセスを最適な状態に保つことが容易になる。
【００４１】
さらに、処理の実行順序情報にあわせて、処理の実行者情報や、業務分析者が分析対象の業務プロセスモデルの構造についてあらかじめ知っている、同一実行者は同じ案件に対して並列処理を行わないことを仮定できるか否か、実行者が異なる処理間での遷移は実行者が同じ処理間での遷移よりも起こりにくいことを仮定できるか否か、各アクティビティモデル間のリンクが存在する可能性は他に比べてどのくらい低いか、という知識も利用した推定を行えるようにすることで、推定精度の向上を図ることができる。
【発明を実施するための最良の形態】
【００４２】
以下、図面を参照して本発明の一実施形態を説明する。
【００４３】
〔装置構成の概要〕
図１は本発明の一実施形態における業務プロセスモデルの構造推定装置の構成を示すブロック図である。図において、１はコンピュータ装置からなる業務プロセスモデルの構造推定装置（以下、推定装置と称する）で、履歴データベース（履歴蓄積手段）２、事前知識設定部３、制約条件・評価関数導出部４、整数計画問題ソルバ５、結果提示部６、操作部７から構成されている。
【００４４】
履歴データベース２は、図示しないコンピュータ装置からなる業務システムによって業務が実行された際、この業務実行時に残された履歴をデータベースまたはファイルに保持する。尚、履歴データベースに蓄積されている情報には、処理の実行順序情報および処理の実行者に関する情報も含まれている。
【００４５】
事前知識設定部３には、業務プロセスモデルにおける処理の進め方に関する制約条件と業務プロセスモデルが持っている傾向を表す評価関数に関する情報が記憶されている。制約条件としては、業務分析者が分析対象の業務プロセスモデルの構造についてあらかじめ知っている知識が情報として予め記憶されている。例えば、同一実行者は同じ案件に対して並列処理を行わないことを仮定できるか否か、実行者が異なる処理間での遷移は実行者が同じ処理間での遷移よりも起こりにくいことを仮定できるか否か、各アクティビティモデル間のリンクが存在する可能性は他に比べてどのくらい低いか、という知識の情報が制約条件として予め事前知識設定部３に保持されている。
【００４６】
制約条件・評価関数導出部４は、業務プロセスモデルがブロック化された業務プロセスモデル（以下、ブロック化業務プロセスモデルと称する）として表現されることを前提として、後述する図６に示す手順により、履歴データベース２と事前知識設定部３に保持されている情報から、業務プロセスモデルが満たすべき制約条件と、業務プロセスモデルが持っている傾向を表す評価関数を、整数計画問題ソルバが利用できる形式で立式する。
【００４７】
整数計画問題ソルバ５は、制約条件・評価関数導出部４から与えられた制約条件を満たし且つ評価関数を最適化する数値的な解を求める。
【００４８】
結果提示部６は、整数計画問題ソルバ５が出力する数値的な解を、後述する図７乃至図１０に示す手順によりブロック化された１つの業務プロセスモデルに変換して業務分析者に提示する。
【００４９】
操作部７は、コンピュータ装置のキーボードやマウス及び表示器から構成され、業務分析者によって、業務プロセスモデルにおける処理の進め方に関する制約条件と該業務プロセスモデルが持っている傾向を表す評価関数に関する情報を事前知識設定部３に入力できるようにする。
【００５０】
上記構成よりなる推定装置１は、次の(a)〜(e)を特徴としている。
【００５１】
(a) 遷移元及び遷移先のアクティビティモデルの組合せがどのような業務プロセスモデルであっても推定対象として扱えるようにするために、１個のアクティビティノードがリンク元及びリンク先のそれぞれにＯＲジャンクションを１個ずつもち、さらにそれぞれのＯＲジャンクションがリンク元またはリンク先にＡＮＤジャンクションを１個以上もつアクティビティブロックを単位としたブロック化業務プロセスモデルにより業務プロセスモデルを扱うこと。
【００５２】
(b) 現状の業務プロセスモデルで可能なすべての実行パターンが履歴に含まれるか否かによらず、真の業務プロセスモデルあるいはそれに類似した業務プロセスモデルが推定結果となる可能性を高めるために、有向グラフの集合の中から現状の業務プロセスモデルの構造を探索する際に、与えられた履歴をすべて出力可能であるという常に成立する条件によって解の候補を絞り込むこと。
【００５３】
(c) 推定精度を向上させるために、処理の実行順序情報に加えて、処理の実行者情報や、業務分析者が分析対象の業務プロセスモデルの構造についてあらかじめ知っている知識に関する情報、すなわち同一実行者は同じ案件に対して並列処理を行わないことを仮定できるか否か、実行者が異なる処理間での遷移は実行者が同じ処理間での遷移よりも起こりにくいことを仮定できるか否か、各アクティビティモデル間のリンクが存在する可能性は他に比べてどのくらい低いか、という知識に関する情報も、現状の業務プロセスモデルの構造を探索する際の制約条件あるいは評価関数として利用すること。
【００５４】
(d) 現状の業務プロセスモデルを推定するため制約条件を満たし、評価関数を最適にする業務プロセスモデルの構造を探索する際に、アクティビティモデル間のリンクの有無やアクティビティインスタンス間の遷移の有無を整数変数で表し、制約条件と評価関数をそれら整数変数に関する線形式として表すことで、解の探索を整数計画問題の求解として実現すること。
【００５５】
(e) 整数計画問題を解くにあたり同時に値を求める変数の数を減らすため、制約条件を、アクティビティモデル間のリンクの有無のみに関する条件に書き換え、分割して解くこと。
【００５６】
以下に本実施形態の詳細を説明する。
【００５７】
遷移元及び遷移先のアクティビティモデルの組合せがいかなるものであってもアクティビティモデル間の関係を正しく表現した業務プロセスモデルの構造を推定して提示できるようにするためには、ＯＲジャンクションとＡＮＤジャンクションを組合せて使用できる必要がある。
【００５８】
一方、ＯＲジャンクションとＡＮＤジャンクションは履歴として残らないため、それぞれいくつあるかもわからない。そのためＯＲジャンクションとＡＮＤジャンクションが業務プロセスモデル中の任意の場所にあることを許すと、アクティビティノード間をどのように接続するかの自由度が大きくなり、推定が困難になる。したがって業務プロセスモデルを一定のパターンの組合せとして表現できたほうが望ましい。
【００５９】
このため本実施形態では、図２に示すようなアクティビティブロック100を定義する。このアクティビティブロック100は、１個のアクティビティノードａi(101)がリンク元及びリンク先にＯＲジャンクション102,103を１個ずつもち、さらにそれぞれのＯＲジャンクション102,103がそのリンク元またはリンク先にＡＮＤジャンクション104,105を1個以上もった構造をなしている。
【００６０】
そして図３に示すように、複数のアクティビティブロック110,120,130,140,150を、ＯＲジャンクション(201〜207)１個を介して互いに接続（リンク）したものとして業務プロセスモデルを扱い、その構造の推定及び提示を行う。ただし任意のアクティビティモデルａiとアクティビティモデルａi'について、アクティビティモデルａiのアクティビティブロックをリンク元にもち、且つアクティビティモデルａi'のアクティビティブロックをリンク先にもつＯＲジャンクションは、業務プロセスモデル中に最大１個のみ存在するものとする。また、ＯＲジャンクションとＡＮＤジャンクションの各組について、その間のリンクは最大１個であるとする。尚、以降の説明では、上記構成によって表現された業務プロセスモデルをブロック化業務プロセスモデルと称する。
【００６１】
図３において、アクティビティブロック110は、１個のアクティビティノードａ1(111)と、２個のＯＲジャンクション112,113、３個のＡＮＤジャンクション114〜116によって構成され、アクティビティノードａ1(111)の入力側はＯＲジャンクション112を介してＡＮＤジャンクション114の出力側に接続され、ＡＮＤジャンクション114の入力側は開始ノード101に接続されている。また、アクティビティノードａ1(111)の出力側はＯＲジャンクション113を介してＡＮＤジャンクション115,116のそれぞれの入力側に接続されている。
【００６２】
アクティビティブロック120は、１個のアクティビティノードａ2(121)と、２個のＯＲジャンクション122,123、５個のＡＮＤジャンクション124〜128によって構成され、アクティビティノードａ2(121)の入力側はＯＲジャンクション122を介してＡＮＤジャンクション124〜126のそれぞれの出力側に接続され、ＡＮＤジャンクション124の入力側は開始ノード101に接続されている。また、アクティビティノードａ2(121)の出力側はＯＲジャンクション123を介してＡＮＤジャンクション127,128のそれぞれの入力側に接続されている。また、ＡＮＤジャンクション128の出力側はＯＲジャンクション205を介してＡＮＤジャンクション126の入力側に接続されている。
【００６３】
アクティビティブロック130は、１個のアクティビティノードａ3(131)と、２個のＯＲジャンクション132,133、２個のＡＮＤジャンクション134,135によって構成され、アクティビティノードａ3(131)の入力側はＯＲジャンクション132を介してＡＮＤジャンクション134の出力側に接続され、ＡＮＤジャンクション134の入力側はＯＲジャンクション201を介してアクティビティブロック110のＡＮＤジャンクション115,116のそれぞれの出力側に接続されている。また、アクティビティノードａ3(131)の出力側はＯＲジャンクション133を介してＡＮＤジャンクション135の入力側に接続されている。
【００６４】
アクティビティブロック140は、１個のアクティビティノードａ4(141)と、２個のＯＲジャンクション142,143、４個のＡＮＤジャンクション144〜147によって構成され、アクティビティノードａ4(141)の入力側はＯＲジャンクション142を介してＡＮＤジャンクション144,145のそれぞれの出力側に接続され、ＡＮＤジャンクション144の入力側はＯＲジャンクション202を介してアクティビティブロック110のＡＮＤジャンクション116の出力側に接続され、ＡＮＤジャンクション145の入力側はＯＲジャンクション204を介してアクティビティブロック120のＡＮＤジャンクション127の出力側に接続されている。また、アクティビティノードａ4(141)の出力側はＯＲジャンクション143を介してＡＮＤジャンクション146,147のそれぞれの入力側に接続されている。また、ＡＮＤジャンクション147の出力側はＯＲジャンクション207を介してアクティビティブロック120のＡＮＤジャンクション145の入力側に接続されている。
【００６５】
アクティビティブロック150は、１個のアクティビティノードａ5(151)と、２個のＯＲジャンクション152,153、４個のＡＮＤジャンクション154〜157によって構成され、アクティビティノードａ5(151)の入力側はＯＲジャンクション152を介してＡＮＤジャンクション154〜156のそれぞれの出力側に接続され、ＡＮＤジャンクション154,155の入力側はＯＲジャンクション203を介してアクティビティブロック130のＡＮＤジャンクション135の出力側に接続され、ＡＮＤジャンクション155,156の入力側はＯＲジャンクション206を介してアクティビティブロック140のＡＮＤジャンクション146の出力側に接続されている。また、アクティビティノードａ5(151)の出力側はＯＲジャンクション153を介してＡＮＤジャンクション157の入力側に接続されている。また、ＡＮＤジャンクション157の出力側は終了ノード102に接続されている。
【００６６】
上記のように、１つのアクティビティノードａi(101)を持つアクティビティブロック100を考え、アクティビティブロック100は、１個のアクティビティノードａi(101)がリンク元及びリンク先にＯＲジャンクション102,103を１個ずつもち、さらにそれぞれのＯＲジャンクション102,103がそのリンク元またはリンク先にＡＮＤジャンクション104,105を1個以上もった構造をなしていると定義することにより、業務プロセスモデルを一定のパターンの組合せとして表現することができる。
【００６７】
さらに本実施形態では、常に成立する条件、すなわち与えられた履歴をすべて出力するために業務プロセスモデルが満たさなければならない条件によって探索範囲を絞り込む。また、処理の実行順序情報に加えて、履歴中に含まれる処理の実行者に関する情報や、業務分析者が分析対象の業務プロセスモデルの構造についてあらかじめ知っている知識の情報、すなわち同一実行者は同じ案件に対して並列処理を行わないことを仮定できるか否か、実行者が異なる処理間での遷移は実行者が同じ処理間での遷移よりも起こりにくいことを仮定できるか否か、各アクティビティモデル間のリンクが存在する可能性は他に比べてどのくらい低いか、という業務プロセスモデルにおける処理の進め方に関する知識の情報を制約条件として追加し、さらに解の候補を絞り込む。また、業務プロセスモデルが持っている傾向を評価関数として表現し、特定の特徴を持った業務プロセスモデルを結果として得やすくする。これらの制約条件を満たし、評価関数を最適化する業務プロセスモデルの構造の探索は、制約条件や評価関数を数式として記述し、整数計画問題に帰着することで実現する。
【００６８】
以下では業務プロセスモデルと履歴の関係を明確にし、制約条件と評価関数について説明する。その後、変数を定義して、制約条件および評価関数をその変数を用いて表現することにより整数計画問題として表現する方法、および整数計画問題を解いて得られる数値的な解からブロック化業務プロセスモデルを得る方法を説明する。なお、整数計画問題の求解には既存の適切なアルゴリズムを使用する。
［業務プロセスモデルと履歴の関係］
まず、制約条件、評価関数の詳細な説明をするために、業務プロセスモデルと履歴の関係を図４を参照して説明する。
【００６９】
アクティビティモデル及び業務プロセスモデルは、複数の案件に対する処理と、処理の進め方をまとめて表したものである。それに対し、個々の案件に対する処理と、処理の進め方を表したものを各々アクティビティインスタンス、業務プロセスインスタンスとする。
【００７０】
アクティビティインスタンスはアクティビティモデルの実行それぞれを表すものであり、同じ案件に対する同じアクティビティモデルの実行であっても毎回異なるアクティビティインスタンスと考える。
【００７１】
業務プロセスインスタンスは、同じ案件に関係するアクティビティインスタンスとその間の遷移関係であり、１個の業務プロセスモデルに対して案件の数に対応して複数存在する。
【００７２】
また、アクティビティインスタンスの実行時に残される情報をアクティビティトレース、同じ案件に関するアクティビティトレースを時系列に従って１次元に並べたものを業務プロセストレース、複数の案件に関する業務プロセストレースの集合を履歴とする。ただしアクティビティトレースはアクティビティインスタンスの実行時に１回出力されるものとする。この仮定は本発明の適用対象を制限するものではなく、単に履歴から推定される業務プロセスモデルにおけるアクティビティモデルの粒度がアクティビティトレースによって決まることを意味するだけである。つまり、例えば「会議」という処理が実行される際に、「会議」の開始時と終了時にそれぞれ「会議開始」、「会議終了」という情報が残される場合が考えられるが、その場合には履歴から推定される業務プロセスモデルにおいては「会議」ではなく「会議開始」、「会議終了」がアクティビティモデルとなる。
【００７３】
尚、これ以降の説明では、案件やインスタンス、トレースを以下のように表記する。
【００７４】
・案件の集合をＯ、案件の数を|Ｏ|で表す。各条件に対しては、任意の方法で１から|Ｏ|までの番号を一意に付与し、ｗ番目の案件を。Ｏwで表す。
【００７５】
・案件Ｏwに関する業務プロセスインスタンスをＢw、Ｂwに含まれるアクティビティインスタンスの個数を  |Ｂw|で表す。アクティビティインスタンスに対しては、実行された順に１から|Ｂw|までの番号を一意に付与し、ｊ番目に実行されたアクティビティインスタンスをｂwjで表す。
【００７６】
・案件Ｏwに関する業務プロセストレースをＣw、Ｃwに含まれるアクティビティトレースの個数を|Ｃw|で表す。アクティビティトレースに対しては、出現する順に１から|Ｃw|までの番号を一意に付与し、ｊ番目に出現するアクティビティトレースをｃwjで表す。
【００７７】
また、アクティビティインスタンスｂwjがＡの何番目のアクティビティモデルのインスタンスであるかをｉ(w,j)によって表す。つまりアクティビティトレースｃwjのアクティビティインスタンスはｂwjであり、アクティビティインスタンスｂwjのアクティビティモデルはａi(w,j)である。さらにアクティビティインスタンスｂwjの実行後、業務プロセスモデル上でアクティビティモデルａi(w,j)の出力リンクをたどり、他のアクティビティノードを経由せずにアクティビティモデルａi(w,j)に到達し、アクティビティインスタンスｂwjが実行される場合、「アクティビティインスタンスｂwjはアクティビティインスタンスｂwj'の遷移元である」、「アクティビティインスタンスｂwj'はアクティビティインスタンスｂwjの遷移先である」と定義する。
【００７８】
図４において、300は業務プロセスモデルＡであり、開始ノード301と、アクティビティモデルａ1(311),ａ2(312),ａ3(313),ａ4(314),ａ5(315),ａ6(316)、ＡＮＤジャンクション321,322、ＯＲジャンクション331〜334によって表されている。
【００７９】
開始ノード301はアクティビティモデルａ1(311)の入力側に接続され、アクティビティモデルａ1(311)の出力側はＡＮＤジャンクション321を介してアクティビティモデルａ2(312)の入力側に接続されると共にＡＮＤジャンクション321の出力側からＯＲジャンクション331を介してアクティビティモデルａ5(315)の入力側に接続されている。さらに、アクティビティモデルａ5(315)の出力側はＯＲジャンクション334を介してＡＮＤジャンクション322の入力側に接続されると共にＯＲジャンクション334の出力側からＯＲジャンクション331の入力側に接続されている。
【００８０】
アクティビティモデルａ2(312)の出力側はＯＲジャンクション332を介してアクティビティモデルａ3(313)とアクティビティモデルａ4(314)のそれぞれの入力側に接続されている。アクティビティモデルａ3(313)とアクティビティモデルａ4(314)の出力側はＯＲジャンクション333を介してＡＮＤジャンクション322の入力側に接続されている。ＡＮＤジャンクション322の出力側はアクティビティモデルａ6(316)の入力側に接続され、アクティビティモデルａ6(316)の出力側は終了ノード302に接続されている。
【００８１】
この業務プロセスモデルＡ(300)では、例えばアクティビティモデルａ1(311)はアクティビティモデルａ2(312)とアクティビティモデルａ5(315)のリンク先となる。また、アクティビティモデルａ2(312)とアクティビティモデルａ5(315)はアクティビティモデルａ1(311)のリンク元となる。
【００８２】
また、図４における400は業務プロセスモデルＡ(300)のｗ番目の業務プロセスインスタンスＢwである。ここで、ｂwjは業務プロセスインスタンスＢwでｊ番目に開始されたアクティビティインスタンスであり、アクティビティインスタンスｂw1にはアクティビティモデルａ1が対応し、アクティビティインスタンスｂw2にはアクティビティモデルａ2が対応し、アクティビティインスタンスｂw3にはアクティビティモデルａ5が対応している。さらに、アクティビティインスタンスｂw4にはアクティビティモデルａ3が対応し、アクティビティインスタンスｂw5にはアクティビティモデルａ5が対応し、アクティビティインスタンスｂw6にはアクティビティモデルａ6が対応している。
【００８３】
この業務プロセスインスタンスＢw(400)では、アクティビティインスタンスｂw1(401)はアクティビティインスタンスｂw2(402)とアクティビティインスタンスｂw3(403)に遷移し、アクティビティインスタンスｂw2(402)はアクティビティインスタンスｂw4(404)に遷移し、アクティビティインスタンスｂw3(403)はアクティビティインスタンスｂw5(405)に遷移する。さらに、アクティビティインスタンスｂw4(404)とアクティビティインスタンスｂw5(405)はアクティビティインスタンスｂw6(406)に遷移する。
【００８４】
ここで、例えば、アクティビティインスタンスｂw1(401)はアクティビティインスタンスｂw2(402)とアクティビティインスタンスｂw3(403)の遷移元であり、アクティビティインスタンスｂw2(402)とアクティビティインスタンスｂw3(403)はアクティビティインスタンスｂw1(401)の遷移先である。
【００８５】
また、図４における500は業務プロセスインスタンスＢwの業務プロセストレースＣwである。ここで、Ｃwjはアクティビティインスタンスｂwjのアクティビティトレースである。アクティビティトレースＣw1はアクティビティモデルａ1を実行することを表し、アクティビティトレースＣw2はアクティビティモデルａ2を実行することを表し、アクティビティトレースＣw3はアクティビティモデルａ5を実行することを表し、アクティビティトレースＣw4はアクティビティモデルａ3を実行することを表し、アクティビティトレースＣw5はアクティビティモデルａ5を実行することを表し、アクティビティトレースＣw6はアクティビティモデルａ6を実行することを表している。
［制約条件］
与えられた履歴をすべて出力するために業務プロセスのモデルとインスタンスが満たさなければならない条件は、同じ業務プロセスインスタンスに含まれるアクティビティインスタンス間の関係、および業務プロセスのモデルとインスタンス間の関係から抽出される。アクティビティインスタンスｂwjが業務プロセスインスタンスＢwにおいてｊ番目に実行されるためには、アクティビティインスタンスｂwjの遷移元と遷移先に関して以下の制約条件を満たす必要がある。
【００８６】
・アクティビティインスタンスｂwjの遷移元に関する条件
ｒw1f(j):業務プロセスインスタンスＢwに含まれるアクティビティインスタンスのうち、アクティビティインスタンスｂwjの実行前に既に実行されているアクティビティインスタンスｂw1,...,ｂwj-1はアクティビティインスタンスｂwjへ遷移可能なアクティビティインスタンスである。
【００８７】
ｒw2f(j):業務プロセスインスタンスＢwに含まれるアクティビティインスタンスのうち、アクティビティインスタンスｂwjの実行前にまだ実行されていないアクティビティインスタンスｂwj,...,ｂw|Bw|はアクティビティインスタンスｂwjの遷移元にはなり得ない。
【００８８】
ｒw3f(j):１＜ｊ≦|Ｂw|の場合、アクティビティインスタンスｂwjへ遷移可能なアクティビティインスタンスのうち少なくとも１個がアクティビティインスタンスｂwjの遷移元である。
【００８９】
ｒw4f(j):アクティビティモデルが同じである複数のアクティビティインスタンスのうち、アクティビティインスタンスｂwjの遷移元は最大１個ある。
【００９０】
ｒw5f(j):アクティビティインスタンスｂwj'がアクティビティインスタンスｂwjの遷移元であるならば、アクティビティモデルａi(w,j')はアクティビティモデルａi(w,j)のリンク元である。
【００９１】
・アクティビティインスタンスｂwjの遷移先に関する条件
ｒw1b(j):業務プロセスインスタンスＢwに含まれるアクティビティインスタンスのうち、アクティビティインスタンスｂwjの実行後にまだ実行されていないアクティビティインスタンスｂwj+1,...,ｂw|Bw|はアクティビティインスタンスｂwjから遷移可能なアクティビティインスタンスである。
【００９２】
ｒw2b(j):業務プロセスインスタンスＢwに含まれるアクティビティインスタンスのうち、畔の実行後に既に実行されているアクティビティインスタンスｂw1,...,ｂwjはアクティビティインスタンスｂwjの遷移先にはなり得ない。
【００９３】
ｒw3b(j):１≦ｊ＜|Ｂw|の場合、アクティビティインスタンスｂwjから遷移可能なアクティビティインスタンスのうち少なくとも１個がアクティビティインスタンスｂwjの遷移先である。
【００９４】
ｒw4b(j):アクティビティモデルが同じである複数のアクティビティインスタンスのうち、アクティビティインスタンスｂwjの遷移先は最大１個ある。
【００９５】
ｒw5b(j):アクティビティインスタンスｂwj'がアクティビティインスタンスｂwjの遷移先であるならば、アクティビティモデルａi(w,j')はアクティビティモデルａi(w,j)のリンク先である。
【００９６】
これらの条件は、履歴中に含まれるすべての案件Ｏwとそれに関連するアクティビティインスタンスｂwjに対して成立する必要がある。尚、これ以降の説明では、
【００９７】
【数１】
2006338274.tif 000003
【００９８】
とする。
【００９９】
また、履歴からアクティビティインスタンスの実行者がわかり、且つ同一の実行者は同じ案件に対して並列処理を行わないことを業務分析者の持つ事前知識の情報から仮定できる場合には、以下の条件を満たす必要がある。
【０１００】
s:同一実行者が実行したアクティビティインスタンス間での遷移は直前、直後に限られる。
【０１０１】
与えられた履歴をすべて出力するために業務プロセスのモデルとインスタンスが満たさなければならない条件に加えてこの条件を加えることで、「同一の実行者は同じ案件に対して並列処理を行わない」という仮定が正しい場合には真の現状の業務プロセスモデルを解の候補に含めたまま、解の候補をより絞り込むことができ、推定精度の向上が図られる。
【０１０２】
以上の制約条件のうち、ｒw2f(j),ｒw3f(j),ｒw4f(j),sの一例を図５に示す。図５において、ｙwj,j'は整数変数で、アクティビティインスタンスｂwjがアクティビティインスタンスｂwj'の遷移元アクティビティインスタンスである場合１、そうでない場合０をとる整数変数である。
【０１０３】
図５に示す例では、アクティビティインスタンスｂw1〜ｂw10までが順に実行されることを表し、アクティビティインスタンスｂw1〜ｂw10のそれぞれに対応するアクティビティモデルは順にａ1,ａ2,ａ3,ａ4,ａ3,ａ5,ａ4,ａ5,ａ6,ａ5である。また、アクティビティインスタンスｂw1,ｂw3,ｂw4,ｂw5,ｂw7は実行者１によって実行され、アクティビティインスタンスｂw2,ｂw6,ｂw8,ｂw10は実行者２によって実行され、アクティビティインスタンスｂw9は実行者３によって実行されることを表している。
【０１０４】
また、図５に示す例では、制約条件ｒw2f(7)によって、アクティビティインスタンスｂw8,ｂw9,ｂw10からアクティビティインスタンスｂw7へ遷移することはないことを表し、制約条件ｒw3f(7)によって、アクティビティインスタンスｂw1〜ｂw6のうちの最低どれか１個からアクティビティインスタンスｂw7に遷移することを表している。さらに、制約条件ｒw4f(7)によって、アクティビティインスタンスｂw3,ｂw5の両方からアクティビティインスタンスｂw7に遷移することはないことを表し、制約条件ｓによって、アクティビティインスタンスｂw1,ｂw3,ｂw4からアクティビティインスタンスｂw7に遷移することはないことを表している。
［評価関数］
一般には上記の制約条件を満たす業務プロセスモデルは複数存在し、それらをすべて列挙することは計算量の点から困難である。従って本実施形態では、以下に示すような推定結果が持つべき望ましい傾向を評価関数として与え、評価関数を最適にする解を求めることで最終的に１個の解を得る。
【０１０５】
即ち、推定すべき業務プロセスモデルに対する情報が全くない場合には、例えばすべてのアクティビティモデル間にリンク関係がある業務プロセスモデルは、どのような履歴に対しても解の候補となり、現状の業務プロセスモデルの特徴を表していない。業務の特徴を把握するという目的からすると、必ずしも真の現状の業務プロセスモデルではないとしても、与えられた履歴を出力可能な、できる限り無駄なリンク関係を含まない業務プロセスモデルが望ましい。従って無駄なリンクや遷移が少ないほど良い評価を与えるようにする。
【０１０６】
また、履歴から処理の実行者がわかり、且つ実行者が同じ処理間での遷移は実行者が異なる処理間での遷移より起こりやすいと考えられる場合には、実行者が異なるリンクと遷移が少ないほど良い評価を与えるようにする。
【０１０７】
さらに、業務システム構築時に想定された業務プロセスモデルが利用可能であり、且つ現状の業務が大筋では想定された業務プロセスモデルに従っていることが予想できる場合等、どのアクティビティモデル間にリンクが存在する可能性が低いかが予想できる場合には、存在する可能性の低いリンクが少ないほど良い評価を与えるようにする。
［整数計画問題としての記述］
業務実行履歴からの現状の業務プロセスモデルの構造を自動的に推定できるようにするため、上記の制約条件を満たし、評価関数を最適化する業務プロセスモデルを求める手順を計算機（コンピュータ装置）によって機械的に実現できるように具体化する。
【０１０８】
業務プロセスインスタンスＢwにおいて、ｊstart番目からｊend番目までのアクティビティインスタンスの集合をＢw(ｊstart,ｊend)とする。また集合Ｂw(ｊstart,ｊend)において、アクティビティモデルａiのインスタンスの集合を集合Ｂwi(ｊstart,ｊend)とする。つまり次式で定義される。
【０１０９】
【数２】
2006338274.tif 000004
【０１１０】
ただし集合Ｂw(1,|Ｂw|)を単にＢw、集合Ｂwi(1,|Ｂw|)を単に集合Ｂwiと表記することもある。さらにアクティビティインスタンスｂwjへ遷移可能なアクティビティインスタンスの集合と遷移不可能なアクティビティインスタンスの集合をそれぞれ集合Ｕwf(j),集合Ｕwf(j)とし、アクティビティインスタンスｂwjから遷移可能、不可能なアクティビティインスタンスの集合をそれぞれ集合Ｕwb(j),集合Ｕwb(j)とする。集合Ｕwf(j),集合Ｕwb(j)は集合Ｕwf(j),集合Ｕwb(j)を用いて以下のように表される。
【０１１１】
【数３】
2006338274.tif 000005
【０１１２】
尚、これ以降の説明では任意の集合Ωについて、その集合に含まれる要素数を|Ω|のように表す。
【０１１３】
ここで業務プロセスモデルにおけるリンク関係を数学的に扱うため、アクティビティモデルａiとアクティビティモデルａi'のリンク関係を、アクティビティモデルａiがアクティビティモデルａi'のリンク元アクティビティモデルである場合１、そうでない場合０をとる整数変数ｘi,i'で表す。また業務プロセスインスタンスＢwにおける遷移関係を数学的に扱うため、アクティビティインスタンスｂwjとアクティビティインスタンスｂwj'の遷移を、アクティビティインスタンスｂwjがアクティビティインスタンスｂwj'の遷移元アクティビティインスタンスである場合１、そうでない場合０をとる整数変数ｙwj,j'で表す。
【０１１４】
まず制約条件について説明する。処理の実行順序以外の情報を考慮しない場合、整数変数ｘi,i',ｙwj,j'を使うと制約条件ｒw1f(j),...,ｒw5f(j),ｒw1b(j),...,ｒw5b(j)は以下のように表される。
【０１１５】
【数４】
2006338274.tif 000006
【０１１６】
履歴からアクティビティインスタンスの実行者がわかり、且つ同一の実行者は同じ案件に対して並列処理を行わないことを業務分析者の持つ事前知識の情報から仮定できる場合には、任意の方法で実行者に一意の番号を割り振り、ｋ番目の実行者をｐkと表記する。アクティビティインスタンスｂwjの実行者の番号をｋ(w,j)によって表す。つまりアクティビティインスタンスｂwjの実行者はｐk(w,j)である。また、集合Ｂw(ｊstart,ｊend)において、実行者がｐkであるアクティビティインスタンスの集合を集合Ｂw(k)(ｊstart,ｊend)とする。つまり次式で定義される。
【０１１７】
【数５】
2006338274.tif 000007
【０１１８】
このとき、
【０１１９】
【数６】
2006338274.tif 000008
【０１２０】
である。制約条件ｒw2f(j),...,ｒw5f(j),ｒw2b(j),...,ｒw5b(j)は処理の実行順序以外の情報を考慮しない場合において、上記集合Ｕwf(j),集合Ｕwb(j)を使ったものになる。
【０１２１】
次に評価関数について説明する。処理の実行順序以外の情報を考慮しない場合、無駄なリンクや遷移が少ないほど良い評価を与えるためには、以下の評価関数の最小化を考えればよい。
【０１２２】
【数７】
2006338274.tif 000009
【０１２３】
履歴からアクティビティインスタンスの実行者がわかり、且つ実行者が異なるアクティビティのモデル間、インスタンス間での遷移は実行者が同じアクティビティのモデル間、インスタンス間での遷移よりも起こりにくいことを業務分析者の持つ事前知識の情報から仮定できる場合には、
μi,i'＝１  …  ａiの実行者とａi'の実行者が同じ場合
μi,i'＞１  …  ａiの実行者とａi'の実行者が異なる場合
νwj,j'＝１  …  ｂwjの実行者とｂwj'の実行者が同じ場合
νwj,j'＞１  …  ｂwjの実行者とｂwj'の実行者が異なる場合
として、以下の評価関数の最小化を考える。
【０１２４】
【数８】
2006338274.tif 000010
【０１２５】
さらに業務システム構築時に想定された業務プロセスモデルが利用可能であり、且つ現状の業務が大筋では想定された業務プロセスモデルに従っていることを予想できる場合等、どのアクティビティモデル間にリンクが存在する可能性が低いかが予想できる場合には、存在する可能性がより低いリンクや遷移に対して上式のμi,i'，νwj,j'に大きな値を設定した評価関数を用いる。
【０１２６】
以上で説明したように、任意のｗ，ｊに対する制約条件ｒw2f(j),...,ｒw5f(j),ｒw2b(j),...,ｒw5b(j)と評価関数は整数変数ｘi,i'，ｙwj,j'の線形式として表現されるので、整数計画問題を解くことにより整数変数ｘi,i'とｙwj,j'の値を求めることができる。
【０１２７】
ただし同時に求める変数の数が多いと、整数計画問題を解くのに時間がかかる。そこで本実施形態では上記制約条件と評価関数を変形することでまず整数変数ｘi,i'の値を求め、その結果に基づき、もとの制約条件の下で各ｗ毎に整数変数ｙwj,j'の値を求める。
【０１２８】
まず整数変数ｘi,i'はｒw1f∧ｒw1bあるいはｒw1f∧ｒw1b∧ｓのもとで、ｒw2f∧ｒw4b∧ｒw5fの必要条件であるｒw6f(j)と、ｒw2b∧ｒw4f∧ｒw5bの必要条件であるｒw6b(j)を満たさなければならない。
【０１２９】
【数９】
2006338274.tif 000011
【０１３０】
なお、Φwf,i(j)は、２,...,ｊに含まれるａi(w,j)のアクティビティインスタンスへ遷移可能であり且つアクティビティモデルがａiであるアクティビティインスタンスの集合であり、Φwb,i(j)は、ｊ,...,|Ｂw|−１に含まるａi(w,j)のアクティビティインスタンスから遷移可能であり且つアクティビティモデルがａiであるアクティビティインスタンスの集合であり、それぞれ次式で定義される。
【０１３１】
【数１０】
2006338274.tif 000012
【０１３２】
また、整数変数ｘi,i'のみに関する評価関数としては、以下の関数の最小化を考える。
【０１３３】
【数１１】
2006338274.tif 000013
【０１３４】
制約条件及び評価関数は整数変数ｘi,i'のみの線形式として表現されるので、整数計画問題を解くことにより整数変数ｘi,i'の値を求めることができる。
【０１３５】
次に任意のｗ，ｊに対して、整数変数ｙwj,j'はｒw1f(j)∧ｒw1b(j)あるいはｒw1f(j)∧ｒw1b(j)∧ｓのもとでｒw2f(j),...,ｒw5f(j),ｒw2b(j),...,ｒw5b(j)を満たさなければならない。ｗごとに以下の評価関数の最小化を考えれば、ｗごとに別々に整数計画問題を解くことで整数変数ｙwj,j'を求めることができる。
【０１３６】
【数１２】
2006338274.tif 000014
【０１３７】
次に、制約条件・評価関数導出部４及び整数計画問題ソルバ５が、履歴から制約条件と評価関数を立式し整数変数ｘi,i'とｙwj,j'を求める手順を図６のフローチャートを参照して説明する。なお図６中の「事前知識」とは、同一実行者は同じ案件に対して並列処理を行わないことを仮定できるか否か、実行者が異なる処理間での遷移は実行者が同じ処理間での遷移よりも起こりにくいことを仮定できるか否か、各アクティビティモデル間のリンクが存在する可能性は他に比べてどのくらい低いか、という情報のことである。
【０１３８】
推定装置１が処理を開始すると(1001)、制約条件・評価関数導出部４により、事前知識設定部３に記憶されている事前知識の情報を読み込む(1002)。さらに、履歴データベース２から履歴を読み込み、各案件ｏwごとに、実行された順にアクティビティインスタンスを並べたリスト（業務プロセスインスタンス）Ｂwを作成し(1003)、変数ｗの値を１に設定(1004)した後、変数ｗの値が案件の数|Ｏ|以下であるか否かを判定する(1005)。この判定の結果、変数ｗの値が案件の数|Ｏ|以下でないときは後述する1010の処理に移行し、変数ｗの値が案件の数|Ｏ|以下であるときは変数ｊの値を１に設定し(1006)、変数ｊの値が業務プロセスインスタンスＢwに含まれるアクティビティインスタンスの個数|Ｂw|以下であるか否かを判定する(1008)。この判定の結果、変数ｊの値が個数|Ｂw|以下であるときは、業務プロセスインスタンスＢwに基づいて、事前知識の情報を考慮してｒw1f∧ｒw1bまたはｒw1f∧ｒw1b∧ｓのもとで制約条件ｒw6f(j),ｒw6b(j)を立式し、整数計画問題ソルバに追加する(1008)。この後、変数ｊの値に１を加算して(1009)、前記1007の判定処理に移行する。
【０１３９】
前記1007の判定処理の結果、変数ｊの値が個数|Ｂw|以下でないときは変数ｗの値に１を加算して(1010)、前記1005の判定処理移行する。
【０１４０】
前記1005の判定処理の結果、変数ｗの値が案件の数|Ｏ|以下でないときは、事前知識の情報を考慮して評価関数ｆを立式し、整数計画問題ソルバに最小化対象の評価関数として追加する(1011)。この後、整数計画問題ソルバにより整数変数ｘi,i'の値を求め(1012)、変数ｗの値を１に設定する(1013)。
【０１４１】
次に、変数ｗの値が案件の数|Ｏ|以下であるか否かを判定する(1014)。この判定の結果、変数ｗの値が案件の数|Ｏ|以下でないときは処理を終了する(1022)。また、変数ｗの値が案件の数|Ｏ|以下であるときは変数ｊの値を１に設定し(1015)、変数ｊの値が業務プロセスインスタンスＢwに含まれるアクティビティインスタンスの個数|Ｂw|以下であるか否かを判定する(1016)。この判定の結果、変数ｊの値が個数|Ｂw|以下であるときは、業務プロセスインスタンスＢwに基づいて、事前知識の情報を考慮してｒw1f(j)∧ｒw1b(j)またはｒw1f(j)∧ｒw1b(j)∧ｓのもとで制約条件ｒw2f(j),ｒw3f(j),ｒw4f(j),ｒw5f(j),ｒw2b(j),ｒw3b(j),ｒw4b(j),ｒw5b(j)を立式し、整数計画問題ソルバに追加する(1017)。この後、変数ｊの値に１を加算して(1018)、前記1016の判定処理に移行する。
【０１４２】
前記1016の判定処理の結果、変数ｊの値が個数|Ｂw|以下でないときは、事前知識の情報を考慮して評価関数ｇwを立式し、整数計画問題ソルバに最小化対象の評価関数として追加する(1019)。この後、整数計画問題ソルバにより整数変数ｙwi,i'の値を求め(1020)、変数ｗの値に１を加算して(1021)、前記1014の判定処理に移行する。
［整数変数ｘi,i'とｙwj,j'の値からブロック化業務プロセスモデルへの変換］
上記の処理により求まった整数変数ｘi,i'とｙwj,j'の値からブロック化業務プロセスモデルを求めるには、まず開始ノードと終了ノードを作成する。また各ｉごとに、アクティビティノードａiとそのリンク元ＯＲジャンクション、リンク先ジャンクションを作成し、リンク元ＯＲジャンクションを始点とし且つアクティビティノードａiを終点とするリンクと、アクティビティノードａiを始点とし且つリンク先ＯＲジャンクションを終点とするリンクで接続する。さらに整数変数ｘi,i'＝１となる変数ｉ，ｉ’に対して、アクティビティブロックをアクティビティノードａiからアクティビティノードａi'の向きに中継するＯＲジャンクションを作成する。
【０１４３】
次に、各ｗごと、各ｊごとに、遷移元アクティビティモデル集合Ｖwf(j)と遷移先アクティビティモデル集合Ｖwb(j)を求め、アクティビティノードａi(w,j)の遷移元アクティビティモデル集合の集合Λf(i(w,j))、遷移先アクティビティモデルの集合の集合Λb(i(w,j))に追加する。なお、集合Ｖwf(j),Ｖwb(j)が空集合であっても集合Λf(i(w,j)),Λb(i(w,j))へは追加する。また集合Λf(i(w,j)),Λb(i(w,j))に、集合Ｖwf(j),Ｖwb(j)とアクティビティモデルの集合として同じ集合Ｖw'f(j'),Ｖw'b(j')が存在する場合には集合Ｖwf(j),Ｖwb(j)を追加しない。
【０１４４】
【数１３】
2006338274.tif 000015
【０１４５】
その後、各ｉごとに、集合Λf(i)の各要素Ｖに対して、アクティビティノードａiのリンク元のＯＲジャンクションのリンク元にＡＮＤジャンクションを作成するとともに、集合Ｖが空集合でない場合には、集合Ｖに含まれる各ａi'に対して、アクティビティノードａi'からアクティビティノードａiの向きに中継するＯＲジャンクションを始点とし且つ作成されたＡＮＤジャンクションを終点とするリンクを作成し、集合Ｖが空集合である場合には、開始ノードを始点とし且つ作成されたＡＮＤジャンクションを終点とするリンクを作成する。同様に集合Λb(i)の各要素Ｖに対して、アクティビティノードａiのリンク先のＯＲジャンクションのリンク先にＡＮＤジャンクションを作成するとともに、集合Ｖが空集合でない場合には、集合Ｖに含まれる各ａi'に対して、このＡＮＤジャンクションを始点とし且つアクティビティノードａiからアクティビティノードａi'の向きに中継するＯＲジャンクションを終点とするリンクを作成し、集合Ｖが空集合である場合には、作成されたＡＮＤジャンクションを始点とし且つ終了ノードを終点とするリンクを作成する。
【０１４６】
次に、結果提示部６によって、整数変数ｘi,i'とｙwj,j'の値からブロック化業務プロセスモデルを求める手順の一例を図７乃至図１０に示すフローチャートを参照して説明する。尚、この手順は整数変数ｘi,i'とｙwj,j'の値からブロック化業務プロセスモデルを求める一例であり、実現性を示すためのもので、本発明はこの手順によって限定されるものではない。
【０１４７】
整数変数ｘi,i'とｙwj,j'の値が求まると(2001)、結果提示部６は、開始ノードと終了ノードを作成し(2002)、変数ｉの値を１に設定し(2003)する。この後、変数ｉの値が業務プロセスモデルＡに含まれるアクティビティモデルの個数|Ａ|以下であるか否を判定する(2004)。この判定の結果、変数ｉの値が個数|Ａ|以下でないときは後述する2014の処理に移行し、変数ｉの値が個数|Ａ|以下であるときは、アクティビティノードａiと、アクティビティノードａiのリンク元ＯＲジャンクション、アクティビティノードａiのリンク先ＯＲジャンクションを作成する(2005)。
【０１４８】
次に、アクティビティノードａiのリンク元ＯＲジャンクションからアクティビティノードａiへのリンクを作成すると共に、アクティビティノードａiからアクティビティノードａiのリンク先ＯＲジャンクションへのリンクを作成する(2006)。
【０１４９】
この後、変数ｉ’の値を１に設定し(2007)、変数ｉ’の値が業務プロセスモデルＡに含まれるアクティビティモデルの個数|Ａ|以下であるか否を判定する(2008)。この判定の結果、変数ｉ’の値が個数|Ａ|以下でないときは後述する2013の処理に移行し、変数ｉ’の値が個数|Ａ|以下であるときは、整数変数ｘi,i'の値が１であるか否かを判定する(2009)。この判定の結果、整数変数ｘi,i'の値が１でないときはＯＲジャンクション(2011)を介して後述する2012の処理に移行する。また、整数変数ｘi,i'の値が１であるときはアクティビティブロックをアクティビティノードａiからアクティビティノードａi'の向きに中継するＯＲジャンクションを作成し(2010)、ＯＲジャンクション(2011)を介して後述する2012の処理に移行する。
【０１５０】
処理2012では、変数ｉ’の値に１を加算し(2012)、この後、前記2008の判定処理に移行する。
【０１５１】
処理2013では、変数ｉの値に１を加算し(2013)、この後、前記2004の判定処理に移行する。
【０１５２】
一方、前記2004の判定の結果、変数ｉの値が業務プロセスモデルＡに含まれるアクティビティモデルの個数|Ａ|以下でないときは、変数ｗの値を１に設定し(2014)、変数ｗの値が案件の数|Ｏ|以下であるか否かを判定する(2015)。この判定の結果、変数ｗの値が案件の数|Ｏ|以下でないときは後述する2029の処理に移行し、変数ｗの値が案件の数|Ｏ|以下であるときは変数ｊの値を１に設定し(2016)、変数ｊの値が業務プロセスインスタンスＢwに含まれるアクティビティインスタンスの個数|Ｂw|以下であるか否かを判定する(2017)。この判定の結果、変数ｊの値が個数|Ｂw|以下でないときは後述する2028の処理に移行し、変数ｊの値が個数|Ｂw|以下であるときは、整数変数ｙj,j'の値に基づき、遷移元アクティビティモデルの集合Ｖwf(j)と遷移先アクティビティモデルの集合Ｖwb(j)を求める(2018)。
【０１５３】
次に、ＡＮＤジャンクション2019を介して２種類の処理を平行して行う。一方の処理では、集合Ｖwf(j)が集合Λf(i(w,j))に含まれないか否かを判定し(2020)、集合Ｖwf(j)が集合Λf(i(w,j))に含まれるときはＯＲジャンクション2022及びＡＮＤジャンクション2026を介して処理2027に移行し、集合Ｖwf(j)が集合Λf(i(w,j))に含まれないときは集合Ｖwf(j)を集合Λf(i(w,j))に追加(2021)した後、ＯＲジャンクション2022及びＡＮＤジャンクション2026を介して処理2027に移行する。
【０１５４】
他方の処理では、集合Ｖwb(j)が集合Λb(i(w,j))に含まれないか否かを判定し(2023)、集合Ｖwb(j)が集合Λb(i(w,j))に含まれるときはＯＲジャンクション2025及びＡＮＤジャンクション2026を介して処理2027に移行し、集合Ｖwb(j)が集合Λb(i(w,j))に含まれないときは集合Ｖwb(j)を集合Λb(i(w,j))に追加(2024)した後、ＯＲジャンクション2022及びＡＮＤジャンクション2026を介して処理2027に移行する。
【０１５５】
処理2027では、変数ｊの値に１を加算して(2027)、前記2017の判定処理に移行する。
【０１５６】
処理2028では、変数ｗの値に１を加算して(2028)、前記2015の判定処理に移行する。
【０１５７】
処理2029では、変数ｉの値に１を加算する(2029)。この後、変数ｉの値が業務プロセスモデルＡに含まれるアクティビティモデルの個数|Ａ|以下であるか否を判定する(2030)。この判定の結果、変数ｉの値が個数|Ａ|以下でないときは処理を終了する(2031)。また、変数ｉの値が個数|Ａ|以下であるときは、ＡＮＤジャンクション2032を介して２種類の処理を平行して行う。
【０１５８】
一方の処理では、図９に示すように、集合Λf(j)≠０であるか否かを判定し(2033)、この判定の結果、集合Λf(j)≠０でないときはＡＮＤジャンクション2043を介して前記2030の判定処理に移行し、集合Λf(j)≠０であるときは集合Λf(i)からアクティビティモデルａiの遷移元アクティビティモデルの集合Ｖを取り出す(2034)。
【０１５９】
次いで、アクティビティモデルａiのリンク元ＯＲジャンクションのリンク元にＡＮＤジャンクションを作成し、このＡＮＤジャンクションから上記リンク元ＯＲジャンクションへリンクで接続する(2035)。
【０１６０】
この後、集合Ｖ≠０であるか否かを判定し(2036)、集合Ｖ≠０であるときはＯＲジャンクション2037を介して処理2038に移行し、集合Ｖから遷移元アクティビティモデルａiを取り出す(2038)。次に、アクティビティブロックをアクティビティモデルａiからアクティビティモデルａi'の向きに中継するＯＲジャンクションから、ＡＮＤジャンクションへリンクで接続する(2039)。
【０１６１】
次に、集合Ｖ≠０であるか否かを判定し(2040)、集合Ｖ≠０であるときはＯＲジャンクション2037を介して処理2038に移行し、集合Ｖ≠０でないときはＯＲジャンクション2041を介して前記2033の判定処理に移行する。
【０１６２】
また、前記2036の判定の結果、集合Ｖ≠０でないときは、開始ノードからＡＮＤジャンクションへリンクで接続する(2042)。この後、ＯＲジャンクション2041を介して前記2033の判定処理に移行する。
【０１６３】
他方の処理では、図１０に示すように、集合Λb(j)≠０であるか否かを判定し(2044)、この判定の結果、集合Λb(j)≠０でないときはＡＮＤジャンクション2043を介して前記2030の判定処理に移行し、集合Λb(j)≠０であるときは集合Λb(i)からアクティビティモデルａiの遷移元アクティビティモデルの集合Ｖを取り出す(2045)。
【０１６４】
次いで、アクティビティモデルａiのリンク先ＯＲジャンクションのリンク先にＡＮＤジャンクションを作成し、このＡＮＤジャンクションから上記リンク先ＯＲジャンクションへリンクで接続する(2046)。
【０１６５】
この後、集合Ｖ≠０であるか否かを判定し(2047)、集合Ｖ≠０でないときは、ＡＮＤジャンクションから終了ノードへリンクで接続する(2048)。この後、ＯＲジャンクション2053を介して前記2044の判定処理に移行する。
【０１６６】
また、前記2047の判定の結果、集合Ｖ≠０であるときはＯＲジャンクション2049を介して処理2050に移行し、集合Ｖから遷移先アクティビティモデルａi'を取り出す(2050)。次に、ＡＮＤジャンクションからアクティビティブロックをアクティビティモデルａiからアクティビティモデルａi'の向きに中継するＯＲジャンクションへリンクで接続する(2051)。
【０１６７】
次に、集合Ｖ≠０であるか否かを判定し(2052)、集合Ｖ≠０でないときはＯＲジャンクション2053を介して前記2044の判定処理に移行し、集合Ｖ≠０であるときはＯＲジャンクション2049を介して前記2050の処理に移行する。
【０１６８】
前述したように本実施形態によれば、業務プロセスモデルを、アクティビティブロックを単位としたブロック化業務プロセスモデルにより表現することで、遷移元および遷移先のアクティビティモデルの組合せがどのような業務プロセスモデルであっても推定対象として扱えるようになる。また現状の業務プロセスモデルで可能なすべての実行パターンが履歴に含まれるか否かによらず、与えられた履歴をすべて出力可能である、という常に成立する条件によって解の候補を絞り込むことで、真の業務プロセスモデルあるいはそれに類似した業務プロセスモデルが推定結果となる可能性を高める。さらに処理の実行順序情報にあわせて、処理の実行者情報や、業務分析者が分析対象の業務プロセスモデルの構造についてあらかじめ知っている、同一実行者は同じ案件に対して並列処理を行わないことを仮定できるか否か、実行者が異なる処理間での遷移は実行者が同じ処理間での遷移よりも起こりにくいことを仮定できるか否か、各アクティビティモデル間のリンクが存在する可能性は他に比べてどのくらい低いか、という知識も利用した推定を行えるようにすることで、推定精度の向上を図ることができる。
【０１６９】
これらにより現状の業務プロセスモデルの構造を履歴から高い精度で自動的に推定できるようになるため、業務分析者は業務改善活動において時間と労力をかけずに現状業務の概略を現場に赴く前に把握できるようになり、その後の現場での現状業務の把握や問題点の分析を従来に比べて効率的に行えるようになる。その結果、継続的な業務改善活動が可能となり、業務プロセスを最適な状態に保つことが容易になる。
【０１７０】
尚、本実施形態は、本発明の一具体例を表すものであり、本発明が上記実施形態の構成のみに限定されないことは言うまでもないことである。
【図面の簡単な説明】
【０１７１】
【図１】本発明の一実施形態における推定装置を示す構成図
【図２】本発明の一実施形態におけるアクティビティブロックを示す構成図
【図３】本発明の一実施形態におけるブロック化業務プロセスモデルの一例を示す図
【図４】本発明の一実施形態における業務プロセスモデルと履歴の関係を説明する図
【図５】本発明の一実施形態における遷移に関する制約条件を説明する図
【図６】本発明の一実施形態における履歴から制約条件と評価関数を立式して整数変数を求める手順を説明するフローチャート
【図７】本発明の一実施形態における整数変数の値からブロック化業務プロセスモデルを求める手順を説明するフローチャート
【図８】本発明の一実施形態における整数変数の値からブロック化業務プロセスモデルを求める手順を説明するフローチャート
【図９】本発明の一実施形態における整数変数の値からブロック化業務プロセスモデルを求める手順を説明するフローチャート
【図１０】本発明の一実施形態における整数変数の値からブロック化業務プロセスモデルを求める手順を説明するフローチャート
【図１１】ノード定義を説明する図
【図１２】αアルゴリズムにおける並列処理の表現方法を説明する図
【図１３】αアルゴリズムにおいて履歴からアクティビティモデルの関係を決定する規則を説明する図
【図１４】αアルゴリズムでは扱えない並列処理の構造を説明する図
【図１５】αアルゴリズムでは扱えない業務プロセスモデルの構造を説明する図
【図１６】αアルゴリズムでは扱えない業務プロセスモデルの構造を説明する図
【符号の説明】
【０１７２】
１…業務プロセスモデルの構造推定装置、２…履歴データベース、３…事前知識設定部、４…制約条件・評価関数導出部、５…整数計画問題ソルバ、６…結果提示部、７…操作部、100,110,120,130,140,150…アクティビティブロック、102,103,112,113,122,123,132,133,142,143,152,153,201-207…ＯＲジャンクション、104,105,114-116,124-128,134,135,144-147,154-157…ＡＮＤジャンクション、300…業務プロセスモデル、301…開始ノード、302…終了ノード、311-316…アクティビティモデル、321,322…ＡＮＤジャンクション、331-334…ＯＲジャンクション、400…業務プロセスインスタンス、500…業務プロセストレース。
【図１】
2006338274.tif 000016
【図２】
2006338274.tif 000017
【図３】
2006338274.tif 000018
【図４】
2006338274.tif 000019
【図５】
2006338274.tif 000020
【図６】
2006338274.tif 000021
【図７】
2006338274.tif 000022
【図８】
2006338274.tif 000023
【図９】
2006338274.tif 000024
【図１０】
2006338274.tif 000025
【図１１】
2006338274.tif 000026
【図１２】
2006338274.tif 000027
【図１３】
2006338274.tif 000028
【図１４】
2006338274.tif 000029
【図１５】
2006338274.tif 000030
【図１６】
2006338274.tif 000031