条件判定方法及びプログラム
【課題】従来の条件判定方式では、判定条件内に複数の同一の詳細判定条件が存在する場合、同一の詳細判定条件の条件判定を一度行ったにも関わらず残りの同一の詳細判定条件についても複数回条件判定を行うため、条件判定性能が劣化するという問題があった。
【解決手段】条件判定サーバが外部から入力された判定条件を最適化するステップと、条件判定サーバが最適化した最適判定条件と外部から入力された入力情報が一致するか否かを判定するステップと、を含む条件判定方法。
【解決手段】条件判定サーバが外部から入力された判定条件を最適化するステップと、条件判定サーバが最適化した最適判定条件と外部から入力された入力情報が一致するか否かを判定するステップと、を含む条件判定方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、条件判定方法及びプログラムに関する。
【背景技術】
【0002】
従来、任意の情報が特定の判定条件に一致するか否かを判定する方法に関し、木構造を利用した検索方法が知られている(下記特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特表2000−501861号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、特許文献1に開示された技術では、判定条件内に、ANDとORからなる同一の詳細判定条件(ANDとORからなる同じ構造の詳細判定条件)が複数存在する場合、同一の詳細判定条件の条件判定を一度行ったにも関わらず残りの同一の詳細判定条件についても、判定条件内に存在する回数だけ条件判定を行う必要があるため、条件判定性能が劣化するという問題があった。
【0005】
本発明は、上述した課題を考慮したものであって、同一の詳細判定条件の条件判定回数を少なくする条件判定技術を提供することを目的とする。
【課題を解決するための手段】
【0006】
上記課題を解決するために、本発明は、上記課題を解決する手段を複数含んでいるが、その一例を挙げるならば、入力装置と、表示装置と、前記入力装置から入力された入力情報が特定の判定条件に一致するか否かを判定し、前記表示装置に出力する条件判定サーバと、を備えた条件判定システムにおける条件判定方法であって、前記条件判定サーバは、プログラムを実行するプロセッサと、前記プロセッサによって実行されるプログラムを格納するメモリと、を備え、前記方法は、前記条件判定サーバが、前記判定条件を最適化する手順と、前記条件判定サーバが、前記最適化する手順によって最適化された最適判定条件と、前記入力情報が一致するか否かを判定する手順と、を含むことを特徴とする。
【0007】
本発明の一実施の形態によれば、AND処理とOR処理とで構成されている複数の詳細判定条件で構成される判定条件を含み外部から入力された入力情報に、特定の情報が含まれるか否かを判定する条件判定方法であって、前記判定条件内に、同一の詳細判定条件があるか否かを判定する第1のステップと、前記判定条件内に同一の詳細判定条件がある場合に、前記同一の詳細判定条件を判定結果付き詳細判定条件に包含させて、前記第1のステップに戻り、前記判定条件内に同一の詳細判定条件がなくなると、当該判定条件を最適判定条件として出力する第2のステップと、前記最適判定条件に基づいて条件判定を行う第3のステップと、を有することを特徴とする条件判定方法が提供される。
【0008】
上記の方法では、同一の詳細条件毎に、結果ノードT1等を作成し、その結果ノードに詳細条件の判定結果を内包させて判定結果付き詳細判定条件とすることで、2回目以降の判定処理においては、その判定結果のみを参照することで条件を判断することができ、処理が簡単になるため、処理の高速化、装置の負担の低減が可能となる。
【0009】
また、前記第1のステップにおいて、同一の詳細判定条件があるか否かを判定するステップと、同一の詳細判定条件がない場合に、判定条件最適化部が、前記判定条件を最適判定条件として条件判定部に登録するステップと、同一の詳細判定条件がある場合に、同一の詳細判定条件を集約するステップと、を有し、前記同一の詳細判定条件を集約した後に、前記第2のステップを実行するようにすると良い。
【0010】
以上に示す処理により、判定条件最適化部は、外部から入力された判定条件を最適化した最適判定条件を条件判定部に登録することができる。
【0011】
また、前記集約するステップは、前記判定条件のうち、同一の詳細判定条件の数が最大となる詳細判定条件を求めるステップと、前記詳細判定条件が論理積条件内にあるか否かを判定するステップであって、前記詳細判定条件が論理積条件内にない場合、同一の詳細判定条件の数が次に最大数となる同一の詳細判定条件があるか否かを判定し、前記詳細判定条件が論理積条件内にある場合、前記詳細判定条件が親条件と直接連結されるように論理積条件内で最上位に移動させるステップと、前記判定条件の各親条件の子条件の内、同一の子条件があるか否かを判定するステップと、各親条件の子条件の内、同一の子条件がない場合には次に最大数となる同一の詳細判定条件があるか否かを判定し、各親条件の子条件の内、同一の子条件がある場合にはその同一の子条件を一つに集約するステップと、集約された子条件を親条件とする子条件を、集約された子条件に論理和条件で連結するステップと、集約される子条件を親条件とする子条件があるか否かを判定し、集約される子条件を親条件とする子条件がある場合、次に最大数となる同一の詳細判定条件があるか否かを判定し、集約される子条件を親条件とする子条件がない場合、集約された子条件を親条件とする子条件をすべて削除するステップと、次に最大数となる同一の詳細判定条件があるか否かを判定し、次に最大数となる同一の詳細判定条件がある場合、その詳細判定条件を求めて、詳細判定条件が論理積条件内にあるか否かを判定するステップに戻り、次に最大数となる同一の詳細判定条件がない場合、同一の詳細判定条件を集約した判定条件を出力するステップと、を有することが好ましい。
【0012】
以上に示す処理により、判定条件最適化部が外部から入力された判定条件の内、同一の詳細判定条件がある場合に、その同一の詳細判定条件を集約する。
【0013】
本発明は、上記のいずれかに記載の条件判定方法を、コンピュータに実行させるためのプログラムであっても良く、当該プログラムを記録するコンピュータ読みとり可能なプログラムであっても良い。
【発明の効果】
【0014】
本発明によれば、条件判定を少なくすることができる。
【図面の簡単な説明】
【0015】
【図1】本発明の実施形態による条件判定システムの構成を示す図である。
【図2】本発明の実施形態による条件最適判定部の機能ブロック図である。
【図3】判定条件及び最適判定条件の構成を示す図である。
【図4】判定条件及び最適判定条件における詳細判定条件と判定結果付き詳細判定条件との関係の一例を示す図である。
【図5】条件最適判定処理を示すフローチャート図である。
【図6】同一の詳細判定条件を判定結果付き詳細判定条件に包含する第1の判定処理の流れを示すフローチャート図である。
【図7】本発明の実施形態の判定条件301の最適化処理のうち第2の判定処理の流れを示すフローチャート図である。
【図8】本発明の実施形態による同一の詳細判定条件を集約する処理を示すフローチャート図である。
【図9】条件判定処理の流れを示すフローチャート図である。
【発明を実施するための形態】
【0016】
以下、本発明の実施の形態による条件判定技術ついて図面を参照しながら詳細に説明する。
図1は、本発明の実施形態の条件判定システム1の一構成例を示す機能ブロック図である。図1において、条件判定システム1は、条件判定サーバ101、入力装置108、表示装置110を備える。本発明の実施形態の条件判定システム1は、任意の情報に、特定の情報が含まれるか否か(特定の条件が満たされるか否か)を判定するアルゴリズムの最適化アルゴリズムを有する。
【0017】
本実施形態による条件判定サーバ101は、入力装置108から入力された入力情報が特定の判定条件に一致するか否かを判定し、その結果を表示装置110に出力する。
【0018】
この条件判定サーバ101は、例えば、CPU(Central Processing Unit)102、HDD(Hard Disk Drive)103、メモリ104、入力I/F107、表示I/F109を備える一般的なコンピュータによって構成することができる。
【0019】
CPU102は、メモリ104内に格納された本実施の形態の条件判定プログラム105、一般的なOSプログラム106の命令を処理する演算処理装置である。HDD103は、条件判定プログラム105、OSプログラム106等を記憶する記憶装置である。メモリ104は、条件判定サーバ101の起動時にHDD103に記憶された条件判定プログラム105、OSプログラム106を読み出して記憶する高速のRAM(Random Access Memory)等の記憶装置である。このメモリ104は、条件判定プログラム105、OSプログラム106の実行に必要なファイル、データ等も記憶することができる。入力I/F107は、キーボード、マウス等の入力装置108からの入力情報を受け付ける入力インターフェースである。表示I/F109は、ディスプレイ等の表示装置110に表示情報を出力する表示インターフェースである。
【0020】
なお、条件判定プログラム105は、後述する条件最適判定部201(図2参照)を動作させることによって、入力装置108からの入力情報が特定の判定条件に一致するか否かを判定するプログラムである。OSプログラム106は、条件判定プログラム105を動作させるプログラムである。
【0021】
また、入力装置108、表示装置110は外付けであっても良く、条件判定サーバ101内に内蔵されていても良い。また、各機能は、コンピュータ内にインストールされているソフトウェアによって実現されるのが一般的であるが、一部の機能がハードウェアによって実現されるようにしても良い。
【0022】
図2は、本実施形態の条件最適判定部201の一構成例を示す機能ブロック図である。図2に示す条件最適判定部201は、図1の条件判定プログラム105に対応する。この条件最適判定部201は、判定条件最適化部202、条件判定部203を備える。
【0023】
判定条件最適化部202は、後述する判定条件301(図3参照)を条件判定の回数が少なくなるように、好ましくは最小となるように適正化、好ましくは最適化した最適判定条件204を生成し、最適判定条件204を条件判定部203に登録する。
【0024】
条件判定部203は、外部から入力された判定条件を含む入力情報と装置が保持する判定条件、例えば、判定条件最適化部202により登録された最適判定条件204とを比較し、判定結果を出力する。条件判定部203よる条件判定処理については、図9を用いて後述する。
【0025】
最適判定条件204は、後述する判定条件301(図3参照)を判定条件最適化部202により最適化した判定条件である。判定条件最適化部202よる判定条件最適化処理については、図6を用いて後述する。
【0026】
図3は、外部から判定条件最適化部202に入力される判定条件301(図3(a))及び判定条件最適化部202によって最適化され、条件判定部203に登録される最適判定条件204(図3(b))の構成例を示す図である。
【0027】
図3(a)に示す判定条件301は、1以上n個の詳細判定条件302を包含する。ここで、nは、2以上の整数である。詳細判定条件302は、ANDとORとで構成されている判定条件である。このように、本実施の形態が適用できる前提条件は、複数の詳細条件で構成されていることである。
【0028】
図3(b)に示す最適判定条件204は、0以上k個の判定結果付き詳細判定条件303及び0以上m個の詳細判定条件302を包含する。但し、最適判定条件204に包含される判定結果付き詳細判定条件303の数kと最適判定条件204に包含される詳細判定条件302の数mは、k+m≧1の関係である。
【0029】
判定結果付き詳細判定条件303は、一つの詳細判定条件302を包含する。
判定条件301及び最適判定条件204が包含する詳細判定条件302の数は、判定条件最適化部202によりn≧k+m≧1となる。
【0030】
図4は、判定条件301及び最適判定条件204における詳細判定条件302と判定結果付き詳細判定条件303との関係の一例を示す図である。
【0031】
本発明の第1の実施形態による判定技術(第1判定技術と称する。)について図4を参照しながら説明する。図4(a)に示すように、詳細判定条件A401は、詳細判定条件302の一例である。詳細判定条件B402は、図3(a)の詳細判定条件302の一例である。詳細判定条件C403は、図3(a)の詳細判定条件302の一例である。詳細判定条件D404は、図3(a)の詳細判定条件302の一例である。詳細判定条件E405は、図3(a)の詳細判定条件302の一例である。このように、本実施の形態が適用して有効になるためには、条件内に同一の詳細条件で構成されている部分が存在することが必要である。もちろん、条件内に同一の詳細条件で構成されている部分が存在しない場合にも適用できる。
【0032】
図4(b)に示すように、判定結果付き詳細判定条件A406は、図3(b)の判定結果付き詳細判定条件303の一例である。
【0033】
ここで、符号T1で示す詳細判定条件A401と、符号T2で示す詳細判定条件A403とは、共通であるため結果ノードとすることができる。論理積条件軸方向に並ぶ結果ノードT1で示す詳細判定条件A401は同一であるという判定結果を記憶し、この判定結果付き詳細判定条件406を、図4(b)の符号T3で示すように配置する。
【0034】
このように、第1判定技術では、同一の詳細条件毎に、結果ノードT1等を作成し、その結果ノードに詳細条件の判定結果を内包させて判定結果付き詳細判定条件とする。そして、2回目以降の判定処理においては、その判定結果のみを参照することで条件を判断する。
【0035】
次いで、第2の判定技術について説明する。
第2の判定技術は、第1の判定技術の結果ノードの作成の前に、同一の詳細条件を統合、最適化する。最適化後、統合できない同一の詳細条件に対して、結果ノードを作成する。これにより、第1の判定技術と比べて、統合した詳細条件に関して、判定結果の参照処理を省略することができる。
【0036】
図4(a)、(b)における縦方向の各判定条件の繋がりは、論理積(AND)条件の関係を表し、横の繋がりは論理和(OR)条件の関係を表している。
図4(a)に示す例では、
判定条件301
=(詳細判定条件A401and詳細判定条件B402)
or(詳細判定条件C403and(詳細判定条件A401or詳細判定条件D404))
or(詳細判定条件E405and詳細判定条件C403)
である。
【0037】
従って、図4(b)に示す以下の判定条件と同一である。
最適判定条件204
=(判定結果付き詳細判定条件A406and詳細判定条件B402)
or(詳細判定条件C403and(判定結果付き詳細判定条件A406or詳細判定条件D404or詳細判定条件E405))
【0038】
また、論理積条件軸方向に並ぶT2で示す詳細判定条件C403は同一であることから、図4(a)の詳細判定条件E405と詳細判定条件C403との論理積条件軸方向に並ぶ構造は、図4(b)で詳細判定条件C403と詳細判定条件E405とが論理積軸方向に並ぶ構造に置き換えることができる(記号Cを詳細判定条件C403に代えることができる)。
【0039】
従って、図4(a)に示す判定条件構造を、図4(b)に示すより簡単な判定条件構造に作り替えることができる。
【0040】
尚、図4に示す一例では、判定条件301は、詳細判定条件A401及び詳細判定条件C403及び詳細判定条件E405の親の条件(以下、「親条件」)、判定条件301における詳細判定条件A401及び詳細判定条件C403及び詳細判定条件E405は子の条件(以下、「子条件」)と呼ぶ。同様に、詳細判定条件A401は、詳細判定条件B402の親条件、詳細判定条件B402は詳細判定条件A401の子条件である。
【0041】
次に、図5〜図9を参照して、条件最適判定部201における各種処理について説明する。
図5は、本発明の実施形態の条件最適判定処理を示すフローチャート図である。ここでは、外部から入力された判定条件301と外部から入力された入力情報とが一致するか否かを判定し、その判定結果を外部に出力する方法について説明する。
【0042】
まずステップS501において、判定条件最適化部202は、外部から入力された判定条件301を最適化した最適判定条件204を条件判定部203に登録する(ステップS501)。
【0043】
次に、ステップS502において、条件判定部203は、判定条件最適化部202によって登録された最適判定条件204と外部から入力された入力情報とが一致するか否かを判定し、その判定結果を外部に出力する(ステップS502)。
【0044】
以上に示す処理により、条件最適判定部201は、外部から入力された判定条件301と外部から入力された入力情報とが一致するか否かを判定し、その判定結果を外部に出力することができる。
【0045】
図6は、本実施形態の同一の詳細判定条件302を判定結果付き詳細判定条件303に包含する第1の判定処理の流れを示すフローチャート図である。ここでは、判定条件301内に同一の詳細判定条件302を判定結果付き詳細判定条件303に包含する方法について説明する。
【0046】
まず、ステップS601において、判定条件301内に同一の詳細判定条件302があるか否かを判定する。判定条件301に同一の詳細判定条件302がある場合(ステップS601でYES)、ステップS602に進み、同一の詳細判定条件302を判定結果付き詳細判定条件303に包含し、再度、ステップ601に戻る。一方、判定条件301内に同一の詳細判定条件302がない場合(ステップS601でNO)、その判定条件301を最適判定条件204として出力する(END)。
【0047】
以上に示す処理を実行することにより、同一の詳細判定条件302を判定結果付き詳細判定条件303に包含する。図4(b)の符号T3で示す構造の作成までが、この処理に対応する。これにより、上記第1の判定技術を実現することができ、同一の詳細条件毎に、結果ノードT1等を作成し、その結果ノードに詳細条件の判定結果を内包させて判定結果付き詳細判定条件とすることで、2回目以降の判定処理においては、その判定結果のみを参照することで条件を判断することができ、処理が簡単になるため、処理の高速化、装置の負担の低減が可能となる。
【0048】
図7は、本発明の実施形態の判定条件301の最適化処理のうち第2の判定処理の流れを示すフローチャート図である。ここでは、外部から入力された判定条件301を判定条件最適化部202が最適化した最適判定条件204を条件判定部203に登録する方法を例にして説明する。この処理は、図5のステップS501に相当する。
【0049】
まず、ステップS701において、判定条件最適化部202は、外部から入力された判定条件301内に、同一の詳細判定条件302があるか否かを判定する。同一の詳細判定条件302がない場合(ステップS701でNO)、ステップS705に進み、判定条件最適化部202は、判定条件301を最適判定条件204として条件判定部203に登録する(ステップS705)。同一の詳細判定条件302がある場合(ステップS701でYES)、ステップS702に進み、同一の詳細判定条件302を集約する。同一の詳細判定条件302を集約する処理については、図8を用いて後述する。
【0050】
次に、ステップS703において、ステップS702で集約不可能な同一の詳細判定条件302があるか否かを判定する。集約不可能な同一の詳細判定条件302がない場合(ステップS703でNO)、ステップS705に進み、判定条件最適化部202は、ステップS702で集約した結果を最適判定条件204として条件判定部203に登録する。集約不可能な同一の詳細判定条件302がある場合(ステップS703でYES)、ステップS704に進み、集約不可能な同一の詳細判定条件302を、判定結果付き詳細判定条件303に包含し、最適判定条件204を出力する。集約不可能な同一の詳細判定条件302を、判定結果付き詳細判定条件303に包含する処理については、図6を参照して説明した通りである。次にステップS705において、最適判定条件204を条件判定部203に登録する。
【0051】
以上に示す処理により、判定条件最適化部202は、外部から入力された判定条件301を最適化した最適判定条件204を条件判定部203に登録することができる。
【0052】
尚、集約可能であるか集約不可能であるかは、ANDとORとからなる条件判定処理においては、条件式をANDで括れるか(共通項があるか)否かに依存する。例えば、図4(a)のT1とT2とは、同一の詳細判定条件があることを示しているが、両方ともが集約できるとは限らない。
【0053】
図4(a)のT2に該当する構造は、以下の式で表され、ANDにより括れるため、集約可能であると判定することができる。ここで、X1、X3等は、図4に示すような、判断条件と詳細判断条件との一例を示す記号であり、判断条件を簡略化したものである。
【0054】
【数1】
【0055】
一方、図4(a)のT1に該当する構造は、以下の式で表され、ANDにより括れないため、集約はできないと判定することができる。
【0056】
【数2】
【0057】
すなわち、図4(a)のT2に該当する構造は、図4(b)の403―(406−404−405)に示すように、集約することができる。
【0058】
図8は、本発明の実施形態による同一の詳細判定条件302を集約する処理を示すフローチャート図である。ここでは、判定条件最適化部202が外部から入力された判定条件301の内、同一の詳細判定条件302がある場合に、その同一の詳細判定条件302を集約する方法について説明する。この処理は、図7のステップS702に相当する。
【0059】
まずステップS801において、判定条件301のうち、同一の詳細判定条件302の数が最大となる詳細判定条件302を求める。図4(a)では、判定条件301のうち、同一の詳細判定条件302の数が最大となる詳細判定条件302は、詳細判定条件A401と詳細判定条件C403とであり、それぞれ2つで最大である。ここで、まず、図4(a)の符号T2で示される詳細判定条件Cについての処理を行う。
【0060】
次に、ステップS802において、ステップS801で求めた詳細判定条件302が論理積条件内にあるか否かを判定する。ステップS801で求めた詳細判定条件302が論理積条件内にない場合(ステップS802でNO、図4で論理積条件方向に繋がっていない場合)、ステップS809に進み、同一の詳細判定条件の数が次に最大数となる同一の詳細判定条件302があるか否かを判定する(S809)。
【0061】
ステップS801で求めた詳細判定条件302が論理積条件内にある場合(ステップS802でYES、図4で論理積条件方向に繋がっている場合)、ステップS803に進み、ステップS801で求めた詳細判定条件302が親条件と直接連結されるように論理積条件内で最上位に移動させる(S803)。
【0062】
次に、ステップS804において、判定条件301の各親条件の子条件の内、同一の子条件があるか否かを判定する。各親条件の子条件の内、同一の子条件がない場合(ステップS804でNO)、ステップS809に進み、次に最大数となる同一の詳細判定条件302があるか否かを判定する。各親条件の子条件の内、同一の子条件がある場合(ステップS804でYES)、ステップS805に進み、その同一の子条件(403)を一つに集約する(図4(b)の○で囲まれたC参照)。
【0063】
次に、ステップS806において、ステップS805で集約された子条件(403:図4(a)の詳細判定条件403のうち、子条件として401、404をもつもの)を親条件とする子条件(406、404)を、集約された子条件(405)に論理和条件で連結する。
【0064】
次に、ステップS807において、集約される子条件(403)を親条件とする子条件があるか否かを判定する。集約される子条件(403)を親条件とする子条件がある場合(ステップS807でYES、すなわち、図4(a)のように、詳細判定条件401、404がある場合)には、ステップS809に進み、次に最大数となる同一の詳細判定条件302があるか否かを判定する。集約される子条件を親条件とする子条件がない場合(ステップS807でNO)、ステップS808に進み、集約された子条件を親条件とする子条件をすべて削除する。
【0065】
次に、ステップS809において、次に最大数となる同一の詳細判定条件302があるか否かを判定する。次に最大数となる同一の詳細判定条件302がある場合(ステップS809でYES)、ステップS810に進み、その詳細判定条件302を求めてステップS802に戻る。次に最大数となる同一の詳細判定条件302がない場合(ステップS809でNO)、同一の詳細判定条件302を集約した判定条件301を出力する。ここでは、図4(a)のT2の処理以外にT1の処理があるため、YESとなる。T1の処理も図8に従って実行するが、T1は連結することができないため(ステップS802でNo)、ステップS809に進み、T2、T1の処理が終了したため、図8の処理を終了する。
【0066】
以上に示す処理により、判定条件最適化部202が外部から入力された判定条件301の内、同一の詳細判定条件302がある場合に、その同一の詳細判定条件302を集約する。
【0067】
すなわち、図4(a)で、T1で示される詳細判定条件A401であって詳細判定条件C403と結ばれている詳細判定条件A401を移動させて、詳細判定条件B402と繋がっている詳細判定条件A401とすると、これと詳細判定条件C403と繋がることになり、判定条件が変わってしまうため、このようなものは移動させない。一方、図4(a)で、T2で示される詳細判定条件C403の場合には、この結果ノードT2の作成前に、これを図4(b)に示すような詳細判定条件C403と詳細判定条件E405との関係に置き換えても、判定条件は変更されないため、構造を置き換えることができる。このように置き換えることで、図4(b)で言えば、詳細判定条件C403を判定した後、詳細判定条件E405を判定する構造に変更しており、図4(a)の右側における、詳細判定条件C403の判定結果の参照処理を省略することができる。
【0068】
図9は、本発明の実施形態の条件判定処理の流れを示すフローチャート図であり、図5のステップS502に相当する処理を示す図である。ここでは、条件判定部203が、判定条件最適化部202によって登録された最適判定条件204と、外部から入力された入力情報が一致するか否かを判定する方法について説明する。
【0069】
まず、ステップS901において、判定条件301内の各親条件に子条件があるか否かを判定する。判定条件301内の各親条件に子条件がない場合(ステップS901でNO)、ステップS902に進み、判定条件最適化部202によって登録された最適判定条件204と、外部から入力された入力条件と、が一致するか否かの判定結果を出力する。判定条件301内の各親条件に子条件がある場合(ステップS901でYES)、ステップS903に進み、その子条件を取得する。
【0070】
次に、ステップS904において、ステップS903で取得した子条件が詳細判定条件302か判定結果付き詳細判定条件303かを判定する(S904)。ステップS903で取得した子条件が詳細判定条件302の場合(ステップS901で詳細判定条件の場合)、ステップS905に進み、外部から入力された入力情報と詳細判定条件302とを比較し、両者が一致するか否かを判定し、ステップS901に戻り、次の子条件についての処理を続ける。ステップS903で取得した子条件が判定結果付き詳細判定条件303の場合(ステップS901で判定結果付き詳細判定条件の場合)、ステップS906に進み、判定結果付き詳細判定条件303に判定結果が保存されているか否かを判定する(S906)。判定結果付き詳細判定条件303に判定結果が保存されている場合(ステップS906でYES)、ステップS907に進み、保存されている判定結果を参照し、ステップS901に戻り、次の子条件についての処理を続ける。判定結果付き詳細判定条件303に判定結果が保存されていない場合(ステップS906でNO)、ステップS908に進み、外部から入力された入力情報と詳細判定条件302とを比較し、一致するか否かを判定する。
【0071】
次に、ステップS909において、ステップS908で判定した結果を判定結果付き詳細判定条件303に保存し、ステップS901に戻り、次の子条件についての処理を続ける。
【0072】
以上に示す処理により、条件判定部203は、判定条件最適化部202によって登録された最適判定条件204と、外部から入力された入力条件とが一致するか否かを判定し、その結果を出力する。
【0073】
(まとめ)
第1の判定技術では、同一の詳細判定条件ごとに結果ノードを作成し、その結果ノードに詳細条件の判定結果を内包する。2回目以降の判定処理は、結果のみを参照することで判断する。これにより、判定処理回数を少なくして、処理の簡単化が可能となる。
【0074】
第2の判定技術では、結果ノードの作成前に、同一の詳細条件を結合・最適化した後、統合できない同一の詳細条件に対して、結果ノードを作成する。これにより、第1の判定技術に比べて、統合した詳細条件に関して、判定結果の参照処理を省略することができるため、処理の一層の簡単化が可能となる。
【0075】
以上、本発明の実施形態について説明したが、上記実施形態は本発明の適用例の一つを示したものであり、本発明の技術的範囲を上記実施形態の具体的構成に限定する趣旨ではない。本発明の要旨を逸脱しない範囲において種々変更可能である。
【産業上の利用可能性】
【0076】
本発明は、コンピュータ処理における最適条件判定方法として利用できる。
【符号の説明】
【0077】
101 : 条件判定サーバ
105 : 条件判定プログラム
201 : 条件最適判定部
202 : 判定条件最適化部
203 : 条件判定部
204 : 最適判定条件
301 : 判定条件
302 : 詳細判定条件
303 : 判定結果付き詳細判定条件
501 : 判定条件最適化ステップ
502 : 条件判定ステップ
601 : 集約不可能な同一詳細判定条件検索ステップ
602 : 同一詳細判定条件包含ステップ
701 : 集約可能な同一詳細判定条件検索ステップ
702 : 同一詳細判定条件集約ステップ
703 : 集約不可能な同一詳細判定条件検索ステップ
704 : 判定結果付き詳細判定条件包含ステップ
705 : 最適判定条件登録ステップ
801 : 最大同一詳細判定条件取得ステップ
802 : 論理積条件内詳細判定条件検索ステップ
803 : 詳細判定条件移動ステップ
804 : 同一子条件検索ステップ
805 : 同一子条件集約ステップ
806 : 子条件の論理和結合ステップ
807 : 集約子条件検索ステップ
808 : 子条件削除ステップ
809 : 最大同一詳細判定条件検索ステップ
810 : 次最大同一詳細判定条件取得ステップ
901 : 子条件検索ステップ
902 : 判定結果出力ステップ
903 : 子条件取得ステップ
904 : 子条件種別判定ステップ
905 : 詳細判定条件における入力情報判定ステップ
906 : 判定結果検索ステップ
907 : 判定結果参照ステップ
908 : 判定結果付き詳細判定条件における入力情報判定ステップ
909 : 判定結果保存ステップ
【技術分野】
【0001】
本発明は、条件判定方法及びプログラムに関する。
【背景技術】
【0002】
従来、任意の情報が特定の判定条件に一致するか否かを判定する方法に関し、木構造を利用した検索方法が知られている(下記特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特表2000−501861号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、特許文献1に開示された技術では、判定条件内に、ANDとORからなる同一の詳細判定条件(ANDとORからなる同じ構造の詳細判定条件)が複数存在する場合、同一の詳細判定条件の条件判定を一度行ったにも関わらず残りの同一の詳細判定条件についても、判定条件内に存在する回数だけ条件判定を行う必要があるため、条件判定性能が劣化するという問題があった。
【0005】
本発明は、上述した課題を考慮したものであって、同一の詳細判定条件の条件判定回数を少なくする条件判定技術を提供することを目的とする。
【課題を解決するための手段】
【0006】
上記課題を解決するために、本発明は、上記課題を解決する手段を複数含んでいるが、その一例を挙げるならば、入力装置と、表示装置と、前記入力装置から入力された入力情報が特定の判定条件に一致するか否かを判定し、前記表示装置に出力する条件判定サーバと、を備えた条件判定システムにおける条件判定方法であって、前記条件判定サーバは、プログラムを実行するプロセッサと、前記プロセッサによって実行されるプログラムを格納するメモリと、を備え、前記方法は、前記条件判定サーバが、前記判定条件を最適化する手順と、前記条件判定サーバが、前記最適化する手順によって最適化された最適判定条件と、前記入力情報が一致するか否かを判定する手順と、を含むことを特徴とする。
【0007】
本発明の一実施の形態によれば、AND処理とOR処理とで構成されている複数の詳細判定条件で構成される判定条件を含み外部から入力された入力情報に、特定の情報が含まれるか否かを判定する条件判定方法であって、前記判定条件内に、同一の詳細判定条件があるか否かを判定する第1のステップと、前記判定条件内に同一の詳細判定条件がある場合に、前記同一の詳細判定条件を判定結果付き詳細判定条件に包含させて、前記第1のステップに戻り、前記判定条件内に同一の詳細判定条件がなくなると、当該判定条件を最適判定条件として出力する第2のステップと、前記最適判定条件に基づいて条件判定を行う第3のステップと、を有することを特徴とする条件判定方法が提供される。
【0008】
上記の方法では、同一の詳細条件毎に、結果ノードT1等を作成し、その結果ノードに詳細条件の判定結果を内包させて判定結果付き詳細判定条件とすることで、2回目以降の判定処理においては、その判定結果のみを参照することで条件を判断することができ、処理が簡単になるため、処理の高速化、装置の負担の低減が可能となる。
【0009】
また、前記第1のステップにおいて、同一の詳細判定条件があるか否かを判定するステップと、同一の詳細判定条件がない場合に、判定条件最適化部が、前記判定条件を最適判定条件として条件判定部に登録するステップと、同一の詳細判定条件がある場合に、同一の詳細判定条件を集約するステップと、を有し、前記同一の詳細判定条件を集約した後に、前記第2のステップを実行するようにすると良い。
【0010】
以上に示す処理により、判定条件最適化部は、外部から入力された判定条件を最適化した最適判定条件を条件判定部に登録することができる。
【0011】
また、前記集約するステップは、前記判定条件のうち、同一の詳細判定条件の数が最大となる詳細判定条件を求めるステップと、前記詳細判定条件が論理積条件内にあるか否かを判定するステップであって、前記詳細判定条件が論理積条件内にない場合、同一の詳細判定条件の数が次に最大数となる同一の詳細判定条件があるか否かを判定し、前記詳細判定条件が論理積条件内にある場合、前記詳細判定条件が親条件と直接連結されるように論理積条件内で最上位に移動させるステップと、前記判定条件の各親条件の子条件の内、同一の子条件があるか否かを判定するステップと、各親条件の子条件の内、同一の子条件がない場合には次に最大数となる同一の詳細判定条件があるか否かを判定し、各親条件の子条件の内、同一の子条件がある場合にはその同一の子条件を一つに集約するステップと、集約された子条件を親条件とする子条件を、集約された子条件に論理和条件で連結するステップと、集約される子条件を親条件とする子条件があるか否かを判定し、集約される子条件を親条件とする子条件がある場合、次に最大数となる同一の詳細判定条件があるか否かを判定し、集約される子条件を親条件とする子条件がない場合、集約された子条件を親条件とする子条件をすべて削除するステップと、次に最大数となる同一の詳細判定条件があるか否かを判定し、次に最大数となる同一の詳細判定条件がある場合、その詳細判定条件を求めて、詳細判定条件が論理積条件内にあるか否かを判定するステップに戻り、次に最大数となる同一の詳細判定条件がない場合、同一の詳細判定条件を集約した判定条件を出力するステップと、を有することが好ましい。
【0012】
以上に示す処理により、判定条件最適化部が外部から入力された判定条件の内、同一の詳細判定条件がある場合に、その同一の詳細判定条件を集約する。
【0013】
本発明は、上記のいずれかに記載の条件判定方法を、コンピュータに実行させるためのプログラムであっても良く、当該プログラムを記録するコンピュータ読みとり可能なプログラムであっても良い。
【発明の効果】
【0014】
本発明によれば、条件判定を少なくすることができる。
【図面の簡単な説明】
【0015】
【図1】本発明の実施形態による条件判定システムの構成を示す図である。
【図2】本発明の実施形態による条件最適判定部の機能ブロック図である。
【図3】判定条件及び最適判定条件の構成を示す図である。
【図4】判定条件及び最適判定条件における詳細判定条件と判定結果付き詳細判定条件との関係の一例を示す図である。
【図5】条件最適判定処理を示すフローチャート図である。
【図6】同一の詳細判定条件を判定結果付き詳細判定条件に包含する第1の判定処理の流れを示すフローチャート図である。
【図7】本発明の実施形態の判定条件301の最適化処理のうち第2の判定処理の流れを示すフローチャート図である。
【図8】本発明の実施形態による同一の詳細判定条件を集約する処理を示すフローチャート図である。
【図9】条件判定処理の流れを示すフローチャート図である。
【発明を実施するための形態】
【0016】
以下、本発明の実施の形態による条件判定技術ついて図面を参照しながら詳細に説明する。
図1は、本発明の実施形態の条件判定システム1の一構成例を示す機能ブロック図である。図1において、条件判定システム1は、条件判定サーバ101、入力装置108、表示装置110を備える。本発明の実施形態の条件判定システム1は、任意の情報に、特定の情報が含まれるか否か(特定の条件が満たされるか否か)を判定するアルゴリズムの最適化アルゴリズムを有する。
【0017】
本実施形態による条件判定サーバ101は、入力装置108から入力された入力情報が特定の判定条件に一致するか否かを判定し、その結果を表示装置110に出力する。
【0018】
この条件判定サーバ101は、例えば、CPU(Central Processing Unit)102、HDD(Hard Disk Drive)103、メモリ104、入力I/F107、表示I/F109を備える一般的なコンピュータによって構成することができる。
【0019】
CPU102は、メモリ104内に格納された本実施の形態の条件判定プログラム105、一般的なOSプログラム106の命令を処理する演算処理装置である。HDD103は、条件判定プログラム105、OSプログラム106等を記憶する記憶装置である。メモリ104は、条件判定サーバ101の起動時にHDD103に記憶された条件判定プログラム105、OSプログラム106を読み出して記憶する高速のRAM(Random Access Memory)等の記憶装置である。このメモリ104は、条件判定プログラム105、OSプログラム106の実行に必要なファイル、データ等も記憶することができる。入力I/F107は、キーボード、マウス等の入力装置108からの入力情報を受け付ける入力インターフェースである。表示I/F109は、ディスプレイ等の表示装置110に表示情報を出力する表示インターフェースである。
【0020】
なお、条件判定プログラム105は、後述する条件最適判定部201(図2参照)を動作させることによって、入力装置108からの入力情報が特定の判定条件に一致するか否かを判定するプログラムである。OSプログラム106は、条件判定プログラム105を動作させるプログラムである。
【0021】
また、入力装置108、表示装置110は外付けであっても良く、条件判定サーバ101内に内蔵されていても良い。また、各機能は、コンピュータ内にインストールされているソフトウェアによって実現されるのが一般的であるが、一部の機能がハードウェアによって実現されるようにしても良い。
【0022】
図2は、本実施形態の条件最適判定部201の一構成例を示す機能ブロック図である。図2に示す条件最適判定部201は、図1の条件判定プログラム105に対応する。この条件最適判定部201は、判定条件最適化部202、条件判定部203を備える。
【0023】
判定条件最適化部202は、後述する判定条件301(図3参照)を条件判定の回数が少なくなるように、好ましくは最小となるように適正化、好ましくは最適化した最適判定条件204を生成し、最適判定条件204を条件判定部203に登録する。
【0024】
条件判定部203は、外部から入力された判定条件を含む入力情報と装置が保持する判定条件、例えば、判定条件最適化部202により登録された最適判定条件204とを比較し、判定結果を出力する。条件判定部203よる条件判定処理については、図9を用いて後述する。
【0025】
最適判定条件204は、後述する判定条件301(図3参照)を判定条件最適化部202により最適化した判定条件である。判定条件最適化部202よる判定条件最適化処理については、図6を用いて後述する。
【0026】
図3は、外部から判定条件最適化部202に入力される判定条件301(図3(a))及び判定条件最適化部202によって最適化され、条件判定部203に登録される最適判定条件204(図3(b))の構成例を示す図である。
【0027】
図3(a)に示す判定条件301は、1以上n個の詳細判定条件302を包含する。ここで、nは、2以上の整数である。詳細判定条件302は、ANDとORとで構成されている判定条件である。このように、本実施の形態が適用できる前提条件は、複数の詳細条件で構成されていることである。
【0028】
図3(b)に示す最適判定条件204は、0以上k個の判定結果付き詳細判定条件303及び0以上m個の詳細判定条件302を包含する。但し、最適判定条件204に包含される判定結果付き詳細判定条件303の数kと最適判定条件204に包含される詳細判定条件302の数mは、k+m≧1の関係である。
【0029】
判定結果付き詳細判定条件303は、一つの詳細判定条件302を包含する。
判定条件301及び最適判定条件204が包含する詳細判定条件302の数は、判定条件最適化部202によりn≧k+m≧1となる。
【0030】
図4は、判定条件301及び最適判定条件204における詳細判定条件302と判定結果付き詳細判定条件303との関係の一例を示す図である。
【0031】
本発明の第1の実施形態による判定技術(第1判定技術と称する。)について図4を参照しながら説明する。図4(a)に示すように、詳細判定条件A401は、詳細判定条件302の一例である。詳細判定条件B402は、図3(a)の詳細判定条件302の一例である。詳細判定条件C403は、図3(a)の詳細判定条件302の一例である。詳細判定条件D404は、図3(a)の詳細判定条件302の一例である。詳細判定条件E405は、図3(a)の詳細判定条件302の一例である。このように、本実施の形態が適用して有効になるためには、条件内に同一の詳細条件で構成されている部分が存在することが必要である。もちろん、条件内に同一の詳細条件で構成されている部分が存在しない場合にも適用できる。
【0032】
図4(b)に示すように、判定結果付き詳細判定条件A406は、図3(b)の判定結果付き詳細判定条件303の一例である。
【0033】
ここで、符号T1で示す詳細判定条件A401と、符号T2で示す詳細判定条件A403とは、共通であるため結果ノードとすることができる。論理積条件軸方向に並ぶ結果ノードT1で示す詳細判定条件A401は同一であるという判定結果を記憶し、この判定結果付き詳細判定条件406を、図4(b)の符号T3で示すように配置する。
【0034】
このように、第1判定技術では、同一の詳細条件毎に、結果ノードT1等を作成し、その結果ノードに詳細条件の判定結果を内包させて判定結果付き詳細判定条件とする。そして、2回目以降の判定処理においては、その判定結果のみを参照することで条件を判断する。
【0035】
次いで、第2の判定技術について説明する。
第2の判定技術は、第1の判定技術の結果ノードの作成の前に、同一の詳細条件を統合、最適化する。最適化後、統合できない同一の詳細条件に対して、結果ノードを作成する。これにより、第1の判定技術と比べて、統合した詳細条件に関して、判定結果の参照処理を省略することができる。
【0036】
図4(a)、(b)における縦方向の各判定条件の繋がりは、論理積(AND)条件の関係を表し、横の繋がりは論理和(OR)条件の関係を表している。
図4(a)に示す例では、
判定条件301
=(詳細判定条件A401and詳細判定条件B402)
or(詳細判定条件C403and(詳細判定条件A401or詳細判定条件D404))
or(詳細判定条件E405and詳細判定条件C403)
である。
【0037】
従って、図4(b)に示す以下の判定条件と同一である。
最適判定条件204
=(判定結果付き詳細判定条件A406and詳細判定条件B402)
or(詳細判定条件C403and(判定結果付き詳細判定条件A406or詳細判定条件D404or詳細判定条件E405))
【0038】
また、論理積条件軸方向に並ぶT2で示す詳細判定条件C403は同一であることから、図4(a)の詳細判定条件E405と詳細判定条件C403との論理積条件軸方向に並ぶ構造は、図4(b)で詳細判定条件C403と詳細判定条件E405とが論理積軸方向に並ぶ構造に置き換えることができる(記号Cを詳細判定条件C403に代えることができる)。
【0039】
従って、図4(a)に示す判定条件構造を、図4(b)に示すより簡単な判定条件構造に作り替えることができる。
【0040】
尚、図4に示す一例では、判定条件301は、詳細判定条件A401及び詳細判定条件C403及び詳細判定条件E405の親の条件(以下、「親条件」)、判定条件301における詳細判定条件A401及び詳細判定条件C403及び詳細判定条件E405は子の条件(以下、「子条件」)と呼ぶ。同様に、詳細判定条件A401は、詳細判定条件B402の親条件、詳細判定条件B402は詳細判定条件A401の子条件である。
【0041】
次に、図5〜図9を参照して、条件最適判定部201における各種処理について説明する。
図5は、本発明の実施形態の条件最適判定処理を示すフローチャート図である。ここでは、外部から入力された判定条件301と外部から入力された入力情報とが一致するか否かを判定し、その判定結果を外部に出力する方法について説明する。
【0042】
まずステップS501において、判定条件最適化部202は、外部から入力された判定条件301を最適化した最適判定条件204を条件判定部203に登録する(ステップS501)。
【0043】
次に、ステップS502において、条件判定部203は、判定条件最適化部202によって登録された最適判定条件204と外部から入力された入力情報とが一致するか否かを判定し、その判定結果を外部に出力する(ステップS502)。
【0044】
以上に示す処理により、条件最適判定部201は、外部から入力された判定条件301と外部から入力された入力情報とが一致するか否かを判定し、その判定結果を外部に出力することができる。
【0045】
図6は、本実施形態の同一の詳細判定条件302を判定結果付き詳細判定条件303に包含する第1の判定処理の流れを示すフローチャート図である。ここでは、判定条件301内に同一の詳細判定条件302を判定結果付き詳細判定条件303に包含する方法について説明する。
【0046】
まず、ステップS601において、判定条件301内に同一の詳細判定条件302があるか否かを判定する。判定条件301に同一の詳細判定条件302がある場合(ステップS601でYES)、ステップS602に進み、同一の詳細判定条件302を判定結果付き詳細判定条件303に包含し、再度、ステップ601に戻る。一方、判定条件301内に同一の詳細判定条件302がない場合(ステップS601でNO)、その判定条件301を最適判定条件204として出力する(END)。
【0047】
以上に示す処理を実行することにより、同一の詳細判定条件302を判定結果付き詳細判定条件303に包含する。図4(b)の符号T3で示す構造の作成までが、この処理に対応する。これにより、上記第1の判定技術を実現することができ、同一の詳細条件毎に、結果ノードT1等を作成し、その結果ノードに詳細条件の判定結果を内包させて判定結果付き詳細判定条件とすることで、2回目以降の判定処理においては、その判定結果のみを参照することで条件を判断することができ、処理が簡単になるため、処理の高速化、装置の負担の低減が可能となる。
【0048】
図7は、本発明の実施形態の判定条件301の最適化処理のうち第2の判定処理の流れを示すフローチャート図である。ここでは、外部から入力された判定条件301を判定条件最適化部202が最適化した最適判定条件204を条件判定部203に登録する方法を例にして説明する。この処理は、図5のステップS501に相当する。
【0049】
まず、ステップS701において、判定条件最適化部202は、外部から入力された判定条件301内に、同一の詳細判定条件302があるか否かを判定する。同一の詳細判定条件302がない場合(ステップS701でNO)、ステップS705に進み、判定条件最適化部202は、判定条件301を最適判定条件204として条件判定部203に登録する(ステップS705)。同一の詳細判定条件302がある場合(ステップS701でYES)、ステップS702に進み、同一の詳細判定条件302を集約する。同一の詳細判定条件302を集約する処理については、図8を用いて後述する。
【0050】
次に、ステップS703において、ステップS702で集約不可能な同一の詳細判定条件302があるか否かを判定する。集約不可能な同一の詳細判定条件302がない場合(ステップS703でNO)、ステップS705に進み、判定条件最適化部202は、ステップS702で集約した結果を最適判定条件204として条件判定部203に登録する。集約不可能な同一の詳細判定条件302がある場合(ステップS703でYES)、ステップS704に進み、集約不可能な同一の詳細判定条件302を、判定結果付き詳細判定条件303に包含し、最適判定条件204を出力する。集約不可能な同一の詳細判定条件302を、判定結果付き詳細判定条件303に包含する処理については、図6を参照して説明した通りである。次にステップS705において、最適判定条件204を条件判定部203に登録する。
【0051】
以上に示す処理により、判定条件最適化部202は、外部から入力された判定条件301を最適化した最適判定条件204を条件判定部203に登録することができる。
【0052】
尚、集約可能であるか集約不可能であるかは、ANDとORとからなる条件判定処理においては、条件式をANDで括れるか(共通項があるか)否かに依存する。例えば、図4(a)のT1とT2とは、同一の詳細判定条件があることを示しているが、両方ともが集約できるとは限らない。
【0053】
図4(a)のT2に該当する構造は、以下の式で表され、ANDにより括れるため、集約可能であると判定することができる。ここで、X1、X3等は、図4に示すような、判断条件と詳細判断条件との一例を示す記号であり、判断条件を簡略化したものである。
【0054】
【数1】
【0055】
一方、図4(a)のT1に該当する構造は、以下の式で表され、ANDにより括れないため、集約はできないと判定することができる。
【0056】
【数2】
【0057】
すなわち、図4(a)のT2に該当する構造は、図4(b)の403―(406−404−405)に示すように、集約することができる。
【0058】
図8は、本発明の実施形態による同一の詳細判定条件302を集約する処理を示すフローチャート図である。ここでは、判定条件最適化部202が外部から入力された判定条件301の内、同一の詳細判定条件302がある場合に、その同一の詳細判定条件302を集約する方法について説明する。この処理は、図7のステップS702に相当する。
【0059】
まずステップS801において、判定条件301のうち、同一の詳細判定条件302の数が最大となる詳細判定条件302を求める。図4(a)では、判定条件301のうち、同一の詳細判定条件302の数が最大となる詳細判定条件302は、詳細判定条件A401と詳細判定条件C403とであり、それぞれ2つで最大である。ここで、まず、図4(a)の符号T2で示される詳細判定条件Cについての処理を行う。
【0060】
次に、ステップS802において、ステップS801で求めた詳細判定条件302が論理積条件内にあるか否かを判定する。ステップS801で求めた詳細判定条件302が論理積条件内にない場合(ステップS802でNO、図4で論理積条件方向に繋がっていない場合)、ステップS809に進み、同一の詳細判定条件の数が次に最大数となる同一の詳細判定条件302があるか否かを判定する(S809)。
【0061】
ステップS801で求めた詳細判定条件302が論理積条件内にある場合(ステップS802でYES、図4で論理積条件方向に繋がっている場合)、ステップS803に進み、ステップS801で求めた詳細判定条件302が親条件と直接連結されるように論理積条件内で最上位に移動させる(S803)。
【0062】
次に、ステップS804において、判定条件301の各親条件の子条件の内、同一の子条件があるか否かを判定する。各親条件の子条件の内、同一の子条件がない場合(ステップS804でNO)、ステップS809に進み、次に最大数となる同一の詳細判定条件302があるか否かを判定する。各親条件の子条件の内、同一の子条件がある場合(ステップS804でYES)、ステップS805に進み、その同一の子条件(403)を一つに集約する(図4(b)の○で囲まれたC参照)。
【0063】
次に、ステップS806において、ステップS805で集約された子条件(403:図4(a)の詳細判定条件403のうち、子条件として401、404をもつもの)を親条件とする子条件(406、404)を、集約された子条件(405)に論理和条件で連結する。
【0064】
次に、ステップS807において、集約される子条件(403)を親条件とする子条件があるか否かを判定する。集約される子条件(403)を親条件とする子条件がある場合(ステップS807でYES、すなわち、図4(a)のように、詳細判定条件401、404がある場合)には、ステップS809に進み、次に最大数となる同一の詳細判定条件302があるか否かを判定する。集約される子条件を親条件とする子条件がない場合(ステップS807でNO)、ステップS808に進み、集約された子条件を親条件とする子条件をすべて削除する。
【0065】
次に、ステップS809において、次に最大数となる同一の詳細判定条件302があるか否かを判定する。次に最大数となる同一の詳細判定条件302がある場合(ステップS809でYES)、ステップS810に進み、その詳細判定条件302を求めてステップS802に戻る。次に最大数となる同一の詳細判定条件302がない場合(ステップS809でNO)、同一の詳細判定条件302を集約した判定条件301を出力する。ここでは、図4(a)のT2の処理以外にT1の処理があるため、YESとなる。T1の処理も図8に従って実行するが、T1は連結することができないため(ステップS802でNo)、ステップS809に進み、T2、T1の処理が終了したため、図8の処理を終了する。
【0066】
以上に示す処理により、判定条件最適化部202が外部から入力された判定条件301の内、同一の詳細判定条件302がある場合に、その同一の詳細判定条件302を集約する。
【0067】
すなわち、図4(a)で、T1で示される詳細判定条件A401であって詳細判定条件C403と結ばれている詳細判定条件A401を移動させて、詳細判定条件B402と繋がっている詳細判定条件A401とすると、これと詳細判定条件C403と繋がることになり、判定条件が変わってしまうため、このようなものは移動させない。一方、図4(a)で、T2で示される詳細判定条件C403の場合には、この結果ノードT2の作成前に、これを図4(b)に示すような詳細判定条件C403と詳細判定条件E405との関係に置き換えても、判定条件は変更されないため、構造を置き換えることができる。このように置き換えることで、図4(b)で言えば、詳細判定条件C403を判定した後、詳細判定条件E405を判定する構造に変更しており、図4(a)の右側における、詳細判定条件C403の判定結果の参照処理を省略することができる。
【0068】
図9は、本発明の実施形態の条件判定処理の流れを示すフローチャート図であり、図5のステップS502に相当する処理を示す図である。ここでは、条件判定部203が、判定条件最適化部202によって登録された最適判定条件204と、外部から入力された入力情報が一致するか否かを判定する方法について説明する。
【0069】
まず、ステップS901において、判定条件301内の各親条件に子条件があるか否かを判定する。判定条件301内の各親条件に子条件がない場合(ステップS901でNO)、ステップS902に進み、判定条件最適化部202によって登録された最適判定条件204と、外部から入力された入力条件と、が一致するか否かの判定結果を出力する。判定条件301内の各親条件に子条件がある場合(ステップS901でYES)、ステップS903に進み、その子条件を取得する。
【0070】
次に、ステップS904において、ステップS903で取得した子条件が詳細判定条件302か判定結果付き詳細判定条件303かを判定する(S904)。ステップS903で取得した子条件が詳細判定条件302の場合(ステップS901で詳細判定条件の場合)、ステップS905に進み、外部から入力された入力情報と詳細判定条件302とを比較し、両者が一致するか否かを判定し、ステップS901に戻り、次の子条件についての処理を続ける。ステップS903で取得した子条件が判定結果付き詳細判定条件303の場合(ステップS901で判定結果付き詳細判定条件の場合)、ステップS906に進み、判定結果付き詳細判定条件303に判定結果が保存されているか否かを判定する(S906)。判定結果付き詳細判定条件303に判定結果が保存されている場合(ステップS906でYES)、ステップS907に進み、保存されている判定結果を参照し、ステップS901に戻り、次の子条件についての処理を続ける。判定結果付き詳細判定条件303に判定結果が保存されていない場合(ステップS906でNO)、ステップS908に進み、外部から入力された入力情報と詳細判定条件302とを比較し、一致するか否かを判定する。
【0071】
次に、ステップS909において、ステップS908で判定した結果を判定結果付き詳細判定条件303に保存し、ステップS901に戻り、次の子条件についての処理を続ける。
【0072】
以上に示す処理により、条件判定部203は、判定条件最適化部202によって登録された最適判定条件204と、外部から入力された入力条件とが一致するか否かを判定し、その結果を出力する。
【0073】
(まとめ)
第1の判定技術では、同一の詳細判定条件ごとに結果ノードを作成し、その結果ノードに詳細条件の判定結果を内包する。2回目以降の判定処理は、結果のみを参照することで判断する。これにより、判定処理回数を少なくして、処理の簡単化が可能となる。
【0074】
第2の判定技術では、結果ノードの作成前に、同一の詳細条件を結合・最適化した後、統合できない同一の詳細条件に対して、結果ノードを作成する。これにより、第1の判定技術に比べて、統合した詳細条件に関して、判定結果の参照処理を省略することができるため、処理の一層の簡単化が可能となる。
【0075】
以上、本発明の実施形態について説明したが、上記実施形態は本発明の適用例の一つを示したものであり、本発明の技術的範囲を上記実施形態の具体的構成に限定する趣旨ではない。本発明の要旨を逸脱しない範囲において種々変更可能である。
【産業上の利用可能性】
【0076】
本発明は、コンピュータ処理における最適条件判定方法として利用できる。
【符号の説明】
【0077】
101 : 条件判定サーバ
105 : 条件判定プログラム
201 : 条件最適判定部
202 : 判定条件最適化部
203 : 条件判定部
204 : 最適判定条件
301 : 判定条件
302 : 詳細判定条件
303 : 判定結果付き詳細判定条件
501 : 判定条件最適化ステップ
502 : 条件判定ステップ
601 : 集約不可能な同一詳細判定条件検索ステップ
602 : 同一詳細判定条件包含ステップ
701 : 集約可能な同一詳細判定条件検索ステップ
702 : 同一詳細判定条件集約ステップ
703 : 集約不可能な同一詳細判定条件検索ステップ
704 : 判定結果付き詳細判定条件包含ステップ
705 : 最適判定条件登録ステップ
801 : 最大同一詳細判定条件取得ステップ
802 : 論理積条件内詳細判定条件検索ステップ
803 : 詳細判定条件移動ステップ
804 : 同一子条件検索ステップ
805 : 同一子条件集約ステップ
806 : 子条件の論理和結合ステップ
807 : 集約子条件検索ステップ
808 : 子条件削除ステップ
809 : 最大同一詳細判定条件検索ステップ
810 : 次最大同一詳細判定条件取得ステップ
901 : 子条件検索ステップ
902 : 判定結果出力ステップ
903 : 子条件取得ステップ
904 : 子条件種別判定ステップ
905 : 詳細判定条件における入力情報判定ステップ
906 : 判定結果検索ステップ
907 : 判定結果参照ステップ
908 : 判定結果付き詳細判定条件における入力情報判定ステップ
909 : 判定結果保存ステップ
【特許請求の範囲】
【請求項1】
AND処理とOR処理とで構成されている複数の詳細判定条件で構成される判定条件を含み外部から入力された入力情報に、特定の情報が含まれるか否かを判定する条件判定方法であって、
前記判定条件内に、同一の詳細判定条件があるか否かを判定する第1のステップと、
前記判定条件内に同一の詳細判定条件がある場合に、前記同一の詳細判定条件を判定結果付き詳細判定条件に包含させて、前記第1のステップに戻り、前記判定条件内に同一の詳細判定条件がなくなると、当該判定条件を最適判定条件として出力する第2のステップと、
前記最適判定条件に基づいて条件判定を行う第3のステップと、
を有することを特徴とする条件判定方法。
【請求項2】
前記第1のステップにおいて、同一の詳細判定条件があるか否かを判定するステップと、
同一の詳細判定条件がない場合に、判定条件最適化部が、前記判定条件を最適判定条件として条件判定部に登録するステップと、
同一の詳細判定条件がある場合に、同一の詳細判定条件を集約するステップと、を有し、
前記同一の詳細判定条件を集約した後に、前記第2のステップを実行することを特徴とする請求項1に記載の条件判定方法。
【請求項3】
前記集約するステップは、
前記判定条件のうち、同一の詳細判定条件の数が最大となる詳細判定条件を求めるステップと、
前記詳細判定条件が論理積条件内にあるか否かを判定するステップであって、前記詳細判定条件が論理積条件内にない場合、同一の詳細判定条件の数が次に最大数となる同一の詳細判定条件があるか否かを判定し、前記詳細判定条件が論理積条件内にある場合、前記詳細判定条件が親条件と直接連結されるように論理積条件内で最上位に移動させるステップと、
前記判定条件の各親条件の子条件の内、同一の子条件があるか否かを判定するステップと、各親条件の子条件の内、同一の子条件がない場合には次に最大数となる同一の詳細判定条件があるか否かを判定し、各親条件の子条件の内、同一の子条件がある場合にはその同一の子条件を一つに集約するステップと、
集約された子条件を親条件とする子条件を、集約された子条件に論理和条件で連結するステップと、
集約される子条件を親条件とする子条件があるか否かを判定し、集約される子条件を親条件とする子条件がある場合、次に最大数となる同一の詳細判定条件があるか否かを判定し、集約される子条件を親条件とする子条件がない場合、集約された子条件を親条件とする子条件をすべて削除するステップと、
次に最大数となる同一の詳細判定条件があるか否かを判定し、次に最大数となる同一の詳細判定条件がある場合、その詳細判定条件を求めて、詳細判定条件が論理積条件内にあるか否かを判定するステップに戻り、次に最大数となる同一の詳細判定条件がない場合、同一の詳細判定条件を集約した判定条件を出力するステップと
を有することを特徴とする請求項2に記載の条件判定方法。
【請求項4】
請求項1から3までのいずれか1項に記載の条件判定方法を、コンピュータに実行させるためのプログラム。
【請求項1】
AND処理とOR処理とで構成されている複数の詳細判定条件で構成される判定条件を含み外部から入力された入力情報に、特定の情報が含まれるか否かを判定する条件判定方法であって、
前記判定条件内に、同一の詳細判定条件があるか否かを判定する第1のステップと、
前記判定条件内に同一の詳細判定条件がある場合に、前記同一の詳細判定条件を判定結果付き詳細判定条件に包含させて、前記第1のステップに戻り、前記判定条件内に同一の詳細判定条件がなくなると、当該判定条件を最適判定条件として出力する第2のステップと、
前記最適判定条件に基づいて条件判定を行う第3のステップと、
を有することを特徴とする条件判定方法。
【請求項2】
前記第1のステップにおいて、同一の詳細判定条件があるか否かを判定するステップと、
同一の詳細判定条件がない場合に、判定条件最適化部が、前記判定条件を最適判定条件として条件判定部に登録するステップと、
同一の詳細判定条件がある場合に、同一の詳細判定条件を集約するステップと、を有し、
前記同一の詳細判定条件を集約した後に、前記第2のステップを実行することを特徴とする請求項1に記載の条件判定方法。
【請求項3】
前記集約するステップは、
前記判定条件のうち、同一の詳細判定条件の数が最大となる詳細判定条件を求めるステップと、
前記詳細判定条件が論理積条件内にあるか否かを判定するステップであって、前記詳細判定条件が論理積条件内にない場合、同一の詳細判定条件の数が次に最大数となる同一の詳細判定条件があるか否かを判定し、前記詳細判定条件が論理積条件内にある場合、前記詳細判定条件が親条件と直接連結されるように論理積条件内で最上位に移動させるステップと、
前記判定条件の各親条件の子条件の内、同一の子条件があるか否かを判定するステップと、各親条件の子条件の内、同一の子条件がない場合には次に最大数となる同一の詳細判定条件があるか否かを判定し、各親条件の子条件の内、同一の子条件がある場合にはその同一の子条件を一つに集約するステップと、
集約された子条件を親条件とする子条件を、集約された子条件に論理和条件で連結するステップと、
集約される子条件を親条件とする子条件があるか否かを判定し、集約される子条件を親条件とする子条件がある場合、次に最大数となる同一の詳細判定条件があるか否かを判定し、集約される子条件を親条件とする子条件がない場合、集約された子条件を親条件とする子条件をすべて削除するステップと、
次に最大数となる同一の詳細判定条件があるか否かを判定し、次に最大数となる同一の詳細判定条件がある場合、その詳細判定条件を求めて、詳細判定条件が論理積条件内にあるか否かを判定するステップに戻り、次に最大数となる同一の詳細判定条件がない場合、同一の詳細判定条件を集約した判定条件を出力するステップと
を有することを特徴とする請求項2に記載の条件判定方法。
【請求項4】
請求項1から3までのいずれか1項に記載の条件判定方法を、コンピュータに実行させるためのプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【公開番号】特開2013−73600(P2013−73600A)
【公開日】平成25年4月22日(2013.4.22)
【国際特許分類】
【出願番号】特願2011−214694(P2011−214694)
【出願日】平成23年9月29日(2011.9.29)
【出願人】(000233055)株式会社日立ソリューションズ (1,610)
【公開日】平成25年4月22日(2013.4.22)
【国際特許分類】
【出願日】平成23年9月29日(2011.9.29)
【出願人】(000233055)株式会社日立ソリューションズ (1,610)
[ Back to top ]