"複数次元の数値属性データに基づいて区分される複数の単位領域を組み合わせた複数の組合せ領域から,最大ゲインを有する組合せ領域を抽出する処理がコンピュータによって実行される,最適領域抽出方法において,前記コンピュータが,複数次元の数値属性データに対する結果属性データの集合を記憶する入力工程と,前記コンピュータが,前記複数の単位領域に複数の論理変数を対応させ,前記複数の組合せ領域に対応する出力値に前記複数の論理変数に対する論理関数を対応させ,前記論理関数には,前記結果属性データの二値に応じて所定値を割り当てたゲインを出力値とするゲイン論理関数と,最適領域か否かを出力値とする最適領域抽出論理関数とを有し,前記各論理関数を,前記複数の論理変数をノードに,前記複数の論理変数の二値を枝に,前記出力値を葉ノードにそれぞれ対応させた二分決定グラフで定義した初期値を受信する初期化工程と,前記コンピュータが,前記集合に含まれる結果属性データそれぞれについて,各結果属性データのゲインを出力値とする現在ゲイン論理関数と,前記各結果属性データのゲインの累積値を出力値とする累積ゲイン論理関数とを,最下位桁から最上位桁まで順次算術加算する加算論理演算を,前記二分決定グラフによる論理演算で行うゲイン加算工程と,前記コンピュータが,前記結果属性データのゲインを累積加算した前記累積ゲイン論理関数について,最上位桁から最下位桁まで順次,前記累積ゲイン論理関数と前記最適領域抽出論理関数とのAND演算を,前記二分決定グラフによるAND演算で行い,当該最適領域抽出論理関数が恒偽関数でなければ当該AND演算後の最適領域抽出論理関数に更新し,前記恒偽関数であれば更新しない最適領域抽出工程と,前記コンピュータが,前記最下位桁までAND演算した後の前記最適領域抽出論理関数の出力が真となる前記組合せ領域を最適領域として出力する最適領域出力工程とを有する最適領域抽出方法。請求項1において,前記コンピュータが,少なくとも前記ゲイン加算工程と最適領域抽出工程で,前記論理関数を定義する前記二分決定グラフを,関数名について,前記論理変数に対応するノードと出力値に対応する葉ノードとを前記論理変数の二値に応じて関連付けたデータ構造で,メモリ内に記憶する最適領域抽出方法。請求項1または2において前記コンピュータが,前記最適領域抽出工程において,前記複数の組合せ領域のうち抽出が禁止される組合せ領域を示す制約を出力値に対応させた制約論理関数と,前記累積ゲイン論理関数の最上位桁とのAND演算を,前記二分決定グラフで行って,前記最適領域抽出論理関数を生成する最適領域抽出方法。請求項3において,前記最適領域抽出論理関数の初期値が恒真関数であり,前記コンピュータが,前記累積ゲイン論理関数の最上位桁が符号ビットの場合は,当該最上位桁を反転して,前記制約論理関数とAND演算を,前記二分決定グラフで行う最適領域抽出方法。請求項1において,前記ゲイン加算工程における加算論理演算は,下位ビットからのキャリー論理関数と,現在ゲイン論理関数と,前記累積ゲイン論理関数との排他的論理和演算を行って,累積ゲイン論理関数を更新する第1の加算論理演算と,前記現在ゲイン論理関数と前記累積ゲイン論理関数とのAND演算を行ってその桁のキャリー論理関数を求める第2の加算論理演算とを有する最適領域抽出方法。請求項1において,前記累積ゲイン論理関数の初期値が恒偽関数である最適領域抽出方法。複数次元の数値属性データに基づいて区分される複数の単位領域を組み合わせた複数の組合せ領域から,最大ゲインを有する組合せ領域を抽出する最適領域抽出工程をコンピュータに実行させるコンピュータ読み取り可能な最適領域抽出プログラムにおいて,前記最適領域抽出工程は,前記コンピュータが,複数次元の数値属性データに対する結果属性データの集合を入力する入力工程と,前記コンピュータが,前記複数の単位領域に複数の論理変数を対応させ,前記複数の組合せ領域に対応する出力値に前記複数の論理変数に対する論理関数を対応させ,前記論理関数には,前記結果属性データの二値に応じて所定値を割り当てたゲインを出力値とするゲイン論理関数と,最適領域か否かを出力値とする最適領域抽出論理関数とを有し,前記各論理関数を,前記複数の論理変数をノードに,前記複数の論理変数の二値を枝に,前記出力値を葉ノードにそれぞれ対応させた二分決定グラフで定義した初期値を入力する初期化工程と,前記コンピュータが,前記集合に含まれる結果属性データそれぞれについて,各結果属性データのゲインを出力値とする現在ゲイン論理関数と,前記各結果属性データのゲインの累積値を出力値とする累積ゲイン論理関数とを,最下位桁から最上位桁まで順次算術加算する加算論理演算を,前記二分決定グラフによる論理演算で行うゲイン加算工程と,前記コンピュータが,前記結果属性データのゲインを累積加算した前記累積ゲイン論理関数について,最上位桁から最下位桁まで順次,前記累積ゲイン論理関数と前記最適領域抽出論理関数とのAND演算を,前記二分決定グラフによるAND演算で行い,当該最適領域抽出論理関数が恒偽関数でなければ当該AND演算後の最適領域抽出論理関数に更新し,前記恒偽関数であれば更新しない最適領域抽出工程と,前記コンピュータが,前記最下位桁までAND演算した後の前記最適領域抽出論理関数の出力が真となる前記組合せ領域を最適領域として出力する最適領域出力工程とを有する最適領域抽出プログラム。請求項7において,前記コンピュータが,少なくとも前記ゲイン加算工程と最適領域抽出工程で,前記論理関数を定義する前記二分決定グラフを,関数名について,前記論理変数に対応するノードと出力値に対応する葉ノードとを前記論理変数の二値に応じて関連付けたデータ構造で,メモリ内に記憶する最適領域抽出プログラム。複数次元の数値属性データに基づいて区分される複数の単位領域を組み合わせた複数の組合せ領域から,最大ゲインを有する組合せ領域を抽出する最適領域抽出装置において,複数次元の数値属性データに対する結果属性データの集合を入力する入力手段と,前記複数の単位領域に複数の論理変数を対応させ,前記複数の組合せ領域に対応する出力値に前記複数の論理変数に対する論理関数を対応させ,前記論理関数には,前記結果属性データの二値に応じて所定値を割り当てたゲインを出力値とするゲイン論理関数と,最適領域か否かを出力値とする最適領域抽出論理関数とを有し,前記各論理関数を,前記複数の論理変数をノードに,前記複数の論理変数の二値を枝に,前記出力値を葉ノードにそれぞれ対応させた二分決定グラフで定義した初期値を入力する初期化手段と,前記集合に含まれる結果属性データそれぞれについて,各結果属性データのゲインを出力値とする現在ゲイン論理関数と,前記各結果属性データのゲインの累積値を出力値とする累積ゲイン論理関数とを,最下位桁から最上位桁まで順次算術加算する加算論理演算を,前記二分決定グラフによる論理演算で行うゲイン加算手段と,前記結果属性データのゲインを累積加算した前記累積ゲイン論理関数について,最上位桁から最下位桁まで順次,前記累積ゲイン論理関数と前記最適領域抽出論理関数とのAND演算を,前記二分決定グラフによるAND演算で行い,当該最適領域抽出論理関数が恒偽関数でなければ当該AND演算後の最適領域抽出論理関数に更新し,前記恒偽関数であれば更新しない最適領域抽出手段と,前記最下位桁までAND演算した後の前記最適領域抽出論理関数の出力が真となる前記組合せ領域を最適領域として出力する最適領域出力手段とを有する最適領域抽出装置。請求項9において,前記論理関数を定義する前記二分決定グラフが,関数名について,前記論理変数に対応するノードと出力値に対応する葉ノードとを前記論理変数の二値に応じて関連付けたデータ構造で,メモリ内に記憶される最適領域抽出装置。しかしながら,従来の方法では,複数次元の数値属性データの場合は,2次元以上の領域は全ての組み合わせをチェックすることが必要になり,計算時間が長くなるという課題がある。また,抽出できる最適領域が矩形領域に限定されるため,矩形以外の領域に最適な領域が存在する場合は,必ずしも最適な領域を抽出できるとは限らない。そこで,本発明の目的は,計算処理工数が少ない最適領域抽出方法およびその装置を提供することにある。また,本発明の更なる目的は,計算処理工程が少なく,任意の形状の最適領域を抽出する最適領域抽出方法およびその装置を提供することにある。最適抽出方法の第1の側面によれば,複数次元の数値属性データに基づいて区分される複数の単位領域を組み合わせた複数の組合せ領域から,最大ゲインを有する組合せ領域を抽出する処理がコンピュータにより実行される最適領域抽出方法において,前記コンピュータが,複数次元の数値属性データに対する結果属性データの集合を記憶する入力工程と,前記コンピュータが,前記複数の単位領域に複数の論理変数を対応させ,前記複数の組合せ領域に対応する出力値に前記複数の論理変数に対する論理関数を対応させ,前記論理関数には,前記結果属性データの二値に応じて所定値を割り当てたゲインを出力値とするゲイン論理関数と,最適領域か否かを出力値とする最適領域抽出論理関数とを有し,前記各論理関数を,前記複数の論理変数をノードに,前記複数の論理変数の二値を枝に,前記出力値を葉ノードにそれぞれ対応させた二分決定グラフで定義した初期値を受信する初期化工程と,前記コンピュータが,前記集合に含まれる結果属性データそれぞれについて,各結果属性データのゲインを出力値とする現在ゲイン論理関数と,前記各結果属性データのゲインの累積値を出力値とする累積ゲイン論理関数とを,最下位桁から最上位桁まで順次算術加算する加算論理演算を,前記二分決定グラフによる論理演算で行うゲイン加算工程と,前記コンピュータが,前記結果属性データのゲインを累積加算した前記累積ゲイン論理関数について,最上位桁から最下位桁まで順次,前記累積ゲイン論理関数と前記最適領域抽出論理関数とのAND演算を,前記二分決定グラフによるAND演算で行い,当該最適領域抽出論理関数が恒偽関数でなければ当該AND演算後の最適領域抽出論理関数に更新し,前記恒偽関数であれば更新しない最適領域抽出工程と,前記コンピュータが,前記最下位桁までAND演算した後の前記最適領域抽出論理関数の出力が真となる前記組合せ領域を最適領域として出力する最適領域出力工程とを有する。第1の側面によれば,計算処理工数が少ない最適領域抽出方法およびその装置を提供することができる。図1は,本実施の形態の領域抽出の対象となる数値属性データと結果属性データの一例を示す図である。数値属性データX1X2に対応して二次元空間が定義される。そして,二次元空間内の複数の点図中はデータ1から16まで全部で16点は,それぞれ結果属性データとして,ある条件CONDが成立するか否か白丸がYes黒丸がNoの属性を有する。各点は,二次元空間内の座標を有し,各次元の数値属性データX1X2はその座標に対応する。具体的な例で説明すると,二次元空間の座標に対応する数値属性データX1X2として,例えば,性別,住所,年収,職業などが対応付けされ,結果属性データとして,例えばある条件COND高齢者はあるサービスを希望するが成り立つか否かYes,Noなどが対応付けられる。図1において,2つの数値属性データX1X2と結果属性データYes,Noとのペアリングが,白丸と黒丸の16個のデータとして示されている。つまり,16個のデータは,二次元空間内の座標に対応する数値属性データX1X2に対応して,ある条件CONDが成り立つYesまたは成り立たないNoという結果属性データを有する。その場合,上記の条件CONDが成立すれば利益ゲインを得るが,成立しなければ逆に損失ロス,負のゲインを被るような場合に,ゲインが最大になる領域を最適領域として抽出することができれば,その最適領域についてのみビジネスを展開することで,最大の利益を得ることができる。これが,本実施の形態の最適領域を抽出する意義である。図2は,図1の二次元空間を複数の単位領域に区分した例を示す図である。図2では,数値属性X1を区分1,2に分け,同様に,数値属性X2を区分1,2に分けて,二次元空間を2×2=4つの単位領域,,,に分けている。この単位領域をピクセルと称することにする。次に,各ピクセル単位領域のゲインについて説明する。各データのゲインは,条件CONDが成り立つYes場合は,係数a=1を割り当てられ,成り立たないNo場合は,係数b=-1を割り当てられる。つまり,条件が成り立てば正の利益ゲインが得られるが,成り立たない場合は,そのビジネスを実行するための経費のみが発生するので,損失,つまり負の利益ゲインになる。従って,各ピクセルのゲインは,次の式で求めることができる。ゲイン=aYesのデータの数bNoのデータの数図3は,図2の各ピクセルのゲインの演算を示す図である。4つのピクセル,,,のゲインは,それぞれ3,-2,-4,3になっている。そこで,ピクセル単位領域の組合せからなる複数の組合せ領域の中から,上記したゲインが最大値をとる組合せ領域を最適領域として抽出するためには,4つのピクセルの全ての組合せについてゲインを計算し,各ゲインを比較して最適領域を抽出することが必要になる。しかし,数値属性データの数が膨大でピクセルの数が膨大になり,且つデータの数が膨大になると,上記の最適領域を抽出するための計算工数が膨大になるとともに,計算中に一時的に記憶しておくデータ量も大きくなり大きなメモリ容量が必要になる。[実施の形態例]図4は,本実施の形態における最適領域抽出装置の構成図である。最適領域抽出装置1は,バス14を介して接続されたプロセッサユニット10と,データ等の外部からの入力と外部への出力を行う入出力装置12と,論理関数に対応する二分決定グラフBDD,BinaryDecisionDiagram,ゲイン,その他のデータやパラメータなどを,最適領域抽出の演算工程中に一時的に蓄積する内部メモリ16とを有するコンピュータシステムである。さらに,最適領域抽出装置1は,最適領域抽出プログラムを格納するメモリ18と,BDD演算モジュールを格納するメモリ20を有する。最適領域抽出プログラム18は,最大ゲインを有する最適領域を抽出するためのプログラムである。この最適領域抽出プログラムについては,本実施の形態に沿って詳述する。また,BDD演算モジュール20は,BDDの論理演算プログラムであり,BDDの論理演算方法及びそのプログラムについては,前述の非特許文献1に記載されているとおり公知である。図5は,本実施の形態における最適領域抽出方法または最適領域抽出プログラムの手順を示すフローチャート図である。すなわち,図4の最適領域抽出プログラム18の手順を示している。このフローチャートに示した各工程S10~S24に従って,以下説明する。図6は,複数のピクセルと複数の論理変数との対応を示す図である。本最適領域抽出方法の前提として,複数次元の数値属性データX1X2に基づいて区分される複数の単位領域4つのピクセル,,,に,論理変数p11,p21,p12,p22を割り当てる。そして,この4つの論理変数を入力とし,ゲインや制約例えばピクセルは連続しなければならないとする連続制約や最適領域を出力とする論理関数fp11,p21,p12,p22を利用する。論理関数の出力は10からなる1ビットの出力である。この論理関数fは,4つの論理変数p11,p21,p12,p22の10の組み合わせに対して,それぞれ出力を有する。論理関数の出力を10からなる論理出力にすることで,論理関数を,後述する二分決定グラフBDDで定義することができる。そして,論理関数の出力値は1ビットであるので,単一の論理関数により,制約がある1,なし0や,最適領域である1,ない0を処理することができる。さらに,複数の論理関数の論理出力により,累積ゲインなどの複数ビットを必要とする数量を処理することができる。前述のとおり,4つのピクセル単位領域に4つの論理変数p11,p21,p12,p22を対応付けているので,4つの論理変数の10は,対応するピクセルが含まれる1ことと,含まれない0ことを示す。したがって,4つの論理変数の10の全ての組合せは,4つのピクセルを組み合わせた全ての組合せ領域を表すことができ,全ての組合せ領域に対する出力ゲイン,制約有り無し,最適領域であるないに論理関数を割り当てることができる。そして,そのような論理関数は,二分決定グラフBDDで定義することができる。二分決定グラフBDDで定義できれば,非特許文献1に記載されている演算方法により,少ない演算時間で,また少ないメモリ容量で,演算を実行することができる。図7は,二分決定グラフBDDを説明する図である。このBDDの例は,3つの論理変数X1X2X3を入力とする論理関数fX1X2X3を定義している。図7中の論理関数の真理値表によれば,入力の論理変数X1X2X3が010100101110の場合に,論理関数fの出力が1に,それ以外の場合に0になっている。そこで,この論理関数fをBDDで定義すると,図中の二分木のように定義することができる。このBDDによれば,論理関数fは,根ノードの論理変数X1の10の枝の先に論理変数X2のノードがあり,更にそのノードの2つの枝の先に論理変数X3のノードがある。論理変数X3は最下位の変数であるので,そのノードの枝の先は,論理関数fの出力値10の葉ノードがそれぞれつながっている。そして,上記の論理変数X1X2X3のそれぞれの枝の組合せが,根ノードから葉ノードまでのパスを規定する。従って,前述のとおり,010100101110となるのパスの先の葉ノードが1となり,それ以外のパスの先の葉ノードは0となる。さらに,BDDでは,等価ノードと冗長ノードを削除することで圧縮することができる。等価ノードとは,ノードと2つの枝の先のノードとが等価なものであり,図7の左側のBDDでは,ノードn2,n4が等価ノードである。そこで,これらの等価ノードn2,n4を合体させて真ん中のBDD1ではノードn24に変更されている。さらに,左側のBDDでは,ノードn1,n3は,2つの枝の先が同じである。つまり,ノードn1の2つの枝の先の葉ノードは共に0であり,ノードn4の2つの枝の先の葉ノードは共に1である。そこで,真ん中のBDD1では,ノードn1の2つの枝は単一の葉ノード0に,ノードn3の2つの枝は単一の葉ノード1につながっている。また,真ん中のBDD1のノードn1,n3は,それぞれ,いずれの枝も葉ノード0または1につながる。従って,このようなノードn1,n3は冗長ノードである。そこで,右側のBDD2では,これらのノードn1,n3が削除されて,論理変数X2から0の枝で直接葉ノード01に接続されている。その結果,右側の圧縮されたBDD2は,左側のBDDと比較すると,その規模を縮小することができる。この右側のBDD2において,根ノードX1からの3つのパスX1X2X3=010X1X2=10X1X2X3=110で,葉ノード1につながることが理解できる。つまり,論理関数fは,図7に示されるとおり,f=X1X2X3X1X2X1X2X3に圧縮することができる。ここで,X1とはX1のnotである。BDDは,メモリ内にデータ構造として格納可能である。また,BDDは,非特許文献1に記載されるように,BDDどうしで論理演算が可能である。BDDのサイズは図7に示したように圧縮することができるので,そのデータ構造も小さくすることができる。また,BDDどうしで論理演算することで,論理変数の全ての組合せについて一括して論理演算を行うことができる。たとえば,図7において論理変数X1X2X3の8つの組合せについて,一括して論理演算可能である。BDDの論理演算は,図4のBDD演算モジュールにより処理することができ,BDD演算モジュールでは,圧縮されたBDDを演算して,圧縮されたBDDを出力する。図8は,BDDのデータ構造の一例を示す図である。図8のデータ構造は,論理関数fと,論理変数X1X2X3と,2つの葉ノードとが,それぞれデータエレメントを構成し,論理関数fは根ノードのポインタを,論理変数X1X2X3はそれぞれの枝の先の子ノードのポインタを有する。このように,論理関数をBDDで定義することで,そのデータ構造を小さくでき,メモリ容量を小さくすることができる。さらに,論理関数をBDDで定義することで,論理変数の組合せ全てに対する出力値について演算せずに,圧縮されたBDDどうしで論理演算すればよく,計算工数を減らすことができる。[初期化工程]図5のフローチャートに示されるとおり,本実施の形態での最適領域抽出方法では,初期化工程S10において,まず,複数次元の数値属性データに対する結果属性データの集合を外部メモリ図4中には示していないなどの大容量メモリに入力する。図1,2,3に示した16データの集合が対応する。次に,最適領域抽出工程中に使用する論理関数に対応するBDDを定義する。定義すべき論理関数は,組合せ領域内のゲインの合計値に対応する累積ゲイン論理関数,データそれぞれのゲインに対応する現在ゲイン論理関数,組合せ領域の制約禁止を示す制約論理関数,最適領域を示す最適領域論理関数などである。累積ゲイン論理関数と現在ゲイン論理関数は,累積ゲインの最大値に応じたビット数だけ必要になる。これらは全てBDDでメモリに格納される。さらに,初期化工程S10では,各ピクセル単位領域に論理変数xpを割り当てる。つまり,図6の例では,x1p11x2p21x3p12x4p22である。そして,各ピクセルpに隣接するピクセルadjpをメモリに格納する。また,データ数をn,数値属性データの次元数をd,ピクセル数をr=NdNは各次元の区分数,累積ゲインと現在ゲインの桁数をmm=log21と定義する。ゲインは,結果属性データがYesならa1,Noならb1であるので,累積ゲインの最大値はnnはデータ数で最小値は-nである。つまり,データ数n16の場合であれば,累積ゲインは,16~16である。そのためには,二進数では5桁必要であり,それに符号ビットを加えると,6桁が必要になる。従って,累積ゲイン及び現在ゲインの論理関数の数桁数はm=6になる。初期化工程S10では,さらに,累積ゲイン論理関数f1~fmを全て恒偽関数全ての出力が偽0に初期化する。つまり,累積ゲインは符号ビットが0プラス,それ以外の5桁が0に初期化される。[ゲインの算術加算工程]次に,図5のフローチャートに示されるとおり,データ番号i1~16について,各データのゲインを論理関数curfiとして生成しS14,各データのゲインcurfiを累積ゲインoldfiに加算して新たな累積ゲインnewfiとするS16処理を繰り返す。この算術加算は,6ビットの論理関数について後述する加算用の論理演算を行えばよい。図9は,データ1のゲインを算術加算する例を示す図である。データ1はNoであり,ピクセルx3p12に属している。従って,データ1のゲインは,1となり,現在ゲイン論理関数curfiの出力値は,全てx3ピクセルx3p12を有する組合せ領域なら全て1,有しない組合せ領域なら全て0となる。即ち,次の通りである。curf1x3curf2x3curf3x3curf4x3curf5x3curf6x3つまり,ピクセルx3p12を有する組合せ領域なら,x31であるので,出力値はゲイン1の2の補数の111111であるので,次の通りとなる。curf1f2f3f4f5f6111111また,ピクセルx3p12を有しない組合せ領域なら,x30であるので,出力値は000000であるので,次の通りとなる。curf1f2f3f4f5f6000000ただし,図9には,紙面の都合上,符号ビットf1と数値ビットf2だけで省略している。つまり,curf1f211curf1f200である。データ1の現在ゲインcurf1f211は,データ1が位置するピクセルp12に対する論理変数が1になっている場合である。従って,図9では,データ1の現在ゲインcurf1f211は,論理変数x1p11,x2p21,x3p12,x4p22が00100011,0110,0111,1010,1011,1110,1111の場合に成立している。一方,データ1の現在ゲインcurf1f200は,データ1が位置するピクセルp12に対する論理変数が0になっている場合である。従って,図9では,データ1の現在ゲインcurf1f200は,上記以外の論理変数の組合せの場合に成立する。これが,データ1の現在ゲイン論理関数となるS12。次に,データ1の現在ゲイン論理関数curf1f2を,初期値が全て00の累積ゲインoldf1f2に算術加算すると,新たな累積ゲインnewf1f2が生成されるS16。この新たな累積ゲインnewf1f2は,次のデータ2では累積ゲインoldf1f2となる。論理関数の算術加算は,以下の論理演算,排他的論理和演算とAND演算で行うことができる。桁jについて最下位桁から最上位桁まで,以下の論理演算を繰り返すnewfjEOR1carryjoldfjcurfj2ここで,carryjはj桁でのキャリービット,EORは括弧内のビットの排他的論理和演算,はAND演算である。また,最下位桁のキャリービットは全て0である。式1は,oldfjとcurfjのEOR演算し,その結果とcarryj1のEOR演算をすることを意味する。したがって,3つの値が全て1の場合と,1つの値のみ1の場合なら結果は1,2つの値が1の場合と,3つの値が全て0の場合は,結果は0になる。式2は,論理積AND演算であり,2つの値が全て1の場合のみ結果が1になり,それ以外は結果は0である。上記の論理演算は,非特許文献1に記載されるように,BDDどうしで行うことができる。図10は,データ2のゲインを算術加算する例を示す図である。データ2はYesであり,ピクセルp22に属している。従って,データ2のゲインは,1となるので,現在ゲイン論理関数curfiの出力値は,最下位ビットだけがx4p22,残りのビットは全て0となる。つまり,以下の通りとなる。curf10curf20curf30curf40curf50curf6x4従って,ピクセルx4p22を有する組合せ領域なら,x41であるので,出力値はゲイン1の000001であるので,次の通りとなる。curf1f2f3f4f5f6000001また,ピクセルx4p22を有しない組合せ領域なら,x40であるので,出力値はゲイン0の000000であるので,次の通りとなる。curf1f2f3f4f5f6000000ただし,図10には,紙面の都合上,符号ビットf1と数値ビットf2だけで省略している。つまり,curf1f201curf1f200である。上記のデータ1の現在ゲインcurf1f201は,データ2が位置するピクセルp22に対する論理変数が1になっている場合だけである。従って,図10では,データ2の現在ゲインcurf1f201は,論理変数x1p11,x2p21,x3p12,x4p22が00010011,0101,0111,1001,1011,1101,1111の場合に成立している。一方,データ2の現在ゲインcurf1f200は,データ2が位置するピクセルp12に対する論理変数が0になっている場合である。従って,図10では,データ2の現在ゲインcurf1f200は,上記以外の論理変数の組合せの場合に成立する。これが,データ2の現在ゲイン論理関数となるS12。次に,データ2の現在ゲイン論理関数curf1f2を,累積ゲインoldf1f2に算術加算すると,新たな累積ゲインnewf1f2が生成されるS16。論理関数の算術加算は,式12と同じである。図11は,データ16まで全てのゲインを算術加算した結果を示す図である。累積ゲインnewf1f2f3f4が,図11では出力値outputとして示されている。累積ゲインの数が大きくなり桁数は4桁で表されている。ただし,前述のとおり,累積ゲインの桁数は最大値と最小値に対応可能にするため6桁であることが望ましい。図11の状態は,図5のフローチャートにおいて,工程S12S14S16が完了した状態である。図9,10では,算術加算が論理変数の全ての組合せ論理変数の数が4つであるので,全ての組合せは16通りについて,それぞれ加算しているように示されている。しかしながら,本実施の形態における最適領域抽出方法によれば,この算術加算は,BDDによる式12の論理演算で行われる。BDDの論理演算は,BDD演算モジュール20により実行され,その演算方法は非特許文献1に記載されている。図12は,データ1,2の算術加算をBDDで行う例を示す図である。図9,図10のデータ1,2の算術加算は,oldf1f2とcurf1f2とを加算してnewf1f2を生成する演算である。図12中には,それらの論理関数に対応するBDDが示されている。データ1の場合は,oldf1のBDDとoldf2のBDDの初期値が恒偽関数であるので,0の葉ノードのみである。一方,データ1のゲイン論理関数curf1,curf2は,共に,ピクセルp12の論理変数のみノードに有する。oldf1f2が恒偽関数であるので,oldf1f2curf1f2curf1f2newf1f2となる。データ2の場合は,データ1で求めた累積ゲイン論理関数oldf1f2のBDDに,データ2のゲイン論理関数curf1f2のBDDを算術加算する。この算術加算も,式12による。データ2のゲイン論理関数curf1f2のBDDは,符号ビットが0であるのでf1が恒偽関数であり0の葉ノードのみであり,一方,数値ビットは最下位が1または0であるのでf2がピクセルp22の論理変数のみノードを有するBDDである。次に,算術加算における式1のEOR論理演算をBDDで行う例について説明する。図13は,BDDによるEOR論理演算の方法を示す図である。この例は,図12のデータ2の算術加算で行われる最下位ビットf2のEOR論理演算方法を示している。図12では,累積ゲインoldf2をAに,データの現在ゲインcurf2をBに対応付けている。BDDの論理演算では,同じ論理変数同士で論理演算を行うことになる。グラフBには論理変数p12がない。そこで,まず論理変数p12の0の枝に対して,破線ブロックNode0内に示す通り,グラフAにおいてp12=0の場合のノード葉ノード0のみと,グラフBにおいてp12=0の場合のノード変数p22のノードと葉ノード01とが抽出される。そして,一方のグラフグラフAが葉ノードのみであれば,その葉ノードの値0が,他方のグラフグラフBの葉ノードの値とEOR演算される。EOR演算では,一方の入力値が0であれば,他方の入力値がそのまま出力になるので,破線ブロックNode0は,破線ブロック内の論理変数p22のノードとその葉ノードと同じになる。一方,論理変数p12の1の枝に対して,破線ブロックNode1内に示す通り,グラフAにおいてp12=1の場合のノード葉ノード1のみと,グラフBにおいてp12=1の場合のノード変数p22のノードと葉ノード01とが抽出される。そして,一方のグラフグラフAが葉ノードのみであるので,その葉ノードの値1が,他方のグラフグラフBの葉ノードの値とEOR演算される。EOR演算では,一方の入力値が1であれば,他方の入力値の反転が出力になるので,破線ブロックNode1は,論理変数p22のノードとその反転された葉ノードになる。その結果,このEOR論理演算結果のBDDは,図12のf2と同じBDDであることが理解できる。このように,BDDによる論理演算は,根ノードから順にそれぞれのBDDの対応する論理変数の枝に対応してグラフを決定するが,一方のBDDの論理変数の枝の先が葉ノードになれば,他方のBDDの論理変数の枝の先の論理変数の葉ノードと論理演算が行われる。したがって,BDD論理演算では,再帰的な演算によりBDDどうしの論理演算が実行される。同様にして,最下位ビットf2のAND演算によりキャリービットのBDDが求められる。さらに,次の上位のビットf1については,キャリービットとoldf1とcurf1とによるEOR演算と,oldf1とcurf1とによるAND演算とが行われる。図14,図15は,BDDの論理演算においてメモリに格納されるBDDのデータ構造を示す図である。BDDのデータ構造については図8で説明したとおりである。図14,図15には,図12のデータ2の算術加算で行われる最下位ビットf2のEOR論理演算の例を示している。図14には,oldf1,oldf2とcurf1,curf2との算術加算のデータ構造が示され,図15には,その算術加算結果であるnewf1,newf2が示されている。図13で説明した論理演算は,図14,15に示されたメモリ内のデータ構造に対して,非特許文献1に記載された方法を適用することにより行われる。[最適領域抽出工程]次に,図11に示したとおり,全てのデータのゲインの累積が完了すると,全ての組合せ領域単位領域ピクセルの全ての組合せに対する累積ゲインを出力する論理関数newf1f2f3f4が得られる。そこで,この得られた累積ゲイン論理関数から,累積ゲインが最大の組合せ領域を抽出することが行われる。単純には,全ての論理変数の組合せに対する累積ゲインを検索して最大値になる論理変数の組合せを抽出すれば,最大ゲインを有する組合せ領域を最適領域として抽出できる。ただし,そのような演算を行うと計算時間も長くなる。そこで,本実施の形態では,BDDの論理演算により最大ゲインを有する組合せ領域最適領域の検出を行う。BDDの論理演算であれば,BDDのノード数に比例する計算時間ですむ。さらに,本実施の形態では,組合せ領域に対して,一塊のピクセルからなる領域という制約を課す例を説明する。つまり,構成するピクセルが離間している組合せ領域は,抽出対象の組合せ領域からは除外し,隣接するピクセルによる塊に限定するという連続制約が課される。[連続制約のBDD生成工程S18]図16は,連続制約cを適用した場合を示す図である。累積ゲインを示すoutputに対して,連続制約Cを課した場合,論理変数p11,p21,p12,p22が0110と1001の組合せ領域が最適領域から除外される。図17は,連続制約cについて説明するための図である。図17中,式3が連続制約cの論理関数を生成する式である。ここで,式3内の次の式4の意味は,次の通りである。p11→p21p12p22p21p124すなわち,論理変数に対応付けられたピクセルp11が1の場合は,p21p12p221,p211,p121のいずれかを満たす組合せ領域で制約なしを示す1とする。また,ピクセルp11が0の場合も制約なしを示す1とする。つまり,ピクセルp11と連続していない別のピクセルp22との組合せ領域だけが制約ありの0になる。式3では,上記式4と同様の式が,残りのピクセルp21,p12,p22についても求められ,かつ,全てのピクセルについての式4のAND論理演算が行われる。その結果,図16に示した連続制約cのBDDが生成される。図18は,上記の連続制約cのBDDを生成するフローチャート図である。連続制約cのBDDを生成する工程S18では,最初に,初期値として,連続制約cを恒真関数全出力が1のBDDとするS181。そして,ピクセル番号i=1~rrはピクセル数について,工程S183,S184の処理を実行する。工程S183は,上記の式4と同じであり,Σp∈adjixpは対象とするピクセルiに隣接する全ての隣接ピクセルpadjjについて,xpの論理和をとった式を意味する。制約cは,上記の連続制約以外の制約条件でもよい。例えば,ある次元が真の組合せ領域は制約するなどでもよい。その場合は,制約cのBDD生成の演算式は異なってくる。一旦,連続制約cが生成されると,次に累積ゲインBDDと連続制約を表すBDDとでAND論理演算を行えば,制約された組合せ領域を抽出すべき最適領域の候補から除外することができる。図17の下に記載したとおりである。[累積ゲイン最大の組合せ領域の抽出工程S20S22]図19は,累積ゲインが最大になる組合せ領域の抽出工程の例を示す図である。また,図20は,累積ゲインが最大になる組合せ領域の抽出工程のフローチャート図である。この例では,連続制約cにより組合せ領域が連続するピクセルで構成されているという条件を付加している。まず最初に,最大ゲイン論理関数newf1f2f3f4のうち,符号ビットf1の反転f1と連続制約cとのAND論理演算を行い,その結果のBDDを最適領域論理関数zのBDDに置き換えるS20。つまり,符号ビットf1が正を示す0の組合せ領域だけを抽出するために符号ビットf1を反転し,さらに,連続制約cを課すために反転符号ビットf1と連続制約cとのAND論理演算を行う。この論理演算はBDDどうしで行う。これにより,符号ビットf1が0で且つ連続制約cが1の組合せ領域に対して最適領域論理関数zが1になる。また,ゲインgainの初期値を0にするS20。その後,最大ゲイン論理関数の2桁目から最下位桁mまでi2~mについて,次の論理演算を実行するS221S222。Tmp←zfi5式5を符号ビットの次の最上位から最下位まで繰り返しながら,Tmpが恒偽BDDにならない限りはS223のNo,そのTmpのBDDを最適領域論理関数zのBDDに置き換え,ゲインgainの値にもそのビットの重み2miを追加するS224。また,Tmpが恒偽BDDになる場合はS223のNo,TmpのBDDを最適領域論理関数zのBDDに置き換えることと,ゲインgainの値にそのビットの重み2miを追加することは行わない。すなわち,累積ゲインの最上位桁から最下位桁の順に,上記の処理を行うことで,最適領域論理関数zは,累積ゲインが最大になる組合せ領域だけ出力が1になる。つまり,Tmpが恒偽BDDになるということは,その時点での最適領域論理関数zが1の組合せ領域に対して,処理対象桁fiの値が0であることを意味し,その結果,符号ビットf1の反転ビットf1と,連続制約cと,累積ゲインの残りの各桁の論理関数f2fiとが全て1になる組合せ領域が存在しないことを意味している。従って,その場合は,Tmpを最適領域論理関数zへの置き換えを行うことなく,次の下位桁について式5の論理演算を行い,それが恒偽BDDか否かの判断S223を行う。図19の例では,zf2は,図中下線を引いた組合せ領域のみ1になっている。そして,zf3=0,zf4=0となったので,下線の組合せ領域が最大ゲインを有する最適領域と判定される。つまり,抽出された最大ゲインを有する最適領域は,論理変数p11,p21,p12,p22が1101の組合せ領域になっている。また,その場合の最大ゲインの値は,f2f3f4100だったので,4である。この最大ゲインも,工程S224により累積ゲインの最下位桁の処理が完了した時点で,変数gainに代入済である。上記の通り,最適領域抽出工程では,連続制約cと累積ゲインnewf1f2f3f4の各桁とのAND論理演算をBDDにより行うことで,累積ゲインが最大になる組合せ領域を抽出することができる。また,最大ゲインの組合せ領域の抽出と同時に最大ゲインの値も得ることができる。[変型例]図21は,累積ゲインが最大になる組合せ領域の抽出工程の別の例を示す図である。また,図22は,累積ゲインが最大になる組合せ領域の抽出工程の別のフローチャート図である。この例では,連続制約cの条件を付加していない。従って,図22のフローチャート図は,工程S20Aが図20の工程S20と異なっている。それ以外は,図20と同じである。それに伴い,図21では,抽出された最大ゲインを有する最適領域が論理変数p11,p21,p12,p22が1001になっている。まず最初に,最大ゲイン論理関数f1f2f3f4のうち,符号ビットf1の反転ビットf1のBDDを最適領域論理関数zのBDDに置き換えるS20A。ここでは連続制約cとAND演算されていない。つまり,符号ビットf1が正を示す0の組合せ領域だけを抽出している。また,ゲインgainの初期値を0にするS20A。その後,最大ゲイン論理関数の2桁目から最下位桁mまでi2~mについて,図20と同様の論理演算と判定処理を行う。図21の例では,最下位桁のAND演算でzf4が恒偽BDDになっている。従って,z=zf3が1の組合せ領域が最適領域として抽出される。また,その場合の最大ゲインの値は,f2f3f4110だったので6である。図23は,本実施の形態における最適領域抽出装置の具体的な構成図である。上記の説明から明らかなとおり,本最適領域抽出装置は,複数次元の数値属性データに基づいて区分される複数の単位領域を組み合わせた複数の組合せ領域から,最大ゲインを有する組合せ領域を抽出する。最適領域抽出装置1は,複数次元の数値属性データに対する結果属性データの集合40を入力する入力手段30と,複数の単位領域に複数の論理変数を対応させ,複数の組合せ領域に対応する出力値に複数の論理変数に対する論理関数を対応させ,当該論理関数には,結果属性データの二値に応じて所定値を割り当てたゲインを出力値とするゲイン論理関数42と,最適領域か否かを出力値とする最適領域抽出論理関数44とを有し,各論理関数を,複数の論理変数をノードに,複数の論理変数の二値を枝に,出力値を葉ノードにそれぞれ対応させた二分決定グラフBDDで定義した初期値を入力する初期化手段32とを有する。更に,最適領域抽出装置1は,集合40に含まれる結果属性データそれぞれについて,各結果属性データのゲインを出力値とする現在ゲイン論理関数42と,各結果属性データのゲインの累積値を出力値とする累積ゲイン論理関数42とを,最下位桁から最上位桁まで順次算術加算する加算論理演算を,二分決定グラフによる論理演算で行うゲイン加算手段34と,結果属性データのゲインを累積加算した累積ゲイン論理関数42について,最上位桁から最下位桁まで順次,累積ゲイン論理関数42と最適領域抽出論理関数44とのAND演算を,二分決定グラフによるAND演算で行い,当該最適領域抽出論理関数が恒偽関数でなければ当該AND演算後の最適領域抽出論理関数に更新し,恒偽関数であれば更新しない最適領域抽出手段36と,最下位桁までAND演算した後の最適領域抽出論理関数の出力が真となる組合せ領域を最適領域46として出力する最適領域出力手段38とを有する。以上説明したとおり,本実施の形態によれば,複数の単位領域に論理変数を割り当て,複数の単位領域を組み合わせた複数の組合せ領域のゲインに論理関数を割り当て,論理関数をBDDで定義することで,複数のデータに対する組合せ領域での累積ゲインの算術加算演算と,最大累積ゲインを有する組合せ領域の抽出の演算とを,BDDによる論理演算で行う。したがって,大量のデータについて算術演算や論理演算をする必要がなく,メモリ容量を少なくすることができ,計算工数を少なくすることができる。"