(57)【特許請求の範囲】
【請求項１】
半正定値計画問題の目的関数を線形近似した結果を表す各係数を並べた行列と、その行列の転置行列とを求めると共に、該行列と該転置行列との和を算出する行列演算手段と、
前記行列演算手段の演算結果が表す行列に関して、固有値と固有ベクトルとを算出すると共に、算出結果の中から特定の固有ベクトルを選択し、選択した特定の固有ベクトルが表す情報を、前記半正定値計画問題の線形制約条件を表す情報とするベクトル演算手段とを備える
ことを特徴とする線形制約条件生成装置。
【請求項２】
前記ベクトル演算手段は、
前記特定の固有ベクトルとして、最大または最小の固有値に対応する固有ベクトル、或いは、大きい固有値から順に、幾つかの固有値に対応する複数の固有ベクトルを選択する
ことを特徴とする請求項１記載の線形制約条件生成装置。
【請求項３】
前記ベクトル演算手段は、
前記特定の固有ベクトルをベクトルｖとした場合に、不等式（ｖ，Ａｖ）≧０の左辺に現れる行列Ａをなす各成分ｖの係数を並べた情報を、前記線形制約条件を表す情報とする
ことを特徴とする請求項１または請求項２記載の線形制約条件生成装置。
【請求項４】
前記半正定値計画問題の目的関数を表す情報と、その半正定値計画問題の暫定解を表す情報とに基づいて、その目的関数を線形近似した結果を表す各係数を算出する線形近似手段を更に備える。
ことを特徴とする請求項１乃至請求項３の何れかに記載の線形制約条件生成装置。
【請求項５】
請求項１乃至請求項４の何れかに記載の線形制約条件生成装置と、
前記線形制約条件生成装置が生成した線形制約条件を利用して、前記半正定値計画問題を線形近似した結果を表す線形制約問題の暫定解を算出する求解手段と、
前記暫定解を表す行列の所定条件を満たしているか否かを判定し、満足する場合に、前記暫定解を前記半正定値計画問題の解とする判定手段とを備える
ことを特徴とする半正定値計画問題求解装置。
【請求項６】
前記暫定解を表す行列が前記所定条件を満足しない場合に、前記線形制約条件生成装置によって生成する線形制約条件を更新し、更新した線形制約条件を利用して、前記求解手段によって前記暫定解を更新し、更新した暫定解が前記所定条件を満たしているか否かを判定する一連の処理を、該更新した暫定解が前記所定条件を満足するまで繰り返す
ことを特徴とする請求項５記載の半正定値計画問題求解装置。
【請求項７】
前記所定条件は、
前記暫定解を表す行列の全ての固有値が０以上であるという条件である
ことを特徴とする請求項６記載の半正定値計画問題求解装置。
【請求項８】
クラスタリング分析に用いる計量行列の最適化問題を、分析対象を表す情報と、ユーザの要求情報とに基づいて、半正定値計画問題として定式化する定式化手段と、
前記定式化手段によって定式化された半正定値計画問題を解法する、請求項６または請求項７記載の半正定値計画問題求解装置と、
前記半正定値計画問題求解装置によって求めた解を用いて、前記クラスタリング分析を行うクラスタリング手段とを備える
ことを特徴とする計量学習装置。
【請求項９】
情報処理装置により、半正定値計画問題の目的関数を線形近似した結果を表す各係数を並べた行列と、その行列との転置行列を求め、
情報処理装置により、前記行列と前記転置行列との和を算出し、
情報処理装置により、算出した和が表す行列に関して、固有値と固有ベクトルとを算出すると共に、算出結果の中から特定の固有ベクトルを選択し、
情報処理装置により、前記選択した特定の固有ベクトルが表す情報を、前記半正定値計画問題の線形制約条件を表す情報とする
ことを特徴とする線形制約条件生成方法。
【請求項１０】
線形制約条件生成装置の動作制御のためのコンピュータ・プログラムであって、そのコンピュータ・プログラムにより、
半正定値計画問題の目的関数を線形近似した結果を表す各係数を並べた行列と、その行列の転置行列とを求めると共に、該行列と該転置行列との和を算出する行列演算機能と、
前記行列演算機能による演算結果が表す行列に関して、固有値と固有ベクトルとを算出すると共に、算出結果の中から特定の固有ベクトルを選択し、選択した特定の固有ベクトルが表す情報を、前記半正定値計画問題の線形制約条件を表す情報とするベクトル演算機能とをコンピュータに実現させる
ことを特徴とするコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、指定された条件を満足する数値の組み合わせの中から、指定された目的関数の値を最小化する組み合わせを求める技術分野に関する。
【背景技術】
【０００２】
指定された条件を満たす数値の組み合わせの中から、指定された目的関数（Ｏｂｊｅｃｔｉｖｅ  Ｆｕｎｃｔｉｏｎ）の値を最小化することが可能な、特定の組み合わせを検出するというタスク（問題）は、産業上の様々な分野に存在する。例えば、限られた資金を利益が最大になるように（或いは、利益の符号を逆転したものが最小になるように）、複数の投資先に配分する割合を求める装置が提案されている。また、機械等の挙動が最も望ましくなるように（或いは、所望の挙動からのずれを最小にするように）、制御可能なパラメータを調整する装置が提案されている。また、複雑な制約条件の下で効能が最も大きくなるように（或いは、効能の符号を逆転したスコアが最も小さくなるように）、構造などを設計する装置等が提案されている。
このような様々なタスクにおいては、指定された条件が、検出すべき数値に関する一次不等式のみで表現されている場合と、表現されていない場合とがある。前者は、一般に、線形制約問題（Ｌｉｎｅａｒ  Ｃｏｎｓｔｒａｉｎｔ  Ｐｒｏｂｌｅｍ）と呼ばれる。後者は、非線形制約問題（Ｎｏｎ−Ｌｉｎｅａｒ  Ｃｏｎｓｔｒａｉｎｔ  Ｐｒｏｂｌｅｍ）と呼ばれる。これらは、何れも産業上の様々な分野に存在するタスクを表すと捉えることができる。このため、係るタスクの解法は盛んに研究されている。
しかしながら、非線形制約問題は、線形制約問題と比較して複雑である。このため、係る非線形制約問題の解法は困難であり、情報処理装置（コンピュータ）を利用した解法においては計算に要する時間が長くなる。
非線形制約問題の一例として、半正定値計画（Ｓｅｍｉ−ｄｅｆｉｎｉｔｅ  Ｐｒｏｇｒａｍｍｉｎｇ：ＳＤＰ）問題がある。これは、半正定行列を用いて、指定された関数の値を最大化するというタスクである。ここで、半正定行列とは、全ての固有値が０以上の対称行列である。ある行列において、その全ての固有値が０以上であるという条件は、行列の成分の一次関数、あるいは係る一次関数の有限個の組み合わせによっては表わすことができないので、これは非線形制約問題である。以下、本願明細書においては、この「全ての固有値が０以上である」という条件を、“半正定条件”と称することにする。
ある行列が半正定条件を満たすかどうかは、その行列の固有値を調べる等の方法によって判定することができる。これに対して、指定された関数の値を最小化する“半正定条件を満たす行列”を求めることは、一般に非常に困難なタスクである。
尚、本願明細書においては、半正定条件に加えて、一つ以上の線形制約条件を有する関数最適化問題も、半正定値計画問題と呼ぶことにする。更に、複数の半正定値行列を同時に最適化する場合（線形制約条件を有している場合）も、半正定値計画問題と称することとする。
半正定値計画問題を解くことによって動作する装置の産業上の適用例として、特許文献１に記載された装置がある。この特許文献１に記載された装置は、入力されるテキストデータを分析する装置である。この装置は、計量情報と呼ばれるパラメータを、ユーザから提示される「分析結果が満たすべき性質」に従って自動的に調整する装置である。ここで、この計量情報とは、例えば、「どの単語を重要視するべきか」、「どの単語を軽視するべきか」、並びに「どの単語とどの単語とを同一視するべきか」等の情報である。この装置において、係る計量情報は、半正定行列で表現され、ユーザから指示された「分析結果が満たすべき性質」からの違反量を最も小さくする当該行列を検出する、という原理に従って動作する。
また、半正定値計画問題を解く動作を行う装置の産業上の他の適応例としては、特許文献２に記載されたノード分類装置がある。この装置は、インターネットを介して、外部装置の情報を発信しているユーザを分類する装置である。この装置は、特に悪意あるユーザの特定を、予め正解セットを用意することなく行う装置である。この装置は、ユーザ間の関係性が半正定行列で表現され、悪意あるユーザに関する情報とのズレ（差異）を最も小さくする特定の行列を検出するという原理を基に動作する。
更に、半正定値計画問題を解く装置の産業上の別の適応例としては、特許文献３に記載されたフィルタ設計装置がある。即ち、特許文献３は、デジタルフィルタを設計する装置を開示しており、特に、指定されたフィルタ特性に近くなるようにフィルタ係数を調整することを開示する。フィルタ係数の調整に際しては、フィルタ係数（フィルタ係数を定めるパラメータ）が半正定行列で表現され、このフィルタ設計装置は、フィルタ特性が指定された値と最も値のズレが小さくなる半正定行列を検出するという原理に従って動作する。
また、特許文献４には、半正定値計画問題を利用して、複数のユーザが協同して使用または作業する計量学習装置が提案されている。
ここで、本願出願に先だって存在する関連技術としては、例えば以下の非特許文献がある。
即ち、非特許文献１には、半正定値計画法を用いた解析技術の応用例として、半正定値計画法を、ロジットモデル（Ｌｏｇｉｔ  Ｍｏｄｅｌ）に適用することにより、中小企業の倒産確率を推定する方法が提案されている。
また、例えばデータマイニング技術を用いた分析において、ユーザ（分析者）の意図に沿った分析を行なったり、或いは、ユーザが意図する観点を分析結果に反映することは、分析精度を向上するために重要である。一般的なインタラクティブ型の分析システムでは、これらの作業がユーザによる手作業（介入操作）によって行なわれているので工数が問題となる。例えば、テキストデータの集合をクラスタリングする場合、事前作業としては、不要語リストや類義語リストを作成する等が必要である。そして、事後作業としては、クラスタ群をマップ表示する際の配置の工夫等が必要である。これらの作業は、コンピュータシステムが実行するクラスタリング処理とは独立して、ユーザに大きな工数を強いることになるので、一連の分析業務を完了するためのトータルコストが問題となる。そして、このような問題を改善するために、非特許文献２が提案されている。
非特許文献２は、テキストデータのクラスタリングを、上記の如くインタラクティブに行うシステムにおいて、計量学習（Ｍｅｔｒｉｃ  Ｌｅａｒｎｉｎｇ）の概念を採用する。係る非特許文献２によれば、クラスタリング結果に対するユーザの指示に応じて、そのユーザの意図を文書ベクトル空間の計量として学習し、それを用いて再びクラスタリングする、という処理を繰り返すことにより、分析結果に対してユーザの知識や意図を効率的に反映することができる。非特許文献２において、ユーザからの指示は、直感的な統合ＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）を用いて簡単な操作で行うことができるので、分析に要するトータル工数を大幅に削減することができる。このシステムでは、半正定計画問題を解くことによって計量学習が実現されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−０３１４６０号公報
【特許文献２】特開２００９−２８８８８３号公報
【特許文献３】特開２００７−１４２５６３号公報
【特許文献４】ＷＯ／２０１１／０７８３６８号公報
【非特許文献】
【０００４】
【非特許文献１】今野、武、「半正定値計画法を用いた倒産確率推計」、日本応用数理学界論文誌、Ｖｏｌ．１２．Ｎｏ．２，２００２，ｐｐ．１２１〜１３４
【非特許文献２】Ｍｉｃｈｉｎａｒｉ  Ｍｏｍｍａ，Ｓａｔｏｓｈｉ  Ｍｏｒｉｎａｇａ，Ｄａｉｓｕｋｅ  Ｋｏｍｕｒａ，“Ｐｒｏｍｏｔｉｎｇ  Ｔｏｔａｌ  Ｅｆｆｉｃｉｅｎｃｙ  ｉｎ  Ｔｅｘｔ  Ｃｌｕｓｔｅｒｉｎｇ  ｖｉａ  Ｉｔｅｒａｔｉｖｅ  ａｎｄ  Ｉｎｔｅｒａｃｔｉｖｅ  Ｍｅｔｒｉｃ  Ｌｅａｒｎｉｎｇ，”ｉｃｄｍ，ｐｐ．８７８−８８３，２００９  Ｎｉｎｔｈ  ＩＥＥＥ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｄａｔａ  Ｍｉｎｉｎｇ，２００９
【０００５】
［発明が解決しようとする課題］
上述した例の如く、半正定値計画問題は、様々な用途に利用されている。しかしながら、半正定値計画問題を、線形制約問題に近似して解く（即ち、線形制約問題を用いて近似解として解法する）装置においては、係る線形制約問題を繰り返し生成して解く回数が多いので、最終的な解を得るまでに要する処理時間が長いという問題がある。繰り返しの回数が多い理由は、生成される線形制約問題への近似が目的関数を無視して行われるため、なかなか真の解に到達しないためである。
そこで、本発明は、半正定値計画問題を線形制約問題に近似して解くに際して、正確且つ迅速に解を求めるための線形制約条件生成装置等の提供を主たる目的とする。
【発明の概要】
【０００６】
上記の目的を達成すべく、本発明に係る線形制約条件生成装置は、以下の構成を備えることを特徴とする。
即ち、線形制約条件生成装置は、
半正定値計画問題の目的関数を線形近似した結果を表す各係数を並べた行列と、その行列の転置行列とを求めると共に、該行列と該転置行列との和を算出する行列演算手段と、
前記行列演算手段の演算結果が表す行列に関して、固有値と固有ベクトルとを算出すると共に、算出結果の中から特定の固有ベクトルを選択し、選択した特定の固有ベクトルが表す情報を、前記半正定値計画問題の線形制約条件を表す情報とするベクトル演算手段とを備える。
また、上記の同目的を達成する他の見地として、本発明に係る半正定値計画問題求解装置は、
上記構成を有する線形制約条件生成装置と、
前記線形制約条件生成装置が生成した線形制約条件を利用して、前記半正定値計画問題を線形近似した結果を表す線形制約問題の暫定解を算出する求解手段と、
前記暫定解を表す行列の所定条件を満たしているか否かを判定し、満足する場合に、前記暫定解を前記半正定値計画問題の解とする判定手段とを備える。
更に、上記の同目的を達成する他の見地として、本発明に係る計量学習装置は、
クラスタリング分析に用いる計量行列の最適化問題を、分析対象を表す情報と、ユーザの要求情報とに基づいて、半正定値計画問題として定式化する定式化手段と、
前記定式化手段によって定式化された半正定値計画問題を解法する、上記構成を有する半正定値計画問題求解装置と、
前記半正定値計画問題求解装置によって求めた解を用いて、前記クラスタリング分析を行うクラスタリング手段とを備える。
そして、上記の同目的を達成する線形制約条件生成方法は、
情報処理装置により、半正定値計画問題の目的関数を線形近似した結果を表す各係数を並べた行列と、その行列の転置行列とを求め、
情報処理装置により、前記行列と前記転置行列との和を算出し、
情報処理装置により、算出した和が表す行列に関して、固有値と固有ベクトルとを算出すると共に、算出結果の中から特定の固有ベクトルを選択し、
情報処理装置により、前記選択した特定の固有ベクトルが表す情報を、前記半正定値計画問題の線形制約条件を表す情報とする。
尚、同目的は、上記構成を有する線形制約条件生成装置、半正定値最適化問題求解装置、計量学習装置、並びに、係る各装置に対応する方法を、コンピュータによって実現するコンピュータ・プログラム、及びそのコンピュータ・プログラムが格納されている、コンピュータ読み取り可能な記憶媒体によっても達成される。
［発明の効果］
上記の本発明によれば、半正定値計画問題を線形制約問題に近似して解くに際して、正確且つ迅速に解を求めるための線形制約条件生成装置等が実現する。
【図面の簡単な説明】
【０００７】
【図１】図１は、本発明の第１の実施形態に係る線形制約条件生成装置の構成を示すブロック図である。
【図２】図２は、本発明の第２の実施形態に係る線形制約条件生成装置の構成を示すブロック図である。
【図３】図３は、本発明の第２の実施形態に係る線形制約条件生成装置による線形制約条件の生成処理を示すフローチャートである。
【図４】図４は、本発明の第３の実施形態に係る半正定値計画問題求解装置の構成を示すブロック図である。
【図５】図５は、本発明の第３の実施形態に係る半正定値計画問題求解装置による半正定値計画問題の解法処理を示すフローチャートである。
【図６】図６は、本発明の第４の実施形態に係る計量学習装置の構成を示すブロック図である。
【図７】図７は、本発明の第４の実施形態に係る計量学習装置による分析処理を示すフローチャートである。
【図８】図８は、本発明の第１乃至第４の実施形態を実現可能なコンピュータ（情報処理装置）のハードウェア構成を例示的に説明する図である。
【発明を実施するための形態】
【０００８】
以下、本発明を実施する形態について図面を参照して詳細に説明する。
［第１の実施の形態］
はじめに、本発明の第１の実施形態について説明する。図１は、本発明の第１の実施形態に係る線形制約条件生成装置の構成を示すブロック図である。本実施形態に係る線形制約条件生成装置３００は、行列演算部３１１と、ベクトル演算部３１２とを有する。
行列演算部３１１は、半正定値計画問題の目的関数を線形近似した結果（線形近似解情報３０１）に含まれる各係数を並べた行列Ｈと、その行列Ｈの転置行列ＨＴを求めると共に、その行列Ｈと当該転置行列ＨＴとの和を表す行列（Ｈ＋ＨＴ）を算出する。
ベクトル演算部３１２は、行列演算部３１１の演算結果が表す行列（Ｈ＋ＨＴ）に関して、固有値と固有ベクトルとを算出すると共に、算出結果の中から特定の固有ベクトルを選択し、選択した特定の固有ベクトルが表す情報を、当該半正定値計画問題の線形制約条件を表す情報（線形制約条件情報３０２）とする。
このような線形制約条件生成装置３００によって線形制約条件情報３０２を求めれば、半正定値計画問題を線形制約問題に近似して解く（即ち、線形制約問題を用いて近似解として解法する）に際して、正確且つ迅速に解を求めることができる。
［第２の実施の形態］
次に、上述した第１の実施形態を基礎とする第２の実施形態について説明する。図２は、本発明の第２の実施形態に係る線形制約条件生成装置の構成を示すブロック図である。本実施形態に係る線形制約条件生成装置は、大別して、プロセッサ１と、記憶部２とを有しており、図２には不図示の通信インタフェースやディスプレイ等を有する。この線形制約条件生成装置は、例えば、図８に例示するハードウェア構成を備える情報処理装置（コンピュータ）において実現される（尚、この情報処理装置については後述する）。
本実施形態に係る線形制約条件生成装置は、目的関数を考慮した線形制約条件を生成することができる装置であって、係る目的関数を考慮した線形制約条件、或いは、係る線形制約条件を規定するベクトルｖを生成する機能を有する。
ここで、本実施形態において線形制約条件を生成する際の数学的な前提条件を説明する。まず、本実施形態において、対称行列Ａが半正定条件を満たすことと、任意の長さ１を有する上記ベクトルｖに関して、（ｖ，Ａｖ）≧０であることは同値である。以下、長さ１のベクトルの集合を、集合Ｖと記す。（ｖ，Ａｖ）は、対称行列Ａを構成する各要素に関しての一次関数である。この場合、あるベクトルｖに関して、（ｖ，Ａｖ）≧０は、対称行列Ａに課せられた線形制約条件である。但しこの場合、（ｖ，Ａｖ）≧０は、無限集合である集合Ｖの全ての要素ｖに対して成立する必要があるので、半正定条件は、係る線形制約条件が無限個まとめられた集合と同値である。但し、本願明細書において、半正定条件とは、「背景技術」欄において上述したように、半正定行列の全ての固有値が０以上である、という条件である。
次に、本実施形態に係る線形制約条件生成装置の構成と動作とについて説明する。
プロセッサ１は、記憶部２等から読み出した各種のソフトウェア・プログラム（コンピュータ・プログラム、以下では単に「プログラム」と略称する）を、例えば図８に示すハードウェア資源において実行することにより、以下に説明する機能を実現する。プロセッサ１が実現する機能は、概ね図１に示す各部（１１〜１６）に該当する。
記憶部２は、ハードディスクや半導体メモリなどの記憶装置であって、プロセッサ１にて実行される各種処理に必要な情報（２１〜２７）を、プロセッサ１による読み書き可能に記憶する。本実施形態において記憶部２には、目的関数情報２１、暫定解情報２２、近似結果情報２３、行列演算情報２４、固有値・固有ベクトル情報２５、選択結果情報２６、出力情報２７等の情報が記憶（格納）される。ここで、説明の都合から、まず、記憶部２が記憶する各種情報について説明し、その後、プロセッサ１が実行する各部について説明する。
目的関数情報２１は、線形制約条件を生成しようとしている半正定値計画問題の目的関数を表す情報である。この目的関数情報２１は、係る目的関数を表す式であってもよいし、係る目的関数を計算するプログラムであってもよい。
暫定解情報２２は、係る線形制約条件を生成することを目的とする半正定値計画問題の、暫定的な解（後述する対称行列Ａ１）を表す情報である。即ち、記憶部２は、暫定的な解によって構成される行列の各要素の値を記憶する。
近似結果情報２３は、目的関数情報２１と暫定解情報２２とに基づいて、目的関数線形近似部１２が算出した処理結果を表わす情報である。この近似結果情報２３は、目的関数を、暫定解の周辺においてテーラ展開することによって得られる、一次の係数を表す情報である。ここで、目的関数は、行列を入力とする関数であるので、その行列をなすどの成分（要素）によって当該目的関数を微分するかに起因して、テーラ展開によって求められる一次の係数は、当該行列の要素数と同数となる。即ち、近似結果情報２３は、係る目的関数を微分して得られる各要素（当該一次の係数）を、それらの要素と同じ順番に並べた行列Ｈを表す情報である。
尚、近似結果情報２３は、目的関数線形近似部１２によって生成するのではなく、外部装置から、或いはユーザによる操作に応じて入力する装置構成であれば、入力された情報を、近似結果情報２３として記憶部２に格納してもよい。そしてこの場合、係る近似結果情報２３を目的関数線形近似部１２によって生成する必要が無いのであるから、その生成に必要な目的関数情報２１と暫定解情報２２とを記憶部２に格納する必要はなく、且つ、目的関数線形近似部１２自体を自装置に設ける必要もない。
行列演算情報２４は、近似結果情報２３の入力に応じて行列演算部１３が算出する処理結果を表わす情報である。即ち、行列演算情報１３は、係る近似結果情報２３によって特定される行列Ｈと、その行列Ｈの転置行列ＨＴとの和を表す行列（Ｈ＋ＨＴ）を表す情報である。
固有値・固有ベクトル情報２５は、行列演算情報２４を入力とした固有値・固有ベクトル算出部による処理結果を表わす情報であり、行列演算情報２４により特定される行列の固有値と固有ベクトルを表す情報である。
選択結果情報２６は、固有値・固有ベクトル情報２５を入力とした固有ベクトル選択部１４による処理結果を表わす情報である。即ち、選択結果情報２６は、固有値・固有ベクトル情報２５により特定される固有ベクトルの中から、線形制約条件を生成する際に利用するために選択された特定の固有ベクトルの集合を表す情報である。
尚、固有値・固有ベクトル算出部１４が算出する全ての固有ベクトルを、線形制約条件を生成する際に利用する場合、選択結果情報２６（選択された特定の固有ベクトルの集合）は、固有値・固有ベクトル情報２５と同じ情報になる。従ってこの場合、これらの情報（２５，２６）は、記憶部２に別々に保持する必要はない。そしてこの場合、固有ベクトル選択部１５も不要である。
出力情報２７は、選択結果情報２６の入力に応じて出力部１６が算出する処理結果を表わす情報であり、選択された固有ベクトルを基に生成した線形制約条件を表す情報である。当該線形制約条件を表す情報は、本実施形態に係る線形制約条件生成装置の成果物であって、その生成方法の具体例は、出力部１６の動作と共に後述する。
プロセッサ１は、図２には不図示の、後述する図８に示すＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０１等のマイクロプロセッサ、並びにその周辺回路を有する。プロセッサ１は、例えば記憶部２から読み出したプログラム・コードを実行することにより、係るプロセッサ１を含むハードウェア資源と、プログラムを協働させて各種処理部（１１〜１６）の機能を実現する。
入力部１１は、外部装置から、或いはユーザの操作によって入力された目的関数を表す情報を、目的関数情報２１として記憶部２に格納する機能を有する。
また、入力部１１は、入力された暫定解を表す情報を、暫定解情報２２として記憶部２に格納する機能を有する。
更に、目的関数の暫定解に対応する線形近似結果を表す情報が入力される場合、入力部１１は、その入力される情報を、近似結果情報２３として記憶部２に格納する機能を有する。
目的関数線形近似部１２は、対象とする目的関数を線形関数に近似した結果（近似結果情報２３）を求める。即ち、目的関数線形近似部１２は、記憶部２から入手した目的関数情報２１と暫定解情報２２とに基づいて、目的関数を暫定解の周りでテーラ展開することによって得られる一次の係数（上記の行列Ｈ）を算出する機能を有する。即ち、近似結果情報２３の説明に際して上述したように、テーラ展開によって求められる一次の係数は、行列Ｈの要素数と同数にすることができる。目的関数線形近似部１２は、微分計算によって当該個々の要素を算出し、算出した値を順番に並べた行列Ｈを表す情報を、近似結果情報２３として、記憶部に格納する機能を有する。尚、近似結果情報２３を外部装置から入手可能な場合、目的関数線形近似部１２は、プロセッサ１内に備える必要はない。
ここで、目的関数（目的関数情報２１）の微分処理は、数値的な差分に基づき近似する方法や、微分値を計算するプログラムを、例えば、目的関数情報２１と共に記憶部２に保持しておけばよい。そして、目的関数線形近似部１２は、係るプログラムの実行に際して、目的関数情報２１と、暫定解情報２２とを参照すればよい。
行列演算部１３は、記憶部２から読み込んだ近似結果情報２３が表す行列Ｈを基に、その行列Ｈの転置行列ＨＴを求めると共に、当該行列Ｈと転置行列ＨＴとの和である行列（前記のＨ＋ＨＴ）を算出する機能を有する。行列演算部１３は、算出した結果を、行列演算情報２４として、記憶部２に格納する。
固有値・固有ベクトル算出部１４は、記憶部２から読み込んだ行列演算情報２４が表す行列（前記のＨ＋ＨＴ）に関して、固有値と、固有ベクトルとを算出する機能を有する。固有値・固有ベクトル算出部１４は、算出した結果を、固有値・固有ベクトル情報２５として、記憶部２に格納する。この固有値・固有ベクトル算出部１４は、上述した第１の実施形態におけるベクトル演算部３１２の一部に相当する。
尚、行列の固有値及び固有ベクトルを算出する方法には、現在では一般的な方法を採用することができるので、本実施形態における詳細な説明は省略する。また、対象とする行列に関して固有値と固有ベクトルとを全て求めるのではなく、例えば固有値の最大値に対応する固有ベクトルだけ求める等のように、部分的な値を利用してもよい。この場合にも、本実施形態には、一般的な方法を採用することができる。
また、後述する固有ベクトル選択部１５において固有値に関する情報を使用しない場合、固有値・固有ベクトル算出部１４は、固有値に関しては算出しなくてもよい。或いは、この場合、固有値・固有ベクトル算出部１４は、算出した値を、固有値・固有ベクトル情報２５として記憶部２に格納しなくてもよい。
固有ベクトル選択部１５は、記憶部２から読み込んだ固有値・固有ベクトル情報２５が表す固有ベクトルの中から、線形制約条件を生成するために使用する特定の固有ベクトルを選択する機能を有する。係る特定の固有ベクトルを選択する際の選択基準としては、例えば、以下の方法を採用することができる。
（ａ）最大または最小の固有値に対応する固有ベクトルを選択する、
（ｂ）大きい固有値から順に幾つかの固有値に関して、対応する複数の固有ベクトルを選択する等。
そして、固有ベクトル選択部１５は、選択した固有ベクトルを表す情報を、選択結果情報２６として、記憶部２に格納する。この固有ベクトル選択部１５は、上述した第１の実施形態におけるベクトル演算部３１２の一部に相当する。
出力部１６は、記憶部２から読み込んだ選択結果情報２６が表すところの、当該選択した特定の固有ベクトルを表す情報を利用して、線形制約条件を表す情報を生成する機能を有する。この線形制約条件を表す情報は、当該特定の固有ベクトルを、所定の条件を基に整形（加工）した情報であって、その整形方法としては、例えば、以下の情報を採用することができる。
（ａ）使用する固有ベクトルそのもの、
（ｂ）上記（ａ）にて選択した固有ベクトルを前述したベクトルｖとした場合に、不等式（ｖ，Ａｖ）≧０の左辺に現れる行列Ａをなす各成分の係数を並べた情報、
（ｃ）線形制約条件を受け取る他の装置との通信規約に基づく別形式の情報、
（ｄ）計算処理上の工夫に基づくその他の形式の情報等。
そして、出力部１６は、係る線形制約条件を表す情報を、出力情報２７として、記憶部２に格納する。更に、出力部１６は、係る出力情報２７を、外部装置に出力する機能（例えばディスプレイを介してユーザに提示する場合を含む）を有する。
図３は、本発明の第２の実施形態に係る線形制約条件生成装置による線形制約条件の生成処理を示すフローチャートである。係るフローチャートは、図２に示すプロセッサ１（後述する図８におけるＣＰＵ１０１に相当）が実行するプログラムの処理手順にも対応する。
即ち、入力部１１は、外部装置から、或いはユーザによる操作に応じて、目的関数を表す情報を入力し、目的関数情報２１として記憶部２に格納する（ステップＳ１）。
また、入力部１１は、外部装置から、或いはユーザによる操作に応じて、暫定解を表す情報を入力し、暫定解情報２２として記憶部２２に格納する（ステップＳ２）。
次に、目的関数線形近似部１２は、目的関数情報２１と暫定解情報２２とを記憶部２から読み出し、読み出した情報を利用して、上述した手順によって求めた近似結果情報２３を、記憶部２に格納する（ステップＳ３）。
尚、上述したように、近似結果情報２３を外部装置から入力可能な場合、上述したステップＳ１及びステップＳ２は不要であり、且つステップＳ３では、係る外部装置から近似結果情報２３を入手するだけでよい。
行列演算部１３は、記憶部２から近似結果情報２３を読み出し、読み出した情報が表す行列Ｈの転置行列ＨＴを求めると共に、行列（Ｈ＋ＨＴ）を算出する。行列演算部２４は、算出した結果を、行列演算情報２４として記憶部２に格納する（ステップＳ４）。
固有値・固有ベクトル算出部１４は、記憶部２から行列演算情報２４を読み出し、読み出した情報が表す行列（Ｈ＋ＨＴ）に関して、上述した手順によって固有値と固有ベクトルとを算出し、固有値・固有ベクトル情報２５として記憶部２に格納する（ステップＳ５）。
固有ベクトル選択部１５は、記憶部２から固有値・固有ベクトル情報２５を読み出し、読み出した情報が表す固有ベクトルの中から、上述した手順により、線形制約条件を生成するために使用する特定の固有ベクトルを選択し、選択結果情報２６として記憶部２に格納する（ステップＳ６）。
出力部１６は、記憶部２から選択結果情報２６を読み出し、読み出した情報を利用して、上述した手順により、線形制約条件を表す情報を生成し、出力情報２７として記憶部２に格納する（ステップＳ７）。更に、出力部１６は、この出力情報２７を外部装置に出力する（ステップＳ７）。
以上説明した第２の実施形態に係る線形制約条件生成装置によれば、線形制約条件（出力情報２７）を生成するに際して、目的関数（目的関数情報２１）を考慮すると共に、半正定値計画問題を線形制約問題に近似して解くに際して、正確且つ迅速に解を求めることができる。その理由は、本実施形態では、係る半正定値計画問題の非線形制約条件を近似するために用いる線形制約条件を生成するに際して、暫定解（暫定解情報２２）において達成されている目的関数の値がなるべく変化しない線形制約条件を、係る目的関数の情報を用いて生成するからである。
このことを実現するために、本実施形態において、行列演算部１３は、係る目的関数の近似結果である近似結果情報２３が表す行列Ｈの転置行列ＨＴを求めると共に、行列（Ｈ＋ＨＴ）を行列演算情報２４として算出する。次に、本実施形態では、この行列（Ｈ＋ＨＴ）に関して固有値・固有ベクトル算出部１４によって固有値と固有ベクトル（固有値・固有ベクトル情報２５）とを算出する。次に、固有ベクトル選択部１５は、算出された固有値と固有ベクトルの中から、上述した選択基準に基づいて、特定の固有ベクトル（選択結果情報２６）を選択する。そして出力部１６は、係る選択された特定の固有ベクトルに対して、上述した如く必要に応じて加工を施し、線形制約条件を表す情報（出力情報２７）として出力する。
従って、本実施形態に係る線形制約条件生成装置により線形制約条件線形制約条件を求めれば、係る半正定値計画問題を解く際に必要な線形制約問題の求解処理の繰り返し回数を減らすことができるので、係る半正定値計画問題自体を解く所用時間を短縮することができる。このことを換言すると、本実施形態によれば、指定された条件が、数値の組み合わせからなる非線形関数の不等式で表現されている問題（半正定値計画問題）に対して、係る非線形関数を用いて表現された条件を、幾つかの線形不等式で表現された条件によって代替することにより、目的関数の値を最小化する効率を向上することができる。
ここで、上述した本実施形態の効果を数学的な見地から補足する。本実施形態に係る線形制約条件生成装置によれば、目的関数を考慮して（ｖ，Ａｖ）≧０を満たすべきベクトルｖを、無限集合である集合Ｖの中から選ぶことにより、線形制約問題を繰り返し生成すると共に解法する際の処理回数を削減することができる。その際、ベクトルｖは以下のように選ぶ。
まず、目的関数が対称行列Ａの線形関数である場合から説明する。線形関数である目的関数は、対象行列Ａを構成する各成分（Ａｉｊと表す）に対して重み付け和を求めた値である。本実施形態では、対象行列Ａの成分Ａｉｊの重みをｉｊ成分とする行列を、行列Ｈと表すことにする。
今、半正定値計画問題を線形制約問題に近似して解いた解Ａ１（上述した暫定解情報２２に相当）が、半正定条件を満たさなかった場合を考える。この場合、当該線形制約問題に対して、新しく（ｖ，Ａｖ）≧０という条件を付け加えた線形制約問題の解Ａ２が達成する目的関数の値は、解Ａ１が達成する目的関数の値以上に必ずなる。その際、解Ａ１が達成する目的関数の値がどの程度大きな値になってしまうか否かは、新しい条件を定めるベクトルｖとして何を選択するかに依存する。但し、本実施形態においては、そもそも解法対象である元の半正定値計画問題が、対象とする目的関数を最小化するという問題であるから、解Ａ１ができるだけ大きくならないようにベクトルｖを選択すればよい訳である。
また、前記の如くベクトルｖを選んだときにどれくらい目的関数の値が大きくなるかは、その他の線形制約条件がどのような条件によって構成されているかに依存する。但し、解Ａ１が小さくなる量の最悪値を極小化するには、ベクトルｖとして、上記の行列Ｈと、その行列Ｈの転置行列との和（Ｈ＋ＨＴ）の最大固有値に対応する固有ベクトルを、ベクトルｖとして選択すればよい。
そして、本実施形態では、このようにして選択したベクトルｖに対して、例えば、カッティング・プレーン・アルゴリズムによって選択された集合Ｗに付け加える、或いは、その集合Ｗの一部の要素と入れ替える仕組みを追加する。これにより、元の半正定値計画問題の最適解の周りにおける半正定条件の線形制約による近似の精度を向上することができると共に、繰り返し線形制約問題を生成して解く回数を減らすことができる。
尚、本実施形態において選択するベクトルｖは、係る（Ｈ＋ＨＴ）の最大固有値に対応する固有ベクトルのみではなく、その他の固有値に対応する固有ベクトルや、それらを近似的に求めた値であってもよい。
次に、目的関数が対称行列Ａの線形関数ではない場合について説明する。この場合は、現状得られている解Ａ１（上述した暫定解情報２２に相当）の周りにおける目的関数に対してテーラ展開等の演算を施すと共に、係る演算によって得られた線形近似した値に対して、上記と同様な処理を行う仕組みを追加すればよい。このような処理手順によっても、上記の場合と同様に、元の半正定値計画問題の最適解の周りにおける半正定条件の線形制約による近似の精度を向上することができると共に、繰り返し線形制約問題を生成して解く回数を減らすことができる。この場合、目的関数をテーラ展開した１次の係数を並べた行列が行列Ｈである。
［第３の実施の形態］
次に、上述した第１及び第２の実施形態を基礎とする本発明の第３の実施形態について説明する。本実施形態に係る半正定値計画問題求解装置は、第２の実施形態において説明した線形制約条件生成装置（目的関数を考慮した線形制約条件生成装置）の機能を含んでおり、生成した線形制約条件を用いて、半正定値計画問題を求解する機能を有する。
図４は、本発明の第３の実施形態に係る半正定値計画問題求解装置の構成を示すブロック図である。この半正定値計画問題求解装置は、上述した第２の実施形態における線形制約条件生成装置と同様に、大別して、プロセッサ１と、記憶部２とを有しており、図４には不図示の通信インタフェースやディスプレイ等を有する。この半正定値計画問題求解装置は、例えば、図８に例示するハードウェア構成を備える情報処理装置（コンピュータ）において実現される（尚、この情報処理装置の構成例については後述する）。
次に、本実施形態に係る半正定値計画問題求解装置の構成と動作とについて説明する。
プロセッサ１は、本実施形態においても、第２の実施形態と同様に、記憶部２等から読み出した各種のプログラムを、例えば図８に示すハードウェア資源において実行することにより、以下に説明する機能を実現する。プロセッサ１が実現する機能は、概ね図４に示す各部（３１〜３７）に該当する。
記憶部２は、第２の実施形態と同様に、プロセッサ１による読み書き可能に、各種の情報を格納可能である。図４に示す例において、記憶部２は、目的関数情報４１、所与の線形制約条件情報４２、暫定解情報４３、生成線形制約条件情報４４、出力情報４５等を格納する。
即ち、記憶部２において、目的関数情報４１は、第２の実施形態において図２を参照して説明した目的関数情報２１と同様であるため、重複する説明は省略する。
所与の線形制約条件情報４２は、本実施形態に係る半正定値計画問題求解装置が求解すべき半正定値計画問題に関する所与の線形制約条件を表す情報である。所与の線形制約条件情報４２は、外部装置から、或いはユーザによる操作に応じて記憶部２に格納される。本願明細書においては、「背景技術」欄において上述したように、線形制約条件が含まれる場合であっても半正定値計画問題と呼ぶことにしているので、記憶部２は、そのような情報も、所与の線形制約条件情報４２として保持する。
暫定解情報４３は、後述する初期値生成部２３が出力した半正定値計画問題の暫定的な解（前記の対称行列Ａ１）を表す情報である。即ち、記憶部２は、暫定的な解によって構成される行列の各要素の値を記憶する。
生成線形制約条件情報（生成された線形制約条件情報）４４は、後述するところの、違反方向を考慮した線形制約条件生成部３３、或いは、目的関数を考慮した線形制約条件生成部３４が生成した情報である。この生成線形制約条件情報４４は、係る半正定値計画問題の半正定条件を近似する線形制約条件の集合を表す情報である。
出力情報４５は、後述する半正定条件判定部３６によって、係る半正定条件が満たされていると判定された暫定解を表わす情報である。この出力情報５４は、本実施形態に係る半正定値計画問題求解装置が、解として出力する行列を表す情報である。
プロセッサ１は、第２の実施形態と同様に図４には不図示のハードウェア構成を備える。プロセッサ１は、例えば記憶部２から読み出したプログラム・コードを実行することにより、係るプロセッサ１を含むハードウェア資源と、プログラムを協働させて各種処理部（３１〜３７）の機能を実現する。
入力部３１は、外部装置から、或いはユーザの操作によって入力された目的関数を表す情報を、目的関数情報４１として記憶部２に格納する機能を有する。
また、入力部１１は、外部装置から、或いはユーザの操作によって入力された、所与の線形制約条件を表す情報を、所与の線形制約条件情報４２として、記憶部２に格納する機能を有する。
初期値生成部３２は、記憶部２に記憶した目的関数情報４１及び所与の線形制約条件情報４２のうち少なくとも何れか、或いはそれらの情報を何れも使わずに、暫定解の初期値を表す情報生成し、生成した情報を、暫定解情報４３として記憶部２に格納する。係る暫定解の初期値には、例えば、対称行列Ａの成分をランダムに設定すればよい。或いは、係る暫定解の初期値には、目的関数情報４１と、所与の線形制約条件情報４２とによって特定される線形制約問題（半正定条件を無視した線形制約問題）を、現在では一般的な方法によって求解した結果を採用してもよい。
違反方向を考慮した線形制約条件生成部３３は、例えば、カッティング・プレーン・アルゴリズムにおける線形制約条件の生成方法に従って、暫定解情報４３から、線形制約条件を表す情報を求め、求めた情報を、生成線形制約条件情報４４として、記憶部２に格納する。
即ち、半正定条件をより良く近似する線形制約条件によって近似を得るためには、線形制約条件として課す（ｖ，Ａｖ）≧０におけるベクトルｖの選定を注意深く行う必要がある。例えば、カッティング・プレーン・アルゴリズムにおいて、この選択は、（ｖ，Ａｏｖ）≧０という不等式を最も激しく違反するベクトルｖを集合Ｖの中から選択する、という基本方針に従って行われる。即ち、係る選択は、長さ１のベクトルｖのうち、（ｖ，Ａｏｖ）を、最も小さくする特定のベクトルｖを選択することに相当する。そして、選択した特定のベクトｖは、解Ａｏの最も小さな（負で絶対値が最大の）固有値に対応する固有ベクトルである。本実施形態では、このようにして選ばれたベクトルｖを集合Ｗに付け加える、或いは、その集合Ｗの要素の一部と入れ替えることにより、半正定条件を線形制約条件の集合で近似し直すことによってベクトルｖを選んでいる。但し、ベクトルは、長さ成分と方向成分とによって一意に定まる。本実施形態において、このベクトルｖの長さ成分は１であることを前提しているので、係る選択において選べるのは方向成分だけである。そこで、本実施形態では、上記の如く（ｖ，Ａｏｖ）≧０という不等式を“最も激しく違反するベクトルｖを選択する動作”を、“違反方向を考慮した線形制約条件の生成”と称している。その際、係る線形制約条件生成部３３は、生成線形制約条件情報４４として、記憶部２に既に格納されていた情報への追加、或いはその一部あるいは全部の置き換えを行ってもよい。
目的関数を考慮した線形制約条件生成部３４は、上述した第２の実施形態において説明したところの、目的関数を考慮した線形制約条件生成装置と同様な処理を行う。即ち、係る目的関数を考慮した線形制約条件生成部３４は、第２の実施形態において説明した手順に従って、目的関数情報４１と暫定解情報４２と用いて、線形制約条件を表す情報を生成し、生成した情報を、生成線形制約条件情報（生成した線形制約条件情報）４４として記憶部２に格納する。その際、係る線形制約条件生成部３４は、生成線形制約条件情報４４として、記憶部２に既に格納されていた情報への追加、或いはその一部あるいは全部の置き換えを行ってもよい。
線形制約問題求解部３５は、目的関数情報４１と、所与の線形制約条件情報４２と、生成線形制約条件情報４４と用いて、それらの情報によって特定される線形制約問題を、現在では一般的な求解方法を用いて解法する機能を有する。そして、線形制約問題求解部３５は、係る解法結果を表す情報を、前述した半正定値計画問題の暫定解情報４３（前記の対称行列Ａ１）として、記憶部２に格納する。
半正定条件判定部３６は、記憶部２から読み出した暫定解情報４３が表す行列が、半正定条件を満たしているかを判定する。暫定解情報４３が表す行列が、係る半正定条件を満たしているか否かの判定は、現在では一般的な方法により、当該行列の固有値が全て正か否かをチェックすればよい。そして、半正定条件判定部３６は、その判定結果に応じて、係る暫定解を半正定値計画問題の解として出力するか、或いは、生成線形制約条件情報４４を更新して同様な処理を繰り返すかを判断する。即ち、このチェックにおいて当該半正定条件が満たされていると判定した場合、半正定条件判定部３６は、暫定解情報４３を半正定値計画問題の解として出力すべく、出力部３７に通知する。一方、当該半正定条件が満たされていないと判定した場合、半正定条件判定部３６は、生成線形制約条件情報４４の更新と線形制約問題の求解までの処理を更に繰り返すべく、違反方向を考慮した線形制約条件生成部３３に通知する。
尚、要求される半正定値計画問題の解の精度によって、半正定性条件は、厳密に判定するのではなく、ある程度の段階（例えば、負の固有値の絶対値の最大値が小さい等）において、満たされたと判定してもよい。
出力部３７は、記憶部２から読み出した暫定解情報４３が表す行列から、半正定値計画問題の解を表す情報を生成する機能を有する。生成される半正定値計画問題の解を表す情報としては、例えば、以下の情報を採用することができる。
（ａ）当該行列そのもの、
（ｂ）解を受け取る他の装置との通信規約に基づく別形式の情報、
（ｃ）計算処理上の工夫に基づくその他の形式の情報等。
そして、出力部３７は、生成された半正定値計画問題の解を表す情報を、出力情報４５として、記憶部２に格納する。更に、出力部３７は、係る出力情報４５を、外部装置に出力する機能（例えばディスプレイを介してユーザに提示する場合を含む）を有する。
図５は、本発明の第３の実施形態に係る半正定値計画問題求解装置による半正定値計画問題の解法処理を示すフローチャートである。係るフローチャートは、図４に示すプロセッサ１（後述する図８におけるＣＰＵ１０１に相当）が実行するプログラムの処理手順にも対応する。
即ち、入力部３１は、外部装置から、或いはユーザによる操作に応じて、目的関数を表す情報を入力し、目的関数情報４１として記憶部２に格納する（ステップＳ１１）。
また、入力部１１は、外部装置から、或いはユーザによる操作に応じて、所与の線形制約条件を表す情報を入力し、所与線形制約条件情報４２として記憶部に格納する（ステップＳ１２）。
次に、初期値生成部３２は、上述した手順により、暫定解の初期値を表す情報を生成し、生成した情報を、暫定解情報４３として記憶部２に格納する（ステップＳ１３）。
違反方向を考慮した線形制約条件生成部３３は、記憶部２から読み出した暫定解情報４３を用いて、上述した手順により、線形制約条件を表す情報を生成し、生成した情報を、生成線形制約条件情報４４として記憶部２に格納する（ステップＳ１４）。
目的関数を考慮した線形制約条件生成部３４は、記憶部２から読み出した目的関数情報４１と暫定解情報４３とを用いて、上述した第２の実施形態と同様な手順により、目的関数を考慮した線形制約条件を生成し、生成した情報を、生成線形制約条件情報４４として記憶部２に格納する（ステップＳ１５）。
線形制約問題求解部３５は、記憶部２から読み出した目的関数情報４１と、所与の線形制約条件情報４２と、生成線形制約条件情報４４とを用いて、それらの情報によって特定される線形制約問題を、現在では一般的な求解方法を用いて求解し、その結果を、半正定値計画問題の暫定解情報４３として、記憶部２に格納する（ステップＳ１６）。
半正定条件判定部３６は、記憶部２から読み出した暫定解情報４３が表す行列が、半正定条件を満たしているか否か（即ち、半正定行列の全ての固有値が０以上であるか）を判定する（ステップＳ１７）。この判定結果がＮＯの場合（当該半正定条件を満足しない場合）、処理はステップＳ１４に戻される。そしてこの場合、生成線形制約条件情報４４の更新と、線形制約問題の解法等が繰り返される（ステップＳ１４〜ステップＳ１７）。一方、この判定結果がＹＥＳの場合（当該半正定条件を満足する場合）、記憶部２に現在格納されている暫定解情４３報を半正定値計画問題の解として出力すべく、処理はステップＳ１８に進められる。
出力部３７は、記憶部２から読み出した暫定解情報４３を、上述した手順によって整形（加工）し、整形した結果が表す半正定値計画問題の解を表す情報を、出力情報４５として記憶部２に格納する（ステップＳ１８）。更に、出力部３７は、この出力情報４５を外部装置に出力する（ステップＳ１８）。
このように、第３の実施形態に係る半正定値計画問題求解装置は、半正定値計画問題を解法するに際して、第２の実施形態において説明した目的関数を考慮した線形制約問題の求解手順を採用し、係る求解手順によって得られた線形制約条件を利用する。これにより、本実施形態に係る半正定値計画問題求解装置によれば、半正定値計画問題を解法する過程において行われる線形制約問題の求解の繰り返し回数を最小限にすることができる。従って、係る半正定値計画問題求解装置によれば、半正定値計画問題の解を得るまでの所要時間を短縮することができる。
即ち、上述した本実施形態によれば、半正定値計画問題を線形制約問題に近似して解く半正定値計画問題求解装置において、元の問題の最適解の周辺における近似精度が高くなるように、線形制約条件を生成することができる。これにより、本実施形態によれば、線形制約問題を繰り返し生成して解く回数を削減することができるので、最終的な解を得るまでの処理時間を短縮することができる。
［第４の実施の形態］
次に、上述した第１乃至第３の実施形態を基礎とする本発明の第４の実施形態について説明する。本実施形態に係る計量学習装置は、第３の実施形態において説明した半正定値計画問題求解装置の機能を含んでおり、生成した線形制約条件を用いて、半正定値計画問題の解を求め、求めた解を基に分析対象をクラスタリングする機能を有する。本実施形態に係る計量学習装置は、上述した第３の実施形態に係る半正定値計画問題求解装置の機能を含んでいるので、係る線形制約条件の生成に際して、上述した第２の実施形態係る線形制約条件生成装置と同様な手順を実行する。
以下の説明では、本実施形態に係る計量学習装置の一例として、非特許文献２に記載された技術のように、分析対象のテキストデータを、ユーザからの要求をなるべく満たすようにクラスタリングする場合を例に説明する。尚、クラスタリング分析（クラスタ解析）自体については、現在では一般的な手法を採用することができるので、本実施形態における詳細な説明は省略する。
図６は、本発明の第４の実施形態に係る計量学習装置の構成を示すブロック図である。この計量学習装置は、上述した第２の実施形態における線形制約条件生成装置、及び第３の実施形態における半正定値計画問題求解装置と同様に、大別して、プロセッサ１と、記憶部２とを有しており、図６には不図示の通信インタフェースやディスプレイ等を有する。この計量学習装置は、例えば、図８に例示するハードウェア構成を備える情報処理装置（コンピュータ）において実現される（尚、この情報処理装置については後述する）。
次に、本実施形態に係る計量学習装置の構成と動作とについて説明する。
プロセッサ１は、本実施形態においても、第２及び第３の実施形態と同様に、記憶部２等から読み出した各種のプログラムを、例えば図８に示すハードウェア資源において実行することにより、以下に説明する機能を実現する。プロセッサ１が実現する機能は、概ね図６に示す各部（５１〜５５）に該当する。
記憶部２は、第２及び第３の実施形態と同様に、プロセッサ１による読み書き可能に、各種の情報を格納可能である。図６に示す例において、記憶部２は、分析対象情報６１、ユーザ要求情報６２、目的関数情報６３、所与の線形制約情報６４、解情報６５、分析結果情報６６、出力情報６７等を格納する。
即ち、記憶部２において、分析対象情報６１は、外部装置から、或いはユーザの操作によって入力されたテキストデータの集合であって、本実施形態に係る計量学習装置のクラスタリング対象の一例である。
ユーザ要求情報６２は、本実施形態に係る計量学習装置が出力するクラスタリング結果が満たすべき条件について、ユーザが要求した内容を表す情報である。このユーザ要求情報６２は、外部装置から、或いはユーザの操作によって当該計量学習装置に入力され、記憶部２に格納される。
目的関数情報６３は、目的関数を表す情報である。所与の線形制約情報６４は、線形制約条件を表す情報である。これらの情報は、クラスタリング分析に用いる計量行列の最適化問題を、半正定値計画問題求解部５３が半正定値計画問題として求解するのに先立って、定式化部５２によって生成される（詳細は後述する）。
解情報６５は、記憶部２から読み出した目的関数情報６３と、所与の線形制約情報６４とに基づいて、それらの情報によって特定される半正定値計画問題を、半正定値計画問題求解部５３によって求解した結果を表す情報である。
分析結果情報６６は、記憶部２から読み出した分析対象情報６１と、解情報６５とに基づいて、解を利用したクラスタリング部５４がクラスタリングした結果を表す情報である。即ち、クラスタリング部５４は、解情報６５が表す計量行列を用いて、分析対象情報６６をクラスタリングする。
出力情報６７は、記憶部２から読み出した分析結果情報６６を用いて、出力部５５が出力用に生成した情報である。
プロセッサ１は、第２及び第３の実施形態と同様に図６には不図示のハードウェア構成を備える。プロセッサ１は、例えば記憶部２から読み出したプログラム・コード（プログラム）を、係るプロセッサ１を含むハードウェア資源と、そのハードウェア資源において当該プログラムとを協働させることによって、各種処理部（５１〜５５）の機能を実現する。
入力部５１は、外部装置から、或いはユーザの操作によって入力された分析対象を表す情報を、分析対象情報６１として記憶部２に格納する機能を有する。また、入力部５１は、外部装置から、或いはユーザの操作によって入力されたユーザ要求を表す情報を、ユーザ要求情報６２として記憶部２に格納する機能を有する。
定式化部５２は、クラスタリング分析に用いる計量行列の最適化問題を、分析対象情報６１とユーザ要求情報６２とに基づいて、半正定値計画問題として定式化する機能を有する。そして、定式化部５２は、係る定式化によって得られた当該半正定値計画問題の目的関数を表す情報と、線形制約条件を表す情報とを、目的関数情報６３及び所与の線形制約情報６４として、記憶部２に格納する。
半正定値計画問題求解部５３は、上述した第３の実施形態にて説明した半正定値計画問題求解装置と同様な機能を有する。即ち、半正定値計画問題求解部５３は、記憶部２から読み出した目的関数情報６３と所与の線形制約情報６４とを参照することにより、それらの情報によって特定される半正定値計画問題を、第３の実施形態において上述した手順によって求解し、その求解結果を表す情報を、解情報６５として記憶部２に格納する。
解を利用したクラスタリング部５４は、記憶部２から読み出した分析対象情報６１と解情報６５とに基づいて、クラスタリングした結果を表す情報を、分析結果情報６６として記憶部２に格納する機能を有する。即ち、このクラスタリング部５４は、解情報５６が表す計量行列を用いて、分析対象情報６６の一例であるテキストデータの集合をクラスタリングする。
出力部５５は、記憶部２から読み出した分析結果情報６６が表すクラスタリング結果を、出力に適した形式に変換し、変換結果を出力情報６７として記憶部２に格納する機能を有する。更に、出力部５５は、係る出力情報６７を、外部装置に出力する機能（例えばディスプレイを介してユーザに提示する場合を含む）を有する。
図７は、本発明の第４の実施形態に係る計量学習装置による分析処理を示すフローチャートである。係るフローチャートは、図６に示すプロセッサ１（後述する図８におけるＣＰＵ１０１に相当）が実行するプログラムの処理手順にも対応する。
即ち、入力部５１は、外部装置から、或いはユーザによる操作に応じて、分析対象となるテキストデータを表す情報を入力し、分析対象情報６１として記憶部２に格納する（ステップＳ２１）。
入力部５１は、外部装置から、或いはユーザによる操作に応じて、分析結果（クラスタリング結果）に対するユーザの要求を表す情報を入力し、ユーザ要求情報６２として記憶部２に格納する（ステップＳ２２）。
定式化部５２は、クラスタリング分析に用いる計量行列の最適化問題を、分析対象情報６１とユーザ要求情報６２とを用いて、半正定値計画問題として定式化し、その半正定値計画問題の目的関数を表す情報を生成し、生成した情報を、目的関数情報６３として記憶部２に格納する（ステップＳ２３）。
そして、定式化部５２は、外部装置から、或いはユーザによる操作によって入力された所与の線形制約条件を表す情報を、所与の線形制約条件情報６４として、記憶部２に格納する（ステップＳ２４）。
半正定値計画問題求解部５３は、記憶部２から読み出した目的関数情報６３と、所与の線形制約情報６４とによって特定される半正定値計画問題を求解し、得られた解情報６５を、記憶部２に格納する（ステップＳ２５）。
解を利用したクラスタリング部５４は、分析対象情報６１と解情報６５とを記憶部２から読み出し、解情報６５が表す計量行列を用いて、分析対象情報６１であるテキストデータの集合をクラスタリングし、その結果を、分析結果情報６６として記憶部２に格納する（ステップＳ２６）。
出力部５５は、記憶部２から読み出した分析結果情報６６を、例えば、分析結果を受け取る他の装置との通信規約に基づく別形式の情報、或いは、計算処理上の工夫に基づくその他の形式の情報等に必要に応じて整形（加工）し、出力情報６７として記憶部２に格納する（ステップＳ２７）。更に、出力部１６は、係る出力情報６７を、外部装置に出力する（ステップＳ２７）。
このように、第４の実施形態に係る計量学習装置は、分析対象に対してクラスタリング分析を施すのに先だって、上述した第３の実施形態に係る半正定値計画問題求解装置の機能を有する半正定値計画問題求解部５３を備える。この半正定値計画問題求解部５３は、第２の実施形態において説明した線形制約問題の求解手順を、定式化部５２によって用意された目的関数情報６３と所与の線形制約情報６４とを利用して実行する機能を有する。これにより、係る計量学習装置は、半正定値計画問題を解法する過程において行われる線形制約問題の求解の繰り返し回数を最小限にすることができる。従って、係る計量学習装置によれば、分析結果を得るまでの処理時間を短縮することができる。
即ち、上述した各実施形態によれば、半正定値計画問題を線形制約問題に近似して解く装置において、近似問題を生成してはその生成した近似問題を解く、という一連の動作を繰り返す回数を削減することができるので、迅速に解を求めることができる。
＜ハードウェアの構成例＞
ここで、上述した各実施形態に係る装置を実現可能なハードウェアの構成例について説明する。図８は、本発明の第１乃至第４の実施形態を実現可能なコンピュータ（情報処理装置）のハードウェア構成を例示的に説明する図である。
図８に示したコンピュータ（ＰＣ）１００のハードウェアは、ＣＰＵ１０１、入出力ユーザインタフェース１０２、通信インタフェース（Ｉ／Ｆ）１０３、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１０４、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１０５、ハードディスクドライブ（ＨＤ）１０７、及び記憶媒体１０９のドライブ装置１０８を備え、これらがバス１０６を介して接続された構成を有する。入出力ユーザインタフェース１０２は、入力デバイスの一例であるキーボードや、出力デバイスとしてのディスプレイ等のマンマシンインタフェースである。通信インタフェース１０３は、上述した各実施形態に係る装置（図１，図２，図４，図６）が、外部装置とのとの間において、通信ネットワーク２００を介して通信するための一般的な通信手段である。係るハードウェア構成において、ＣＰＵ１０１は、各実施形態に係る装置としてのコンピュータ１００の全体の動作を司る。
そして、上述した第１乃至第４の実施形態を例に説明した本発明は、その説明において参照したフローチャート（図３，図５，図７）の機能、或いは、図１，図２，図４，図６に示したブロック図においてプロセッサ１内に示した各部（各ブロック）の機能を実現可能なプログラムを、図８に示すコンピュータ１００に対して供給した後、そのプログラムを、ＣＰＵ１０１に読み出して実行することによって達成される。また、コンピュータ１００内に供給されたプログラムは、読み書き可能な一時記憶メモリ（１０５）またはハードディスク装置（１０７）等の不揮発性の記憶装置に格納すれば良い。即ち、ハードディスク装置１０７において、プログラム群１０７Ａは、例えば、上述した各実施形態におけるプロセッサ１内に示した各部を実現可能なプログラムである。また、各種の記憶情報１０７Ｂは、例えば、上述した各実施形態における記憶部２内に示した各種情報である。
また、前記の場合において、当該装置内へのプログラムの供給方法は、ＣＤ−ＲＯＭ、フラッシュメモリ等のコンピュータ読み取り可能な各種の記録媒体（１０９）を介して当該装置内にインストールする方法や、インターネット等の通信回線（２００）を介して外部よりダウンロードする方法等のように、現在では一般的な手順を採用することができる。そして、このような場合において、本発明は、係るコンピュータ・プログラムを表すコード（プログラム群１０７Ａ）、或いは係るコードが格納された記憶媒体（１０９）によって構成されると捉えることができる。
但し、本発明は、上記の如くプログラムをコンピュータにおいて実行することによって実現する態様には限定されない。本発明は、例えば、上述した各実施形態に係る装置の機能を実現する専用の装置によっても実現可能である。また、本発明は、図８を参照して例示した１つのコンピュータを利用して実行される場合だけでなく、物理的及び／または論理的に複数のコンピュータによって構成される情報処理システムを利用して実現してもよい。
以上、上述した実施形態を模範的な例として本発明を説明した。しかしながら、本発明は、上述した実施形態には限定されない。即ち、本発明は、本発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
この出願は、２０１１年９月２６日に出願された日本出願特願２０１１−２０８７３２を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【産業上の利用可能性】
【０００９】
上述した各実施形態を例に説明した本発明は、例えば、マイニングプロセスの設計最適化システム等のように、情報処理装置を利用して、半正定値計画問題を、線形制約問題に近似して解く各種の装置に広く適用することができる。
【符号の説明】
【００１０】
１    プロセッサ
２    記憶部
１１，３１，５１    入力部
１２    目的関数線形近似部
１３    行列演算部
１４    固有値・固有ベクトル算出部
１５    固有ベクトル選択部
１６，３７，５５    出力部
２１，４１，６３    目的関数情報
２２，４３    暫定解情報
２３    近似結果情報
２４    行列演算情報
２５    固有値・固有ベクトル情報
２６    選択結果情報
２７，４５，６７    出力情報
３２    初期値生成部
３３    違反方向を考慮した線形制約条件生成部
３４    目的関数を考慮した線形制約条件生成部
３５    線形制約問題求解部
３６    半正定条件判定部
４２，６４    所与の線形制約条件情報
４４    生成線形制約条件情報
５２    定式化部
５３    半正定値計画問題求解部
５４    解を利用したクラスタリング部
６１    分析対象情報
６２    ユーザ要求情報
６５    解情報
６６    分析結果情報
１００    コンピュータ（情報処理装置）
１０１    ＣＰＵ
１０２    入出力ユーザインタフェース
１０３    通信インタフェース
１０４    ＲＯＭ
１０５    ＲＡＭ
１０６    バス
１０７    ハードディスク装置
１０７Ａ    プログラム群
１０７Ｂ    各種の記憶情報
１０８    ドライブ装置
１０９    記憶媒体
２００    通信ネットワーク
３００    線形制約条件生成装置
３０１    線形近似解情報
３０２    線形制約条件情報
３１１    行列演算部
３１２    ベクトル演算部
【図１】
0005942998.tif 000002
【図２】
0005942998.tif 000003
【図３】
0005942998.tif 000004
【図４】
0005942998.tif 000005
【図５】
0005942998.tif 000006
【図６】
0005942998.tif 000007
【図７】
0005942998.tif 000008
【図８】
0005942998.tif 000009