JP5269999B2 - 決定木作成装置 - Google Patents
決定木作成装置 Download PDFInfo
- Publication number
- JP5269999B2 JP5269999B2 JP2011531673A JP2011531673A JP5269999B2 JP 5269999 B2 JP5269999 B2 JP 5269999B2 JP 2011531673 A JP2011531673 A JP 2011531673A JP 2011531673 A JP2011531673 A JP 2011531673A JP 5269999 B2 JP5269999 B2 JP 5269999B2
- Authority
- JP
- Japan
- Prior art keywords
- vertex
- component
- unit
- correspondence information
- decision tree
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/04—Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q99/00—Subject matter not provided for in other groups of this subclass
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Human Resources & Organizations (AREA)
- Strategic Management (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Economics (AREA)
- General Physics & Mathematics (AREA)
- Entrepreneurship & Innovation (AREA)
- General Business, Economics & Management (AREA)
- Marketing (AREA)
- Tourism & Hospitality (AREA)
- Quality & Reliability (AREA)
- Operations Research (AREA)
- Game Theory and Decision Science (AREA)
- Development Economics (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
部品組合せと製品番号との対応表である部品構成表について決定木を作成する決定木作成装置に関する。
PCのような製品は複数の部品種類(CPU,メモリ,HDD,…)が組み合されて構成される。各部品種類には、一般に複数の部品がある(メモリなら512MB,1024MB等)。このような製品の設計では、部品の組合せに応じて異なった製品番号を設定する。ただし、同じ製品番号を持つ部品組合せが存在してもよい。部品組合せと製品番号との対応は一般に表形式(部品構成表と呼ぶ)で記述されるが、部品種類および部品数が多いと組合せが多くなり可読性が悪くなる。そこで、部品組合せと製品番号との対応を、葉頂点のラベルが製品番号に対応し、他の頂点のラベルが分類する部品種類となっている決定木で表現する手法がある。決定木で表現する場合、どのような部品種類で分類していくかによって決定木のサイズ(頂点数)が変わる。サイズの小さい決定木を作成する手法の1つにID3アルゴリズムを利用した分類部品種類の決定手法がある(例えば、非特許文献1参照)。
J. R. Quinlan, Machine Learning 1 "Induction of Decision Tree," p81-p106 1986.
部品組合せ数が多くなると部品構成表も大きくなり、特定の部品組合せに対する製品番号を調べる際、その部品組合せが表のどこに記載されているのかを検索するのに手間がかかる。決定木で表現すると根頂点から部品に対応する枝をたどっていけば製品番号を知ることができるが、決定木で表現する場合でも、頂点数が多いと一般的に木の深さが深くなり、製品番号を知るまでに手間がかかる。すなわち、同じ内容を表わすのであれば、頂点数は少ない決定木の方が容易に製品番号を知ることができる。
この発明は、上述した事情を考慮してなされたものであり、部品構成表に対応する、頂点数の少ない決定木を生成する決定木作成装置を提供することを目的とする。
上述の課題を解決するため、本発明の決定木作成装置は、複数の部品種類による部品組合せと製品番号との対応表を入力する入力部と、前記対応表に対応する第1対応情報であって、複数の部品組合せを表現する要素である到達条件の和集合である到達条件リストと製品番号とを含む第1対応情報を作成する対応情報作成部と、前記対応表および前記第1対応情報のいずれか1つから、決定木の第1頂点の第1到達条件を作成する第1条件作成部と、前記第1頂点よりも祖先にあたるいずれの第2頂点でも未分類である全ての部品種類を順に該第1頂点の分類部品種類として仮決定する仮決定部と、前記分類部品種類を前記第1頂点とし、前記第1到達条件に応じて該第1頂点から子頂点への枝に部品名を割り振る計算をする分割計算部と、前記第1到達条件および前記分割に応じて前記子頂点ごとに該子頂点の第2到達条件を作成する第2条件作成部と、前記第1対応情報から前記第2到達条件に関連する第2対応情報を抽出する抽出部と、前記第2対応情報に含まれる到達条件リストの要素数を部品種類ごとに計算する要素数計算部と、前記要素数が最も少なくなる部品種類を前記第1頂点の分類部品種類として判定する判定部と、前記判定部が判定した部品種類の第1頂点を作成し、第1頂点から子頂点への枝に割り振る部品名を前記分割計算部の計算結果から作成する頂点枝作成部と、を具備することを特徴とする。
本発明の決定木作成装置によれば、部品構成表に対応する、頂点数の少ない決定木を生成することができる。
以下、図面を参照しながら本発明の実施形態に係る決定木作成装置について詳細に説明する。なお、以下の実施形態では、同一の番号を付した部分については同様の動作を行うものとして、重ねての説明を省略する。
簡単に概要を説明する。決定木の頂点数は部品種類の分類順番によって変わる。うまく分類順番を決定すると小さな決定木が構成される。既知の手法として、ID3アルゴリズムが知られている。ID3アルゴリズムは部品種類に対し平均情報量の期待値を計算し、期待値が最大になる部品種類によって分類をおこなう。本実施形態の決定木作成装置は、平均情報量の期待値は利用せず、任意の部品組合せを表現できる到達条件リストの要素数に注目して分類する部品種類を決定する。
簡単に概要を説明する。決定木の頂点数は部品種類の分類順番によって変わる。うまく分類順番を決定すると小さな決定木が構成される。既知の手法として、ID3アルゴリズムが知られている。ID3アルゴリズムは部品種類に対し平均情報量の期待値を計算し、期待値が最大になる部品種類によって分類をおこなう。本実施形態の決定木作成装置は、平均情報量の期待値は利用せず、任意の部品組合せを表現できる到達条件リストの要素数に注目して分類する部品種類を決定する。
本実施形態の決定木作成装置について図1を参照して説明する。
本実施形態の決定木作成装置は、部品構成表入力部101、製品番号−到達条件リスト対応情報作成部102、作成頂点到達条件作成部103、分類部品種類仮決定部104、部品分割計算部105、仮子頂点到達条件作成部106、仮子頂点関連製品番号−到達条件リスト対応情報抽出部107、到達条件リスト長計算部108、分類部品種類判定部109、頂点・枝作成部110、決定木出力部111を含む。
本実施形態の決定木作成装置は、部品構成表入力部101、製品番号−到達条件リスト対応情報作成部102、作成頂点到達条件作成部103、分類部品種類仮決定部104、部品分割計算部105、仮子頂点到達条件作成部106、仮子頂点関連製品番号−到達条件リスト対応情報抽出部107、到達条件リスト長計算部108、分類部品種類判定部109、頂点・枝作成部110、決定木出力部111を含む。
入力部101は、部品組合せと製品番号との対応表(部品構成表)を入力する。部品構成表は、例えば図2および図3に示すものがある。
図2の部品構成表は、機器の全ての部品組合せに対して製品番号を個々に定義した部品構成表の例であり、部品種類X,Y,Zから構成される機器があり、部品x1,x2,x3は部品種類Xに分類され、部品y1,y2は部品種類Yに分類され、部品z1,z2は部品種類Zに分類されると仮定した場合の一例である。図3の部品構成表は、図2と同一の内容を表わす部品構成表の別の記述例(if−then−else形式)である。この構成表では、優先度を1→2→…の順に行を読んでいき、部品組み合わせが含まれている行に記載されている製品番号が、その部品組合せに対応する製品番号となる。図2のように全ての部品組合せを記述するより行数が少なくなる利点がある。
図2の部品構成表は、機器の全ての部品組合せに対して製品番号を個々に定義した部品構成表の例であり、部品種類X,Y,Zから構成される機器があり、部品x1,x2,x3は部品種類Xに分類され、部品y1,y2は部品種類Yに分類され、部品z1,z2は部品種類Zに分類されると仮定した場合の一例である。図3の部品構成表は、図2と同一の内容を表わす部品構成表の別の記述例(if−then−else形式)である。この構成表では、優先度を1→2→…の順に行を読んでいき、部品組み合わせが含まれている行に記載されている製品番号が、その部品組合せに対応する製品番号となる。図2のように全ての部品組合せを記述するより行数が少なくなる利点がある。
ここで、決定木について図4を参照して説明する。なお、決定木の各ノードのことを頂点と呼び、頂点間を結ぶ線を枝と呼ぶ。また、決定木の最上層にある頂点を根頂点と呼び、決定木の最下層にある頂点を葉頂点と呼ぶ。図4の左図では、Xが根頂点であり、S001、S003、およびS002が葉頂点である。図4の右図では、Yが根頂点であり、S001、S003、およびS002が葉頂点である。
図4に示す決定木は、図2または図3の内容と同じ内容を表わしている。部品種類X→部品種類Yの順で分類すると図4の左図に示す決定木が作成され、部品種類Y→部品種類Xの順で分類すると図4の右図に示す決定木が作成される。部品種類Zの頂点が存在しないのは、部品種類Zで分類する必要がなかったためである。例えば、部品組合せ(x3,y2,z1)に対応する製品番号を検索する場合で図4の左図に示される決定木の場合、枝を1回たどれば製品番号がわかるのに対し、図4の右図に示される決定木の場合、枝を2回たどる必要がある。すなわち、頂点数が少ない決定木の方(ここでは図4の左図に示される決定木)が早く製品番号を調べることができる例となっている。
図4に示す決定木は、図2または図3の内容と同じ内容を表わしている。部品種類X→部品種類Yの順で分類すると図4の左図に示す決定木が作成され、部品種類Y→部品種類Xの順で分類すると図4の右図に示す決定木が作成される。部品種類Zの頂点が存在しないのは、部品種類Zで分類する必要がなかったためである。例えば、部品組合せ(x3,y2,z1)に対応する製品番号を検索する場合で図4の左図に示される決定木の場合、枝を1回たどれば製品番号がわかるのに対し、図4の右図に示される決定木の場合、枝を2回たどる必要がある。すなわち、頂点数が少ない決定木の方(ここでは図4の左図に示される決定木)が早く製品番号を調べることができる例となっている。
図1に戻って、対応情報作成部102は、入力された部品構成表に対応する、製品番号−到達条件リスト対応情報(製品番号毎の到達条件リスト)を作成する。到達条件リストは、複数の部品組合せを表現する要素の和集合であるが、詳細については後に図5を参照して説明する。また、製品番号−到達条件リスト対応情報については後に図6を参照して説明する。なお、入力部101と対応情報作成部102との代わりに、製品番号−到達条件リスト対応情報を直接入力する対応情報入力部(図示せず)を備えてもよい。
条件作成部103は、これから作成しようとする頂点の到達条件を作成する。作成しようとする頂点が決定木の根頂点の場合、条件作成部103は、任意の部品組合せを表わす到達条件を、入力部101が入力した部品構成表、または、対応情報作成部102が作成した、部品構成表に対応する製品番号−到達条件リスト対応情報から作成する。作成しようとする頂点が決定木の根頂点でない場合、既に作成されている親頂点の到達条件および枝に付けられた部品名から到達条件を計算し作成する(条件作成部106の結果を利用することもできる)。
仮決定部104は、これから作成しようとする頂点において、どの部品種類について分類するかを仮決定する。仮決定部104は作成しようとする頂点の祖先にあたる頂点で未分類の全ての部品種類について順に仮決定する。
分割計算部105は、仮決定部104で決定された分類部品種類で分類すると仮定したとき、枝にどのように部品名を割り振るかを決定する。分割計算部105は、枝の本数が最少になるように可能な限り1つの枝に部品名を複数割り振ろうとするが、必ず、最終的に全ての葉頂点が単一の製品番号となるように部品名を枝に分割する。分割計算部105が行う部品分割の手法については図7の説明の後で説明する。
条件作成部106は、仮決定部104で決定された分類部品種類で分類すると仮定したとき、子頂点の到達条件を計算し作成する。
対応情報抽出部107は、条件作成部106が作成した子頂点の到達条件が関連する製品番号−到達条件リスト対応情報を、対応情報作成部102が作成した製品番号−到達条件リスト対応情報から抽出する。
リスト長計算部108は、対応情報抽出部107が抽出した、子頂点の到達条件が関連する製品番号−到達条件リスト対応情報に現れる到達条件リストの要素数を、全ての子頂点について足し合わせる。
判定部109は、仮決定部104が仮決定した部品種類の中で、リスト長計算部108が計算した要素数の和が最小となるものを、作成しようとする頂点で分類する部品種類として判定する。
作成部110は、判定部109で判定された部品種類の頂点を作成し、作成された頂点から子頂点へつなぐ枝を作成する。枝に付ける部品名については、分割計算部105で行った計算を再びおこなってもよいし、分割計算部105で計算された結果を利用することもできる。子頂点が唯一の製品番号に対応する場合は、その製品番号を頂点とする子頂点(葉頂点となる)も作成する。葉頂点が作成されていない枝が残っている場合には、その枝先に作成すべき頂点を次に作成する頂点とし、条件作成部103へ渡される。
出力部111は、完成した決定木を出力(表示)する。出力部111は、作成部110が頂点や枝を作成するたびに取得し、作成途中経過を表示してもよい。出力部111は、全ての枝先に葉頂点が作成された時点で決定木を出力する。
次に、対応情報作成部102で利用する到達条件リストについて図5を参照して説明する。
到達条件リストは任意の部品組合せを表現できるデータ構造である。図5に示す到達条件リストLは、2つの要素をもっており、最初の要素はL1(X)×L1(Y)×L1(Z)で表される部品組合せを、2つ目の要素はL2(X)×L2(Y)×L2(Z)で表される部品組合せを表わしている。到達条件リストLの全体としては、L1(X)×L1(Y)×L1(Z)で表される部品組合せとL2(X)×L2(Y)×L2(Z)で表される部品組合せの和集合で定義される部品組合せを表現していることになる。具体的には、(x1,y1,z1)(x2,y1,z1)(x2,y1,z2)(x2,y2,z1)(x2,y2,z2)(x3,y1,z1)(x3,y1,z2)(x3,y2,z1)(x3,y2,z2)の9種類の部品組合せを表わしている。(x2,y1,z1)は到達条件リストのどちらの要素でも定義されているが問題ない(1つの部品組合せとして考える)。
到達条件リストは任意の部品組合せを表現できるデータ構造である。図5に示す到達条件リストLは、2つの要素をもっており、最初の要素はL1(X)×L1(Y)×L1(Z)で表される部品組合せを、2つ目の要素はL2(X)×L2(Y)×L2(Z)で表される部品組合せを表わしている。到達条件リストLの全体としては、L1(X)×L1(Y)×L1(Z)で表される部品組合せとL2(X)×L2(Y)×L2(Z)で表される部品組合せの和集合で定義される部品組合せを表現していることになる。具体的には、(x1,y1,z1)(x2,y1,z1)(x2,y1,z2)(x2,y2,z1)(x2,y2,z2)(x3,y1,z1)(x3,y1,z2)(x3,y2,z1)(x3,y2,z2)の9種類の部品組合せを表わしている。(x2,y1,z1)は到達条件リストのどちらの要素でも定義されているが問題ない(1つの部品組合せとして考える)。
また、要素数が1の到達条件リストのことを特に到達条件と呼ぶ。到達条件は決定木の各頂点にも設定することができ、その頂点へ到達する部品組合せに対応する。また、図5の到達条件リストLの最初の要素となっている到達条件を[{x1,x2}×{y1}×{z1}]、2番目の要素となっている到達条件を[{x2,x3}×{y1,y2}×{z1,z2}]のように記述し、到達条件リストLを[{x1,x2}×{y1}×{z1}]∪[{x2,x3}×{y1,y2}×{z1,z2}]のように記述する。
次に、対応情報作成部102が作成する製品番号−到達条件リスト対応情報について図6を参照して説明する。
製品番号−到達条件リスト対応情報は、各製品番号に対応する部品組合せを到達条件リストで表現した情報(製品番号毎の到達条件リスト)である。図6の例は、図2または図3の内容と同じ内容を表わす製品番号−到達条件リスト対応情報となっている。図6の製品番号−到達条件リスト対応情報は、[{x1}×{y1}×{z1}]∪[{x3}×{y1,y2}×{z1,z2}]∪[{x1}×{y2}×{z1,z2}]∪[{x1}×{y1,y2}×{z2}]⇔S001,[{x2}×{y2}×{z1,z2}]⇔S002, [{x2}×{y2}×{z1,z2}]⇔S003と記述する。
製品番号−到達条件リスト対応情報は、各製品番号に対応する部品組合せを到達条件リストで表現した情報(製品番号毎の到達条件リスト)である。図6の例は、図2または図3の内容と同じ内容を表わす製品番号−到達条件リスト対応情報となっている。図6の製品番号−到達条件リスト対応情報は、[{x1}×{y1}×{z1}]∪[{x3}×{y1,y2}×{z1,z2}]∪[{x1}×{y2}×{z1,z2}]∪[{x1}×{y1,y2}×{z2}]⇔S001,[{x2}×{y2}×{z1,z2}]⇔S002, [{x2}×{y2}×{z1,z2}]⇔S003と記述する。
次に、図3に示す部品構成表から決定木を作成する方法について図7を参照して説明する。
(ステップS701) 入力部101が部品構成表を入力する。例えばユーザが用意した部品構成表を入力部101が入力する。入力部101は、部品種類としてX,Y,Zの3つがあり、部品種類Xには部品x1,x2,x3、部品種類Yには部品y1,y2、部品種類Zには部品z1,z2があるという情報を得る。
(ステップS701) 入力部101が部品構成表を入力する。例えばユーザが用意した部品構成表を入力部101が入力する。入力部101は、部品種類としてX,Y,Zの3つがあり、部品種類Xには部品x1,x2,x3、部品種類Yには部品y1,y2、部品種類Zには部品z1,z2があるという情報を得る。
(ステップS702) 対応情報作成部102が入力された部品構成表に対応する製品番号−到達条件リスト対応情報(製品番号毎の到達条件リスト)を作成する。図3の優先度1の行から、到達条件L1=[{x1}×{y1}×{z1}]で表される部品組合せは製品番号Y001に対応することがわかり、同様に、図3の優先度2の行から、到達条件L2=[{x2}×{y2}×{z1,z2}]で表される部品組合せは製品番号Y002に対応することがわかる。次に図3の優先度3の行を見ると到達条件L3’=[{x2}×{y1,y2}×{z1,z2}]が製品番号Y003対応するとなっているが、L3’にはL2で定義済みの部品組合せが含まれている。すなわち、実際に優先度3の行が表す到達条件リストL3は、L3’で表される部品組合せからL2で表される部品組合せを引いた部品組合せとする必要がある。すなわち、L3=L3’−L2=[{x2}×{y1}×{z1,z2}]。同様に、図3の優先度4の行についても、到達条件リストL4=L4’−L3−L2−L1も計算する(L4’=[{x1,x2,x3}×{y1,y2}×{z1,z2}])。この結果、L4=[{x3}×{y1,y2}×{z1,z2}]∪[{x1}×{y2}×{z1,z2}]∪[{x1}×{y1,y2}×{z2}]となる。到達条件リストに対する差演算の手法については後述する。
最後に同じ製品番号が割り当てられている行の到達条件リスト同士を連結することにより、製品番号毎の到達条件リスト(製品番号−到達条件リスト対応情報)を得る。図3の部品構成表から製品番号−到達条件リスト対応情報を作成する例の場合、到達条件リストL1∪L4が製品番号Y001に対応し、L2がY002に対応し、L3がY003に対応することになる(図6が得られる製品番号−到達条件リスト対応情報である)。
(ステップS703) 条件作成部103がこれから作成しようとする頂点Pの到達条件を計算する。決定木は根頂点から葉頂点に向かって順に作成されていく。すなわち、最初に作成しようとする頂点Pは根頂点である。根頂点の到達条件となる任意の部品組合せを表わす到達条件が、ステップS701で入力された部品構成表、または、ステップS702で作成された製品番号−到達条件リスト対応情報から作成される。頂点Pは根頂点なので、全ての部品組合せが到達する到達条件[{x1,x2,x3}×{y1,y2}×{z1,z2}]が作成される。この到達条件はステップS701において、どのような部品種類および部品が存在するかわかっているため作成できる。
(ステップS704) 仮決定部104が頂点Pにおいて、頂点Pの祖先にあたる頂点で未分類の全ての部品種類T(={ta,tb,…})について、順に部品種類t(∈T)を選択してゆく。現時点では頂点Pは根頂点なので、分類済みの部品種類は存在しない。すなわち、t∈{X,Y,Z}となる。ここで、頂点Pの祖先にあたる頂点とは、決定木の中で頂点Pの位置よりもより根頂点に近いところに位置する頂点のことを示す。
(ステップS705) 分割計算部105が頂点PにおいてステップS704で選択された部品種類tで分類する場合、頂点Pから子頂点への枝に付ける部品分割を計算する。換言すれば、分割計算部105はどのような部品名が付けられた枝を作成すればよいかを計算する。ここで部品分割が不要という結果が得られる場合、今調べている部品種類tで分割する意味がないことになる。この場合、ステップS704に戻り、次の部品種類を選択する。
t=Xの時は図4の左図にあるように、根頂点Pからはx1とx3を付けた枝とx2を付けた枝の2本を作成すればよいという結果を算出する。x2を別の枝に割り付けるのは、葉頂点を単一の製造番号に対応させるためで、x1とx3を同じ枝に割り付けるのは、枝の本数を最少にするためである(異なる枝に割り付けても葉頂点は単一の製造番号となる)。t=Yの時は図4の右図にあるように、根頂点Pからはy1を付けた枝とy2を付けた枝の2本を作成すればよいという結果を算出する。t=Zの場合は、z1とz2を付けた枝1本でよいという結果が得られる。これは、Zによる分類は不要であることに対応する。この時点で、部品種類Zによる分類は不要であることわかり、以後の処理ではt=Zの場合を考える必要がない。分割計算部105は、枝の本数が最少になるように、可能な限り1つの枝に部品名を複数割り振ろうとする。加えて、全ての葉頂点が単一の製品番号に対応するように部品名を枝に分割する。枝への部品分割の手法については後述する。
t=Xの時は図4の左図にあるように、根頂点Pからはx1とx3を付けた枝とx2を付けた枝の2本を作成すればよいという結果を算出する。x2を別の枝に割り付けるのは、葉頂点を単一の製造番号に対応させるためで、x1とx3を同じ枝に割り付けるのは、枝の本数を最少にするためである(異なる枝に割り付けても葉頂点は単一の製造番号となる)。t=Yの時は図4の右図にあるように、根頂点Pからはy1を付けた枝とy2を付けた枝の2本を作成すればよいという結果を算出する。t=Zの場合は、z1とz2を付けた枝1本でよいという結果が得られる。これは、Zによる分類は不要であることに対応する。この時点で、部品種類Zによる分類は不要であることわかり、以後の処理ではt=Zの場合を考える必要がない。分割計算部105は、枝の本数が最少になるように、可能な限り1つの枝に部品名を複数割り振ろうとする。加えて、全ての葉頂点が単一の製品番号に対応するように部品名を枝に分割する。枝への部品分割の手法については後述する。
(ステップS706) 条件作成部106が頂点Pを部品種類tで分類したときの子頂点(Ct1,Ct2,…)の到達条件(RCt1,RCt2,…)を計算する。部品組合せが対応する製品番号が複数ある場合、子頂点は複数存在することになる。子頂点はこの時点では実際に作られる頂点ではないので仮子頂点と呼ぶことにする。この処理では実際に子頂点を作成する必要はなく、部品種類tで頂点Pを分類したと仮定したとき、頂点Pの仮子頂点(実際には頂点は作成されていないので仮子頂点と記述する)の到達条件だけを計算すればよい。t=Xの場合、ステップS705の結果から頂点Pからx1およびx3を付けられた枝によってつながる仮子頂点CX1と、x2を付けられた枝によってつながる仮子頂点CX2が作成されることになる。頂点Pは根頂点でステップS703の結果から到達条件は[{x1,x2,x3}×{y1,y2}×{z1,z2}]である。仮子頂点CX1は頂点Pから部品種類Xがx1およびx3に限定された部品組合せが到達するので、到達条件は[{x1,x3}×{y1,y2}×{z1,z2}]となる。同様にCX2の到達条件は[{x2}×{y1,y2}×{z1,z2}]となる。t=Yの場合、ステップS705の結果から、頂点Pからy1を付けられた枝によってつながる仮子頂点CY1と、y2を付けられた枝によってつながる仮子頂点CY2が作成されることになり、到達条件はそれぞれ、[{x1,x2,x3}×{y1}×{z1,z2}]および[{x1,x2,x3}×{y2}×{z1,z2}]となる。
(ステップS707) 対応情報抽出部107がステップS706で作成された仮子頂点の到達条件が関連する製品番号−到達条件リスト対応情報(RCt1,RCt2,…)をステップS702で作成されている製品番号−到達条件リストから抽出する。まず、t=Xの場合を考える。仮子頂点CX1の到達条件[{x1,x3}×{y1,y2}×{z1,z2}]は、全ての部品組合せが到達する到達条件をもつ根頂点からx2に関する部品組合せを含まなくしたものなので、関連する製品番号−到達条件リスト対応情報は、ステップS702で計算されている製品番号−到達条件リストから部品x2に関する情報を削除したものになる(逆に言うとx1,x3が関連するもの)。すなわち、RCX1:[{x1}×{y1}×{z1}]∪[{x3}×{y1,y2}×{z1,z2}]∪[{x1}×{y2}×{z1,z2}]∪[{x1}×{y1,y2}×{z2}]⇔S001,φ⇔S002,φ⇔S003という製品番号−到達条件リストが得られる。ただし、φは要素数0の到達条件リストを表わす。同様に仮子頂点CX2の到達条件に関してはRCX2:φ⇔S001,[{x2}×{y2}×{z1,z2}]⇔S002,[{x2}×{y1}×{z1,z2}]⇔S003が得られる。t=Yの場合も同様に、RCY1:[{x1}×{y1}×{z1}]∪[{x3}×{y1}×{z1,z2}]∪[{x1}×{y1}×{z2}]⇔S001,φ⇔S002,[{x2}×{y1}×{z1,z2}]⇔S003、RCY2:[{x3}×{y2}×{z1,z2}]∪[{x1}×{y2}×{z1,z2}]∪[{x1}×{y2}×{z2}]⇔S001,[{x2}×{y2}×{z1,z2}]⇔S002,φ⇔S003が得られる。
(ステップS708) リスト長計算部108が、ステップS707で計算した製品番号−到達条件リスト対応情報に現れる到達条件リストの要素数を部品種類tごとに足し合わせる(|Rt|)。t=Xの場合、RCX1に現れる到達条件リストの要素数(|RCX1|)およびRCX2に現れる到達条件リストの要素数(|RCX2|)を足し合わせる。この結果|RX|=|RCX1|+|RCX2|=6となる。t=Yの場合、|RCY1|および|RCY2|に現れる到達条件リストの要素数を足し合わせ、|RY|=|RCY1|+|RCY2|=8を得る。
(ステップS709) 判定部109が、ステップS708で計算された部品種類t(∈T)ごとの到達条件リストの要素数(|Rt|)が最も小さいものを頂点Pで分類する部品種類として判定する。ここでの例の場合、|RX|<|RY|となっているので、頂点Pは部品種類Xで分類する頂点とする。
(ステップS710) 作成部110がステップS709で判定された部品種類Xで分類する頂点Pを作成する。
(ステップS711) 作成部110が頂点Pから子頂点への枝を作成する。子頂点への枝に付ける部品名(部品分割)はステップS705の結果を再利用する。
(ステップS712) 作成部110が単一の製造番号に対応する葉頂点を作成する。頂点Pから部品x1とx3が付けられた枝でつながる子頂点CX1の到達条件が関連する製品番号−到達条件リスト対応情報RCX1(ステップS707の結果を再利用)から子頂点CX1は単一の製品番号S001に対応することがわかるため(製品番号がS002およびS003に対応する到達条件リストの要素数が0のため製品番号S001以外にはならない)、CX1として製品番号S001の葉頂点を作成する。頂点Pから部品x2が付けられた枝でつながる子頂点CX2に関しては、RCX2から単一の製品番号には分類できないことがわかるため、まだ葉頂点は作成しない。ここまでの処理で作成される決定木を図8に示す。決定木構成の途中経過も表示するならば出力部111へ図8の決定木を渡し、表示する。
(ステップS713) 作成部110が、全ての頂点の枝先が葉頂点(製品番号を表わす頂点)になったかを調べ、全ての頂点の枝先に葉頂点作成されていれば、決定木を出力部111へ渡し出力する。一方、葉頂点が作られていない枝先が残っている場合(ここでの例の場合、ステップS712のCX2にあたる頂点)、その枝先に付ける頂点を次に作成する頂点Pとし、ステップS703に戻る。
(ステップS703 2回目) 条件作成部103は作成しようとする頂点Pの到達条件を計算する。今、頂点Pは到達条件[{x1,x2,x3}×{y1,y2}×{z1,z2}]をもつ親頂点から部品x2が付けられた枝でつながる子頂点なので、頂点Pの到達条件は[{x2}×{y1,y2}×{z1,z2}]となる(実際はステップS706で一度計算されているのでこの結果を再利用する)。
(ステップS704 2回目) 頂点Pにおいて未分類の部品種類YとZなので、仮決定部104が、分類部品種類tとして、YおよびZを選択する。
(ステップS705 2回目〜ステップS709 2回目) 分割計算部105が部品種類tで分類した時の枝への部品分割を計算する。ここでは、1回目と同様に、t=Yの時は、y1を付けた枝とy2を付けた枝の2本を作成すればよいという結果が得られ、t=Zの場合は、z1とz2を付けた枝1本でよい(部品種類Zでは分類不要)という結果が得られる。この時点で、頂点Pにおいて分類する部品種類はYに決定される。頂点Pにおいて分類する部品種類を決定することだけを考えるとステップS706〜ステップS709は不要だが、頂点Pの子頂点が単一の製品番号に対応するかを調べるため、子頂点の到達条件や、子頂点の関連する製品番号−到達条件リスト対応情報を計算しておく(ステップS706およびステップS707)。
(ステップS710 2回目) 作成部110が、根頂点(頂点Pの親頂点)から部品x2が付けられた枝の子頂点として、部品種類Yで分類する頂点Pを作成する。
(ステップS711 2回目) 作成部110が頂点Pから子頂点への枝を作成する。枝に付ける部品はステップS705(2回目)の結果を再利用する。
(ステップS712 2回目) 作成部110が単一の製造番号に対応する葉頂点を作成する。今回、子頂点は全て単一の製造番号に対応し、結果として図4の左図に示す決定木が作成される。ここまでで、全ての枝先に葉頂点が作成されたことになる。
(ステップS713 2回目) 作成部110が全ての枝先に葉頂点が作成されたことを確認する。すなわち、作成部110は決定木が完成されたことを確認する。作成部110は出力部111へ決定木を渡し表示する。
ここで、ステップS705での分割計算部105が行う枝への部品分割の手法について説明する。この手法は、枝の本数は最少になるように可能な限り1つの枝に部品名を複数割り振ろうとするが、必ず、最終的に全ての葉頂点が単一の製品番号となるように部品名を枝に分割する。ここでは、上記、図7のステップS705の1回目において、分類部品種類をXとしたとき、根頂点Pからはx1とx3を付けた枝とx2を付けた枝の2本を作成すればよいという結果を出力するまでの手順を説明する。根頂点Pの到達条件は既に[{x1,x2,x3}×{y1,y2}×{z1,z2}]と計算されている。まず、1つの部品x∈{x1,x2,x3}を枝に付けた時、その子頂点の到達条件が関連する、製品番号−到達条件リスト対応情報Rxを計算する(図7のステップS707と同様の手法で計算できる)。実際には、
Rx1:[{x1}×{y1}×{z1}]∪[{x1}×{y2}×{z1,z2}]∪[{x1}×{y1,y2}×{z2}]⇔S001,φ⇔S002,φ⇔S003、
Rx2:φ⇔S001,[{x2}×{y2}×{z1,z2}]⇔S002,[{x2}×{y1}×{z1,z2}]⇔S003、
Rx3:[{x3}×{y1,y2}×{z1,z2}]⇔S001,φ⇔S002,φ⇔S003
という製品番号−到達条件リスト対応情報が得られる。以後の説明のため、L(x,s)でRxにおける製品番号sに対応する到達条件リストを表わすとものとする。例えば、L(x2,S002)は[{x2}×{y2}×{z1,z2}]となる。
Rx1:[{x1}×{y1}×{z1}]∪[{x1}×{y2}×{z1,z2}]∪[{x1}×{y1,y2}×{z2}]⇔S001,φ⇔S002,φ⇔S003、
Rx2:φ⇔S001,[{x2}×{y2}×{z1,z2}]⇔S002,[{x2}×{y1}×{z1,z2}]⇔S003、
Rx3:[{x3}×{y1,y2}×{z1,z2}]⇔S001,φ⇔S002,φ⇔S003
という製品番号−到達条件リスト対応情報が得られる。以後の説明のため、L(x,s)でRxにおける製品番号sに対応する到達条件リストを表わすとものとする。例えば、L(x2,S002)は[{x2}×{y2}×{z1,z2}]となる。
次に分割計算部105は、2つの部品c1,c2を別々の枝に付けなければならないかどうかの判定を以下の判定手法を利用しておこなう。
(判定手法)
c1=c2という仮定の下で、任意の2つの製品番号s1,s2(s1≠s2)について、
(L(c1,s1)∪L(c2,s1))∩(L(c1,s2)∪L(c2,s2))≠φ …(判定式)
が真となるs1,s2が存在するか?
上記の判定式が真になるs1,s2が存在することは、c1とc2を同じ枝に割り当てると葉頂点において製品番号s1とs2が分離できないことに対応する。根頂点を部品種類Xで分類する場合に作成する枝を計算する場合には、部品種類Xに属する部品{x1,x2,x3}の任意の2つの部品の組合せ(x1,x2)(x1,x3)(x2,x3)について上記の判定手法を適用すればよい。この例の場合、x1とx2、および、x2とx3は別々の枝に分ける必要があり、x1とx3は分ける必要がないという結果が得られる。すなわち、根頂点を部品種類Xで分類する場合、根頂点からは、x1とx3が付けられた枝とx2が付けられた枝の2本の枝を作成する必要があることになる。
c1=c2という仮定の下で、任意の2つの製品番号s1,s2(s1≠s2)について、
(L(c1,s1)∪L(c2,s1))∩(L(c1,s2)∪L(c2,s2))≠φ …(判定式)
が真となるs1,s2が存在するか?
上記の判定式が真になるs1,s2が存在することは、c1とc2を同じ枝に割り当てると葉頂点において製品番号s1とs2が分離できないことに対応する。根頂点を部品種類Xで分類する場合に作成する枝を計算する場合には、部品種類Xに属する部品{x1,x2,x3}の任意の2つの部品の組合せ(x1,x2)(x1,x3)(x2,x3)について上記の判定手法を適用すればよい。この例の場合、x1とx2、および、x2とx3は別々の枝に分ける必要があり、x1とx3は分ける必要がないという結果が得られる。すなわち、根頂点を部品種類Xで分類する場合、根頂点からは、x1とx3が付けられた枝とx2が付けられた枝の2本の枝を作成する必要があることになる。
次に、対応情報作成部102、分割計算部105、および対応情報抽出部107が行うことが望ましい縮約処理について図9を参照して説明する。
到達条件リストは任意の部品組合せを表わすことのできるデータ構造であるが、部品組合せと到達条件リストは一対一対応していない(同じ部品組合せを表わす到達条件リストは複数存在する)。本実施形態においては、同じ内容を表わす到達条件リストであれば、要素数(到達条件)が少ない方が、頂点数の小さな決定木が構成されやすく、かつ、計算時間・計算に必要なメモリ領域の面でも有利となる。したがって、到達条件リストに関する演算をおこなう対応情報作成部102、分割計算部105、および対応情報抽出部107においては、到達条件リストの要素数(長さとも称す)をなるべく短くする処理(縮約処理)が含まれていることが望ましい。
図9は縮約処理を行う装置のブロック図である。この装置は、到達条件リスト入力部901、部品追加部902、重複到達条件削除部903、到達条件リスト出力部904を含んでいる。ここでは、到達条件リストL=[{x1}×{y1}×{z1}]∪[{x3}×{y1,y2}×{z1,z2}]∪[{x1}×{y2}×{z1,z2}]∪[{x1}×{y1,y2}×{z2}](図6のS001に対応する到達条件リストと同一)を縮約する手法を説明する。説明のため、到達条件リストLの4つの要素をそれぞれL1,L2,L3,L4と記述する(L1=[{x1}×{y1}×{z1}],L2=[{x3}×{y1,y2}×{z1,z2}],L3=[{x1}×{y2}×{z1,z2}],L4=[{x1}×{y1,y2}×{z2}]、L=L1∪L2∪L3∪L4)。
まず、到達条件リスト入力部901が縮約したい到達条件リストLを入力する。次に、部品追加部902は到達条件リストLで定義されている部品種類(X,Y,Z)のそれぞれに関してL内で現れる部品を調べる。今回の例の場合、Xに属する部品でL内に現れているのは{x1,x3}(=X’とおく)、Yに属する部品でL内に現れているのは{y1,y2}(=Y’とおく)、Zに属する部品でL内に現れているのは{z1,z2}(=Z’とおく)である。次に、Lの各要素(L1,L2,L3,L4)へ、Lが表している部品組合せが変わらない範囲で、X’,Y’,Z’の要素となっている部品を追加していく。例えば、L1にz2を追加するとL1’=[{x1}×{y1}×{z1,z2}]となり、元のL1と比べて部品組合せ{x1}×{y1}×{z2}が新たに含まれることになるが、{x1}×{y1}×{z2}は元々L4の表す部品組合せに含まれているので、L全体としては意味が変わっていない。このようにLの意味が変わらないように、L1,L2,L3,L4へ部品を追加していくと、L1には部品x3,y2,z2を、L2には部品x1を、L3には部品x3,y1をL4には部品x3,z1をそれぞれ追加し、結果として、部品追加部902の処理結果はL=[{x1,x3}×{y1,y2}×{z1,z2}]∪[{x1,x3}×{y1,y2}×{z1,z2}]∪[{x1,x3}×{y1,y2}×{z1,z2}]∪[{x1,x3}×{y1,y2}×{z1,z2}]となる。部品追加部902の処理結果は、重複到達条件削除部903へ渡る。重複到達条件削除部903は、削除しても意味の変わらない到達条件リストの要素(到達条件)を削除する。具体的には、Lの任意の2つの要素(到達条件)Li,Lj(i<j)について、(Liの表す部品組合せ)⊇(Ljの表す部品組合せ)となっている場合、LjをLから削除する。この処理を適用しても到達条件リストが表す部品組合せが変わらないのは明らかである。今回の例の場合、最終的に到達条件リストLは、L=[{x1,x3}×{y1,y2}×{z1,z2}]となり、このLが到達条件リスト出力部904から出力される。
これまで示したように、本実施形態の決定木作成装置を実現するためには、到達条件(リスト)に関する様々な集合演算を利用する必要がある。次にその演算手法を示す。
(1)到達条件リストL1の表す部品組合せと到達条件リストL2の表す部品組合せの和集合を表わす到達条件リストL(=L1∪L2)の構成手法:
Lを、L1の要素(到達条件)とL2の要素(到達条件)の両方を要素とするリストとする。
Lを、L1の要素(到達条件)とL2の要素(到達条件)の両方を要素とするリストとする。
(2)到達条件L1の表す部品組合せと到達条件L2の表す部品組合せの共通部品組合せを表わす到達条件L(=L1∩L2)の構成手法:
L1=[Sa×Sb×…×Sz]、L2=[Ta×Tb×…×Tz]とおく。ただし、SiおよびTiは部品種類iに属する部品の部分集合を表わす。このとき、L=[(Sa∩Ta)×(Sb∩Tb)×…×(Sz∩Tz)]とする。ただし、Si∩Ti=φとなる部品種類iが存在する場合、L=φとする。
L1=[Sa×Sb×…×Sz]、L2=[Ta×Tb×…×Tz]とおく。ただし、SiおよびTiは部品種類iに属する部品の部分集合を表わす。このとき、L=[(Sa∩Ta)×(Sb∩Tb)×…×(Sz∩Tz)]とする。ただし、Si∩Ti=φとなる部品種類iが存在する場合、L=φとする。
(3)到達条件リストL1の表す部品組合せと到達条件L2の表す部品組合せの共通部品組合せを表わす到達条件リストL(=L1∩L2)の構成手法:
L1=L1 1∪…∪L1 nとおく。ただし、L1 iはL1の要素となっている到達条件を表わす。このとき、L=(L1 1∩L2)∪…∪(L1 n∩L2)とする。
L1=L1 1∪…∪L1 nとおく。ただし、L1 iはL1の要素となっている到達条件を表わす。このとき、L=(L1 1∩L2)∪…∪(L1 n∩L2)とする。
(4)到達条件リストL1の表す部品組合せと到達条件リストL2の表す部品組合せの共通部品組合せを表わす到達条件リストL(=L1∩L2)の構成手法:
L2=L2 1∪…∪L2 mとおく。ただし、L2 iはL2の要素となっている到達条件を表わす。このとき、L=((L1∩L2 1)∩…)∩L2 mとする。
L2=L2 1∪…∪L2 mとおく。ただし、L2 iはL2の要素となっている到達条件を表わす。このとき、L=((L1∩L2 1)∩…)∩L2 mとする。
(5)到達条件L1の表す部品組合せから到達条件L2の表す部品組合せを取り除いた部品組合せを表わす到達条件リストL(= L1−L2)の構成手法:
L1=[Sa×Sb×…×Sz]、L2=[Ta×Tb×…×Tz]とおく。ただし、SiおよびTiは部品種類iに属する部品の部分集合を表わす。Si∩Ti=φとなる部品種類iが存在する場合、L1とL2に共通する部品組合せが存在しないのでL=L1とする。Si∩Ti=φとなる部品種類iが存在しない場合、L=[(Sa¥Ta)×Sb×…×Sz]∪[Sa×(Sb¥Tb)×…×Sz]∪…∪[Sa×Sb×…×(Sz¥Tz)]とする。ここで、Si¥Tiは集合SiからTiに含まれる要素を削除した集合を表わす。ただし、Si¥Ti=φとなる到達条件はLの要素から削除する。
L1=[Sa×Sb×…×Sz]、L2=[Ta×Tb×…×Tz]とおく。ただし、SiおよびTiは部品種類iに属する部品の部分集合を表わす。Si∩Ti=φとなる部品種類iが存在する場合、L1とL2に共通する部品組合せが存在しないのでL=L1とする。Si∩Ti=φとなる部品種類iが存在しない場合、L=[(Sa¥Ta)×Sb×…×Sz]∪[Sa×(Sb¥Tb)×…×Sz]∪…∪[Sa×Sb×…×(Sz¥Tz)]とする。ここで、Si¥Tiは集合SiからTiに含まれる要素を削除した集合を表わす。ただし、Si¥Ti=φとなる到達条件はLの要素から削除する。
(6)到達条件リストL1の表す部品組合せから到達条件L2の表す部品組合せを取り除いた部品組合せを表わす到達条件リストL(=L1−L2)の構成手法:
L1=L1 1∪…∪L1 nとおく。ただし、L1 iはL1の要素となっている到達条件を表わす。このとき、L=(L1 1−L2)∪…∪(L1 n−L2)とする。
L1=L1 1∪…∪L1 nとおく。ただし、L1 iはL1の要素となっている到達条件を表わす。このとき、L=(L1 1−L2)∪…∪(L1 n−L2)とする。
(7)到達条件リストL1の表す部品組合せから到達条件リストL2の表す部品組合せを取り除いた部品組合せを表わす到達条件リストL(=L1−L2)の構成手法:
L2=L2 1∪…∪L2 mとおく。ただし、L2 iはL2の要素となっている到達条件を表わす。このとき、L=((L1−L2 1)−…)−L2 mとする。
L2=L2 1∪…∪L2 mとおく。ただし、L2 iはL2の要素となっている到達条件を表わす。このとき、L=((L1−L2 1)−…)−L2 mとする。
(8)到達条件L1の表す部品組合せに到達条件L2の表す部品組合せが包含されているかの判定手法(L1⊇L2 ?):
L1=[Sa×Sb×…×Sz]、L2=[Ta×Tb×…×Tz]とおく。ただし、SiおよびTiは部品種類iに属する部品の部分集合を表わす。このとき、全ての部品種類iについて、Si⊇Tiとなっていれば、L1⊇L2が成り立つ。
L1=[Sa×Sb×…×Sz]、L2=[Ta×Tb×…×Tz]とおく。ただし、SiおよびTiは部品種類iに属する部品の部分集合を表わす。このとき、全ての部品種類iについて、Si⊇Tiとなっていれば、L1⊇L2が成り立つ。
以上の実施形態によれば、頂点数の少ない決定木を作成することができ、特定の部品組合せに対応する製品番号の検索等を効率よく実行できる。しかし、場合によってはユーザが指定する部品種類で分類した方がユーザにとって見やすい決定木となることもある。例えば、図3(図2でも同じ)の部品構成表を利用し出荷した機器において、後で部品y2に欠陥が見つかり、関連する製品番号を見つけ出したいという状況を想定する。このとき、ユーザが根頂点は部品種類Yで分類すると指定し図4の右図に示す決定木が作成できれば、すぐに部品y2の関連する製品番号はS001とS002であることが分かる。このようにユーザによる分類部品種類の指定に関しても、ユーザ指定情報をあらかじめ仮決定部104や判定部109に入力しておくことにより実現することができる(分類部品種類の判定処理を無視しユーザ指定の部品種類を利用するだけ)。このときユーザが指定していない頂点の分類部品種類に関しては、本実施形態の決定木作成装置によれば、ユーザの指示を満たした上で頂点数の少ない決定木を作成することができ、ユーザにとって全体が俯瞰しやすく、かつ、見やすい決定木を作成することができる。
本実施形態の決定木作成装置の特徴の1つは、製品番号−到達条件リスト対応情報に現れる到達条件リストの要素数を基準として、分類する部品種類を決定する仕組みにある。決定木の(葉)頂点に付けられる到達条件リストは必ず要素数が1となることが分かっていることから、対応情報抽出部107が計算する製品番号−到達条件リスト対応情報に現れる到達条件リストの要素数が1にならない限り葉頂点を作れないことになる(到達条件リストの縮約が完全におこなわれていると仮定)。このことから、なるべく早い段階(根頂点に近い頂点)で、製品番号−到達条件リスト対応情報に現れる到達条件リストの要素数の和を減らしておく方が、葉頂点に早く到達する、すなわち、頂点数の少ない決定木が作成できるという効果につながる。到達条件リスト縮約機能を利用し、同じ内容を表わす到達条件リストであれば要素数(到達条件)が少ない方が、頂点数の小さな決定木が構成されやすい理由は、縮約すれば製品番号−到達条件リスト対応情報に現れる到達条件リストの要素数が1となり、葉頂点をすぐに作成できるにも関わらず、縮約しない状態ではすぐに葉頂点が作成できると判断できずに、その分類部品種類を選択しないという誤った選択をする可能性があるためである。
一方、既存のID3アルゴリズムは情報量の期待値を利用している。本実施形態の手法とID3アルゴリズムのどちらの手法も決定木の頂点数を少なくするために利用できるが、どちらの手法も選ばれた部品種類で部品を分類すれば必ず決定木の頂点数が最少になることは保証しない。また、本実施形態ではID3アルゴリズムより常に頂点数が少ない決定木を構成することも保証しないが、実験では、ID3アルゴリズムを利用すると決定木の頂点数が481となる部品構成表を、本発明の手法では頂点数が341の決定木にできるという結果が得られている。少なくとも本実施形態の決定木作成装置による手法はID3アルゴリズムと同等以上の効果を奏する。
本実施形態の手法とID3アルゴリズムでは、部品種類を選ぶアプローチが異なっているため、場合によって使い分けることが有効である。例えば、本実施形態の決定木作成装置において、部品種類Xまたは部品種類Yのどちらで分類すればよいかを判定するとき、比較対象となる到達条件リストの要素数の和が等しいとき、基本的に適当に分類する部品種類を選ぶ。しかし、このような状況の時に、判定部109がID3アルゴリズムを利用して部品種類を選択すればよりよいと考えられる部品種類を選択することができ、適当に部品種類を選ぶよりは、最終的に頂点数の少ない決定木が作成される可能性が上がる。
以上に示した実施形態によれば、部品構成表を頂点数の少ない決定木で表示することにより可読性が上がる。例えば、特定の部品組合せに対する製品番号を調べる際には、根頂点から部品に対応する枝をたどっていけば製品番号を知ることができ、表形式の場合、表のどこにその部品組合せが記載されているのかを検索する必要があることに比べ容易かつ高速である。また、ID3アルゴリズムを利用すると決定木の頂点数が481となる部品構成表を本発明の手法では頂点数が341の決定木に変換する結果が得られており、一般的に、製品番号を知るために枝をたどる回数がID3アルゴリズムを利用する場合より少なくて済む。
本実施形態によれば、部品構成表が正しく作成されているかの検証を行う際にも、頂点数の少ない決定木で表現でき、全体を俯瞰しやすく、効率が上がる。特定の部品不良により影響のある製品番号を検索したい場合には、その部品が属する部品種類を決定木の根頂点となるように指定すれば、根頂点から不良部品をたどって到達する子頂点を根頂点とする部分木の葉に全ての関連製品番号が表示されることになり、高速に関連する製品番号を検索できる。
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
部品組合せと製品番号との対応表である部品構成表を表示する際に部品構成表を決定木で提示する際に利用できる。
101…部品構成表入力部、102…製品番号−到達条件リスト対応情報作成部、103…作成頂点到達条件作成部、104…分類部品種類仮決定部、105…部品分割計算部、106…仮子頂点到達条件作成部、107…仮子頂点関連製品番号−到達条件リスト対応情報抽出部、108…到達条件リスト長計算部、109…分類部品種類判定部、110…頂点・枝作成部、111…決定木出力部。
Claims (5)
- 複数の部品種類による部品組合せと製品番号との対応表を入力する入力部と、
前記対応表に対応する第1対応情報であって、複数の部品組合せを表現する要素である到達条件の和集合である到達条件リストと製品番号とを含む第1対応情報を作成する対応情報作成部と、
前記対応表および前記第1対応情報のいずれか1つから、決定木の第1頂点の第1到達条件を作成する第1条件作成部と、
前記第1頂点よりも祖先にあたるいずれの第2頂点でも未分類である全ての部品種類を順に該第1頂点の分類部品種類として仮決定する仮決定部と、
前記分類部品種類を前記第1頂点とし、前記第1到達条件に応じて該第1頂点から子頂点への枝に部品名を割り振る計算をする分割計算部と、
前記第1到達条件および前記分割に応じて前記子頂点ごとに該子頂点の第2到達条件を作成する第2条件作成部と、
前記第1対応情報から前記第2到達条件に関連する第2対応情報を抽出する抽出部と、
前記第2対応情報に含まれる到達条件リストの要素数を部品種類ごとに計算する要素数計算部と、
前記要素数が最も少なくなる部品種類を前記第1頂点の分類部品種類として判定する判定部と、
前記判定部が判定した部品種類の第1頂点を作成し、第1頂点から子頂点への枝に割り振る部品名を前記分割計算部の計算結果から作成する頂点枝作成部と、を具備することを特徴とする決定木作成装置。 - 前記対応情報作成部、前記分割計算部、および前記抽出部の少なくとも1つは、
前記到達条件リストが表す部品組合せが変わらない範囲で、該到達条件リストで定義されている部品種類ごとに、該到達条件リストの要素に部品名を追加する追加部と、
前記到達条件リストの第1要素が表す部品組合せの集合が該到達条件リストの第2要素が表す部品組合せの集合に含まれる場合には、該第1要素を削除する削除部と、を含むことを特徴とする請求項1に記載の決定木作成装置。 - 前記入力部と前記対応情報作成部との代わりに、前記第1対応情報を直接入力する対応情報入力部を具備することを特徴とする請求項1に記載の決定木作成装置。
- 分類部品種類を取得する取得部をさらに具備し、
前記取得部が分類部品種類を取得する場合には、前記仮決定部は該分類部品種類を前記第1頂点の分類部品種類として仮決定し、前記判定部は前記取得部が取得した分類部品種類を前記第1頂点の分類部品として判定し、前記取得部が分類部品種類を取得しない場合には、前記仮決定部は前記第1頂点よりも祖先にあたるいずれの第2頂点でも未分類である全ての部品種類を順に該第1頂点の分類部品種類として仮決定し、前記判定部は前記要素数が最も少なくなる部品種類を前記第1頂点の分類部品種類として判定することを特徴とする請求項1に記載の決定木作成装置。 - 前記要素数が最も少なくなる部品種類が複数ある場合は、前記判定部はID3アルゴリズムを利用して前記第1頂点の分類部品種類を判定する請求項1に記載の決定木作成装置。
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/JP2009/066069 WO2011033604A1 (ja) | 2009-09-15 | 2009-09-15 | 決定木作成装置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPWO2011033604A1 JPWO2011033604A1 (ja) | 2013-02-07 |
| JP5269999B2 true JP5269999B2 (ja) | 2013-08-21 |
Family
ID=43758231
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2011531673A Expired - Fee Related JP5269999B2 (ja) | 2009-09-15 | 2009-09-15 | 決定木作成装置 |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US9129232B2 (ja) |
| JP (1) | JP5269999B2 (ja) |
| WO (1) | WO2011033604A1 (ja) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2015063878A1 (ja) * | 2013-10-30 | 2015-05-07 | 楽天株式会社 | 処理装置、処理方法、プログラム、及び記録媒体 |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2009075734A (ja) * | 2007-09-19 | 2009-04-09 | Toshiba Corp | 情報管理支援装置及び方法 |
| JP2009086137A (ja) * | 2007-09-28 | 2009-04-23 | Kddi Corp | 音声合成のための決定木を生成する装置、方法及びプログラム |
-
2009
- 2009-09-15 WO PCT/JP2009/066069 patent/WO2011033604A1/ja not_active Ceased
- 2009-09-15 JP JP2011531673A patent/JP5269999B2/ja not_active Expired - Fee Related
-
2012
- 2012-03-15 US US13/421,691 patent/US9129232B2/en not_active Expired - Fee Related
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2009075734A (ja) * | 2007-09-19 | 2009-04-09 | Toshiba Corp | 情報管理支援装置及び方法 |
| JP2009086137A (ja) * | 2007-09-28 | 2009-04-23 | Kddi Corp | 音声合成のための決定木を生成する装置、方法及びプログラム |
Non-Patent Citations (2)
| Title |
|---|
| CSNG200200098002; 工藤嘉晃、外1名: '決定木生成のための適切な抽象化の効用' 第49回 知識ベースシステム研究会資料(SIG-KBS-A002) , 20000928, p.13-19, 社団法人人工知能学会 * |
| JPN6013017881; 工藤嘉晃、外1名: '決定木生成のための適切な抽象化の効用' 第49回 知識ベースシステム研究会資料(SIG-KBS-A002) , 20000928, p.13-19, 社団法人人工知能学会 * |
Also Published As
| Publication number | Publication date |
|---|---|
| WO2011033604A1 (ja) | 2011-03-24 |
| US20120173532A1 (en) | 2012-07-05 |
| JPWO2011033604A1 (ja) | 2013-02-07 |
| US9129232B2 (en) | 2015-09-08 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP4940973B2 (ja) | 論理構造認識処理プログラム、論理構造認識処理方法および論理構造認識処理装置 | |
| JP5576003B1 (ja) | コーパス生成装置、コーパス生成方法、及びコーパス生成プログラム | |
| JP5159713B2 (ja) | システムの構成要素の設計アーキテクチャを自動設計する自動設計装置、自動設計方法及び自動設計プログラム | |
| CN104679949B (zh) | 基于XML路网数据的Paramics路网构建方法 | |
| CN110515896B (zh) | 模型资源管理方法、模型文件制作方法、装置和系统 | |
| US20100318476A1 (en) | Rule processing method and apparatus providing automatic user input selection | |
| JPWO2009095981A1 (ja) | 表からツリー構造データを構築する方法及び装置 | |
| JP2009116648A (ja) | ソフトウェアの設計支援方法、設計支援装置及び設計支援プログラム | |
| JP6511793B2 (ja) | テストケース生成プログラム、テストケース生成方法及びテストケース生成装置 | |
| CN105446952A (zh) | 用于处理语义片段的方法和系统 | |
| Hebrard et al. | A hybrid approach for exact coloring of massive graphs | |
| EP3427163B1 (en) | Node-centric analysis of dynamic networks | |
| JP5269999B2 (ja) | 決定木作成装置 | |
| JP2009134520A (ja) | ソーシャルネットワーク表示システム、方法、及びプログラム | |
| WO2021220506A1 (ja) | 表示制御装置および表示制御方法 | |
| JP7099316B2 (ja) | 類似度演算装置、方法、およびプログラム | |
| US8510693B2 (en) | Changing abstraction level of portion of circuit design during verification | |
| JP6459267B2 (ja) | テストケース生成プログラム、テストケース生成方法及びテストケース生成装置 | |
| JP5175607B2 (ja) | 決定木作成装置 | |
| JP2013012082A (ja) | テストデータ生成プログラム、テストデータ生成方法、テストデータ生成装置 | |
| JP5618381B2 (ja) | イベントログの検索方法、その装置及びプログラム | |
| JP6364332B2 (ja) | 仕様生成方法、仕様生成装置、及びプログラム | |
| JP5670993B2 (ja) | 単一パス集約による木構造の再構成装置及び方法及びプログラム | |
| JP5172308B2 (ja) | テキスト整形規則獲得装置、構造判定装置、それらのプログラム | |
| JP2018195042A (ja) | 情報処理装置、情報処理方法および情報処理プログラム |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20130416 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130508 |
|
| LAPS | Cancellation because of no payment of annual fees |