(57)【要約】  本発明は，計算処理工程が少なく，任意の形状の最適領域を抽出する最適領域抽出方法およびその装置を提供する。複数次元の数値属性データに基づいて区分される複数の単位領域を組み合わせた複数の組合せ領域から，最大ゲインを有する組合せ領域を抽出する処理がコンピュータにより実行される最適領域抽出方法において，前記コンピュータが，複数次元の数値属性データに対する結果属性データの集合を記憶する入力工程と，前記コンピュータが，前記複数の単位領域に複数の論理変数を対応させ，前記複数の組合せ領域に対応する出力値に前記複数の論理変数に対する論理関数を対応させ，前記論理関数には，前記結果属性データの二値に応じて所定値を割り当てたゲインを出力値とするゲイン論理関数と，最適領域か否かを出力値とする最適領域抽出論理関数とを有し，前記各論理関数を，前記複数の論理変数をノードに，前記複数の論理変数の二値を枝に，前記出力値を葉ノードにそれぞれ対応させた二分決定グラフで定義した初期値を受信する初期化工程と，前記コンピュータが，前記集合に含まれる結果属性データそれぞれについて，各結果属性データのゲインを出力値とする現在ゲイン論理関数と，前記各結果属性データのゲインの累積値を出力値とする累積ゲイン論理関数とを，最下位桁から最上位桁まで順次算術加算する加算論理演算を，前記二分決定グラフによる論理演算で行うゲイン加算工程と，前記コンピュータが，前記結果属性データのゲインを累積加算した前記累積ゲイン論理関数について，最上位桁から最下位桁まで順次，前記累積ゲイン論理関数と前記最適領域抽出論理関数とのＡＮＤ演算を，前記二分決定グラフによるＡＮＤ演算で行い，当該最適領域抽出論理関数が恒偽関数でなければ当該ＡＮＤ演算後の最適領域抽出論理関数に更新し，前記恒偽関数であれば更新しない最適領域抽出工程と，前記コンピュータが，前記最下位桁までＡＮＤ演算した後の前記最適領域抽出論理関数の出力が真となる前記組合せ領域を最適領域として出力する最適領域出力工程とを有する。
2013061464.tif 000002
【特許請求の範囲】
【請求項１】
複数次元の数値属性データに基づいて区分される複数の単位領域を組み合わせた複数の組合せ領域から，最大ゲインを有する組合せ領域を抽出する処理がコンピュータによって実行される，最適領域抽出方法において，
前記コンピュータが，複数次元の数値属性データに対する結果属性データの集合を記憶する入力工程と，
前記コンピュータが，前記複数の単位領域に複数の論理変数を対応させ，前記複数の組合せ領域に対応する出力値に前記複数の論理変数に対する論理関数を対応させ，前記論理関数には，前記結果属性データの二値に応じて所定値を割り当てたゲインを出力値とするゲイン論理関数と，最適領域か否かを出力値とする最適領域抽出論理関数とを有し，前記各論理関数を，前記複数の論理変数をノードに，前記複数の論理変数の二値を枝に，前記出力値を葉ノードにそれぞれ対応させた二分決定グラフで定義した初期値を受信する初期化工程と，
前記コンピュータが，前記集合に含まれる結果属性データそれぞれについて，各結果属性データのゲインを出力値とする現在ゲイン論理関数と，前記各結果属性データのゲインの累積値を出力値とする累積ゲイン論理関数とを，最下位桁から最上位桁まで順次算術加算する加算論理演算を，前記二分決定グラフによる論理演算で行うゲイン加算工程と，
前記コンピュータが，前記結果属性データのゲインを累積加算した前記累積ゲイン論理関数について，最上位桁から最下位桁まで順次，前記累積ゲイン論理関数と前記最適領域抽出論理関数とのＡＮＤ演算を，前記二分決定グラフによるＡＮＤ演算で行い，当該最適領域抽出論理関数が恒偽関数でなければ当該ＡＮＤ演算後の最適領域抽出論理関数に更新し，前記恒偽関数であれば更新しない最適領域抽出工程と，
前記コンピュータが，前記最下位桁までＡＮＤ演算した後の前記最適領域抽出論理関数の出力が真となる前記組合せ領域を最適領域として出力する最適領域出力工程とを有する最適領域抽出方法。
【請求項２】
請求項１において，
前記コンピュータが，少なくとも前記ゲイン加算工程と最適領域抽出工程で，前記論理関数を定義する前記二分決定グラフを，関数名について，前記論理変数に対応するノードと出力値に対応する葉ノードとを前記論理変数の二値に応じて関連付けたデータ構造で，メモリ内に記憶する最適領域抽出方法。
【請求項３】
請求項１または２において
前記コンピュータが，前記最適領域抽出工程において，前記複数の組合せ領域のうち抽出が禁止される組合せ領域を示す制約を出力値に対応させた制約論理関数と，前記累積ゲイン論理関数の最上位桁とのＡＮＤ演算を，前記二分決定グラフで行って，前記最適領域抽出論理関数を生成する最適領域抽出方法。
【請求項４】
請求項３において，
前記最適領域抽出論理関数の初期値が恒真関数であり，
前記コンピュータが，前記累積ゲイン論理関数の最上位桁が符号ビットの場合は，当該最上位桁を反転して，前記制約論理関数とＡＮＤ演算を，前記二分決定グラフで行う最適領域抽出方法。
【請求項５】
請求項１において，
前記ゲイン加算工程における加算論理演算は，下位ビットからのキャリー論理関数と，現在ゲイン論理関数と，前記累積ゲイン論理関数との排他的論理和演算を行って，累積ゲイン論理関数を更新する第１の加算論理演算と，前記現在ゲイン論理関数と前記累積ゲイン論理関数とのＡＮＤ演算を行ってその桁のキャリー論理関数を求める第２の加算論理演算とを有する最適領域抽出方法。
【請求項６】
請求項１において，
前記累積ゲイン論理関数の初期値が恒偽関数である最適領域抽出方法。
【請求項７】
複数次元の数値属性データに基づいて区分される複数の単位領域を組み合わせた複数の組合せ領域から，最大ゲインを有する組合せ領域を抽出する最適領域抽出工程をコンピュータに実行させるコンピュータ読み取り可能な最適領域抽出プログラムにおいて，
前記最適領域抽出工程は，
前記コンピュータが，複数次元の数値属性データに対する結果属性データの集合を入力する入力工程と，
前記コンピュータが，前記複数の単位領域に複数の論理変数を対応させ，前記複数の組合せ領域に対応する出力値に前記複数の論理変数に対する論理関数を対応させ，前記論理関数には，前記結果属性データの二値に応じて所定値を割り当てたゲインを出力値とするゲイン論理関数と，最適領域か否かを出力値とする最適領域抽出論理関数とを有し，前記各論理関数を，前記複数の論理変数をノードに，前記複数の論理変数の二値を枝に，前記出力値を葉ノードにそれぞれ対応させた二分決定グラフで定義した初期値を入力する初期化工程と，
前記コンピュータが，前記集合に含まれる結果属性データそれぞれについて，各結果属性データのゲインを出力値とする現在ゲイン論理関数と，前記各結果属性データのゲインの累積値を出力値とする累積ゲイン論理関数とを，最下位桁から最上位桁まで順次算術加算する加算論理演算を，前記二分決定グラフによる論理演算で行うゲイン加算工程と，
前記コンピュータが，前記結果属性データのゲインを累積加算した前記累積ゲイン論理関数について，最上位桁から最下位桁まで順次，前記累積ゲイン論理関数と前記最適領域抽出論理関数とのＡＮＤ演算を，前記二分決定グラフによるＡＮＤ演算で行い，当該最適領域抽出論理関数が恒偽関数でなければ当該ＡＮＤ演算後の最適領域抽出論理関数に更新し，前記恒偽関数であれば更新しない最適領域抽出工程と，
前記コンピュータが，前記最下位桁までＡＮＤ演算した後の前記最適領域抽出論理関数の出力が真となる前記組合せ領域を最適領域として出力する最適領域出力工程とを有する最適領域抽出プログラム。
【請求項８】
請求項７において，
前記コンピュータが，少なくとも前記ゲイン加算工程と最適領域抽出工程で，前記論理関数を定義する前記二分決定グラフを，関数名について，前記論理変数に対応するノードと出力値に対応する葉ノードとを前記論理変数の二値に応じて関連付けたデータ構造で，メモリ内に記憶する最適領域抽出プログラム。
【請求項９】
複数次元の数値属性データに基づいて区分される複数の単位領域を組み合わせた複数の組合せ領域から，最大ゲインを有する組合せ領域を抽出する最適領域抽出装置において，
複数次元の数値属性データに対する結果属性データの集合を入力する入力手段と，
前記複数の単位領域に複数の論理変数を対応させ，前記複数の組合せ領域に対応する出力値に前記複数の論理変数に対する論理関数を対応させ，前記論理関数には，前記結果属性データの二値に応じて所定値を割り当てたゲインを出力値とするゲイン論理関数と，最適領域か否かを出力値とする最適領域抽出論理関数とを有し，前記各論理関数を，前記複数の論理変数をノードに，前記複数の論理変数の二値を枝に，前記出力値を葉ノードにそれぞれ対応させた二分決定グラフで定義した初期値を入力する初期化手段と，
前記集合に含まれる結果属性データそれぞれについて，各結果属性データのゲインを出力値とする現在ゲイン論理関数と，前記各結果属性データのゲインの累積値を出力値とする累積ゲイン論理関数とを，最下位桁から最上位桁まで順次算術加算する加算論理演算を，前記二分決定グラフによる論理演算で行うゲイン加算手段と，
前記結果属性データのゲインを累積加算した前記累積ゲイン論理関数について，最上位桁から最下位桁まで順次，前記累積ゲイン論理関数と前記最適領域抽出論理関数とのＡＮＤ演算を，前記二分決定グラフによるＡＮＤ演算で行い，当該最適領域抽出論理関数が恒偽関数でなければ当該ＡＮＤ演算後の最適領域抽出論理関数に更新し，前記恒偽関数であれば更新しない最適領域抽出手段と，
前記最下位桁までＡＮＤ演算した後の前記最適領域抽出論理関数の出力が真となる前記組合せ領域を最適領域として出力する最適領域出力手段とを有する最適領域抽出装置。
【請求項１０】
請求項９において，
前記論理関数を定義する前記二分決定グラフが，関数名について，前記論理変数に対応するノードと出力値に対応する葉ノードとを前記論理変数の二値に応じて関連付けたデータ構造で，メモリ内に記憶される最適領域抽出装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，最適領域抽出方法およびその装置に関する。
【背景技術】
【０００２】
最適領域抽出とは，データマイニングの一種であり，１つあるいは複数次元の数値属性データがある場合に，その数値属性データの相関ルールを抽出する技術である。つまり，数値属性の相関ルールを抽出することは，数値属性データにより区分される領域を求めることになるので，最適領域抽出技術と呼ばれる。【０００３】
数値属性データの相関ルールの抽出では，１つあるいは複数次元空間内のある一点に対応する数値属性データと，その一点の結果属性データ，例えばある条件が満たされるか否か（Yes又はNo），とのペアからなるデータの集合が与えられた場合，「複数次元の領域Rに含まれると，結果属性がYesになる」というルールが最も成立する領域（最適領域）を計算する。つまり，相関ルールを見つけることが，最適な領域を抽出することに対応するので，最適領域抽出とも呼ばれている。【０００４】
最適領域抽出方法において，１次元の数値属性データの場合に，区間数をNとして，計算コストOをO(N)で効率的に計算する手法が知られている。例えば，非特許文献２，３，４などである。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１１−９５８７８号公報
【非特許文献】
【０００６】
【非特許文献１】Graph-Based  Algorithms  for  Boolean  Function  Manipulation,  Randal  E.  Bryant,  IEEE  TRANSACTION  ON  COMPUTERS,  VOL.  C-35,  NO.8,  August  1986
【非特許文献２】T.Fukuda  et  al.,  Datamining  using  two-dimensional  optimized  association  rules:  Scheme,  algorithms,  and  visualization,  Proceedings  of  the  ACM  SIGMOD  Conference  on  Management  of  Data,  pp.  13-23.  1996年
【非特許文献３】加藤直樹他，データマイニングとその応用，朝倉書店
【非特許文献４】福田剛志他，データマイニング，共立出版
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら，従来の方法では，複数次元の数値属性データの場合は，２次元以上の領域は全ての組み合わせをチェックすることが必要になり，計算時間が長くなるという課題がある。また，抽出できる最適領域が矩形領域に限定されるため，矩形以外の領域に最適な領域が存在する場合は，必ずしも最適な領域を抽出できるとは限らない。【０００８】
そこで，本発明の目的は，計算処理工数が少ない最適領域抽出方法およびその装置を提供することにある。【０００９】
また，本発明の更なる目的は，計算処理工程が少なく，任意の形状の最適領域を抽出する最適領域抽出方法およびその装置を提供することにある。
【課題を解決するための手段】
【００１０】
最適抽出方法の第１の側面によれば，複数次元の数値属性データに基づいて区分される複数の単位領域を組み合わせた複数の組合せ領域から，最大ゲインを有する組合せ領域を抽出する処理がコンピュータにより実行される最適領域抽出方法において，
前記コンピュータが，複数次元の数値属性データに対する結果属性データの集合を記憶する入力工程と，
前記コンピュータが，前記複数の単位領域に複数の論理変数を対応させ，前記複数の組合せ領域に対応する出力値に前記複数の論理変数に対する論理関数を対応させ，前記論理関数には，前記結果属性データの二値に応じて所定値を割り当てたゲインを出力値とするゲイン論理関数と，最適領域か否かを出力値とする最適領域抽出論理関数とを有し，前記各論理関数を，前記複数の論理変数をノードに，前記複数の論理変数の二値を枝に，前記出力値を葉ノードにそれぞれ対応させた二分決定グラフで定義した初期値を受信する初期化工程と，
前記コンピュータが，前記集合に含まれる結果属性データそれぞれについて，各結果属性データのゲインを出力値とする現在ゲイン論理関数と，前記各結果属性データのゲインの累積値を出力値とする累積ゲイン論理関数とを，最下位桁から最上位桁まで順次算術加算する加算論理演算を，前記二分決定グラフによる論理演算で行うゲイン加算工程と，
前記コンピュータが，前記結果属性データのゲインを累積加算した前記累積ゲイン論理関数について，最上位桁から最下位桁まで順次，前記累積ゲイン論理関数と前記最適領域抽出論理関数とのＡＮＤ演算を，前記二分決定グラフによるＡＮＤ演算で行い，当該最適領域抽出論理関数が恒偽関数でなければ当該ＡＮＤ演算後の最適領域抽出論理関数に更新し，前記恒偽関数であれば更新しない最適領域抽出工程と，
前記コンピュータが，前記最下位桁までＡＮＤ演算した後の前記最適領域抽出論理関数の出力が真となる前記組合せ領域を最適領域として出力する最適領域出力工程とを有する。
【発明の効果】
【００１１】
第１の側面によれば，計算処理工数が少ない最適領域抽出方法およびその装置を提供することができる。
【図面の簡単な説明】
【００１２】
【図１】本実施の形態の領域抽出の対象となる数値属性データと結果属性データの一例を示す図である。
【図２】図１の二次元空間を複数の単位領域に区分した例を示す図である。
【図３】図２の各ピクセルのゲインの演算を示す図である。
【図４】本実施の形態における最適領域抽出装置の構成図である。
【図５】本実施の形態における最適領域抽出方法または最適領域抽出プログラムの手順を示すフローチャート図である。
【図６】複数のピクセルと複数の論理変数との対応を示す図である。
【図７】二分決定グラフ（BDD）を説明する図である。
【図８】BDDのデータ構造の一例を示す図である。
【図９】データ１のゲインを算術加算する例を示す図である。
【図１０】データ２のゲインを算術加算する例を示す図である。
【図１１】データ１６まで全てのゲインを算術加算した結果を示す図である。
【図１２】データ１，２の算術加算をBDDで行う例を示す図である。
【図１３】BDDによるEOR論理演算の方法を示す図である。
【図１４】BDDの論理演算においてメモリに格納されるBDDのデータ構造を示す図である。
【図１５】BDDの論理演算においてメモリに格納されるBDDのデータ構造を示す図である。
【図１６】連続制約cを適用した場合を示す図である。
【図１７】連続制約cについて説明するための図である。
【図１８】連続制約ｃのBDDを生成するフローチャート図である。
【図１９】累積ゲインが最大になる組合せ領域の抽出工程の例を示す図である。
【図２０】累積ゲインが最大になる組合せ領域の抽出工程のフローチャート図である。
【図２１】累積ゲインが最大になる組合せ領域の抽出工程の別の例を示す図である。
【図２２】累積ゲインが最大になる組合せ領域の抽出工程の別のフローチャート図である。
【図２３】本実施の形態における最適領域抽出装置の具体的な構成図である。
【発明を実施するための形態】
【００１３】
図１は，本実施の形態の領域抽出の対象となる数値属性データと結果属性データの一例を示す図である。数値属性データX1,X2に対応して二次元空間が定義される。そして，二次元空間内の複数の点（図中はデータ１から１６まで全部で１６点）は，それぞれ結果属性データとして，ある条件CONDが成立するか否か（白丸がYes,黒丸がNo）の属性を有する。各点は，二次元空間内の座標を有し，各次元の数値属性データX1,X2はその座標に対応する。
【００１４】
具体的な例で説明すると，二次元空間の座標に対応する数値属性データX1,X2として，例えば，性別，住所，年収，職業などが対応付けされ，結果属性データとして，例えばある条件COND「高齢者はあるサービスを希望する」が成り立つか否か（Yes，No）などが対応付けられる。
【００１５】
図１において，２つの数値属性データX1,X2と結果属性データYes，Noとのペアリングが，白丸と黒丸の１６個のデータとして示されている。つまり，１６個のデータは，二次元空間内の座標に対応する数値属性データX1,X2に対応して，ある条件CONDが成り立つ（Yes）または成り立たない（No）という結果属性データを有する。
【００１６】
その場合，上記の条件CONDが成立すれば利益（ゲイン）を得るが，成立しなければ逆に損失（ロス，負のゲイン）を被るような場合に，ゲインが最大になる領域を最適領域として抽出することができれば，その最適領域についてのみビジネスを展開することで，最大の利益を得ることができる。これが，本実施の形態の最適領域を抽出する意義である。
【００１７】
図２は，図１の二次元空間を複数の単位領域に区分した例を示す図である。図２では，数値属性X1を区分１，２に分け，同様に，数値属性X2を区分１，２に分けて，二次元空間を２×２＝４つの単位領域(1,1)，(2,1)，(1,2)，(2,2)に分けている。この単位領域をピクセルと称することにする。
【００１８】
次に，各ピクセル（単位領域）のゲインについて説明する。各データのゲインは，条件CONDが成り立つ（Yes）場合は，係数ａ＝＋１を割り当てられ，成り立たない（No）場合は，係数ｂ＝−１を割り当てられる。つまり，条件が成り立てば正の利益（ゲイン）が得られるが，成り立たない場合は，そのビジネスを実行するための経費のみが発生するので，損失，つまり負の利益（ゲイン）になる。
【００１９】
従って，各ピクセルのゲインは，次の式で求めることができる。
ゲイン＝ａ＊（Yesのデータの数）＋ｂ＊（Noのデータの数）
図３は，図２の各ピクセルのゲインの演算を示す図である。４つのピクセル(1,1)，(2,1)，(1,2)，(2,2)のゲインは，それぞれ３，−２，−４，３になっている。
【００２０】
そこで，ピクセル（単位領域）の組合せからなる複数の組合せ領域の中から，上記したゲインが最大値をとる組合せ領域を最適領域として抽出するためには，４つのピクセルの全ての組合せについてゲインを計算し，各ゲインを比較して最適領域を抽出することが必要になる。しかし，数値属性データの数が膨大でピクセルの数が膨大になり，且つデータの数が膨大になると，上記の最適領域を抽出するための計算工数が膨大になるとともに，計算中に一時的に記憶しておくデータ量も大きくなり大きなメモリ容量が必要になる。
【００２１】
［実施の形態例］
図４は，本実施の形態における最適領域抽出装置の構成図である。最適領域抽出装置１は，バス１４を介して接続されたプロセッサユニット１０と，データ等の外部からの入力と外部への出力を行う入出力装置１２と，論理関数に対応する二分決定グラフ（BDD，Binary  Decision  Diagram），ゲイン，その他のデータやパラメータなどを，最適領域抽出の演算工程中に一時的に蓄積する内部メモリ１６とを有するコンピュータシステムである。さらに，最適領域抽出装置１は，最適領域抽出プログラムを格納するメモリ１８と，BDD演算モジュールを格納するメモリ２０を有する。
【００２２】
最適領域抽出プログラム１８は，最大ゲインを有する最適領域を抽出するためのプログラムである。この最適領域抽出プログラムについては，本実施の形態に沿って詳述する。また，BDD演算モジュール２０は，BDDの論理演算プログラムであり，BDDの論理演算方法及びそのプログラムについては，前述の非特許文献１に記載されているとおり公知である。
【００２３】
図５は，本実施の形態における最適領域抽出方法または最適領域抽出プログラムの手順を示すフローチャート図である。すなわち，図４の最適領域抽出プログラム１８の手順を示している。このフローチャートに示した各工程S10〜S24に従って，以下説明する。
【００２４】
図６は，複数のピクセルと複数の論理変数との対応を示す図である。本最適領域抽出方法の前提として，複数次元の数値属性データX1,X2に基づいて区分される複数の単位領域（４つのピクセル(1,1)，(2,1)，(1,2)，(2,2)）に，論理変数p1,1，p2,1，p1,2，p2,2を割り当てる。そして，この４つの論理変数を入力とし，ゲインや制約（例えばピクセルは連続しなければならないとする連続制約）や最適領域を出力とする論理関数ｆ（p1,1，p2,1，p1,2，p2,2）を利用する。論理関数の出力は「１」「０」からなる１ビットの出力である。
【００２５】
この論理関数ｆは，４つの論理変数p1,1，p2,1，p1,2，p2,2の「１」「０」の組み合わせに対して，それぞれ出力を有する。論理関数の出力を「１」「０」からなる論理出力にすることで，論理関数を，後述する二分決定グラフ（BDD）で定義することができる。そして，論理関数の出力値は１ビットであるので，単一の論理関数により，制約がある「１」，なし「０」や，最適領域である「１」，ない「０」を処理することができる。さらに，複数の論理関数の論理出力により，累積ゲインなどの複数ビットを必要とする数量を処理することができる。
【００２６】
前述のとおり，４つのピクセル（単位領域）に４つの論理変数p1,1，p2,1，p1,2，p2,2を対応付けているので，４つの論理変数の「１」「０」は，対応するピクセルが含まれる「１」ことと，含まれない「０」ことを示す。したがって，４つの論理変数の「１」「０」の全ての組合せは，４つのピクセルを組み合わせた全ての組合せ領域を表すことができ，全ての組合せ領域に対する出力（ゲイン，制約有り無し，最適領域であるない）に論理関数を割り当てることができる。
【００２７】
そして，そのような論理関数は，二分決定グラフ（BDD）で定義することができる。二分決定グラフ（BDD）で定義できれば，非特許文献１に記載されている演算方法により，少ない演算時間で，また少ないメモリ容量で，演算を実行することができる。
【００２８】
図７は，二分決定グラフ（BDD）を説明する図である。このBDDの例は，３つの論理変数X1,X2,X3を入力とする論理関数ｆ（X1,X2,X3）を定義している。図７中の論理関数の真理値表によれば，入力の論理変数X1,X2,X3が「０１０」「１００」「１０１」「１１０」の場合に，論理関数ｆの出力が「１」に，それ以外の場合に「０」になっている。
【００２９】
そこで，この論理関数ｆをBDDで定義すると，図中の二分木のように定義することができる。このBDDによれば，論理関数ｆは，根ノードの論理変数X1の「１」「０」の枝の先に論理変数X2のノードがあり，更にそのノードの２つの枝の先に論理変数X3のノードがある。論理変数X3は最下位の変数であるので，そのノードの枝の先は，論理関数ｆの出力値「１」「０」の葉ノードがそれぞれつながっている。そして，上記の論理変数X1,X2,X3のそれぞれの枝の組合せが，根ノードから葉ノードまでのパスを規定する。従って，前述のとおり，「０１０」「１００」「１０１」「１１０」となるのパスの先の葉ノードが「１」となり，それ以外のパスの先の葉ノードは「０」となる。
【００３０】
さらに，BDDでは，等価ノードと冗長ノードを削除することで圧縮することができる。等価ノードとは，ノードと２つの枝の先のノードとが等価なものであり，図７の左側のBDDでは，ノードn2，n4が等価ノードである。そこで，これらの等価ノードn2，n4を合体させて真ん中のBDD1ではノードn24に変更されている。さらに，左側のBDDでは，ノードn1，n3は，２つの枝の先が同じである。つまり，ノードn1の２つの枝の先の葉ノードは共に「０」であり，ノードn4の２つの枝の先の葉ノードは共に「１」である。そこで，真ん中のBDD1では，ノードn1の２つの枝は単一の葉ノード「０」に，ノードn3の２つの枝は単一の葉ノード「１」につながっている。
【００３１】
また，真ん中のBDD1のノードn1，n3は，それぞれ，いずれの枝も葉ノード「０」または「１」につながる。従って，このようなノードn1，n3は冗長ノードである。そこで，右側のBDD2では，これらのノードn1，n3が削除されて，論理変数X2から「０」の枝で直接葉ノード「０」「１」に接続されている。
【００３２】
その結果，右側の圧縮されたBDD2は，左側のBDDと比較すると，その規模を縮小することができる。この右側のBDD2において，根ノードX1からの３つのパス
X1,X2,X3＝0,1,0
X1,X2＝1,0
X1,X2,X3＝1,1,0
で，葉ノード「１」につながることが理解できる。つまり，論理関数f(X1,X2,X3)は，図７に示されるとおり，
f(X1,X2,X3)＝X1'X2X3'＋X1X2'＋X1X2X3'
に圧縮することができる。ここで，X1'とはX1のnotである。
【００３３】
BDDは，メモリ内にデータ構造として格納可能である。また，BDDは，非特許文献１に記載されるように，BDDどうしで論理演算が可能である。BDDのサイズは図７に示したように圧縮することができるので，そのデータ構造も小さくすることができる。また，BDDどうしで論理演算することで，論理変数の全ての組合せについて一括して論理演算を行うことができる。たとえば，図７において論理変数X1,X2,X3の８つの組合せについて，一括して論理演算可能である。
【００３４】
BDDの論理演算は，図４のBDD演算モジュールにより処理することができ，BDD演算モジュールでは，圧縮されたBDDを演算して，圧縮されたBDDを出力する。
【００３５】
図８は，BDDのデータ構造の一例を示す図である。図８のデータ構造は，論理関数ｆと，論理変数X1,X2,X3と，２つの葉ノードとが，それぞれデータエレメントを構成し，論理関数ｆは根ノードのポインタを，論理変数X1,X2,X3はそれぞれの枝の先の子ノードのポインタを有する。このように，論理関数をBDDで定義することで，そのデータ構造を小さくでき，メモリ容量を小さくすることができる。さらに，論理関数をBDDで定義することで，論理変数の組合せ全てに対する出力値について演算せずに，圧縮されたBDDどうしで論理演算すればよく，計算工数を減らすことができる。
【００３６】
［初期化工程］
図５のフローチャートに示されるとおり，本実施の形態での最適領域抽出方法では，初期化工程S10において，まず，複数次元の数値属性データに対する結果属性データの集合を外部メモリ（図４中には示していない）などの大容量メモリに入力する。図１，２，３に示した１６データの集合が対応する。次に，最適領域抽出工程中に使用する論理関数に対応するBDDを定義する。定義すべき論理関数は，組合せ領域内のゲインの合計値に対応する累積ゲイン論理関数，データそれぞれのゲインに対応する現在ゲイン論理関数，組合せ領域の制約（禁止）を示す制約論理関数，最適領域を示す最適領域論理関数などである。累積ゲイン論理関数と現在ゲイン論理関数は，累積ゲインの最大値に応じたビット数だけ必要になる。これらは全てBDDでメモリに格納される。
【００３７】
さらに，初期化工程S10では，各ピクセル（単位領域）に論理変数x[p](pは１〜ｒ（ｒはピクセル数(r=4)）)を割り当てる。つまり，図６の例では，
x[1]=p1,1
x[2]=p2,1
x[3]=p1,2
x[4]=p2,2
である。
【００３８】
そして，各ピクセルｐに隣接するピクセルadj[p]をメモリに格納する。
【００３９】
また，データ数をｎ(n=16)，数値属性データの次元数をｄ，ピクセル数をｒ＝Nd（Nは各次元の区分数），累積ゲインと現在ゲインの桁数をｍ（ｍ＝log2(n+1)+1）と定義する。ゲインは，結果属性データがYesならa=+1，Noならb=-1であるので，累積ゲインの最大値は＋ｎ（ｎはデータ数）で最小値は−nである。つまり，データ数n=16の場合であれば，累積ゲインは，-16〜+16である。そのためには，二進数では５桁必要であり，それに符号ビットを加えると，６桁が必要になる。従って，累積ゲイン及び現在ゲインの論理関数の数（桁数）はｍ＝６になる。
【００４０】
初期化工程S10では，さらに，累積ゲイン論理関数f1〜fmを全て恒偽関数（全ての出力が偽「０」）に初期化する。つまり，累積ゲインは符号ビットが「０」（プラス），それ以外の５桁が「０」に初期化される。
【００４１】
［ゲインの算術加算工程］
次に，図５のフローチャートに示されるとおり，データ番号i=1〜16について(S12)，各データのゲインを論理関数cur.f[i]として生成し（S14），各データのゲインcur.f[i]を累積ゲインold.f[i]に加算して新たな累積ゲインnew.f[i]とする（S16）処理を繰り返す。この算術加算は，６ビットの論理関数について後述する加算用の論理演算を行えばよい。
【００４２】
図９は，データ１のゲインを算術加算する例を示す図である。データ１はNoであり，ピクセルx[3]=p1,2に属している。従って，データ１のゲインは，-1となり，現在ゲイン論理関数cur.f[i]の出力値は，全てx[3]（ピクセルx[3]=p1,2を有する組合せ領域なら全て「１」，有しない組合せ領域なら全て「０」）となる。即ち，次の通りである。
cur.f1=x[3]
cur.f2=x[3]
cur.f3=x[3]
cur.f4=x[3]
cur.f5=x[3]
cur.f6=x[3]
つまり，ピクセルx[3]=p1,2を有する組合せ領域なら，x[3]=１であるので，出力値はゲイン-1の2の補数の111111であるので，次の通りとなる。
cur.f1f2f3f4f5f6=111111
また，ピクセルx[3]= p1,2を有しない組合せ領域なら，x[3]=０であるので，出力値は000000であるので，次の通りとなる。
cur.f1f2f3f4f5f6=000000
ただし，図９には，紙面の都合上，符号ビットf1と数値ビットf2だけで省略している。つまり，
cur.f1f2=11
cur.f1f2=00
である。
【００４３】
データ１の現在ゲインcur.f1f2=11は，データ１が位置するピクセルp1,2に対する論理変数が「１」になっている場合である。従って，図９では，データ１の現在ゲインcur.f1f2=11は，論理変数x[1]=p1,1，x[2]=p2,1，x[3]=p1,2，x[4]=p2,2が0010,0011，0110，0111，1010，1011，1110，1111の場合に成立している。一方，データ１の現在ゲインcur.f1f2=00は，データ１が位置するピクセルp1,2に対する論理変数が「０」になっている場合である。従って，図９では，データ１の現在ゲインcur.f1f2=00は，上記以外の論理変数の組合せの場合に成立する。これが，データ１の現在ゲイン論理関数となる（S12）。
【００４４】
次に，データ１の現在ゲイン論理関数cur.f1f2を，初期値が全て00の累積ゲインold.f1f2に算術加算すると，新たな累積ゲインnew.f1f2が生成される（S16）。この新たな累積ゲインnew.f1f2は，次のデータ２では累積ゲインold.f1f2となる。
【００４５】
論理関数の算術加算は，以下の論理演算，排他的論理和演算とAND演算で行うことができる。
桁ｊについて最下位桁から最上位桁まで，以下の論理演算を繰り返す
new.f[j]=EOR(old.f[j]，cur.f[j]，carry[j-1])      （１）
carry[j]=old.f[j]＊cur.f[j]                        （２）
ここで，carry[j]はｊ桁でのキャリービット，EORは括弧内のビットの排他的論理和演算，＊はAND演算である。また，最下位桁のキャリービットは全て０である。
【００４６】
式（１）は，old.f[j]とcur.f[j]のEOR演算し，その結果とcarry[j-1]のEOR演算をすることを意味する。したがって，３つの値が全て「１」の場合と，１つの値のみ「１」の場合なら結果は「１」，２つの値が「１」の場合と，３つの値が全て「０」の場合は，結果は「０」になる。式（２）は，論理積（AND）演算であり，２つの値が全て「１」の場合のみ結果が「１」になり，それ以外は結果は「０」である。
【００４７】
上記の論理演算は，非特許文献１に記載されるように，BDDどうしで行うことができる。
【００４８】
図１０は，データ２のゲインを算術加算する例を示す図である。データ２はYesであり，ピクセルp2,2に属している。従って，データ２のゲインは，+1となるので，現在ゲイン論理関数cur.f[i]の出力値は，最下位ビットだけがx[4]=p2,2，残りのビットは全て「０」となる。つまり，以下の通りとなる。
cur.f1=0
cur.f2=0
cur.f3=0
cur.f4=0
cur.f5=0
cur.f6=x[4]
従って，ピクセルx[4]=p2,2を有する組合せ領域なら，x[4]=１であるので，出力値はゲイン+1の000001であるので，次の通りとなる。
cur.f1f2f3f4f5f6=000001
また，ピクセルx[4]=p2,2を有しない組合せ領域なら，x[4]=０であるので，出力値はゲイン０の000000であるので，次の通りとなる。
cur.f1f2f3f4f5f6=000000
ただし，図１０には，紙面の都合上，符号ビットf1と数値ビットf2だけで省略している。つまり，
cur.f1f2=01
cur.f1f2=00
である。
【００４９】
上記のデータ１の現在ゲインcur.f1f2=01は，データ２が位置するピクセルp2,2に対する論理変数が「１」になっている場合だけである。従って，図１０では，データ２の現在ゲインcur.f1f2=01は，論理変数x[1]=p1,1，x[2]=p2,1，x[3]=p1,2，x[4]=p2,2が0001,0011，0101，0111，1001，1011，1101，1111の場合に成立している。一方，データ２の現在ゲインcur.f1f2=00は，データ２が位置するピクセルp1,2に対する論理変数が「０」になっている場合である。従って，図１０では，データ２の現在ゲインcur.f1f2=00は，上記以外の論理変数の組合せの場合に成立する。これが，データ２の現在ゲイン論理関数となる（S12）。
【００５０】
次に，データ２の現在ゲイン論理関数cur.f1f2を，累積ゲインold.f1f2に算術加算すると，新たな累積ゲインnew.f1f2が生成される（S16）。論理関数の算術加算は，式（１）（２）と同じである。
【００５１】
図１１は，データ１６まで全てのゲインを算術加算した結果を示す図である。累積ゲインnew.f1f2f3f4が，図１１では出力値outputとして示されている。累積ゲインの数が大きくなり桁数は４桁で表されている。ただし，前述のとおり，累積ゲインの桁数は最大値と最小値に対応可能にするため６桁であることが望ましい。図１１の状態は，図５のフローチャートにおいて，工程S12,S14,S16が完了した状態である。
【００５２】
図９，１０では，算術加算が論理変数の全ての組合せ（論理変数の数が４つであるので，全ての組合せは１６通り）について，それぞれ加算しているように示されている。しかしながら，本実施の形態における最適領域抽出方法によれば，この算術加算は，BDDによる式（１）（２）の論理演算で行われる。BDDの論理演算は，BDD演算モジュール２０により実行され，その演算方法は非特許文献１に記載されている。
【００５３】
図１２は，データ１，２の算術加算をBDDで行う例を示す図である。図９，図１０のデータ１，２の算術加算は，old.f1f2とcur.f1f2とを加算してnew.f1f2を生成する演算である。図１２中には，それらの論理関数に対応するBDDが示されている。データ１の場合は，old.f1のBDDとold.f2のBDDの初期値が恒偽関数であるので，「０」の葉ノードのみである。一方，データ１のゲイン論理関数cur.f1，cur.f2は，共に，ピクセルp12の論理変数のみノードに有する。old.f1f2が恒偽関数であるので，
old.f1f2+cur.f1f2=cur.f1f2=new.f1f2となる。
【００５４】
データ２の場合は，データ１で求めた累積ゲイン論理関数old.f1f2のBDDに，データ２のゲイン論理関数cur.f1f2のBDDを算術加算する。この算術加算も，式（１）（２）による。データ２のゲイン論理関数cur.f1f2のBDDは，符号ビットが「０」であるのでf1が恒偽関数であり「０」の葉ノードのみであり，一方，数値ビットは最下位が「１」または「０」であるのでf2がピクセルp22の論理変数のみノードを有するBDDである。
【００５５】
次に，算術加算における式（１）のEOR論理演算をBDDで行う例について説明する。図１３は，BDDによるEOR論理演算の方法を示す図である。この例は，図１２のデータ２の算術加算で行われる最下位ビットf2のEOR論理演算方法を示している。
【００５６】
図１２では，累積ゲインold.f2をAに，データの現在ゲインcur.f2をBに対応付けている。BDDの論理演算では，同じ論理変数同士で論理演算を行うことになる。グラフBには論理変数p12がない。そこで，まず論理変数p12の「０」の枝に対して，破線ブロックNode0内に示す通り，グラフAにおいてp12＝０の場合のノード（葉ノード「０」のみ）と，グラフBにおいてp12＝０の場合のノード（変数p22のノードと葉ノード「０」「１」）とが抽出される。そして，一方のグラフ（グラフA）が葉ノードのみであれば，その葉ノードの値「０」が，他方のグラフ（グラフB）の葉ノードの値とEOR演算される。EOR演算では，一方の入力値が「０」であれば，他方の入力値がそのまま出力になるので，破線ブロックNode0は，破線ブロック内の論理変数p22のノードとその葉ノードと同じになる。
【００５７】
一方，論理変数p12の「１」の枝に対して，破線ブロックNode1内に示す通り，グラフAにおいてp12＝１の場合のノード（葉ノード「１」のみ）と，グラフBにおいてp12＝１の場合のノード（変数p22のノードと葉ノード「０」「１」）とが抽出される。そして，一方のグラフ（グラフA）が葉ノードのみであるので，その葉ノードの値「１」が，他方のグラフ（グラフB）の葉ノードの値とEOR演算される。EOR演算では，一方の入力値が「１」であれば，他方の入力値の反転が出力になるので，破線ブロックNode1は，論理変数p22のノードとその反転された葉ノードになる。
【００５８】
その結果，このEOR論理演算結果のBDDは，図１２のｆ２と同じBDDであることが理解できる。このように，BDDによる論理演算は，根ノードから順にそれぞれのBDDの対応する論理変数の枝に対応してグラフを決定するが，一方のBDDの論理変数の枝の先が葉ノードになれば，他方のBDDの論理変数の枝の先の論理変数の葉ノードと論理演算が行われる。したがって，BDD論理演算では，再帰的な演算によりBDDどうしの論理演算が実行される。
【００５９】
同様にして，最下位ビットf2のAND演算によりキャリービットのBDDが求められる。さらに，次の上位のビットf1については，キャリービットとold.f1とcur.f1とによるEOR演算と，old.f1とcur.f1とによるAND演算とが行われる。
【００６０】
図１４，図１５は，BDDの論理演算においてメモリに格納されるBDDのデータ構造を示す図である。BDDのデータ構造については図８で説明したとおりである。図１４，図１５には，図１２のデータ２の算術加算で行われる最下位ビットf2のEOR論理演算の例を示している。図１４には，old.f1，old.f2とcur.f1，cur.f2との算術加算のデータ構造が示され，図１５には，その算術加算結果であるnew.f1，new.f2が示されている。
【００６１】
図１３で説明した論理演算は，図１４，１５に示されたメモリ内のデータ構造に対して，非特許文献１に記載された方法を適用することにより行われる。
【００６２】
［最適領域抽出工程］
次に，図１１に示したとおり，全てのデータのゲインの累積が完了すると，全ての組合せ領域（単位領域（ピクセル）の全ての組合せ）に対する累積ゲインを出力する論理関数new.f1f2f3f4が得られる。そこで，この得られた累積ゲイン論理関数から，累積ゲインが最大の組合せ領域を抽出することが行われる。単純には，全ての論理変数の組合せに対する累積ゲインを検索して最大値になる論理変数の組合せを抽出すれば，最大ゲインを有する組合せ領域を最適領域として抽出できる。ただし，そのような演算を行うと計算時間も長くなる。
【００６３】
そこで，本実施の形態では，BDDの論理演算により最大ゲインを有する組合せ領域（最適領域）の検出を行う。BDDの論理演算であれば，BDDのノード数に比例する計算時間ですむ。
【００６４】
さらに，本実施の形態では，組合せ領域に対して，一塊のピクセルからなる領域という制約を課す例を説明する。つまり，構成するピクセルが離間している組合せ領域は，抽出対象の組合せ領域からは除外し，隣接するピクセルによる塊に限定するという連続制約が課される。
【００６５】
［連続制約のBDD生成工程S18］
図１６は，連続制約cを適用した場合を示す図である。累積ゲインを示すoutputに対して，連続制約Cを課した場合，論理変数p1,1，p2,1，p1,2，p2,2が0110と1001の組合せ領域が最適領域から除外される。
【００６６】
図１７は，連続制約cについて説明するための図である。図１７中，式（３）が連続制約ｃの論理関数を生成する式である。ここで，式（３）内の次の式（４）の意味は，次の通りである。
（p1,1→p2,1'p1,2'p2,2'+p2,1+p1,2）            （４）
すなわち，論理変数に対応付けられたピクセルp1,1が「１」の場合は，p2,1'p1,2'p2,2'=1，p2,1=1，p1,2=1のいずれかを満たす組合せ領域で制約なしを示す「１」とする。また，ピクセルp1,1が「０」の場合も制約なしを示す「１」とする。つまり，ピクセルp1,1と連続していない別のピクセルp2,2との組合せ領域だけが制約ありの「０」になる。
【００６７】
式（３）では，上記式（４）と同様の式が，残りのピクセルp2,1，p1,2，p2,2についても求められ，かつ，全てのピクセルについての式（４）のAND論理演算が行われる。その結果，図１６に示した連続制約ｃのBDDが生成される。
【００６８】
図１８は，上記の連続制約ｃのBDDを生成するフローチャート図である。連続制約ｃのBDDを生成する工程S18では，最初に，初期値として，連続制約ｃを恒真関数（全出力が１）のBDDとする（S181）。そして，ピクセル番号ｉ＝１〜ｒ（ｒはピクセル数）について，工程S183，S184の処理を実行する。工程S183は，上記の式（４）と同じであり，Σp∈adj[i]x[p]は対象とするピクセルiに隣接する全ての隣接ピクセルp=adj[j]について，x[p]の論理和をとった式を意味する。
【００６９】
制約ｃは，上記の連続制約以外の制約条件でもよい。例えば，ある次元が真の組合せ領域は制約するなどでもよい。その場合は，制約ｃのBDD生成の演算式は異なってくる。
【００７０】
一旦，連続制約ｃが生成されると，次に累積ゲインBDDと連続制約を表すBDDとでAND論理演算を行えば，制約された組合せ領域を抽出すべき最適領域の候補から除外することができる。図１７の下に記載したとおりである。
【００７１】
［累積ゲイン最大の組合せ領域の抽出工程S20,S22］
図１９は，累積ゲインが最大になる組合せ領域の抽出工程の例を示す図である。また，図２０は，累積ゲインが最大になる組合せ領域の抽出工程のフローチャート図である。この例では，連続制約ｃにより組合せ領域が連続するピクセルで構成されているという条件を付加している。
【００７２】
まず最初に，最大ゲイン論理関数new.f1f2f3f4のうち，符号ビットf1の反転f1'と連続制約ｃとのAND論理演算を行い，その結果のBDDを最適領域論理関数ｚのBDDに置き換える（S20）。つまり，符号ビットf1が正を示す「０」の組合せ領域だけを抽出するために符号ビットf1を反転し，さらに，連続制約ｃを課すために反転符号ビットf1'と連続制約ｃとのAND論理演算を行う。この論理演算はBDDどうしで行う。これにより，符号ビットf1が「０」で且つ連続制約ｃが「１」の組合せ領域に対して最適領域論理関数ｚが「１」になる。また，ゲインgainの初期値を０にする（S20）。
【００７３】
その後，最大ゲイン論理関数の２桁目から最下位桁ｍまで（i=2〜m）について，次の論理演算を実行する（S221,S222）。
Tmp←z*f[i]                  （５）
式（５）を符号ビットの次の最上位(i=2)から最下位(i=ｍ)まで繰り返しながら(S221,S225)，Tmpが恒偽BDDにならない限りは（S223のNo），そのTmpのBDDを最適領域論理関数ｚのBDDに置き換え，ゲインgainの値にもそのビットの重み２m-iを追加する（S224）。また，Tmpが恒偽BDDになる場合は（S223のNo），TmpのBDDを最適領域論理関数ｚのBDDに置き換えることと，ゲインgainの値にそのビットの重み２m-iを追加することは行わない。
【００７４】
すなわち，累積ゲインの最上位桁から最下位桁の順に，上記の処理を行うことで，最適領域論理関数ｚは，累積ゲインが最大になる組合せ領域だけ出力が「１」になる。つまり，Tmpが恒偽BDDになるということは，その時点での最適領域論理関数ｚが「１」の組合せ領域に対して，処理対象桁f[i]の値が「０」であることを意味し，その結果，符号ビットf1の反転ビットf1'と，連続制約ｃと，累積ゲインの残りの各桁の論理関数f2-f[i]とが全て「１」になる組合せ領域が存在しないことを意味している。従って，その場合は，Tmpを最適領域論理関数ｚへの置き換えを行うことなく，次の下位桁について式（５）の論理演算を行い，それが恒偽BDDか否かの判断（S223）を行う。
【００７５】
図１９の例では，ｚ＊ｆ２は，図中下線を引いた組合せ領域のみ「１」になっている。そして，ｚ＊ｆ３＝０，ｚ＊ｆ４＝０となったので，下線の組合せ領域が最大ゲインを有する最適領域と判定される。つまり，抽出された最大ゲインを有する最適領域は，論理変数p1,1，p2,1，p1,2，p2,2が1101の組合せ領域になっている。また，その場合の最大ゲインの値は，f2f3f4=100だったので，「４」である。この最大ゲインも，工程S224により累積ゲインの最下位桁の処理が完了した時点で，変数gainに代入済である。
【００７６】
上記の通り，最適領域抽出工程では，連続制約ｃと累積ゲインnew.f1f2f3f4の各桁とのAND論理演算をBDDにより行うことで，累積ゲインが最大になる組合せ領域を抽出することができる。また，最大ゲインの組合せ領域の抽出と同時に最大ゲインの値も得ることができる。
【００７７】
［変型例］
図２１は，累積ゲインが最大になる組合せ領域の抽出工程の別の例を示す図である。また，図２２は，累積ゲインが最大になる組合せ領域の抽出工程の別のフローチャート図である。この例では，連続制約ｃの条件を付加していない。従って，図２２のフローチャート図は，工程S20Aが図２０の工程S20と異なっている。それ以外は，図２０と同じである。それに伴い，図２１では，抽出された最大ゲインを有する最適領域が論理変数p1,1，p2,1，p1,2，p2,2が1001になっている。
【００７８】
まず最初に，最大ゲイン論理関数f1f2f3f4のうち，符号ビットf1の反転ビットf1'のBDDを最適領域論理関数ｚのBDDに置き換える（S20A）。ここでは連続制約ｃとAND演算されていない。つまり，符号ビットf1が正を示す「０」の組合せ領域だけを抽出している。また，ゲインgainの初期値を０にする（S20A）。
【００７９】
その後，最大ゲイン論理関数の２桁目から最下位桁ｍまで（i=2〜m）について，図２０と同様の論理演算と判定処理を行う。
【００８０】
図２１の例では，最下位桁のAND演算でｚ＊ｆ４が恒偽BDDになっている。従って，ｚ＝ｚ＊ｆ３が「１」の組合せ領域が最適領域として抽出される。また，その場合の最大ゲインの値は，f2f3f4=110だったので「６」である。
【００８１】
図２３は，本実施の形態における最適領域抽出装置の具体的な構成図である。上記の説明から明らかなとおり，本最適領域抽出装置は，複数次元の数値属性データに基づいて区分される複数の単位領域を組み合わせた複数の組合せ領域から，最大ゲインを有する組合せ領域を抽出する。最適領域抽出装置１は，複数次元の数値属性データに対する結果属性データの集合４０を入力する入力手段３０と，複数の単位領域に複数の論理変数を対応させ，複数の組合せ領域に対応する出力値に複数の論理変数に対する論理関数を対応させ，当該論理関数には，結果属性データの二値に応じて所定値を割り当てたゲインを出力値とするゲイン論理関数４２と，最適領域か否かを出力値とする最適領域抽出論理関数４４とを有し，各論理関数を，複数の論理変数をノードに，複数の論理変数の二値を枝に，出力値を葉ノードにそれぞれ対応させた二分決定グラフ（ＢＤＤ）で定義した初期値を入力する初期化手段３２とを有する。
【００８２】
更に，最適領域抽出装置１は，集合４０に含まれる結果属性データそれぞれについて，各結果属性データのゲインを出力値とする現在ゲイン論理関数４２と，各結果属性データのゲインの累積値を出力値とする累積ゲイン論理関数４２とを，最下位桁から最上位桁まで順次算術加算する加算論理演算を，二分決定グラフによる論理演算で行うゲイン加算手段３４と，結果属性データのゲインを累積加算した累積ゲイン論理関数４２について，最上位桁から最下位桁まで順次，累積ゲイン論理関数４２と最適領域抽出論理関数４４とのＡＮＤ演算を，二分決定グラフによるＡＮＤ演算で行い，当該最適領域抽出論理関数が恒偽関数でなければ当該ＡＮＤ演算後の最適領域抽出論理関数に更新し，恒偽関数であれば更新しない最適領域抽出手段３６と，最下位桁までＡＮＤ演算した後の最適領域抽出論理関数の出力が真となる組合せ領域を最適領域４６として出力する最適領域出力手段３８とを有する。
【００８３】
以上説明したとおり，本実施の形態によれば，複数の単位領域に論理変数を割り当て，複数の単位領域を組み合わせた複数の組合せ領域のゲインに論理関数を割り当て，論理関数をBDDで定義することで，複数のデータに対する組合せ領域での累積ゲインの算術加算演算と，最大累積ゲインを有する組合せ領域の抽出の演算とを，BDDによる論理演算で行う。したがって，大量のデータについて算術演算や論理演算をする必要がなく，メモリ容量を少なくすることができ，計算工数を少なくすることができる。
【符号の説明】
【００８４】
S10：入力工程，初期化工程                S12,S14,S16:ゲイン加算工程
S22：最適領域抽出工程                    S24:出力工程
【図１】
2013061464.tif 000003
【図２】
2013061464.tif 000004
【図３】
2013061464.tif 000005
【図４】
2013061464.tif 000006
【図５】
2013061464.tif 000007
【図６】
2013061464.tif 000008
【図７】
2013061464.tif 000009
【図８】
2013061464.tif 000010
【図９】
2013061464.tif 000011
【図１０】
2013061464.tif 000012
【図１１】
2013061464.tif 000013
【図１２】
2013061464.tif 000014
【図１３】
2013061464.tif 000015
【図１４】
2013061464.tif 000016
【図１５】
2013061464.tif 000017
【図１６】
2013061464.tif 000018
【図１７】
2013061464.tif 000019
【図１８】
2013061464.tif 000020
【図１９】
2013061464.tif 000021
【図２０】
2013061464.tif 000022
【図２１】
2013061464.tif 000023
【図２２】
2013061464.tif 000024
【図２３】
2013061464.tif 000025
【手続補正書】
【提出日】平成26年2月3日(2014.2.3)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数次元の数値属性データに基づいて区分される複数の単位領域を組み合わせた複数の組合せ領域から，最大ゲインを有する組合せ領域を抽出する処理がコンピュータによって実行される，最適領域抽出方法において，
前記コンピュータが，複数次元の数値属性データに対する結果属性データの集合を記憶する入力工程と，
前記コンピュータが，前記複数の単位領域に複数の論理変数を対応させ，前記複数の組合せ領域に対応する出力値に前記複数の論理変数に対する論理関数を対応させ，前記論理関数には，前記結果属性データの二値に応じて所定値を割り当てたゲインを出力値とするゲイン論理関数と，最適領域か否かを出力値とする最適領域抽出論理関数とを有し，前記各論理関数を，前記複数の論理変数をノードに，前記複数の論理変数の二値を枝に，前記出力値を葉ノードにそれぞれ対応させた二分決定グラフで定義した初期値を受信する初期化工程と，
前記コンピュータが，前記集合に含まれる結果属性データそれぞれについて，各結果属性データのゲインを出力値とする現在ゲイン論理関数と，前記各結果属性データのゲインの累積値を出力値とする累積ゲイン論理関数とを，最下位桁から最上位桁まで順次算術加算する加算論理演算を，前記二分決定グラフによる論理演算で行うゲイン加算工程と，
前記コンピュータが，前記結果属性データのゲインを累積加算した前記累積ゲイン論理関数について，最上位桁から最下位桁まで順次，前記累積ゲイン論理関数と前記最適領域抽出論理関数とのＡＮＤ演算を，前記二分決定グラフによるＡＮＤ演算で行い，当該最適領域抽出論理関数が恒偽関数でなければ当該ＡＮＤ演算後の最適領域抽出論理関数に更新し，前記恒偽関数であれば更新しない最適領域抽出工程と，
前記コンピュータが，前記最下位桁までＡＮＤ演算した後の前記最適領域抽出論理関数の出力が真となる前記組合せ領域を最適領域として出力する最適領域出力工程とを有する最適領域抽出方法。
【請求項２】
請求項１において，
前記コンピュータが，少なくとも前記ゲイン加算工程と最適領域抽出工程で，前記論理関数を定義する前記二分決定グラフを，関数名について，前記論理変数に対応するノードと出力値に対応する葉ノードとを前記論理変数の二値に応じて関連付けたデータ構造で，メモリ内に記憶する最適領域抽出方法。
【請求項３】
請求項１または２において
前記コンピュータが，前記最適領域抽出工程において，前記複数の組合せ領域のうち抽出が禁止される組合せ領域を示す制約を出力値に対応させた制約論理関数と，前記累積ゲイン論理関数の最上位桁とのＡＮＤ演算を，前記二分決定グラフで行って，前記最適領域抽出論理関数を生成する最適領域抽出方法。
【請求項４】
請求項３において，
前記最適領域抽出論理関数の初期値が恒真関数であり，
前記コンピュータが，前記累積ゲイン論理関数の最上位桁が符号ビットの場合は，当該最上位桁を反転して，前記制約論理関数とＡＮＤ演算を，前記二分決定グラフで行う最適領域抽出方法。
【請求項５】
請求項１において，
前記ゲイン加算工程における加算論理演算は，下位ビットからのキャリー論理関数と，現在ゲイン論理関数と，前記累積ゲイン論理関数との排他的論理和演算を行って，累積ゲイン論理関数を更新する第１の加算論理演算と，前記現在ゲイン論理関数と前記累積ゲイン論理関数とのＡＮＤ演算を行ってその桁のキャリー論理関数を求める第２の加算論理演算とを有する最適領域抽出方法。
【請求項６】
複数次元の数値属性データに基づいて区分される複数の単位領域を組み合わせた複数の組合せ領域から，最大ゲインを有する組合せ領域を抽出する最適領域抽出工程をコンピュータに実行させるコンピュータ読み取り可能な最適領域抽出プログラムにおいて，
前記最適領域抽出工程は，
前記コンピュータが，複数次元の数値属性データに対する結果属性データの集合を入力する入力工程と，
前記コンピュータが，前記複数の単位領域に複数の論理変数を対応させ，前記複数の組合せ領域に対応する出力値に前記複数の論理変数に対する論理関数を対応させ，前記論理関数には，前記結果属性データの二値に応じて所定値を割り当てたゲインを出力値とするゲイン論理関数と，最適領域か否かを出力値とする最適領域抽出論理関数とを有し，前記各論理関数を，前記複数の論理変数をノードに，前記複数の論理変数の二値を枝に，前記出力値を葉ノードにそれぞれ対応させた二分決定グラフで定義した初期値を入力する初期化工程と，
前記コンピュータが，前記集合に含まれる結果属性データそれぞれについて，各結果属性データのゲインを出力値とする現在ゲイン論理関数と，前記各結果属性データのゲインの累積値を出力値とする累積ゲイン論理関数とを，最下位桁から最上位桁まで順次算術加算する加算論理演算を，前記二分決定グラフによる論理演算で行うゲイン加算工程と，
前記コンピュータが，前記結果属性データのゲインを累積加算した前記累積ゲイン論理関数について，最上位桁から最下位桁まで順次，前記累積ゲイン論理関数と前記最適領域抽出論理関数とのＡＮＤ演算を，前記二分決定グラフによるＡＮＤ演算で行い，当該最適領域抽出論理関数が恒偽関数でなければ当該ＡＮＤ演算後の最適領域抽出論理関数に更新し，前記恒偽関数であれば更新しない最適領域抽出工程と，
前記コンピュータが，前記最下位桁までＡＮＤ演算した後の前記最適領域抽出論理関数の出力が真となる前記組合せ領域を最適領域として出力する最適領域出力工程とを有する最適領域抽出プログラム。
【請求項７】
請求項６において，
前記コンピュータが，少なくとも前記ゲイン加算工程と最適領域抽出工程で，前記論理関数を定義する前記二分決定グラフを，関数名について，前記論理変数に対応するノードと出力値に対応する葉ノードとを前記論理変数の二値に応じて関連付けたデータ構造で，メモリ内に記憶する最適領域抽出プログラム。
【請求項８】
複数次元の数値属性データに基づいて区分される複数の単位領域を組み合わせた複数の組合せ領域から，最大ゲインを有する組合せ領域を抽出する最適領域抽出装置において，
複数次元の数値属性データに対する結果属性データの集合を入力する入力手段と，
前記複数の単位領域に複数の論理変数を対応させ，前記複数の組合せ領域に対応する出力値に前記複数の論理変数に対する論理関数を対応させ，前記論理関数には，前記結果属性データの二値に応じて所定値を割り当てたゲインを出力値とするゲイン論理関数と，最適領域か否かを出力値とする最適領域抽出論理関数とを有し，前記各論理関数を，前記複数の論理変数をノードに，前記複数の論理変数の二値を枝に，前記出力値を葉ノードにそれぞれ対応させた二分決定グラフで定義した初期値を入力する初期化手段と，
前記集合に含まれる結果属性データそれぞれについて，各結果属性データのゲインを出力値とする現在ゲイン論理関数と，前記各結果属性データのゲインの累積値を出力値とする累積ゲイン論理関数とを，最下位桁から最上位桁まで順次算術加算する加算論理演算を，前記二分決定グラフによる論理演算で行うゲイン加算手段と，
前記結果属性データのゲインを累積加算した前記累積ゲイン論理関数について，最上位桁から最下位桁まで順次，前記累積ゲイン論理関数と前記最適領域抽出論理関数とのＡＮＤ演算を，前記二分決定グラフによるＡＮＤ演算で行い，当該最適領域抽出論理関数が恒偽関数でなければ当該ＡＮＤ演算後の最適領域抽出論理関数に更新し，前記恒偽関数であれば更新しない最適領域抽出手段と，
前記最下位桁までＡＮＤ演算した後の前記最適領域抽出論理関数の出力が真となる前記組合せ領域を最適領域として出力する最適領域出力手段とを有する最適領域抽出装置。
【請求項９】
請求項８において，
前記論理関数を定義する前記二分決定グラフが，関数名について，前記論理変数に対応するノードと出力値に対応する葉ノードとを前記論理変数の二値に応じて関連付けたデータ構造で，メモリ内に記憶される最適領域抽出装置。
【国際調査報告】
2013061464.tif 000026
2013061464.tif 000027
2013061464.tif 000028
2013061464.tif 000029