(57)【特許請求の範囲】
【請求項１】
検索の対象となる比較図面を含む複数のロジック図面が格納された、ロジック図面格納部と、
前記比較図面と比較すべき基準となる基準図面を付与する付与部とを備え、
前記基準図面および前記比較図面には、１または複数の種別からなる複数の演算素子と、前記各演算素子を互いに接続する信号線とが記載され、
前記基準図面における前記各演算素子と、当該各演算素子それぞれと対応する種別の、前記比較図面における前記演算素子との座標変化分を検出する検出部と、
前記座標変化分に基づいて、前記基準図面と前記比較図面との間の図面移動量を推定する移動量推定部と、
前記図面移動量に基づいて、前記基準図面および前記比較図面のうちいずれか一方における前記演算素子を移動させ、当該両図面において、前記演算素子の座標および種別が対応するものかどうかを判別し対応付ける対応付け部とをさらに備え、
前記対応付け部は、前記基準図面において対応付けの対象となった前記演算素子同士を接続する前記信号線と、前記比較図面において対応付けの対象となった前記演算素子同士を接続する前記信号線とを、対応付け、
対応付けられた前記演算素子および前記信号線に基づいて、前記基準図面と前記比較図面との類似度を算出する類似度算出部とをさらに備える、
ロジック図面検索装置。
【請求項２】
前記移動量推定部は、検出された前記座標変化分をカウントし、最も多くカウントされた前記座標変化分に基づいて、前記図面移動量を推定する、
請求項１に記載のロジック図面検索装置。
【請求項３】
前記対応付け部は、前記基準図面および前記比較図面のうちいずれか一方における前記演算素子を移動させ、当該両図面において、当該演算素子の座標が対応付けられない場合であっても、前記基準図面および前記比較図面それぞれにおける当該演算素子が、前記信号線を介して、対応付けの対象となった前記演算素子と接続され、かつ、当該両図面における当該演算素子の種別および当該演算素子に接続された当該信号線の種別が、対応付けられる場合は、前記基準図面における当該演算素子および当該信号線と、前記比較図面における当該演算素子および当該信号線とを、対応付ける、
請求項１または２に記載のロジック図面検索装置。
【請求項４】
前記付与部は、前記ロジック図面格納部における前記ロジック図面から選択し、又は、さらに少なくとも部分的に編集して、前記基準図面として付与する、
請求項１〜３のいずれかに記載のロジック図面検索装置。
【請求項５】
前記類似度算出部は、前記基準図面および前記比較図面における前記演算素子および前記信号線のうちの、対応付けられた前記演算素子および前記信号線の度合いに基づいて、前記類似度を算出する、
請求項１〜４のいずれかに記載のロジック図面検索装置。
【請求項６】
前記類似度に基づいて、前記ロジック図面の類似検索を行う検索部をさらに備える、
請求項１〜５のいずれかに記載のロジック図面検索装置。
【請求項７】
前記類似度に応じて、前記ロジック図面の一覧を表示する表示部をさらに備える、
請求項１〜６のいずれかに記載のロジック図面検索装置。
【請求項８】
前記表示部は、対応付けられた前記演算素子および前記信号線と、対応付けられない前記演算素子および前記信号線とを、区別可能な態様で表示する、
請求項７に記載のロジック図面検索装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はロジック図面検索装置に関し、特に、ロジックの記述等に用いられるロジック図面の検索に関する。
【背景技術】
【０００２】
監視制御システム等においては、信号に対して各種の演算等を行う演算素子と、それらの間を繋ぐ、信号の流れを示す接続線（信号線）で制御ロジック等が記述される。このように、主に演算素子と、信号線とで記述された図面を、本明細書ではロジック図面と呼ぶ。例えば、非特許文献１に示すファンクションブロックダイアグラムも、ロジック図面の一種である。
【０００３】
ロジック図面は、プログラムの表現形態の一つであり、ＣやＪａｖａ（登録商標）などプログラミング言語を用いて記述したプログラムと比べ、熟練プログラマーでなくてもその挙動が理解しやすいという長所がある。しかし、図的に表現される故に分量が多くなりがちであり、また、見やすく理解しやすいプログラムを書くためには、演算素子や接続線の配置についても配慮する必要がある等の問題があった。
【０００４】
上記のような難点があるため、ロジック図面を用いた表現したプログラミングでは、コピーしたものに編集を加えてプログラムとして完成させるということがしばしば行われる。また、監視制御システム等の、特に大規模なものや冗長システムを多数備えたものにおいては、類似したハードウェアが多数存在し、それらを制御するソフトウェアの機能も類似していることから、上記のような開発プロセスがとられがちである。結果として、さらにロジック図面の増大を引き起こし、システムの保守性や信頼性、生産性が低下していくという問題があった。
【０００５】
ロジック図面で類似検索が実現されれば、出現頻度の高い類似ロジックを部品化することができ、保守性、生産性を向上させることが出来る。
【０００６】
また、作成したいロジックの一部が分かっているとき、類似のロジック図面を検索し、これを参考に開発を進め、生産性を上げることができる。
【０００７】
さらに、あるロジックで不具合が発生したとき、類似のロジック図面を検索し、顕在化する前に他の不具合箇所を修正していくことが可能となる。
【０００８】
ロジック図面の類似検索を実現している例としては、特許文献１がある。特許文献１では、異なるフォーマットに保存された２つのＣＡＤ図面が、もともと同じＣＡＤ図面を示すものであるかどうかを検証することについて記載されている。２つのＣＡＤ図面に対し、それぞれ含まれる図形の種別、所定の範囲内での座標の一致により、図形の対応関係（一対多を含む）を計算し、全て一対一に対応できる組み合わせがあるかどうかでＣＡＤ図面の同一性を検証している。
【０００９】
他に、図面の類似検索を実現している例としては、特許文献２がある。特許文献２では、シンボルと接続線からなる図面を、基準に従って簡略化した木構造とともに記録し、入力された検索条件から、同じ基準に従って簡略化した木構造を得て、木構造同士で一致を検討することにより、図面の類似検索を実現している。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特許第４１３９２４９号公報
【特許文献２】特許第２０９６８６６号公報
【非特許文献】
【００１１】
【非特許文献１】国際規格ＩＥＣ６１１３１−３
【発明の概要】
【発明が解決しようとする課題】
【００１２】
特許文献１におけるＣＡＤ図面は、線分や矩形などの描画要素を含む。ロジック図面の接続線や演算要素を線分や矩形の描画要素で表すことで、ロジック図面はＣＡＤ図面で表すことが出来る。
【００１３】
従って、ロジック図面に対しても特許文献１に記載のＣＡＤ図面の同一性の検証が可能である。これにより、編集等をせずコピーしたロジック図面に関しては、所定の範囲以内の位置情報の差異を吸収しつつ、同一かどうかの判定が可能である。
【００１４】
しかし、この判定方法では、接続線の位置が所定の範囲以上に異なっていると、同一でないと判定される。例えば、接続線の位置が異なっていれば、同一でないと判定される。
【００１５】
ロジック図面において、接続線が論理的に同一かどうかの判定の基準になるのは、その両端の接続状況が同一かどうかであり、接続線の座標位置ではない。見やすく理解しやすくするために、演算素子や信号線の位置を変更することがあるが、論理的に異なるロジック図面とはならない場合が多い。また、コピーされたロジック図面がそのまま用いられることは稀であり、通常、演算素子、接続線の追加、属性の変更などが行われる。また、ロジック図面の一部をコピーして貼り付けたロジック図面に対しては、位置情報の一致は期待できない。
【００１６】
これらを考慮して、特許文献１では、２つの図面が論理的にどれ位類似しているかという尺度を与えることが出来ないという問題があった。
【００１７】
一方、特許文献２における図面は、シンボルと接続線から構成される。ロジック図面の演算素子をシンボルと見ることで、特許文献２に記載の図面の類似検索が可能になる。この類似検索では、検索対象の図面から抽出したシンボルと接続線の関係を、基準に従って簡略化した木構造として記録しておく。入力された検索条件に同じ処理を施し、木構造となった両者の一致を調べることで実現している。
【００１８】
しかし、この類似検索では、基準に従って演算素子（特許文献２ではシンボル）を省略した範囲での類似検索のみが可能であり、演算素子の一部が変更されている場合は検索することができない。木構造の一致する度合いを調べて類似検索を行うことも出来るが、照合は木構造の根部分の演算素子から行われるため、その部分で演算素子が変更されていると全く照合されない。
【００１９】
その結果、ロジック図面をコピーして修正した場合、その修正点が僅かであっても、類似していると見なされない可能性がある。木構造の根部分になりうる要素を全て列挙して、検索を行うことにより類似検索の正確さは増すが、検索にかかる時間はその分増加するという問題があった。
【００２０】
本発明は、上記のような問題点を解決するためになされたものであり、多数のロジック図面から、検索者が与えるロジック図面に論理的に類似するロジック図面を高速かつ正確に検索可能となるロジック図面検索装置を提供することを目的とする。
【課題を解決するための手段】
【００２１】
本発明にかかるロジック図面検索装置は、検索の対象となる比較図面を含む複数のロジック図面が格納された、ロジック図面格納部と、前記比較図面と比較すべき基準となる基準図面を付与する付与部とを備え、前記基準図面および前記比較図面には、１または複数の種別からなる複数の演算素子と、前記各演算素子を互いに接続する信号線とが記載され、前記基準図面における前記各演算素子と、当該各演算素子それぞれと対応する種別の、前記比較図面における前記演算素子との座標変化分を検出する検出部と、前記座標変化分に基づいて、前記基準図面と前記比較図面との間の図面移動量を推定する移動量推定部と、前記図面移動量に基づいて、前記基準図面および前記比較図面のうちいずれか一方における前記演算素子を移動させ、当該両図面において、前記演算素子の座標および種別が対応するものかどうかを判別し対応付ける対応付け部とをさらに備え、前記対応付け部は、前記基準図面において対応付けの対象となった前記演算素子同士を接続する前記信号線と、前記比較図面において対応付けの対象となった前記演算素子同士を接続する前記信号線とを、対応付け、対応付けられた前記演算素子および前記信号線に基づいて、前記基準図面と前記比較図面との類似度を算出する類似度算出部とをさらに備える。
【発明の効果】
【００２２】
本発明にかかるロジック図面検索装置によれば、前記基準図面における前記各演算素子と、当該各演算素子それぞれと対応する種別の、前記比較図面における前記演算素子との座標変化分を検出する検出部と、前記座標変化分に基づいて、前記基準図面と前記比較図面との間の図面移動量を推定する移動量推定部と、前記図面移動量に基づいて、両図面において、前記演算素子の座標および種別が対応するものかどうかを判別し対応付ける対応付け部とをさらに備え、前記対応付け部は、前記基準図面において対応付けの対象となった前記演算素子同士を接続する前記信号線と、前記比較図面において対応付けの対象となった前記演算素子同士を接続する前記信号線とを、対応付け、対応付けられた前記演算素子および前記信号線に基づいて、前記基準図面と前記比較図面との類似度を算出する類似度算出部とをさらに備えることにより、図面移動量に従う演算素子および信号線を対応付け、基準図面と比較図面との類似度を適切に算出することが可能となる。よって、複数のロジック図面から、検索者が与えるロジック図面に論理的に類似するロジック図面を高速かつ正確に検索可能となる。
【図面の簡単な説明】
【００２３】
【図１】実施の形態１にかかるロジック図面検索装置のブロック図である。
【図２】実施の形態１にかかるロジック図面検索装置の、移動量推定部１０６の処理を示すフローチャートである。
【図３】実施の形態１にかかるロジック図面検索装置の、演算素子仮対応算出部１０７の処理を示すフローチャートである。
【図４】実施の形態１にかかるロジック図面検索装置の、演算素子・信号線対応算出部１０８の処理を示すフローチャートである。
【図５】実施の形態１にかかるロジック図面検索装置の、基準図面として入力されるロジック図面の例を示す図である。
【図６】実施の形態１にかかるロジック図面検索装置の、比較図面として入力されるロジック図面の例を示す図である。
【図７】実施の形態１にかかるロジック図面検索装置の、移動量推定部１０６での処理の一部を示す図である。
【図８】実施の形態１にかかるロジック図面検索装置の、演算素子仮対応算出部１０７での処理結果を示す図である。
【図９】実施の形態１にかかるロジック図面検索装置の、演算素子・信号線対応算出部１０８での処理結果を示す図である。
【図１０】実施の形態１にかかるロジック図面検索装置の、移動量推定部１０６の処理を示すデータ図である。
【図１１】実施の形態１にかかるロジック図面検索装置の、演算素子仮対応算出部１０７の処理を示すデータ図である。
【図１２】実施の形態１にかかるロジック図面検索装置の、演算素子対応表を示す図である。
【図１３】実施の形態１にかかるロジック図面検索装置の、信号線対応表を示す図である。
【図１４】実施の形態２にかかるロジック図面検索装置の、検索結果表示部１１０が示す基準図面の例を示す図である。
【図１５】実施の形態２にかかるロジック図面検索装置の、検索結果表示部１１０が示す比較図面の例を示す図である。
【発明を実施するための形態】
【００２４】
＜Ａ．実施の形態１＞
＜Ａ−１．構成＞
図１に、本発明にかかるロジック図面検索装置の構成を示す。図に示すようにロジック図面検索装置は、まず、ロジック図面格納部１０００と、基準図面入力部１０２とを備える。
【００２５】
さらにロジック図面検索装置は、ロジック図面格納部１０００と、基準図面入力部１０２と接続された、信号線検出部１０５、演算素子位置検出部１０３、演算素子種別検出部１０４を備える。
【００２６】
さらにロジック図面検索装置は、演算素子位置検出部１０３および演算素子種別検出部１０４と接続された、移動量推定部１０６、演算素子仮対応算出部１０７を備える。
【００２７】
さらにロジック図面検索装置は、演算素子位置検出部１０３、演算素子種別検出部１０４、演算素子仮対応算出部１０７、信号線検出部１０５と接続された、演算素子・信号線対応算出部１０８と、演算素子・信号線対応算出部１０８と接続された、類似度算出部１０９と、類似度算出部１０９と接続された、検索結果表示部１１０とを備える。
【００２８】
ロジック図面格納部１０００は、検索の対象となる複数のロジック図面を格納する。付与部としての基準図面入力部１０２は、類似検索の際に比較の基準となるロジック図面の入力を受け付け、付与する。この入力されるロジック図面を、基準図面と呼ぶ。基準図面として、ロジック図面格納部１０００に格納されているロジック図面のうちの１つ、またはそれに追加削除等の編集が加えられたものを選択して、基準図面入力部１０２に入力することができる。
【００２９】
一方、ロジック図面格納部１０００から、類似検索の際に比較対象となるロジック図面を選択する。この選択されるロジック図面を、比較図面と呼ぶ。
【００３０】
検出部としての演算素子位置検出部１０３は、基準図面入力部１０２およびロジック図面格納部１０００から得られるロジック図面に記載の、１または複数の種別からなる複数の演算素子について、図面上での座標位置を検出する。
【００３１】
検出部としての演算素子種別検出部１０４は、基準図面入力部１０２およびロジック図面格納部１０００から得られるロジック図面に記載の演算素子について、演算素子の種別、すなわち、座標位置の情報以外に素子が持っている属性等を検出する。
【００３２】
信号線検出部１０５は、基準図面入力部１０２およびロジック図面格納部１０００から得られるロジック図面に記載の、演算素子を互いに接続する信号線（接続線）について、信号線の種別（アナログ／デジタル、入力／出力の端子種別等）や両端の演算素子を検出する。
【００３３】
移動量推定部１０６、演算素子仮対応算出部１０７、演算素子・信号線対応算出部１０８、類似度算出部１０９の処理は、基準図面と比較図面とを用いて行われる。
【００３４】
＜Ａ−２．動作＞
図２は、実施の形態１における、移動量推定部１０６の処理を示すフローチャートである。
【００３５】
まずステップＳ２０１で、基準図面、比較図面に共に含まれる演算素子の種別を種別Ｋとする。続くステップＳ２０２で、種別が種別Ｋである演算素子を基準図面からひとつ取り出し基準演算素子Ｐとする。続くステップＳ２０３で、種別が種別Ｋである演算素子を比較図面からひとつ取り出し比較演算素子Ｑとする。ここで、本実施の形態１では、種別が一致する場合を示しているが、種別の対応関係は、一致の場合のみに限られるものではない。
【００３６】
続くステップＳ２０４で、基準演算素子Ｐから見た比較演算素子Ｑの座標変化分を計算し、その頻度をカウントする。すなわち、その座標変化分と同じ対応関係にあった場合の回数をカウントしておく。なお、座標変化分は、基準演算素子Ｐと比較演算素子Ｑとの相対的な座標差であるので、比較演算素子Ｑから見た基準演算素子Ｐの座標変化分を計算してもよい。
【００３７】
続くステップＳ２０５で、全ての比較演算素子Ｑについて上記の処理が終了したかを調べ、処理が終了している場合にはステップＳ２０６へ、終了していない場合にはステップＳ２０３へそれぞれ進む。
【００３８】
ステップＳ２０６で、全ての基準演算素子Ｐについて上記の処理が終了したかを調べ、処理が終了している場合にはステップＳ２０７へ、終了していない場合にはステップＳ２０２へそれぞれ進む。
【００３９】
ステップＳ２０７で、全ての種別Ｋについて上記の処理が終了したかを調べ、処理が終了している場合にはステップＳ２０８へ、終了していない場合にはステップＳ２０１へそれぞれ進む。
【００４０】
ステップＳ２０８で、例えば最大の頻度を与える座標変化分を推定移動量とする。これは、複数の演算素子で同じ座標変化分を示した場合、ロジック図面全体（すなわち、演算素子群）がその方向に移動したものと考えることができ、最大の頻度を与える座標変化分は、その可能性が最も高い移動方向であるといえるからである。よってそのような座標変化分を推定移動量として、ロジック図面全体の移動量とする。なお、推定移動量の決定の方法は、上記の方法に限られるものではなく、移動方向によりカウントする際の重み付けを変える等の方法をとることも可能である。
【００４１】
図１０は、座標変化分の計算データの例示である。種別Ｋの演算素子のＰ１、Ｐ２、Ｐ３それぞれから、Ｑ１、Ｑ２、Ｑ３への座標変化分を計算している。座標変化分がＰ１とＰ３とで等しくなっていることから、当該座標変化分については、カウントが合算されることになる。ここで、座標変化についてＸＹ座標を用いて示しているが、特にこの座標系に限定されるものではない。
【００４２】
なお、図１０においては、異なるＰ１、Ｐ２、Ｐ３からそれぞれ座標変化分を計算している部分が示されているが、例えばＰ１からＱ２、Ｑ３への座標変化分も同様に計算され、全ての座標変化分のうち、等しい変化をするものについては、カウントが合算される。
【００４３】
なお、上記のロジック図面全体の移動は、並行移動だけでなく、所定の回転量を考慮すれば回転移動を組み合わせた場合にも適用できる。
【００４４】
図３は、実施の形態１における、演算素子仮対応算出部１０７の処理を示すフローチャートである。
【００４５】
まずステップＳ３０１で、演算素子対応表を空にする。続くステップＳ３０２で、基準図面から演算素子をひとつ取り出し基準演算素子Ｐとする。続くステップＳ３０３で、基準演算素子Ｐの座標に推定移動量を加え、移動演算素子Ｖとする。
【００４６】
続くステップＳ３０４で、座標が移動演算素子Ｖと一致し、かつ、種別が基準演算素子Ｐと一致する比較演算素子Ｑが、比較図面上にあるかどうかを調べる。
【００４７】
図１１は、座標が移動演算素子Ｖと一致し、かつ、種別が基準演算素子Ｐと一致する比較演算素子Ｑが、比較図面上にあるかどうかを示すデータの例示である。Ｐ１およびＰ３については、移動演算素子Ｖが比較演算素子Ｑ（Ｑ１、Ｑ３）と座標が一致し、種別Ｋも一致しているので、そのような比較演算素子Ｑがあると判断される。一方Ｐ２は、そのような比較演算素子Ｑがないと判断されたような場合である。
【００４８】
なお、本実施の形態１では、座標が一致する場合を示しているが、座標の対応関係は、一致の場合のみに限られるものではない。
【００４９】
続くステップＳ３０５で、そのような比較演算素子Ｑが比較図面上にある場合にはステップＳ３０６へ、そのような比較演算素子Ｑが比較図面上にない場合にはステップＳ３０７へそれぞれ進む。
【００５０】
ステップＳ３０６では、（Ｐ，Ｑ）を演算素子対応表に記録する。ステップＳ３０７では、全ての基準演算素子Ｐについて上記の処理が終了したかを調べ、終了していなければステップＳ３０２へ進む。終了していれば、処理を終了する。
【００５１】
図１２は、（Ｐ，Ｑ）の演算素子対応表を示すデータの例示である。Ｐ１およびＰ３は、Ｑ１およびＱ３とそれぞれ対応していることが示されている。なおＰ２については、後述する。
【００５２】
図４は、実施の形態１における、演算素子・信号線対応算出部１０８の処理を示すフローチャートである。
【００５３】
まずステップＳ４０１で、信号線対応表を空にする。続くステップＳ４０２で、演算素子対応表にある、基準図面の演算素子を基準演算素子Ｐ、それに対応する比較図面の演算素子を比較演算素子Ｑとする。続くステップＳ４０３で、基準演算素子Ｐに接続された基準信号線Ｌにさらに接続された、基準演算素子Ｐでない演算素子を接続演算素子Ｒとする。
【００５４】
続くステップＳ４０４で、接続演算素子Ｒが演算素子対応表にあるかどうかを調べ、接続演算素子Ｒが演算素子対応表にある場合にはステップＳ４０５へ、接続演算素子Ｒが演算素子対応表にない場合にはステップＳ４１１へそれぞれ進む。
【００５５】
ステップＳ４０５で、接続演算素子Ｒと対応関係にある接続対応演算素子Ｓを、演算素子対応表から得る。
【００５６】
続くステップＳ４０６で、比較演算素子Ｑと接続対応演算素子Ｓとを接続させ、かつ、種別が基準信号線Ｌと一致する、比較信号線Ｍがあるかどうかを調べる。
【００５７】
続くステップＳ４０７で、そのような比較信号線ＭがあればステップＳ４０８へ、そのような比較信号線ＭがなければステップＳ４０９へそれぞれ進む。
【００５８】
ステップＳ４０８では、（Ｌ，Ｍ）を信号線対応表に加え、ステップＳ４０９へ進む。
【００５９】
図１３は、（Ｌ，Ｍ）の信号線対応表を示すデータの例示である。Ｐ１とＰ３とを接続させる信号線は、Ｑ１とＱ３とを接続させる信号線と対応していることが示されている。なおＰ１とＰ２とを接続させる信号線については、後述する。
【００６０】
ステップＳ４１１で、「条件」を全て満たす比較演算素子Ｑに接続する比較信号線Ｍと、比較信号線Ｍに接続する比較演算素子Ｑでない接続対応演算素子Ｓとがあるかどうか調べる。
【００６１】
上記の条件とは、条件１：比較信号線Ｍが信号線対応表にない、条件２：接続対応演算素子Ｓが演算素子対応表にない、条件３：基準信号線Ｌと比較信号線Ｍとの種別が一致する、条件４：接続演算素子Ｒと接続対応演算素子Ｓとの種別が一致する、である。
【００６２】
続くステップＳ４１２で、そのような比較信号線Ｍ及び接続対応演算素子Ｓがある場合はステップＳ４１３へ、そうでなければステップＳ４０９へそれぞれ進む。
【００６３】
ステップＳ４１３で、（Ｒ，Ｓ）を演算素子対応表に加える。続くステップＳ４１４で、（Ｌ，Ｍ）を信号線対応表に加え、ステップＳ４０９へ進む。
【００６４】
すなわち、図１２に示すように、Ｑ２が、Ｐ２に対して上記の条件を満たす場合、（Ｐ，Ｑ）の演算素子対応表に加える。
【００６５】
また図１３に示すように、Ｑ１とＱ２とを接続させる信号線が、Ｐ１とＰ２とを接続させる信号線に対して上記の条件を満たす場合、（Ｌ，Ｍ）の信号線対応表に加える。
【００６６】
ステップＳ４０９で、全ての接続演算素子Ｒについて処理したかを調べ、処理が終了していない場合にはステップＳ４０３へ、処理が終了している場合にはステップＳ４１０へそれぞれ進む。
【００６７】
ステップＳ４１０で、全ての基準演算素子Ｐ、比較演算素子Ｑについて処理したかを調べ、終了していない場合にはステップＳ４０２へ進み、終了している場合には、処理を終了する。
【００６８】
なお、ステップＳ４１１〜ステップＳ４１４については、省略することも可能である。すなわち、接続演算素子Ｒが演算素子対応表にない場合には、ステップＳ４０９へ進み、全ての接続演算素子Ｒについて処理が終了したかを判断することも可能である。この場合には、類似度の算出が簡易となり、より高速な処理が可能となる。
【００６９】
さらに、類似度算出部１０９において、演算素子対応表および信号線対応表に記録された演算素子、信号線の対応関係に基づいて、基準図面と比較図面との類似度を算出する。
【００７０】
ここで、本実施の形態１では、基準図面と比較図面とにおける演算素子、信号線の対応関係は、対応表を用いて記録しているが、必ずしも対応表を作成する必要はなく、両図面における演算素子、信号線の対応関係を示すことができるものであれば、特にその態様を限定されるものではない。
【００７１】
次に、移動量推定部１０６、演算素子仮対応算出部１０７、演算素子・信号線対応算出部１０８の処理を具体的に示すため、基準図面として図５、比較図面として図６を用いて説明する。
【００７２】
図５は、基準図面として入力されるロジック図面の例である。演算素子を矩形で、信号線を線で、信号の向きを矢印でそれぞれ示す。
【００７３】
ＩＮは、外部からの入力を示す、０入力１出力の端子を持つ演算素子である。ＯＵＴは、外部への出力を示す、１入力０出力の端子を持つ演算素子である。ＡＮＤ、ＯＲは、それぞれ論理積、論理和を実現する、２入力１出力の端子を持つ演算素子である。ＮＯＴは、否定を実現する、１入力１出力の演算素子である。なお、ここに記載の信号線の種別は全て２値（真／偽）である。
【００７４】
図６は、比較図面として入力されるロジック図面の例である。図５の左上に示されたロジックと類似するロジックを右下に示し、さらに、左下に新たなロジックが追加されている。
【００７５】
図７は、移動量推定部１０６での処理の一部を示す図である。ステップＳ２０１（図２参照）の演算素子の種別ＫをＮＯＴとし、基準図面と比較図面とを重ね合わせて示した。
【００７６】
斜めの矢印は、ステップＳ２０４（図２参照）で求められる座標変化分である。多くのパターンの座標変化分が計算されるが、最終的にはステップＳ２０８で、最も頻度の高い座標変化分（図７で太い矢印で示した）が推定移動量として採用される。
【００７７】
図８は、演算素子仮対応算出部１０７での処理結果を示す図である。基準図面と比較図面とを重ね合わせ、対応する演算素子それぞれに、同じ番号を付与して示した。
【００７８】
また図９は、演算素子・信号線対応算出部１０８での処理結果を示す図である。図８と同じく、基準図面と比較図面とを重ね合わせ、対応する演算素子それぞれに同じ番号を付与するとともに、対応する信号線を太線で示した。
【００７９】
類似度算出部１０９は、演算素子・信号線対応算出部１０８によって得られた演算素子対応表、信号線対応表をもとに、基準図面と比較図面との類似度を算出する。
【００８０】
類似度は、基準図面および比較図面における演算素子および信号線のうちの、対応付けられた演算素子および信号線の度合いに基づいて算出されるものであり、例えば、両図面間で対応する演算素子・信号線の数の増加関数であり、かつ、対応しない演算素子・信号線の数の減少関数であることが望ましい。このような関数の一例として、以下のものがある。
【００８１】
Ｎａ  ：  基準図面と比較図面との間で対応する演算素子の数
Ｌａ  ：  基準図面と比較図面との間で対応する信号線の数
Ｎ０  ：  基準図面の演算素子の数
Ｌ０  ：  基準図面の信号線の数
Ｎ１  ：  比較図面の演算素子の数
Ｌ１  ：  比較図面の信号線の数
α  ：  パラメータ  （０〜１の値を取る）として、
類似度  ＝  ２  ＊  （αＮａ  ＋  （１−α）Ｌａ）  ／  （α（Ｎ０  ＋  Ｎ１）  ＋  （１−α）（Ｌ０  ＋  Ｌ１））
基準図面と比較図面とが論理的に一致するロジックであるとき、（Ｎａ  ＝  Ｎ０  ＝  Ｎ１，  Ｌａ  ＝  Ｌ０  ＝  Ｌ１）であるから、上記類似度は１となり、全く一致しないとき、（Ｎａ  ＝  Ｌａ  ＝  ０、含まれている演算素子の種別が全く一致しないとき等）であるから、上記類似度は０となる。
【００８２】
αはパラメータであり、１のときは演算素子の対応関係のみを考慮し、０のときは信号線の対応関係のみを考慮して類似度を算出する。当該パラメータの値を調整することによって、演算素子、信号線の考慮の度合いを設定することができる。なお、ここで述べた類似度の計算式は一例であって、これらに限定されるものではない。
【００８３】
検索結果表示部１１０は、ロジック図面格納部１０００に格納されたロジック図面を、順次対象画面として前述の計算を経て、類似度算出部１０９で類似度を得る。そして、それら類似度に従って、ロジック図面のタイトル等を並べて表示し、検索結果を検索者に提示する。なお、検索を主に行う検索部と、表示を主に行う表示部とをそれぞれ備えることも可能である。
【００８４】
＜Ａ−３．効果＞
本発明にかかる実施の形態１によれば、基準図面における各演算素子と、当該各演算素子それぞれと対応する種別の、比較図面における演算素子との座標変化分を検出する検出部としての演算素子位置検出部１０３および演算素子種別検出部１０４と、座標変化分に基づいて、基準図面と比較図面との間の図面移動量を推定する移動量推定部１０６と、図面移動量に基づいて、両図面において、演算素子の座標および種別が対応するものかどうかを判別し対応付ける対応付け部に含まれる演算素子仮対応算出部１０７とをさらに備え、対応付け部に含まれる演算素子・信号線対応算出部１０８は、基準図面において対応付けの対象となった演算素子同士を接続する信号線と、比較図面において対応付けの対象となった演算素子同士を接続する信号線とを、対応付け、対応付けられた演算素子および信号線に基づいて、基準図面と比較図面との類似度を算出する類似度算出部１０９とをさらに備えることで、図面移動量に従う演算素子および信号線を対応付け、基準図面と比較図面との類似度を適切に算出することが可能となる。よって、複数のロジック図面から、検索者が与えるロジック図面に論理的に類似するロジック図面を高速かつ正確に検索可能となる。
【００８５】
また、本発明にかかる実施の形態１によれば、ロジック図面検索装置において、移動量推定部１０６は、検出された座標変化分をカウントし、最も多くカウントされた座標変化分に基づいて、図面移動量を推定することで、基準図面および比較図面それぞれにおける演算素子群全体の移動距離、移動方向を適切に推定し、類似度判断の精度をより高めることができる。
【００８６】
また、本発明にかかる実施の形態１によれば、ロジック図面検索装置において、対応付け部としての演算素子・信号線対応算出部１０８は、基準図面および比較図面のうちいずれか一方における演算素子を移動させ、当該両図面において、当該演算素子の座標が対応付けられない場合であっても、基準図面および比較図面それぞれにおける当該演算素子が、信号線を介して、対応付けの対象となった演算素子と接続され、かつ、当該両図面における当該演算素子の種別および当該演算素子に接続された当該信号線の種別が、対応付けられる場合は、基準図面における当該演算素子および当該信号線と、比較図面における当該演算素子および当該信号線とを、対応付けることで、対応付けが既知である演算素子から信号線を辿ることができ、その信号線から、より詳細に対応付けを導き出すことができる。よって、類似度判断の精度をより高めることができる。
【００８７】
また、編集が加えられた基準図面に対しても、より正確に類似検索を行うことが可能となる。
【００８８】
また、本発明にかかる実施の形態１によれば、ロジック図面検索装置において、付与部としての基準図面入力部１０２は、ロジック図面格納部１０００におけるロジック図面から選択し、又は、さらに少なくとも部分的に編集して、基準図面として付与することで、基準図面に編集が加えられた場合であっても、類似検索の対象とすることができる。
【００８９】
また、本発明にかかる実施の形態１によれば、ロジック図面検索装置において、類似度算出部１０９は、基準図面および比較図面における演算素子および信号線のうちの、対応付けられた演算素子および信号線の度合いに基づいて、類似度を算出することで、演算素子および信号線がより多く対応する基準図面と比較図面とがより類似する図面同士であると判断されることとなり、正確な類似検索を行うことができる。
【００９０】
＜Ｂ．実施の形態２＞
＜Ｂ−１．構成＞
本実施の形態２にかかるロジック図面検索装置において、検索結果表示部１１０が表示する内容の一例を図１４、図１５に示す。
【００９１】
基準図面として図５、比較図面として図６が与えられているものとする（実施の形態１参照）。検索結果表示部１１０が示す基準図面の例を図１４、比較図面の例を図１５にそれぞれ示す。
【００９２】
それぞれ、演算素子・信号線対応算出部１０８が算出した結果に基づき、対応関係のある演算素子及び信号線を太字で示してある。
【００９３】
これらの図から明らかなように、実施の形態２にかかるロジック図面検索装置において、検索結果表示部１１０は、論理的に同一の部分と異なる部分、すなわち、対応付けられた演算素子および信号線と対応付けられない演算素子および信号線とを、検索者に明確に理解できるように区別して示すことが可能となっている。
【００９４】
なお、表示の仕方は太字に限らず、差異が明確となり区別できる態様であれば、特に限定しない。
【００９５】
＜Ｂ−２．効果＞
本発明にかかる実施の形態２によれば、ロジック図面検索装置において、表示部としての検索結果表示部１１０は、対応付けられた演算素子および信号線と、対応付けられない演算素子および信号線とを、区別可能な態様で表示することで、類似検索で得られたロジック図面において、論理的にどこが同一で、どこが異なるのかを明らかにすることが可能となる。
【００９６】
＜Ｃ．実施の形態３＞
＜Ｃ−１．構成＞
類似度算出部１０９は、演算素子・信号線対応算出部１０８によって得られた演算素子対応表、信号線対応表をもとに、基準図面と比較図面との類似度を算出する。実施の形態１では、類似度の計算方法として、対称なもの、即ち、基準図面と比較図面を入れ替えても、類似度が変わらないものを挙げたが、対称でない類似度計算方式も考えられる。一例として、次のようなものがある。
【００９７】
Ｎａ  ：  基準図面と比較図面との間で対応する演算素子の数
Ｌａ  ：  基準図面と比較図面との間で対応する信号線の数
Ｎ０  ：  基準図面の演算素子の数
Ｌ０  ：  基準図面の信号線の数
β  ：  パラメータ  （０〜１の値を取る）として、
類似度  ＝  （βＮａ  ＋  （１−β）Ｌａ）  ／  （βＮ０  ＋  （１−β）Ｌ０）
βはパラメータであり、１のときは演算素子の対応関係のみを考慮し、０のときは信号線の対応関係のみを考慮して類似度を算出する。当該パラメータの値を調整することによって、演算素子、信号線の考慮の度合いを設定することができる。
【００９８】
＜Ｃ−２．効果＞
基準図面と比較図面とが論理的に一致するロジックであるとき、また、基準図面の全部が比較図面の一部と一致するときも、（Ｎａ  ＝  Ｎ０，  Ｌａ  ＝  Ｌ０）であるから、上記類似度は１となる。また、全く一致しないとき、（Ｎａ  ＝  Ｌａ  ＝  ０）であるから、上記類似度は０となる。
【００９９】
これらの特性を持つことから、上記の類似度計算式は、基準図面としてロジックの一部を与え、それに類似した部分を含むような比較図面を検索したいときに適している。開発途中のロジック図面を与えて類似の図面を検索し、参考情報としながら開発を加速化する用途や、ロジック図面の不具合のある部分を与えて類似図面を検索し、同様の不具合を含む図面を発見する用途に効力を発揮する。
【０１００】
なお本発明は、その発明の範囲内において、各実施の形態の自由な組み合わせ、あるいは各実施の形態の任意の構成要素の変形、もしくは各実施の形態において任意の構成要素の省略が可能である。
【符号の説明】
【０１０１】
１０２  基準図面入力部、１０３  演算素子位置検出部、１０４  演算素子種別検出部、１０５  信号線検出部、１０６  移動量推定部、１０７  演算素子仮対応算出部、１０８  演算素子・信号線対応算出部、１０９  類似度算出部、１１０  検索結果表示部、１０００  ロジック図面格納部。
【図１】
0005539301.tif 000002
【図２】
0005539301.tif 000003
【図３】
0005539301.tif 000004
【図４】
0005539301.tif 000005
【図５】
0005539301.tif 000006
【図６】
0005539301.tif 000007
【図７】
0005539301.tif 000008
【図８】
0005539301.tif 000009
【図９】
0005539301.tif 000010
【図１０】
0005539301.tif 000011
【図１１】
0005539301.tif 000012
【図１２】
0005539301.tif 000013
【図１３】
0005539301.tif 000014
【図１４】
0005539301.tif 000015
【図１５】
0005539301.tif 000016