(57)【要約】【課題】ワーキングメモリのメモリの枯渇を防止するとともに、ガベージコレクションを働かせなくて済むルールベースシステムを提供することである。【解決手段】複数の条件項目それぞれの値についての条件と、全条件が成立したときの処理とを対応させたルールを表すルール情報を格納するルールベース部１２と、前記複数の条件項目それぞれに固定的に割り当てられたワーキングメモリ部１３と、前記複数の条件項目それぞれの値を取得する条件値取得手段１１と、条件項目の値が取得される毎に、当該条件項目に割り当てられたワーキングメモリ部１３にその値をセットするワーキングメモリ制御手段１１と、ワーキングメモリ部にセットされた値が、前記ルールに含まれる全ての条件を成立させるか否かを判定するルール判定手段１１と、成立判定のときに、前記ルールに含まれる処理の実行制御を行う処理実行制御手段１１とを有する構成となる。【選択図】図１
2018132796.tif 000002
【特許請求の範囲】
【請求項１】
複数の条件項目それぞれの値についての条件と、前記条件の全てが成立したときに実行すべき処理とを対応させたルールを表すルール情報を格納するルールベース部と、
前記複数の条件項目それぞれに固定的に割り当てられたワーキングメモリ部と、
前記複数の条件項目それぞれの値を取得する条件値取得手段と、
前記条件値取得手段により条件項目の値が取得される毎に、当該条件項目に割り当てられたワーキングメモリ部に取得された前記値をセットするワーキングメモリ制御手段と、
複数のワーキングメモリ部にセットされた値が、前記ルールベース部に格納されたルール情報にて表されるルールに含まれる全ての条件を成立させるか否かを判定するルール判定手段と、
該ルール判定手段により前記複数のワーキングメモリにセットされた値が前記ルールに含まれる全ての条件を成立させると判定されたときに、当該ルールに含まれる処理についての実行制御を行う処理実行制御手段とを有するルールベースシステム。
【請求項２】
前記ルール情報は、複数の条件項目それぞれの値についての条件と、該条件の全てが成立したときに実行すべき処理とを対応させたルールを記述したデシジョンテーブルを表すデシジョンテーブル情報を含む請求項１記載のルールベースシステム。
【請求項３】
複数の条件項目それぞれの値についての条件と、前記条件の全てが成立したときに実行すべき処理とを対応させたルールを表すルール情報と、
前記複数の条件項目それぞれに固定的に割り当てられたワーキングメモリ部とを用いて処理を実行するルールベース処理方法であって、
前記複数の条件項目それぞれの値を取得する条件値取得ステップと、
前記条件値取得ステップにより条件項目の値が取得される毎に、当該条件項目に割り当てられたワーキングメモリ部に取得された前記値をセットするワーキングメモリ制御ステップと、
複数のワーキングメモリ部にセットされた値が、前記ルールベース部に格納されたルール情報にて表されるルールに含まれる全ての条件を成立させるか否かを判定するルール判定ステップと、
該ルール判定ステップにより前記複数のワーキングメモリにセットされた値が前記ルールに含まれる全ての条件を成立させると判定されたときに、当該ルールに含まれる処理についての実行制御を行う処理実行制御ステップとを有するルールベース処理方法。
【請求項４】
前記ルール情報は、複数の条件項目それぞれの値についての条件と、該条件の全てが成立したときに実行すべき処理とを対応させたルールを記述したデシジョンテーブルを表すデシジョンテーブル情報を含む請求項３記載のルールベース処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ルールベースシステム及びルールベースを用いて処理を制御するルールベース処理方法に関する。
【背景技術】
【０００２】
ルールベースシステムは、エキスパートシステム、あるいはプロダクションシステムとも呼ばれ、従来、例えば、特許文献１に記載のルールベースシステムが知られている。このルールベースシステムは、条件に応じて実行すべき命令（処理）を指定するルールを格納するルールベースと、そのルールを適用する条件値である状態変数を格納するワーキングメモリと、前記条件に適応する前記ルールをルールベースから抽出し、出力すべき命令を作成する推論エンジンとを含んでいる。ここで、ルールは、条件式（if文）と実行文（then・・・）とで構成され、条件式Ｓ１が成立した場合に実行文ＥＸ１が実行されることを定めている。例えば、あるルールでは、「状態変数Ｖ１の値が一定値を超えれば」という条件式Ｓ１に対して、「ある命令を実行する」という実行文ＥＸ１が記述されている。
【０００３】
上述したようなルールベースシステムにおける推論エンジンは、ある条件値（状態変数値）がワーキングメモリにセットされると、その条件値にマッチングする条件式（例えば、「状態変数Ｖ１の値（条件値）が一定値を超えれば」）をルールベースの先頭から１つずつ順次探索し（ルールマッチング）、該当する条件式があると、それに対応する実行文に従って出力すべき命令を作成する。このため、ルールベース内の多くの条件式から１つの条件値に対して適合する条件式を１つずつ探索しなければならず、効率的にルールマッチングを行うことができない。
【０００４】
そこで、効率的にルールマッチングを行うＲｅｔｅアルゴリズムが提唱されている（例えば、特許文献２、３参照）。このＲｅｔｅアルゴリズムにより、新たな条件値（事実）が表明、更新されると、その条件値（事実）に関連したルールだけを呼び出すようにして処理性能を向上させている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０００−３０５７８３号公報
【特許文献２】特開２００２−２０２８８８号公報
【特許文献３】特開２００２−２４４８５２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
また、Ｒｅｔｅアルゴリズムを利用する従来のルールベースシステムでは、複数の条件項目の値の発生タイミングがまちまちであること等を考慮して、ワーキングメモリは、複数の条件項目それぞれの値をセットする領域を増減させるように動的に制御される（動的メモリ）。このようにワーキングメモリにおいて各条件項目に動的に領域を割り当てるようにすると、ある条件項目の値（条件値）が頻繁に更新される等によりメモリが枯渇したり、動的に利用されるワーキングメモリ内の領域のうち不要になった領域を自動的に開放させるガベージコレクションが働いたりする。このため、処理が一時的に停止して処理速度が低下する事態が発生し得る。
【０００７】
このように処理速度が低下する事態は、エンタープライズ分野のシステム、例えば、ゲーム機や、規則の組み合わせが複雑な保険の審査や保険料の算定に係る保険、あるいは携帯電話の割引条件や料金算定など、ルール変更が頻繁な業務に係るシステム等では、特に問題ないが、例えば、自動運転制御システム等に適用される場合など、リアルタイム性が極めて厳重に要求されるシステムに適用する場合には、問題になる。
【０００８】
本発明は、このような事情に鑑みてなされたもので、ワーキングメモリのメモリの枯渇を防止するとともに、ガベージコレクションを働かせなくて済むルールベースシステム及びルールベース処理方法を提供するものである。
【課題を解決するための手段】
【０００９】
本発明に係るルールベースシステムは、複数の条件項目それぞれの値についての条件と、前記条件の全てが成立したときに実行すべき処理とを対応させたルールを表すルール情報を格納するルールベース部と、前記複数の条件項目それぞれに固定的に割り当てられたワーキングメモリ部と、前記複数の条件項目それぞれの値を取得する条件値取得手段と、前記条件値取得手段により条件項目の値が取得される毎に、当該条件項目に割り当てられたワーキングメモリ部に取得された前記値をセットするワーキングメモリ制御手段と、複数のワーキングメモリ部にセットされた値が、前記ルールベース部に格納されたルール情報にて表されるルールに含まれる全ての条件を成立させるか否かを判定するルール判定手段と、該ルール判定手段により前記複数のワーキングメモリにセットされた値が前記ルールに含まれる全ての条件を成立させると判定されたときに、当該ルールに含まれる処理についての実行制御を行う処理実行制御手段とを有する構成となる。
【００１０】
このような構成により、例えば、システムの外部から任意のタイミングにて複数の条件項目それぞれの値が提供される状況において、条件項目の値が取得される毎に、その値が当該条件項目に割り当てられたワーキングメモリ部にセットされる。そして、複数のワーキングメモリにセットされた値が、ルールベース部に格納されたルール情報にて表されるルールに含まれる全ての条件を成立させる状態になったと判定されると、当該ルールにおいて前記条件の全てが成立したおきに実行すべき処理として定められた処理の実行制御が行われる。
【００１１】
ワーキングメモリ部は各条件項目に固定的に割り当てられているので、該ワーキングメモリ部は静的メモリとして機能し、ワーキングメモリ部では、セットされる値によって満たされると、既にセットされている値が以後発生する新たな値に順次更新されていくようになる。
【００１２】
本発明に係るルールベースシステムにおいて、前記ルール情報は、複数の条件項目それぞれの値についての条件と、該条件の全てが成立したときに実行すべき処理とを対応させたルールを記述したデシジョンテーブルを表すデシジョンテーブル情報を含む構成とすることができる。
【００１３】
このような構成によれば、従来のようにルールが、条件式（if文）と実行文（then・・）との組み合わせの形式で表されるのではなく、デシジョンテーブルによって記述されるので、多くのルールをより少ない情報で表すことができる。
【００１４】
本発明に係るルールベース処理方法は、複数の条件項目それぞれの値についての条件と、前記条件の全てが成立したときに実行すべき処理とを対応させたルールを表すルール情報と、前記複数の条件項目それぞれに固定的に割り当てられたワーキングメモリ部とを用いて処理を実行するルールベース処理方法であって、前記複数の条件項目それぞれの値を取得する条件値取得ステップと、前記条件値取得ステップにより条件項目の値が取得される毎に、当該条件項目に割り当てられたワーキングメモリ部に取得された前記値をセットするワーキングメモリ制御ステップと、複数のワーキングメモリ部にセットされた値が、前記ルールベース部に格納されたルール情報にて表されるルールに含まれる全ての条件を成立させるか否かを判定するルール判定ステップと、該ルール判定ステップにより前記複数のワーキングメモリにセットされた値が前記ルールに含まれる全ての条件を成立させると判定されたときに、当該ルールに含まれる処理についての実行制御を行う処理実行制御ステップとを有する構成となる。
【発明の効果】
【００１５】
本発明に係るルールベースシステム及びルールベース処理方法によれば、ワーキングメモリ部が複数の条件項目それぞれに固定的に割り当てられて静的メモリとして機能するので、いずれの条件項目の値が頻繁に発生しても、対応するワーキングメモリ部が枯渇するという事態を防ぐことができ、また、ガベージコレクションを働かせなくて済む。
【図面の簡単な説明】
【００１６】
【図１】図１は、本発明の実施の一形態に係るルールベースシステムの構成を示すブロック図である。
【図２】図２は、ルールを定めたデシジョンテーブル（決定表）の一例を示す図である。
【図３】図３は、処理ユニットにおける動作の流れを示すフローチャートである。
【発明を実施するための形態】
【００１７】
以下、本発明の実施の形態について図面を用いて説明する。
【００１８】
本発明の実施の一形態に係るルールベースシステムは、図１に示すように構成される。
【００１９】
図１において、ルールベースシステム１００は、外部システム２００、例えば、車両の運転支援システムを制御するシステムとして機能する。このルールベースシステム１００は、記憶装置で構成されるルールベース部１２を有している。ルールベース部１２には、ルールを表すルール情報が格納されている。このルールは、複数の条件項目それぞれの値についての条件と、前記条件の全てが成立したときに実行すべき処理とを対応づけている。このルールは、例えば、図２に示すようなデシジョンテーブル（決定表）によって記述することができる。
【００２０】
図２に示すデシジョンテーブルは、車両が雪道を走行する際に対向車のわだちを走行することを防止するための運転支援についての種々のルールを記述している。図２において、このデシジョンテーブルは、「わだちルール」、「対向車」、「車速」、「ＴＴＣ（Time to Collision：衝突までの時間）」、及び「運転者特性」の５つの条件項目の値についての条件と、その条件が全て成立したときに実行すべき処理とを対応させた７つのルールを記述している。条件項目「わだちルール」は、車両が対向車のわだちを走行している（Ｙ）か否（Ｎ）かの２つの値を、条件項目「対向車」は、対向車が存在する（Ｙ）か否（Ｎ）かの２つの値を、条件項目「車速」は時々刻々変化する車速の値を、条件項目「ＴＴＣ」は、現在位置から対向車に衝突するまでの予想時間の値を、条件項目「運転者特性」は、運転者が雪道の運転に慣れている（Ｈ）、運転者が雪道の運転に慣れていない（Ｌ），そのどちらでもない（ＵＤ）の３つの値を、それぞれ取り得る。
【００２１】
ルール１は、条件項目「わだちルール」の値がＹ（車両が対向車のわだちを走行している状態）であるという条件、条件項目「対向車」の値がＹ（対向車が存在する）であるという条件、条件項目「車速」の値が４０km/hを超えているという条件、条件項目「ＴＴＣ（衝突までの時間）」の値が３秒以上であるという条件、及び条件項目「運転者特性」の値がＬ（運転者が雪道の運転に慣れていない）であるという条件の５つの条件と、それら５つの条件が成立したときにメッセージ１として「わだち注意」を、メッセージ２として「速度注意」をそれぞれ車両の表示ユニットに表示させるという処理とを対応させたルールである。
【００２２】
ルール２は、条件項目「わだちルール」の値がＹであるという条件、条件項目「対向車」がＹであるという条件、条件項目「車速」の値が４０km/hを超えているという条件、条件項目「ＴＣＣ（衝突までの時間）」が３秒未満であるという条件、及び条件項目「運転者特性」の値がＬであるという条件の５つの条件と、それら５つの条件が成立したときにメッセージ１として「対向車と同じわだち」を、メッセージ２として「衝突の危険」をそれぞれ車両の表示ユニットに表示させるという処理と対応させたルールである。
【００２３】
ルール３は、条件項目「わだちルール」の値がＹであるという条件、条件項目「対向車」の値がＹという条件、条件項目「車速」の値が４０km/hを超えているという条件、条件項目「ＴＴＣ（衝突までの時間）」が３秒未満であるという条件、及び条件項目「運転者特性」の値がＨ（雪道の運転に慣れている）であるという条件の５つの条件と、それら５つの条件が成立したときに、メッセージ１として「対向車と同じわだち」を、メッセージ２として「衝突の危険」をそれぞれ車両の表示ユニットに表示させるという処理とを対応させたルールである。
【００２４】
また、ルール４は、条件項目「わだちルール」の値がＮ（車両が対向車のわだちを走行していない）であるという条件、及び他の４つの条件項目の値が任意であるという５つの条件と、それら５つの条件が成立したときに、例えば、メッセージ１及びメッセージ２のそれぞれとして○印を表示ユニットに表示させるという処理とを対応させたルールである。ルール５は、条件項目「わだちルール」の値がＹであるという条件、条件項目「対向車」の値がＮ（対向車が無い）であるという条件、及び他の３つの条件項目の値が任意であるという５つの条件と、それら５つの条件が成立したときに、メッセージ１及びメッセージ２のそれぞれとして○印を表示ユニットに表示させるという処理とを対応させたルールである。ルール６は、条件項目「わだちルール」の値がＹであるという条件、条件項目「車速」の値が４０km/h以下であるという条件、及び他の３つの条件項目の値が任意であるという５つの条件と、それら５つの条件が成立したときに、メッセージ１及びメッセージ２のそれぞれとして○印を表示ユニットに表示させるという処理とを対応させたルールである。ルール７は、「わだちルール」の値がＹであるという条件、「運転者特性」の値が雪道の運転に慣れている及び慣れていないのいずれでもない（ＵＤ）という条件、及び他の３つの条件項目の値が任意であるという５つの条件と、それら５つの条件が成立したときに、メッセージ１及びメッセージ２のそれぞれとして○印を表示ユニットに表示させるという処理とを対応させたルールである。
【００２５】
図１に戻って、上述したような７つのルールを記述したデシジョンテーブルを表すデシジョンテーブル情報がルール情報としてルールベース部１２に格納されている。
【００２６】
ルールベースシステム１００は、また、メモリユニット１３を有している。このメモリユニット１３は、処理ユニット１１のワーキングメモリとして利用される。そして、処理ユニット１１は、メモリユニット１３において、前述した５の条件項目のそれぞれに割り当てられたワーキングメモリ部１３ａ、１３ｂ、１３ｃ、１３ｄ、１３ｅを設定する。具体的には、条件項目「わだちルール」はワーキングメモリ部１３ａに、条件項目「対向車」はワーキングメモリ部１３ｂに、条件項目「車速」はワーキングメモリ部１３ｃに、条件項目「ＴＴＣ（衝突までの時間）」はワーキングメモリ部１３ｄに、条件項目「運転者特性」はワーキングメモリ部１３ｅにそれぞれ固定的に割り当てられる。制御ユニット１１は、５つのワーキングメモリ部１３ａ〜１３ｅを容量変化のない（動的メモリではなく）静的メモリとして利用する。
【００２７】
外部システムとしての運転支援システム２００は、車載カメラや車速センサからの情報に基づいて、車両が対向車のわだちを走行しているか否か、対向車が存在するか否かを判定し、その判定結果を上述した条件項目「わだちルール」の値、条件項目「対向車」の値としてルールベースシステム１００に提供している。また、運転支援システム２００は、車速センサからの検出信号に基づいた車速の値を、条件項目「車速」の値としてルールベースシステム１００に提供する。更に、運転支援システム２００は、車載カメラ、車速センサやレーダシステムからの情報に基づいて対向車との相対速度、また、車間距離を演算し、更に、それらの情報から衝突までの予測時間を演算する。そして、運転支援システム２００は、その予測時間を条件項目「ＴＴＣ（衝突までの時間）」の値としてルールベースシステム１００に提供している。また、例えば、操作部（図示されず）での操作によって入力された運転者の特性（雪道の運転に慣れている、雪道の運転に慣れていない、及びそれらのいずれでもない）は、条件項目「運転者特性」の値として運転支援システム２００からルールベースシステム１００に提供される。
【００２８】
なお、運転支援システム２００は、前述した各条件項目の値を公知の手法に従って得ることができる。また、運転支援システム２００は、車両が対向車のわだちを走行しているか否かの判定結果（条件項目「わだちルール」の値）、対向車が存在するか否かの判定結果（条件項目「対向車」の値）、車速値（条件項目「車速」の値）及び衝突までの予測時間（条件項目「ＴＴＣ（衝突までの時間）」の値）は、それぞれ所定のインターバル（例えば、数十ミリ秒）でルールベースシステム１００に提供している。
【００２９】
ルールベースシステ１００の処理ユニット１１は、運転支援システム２００からの前述した各種値を「事実（fact）」として取得し、図３に示す手順に従って、運転支援システム２００を制御する。
【００３０】
図３において、運転支援システム２００から種々のタイミングで各条件項目の値が提供される状況において、処理ユニット１１は、運転支援システム２００から提供される何らかの条件項目の値（事実）が有るか否かを判定している（Ｓ１１）。運転支援システム２００から提供される条件項目の値があると（Ｓ１１でＹＥＳ）、処理ユニット１１は、その値を事実（fact）として取得し（Ｓ１２：条件値取得手段・条件値取得ステップ）、前記条件項目に対応したワーキングメモリ部にセットする（Ｓ１３：ワーキングメモリ制御手段・ワーキングメモリ制御ステップ）。なお、既にワーキングメモリ部に値がセットされている場合、当該ワーキングメモリ部に既にセットされた値が新たに取得された値に更新される。
【００３１】
例えば、操作部での操作に基づいて入力された条件項目「運転者の特性」の値（Ｈ、Ｌ、ＵＤ）が運転支援システム２００から取得されると、その値がワーキングメモリ部１３ｅにセットされる。車両が対向車のわだちを走行しているか否かの判定結果に基づいた条件項目「わだちルール」の値（Ｙ、Ｎ）が運転支援システム２００から取得されると、その値がワーキングメモリ部１３ａにセットされる。対向車の有無の判定結果に基づいた条件項目「対向車」の値（Ｙ、Ｎ）が運転支援システム２００から取得されると、その値がワーキングメモリ部１３ｂにセットされる。車速センサによる検出結果に基づいた条件項目「車速」の値（・・km/h）が運転支援システム２００から取得されると、その値がワーキングメモリ部１３ｃにセットされる。更に、運転支援システム２００により演算される対向車との衝突予測時間に基づいた条件項目「ＴＴＣ」の値が運転支援システム２００から取得されると、その値がワーキングメモリ部１３ｄにセットされる。
【００３２】
ある条件項目の値がその条件項目に対応したワーキングメモリ部にセットされると（Ｓ１３）、処理ユニット１１は、デシジョンテーブル情報（図２参照）を参照して、ワーキングメモリ部にセットされた値により成立する条件（以下、成立条件という）のリンクを形成する（Ｓ１４）。そして、処理ユニット１１は、デシジョンテーブル情報（図２参照）を参照して、そのリンクが張られた成立条件に基づいて、全ての条件が成立したルールがあるか否かを判定する（Ｓ１５：ルール判定手段・ルール判定ステップ）。全ての条件が成立するルールが存在すると（Ｓ１５でＹＥＳ）、処理ユニット１１は、デシジョンテーブル（図２参照）において当該全ての条件が成立するルールに含まれる処理、具体的には、運転支援システム２００におけるメッセージ１及びメッセージ２の表示処理の実行制御を行う（Ｓ１６：処理実行制御手段・処理実行制御ステップ）。
【００３３】
上述した処理ユニット１１の処理（Ｓ１３〜Ｓ１６）は、運転支援システム２００から種々のインターバルで提供される各条件項目の値（事実（fact））を取得する毎（Ｓ１１、Ｓ１２）に実行される。そして、所定の終了条件が満たされると（Ｓ１７でＹＥＳ）、処理ユニット１１は、上述した運転支援システム２００の制御を終了させる。
【００３４】
なお、処理ユニット１１は、全ての条件が成立するルールが存在しないと判定すると（Ｓ１５でＮＯ）、運転支援システム２００から提供される条件項目の値（事実）の待ち状態（Ｓ１１）になり、いずれかの条件項目の値が提供されると（Ｓ１１でＹＥＳ）、以後、前述したのと同様の処理（Ｓ１２〜Ｓ１６）を実行する。
【００３５】
例えば、ワーキングメモリ１３ａにセットされた値がＹ、ワーキングメモリ１３ｂにセットされた値がＮであって、条件項目「わだちルール」の値がＹである（車両が対向車のわだちを走行している）という条件、条件項目「対向車」の値がＮ（対向車が存在しない）とい条件、及び他の３つの条件項目についての値の条件（任意の値）の、５つの条件が成立すると、それら５つの成立条件のリンクが形成される。そして、リンクが形成されたこれら５つの成立条件がルール５に含まれている（Ｓ１５でＹＥＳ）として、処理ユニット１１は、当該ルール５の処理である、メッセージ１及びメッセージ２として○印を車両の表示ユニットに表示させる処理の実行制御を行う（Ｓ１６）。その結果、車両の表示ユニットにともに○印のメッセージ１及びメッセージ２が表示される。この場合、車両は対向車のわだちを走行しているものの、対向車が存在しないので、運転者は、前方を注意しつつその運転を継続することができる。
【００３６】
例えば、ワーキングメモリ１３ａにセットされた値がＹ、ワーキングメモリ１３ｂにセットされた値がＹ、ワーキングメモリ１３ｃにセットされた値が４２km/h、ワーキングメモリ１３ｄにセットされた値が８秒、ワーキングメモリ１３ｅにセットされた値がＬであって、条件項目「わだちルール」の値がＹ（車両が対向車のわだちを走行している）という条件、条件項目「対向車」の値がＹ（対向車が存在する）という条件、条件項目「車速」の値が４０km/hを超えるという条件、条件項目「ＴＴＣ」の値が３秒以上であるという条件、及び条件項目「運転者特性」の値がＬ（運転者が雪道の運転に慣れていない）という条件の、５つの条件が成立すると、それら５つの成立条件のリンクが形成される。そして、リンクが形成されたこれら５つの成立条件がルール１に含まれている（Ｓ１５でＹＥＳ）として、処理ユニット１１は、当該ルール１の処理である、メッセージ１として「わだち注意」及びメッセージ２として「速度注意」を車両の表示ユニットに表示させる処理の実行制御を行う（Ｓ１６）。その結果、対向車との衝突までの予測時間が８秒であって比較的余裕がある状況では、車両の表示ユニットに「わだち注意」、「速度注意」が表示される。この場合、雪道の運転に慣れていない運転者は、比較的余裕のある状況であっても、対向車のわだち及び車速についての注意が喚起されつつ運転を継続することができる。
【００３７】
例えば、ワーキングメモリ１３ａにセットされた値がＹ、ワーキングメモリ１３ｂにセットされた値がＹ、ワーキングメモリ１３ｃにセットされた値が４２km/h、ワーキングメモリ１３ｄにセットされた値が２．８秒、ワーキングメモリ１３ｅにセットされた値がＬであって、条件項目「わだちルール」の値がＹ（車両が対向車のわだちを走行している）という条件、条件項目「対向車」の値がＹ（対向車が存在する）という条件、条件項目「車速」の値が４０km/hを超えるという条件、条件項目「ＴＴＣ」の値が３秒未満であるという条件、及び条件項目「運転者特性」の値がＬ（運転者が雪道の運転に慣れていない）またはＨ（運転者が雪道に慣れている）という条件の、５つの条件が成立すると、それら５つの成立条件のリンクが形成される。そして、リンクが形成されたこれら５つの成立条件がルール２またはルール３に含まれている（Ｓ１５でＹＥＳ）として、処理ユニット１１は、当該ルール２または３の処理である、メッセージ１として「対向車と同じわだち」及びメッセージ２として「衝突の危険」を車両の表示ユニットに表示させる処理の実行制御を行う（Ｓ１６）。その結果、対向車との衝突までの予測時間が２．８秒であって衝突回避を至急行わなければならない状況では、車両の表示ユニットに「対向車と同じわだち」、「衝突の危険」が表示される。この場合、雪道の運転に慣れていない運転者であってもゆき道の運転に慣れている運転者であっても、車両が対向車のわだちから脱する運転操作を至急行うことを強く警告される。
【００３８】
上述したようなルールベースシステム１００によれば、ワーキングメモリ部１３ａ〜１３ｅが５つの条件項目（「わだちルール」、「対向車」、「車速」、「ＴＴＣ」、「運転者特性」）それぞれに固定的に割り当てられて静的メモリとして機能するので、例えば、条件項目「車速」や条件項目「ＴＴＣ」の値のように、数十ミリ秒毎等、猛烈な頻度で発生しても、ワーキングメモリ部が枯渇するという事態を防ぐことができ、また、動的に利用したメモリに溜まった値（速度値、ＴＴＣ値）を対象としたガベージコレクションを働かせなくても済むようになる。その結果、このルールベースシステム１００は、車両の運転支援システム等のように制御のリアルタイム性が重要なシステムの制御に好適に適用することができる。
【００３９】
前述した例では、ルールベース部に格納するルール情報は、例えば、図２示すようなデシジョンテーブルを表すデシジョンテーブル情報であったが、これに限定されない。前記ルール情報は、複数の条件項目それぞれの値についての条件と、前記条件の全てが成立したときに実行すべき処理とを対応させたルールを表す情報であれば、特に限定されない。
【００４０】
前述したルールベースシステム１００は、車両の運転支援システム２００を制御するものであったが、これに限定されず、前記ルール情報に従って制御できるものであればよい。
【００４１】
条件項目は、５つに限定されるものではなく、２つ以上であれば、制御すべき対象に応じて任意に決めることができる。
【００４２】
以上、本発明の実施形態及び各部の変形例を説明したが、この実施形態や各部の変形例は、一例として提示したものであり、発明の範囲を限定することは意図していない。上述したこれら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明に含まれる。
【産業上の利用可能性】
【００４３】
本発明に係るルールベースシステム及びルールベース処理方法は、ワーキングメモリのメモリの枯渇を防止するとともに、ガベージコレクションを働かせなくて済むという効果を有し、ルールベースシステム及びルールベースを用いて処理を制御するルールベース処理方法として有用である。
【符号の説明】
【００４４】
１１  処理ユニット
１２  ルールベース部
１３  メモリユニット
１３ａ、１３ｂ、１３ｃ、１３ｄ、１３ｅ  ワーキングメモリ部
１００  ルールベースシステム
２００  外部システム（運転支援システム）
【図１】
2018132796.tif 000003
【図２】
2018132796.tif 000004
【図３】
2018132796.tif 000005