(57)【要約】【課題】因果関係が複雑であっても当該因果関係を示す有向グラフの良好な視認性を実現する。【解決手段】因果関係表示システムが生成し表示する有向グラフでは、一つ以上のノードから別の一つ以上のノードにそれぞれ接続される二つ以上のエッジの一部の線分が重複することが許容されている。例えば、一つの原因に属する一つのノードから当該原因の二つ以上の結果にそれぞれ属する二つ以上のノードにそれぞれ接続される二つ以上のエッジがあれば、当該二つ以上のエッジの一部の線分が重複することが許容されており、二つ以上の原因にそれぞれ属する二つ以上のノードから当該二つ以上の原因の一つの結果に属する一つのノードにそれぞれ接続される二つ以上のエッジがあれば、当該二つ以上のエッジの一部の線分が重複することが許容されている。【選択図】図１
2020098387.tif 000002
【特許請求の範囲】
【請求項１】
それぞれが原因又は結果である複数の要素の因果関係を示す情報である因果関係情報を基に前記複数の要素にそれぞれ対応した複数のノードと前記複数の要素の因果関係に対応した複数のエッジとで構成された有向グラフを生成するグラフ生成部と、
当該生成した有向グラフを含む出力情報を表示するＵＩ（User Interface）制御部と
を備え、
前記有向グラフでは、
水平方向又は垂直方向である第１の方向が、＋ｘ方向と−ｘ方向を持つｘ方向であり、
前記第１の方向と直交する第２の方向が、＋ｙ方向と−ｙ方向を持つｙ方向であり、
一つ以上のノードから別の一つ以上のノードにそれぞれ接続される二つ以上のエッジの一部の線分が重複することが許容されている、
因果関係表示システム。
【請求項２】
前記ＵＩ制御部は、
前記有向グラフのうちのいずれかのノードの指定をユーザから受け付け、
前記指定されたノードにＮのエッジ（Ｎは自然数）を介して接続されている一つ以上のノードと、当該一つ以上のノードと前記指定されたノード間の全てのエッジとを強調表示する、
請求項１に記載の因果関係表示システム。
【請求項３】
Ｎ＝１である、
請求項２に記載の因果関係表示システム。
【請求項４】
前記有向グラフは、ＤＡＧ（Directed Acyclic Graph）であり、
前記ＤＡＧの生成は、
ノードに関するルールである第１種のルールと、
エッジに関するルールである第２種のルールと、
ノード及びエッジに共通のルールである第３種のルールと
に従っており、
前記第１種のルールによれば、少なくとも一つのノードを結果とする原因に属するノードは、当該少なくとも一つのノードよりも、前記−ｘ方向側に配置され、
前記第２種のルールによれば、
ノードからｘ方向に平行に延びたエッジの屈曲回数は０回又は２回であり、
エッジの屈曲回数が０回の場合、当該エッジは、前記ｘ方向に平行な線分であり、
エッジの屈曲回数が２回の場合、当該エッジの屈曲部以外の部分は、ｘ方向に平行な線分とｙ方向に平行な線分で構成され、
エッジの始点を含む線分は、ノードの＋ｘ方向側に接続され、且つ、前記ｘ方向に平行であり、
エッジの終点を含む線分は、ノードの−ｘ方向側に接続され、且つ、前記ｘ方向に平行であり、
前記第３種のルールによれば、ノード同士が重ならず、且つ、ノードとエッジも重ならない、
請求項１に記載の因果関係表示システム。
【請求項５】
前記ＤＡＧは、階層構造を持ち、
前記第１種のルールによれば、前記複数のノードが分類される複数の階層がある場合、原因側の階層に所属するノードは、結果側の階層に所属するノードより−ｘ方向側に配置される、
請求項４に記載の因果関係表示システム。
【請求項６】
前記第３種のルールによれば、ノード同士が重ならないことは、ノードの各辺より長い格子辺を持つ格子の格子点であり座標に該当する点に配置されることで実現される、
請求項４に記載の因果関係表示システム。
【請求項７】
前記有向グラフは、ＤＡＧであり、
前記ＤＡＧの生成は、下記を含む、
（ａ）原因に属するノードを当該原因の結果に属するノードよりも前記−ｘ方向側に配置するように前記複数のノードの各々のｘ座標を算出すること、及び、
（ｂ）原因に属するノードの＋ｘ方向側から延び当該原因の結果に属するノードの−ｘ方向側へ接続されるエッジがいずれの他のノードに重ならず且つ屈曲回数が０回又は２回であるように前記複数のノードの各々のｙ座標を算出すること、
請求項１に記載の因果関係表示システム。
【請求項８】
（ｂ）は、前記複数のノードの各々について、下記を行うことを含む、
（ｂ１）当該ノードである対象ノードを結果又は原因とする一つ以上の原因又は結果にそれぞれ属する一つ以上のノードのうち、当該対象ノードのｘ座標から最も遠いｘ座標に配置されるノードである最遠ノードを特定する、
（ｂ２）前記最遠ノードのｘ座標と前記対象ノードのｘ座標間にいずれのノードも配置されていないｙ座標のうち、前記最遠ノードのｙ座標と前記対象ノードのｙ座標間の距離が最も短くなるｙ座標を特定する、
（ｂ３）当該特定されたｙ座標を前記対象ノードのｙ座標に決定する、
請求項７に記載の因果関係表示システム。
【請求項９】
前記ＤＡＧは、階層構造を持つＤＡＧである因果関係ネットワークであり、
前記複数のノードの各々について、（ａ）で算出されるｘ座標は、絶対的なｘ座標であり、
（ａ）は、前記複数のノードが分類される複数の階層の各々について、原因に属するノードを当該原因の結果に属するノードよりも前記−ｘ方向側に配置するように当該階層に属する一つ以上のノードの各々の相対的なｘ座標を算出し、前記一つ以上の階層の並びに従い、前記一つ以上の階層の各々について算出された相対的なｘ座標を絶対的なｘ座標に変換することである、
請求項７に記載の因果関係表示システム。
【請求項１０】
（ａ）において、前記複数の階層の各々について、相対的なｘ座標の算出は、下記を含む、
（ａ１）ＧＴ、ＳＴ及びＸＴを定義する、
ＧＴは、当該階層である対象階層に属するノードを含んだ有向グラフである、
ＳＴは、ＧＴ内で結果を持たないノードの集合である、
ＸＴは、整数であり、ＸＴの初期値は、所定の値である、
（ａ２）ＳＴが空集合になるまで、ＳＴに含まれるノードの相対的なｘ座標をＸＴとすることと、ＳＴに含まれるノードをＧＴから削除し、削除後のＧＴからＳＴを求めることとを繰り返し、繰り返し毎に、ＸＴから一定値をデクリメントする、
請求項９に記載の因果関係表示システム。
【請求項１１】
前記ＵＩ制御部は、前記表示された有向グラフを編集することで因果関係を編集するユーザ操作を受け付け、
前記グラフ生成部は、当該ユーザ操作後の因果関係を基に有向グラフを生成し、
前記ＵＩ制御部は、前記表示された有向グラフを当該生成された有向グラフに更新する、
請求項１に記載の因果関係表示システム。
【請求項１２】
前記生成された有向グラフでは、
ノードからｘ方向に平行に延びたエッジの屈曲回数は０回又は２回であり、
エッジの屈曲回数が０回の場合、当該エッジは、前記ｘ方向に平行な線分であり、
エッジの屈曲回数が２回の場合、当該エッジの屈曲部以外の部分は、ｘ方向に平行な線分とｙ方向に平行な線分で構成され、
エッジの始点を含む線分は、ノードの＋ｘ方向側に接続され、且つ、前記
ｘ方向に平行であり、
エッジの終点を含む線分は、ノードの−ｘ方向側に接続され、且つ、前記ｘ方向に平行である、
請求項１に記載の因果関係表示システム。
【請求項１３】
それぞれが原因又は結果である複数の要素の因果関係を示す情報である因果関係情報を基に前記複数の要素にそれぞれ対応した複数のノードと前記複数の要素の因果関係に対応した複数のエッジとで構成された有向グラフを生成し、
当該生成した有向グラフを含む出力情報を表示し、
前記有向グラフでは、
水平方向又は垂直方向である第１の方向が、＋ｘ方向と−ｘ方向を持つｘ方向であり、
前記第１の方向と直交する第２の方向が、＋ｙ方向と−ｙ方向を持つｙ方向であり、
一つ以上のノードから別の一以上のノードにそれぞれ接続される二つ以上のエッジの一部の線分が重複することが許容されている、
因果関係表示方法。
【請求項１４】
それぞれが原因又は結果である複数の要素の因果関係を示す情報である因果関係情報を基に前記複数の要素にそれぞれ対応した複数のノードと前記複数の要素の因果関係に対応した複数のエッジとで構成された有向グラフを生成し、
当該生成した有向グラフを含む出力情報を表示する、
ことを計算機に実行させ、
前記有向グラフでは、
水平方向又は垂直方向である第１の方向が、＋ｘ方向と−ｘ方向を持つｘ方向であり、
前記第１の方向と直交する第２の方向が、＋ｙ方向と−ｙ方向を持つｙ方向であり、
一つ以上のノードから別の一つ以上のノードにそれぞれ接続される二つ以上のエッジの一部の線分が重複することが許容されている、
コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概して、複数の要素の因果関係の表示技術に関する。
【背景技術】
【０００２】
因果関係の表示として、因果関係を表す有向グラフを因果関係ネットワークとして表示することが挙げられる。当該有向グラフは、例えば、ＤＡＧ（Directed Acyclic Graph）である。
【０００３】
しかし、大量のノードを有する因果関係ネットワークの良好な視認性を実現する可視化技術が確立されていない。例えば、単純な可視化技術が採用された場合、図２４に例示する因果関係ネットワークが生成され表示され得るが、この技術では、下記のような問題がある。
・ノードとエッジが重なるため、ノード間の因果関係を認識するのが困難であり、且つ、ノードの視認性が低い。
・エッジが縦横無尽に描画されるため、余計な情報量が多く、必要な情報を読み取るのが困難である。
【０００４】
因果関係ネットワークの可視化技術に関して、特許文献１〜３がある。
【０００５】
特許文献１によれば、「driver-KPI concept」を満たすノードが、一つの仮想的なノードとされ、「driver-KPI concept」を満たすノード間のエッジが、「generic node」で束ねられる。
【０００６】
特許文献２によれば、分散環境でのタスク実行計画がＤＡＧで表現され、当該ＤＡＧでは、行は、分散された各マシン（例えば仮想マシン）を表し、列は、時間軸を表す。実行順番が早いタスク程、左に配置され、並列処理されるタスクは、同一列に配置される。
【０００７】
特許文献３によれば、各工程の操業プロセスデータを説明変数、歩留まりデータを目的変数として、各変数間の因果関係が、階層をもつネットワークとして表現される。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】ＵＳ２０１７／０１５４２９
【特許文献２】ＵＳ９，５９４，６０１
【特許文献３】特開２０１７−１４６８９９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
特許文献１によれば、ノードの数が減るので、視認性の向上が図られるものの、ノードとエッジの重なりを完全に回避することはできない。
【００１０】
特許文献２によれば、タスクの依存関係としての因果関係は単純であるため、ノードとエッジが重ならないように表現することに困難性はない。特許文献２では、複雑な因果関係を表現することは開示も示唆もされていない。
【００１１】
特許文献３も、同様に、複雑な因果関係を表現すること（例えば、大量の説明変数を持つ因果関係ネットワークの視認性を良好にすること）について開示も示唆もされていない。
【００１２】
複雑な因果関係としては、例えば、二つ以上の原因に対して一つの結果が存在し、かつそのような二つ以上の原因の少なくとも一つがいずれか別の一つ以上の原因に対する結果となる因果関係が考えられる。
【００１３】
このような複雑な因果関係を表す因果関係ネットワークは、階層構造を持ち大量のノードを有することがあり、例えば、製造業において利用可能である。具体的には、工場で行われる複数の工程を当該工場に設置された数千〜数万のセンサを用いて監視する環境を例に取ると、複数の工程を複数の階層とし、各工程に関し、種々の事象（例えば、装置の圧力、取出し検査の結果）が、ノードになり得る。このような環境での因果関係を表す因果関係ネットワークに、特許文献１〜３の少なくとも一つを適用しても、良好な視認性を実現すること（例えば、ノードとエッジが重ならないことを維持しつつ所望の範囲に属するノード間の因果関係を表示すること）はできない。
【００１４】
このような課題は、他種の有向グラフ（例えばＤＡＧ）についてもあり得る。
【課題を解決するための手段】
【００１５】
因果関係表示システムが生成し表示する有向グラフでは、一つ以上のノードから別の一つ以上のノードにそれぞれ接続される二つ以上のエッジの一部の線分が重複することが許容されている。例えば、一つの原因に属する一つのノードから当該原因の二つ以上の結果にそれぞれ属する二つ以上のノードにそれぞれ接続される二つ以上のエッジがあれば、当該二つ以上のエッジの一部の線分が重複することが許容されており、二つ以上の原因にそれぞれ属する二つ以上のノードから当該二つ以上の原因の一つの結果に属する一つのノードにそれぞれ接続される二つ以上のエッジがあれば、当該二つ以上のエッジの一部の線分が重複することが許容されている。
【発明の効果】
【００１６】
因果関係が複雑であっても当該因果関係を示す有向グラフの良好な視認性が実現される。
【図面の簡単な説明】
【００１７】
【図１】実施例１に係る因果関係ネットワークを示す。
【図２】因果関係ネットワークの一部についての強調表示の一例を示す。
【図３】歩留り予測システムの構成を示す。
【図４】第１種のルールの一例を示す。
【図５】第２種のルールの一例を示す。
【図６】第３種のルールの一例を示す。
【図７】表示制御処理のフローを示す。
【図８】図７のＳ７０２の詳細のフローを示す。
【図９】因果関係テーブルの構成を示す。
【図１０】階層管理テーブルの構成を示す。
【図１１】ノード座標テーブルの構成を示す。
【図１２】ノード間距離テーブルの構成を示す。
【図１３】エッジ定義テーブルの構成を示す。
【図１４】実施例１に係る全順序定義の一例を示す。
【図１５】実施例１に係るｘ座標算出の一例を示す。
【図１６】実施例１に係るｙ座標算出の一例を示す。
【図１７】エッジ削除前の因果関係ネットワークの一例を示す。
【図１８】エッジ削除後の因果関係ネットワークの一例を示す。
【図１９】エッジ追加前の因果関係ネットワークの一例を示す。
【図２０】エッジ追加後の因果関係ネットワークの一例を示す。
【図２１】実施例２に係る全順序定義の一例を示す。
【図２２】実施例２に係るｘ座標算出の一例を示す。
【図２３】実施例２に係るｙ座標算出の一例を示す。
【図２４】一比較例に係る可視化技術が適用されたＤＡＧの一例を示す。
【発明を実施するための形態】
【００１８】
以下の説明では、「インターフェース装置」は、一つ以上のインターフェースデバイスでよい。当該一つ以上のインターフェースデバイスは、下記のうちの少なくとも一つでよい。
・一つ以上のＩ／Ｏ（Input/Output）インターフェースデバイス。Ｉ／Ｏ（Input/Output）インターフェースデバイスは、Ｉ／Ｏデバイスと遠隔の表示用計算機とのうちの少なくとも一つに対するインターフェースデバイスである。表示用計算機に対するＩ／Ｏインターフェースデバイスは、通信インターフェースデバイスでよい。少なくとも一つのＩ／Ｏデバイスは、ユーザインターフェースデバイス、例えば、キーボード及びポインティングデバイスのような入力デバイスと、表示デバイスのような出力デバイスとのうちのいずれでもよい。
・一つ以上の通信インターフェースデバイス。一つ以上の通信インターフェースデバイスは、一つ以上の同種の通信インターフェースデバイス（例えば一つ以上のＮＩＣ（Network Interface Card））であってもよいし二つ以上の異種の通信インターフェースデバイス（例えばＮＩＣとＨＢＡ（Host Bus Adapter））であってもよい。
【００１９】
また、以下の説明では、「メモリ」は、一つ以上のメモリデバイスであり、典型的には主記憶デバイスでよい。メモリにおける少なくとも一つのメモリデバイスは、揮発性メモリデバイスであってもよいし不揮発性メモリデバイスであってもよい。
【００２０】
また、以下の説明では、「永続記憶装置」は、一つ以上の永続記憶デバイスである。永続記憶デバイスは、典型的には、不揮発性の記憶デバイス（例えば補助記憶デバイス）であり、具体的には、例えば、ＨＤＤ（Hard Disk Drive）又はＳＳＤ（Solid State Drive）である。
【００２１】
また、以下の説明では、「記憶装置」は、メモリと永続記憶装置の少なくともメモリでよい。
【００２２】
また、以下の説明では、「プロセッサ」は、一つ以上のプロセッサデバイスである。少なくとも一つのプロセッサデバイスは、典型的には、ＣＰＵ（Central Processing Unit）のようなマイクロプロセッサデバイスであるが、ＧＰＵ（Graphics Processing Unit）のような他種のプロセッサデバイスでもよい。少なくとも一つのプロセッサデバイスは、シングルコアでもよいしマルチコアでもよい。少なくとも一つのプロセッサデバイスは、プロセッサコアでもよい。少なくとも一つのプロセッサデバイスは、処理の一部又は全部を行うハードウェア回路（例えばＦＰＧＡ（Field-Programmable Gate Array）又はＡＳＩＣ（Application Specific Integrated Circuit））といった広義のプロセッサデバイスでもよい。
【００２３】
また、以下の説明では、「ｘｘｘテーブル」といった表現にて、入力に対して出力が得られる情報を説明することがあるが、当該情報は、どのような構造のデータでもよいし、入力に対する出力を発生するニューラルネットワークのような学習モデルでもよい。従って、「ｘｘｘテーブル」を「ｘｘｘ情報」と言うことができる。また、以下の説明において、各テーブルの構成は一例であり、一つのテーブルは、二つ以上のテーブルに分割されてもよいし、二つ以上のテーブルの全部又は一部が一つのテーブルであってもよい。
【００２４】
また、以下の説明では、「ｋｋｋ部」の表現にて機能を説明することがあるが、機能は、一つ以上のコンピュータプログラムがプロセッサによって実行されることで実現されてもよいし、一つ以上のハードウェア回路（例えばＦＰＧＡ又はＡＳＩＣ）によって実現されてもよい。プログラムがプロセッサによって実行されることで機能が実現される場合、定められた処理が、適宜に記憶装置及び／又はインターフェース装置等を用いながら行われるため、機能はプロセッサの少なくとも一部とされてもよい。機能を主語として説明された処理は、プロセッサあるいはそのプロセッサを有する装置が行う処理としてもよい。プログラムは、プログラムソースからインストールされてもよい。プログラムソースは、例えば、プログラム配布計算機又は計算機が読み取り可能な記録媒体（例えば非一時的な記録媒体）であってもよい。各機能の説明は一例であり、複数の機能が一つの機能にまとめられたり、一つの機能が複数の機能に分割されたりしてもよい。
【００２５】
また、以下の説明では、「因果関係表示システム」は、一つ以上の物理的な計算機でもよいし、少なくとも一つの物理的な計算機が所定のソフトウェアを実行することで実現されるソフトウェアディファインドのシステムでもよい。例えば、計算機が表示デバイスを有していて計算機が自分の表示デバイスに情報を表示する場合、当該計算機が因果関係表示システムでよい。また、例えば、第１計算機（例えばサーバ）が出力情報を遠隔の第２計算機（表示用計算機（例えばクライアント））に送信し表示用計算機がその情報を表示する場合（第１計算機が第２計算機に情報を表示する場合）、第１計算機と第２計算機とのうちの少なくとも第１計算機が因果関係表示システムでよい。すなわち、因果関係表示システムが「出力情報を表示する」ことは、計算機が有する表示デバイスに出力情報を表示することであってもよいし、計算機が表示用計算機に出力情報を送信することであってもよい（後者の場合は表示用計算機によって出力情報が表示される）。
【００２６】
また、以下の説明では、同種の要素を区別しないで説明する場合には、参照符号のうちの共通部分を使用し、同種の要素を区別して説明する場合は、参照符号を使用することがある。例えば、階層エリアを特に区別しないで説明する場合には、「階層エリア１０」と記載し、個々の階層エリアを区別して説明する場合には、「階層エリア１０−１」、「階層エリア１０−２」のように記載することがある。
【００２７】
また、「ノード」と「エッジ」は有向グラフにおける用語である。「ノード」と「エッジ」の各々は別の用語に読み替えられてもよい。例えば、「ノード」は、「頂点」と呼ばれてもよい。「エッジ」は、「リンク」、「ライン」又は「枝」と呼ばれてもよい。
【００２８】
以下、本発明の幾つかの実施例を図面に基づいて説明する。なお、以下の実施例では、因果関係表示システムの一例として、歩留り予測システムが採用される。また、以下の実施例では、因果関係を表す有向グラフ（典型的には、非循環有向グラフと呼ばれるＤＡＧ）の一例として、階層構造を持つ因果関係ネットワークが採用される。また、以下の実施例では、＋ｘ方向と−ｘ方向を持つｘ方向が、水平方向であり、＋ｙ方向と−ｙ方向を持つｙ方向が垂直方向である。また、以下の実施例では、ノードに対応した要素は、変数（具体的には、説明変数及び目的変数のいずれか）である。
【実施例１】
【００２９】
図１は、実施例１に係る因果関係ネットワークを示す。
【００３０】
実施例１に歩留り予測システムは、グラフ生成部と、ＵＩ（User Interface）制御部とを有する。グラフ生成部は、それぞれが原因又は結果である複数の変数の因果関係を示す因果関係テーブルを基に複数の変数にそれぞれ対応した複数のノードと複数の変数の因果関係に対応した複数のエッジとで構成された因果関係ネットワークを生成する。ＵＩ制御部は、当該生成された因果関係ネットワークを含む出力情報を表示する。図１に例示の因果関係ネットワーク２０は、グラフ生成部に生成されＵＩ制御部により表示（描画）された因果関係ネットワークである。
【００３１】
ｘ方向に沿って階層１〜４（複数の階層の一例）に対応した列状の階層エリア１０−１〜１０−４が定義される。本実施例では、階層α（αは自然数）に関し、αの値が相対的に小さい階層は、原因側の階層であり、αの値が相対的に大きい階層は、結果側の階層である。階層エリアの参照符号における枝番は、当該階層エリアに対応した階層の番号αと一致している。
【００３２】
複数のノードが、ｘ方向とｙ方向に沿って配置されている。階層エリア１０−１〜１０−４の各々には、当該階層エリア１０に属する変数に対応したノードが配置される。例えば、階層エリア１０−１には、ノード０００〜００７が配置されている。なお、階層エリア１０の幅（ｘ方向に沿った長さ）は、ノードの配置に依存する。また、因果関係ネットワーク２０全体の高さ（ｙ方向に沿った長さ）も、ノードの配置に依存する。
【００３３】
因果関係ネットワーク２０では、例えば、一つの原因に属する一つのノードから当該原因の二つ以上の結果にそれぞれ属する二つ以上のノードにそれぞれ接続される二つ以上のエッジがあれば、当該二つ以上のエッジの一部の線分が重複することが許容されている。具体的には、例えば、一つの原因に属する一つのノード００１から当該原因の二つ以上の結果にそれぞれ属する二つのノード００７及び０１２にそれぞれ接続される二つエッジの一部の線分（例えばｙ方向に沿って延びた線分）が重複している。
【００３４】
また、因果関係ネットワーク２０では、例えば、二つ以上の原因にそれぞれ属する二つ以上のノードから当該二つ以上の原因の一つの結果に属する一つのノードにそれぞれ接続される二つ以上のエッジがあれば、当該二つ以上のエッジの一部の線分が重複することも許容されている。具体的には、例えば、二つの原因にそれぞれ属する二つのノード０００及び００１から当該二つの原因の一つの結果に属する一つのノード０１２にそれぞれ接続される二つのエッジの一部の線分（例えばｘ方向に沿って延びた線分）が重複している。
【００３５】
また、因果関係ネットワーク２０では、例えば、二つ以上の原因にそれぞれ属する二つ以上のノードから当該二つ以上の原因にそれぞれ対応した二つ以上の結果にそれぞれ属する二つ以上のノードにそれぞれ接続される二つ以上のエッジがあれば、当該二つ以上のエッジの一部の線分が重複することも許容されている。具体的には、例えば、二つの原因にそれぞれ属する二つのノード００１及び００４から当該二つの原因にそれぞれ対応した二つ結果にそれぞれ属する二つのノード０１２及び００７にそれぞれ接続される二つのエッジの一部の線分（例えばｙ方向に沿って延びた線分）が重複している。
【００３６】
このように、本実施例では、一つ以上のノードから別の一つ以上のノードにそれぞれ接続される二つ以上のエッジの一部の線分が重複することが許容されている。視認性の向上を目的とした場合、一般的には、エッジの重なりを極力避けるためのエッジ及びノードの配置が検討されるが、本実施例は、エッジの部分的な重なりを許容することで因果関係ネットワークの視認性を向上することができる。
【００３７】
そして、このように二つ以上のエッジの部分的な重なりを許容するという技術的解決手段を導き出すことができたのは、本願発明者が因果関係ネットワークの実用について鋭意検討した結果、次の知見を得るに至ったことにある。すなわち、ユーザにとって、大量のノード全体の因果関係を俯瞰的に把握することよりも、いずれかのノードに注目することとその注目したノードと因果関係のあるノードを把握することとを繰り返すことでユーザ所望の範囲について因果関係を把握することが好ましいことである。
【００３８】
そこで、本実施例では、ＵＩ制御部は、因果関係ネットワーク２０のうちのいずれかのノード（ユーザが注目するノード）の指定をユーザから受け付け、指定されたノードにＮのエッジ（Ｎは自然数）を介して接続されている一つ以上のノードと、当該一つ以上のノードと指定されたノード間の全てのエッジとを強調表示する。例えば、Ｎ＝１であり、且つ、図２に例示するように、ノード０１２が指定された場合、ノード０１２に一つエッジを介して接続されている全てのノード０００、００１、００９、０１３及び０１９と、それらのノードと指定されたノード０１２間の全てのエッジとが強調表示される。これにより、ユーザは、二つ以上のエッジが重なっていることで一見してノード間に因果関係があるか否かがわからなくても、ノードを指定すれば、当該ノードと因果関係のあるノードが強調表示されるため、ノード間の因果関係を把握できる。
【００３９】
なお、強調表示は、色、模様、線種、線の太さ等の属性を変えることでよい。
【００４０】
また、「指定されたノードにＮのエッジ（Ｎは自然数）を介して接続されている一つ以上のノード」は、指定されたノードの原因側のノードと結果側のノードとのうちの両方に限らずユーザ所望の一方でもよい。
【００４１】
また、Ｎの値は、１より大きくてもよいが、１であることが好ましいと考えられる。指定されたノードと他のノードを隔てて因果関係のある（つまり間接的に因果関係のある）ノードは強調表示の対象から除外されるため、指定されたノードと直接的な因果関係のあるノードが一目でわかるからである。指定されたノードと直接的な因果関係のあるノードを新たに指定することを繰り返すことで、ユーザ所望の範囲についての因果関係を把握することができる。
【００４２】
以下、本実施例を詳細に説明する。
【００４３】
図３は、歩留り予測システムの構成を示す。
【００４４】
歩留り予測システム５０は、歩留り予測装置１００と、歩留り予測装置１００に接続された入出力装置１７０とを含む。入出力装置１７０は、表示用計算機の一例でよく、いわゆる入出力コンソールであり、ユーザの操作を受け付ける入力デバイス（例えば、キーボード、ポインティングデバイス）と、歩留り予測装置１００からの出力情報が表示される表示デバイス（例えば、液晶ディスプレイ）とを含む。入力デバイス及び表示デバイスが一体であるタッチパネルが採用されてもよい。具体的には、入出力装置１７０は、インターネットやＬＡＮ（Local Area Network）、ＷＡＮ（Wide Area Network）等を介して接続されたパーソナルコンピュータ（例えば、デスクトップ型、ラップトップ型又はタブレット型のパーソナルコンピュータ）やスマートフォンのようにＷｅｂブラウザ等を用いることのできる計算機でよい。
【００４５】
歩留り予測装置１００は、一つ以上の計算機でよく、インターフェース装置１５０、記憶装置２０３及びそれらに接続されたプロセッサ２０４を有する。インターフェース装置１５０を介して入出力装置１７０と通信が行われる。
【００４６】
記憶装置２０３は、プロセッサ２０４により実行される一つ以上のプログラムを格納する。また、記憶装置２０３は、因果関係テーブル３３１、グラフルールテーブル３３２、階層管理テーブル３３３、ノード座標テーブル３３４、ノード間距離テーブル３３５及びエッジ定義テーブル３３６といったテーブルを格納する。
【００４７】
プロセッサ２０４が一つ以上のプログラムを実行することで、制御部５１が実現される。制御部５１は、例えば図示しない製造実績テーブル（例えば、製品毎に各種センサの時系列の測定値を含んだテーブル）等を基に因果関係を計算したり、計算された因果関係を示す因果関係ネットワークを生成して表示したりする。具体的には、例えば、制御部５１は、因果関係計算部３２１、グラフ生成部３２２、及び、ＵＩ制御部３２３を含む。
【００４８】
因果関係計算部３２１は、因果関係を計算し、当該因果関係を示す因果関係テーブル３３１を記憶装置２０３に格納する。例えば、因果関係計算部３２１は、特開２０１７−１４６８９９号公報（特許文献３）に開示の技術を利用して因果関係を計算することができる。
【００４９】
グラフ生成部３２２は、因果関係テーブル３３１、グラフルールテーブル３３２及び階層管理テーブル３３３を基に、上述したような因果関係ネットワークを生成する。因果関係ネットワークの生成において、ノード座標テーブル３３４、ノード間距離テーブル３３５及びエッジ定義テーブル３３６が記憶装置２０３に格納される。グラフ生成部３２２は、各ノードのｘ座標及びｙ座標を計算するノード座標計算部３４１、エッジの座標及び形状を計算するエッジ定義部３４２、及び、ノード間の距離を計算するノード間距離計算部３４３を含む。
【００５０】
ＵＩ制御部３２３は、ノード座標テーブル３３４、ノード間距離テーブル３３５及びエッジ定義テーブル３３６を基に、生成された因果関係ネットワークを含む出力情報を入出力装置１７０に表示する。出力情報は、因果関係ネットワークそれ自体でもよいし、因果関係ネットワーク以外の特定の情報（例えば、図１に例示されているように、階層１〜４をそれぞれ示す四つの表示オブジェクト）を含んでもよい。
【００５１】
このような歩留り予測装置１００により、図１に例示のような因果関係ネットワーク２０が生成され表示される。本実施例では、下記の全ての効果が実現される。
（効果１）ノードのｘ座標によって、当該ノードが所属する階層と当該ノードと他ノードとの因果関係との視認が可能である。
（効果２）エッジのｙ座標によって、当該エッジの始点と終点が接続されるノードの視認が可能である。
（効果３）ノードが大量に存在しても、ノード同士が重ならず、且つ、ノードとエッジも重ならない。
【００５２】
（効果１）〜（効果３）の実現は、グラフルールテーブル３３２に定義されているルール、具体的には、第１種〜第３種のルールに依存する。第１種のルールは、ノードに関するルールであり、（効果１）の実現に貢献する。第２種のルールは、エッジに関するルールであり、（効果２）の実現に貢献する。第３種のルールは、ノード及びエッジに共通のルールであり、（効果３）の実現に貢献する。
【００５３】
図４は、第１種のルールの一例を示す。
【００５４】
第１種のルールは、ルール１−１及びルール１−２を含む。
【００５５】
ルール１−１によれば、少なくとも一つのノードＡ２（又はＡ４）を結果とする原因に属するノードＡ１（又はＡ３）は、当該少なくとも一つのノードＡ２（又はＡ４）よりも、−ｘ方向側に配置される（参照符号４０１Ｔ）。従って、原因に属するノードＢ１（又はＢ３）のｘ座標が、当該原因に対する結果に属するノードＢ２（又はＢ４）のｘ座標と同じ又はそれよりも大きくなることは無い（参照符号４０１Ｆ）。
【００５６】
ルール１−２によれば、複数のノードが分類される複数の階層がある場合、原因側の階層に所属するノードＣ１は、結果側の階層に所属するノードＣ２及びＣ３より−ｘ方向側に配置される（参照符号４０２Ｔ）。従って、異なる二つ以上の階層にそれぞれ属する二つ以上のノードＣ４及びＣ５のｘ座標が同じになることは無い（参照符号４０２Ｆ）。
【００５７】
図５は、第２種のルールの一例を示す。
【００５８】
第２種のルールは、ルール２−１及びルール２−２を含む。
【００５９】
ルール２−１によれば、ノードからｘ方向に平行に延びたエッジの屈曲回数は０回又は２回であり、エッジの屈曲回数が０回の場合、当該エッジは、ｘ方向に平行な線分であり、エッジの屈曲回数が２回の場合、当該エッジの屈曲部以外の部分は、ｘ方向に平行な線分とｙ方向に平行な線分で構成される（参照符号５０１Ｔ）。従って、エッジは、ノード間にあるノードを跨ぐために４回屈曲したり、異なるｙ座標に配置されたノード間を接続するために斜めの直線になったりすることは無い（参照符号５０１Ｆ）。エッジの屈曲部は、曲線形以外でもよい。
【００６０】
ルール２−２によれば、エッジの始点を含む線分は、ノードの＋ｘ方向側に接続され、且つ、ｘ方向に平行であり、エッジの終点を含む線分は、ノードの−ｘ方向側に接続され、且つ、ｘ方向に平行である（参照符号５０２Ｔ）。従って、エッジが、ノードの−ｙ方向側又は＋ｙ方向側に接続されることは無い（参照符号５０２Ｆ）。
【００６１】
図６は、第３種のルールの一例を示す。
【００６２】
第３種のルールは、ルール３−１及びルール３−２を含む。
【００６３】
ルール３−１によれば、各ノードは、ノードの各辺より長い格子辺を持つ格子の格子点に配置される（参照符号６０１Ｔ）。従って、ノードが格子点以外の位置に配置されることは無い（参照符号６０１Ｆ）。格子点は、座標に該当する。なお、「ノードの各辺より長い格子辺を持つ格子」は、ノード同士の重なりを避けるための要件の一例でよい。また、格子は、仮想的な格子であり、因果関係ネットワークと共に表示されてもされなくてもよい。また、ｘ座標間隔及びｙ座標間隔のうちの少なくとも一方は均等でなくてもよい。また、ｘ座標間隔とｙ座標間隔が違っていてもよい。
【００６４】
ルール３−２によれば、ノードとエッジが重ならない（参照符号６０２Ｔ）。従って、一つの結果に対応したノードと、当該結果を持つ二つ以上の原因にそれぞれ対応した二つ以上のノードとが、同一のｙ座標に位置し、それらの全てがｘ方向に延びた直線のエッジで接続されることは無い（参照符号６０２Ｆ）。
【００６５】
以下、図７〜図２０を参照して、本実施例で行われる処理の一例と、当該処理において生成又は参照されるデータの一例とを説明する。なお、以下の説明において、図９〜図１３のテーブルに記載のノードの表記（識別符号）と、図１４〜図１５に記載のノードの表記と、図１７〜図２０に記載のノードの表記は一貫していないが、これは、実施例の理解に一切差し支えない。図９〜図１３は、テーブルの構成の一例を示す図であり、図１４〜図１５は、処理の詳細の一例を模式的に示す図であり、図１７〜図２０は、因果関係の編集前後の一例を示す図であり、それぞれの図を理解することに、ノードの表記の一貫性は依存しないためである。
【００６６】
図７は、表示制御処理のフローを示す。
【００６７】
因果関係計算部３２１が、上述した製造実績テーブル等（図示せず）を基に因果関係を計算し、当該因果関係を示す因果関係テーブル３３１を記憶装置２０３に格納する（Ｓ７０１）。
【００６８】
グラフ生成部３２２が、因果関係テーブル３３１、グラフルールテーブル３３２及び階層管理テーブル３３３を基に、因果関係ネットワークを生成する（Ｓ７０２）。
【００６９】
ＵＩ制御部３２３が、因果関係ＧＵＩ（Graphical User Interface）を入出力装置１７０に表示する（Ｓ７０３）。因果関係ＧＵＩは、Ｓ７０２で生成された因果関係ネットワークが表示されるＧＵＩである。Ｓ７０３において、因果関係ネットワークを構成する各ノード及び各エッジが、ノード座標テーブル３３４、ノード間距離テーブル３３５及びエッジ定義テーブル３３６を基に描画される。
【００７０】
ＵＩ制御部３２３が、因果関係ＧＵＩ上の因果関係ネットワークを編集することで因果関係を編集するユーザ操作を、当該ＧＵＩを介して受け付けた場合（Ｓ７０４：Ｙｅｓ）、因果関係の計算と、計算された因果関係を因果関係テーブル３３１に格納することとを再度実行し（Ｓ７０６）、グラフ生成部３２２が、当該再計算後の因果関係を基に因果関係ネットワークを生成する（Ｓ７０２）。結果として、ＵＩ制御部３２３は、因果関係ＧＵＩ上の因果関係ネットワークを、当該生成された因果関係ネットワークに更新する。このようにして、因果関係計算部３２１により計算された因果関係を、ユーザの知見を基に編集することができる。
【００７１】
因果関係ＧＵＩ上の因果関係ネットワークが編集されること無しに終了がユーザから指定された場合（Ｓ７０４：Ｎｏ、Ｓ７０５：Ｙｅｓ）、表示制御処理は終了する。
【００７２】
図８は、Ｓ７０２の詳細のフローを示す。
【００７３】
ノード座標計算部３４１が、因果関係テーブル３３１、グラフルールテーブル３３２及び階層管理テーブル３３３を基に、複数の階層の各々について、当該階層に属する全てのノードの全順序を定義する（Ｓ８０１）。ノード座標計算部３４１が、各階層についてＳ８０１で定義された全順序と、グラフルールテーブル３３２が示す第１種のルールとを基に、各ノードのｘ座標を算出する（Ｓ８０２）。Ｓ８０１及びＳ８０２が、上述した（効果１）に寄与する。
【００７４】
ノード座標計算部３４１が、グラフルールテーブル３３２が示す第２種及び第３種のルールを基に、各ノードのｙ座標を算出する（Ｓ８０３）。エッジ定義部３４２が、因果関係テーブル３３１と、各ノードについてＳ８０２及びＳ８０３で算出されたｘ座標及びｙ座標と、グラフルールテーブル３３２が示す第２種及び第３種のルールとを基に、各エッジの形状と座標とを算出する（Ｓ８０４）。Ｓ８０３及びＳ８０４が、上述した（効果２）及び（効果３）に寄与する。
【００７５】
図９は、因果関係テーブル３３１の構成を示す。なお、図９〜１３において、「Ｐ」は、説明変数（又は、説明変数に対応したノード）に該当し、「Ｑ」は、目的変数（又は、目的変数に対応したノード）に該当する。
【００７６】
因果関係テーブル３３１は、変数間の因果関係を示すテーブルであり、例えば、いわゆる隣接行列である。変数と変数の組について、当該変数同士に依存関係があれば、“１”が記録され、当該変数同士に依存関係がなければ、“０”が記録される。図９の例によれば、説明変数Ｐ１と目的変数Ｑが因果関係を持つ。
【００７７】
図１０は、階層管理テーブル３３３の構成を示す。
【００７８】
階層管理テーブル３３３は、ノードと階層の関係を示す。図１０の例によれば、ノードＰ１（説明変数Ｐ１）は階層１に属する。
【００７９】
図１１は、ノード座標テーブル３３４の構成を示す。
【００８０】
ノード座標テーブル３３４は、各ノードについて算出されたｘ座標及びｙ座標を示す。図１１の例によれば、ノードＰ１は、座標（０，０）に配置される。
【００８１】
図１２は、ノード間距離テーブル３３５の構成を示す。
【００８２】
ノード間距離テーブル３３５は、各ノード間の距離を示し、例えば、いわゆる交代行列である。距離としての数値の絶対値は、介在するエッジの数である。図１２の例によれば、ノードＰ２とノードＰ１間の距離は無効であり（つまり、ノードＰ２とノード１に因果関係が無く）、ノードＰ２とノードＱ間の距離は“２”である（つまり、ノードＰ２とノードＱ間に二つのエッジが存在する、言い換えれば、ノードＰ２とノードＱ間に一つの別のノードが存在する）。
【００８３】
図１３は、エッジ定義テーブル３３６の構成を示す。
【００８４】
エッジ定義テーブル３３６は、各エッジについて、始点ノード（当該エッジの始点としてのノード）、終点ノード（当該エッジの終点としてのノード）、及び、座標群（エッジの形状を定義する二つ以上の座標）を示す。座標群は、エッジが屈曲している場合、屈曲点（中間点）の座標も含む。図１３の例によれば、ノードＰ１から延びノードＰ３へと接続されるエッジの定義は、（０，０）→（０．５，０）→（０．５，１）→（１，１）に従う。これは、当該エッジは、、始点座標（０，０）（すなわち、始点ノードＰ１）から＋ｘ方向側へ水平に延び、座標（０．５，０）で屈曲（つまり、格子辺の中間で屈曲）して＋ｙ方向側へ垂直に延び、座標（０．５，１）で屈曲して＋ｘ方向側へ水平に延び、やがて終点座標（１，１）（すなわち、終点ノードＰ３）に接続することを意味する。
【００８５】
図１４は、実施例１に係る全順序定義の一例を示す。
【００８６】
全順序定義は、図８のＳ８０１に相当する。ノード座標計算部３４１は、階層毎に、当該階層に所属する全てのノードに対して「各ノードが、当該ノードについての結果となるノードよりも−ｘ方向側に配置される」ように全順序を定める。図１４においてｘ軸上の座標と各ノードの配置は、階層内での全順序を示す。
【００８７】
図１５は、実施例１に係るｘ座標算出の一例を示す。
【００８８】
ｘ座標算出は、図８のＳ８０２に相当する。ノード座標計算部３４１は、まず、全階層における全てのノードについて、「各ノードが、当該ノードが所属する階層と同じ階層に所属するノードに対しては当該階層内の全順序に従い、当該ノードが所属する階層と別の階層に所属するノードに対しては、所属する階層同士の因果関係の順序に従う」という方針に従って、全順序を定める。次に、ノード座標計算部３４１は、全てのノードに対して、定めた全順序の小さい順に、ゼロから始まる非負な整数を割り当てる。各ノードについて、当該割り当てられた整数が、当該ノードの絶対的なｘ座標である。
【００８９】
図１６は、実施例１に係るｙ座標算出の一例を示す。
【００９０】
ｙ座標算出は、図８のＳ８０３に相当する。ノード座標計算部３４１は、全てのノードの各々について、「いずれの原因ノードについてもいずれの結果ノードについても、屈曲回数が０回又は２回で格子辺に平行に進むことで到達でき、且つ、途上にノードが存在しないような経路が少なくとも一つ定まる」という方針に沿って、ｙ座標を定める。図１６の例によれば、これからｙ座標が算出される対象ノードは、ｘ座標が“５”であり、原因と結果をそれぞれ二つずつもつ。原因ノードｃ１が（１，３）、原因ノードｃ２が（３，２）、結果ノードｒ１が（６，２）、結果ノードｒ２が（８，３）にある状況において、ｙ座標が“１”〜“５”の範囲では、上記方針を守ることができるｙ座標は、“１”及び“４”のみである。なお、“１”〜“５”の範囲の外にあるいずれのｙ座標も、上記方針を守ることができるが、そうすると、因果関係ネットワークが無駄に高くなってしまい（ｙ方向に沿って無駄に大きくなってしまい）、これは、同一範囲に表示可能なノード数を減らすことになるので、好ましくない。このため、対象ノードのｙ座標は、ｙ座標が算出済みの全ノードのｙ座標のうち、最小のｙ座標及び最大のｙ座標のうちの少なくとも一方と同じ又は最も近いこと（更に、そのようなｙ座標が、当該最小のｙ座標と当該最大のｙ座標との範囲から選択可能であれば当該範囲に属するｙ座標であること）が好ましい。
【００９１】
以上、図７〜図１６の説明によれば、因果関係ネットワークの生成（Ｓ７０２）は、下記を含む。
（ａ）原因に属するノードを当該原因の結果に属するノードよりも−ｘ方向側に配置するように複数のノードの各々のｘ座標を算出すること。
（ｂ）原因に属するノードの＋ｘ方向側から延び当該原因の結果に属するノードの−ｘ方向側へ接続されるエッジがいずれの他のノードに重ならず且つ屈曲回数が０回又は２回であるように複数のノードの各々のｙ座標を算出すること。
【００９２】
以上のようにして各ノードについて算出されたｘ座標及びｙ座標を示すノード座標テーブル３３４が、ノード座標計算部３４１により生成され記憶装置２０３に格納される。そして、そのノード座標テーブル３３４と、因果関係テーブル３３１と、グラフルールテーブル３３２とを基に、エッジ定義部３４２が、各ノード間について、エッジを定義し（エッジの形状及び座標群を定義し）、エッジ定義テーブル３３６を生成して記憶装置２０３に格納する。また、ノード間距離計算部３４３が、エッジ定義テーブル３３６を基に、各ノード間の距離を計算し、各ノード間の距離を示すノード間距離テーブル３３５を生成して記憶装置２０３に格納する。ノード座標テーブル３３４及びエッジ定義テーブル３３６に従う因果関係ネットワークが、階層管理テーブル３３３を基にＵＩ制御部３２３により表示（描画）される（例えば、ノード座標テーブル３３４及びエッジ定義テーブル３３６及び階層管理テーブル３３３が示す情報が入出力装置１７０に送信され入出力装置１７０で実行されるプログラムにより表示（描画）されてよい）。表示された因果関係ネットワークからいずれかのノードが指定された場合、当該指定されたノードとのノード間距離がＮ（例えばＮ＝１）であるノードが、ノード間距離テーブル３３５を基にＵＩ制御部３２３により特定され、特定されたノードと、特定されたノードと指定されたノード間のエッジとが強調表示される。
【００９３】
さて、上述したように、歩留り予測装置１００は、ユーザが、因果関係ＧＵＩ上の因果関係ネットワークについて、ノードの削除、ノードの追加、エッジの削除、又はエッジの追加を行うことで、当該因果関係ネットワークが示す因果関係を編集することを、可能にする。具体的には、例えば、次の処理が行われる。すなわち、ＵＩ制御部３２３が、因果関係ＧＵＩ上の因果関係ネットワークの編集操作（ノードの削除、ノードの追加、エッジの削除、又はエッジの追加）をユーザから受け付けたら、因果関係テーブル３３１が示す因果関係を編集後の因果関係ネットワークが示す因果関係に更新する。グラフ生成部３２２が、更新後の因果関係テーブル３３１が示す因果関係を示す因果関係ネットワークを生成する（具体的には、因果関係ネットワークを部分的に更新する）。ＵＩ制御部３２３は、因果関係ＧＵＩ上の因果関係ネットワークを、当該生成された因果関係ネットワークに更新する。
【００９４】
図１７〜図２０は、因果関係の編集と因果関係ネットワークの更新の例を示す。例えば、図１７に示すように、因果関係ＧＵＩ上の因果関係ネットワーク（因果関係ネットワークの構成は、図１に示した因果関係ネットワーク２０と同じ）から、ノード０１２からノード０１９へと接続されているエッジを削除する操作が、ＵＩ制御部３２３によりユーザから受け付けられた場合、因果関係ＧＵＩ上の因果関係ネットワークが、図１８に示すように、当該エッジの削除後の因果関係を基にグラフ生成部３２２により生成（更新）された因果関係ネットワークにＵＩ制御部３２３により更新される。同様に、例えば、図１９に示すように、因果関係ＧＵＩ上の因果関係ネットワーク（因果関係ネットワークの構成は、図１８に示した因果関係ネットワークと同じ）に、ノード０１５からノード０１８へと接続されるエッジを追加する操作が、ＵＩ制御部３２３によりユーザから受け付けられた場合、因果関係ＧＵＩ上の因果関係ネットワークが、図２０に示すように、当該エッジの追加後の因果関係を基にグラフ生成部３２２により生成（更新）された因果関係ネットワークにＵＩ制御部３２３により更新される。
【００９５】
因果関係ネットワークの生成（更新）と、因果関係ＧＵＩ上の因果関係ネットワークの更新は、ノードの削除、ノードの追加、エッジの削除、又はエッジの追加の都度に行われてもよいし、ノードの削除、ノードの追加、エッジの削除及びエッジの追加の少なくとも一つという編集操作の完了後に行われてもよい。              
【実施例２】
【００９６】
実施例２を説明する。その際、実施例１との相違点を主に説明し、実施例１との共通点については説明を省略又は簡略する。
【００９７】
図２１は、実施例２に係る全順序定義の一例を示す。
【００９８】
この全順序定義は、実施例２に係るＳ８０１としてのＳ８０１´に相当する。ここでは、階層毎に、当該階層に属する各ノードの相対的なｘ座標が算出される。階層毎の相対的なｘ座標の算出は、下記を含む。一つの階層を例に取る（図２１の説明において「対象階層」）。
（ａ１）ノード座標計算部３４１が、ＧＴ、ＳＴ及びＸＴを定義する。ＧＴは、対象階層に属するノードを含んだ有向グラフである。ＳＴは、ＧＴ内で結果を持たないノードの集合である。ＸＴは、整数であり、ＸＴの初期値は、０（所定の値の一例）である。
（ａ２）ノード座標計算部３４１が、ＳＴが空集合になるまで、ＳＴに含まれるノードの相対的なｘ座標をＸＴとすることと、ＳＴに含まれるノードをＧＴから削除し、削除後のＧＴからＳＴを求めることとを繰り返し、繰り返し毎に、ＸＴから１（一定値の一例）をデクリメントする。
【００９９】
（ａ２）は、具体的には、下記で構成されてよい。
（ａ２１）現在のＳＴに含まれるノードの相対的なｘ座標を、現在のＸＴとする。
（ａ２２）ＳＴに含まれるノードをＧＴから削除する。
（ａ２３）（ａ２２）後のＧＴからＳＴを特定する。
（ａ２４）（ａ２３）後のＳＴが空集合であれば、（ａ２）を終了する。
（ａ２５）（ａ２３）後のＳＴが空集合でなければ、現在のＸＴから１（一定値の一例）をデクリメントし、（ａ２１）に戻る。
【０１００】
図２１の例によれば、初回は、ＳＴに属するノードはノードＥであり、ＸＴ＝０のため、ノードＥの相対的なｘ座標は“０”である。ノードＥが削除されたＧＴでは、ＳＴに属するノードはノードＢ及びノードＣであり、１回の繰り返しが生じたことによりＸＴ＝−１のため、ノードＢ及びノードＣの各々の相対的なｘ座標は“−１”である。
【０１０１】
本実施例に係る全順序定義によれば、階層ごとの逆順でソートされ、結果として、全エッジのｘ方向に沿った長さの和をなるべく短くすることができる。このため、因果関係ネットワーク全体の幅をなるべく短く抑えることができる。
【０１０２】
図２２は、実施例２に係るｘ座標算出の一例を示す。
【０１０３】
このｘ座標算出は、実施例２に係るＳ８０２としてのＳ８０２´に相当する。ノード座標計算部３４１は、複数の階層の各々について、原因に属するノードを当該原因の結果に属するノードよりも−ｘ方向側に配置するように当該階層に属する一つ以上のノードの各々の相対的なｘ座標を算出し、一つ以上の階層の並びに従い、一つ以上の階層の各々について算出された相対的なｘ座標を絶対的なｘ座標に変換する。
【０１０４】
図２３は、実施例２に係るｙ座標算出の一例を示す。
【０１０５】
このｙ座標算出は、実施例２に係るＳ８０３としてのＳ８０３´に相当する。ここでは、ノード座標計算部３４１が、ｘ座標の最も小さいノードから順に複数のノードの各々について、下記を行う。一つのノードを例に取る（図２３の説明において「対象ノード」）。
（ｂ１）ノード座標計算部３４１が、対象ノードを結果とする一つ以上の原因にそれぞれ属する一つ以上のノードのうち、当該対象ノードのｘ座標から最も遠いｘ座標に配置されるノードである最遠親ノードｃ６を特定する。
（ｂ２）ノード座標計算部３４１が、最遠親ノードｃ６のｘ座標“１”と対象ノードのｘ座標“５”間にいずれのノードも配置されていないｙ座標のうち、最遠親ノードｃ６のｙ座標“３”と対象ノードのｙ座標間の距離が最も短くなるｙ座標“５”を特定する。
（ｂ３）当該特定されたｙ座標“５”を対象ノードのｙ座標に決定する。
【０１０６】
なお、（ｂ１）〜（ｂ３）の処理に代えて、（ｂ１）〜（ｂ３）の説明について「原因」と「結果」を入れ替え且つ「親」と「子」を入れ替えたような処理が採用されてよく、当該採用される処理は、ｘ座標の最も大きいノードから順に複数のノードの各々について行われる。すなわち、この場合、（ｂ１）〜（ｂ３）の説明において、「結果」は「原因」と読み替えられ、「原因」は「結果」と読み替えられ、「親」は「子」と読み替えられる（このため「最遠親」は「最遠子」と読み替えられる）。最遠親ノードも最遠子ノードも最遠ノードの一例である。
【０１０７】
本実施例に係るｙ座標算出によれば、全てのノード間について経路を総当たりで探索することを不要とし、最遠親ノードについて経路を探索すればよく、故に、計算量を削減することができる（つまり、計算量を、ノード数とエッジ数の積に従う量から、ノード数に従う量に削減することができる）。
【０１０８】
以上、幾つかの実施例を説明したが、これらは本発明の説明のための例示であって、本発明の範囲をこれらの実施例にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実行することが可能である。例えば、本発明は、製造業に限らず、種々の分野で適用可能である。例えば、本発明の一実施例に係る因果関係ネットワークは、機械の故障の様々な予兆現象と故障の間の因果関係分析や、患者の様々な症状と病気の間の因果関係分析に利用することが期待できる。また、本発明の一実施例に係るＤＡＧは、分散コンピューティングにおけるタスクスケジューリングや、ブロックチェーンに代わる取引承認に利用することが期待できる。
【符号の説明】
【０１０９】
５０…歩留り予測システム
【図１】
2020098387.tif 000003
【図２】
2020098387.tif 000004
【図３】
2020098387.tif 000005
【図４】
2020098387.tif 000006
【図５】
2020098387.tif 000007
【図６】
2020098387.tif 000008
【図７】
2020098387.tif 000009
【図８】
2020098387.tif 000010
【図９】
2020098387.tif 000011
【図１０】
2020098387.tif 000012
【図１１】
2020098387.tif 000013
【図１２】
2020098387.tif 000014
【図１３】
2020098387.tif 000015
【図１４】
2020098387.tif 000016
【図１５】
2020098387.tif 000017
【図１６】
2020098387.tif 000018
【図１７】
2020098387.tif 000019
【図１８】
2020098387.tif 000020
【図１９】
2020098387.tif 000021
【図２０】
2020098387.tif 000022
【図２１】
2020098387.tif 000023
【図２２】
2020098387.tif 000024
【図２３】
2020098387.tif 000025
【図２４】
2020098387.tif 000026