(57)【要約】【課題】適合度増加の要因を特定する。【解決手段】入力データを処理して処理結果を出力データとして出力する複数の処理部品を組み合わせた少なくとも１つの変換器から、遺伝的処理により新たな変換器を生成する生成部と、それぞれの変換器について、学習用入力データから学習用目標データへの変換に対する適合度を算出する適合度算出部と、新たな変換器について算出した適合度が、少なくとも１つの変換器に対して予め定められた基準値以上増加したことに応じて、適合度増加の要因を特定する特定部と、を備える遺伝的処理装置を提供する。【選択図】図１
2010244363.tif 000002
【特許請求の範囲】
【請求項１】
入力データを処理して処理結果を出力データとして出力する複数の処理部品を組み合わせた少なくとも１つの変換器から、遺伝的処理により新たな変換器を生成する生成部と、
それぞれの前記変換器について、学習用入力データから学習用目標データへの変換に対する適合度を算出する適合度算出部と、
前記新たな変換器について算出した前記適合度が、前記少なくとも１つの変換器に対して予め定められた基準値以上増加したことに応じて、適合度増加の要因を特定する特定部と、
を備える遺伝的処理装置。
【請求項２】
前記特定部は、適合度増加の要因となった前記変換器または少なくとも１つの前記処理部品の組を特定する請求項１に記載の遺伝的処理装置。
【請求項３】
適合度増加の要因が前記特定部により特定されたことに応じて、当該要因に対応付けられたスコアを増加させる加算部を更に備える請求項１または２に記載の遺伝的処理装置。
【請求項４】
前記加算部は、前記少なくとも１つの変換器の前記適合度に対する前記新たな変換器の前記適合度の増分に応じて前記スコアの増加量を決定する請求項３に記載の遺伝的処理装置。
【請求項５】
前記生成部は、適合度増加の要因となった前記変換器または少なくとも１つの前記処理部品の組を、他の前記変換器と交叉させる交叉確率を増やす請求項１から４のいずれかに記載の遺伝的処理装置。
【請求項６】
前記生成部は、適合度増加の要因となった少なくとも１つの前記処理部品の組を含む前記変換器において、当該少なくとも１つの前記処理部品の組の一部を分割して他の前記変換器と交叉される確率を減少させる請求項１から５のいずれかに記載の遺伝的処理装置。
【請求項７】
前記生成部は、前記変換器の一部を、適合度増加の要因となった少なくとも１つの前記処理部品の組に突然変異させる突然変異確率を増やす請求項１から６のいずれかに記載の遺伝的処理装置。
【請求項８】
前記生成部は、入力画像を出力画像にそれぞれ変換する複数のフィルタ部品を組み合わせた画像フィルタを少なくとも１つ含む画像フィルタ群の中から、遺伝的処理により新たな画像フィルタを生成して前記画像フィルタ群に加える請求項１から７のいずれかに記載の遺伝的処理装置。
【請求項９】
入力データを処理して処理結果を出力データとして出力する複数の処理部品を組み合わせた少なくとも１つの変換器から、遺伝的処理により新たな変換器を生成する生成ステップと、
それぞれの前記変換器について、学習用入力データから学習用目標データへの変換に対する適合度を算出する適合度算出ステップと、
前記新たな変換器について算出した前記適合度が、前記少なくとも１つの変換器に対して予め定められた基準値以上増加したことに応じて、適合度増加の要因を特定する特定ステップと、
を備える遺伝的処理方法。
【請求項１０】
コンピュータを請求項１に記載の遺伝的処理装置として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、遺伝的処理装置、遺伝的処理方法およびプログラムに関する。
【背景技術】
【０００２】
遺伝的アルゴリズムまたは遺伝的プログラミング等の進化的計算を用いた画像フィルタの生成方法が知られている（非特許文献１参照）。この方法においては、画像フィルタに対して、交叉、突然変異および選択等の操作を複数回繰り返すことにより、新たな画像フィルタを生成する。このような方法によれば、それぞれの事例に最適であって、解析的に得ることが困難な複雑な構造の画像フィルタを、より少ない労力で設計することができる。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】前薗正宜  他２名、「遺伝的アルゴリズムによる画像フィルタ設計の研究」、［ｏｎｌｉｎｅ］、コンピュータ利用教育協議会、［２００８年３月２０日検索］、インターネット＜URL：http://www.ciec.or.jp/event/2003/papers/pdf/E00086.pdf＞
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、このような進化的計算を用いた画像フィルタの生成方法は、目的の画像フィルタが得られるまでに膨大な世代数を必要とするので、演算コストが膨大となってしまっていた。また、このような方法では、一部分に有効な遺伝子を含んだ画像フィルタであっても、適合度が低い場合には淘汰されてしまう可能性がある。進化の過程において有効な遺伝子を有する画像フィルタが淘汰されてしまった場合、目的の画像フィルタを得るまでの演算コストが大きくなる可能性が高く、更には、目的の画像フィルタが得られない可能性もある。
【課題を解決するための手段】
【０００５】
上記課題を解決するために、本発明の第１の態様においては、入力データを処理して処理結果を出力データとして出力する複数の処理部品を組み合わせた少なくとも１つの変換器から、遺伝的処理により新たな変換器を生成する生成部と、それぞれの前記変換器について、学習用入力データから学習用目標データへの変換に対する適合度を算出する適合度算出部と、前記新たな変換器について算出した前記適合度が、前記少なくとも１つの変換器に対して予め定められた基準値以上増加したことに応じて、適合度増加の要因を特定する特定部と、を備える遺伝的処理装置、遺伝的処理方法およびプログラムを提供する。
【０００６】
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではない。また、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【図面の簡単な説明】
【０００７】
【図１】図１は、本発明の実施形態に係る遺伝的処理装置１０の構成を示す。
【図２】図２は、本実施形態に係る処理部品２２を直列に組み合わせた構成の変換器２０の一例を示す。
【図３】図３は、本実施形態に係る処理部品２２を木構造に組み合わせた構成の変換器２０の一例を示す。
【図４】図４は、本実施形態に係る処理部品２２を直列に組み合わせた構成の変換器２０に対して行われる遺伝的な操作の一例を示す。
【図５】図５は、本実施形態に係る処理部品２２を木構造に組み合わせた構成の変換器２０に対して行われる交叉操作の一例を示す。
【図６】図６は、本実施形態に係る処理部品２２を木構造に組み合わせた構成の変換器２０に対して行われる突然変異操作の一例を示す。
【図７】図７は、本実施形態に係る遺伝的処理装置１０の処理フローを示す。
【図８】図８は、図７のステップＳ１４における遺伝的処理装置１０の要因特定処理の処理フローの一例を示す。
【図９】図９は、本実施形態に係る適合度増加の要因の一例を示す。
【図１０】図１０は、本実施形態に係る適合度増加の要因毎に対応付けられたスコアの一例を示す。
【図１１】図１１は、本発明の実施形態に係るコンピュータ１９００のハードウェア構成の一例を示す。
【発明を実施するための形態】
【０００８】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【０００９】
図１は、本実施形態に係る遺伝的処理装置１０の構成を示す。遺伝的処理装置１０は、入力データを処理して処理結果を出力データとして出力する複数の処理部品２２の入出力間を組み合わせた変換器２０を含む変換器群を進化的計算に基づいて複数世代にわたり進化させる。そして、遺伝的処理装置１０は、学習用入力データを学習用目標データへ変換するのに適した変換器２０を生成する。
【００１０】
遺伝的処理装置１０は、一例として、コンピュータにより実現される。また、変換器２０は、一例として、画像フィルタであってよい。
【００１１】
遺伝的処理装置１０は、変換器格納部３４と、学習用入力データ格納部３６と、変換処理部３８と、学習用出力データ格納部４０と、学習用目標データ格納部４２と、適合度算出部４４と、選択部４６と、更新部４８と、生成部５０と、履歴格納部５２と、特定部５４と、スコア格納部５６と、加算部５８とを備える。変換器格納部３４は、互いに異なる構成の複数の変換器２０を格納する。
【００１２】
学習用入力データ格納部３６は、変換器２０の変換対象である学習用入力データを格納する。学習用入力データは、一例として、当該遺伝的処理装置１０により生成された変換器２０が適用されるアプリケーションにおいて、変換器２０に実際に与えられるデータのサンプルであってよい。変換器２０が画像フィルタである場合、学習用入力データは、一例として、使用者により予め生成または撮影された画像であってよい。
【００１３】
変換処理部３８は、変換器格納部３４に格納された複数の変換器２０を順次に取得する。変換処理部３８は、取得したそれぞれの変換器２０により、学習用入力データ格納部３６に格納された学習用入力データを変換させて、学習用出力データのそれぞれを生成する。
【００１４】
学習用出力データ格納部４０は、変換処理部３８において生成された学習用出力データを格納する。学習用出力データ格納部４０は、一例として、生成された学習用出力データのそれぞれを、変換した変換器２０に対応付けて格納する。
【００１５】
学習用目標データ格納部４２は、学習用入力データを変換して生成される学習用出力データの目標となる学習用目標データを格納する。学習用目標データは、一例として、当該遺伝的処理装置１０により生成された変換器２０が適用されるアプリケーションにおいて、変換器２０が実際に出力するべきデータのサンプルであってよい。変換器２０が画像フィルタである場合、学習用目標データは、一例として、使用者により予め生成または撮影された画像であってよい。
【００１６】
適合度算出部４４は、変換器格納部３４に格納されたそれぞれの変換器２０について、学習用入力データから学習用目標データへの変換に対する適合度を算出する。ここで、適合度は、学習用入力データを学習用目標データへと変換するのに適しているかどうかを表す指標値であり、値が高いほど学習用入力データを学習用目標データへと変換するのに適していることを表す。
【００１７】
選択部４６は、変換器格納部３４に格納された複数の変換器２０のうち少なくとも１つの変換器２０を選択する。この場合において、選択部４６は、適合度がより高い変換器２０を優先的に選択する。より具体的には、選択部４６は、生物の自然淘汰をモデル化した手法により、残存させる少なくとも１つの変換器２０を選択する。選択部４６は、一例として、変換器格納部３４に格納された複数の変換器２０のそれぞれの適合度に基づき、エリート選択およびルーレット選択といった遺伝的計算により少なくとも１つの変換器２０を選択する。
【００１８】
更新部４８は、変換器格納部３４に格納された複数の変換器２０のうち、選択部４６により選択された変換器２０を残存させ、選択部４６により選択されなかった変換器２０を淘汰する。更新部４８は、一例として、変換器２０を変換器格納部３４から削除することにより淘汰する。
【００１９】
生成部５０は、変換器格納部３４に格納された少なくとも１つの変換器２０から、遺伝的処理により新たな変換器２０を生成する。即ち、生成部５０は、少なくとも１つの変換器２０を親として、遺伝的処理により新たな変換器２０を生成する。そして、生成部５０は、生成した新たな変換器２０を変換器格納部３４に書き込む。
【００２０】
生成部５０は、一例として、更新部４８による更新処理において残存した少なくとも１つの変換器２０を、変換器格納部３４から取得する。続いて、生成部５０は、一例として、取得した少なくとも１つの変換器２０に対して交叉および突然変異等の遺伝的な操作をして、新たな変換器２０を生成する。そして、生成部５０は、一例として、生成した新たな変換器２０を変換器格納部３４に書き込む。これにより、変換器格納部３４は、更新処理において残存した少なくとも１つの変換器２０および生成部５０が生成した新たな変換器２０を、格納することができる。
【００２１】
履歴格納部５２は、生成部５０が生成した新たな変換器２０のそれぞれについての、遺伝的な操作の履歴を格納する。履歴格納部５２は、一例として、生成した新たな変換器２０のそれぞれについて、遺伝的な操作の種類、親の変換器２０を特定するための情報、および、交叉および突然変異の操作により置換した処理部品２２の組を特定するための情報を記憶する。
【００２２】
特定部５４は、生成部５０が生成した新たな変換器２０について算出した適合度が、当該新たな変換器２０の親である少なくとも１つの変換器２０に対して予め定められた基準値以上増加したことに応じて、適合度増加の要因を特定する。特定部５４は、一例として、履歴格納部５２を参照して、適合度増加の要因となった変換器２０または少なくとも１つの処理部品２２の組を特定する。
【００２３】
スコア格納部５６は、新たな変換器２０の適合度増加の要因毎に、当該要因に対応付けられたスコアを格納する。なお、生成部５０は、スコア格納部５６が格納するスコアを参照して、次以降の新たな変換器２０を生成する。
【００２４】
加算部５８は、適合度増加の要因が特定部５４により特定されたことに応じて、当該要因に対応付けられたスコアを増加させる。加算部５８は、一例として、親である少なくとも１つの変換器２０の適合度に対する新たな変換器２０の適合度の増分に応じてスコアの増加量を決定する。
【００２５】
このような遺伝的処理装置１０は、変換処理部３８による変換処理、適合度算出部４４による適合度の算出処理、選択部４６による変換器２０の選択処理、更新部４８による更新処理および生成部５０による新たな変換器２０の生成処理を、複数回（例えば複数世代）繰り返す。これにより、遺伝的処理装置１０は、学習用入力データを学習用目標データへ変換するのに適した変換器２０を、進化的計算を用いて生成することができる。
【００２６】
図２は、処理部品２２を直列に組み合わせた構成の変換器２０の一例を示す。図３は、処理部品２２を木構造に組み合わせた構成の変換器２０の一例を示す。
【００２７】
変換器２０は、一例として、図２に示されるような、複数の処理部品２２を直列に組み合わせた構成であってよい。また、変換器２０は、一例として、図３に示されるような、複数の処理部品２２を木構造に組み合わせた構成であってもよい。また、変換器２０は、一例として、１つの入力端に対して、複数の出力端を有する構成であってもよい。また、変換器２０は、一例として、複数の入力端および複数の出力端を有する構成であってもよい。
【００２８】
なお、処理部品２２が木構造に組み合わされた構成の変換器２０は、木構造の末端の処理部品２２に入力データが与えられ、木構造の最上位の処理部品２２から出力データを出力する。また、このような変換器２０は、複数の末端の処理部品２２のそれぞれに、同一の入力データが与えられる。これに代えて、このような変換器２０は、複数の末端の処理部品２２のそれぞれに互いに異なる入力データが与えられてもよい。
【００２９】
また、例えば、変換器２０は、入力画像を出力画像にそれぞれ変換する複数のフィルタ部品である処理部品２２を組み合わせた画像フィルタであってよい。この場合、各処理部品２２は、前段に配置された処理部品２２から出力された画像データを受け取り、受け取った画像データに演算を施して後段に配置された処理部品２２に与える。また、この場合、遺伝的処理装置１０は、複数の画像フィルタを含む画像フィルタ群を進化的計算に基づいて複数世代にわたり進化させる。
【００３０】
また、変換器２０は、一例として、ハードウェアである処理部品２２を組み合わせた構成であってよい。また、変換器２０は、データに対して演算を施すプログラムである処理部品２２を組み合わせた構成であってもよい。また、変換器２０は、データに対して施すべき演算内容を表わす演算式である処理部品２２を組み合わせた構成であってもよい。
【００３１】
また、変換器２０は、例えば、１次元データ列、２次元データ群、３次元データ群、又は、更に多次元のデータ群等を変換してもよい。１次元データ列は、例えば、時系列データ又は配列状のデータ列等である。２次元データ群は、例えば、複数の画素データ等が２次元空間に配列された画像データ等である。３次元データ群は、例えば、色又は濃度等を表わすデータ値が３次元空間の各格子点に配置されたボリュームデータ等である。また、変換器２０は、入力されたデータと異なる次元のデータを出力してもよい。
【００３２】
複数の処理部品２２のそれぞれは、一例として、２値化演算、ヒストグラム演算、平滑化演算、エッジ検出演算、モルフォロジ演算及び／又は周波数空間での演算（例えば、ローパスフィルタリング演算およびハイパスフィルタリング演算）等の単項演算をする。さらに、複数の処理部品２２のそれぞれは、一例として、平均演算、差分演算及び／又はファジー演算（例えば論理和演算、論理積演算、代数和、代数積、限界和、限界積、激烈和および激烈積等）等の二項演算をしてもよい。
【００３３】
図４は、処理部品２２を直列に組み合わせた構成の変換器２０に対して行われる遺伝的な操作の一例を示す。図５は、処理部品２２を木構造に組み合わせた構成の変換器２０に対して行われる交叉操作の一例を示す。図６は、処理部品２２を木構造に組み合わせた構成の変換器２０に対して行われる突然変異操作の一例を示す。
【００３４】
生成部５０は、一例として、２個又はそれ以上の変換器２０に対して、遺伝的な操作の一例である交叉操作を行って新たな２個又はそれ以上の変換器２０を生成する。生成部５０は、一例として、図４および図５に示されるように、既に生成された少なくとも１つの一の変換器２０Ａの一部の部品群２４Ａを、既に生成された他の変換器２０Ｂの少なくとも一部の部品群２４Ｂと置換して、新たな変換器２０Ｅおよび２０Ｆを生成する。なお、部品群２４は、少なくとも１つの処理部品２２の組を表す部材である。
【００３５】
また、生成部５０は、一例として、一の変換器２０に対して、遺伝的な操作の一例である突然変異操作を行って新たな一の変換器２０を生成する。生成部５０は、一例として、図４および図６に示されるように、既に生成された一の変換器２０Ｃの一部の部品群２４Ｃを、例えばランダムに選択された他の部品群２４Ｇに置換して、新たな変換器２０Ｇを生成する。
【００３６】
また、生成部５０は、一例として、現世代の変換器２０をそのまま次世代の変換器２０として残してもよい。生成部５０は、一例として、図４に示されるように、変換器２０Ｄの処理部品２２の構成をそのまま含む次世代の変換器２０Ｈを生成する。
【００３７】
図７は、遺伝的処理装置１０の処理フローを示す。遺伝的処理装置１０は、ステップＳ１２〜ステップＳ１７の各処理を、複数回（例えば複数世代）繰返して実行する（Ｓ１１、Ｓ１８）。
【００３８】
それぞれの世代において、まず、変換処理部３８は、現世代の変換器群に含まれる複数の変換器２０のそれぞれについて、当該変換器２０により学習用入力データを変換した学習用出力データを生成する（Ｓ１２）。変換処理部３８は、生成した学習用出力データを当該変換器２０に対応付けて学習用出力データ格納部４０に格納させる。
【００３９】
続いて、適合度算出部４４は、現世代の変換器群に含まれる複数の変換器２０のそれぞれについて、適合度を算出する（Ｓ１３）。適合度算出部４４は、一例として、学習用出力データと学習用目標データとの類似度または近似度を適合度として算出する。
【００４０】
続いて、特定部５４は、生成部５０により生成された新たな変換器２０のそれぞれについて、親である少なくも１つの変換器２０から適合度が基準値以上増加しているか否かを判断する。そして、特定部５４は、親である少なくとも１つの変換器２０から適合度が基準値増加した新たな変換器２０については、適合度増加の要因を特定する（Ｓ１４）。なお、ステップＳ１４の処理の詳細は、図８以降において更に説明する。
【００４１】
続いて、選択部４６は、現世代の変換器群に含まれる複数の変換器２０のうち、適合度が高い変換器２０を優先的に選択する（Ｓ１５）。選択部４６は、一例として、適合度が基準値より高い変換器２０を選択する。
【００４２】
また、選択部４６は、一例として、現世代の変換器群に含まれる複数の変換器２０のうち、適合度が上位から予め定められた範囲の変換器２０を選択してもよい。また、選択部４６は、一例として、適合度がより高い変換器２０がより高い確率で選択されるように設定がされている条件下で、ランダムに変換器２０を選択してもよい。なお、選択部４６は、一例として、最後の世代においては、適合度の最も高い１個の変換器２０を選択する。
【００４３】
続いて、更新部４８は、変換器格納部３４に格納された変換器群を更新する（Ｓ１６）。より具体的には、更新部４８は、現世代の変換器群に含まれる複数の変換器２０のうちステップＳ１５において選択された変換器２０を次世代へと残存させ、他の変換器２０を淘汰することにより、変換器群を更新する。更新部４８は、一例として、ステップＳ１５において選択されなかった変換器２０を、変換器格納部３４から消去することによって淘汰する。
【００４４】
続いて、生成部５０は、更新処理によって変換器群に残存した少なくとも１つの変換器２０に対して、交叉および突然変異等の遺伝的な操作を行って、１または複数個の新たな変換器２０を生成する（Ｓ１７）。そして、生成部５０は、残存した変換器２０および新たな変換器２０を、次世代の変換器群に含まれる複数の変換器２０として変換器格納部３４に格納させる。なお、生成部５０は、最後の世代においては、当該処理を実行しない。
【００４５】
遺伝的処理装置１０は、以上の処理を複数の世代（例えば数十世代または数百世代以上）繰返して実行して、最後の世代（例えば第Ｎ世代、Ｎは２以上の自然数）まで処理を実行した後に、当該フローを抜ける（Ｓ１８）。このようにして、遺伝的処理装置１０は、学習用入力データを学習用目標データへ変換するのに適した変換器２０を、進化的計算を用いて生成することができる。
【００４６】
図８は、図７のステップＳ１４における遺伝的処理装置１０の要因特定処理の処理フローの一例を示す。遺伝的処理装置１０は、生成部５０により生成された新たな変換器２０のそれぞれについて、ステップＳ２２〜ステップＳ２５の各処理を実行する（Ｓ２１、Ｓ２６）。
【００４７】
まず、特定部５４は、処理対象である新たな変換器２０の適合度を適合度算出部４４から取得する（Ｓ２２）。続いて、特定部５４は、処理対象である新たな変換器２０の適合度が、当該新たな変換器２０の親である少なくとも１つの変換器２０の適合度から基準値以上増加したか否かを判断する（Ｓ２３）。
【００４８】
適合度が基準値以上増加していない場合には（Ｓ２３のＮｏ）、特定部５４は、当該新たな変換器２０についての処理を終了して（Ｓ２６）、次の新たな変換器２０についてステップＳ２２〜ステップＳ２５の処理を実行する。適合度が基準値以上増加している場合には（Ｓ２３のＹｅｓ）、特定部５４は、処理をステップＳ２４に進める。
【００４９】
ステップＳ２４において、特定部５４は、処理対象である新たな変換器２０の適合度増加の要因を特定する（Ｓ２４）。特定部５４は、一例として、履歴格納部５２を参照して、適合度増加の要因となった変換器２０または少なくとも１つの処理部品２２の組を特定する。なお、特定する変換器２０および処理部品２２の一例については、図９において説明する。
【００５０】
続いて、加算部５８は、適合度増加の要因が特定部５４により特定されたことに応じて、当該要因に対応付けられたスコアを増加させる（Ｓ２５）。加算部５８は、一例として、少なくとも１つの変換器２０の適合度に対する新たな変換器２０の適合度の増分に応じてスコアの増加量を決定する。
【００５１】
遺伝的処理装置１０は、生成部５０により生成された新たな変換器２０の全てについて、以上の処理を実行した後に、当該フローを抜ける（Ｓ２６）。このようにして、特定部５４は、新たな変換器２０についての適合度の増加の要因を特定することができる。
【００５２】
図９は、適合度増加の要因の一例を示す。変換器群には、前世代から残存した変換器２０と、前世代から残存した変換器２０を親として生成された新たな変換器２０とを含む。
【００５３】
上述したように、特定部５４は、新たな変換器２０の適合度が、当該新たな変換器２０の親である少なくとも１つの変換器２０の適合度から基準値以上増加したか否かを判断する。そして、特定部５４は、適合度が基準値以上増加した新たな変換器２０については、適合度増加の要因を特定する。
【００５４】
特定部５４は、一例として、新たな変換器２０が突然変異により生成された場合には、突然変異をした親の変換器２０を適合度増加の要因として特定する。また、特定部５４は、一例として、新たな変換器２０が突然変異により生成された場合には、親の変換器２０の一部と置換した処理部品２２の組（部品群２４）を、適合度増加の要因として特定する。
【００５５】
また、特定部５４は、一例として、新たな変換器２０が交叉により生成された場合には、交叉をした親の変換器２０を適合度増加の要因として特定する。また、特定部５４は、一例として、交叉により置換した処理部品２２の組（部品群２４）を適合度増加の要因として特定する。
【００５６】
これにより、特定部５４は、適合度を増加させる可能性の高い処理部品２２を有する変換器２０、および、一部に組み込まれることによりその変換器２０の適合度を増加させる可能性の高い処理部品２２を、特定することができる。これにより、遺伝的処理装置１０は、適合度増加の要因として特定された変換器２０および処理部品２２の組を、他よりも高い確率で用いた遺伝的処理を行うことによって、目的の変換器２０を得るまでの演算コスト（演算時間を含む）を小さくすることができる。
【００５７】
図１０は、適合度増加の要因毎に対応付けられたスコアの一例を示す。スコア格納部５６は、適合度増加の要因毎に対応付けられたスコアを含むテーブルを格納する。スコア格納部５６は、一例として、最初の世代においては、それぞれの要因に対して初期値のスコアが設定される。また、スコア格納部５６は、一例として、特定部５４により新たな要因が特定される毎に、当該新たな要因をテーブルに追加する。
【００５８】
加算部５８は、一例として、適合度増加の要因が特定部５４により特定されたことに応じて、当該要因に対応付けられたスコアを増加させる。この場合において、加算部５８は、一例として、親となる少なくとも１つの変換器２０の適合度に対する新たな変換器２０の適合度の増分に応じてスコアの増加量を決定する。加算部５８は、一例として、適合度の増分が大きいほど、スコアの増加量を大きくする。このような加算部５８は、適合度を増加させる可能性がより高い要因ほど、スコアをより大きな値とすることができる。
【００５９】
生成部５０は、新たな変換器２０を生成する場合において、一例として、適合度増加の要因となった変換器２０または少なくとも１つの処理部品２２の組を、他の変換器２０と交叉させる交叉確率を増やす。生成部５０は、一例として、スコアが基準値より大きい変換器２０および処理部品２２の組を、予め設定された交叉確率より高い確率で他の変換器２０と交叉させる。この場合、生成部５０は、スコアの大きさに応じて当該変換器２０および処理部品２２の組の交叉確率を変えてもよい。このような生成部５０は、適合度の高い変換器２０を生成できる可能性を高くすることができる。
【００６０】
更に、生成部５０は、一例として、適合度増加の要因となった少なくとも１つの処理部品２２の組を含む変換器２０において、当該少なくとも１つの処理部品２２の組の一部のみを分割して他の変換器２０と交叉される確率を減少させてもよい。生成部５０は、一例として、スコアが基準値より大きい処理部品２２の組について、当該処理部品２２の組の一部のみを分割して他の変換器２０と交叉される確率を、予め設定された確率より低くする。これにより、適合度増加の要因となった処理部品２２が分断される確率が低くなるので、生成部５０は、適合度の高い変換器２０を生成できる可能性を高くすることができる。
【００６１】
また、生成部５０は、新たな変換器２０を生成する場合において、一例として、変換器２０の一部を、適合度増加の要因となった少なくとも１つの処理部品２２の組に突然変異させる突然変異確率を増やす。生成部５０は、一例として、スコアが基準値より大きい処理部品２２の組を予め設定された突然変異確率より高い確率で、親となる変換器２０の一部と置換する。この場合、生成部５０は、スコアの大きさに応じて、突然変異確率を変えてもよい。このような生成部５０は、適合度の高い変換器２０を生成できる可能性を高くすることができる。
【００６２】
更に、生成部５０は、一例として、親となる変換器２０に含まれる適合度増加の要因となった処理部品２２の組の数に応じて、当該親となる変換器２０を突然変異させる確率を変更してもよい。生成部５０は、一例として、親となる変換器２０に含まれる適合度増加の要因となった処理部品２２の組の数が基準数よりも多い場合には、当該親となる変換器２０を突然変異させる確率を予め定められた突然変異確率より低くする。これにより、適合度増加の要因となった処理部品２２が、他の処理部品２２に置き換えられる確率が低くなるので、生成部５０は、適合度の高い変換器２０を生成できる可能性を高くすることができる。
【００６３】
図１１は、本実施形態に係るコンピュータ１９００のハードウェア構成の一例を示す。本実施形態に係るコンピュータ１９００は、ホスト・コントローラ２０８２により相互に接続されるＣＰＵ２０００、ＲＡＭ２０２０、グラフィック・コントローラ２０７５、及び表示装置２０８０を有するＣＰＵ周辺部と、入出力コントローラ２０８４によりホスト・コントローラ２０８２に接続される通信インターフェイス２０３０、ハードディスクドライブ２０４０、及びＣＤ−ＲＯＭドライブ２０６０を有する入出力部と、入出力コントローラ２０８４に接続されるＲＯＭ２０１０、フレキシブルディスク・ドライブ２０５０、及び入出力チップ２０７０を有するレガシー入出力部とを備える。
【００６４】
ホスト・コントローラ２０８２は、ＲＡＭ２０２０と、高い転送レートでＲＡＭ２０２０をアクセスするＣＰＵ２０００及びグラフィック・コントローラ２０７５とを接続する。ＣＰＵ２０００は、ＲＯＭ２０１０及びＲＡＭ２０２０に格納されたプログラムに基づいて動作し、各部の制御を行う。グラフィック・コントローラ２０７５は、ＣＰＵ２０００等がＲＡＭ２０２０内に設けたフレーム・バッファ上に生成する画像データを取得し、表示装置２０８０上に表示させる。これに代えて、グラフィック・コントローラ２０７５は、ＣＰＵ２０００等が生成する画像データを格納するフレーム・バッファを、内部に含んでもよい。
【００６５】
入出力コントローラ２０８４は、ホスト・コントローラ２０８２と、比較的高速な入出力装置である通信インターフェイス２０３０、ハードディスクドライブ２０４０、ＣＤ−ＲＯＭドライブ２０６０を接続する。通信インターフェイス２０３０は、ネットワークを介して他の装置と通信する。ハードディスクドライブ２０４０は、コンピュータ１９００内のＣＰＵ２０００が使用するプログラム及びデータを格納する。ＣＤ−ＲＯＭドライブ２０６０は、ＣＤ−ＲＯＭ２０９５からプログラム又はデータを読み取り、ＲＡＭ２０２０を介してハードディスクドライブ２０４０に提供する。
【００６６】
また、入出力コントローラ２０８４には、ＲＯＭ２０１０と、フレキシブルディスク・ドライブ２０５０、及び入出力チップ２０７０の比較的低速な入出力装置とが接続される。ＲＯＭ２０１０は、コンピュータ１９００が起動時に実行するブート・プログラム、及び／又は、コンピュータ１９００のハードウェアに依存するプログラム等を格納する。フレキシブルディスク・ドライブ２０５０は、フレキシブルディスク２０９０からプログラム又はデータを読み取り、ＲＡＭ２０２０を介してハードディスクドライブ２０４０に提供する。入出力チップ２０７０は、フレキシブルディスク・ドライブ２０５０を入出力コントローラ２０８４へと接続すると共に、例えばパラレル・ポート、シリアル・ポート、キーボード・ポート、マウス・ポート等を介して各種の入出力装置を入出力コントローラ２０８４へと接続する。
【００６７】
ＲＡＭ２０２０を介してハードディスクドライブ２０４０に提供されるプログラムは、フレキシブルディスク２０９０、ＣＤ−ＲＯＭ２０９５、又はＩＣカード等の記録媒体に格納されて利用者によって提供される。プログラムは、記録媒体から読み出され、ＲＡＭ２０２０を介してコンピュータ１９００内のハードディスクドライブ２０４０にインストールされ、ＣＰＵ２０００において実行される。
【００６８】
コンピュータ１９００にインストールされ、コンピュータ１９００を遺伝的処理装置１０として機能させるプログラムは、変換器格納モジュールと、学習用入力データ格納モジュールと、変換処理モジュールと、学習用出力データ格納モジュールと、学習用目標データ格納モジュールと、適合度算出モジュールと、選択モジュールと、更新モジュールと、生成モジュールと、履歴格納モジュールと、特定モジュールと、スコア格納モジュールと、加算モジュールとを備える。これらのプログラム又はモジュールは、ＣＰＵ２０００等に働きかけて、コンピュータ１９００を、変換器格納部３４、学習用入力データ格納部３６、変換処理部３８、学習用出力データ格納部４０、学習用目標データ格納部４２、適合度算出部４４、選択部４６、更新部４８、生成部５０、履歴格納部５２、特定部５４、スコア格納部５６および加算部５８としてそれぞれ機能させる。
【００６９】
これらのプログラムに記述された情報処理は、コンピュータ１９００に読込まれることにより、ソフトウェアと上述した各種のハードウェア資源とが協働した具体的手段である変換器格納部３４、学習用入力データ格納部３６、変換処理部３８、学習用出力データ格納部４０、学習用目標データ格納部４２、適合度算出部４４、選択部４６、更新部４８、生成部５０、履歴格納部５２、特定部５４、スコア格納部５６および加算部５８として機能する。そして、これらの具体的手段によって、本実施形態におけるコンピュータ１９００の使用目的に応じた情報の演算又は加工を実現することにより、使用目的に応じた特有の遺伝的処理装置１０が構築される。
【００７０】
一例として、コンピュータ１９００と外部の装置等との間で通信を行う場合には、ＣＰＵ２０００は、ＲＡＭ２０２０上にロードされた通信プログラムを実行し、通信プログラムに記述された処理内容に基づいて、通信インターフェイス２０３０に対して通信処理を指示する。通信インターフェイス２０３０は、ＣＰＵ２０００の制御を受けて、ＲＡＭ２０２０、ハードディスクドライブ２０４０、フレキシブルディスク２０９０、又はＣＤ−ＲＯＭ２０９５等の記憶装置上に設けた送信バッファ領域等に記憶された送信データを読み出してネットワークへと送信し、もしくは、ネットワークから受信した受信データを記憶装置上に設けた受信バッファ領域等へと書き込む。このように、通信インターフェイス２０３０は、ＤＭＡ（ダイレクト・メモリ・アクセス）方式により記憶装置との間で送受信データを転送してもよく、これに代えて、ＣＰＵ２０００が転送元の記憶装置又は通信インターフェイス２０３０からデータを読み出し、転送先の通信インターフェイス２０３０又は記憶装置へとデータを書き込むことにより送受信データを転送してもよい。
【００７１】
また、ＣＰＵ２０００は、ハードディスクドライブ２０４０、ＣＤ−ＲＯＭドライブ２０６０（ＣＤ−ＲＯＭ２０９５）、フレキシブルディスク・ドライブ２０５０（フレキシブルディスク２０９０）等の外部記憶装置に格納されたファイルまたはデータベース等の中から、全部または必要な部分をＤＭＡ転送等によりＲＡＭ２０２０へと読み込ませ、ＲＡＭ２０２０上のデータに対して各種の処理を行う。そして、ＣＰＵ２０００は、処理を終えたデータを、ＤＭＡ転送等により外部記憶装置へと書き戻す。このような処理において、ＲＡＭ２０２０は、外部記憶装置の内容を一時的に保持するものとみなせるから、本実施形態においてはＲＡＭ２０２０および外部記憶装置等をメモリ、記憶部、または記憶装置等と総称する。本実施形態における各種のプログラム、データ、テーブル、データベース等の各種の情報は、このような記憶装置上に格納されて、情報処理の対象となる。なお、ＣＰＵ２０００は、ＲＡＭ２０２０の一部をキャッシュメモリに保持し、キャッシュメモリ上で読み書きを行うこともできる。このような形態においても、キャッシュメモリはＲＡＭ２０２０の機能の一部を担うから、本実施形態においては、区別して示す場合を除き、キャッシュメモリもＲＡＭ２０２０、メモリ、及び／又は記憶装置に含まれるものとする。
【００７２】
また、ＣＰＵ２０００は、ＲＡＭ２０２０から読み出したデータに対して、プログラムの命令列により指定された、本実施形態中に記載した各種の演算、情報の加工、条件判断、情報の検索・置換等を含む各種の処理を行い、ＲＡＭ２０２０へと書き戻す。例えば、ＣＰＵ２０００は、条件判断を行う場合においては、本実施形態において示した各種の変数が、他の変数または定数と比較して、大きい、小さい、以上、以下、等しい等の条件を満たすかどうかを判断し、条件が成立した場合（又は不成立であった場合）に、異なる命令列へと分岐し、またはサブルーチンを呼び出す。
【００７３】
また、ＣＰＵ２０００は、記憶装置内のファイルまたはデータベース等に格納された情報を検索することができる。例えば、第１属性の属性値に対し第２属性の属性値がそれぞれ対応付けられた複数のエントリが記憶装置に格納されている場合において、ＣＰＵ２０００は、記憶装置に格納されている複数のエントリの中から第１属性の属性値が指定された条件と一致するエントリを検索し、そのエントリに格納されている第２属性の属性値を読み出すことにより、所定の条件を満たす第１属性に対応付けられた第２属性の属性値を得ることができる。
【００７４】
以上に示したプログラム又はモジュールは、外部の記録媒体に格納されてもよい。記録媒体としては、フレキシブルディスク２０９０、ＣＤ−ＲＯＭ２０９５の他に、ＤＶＤ又はＣＤ等の光学記録媒体、ＭＯ等の光磁気記録媒体、テープ媒体、ＩＣカード等の半導体メモリ等を用いることができる。また、専用通信ネットワーク又はインターネットに接続されたサーバシステムに設けたハードディスク又はＲＡＭ等の記憶装置を記録媒体として使用し、ネットワークを介してプログラムをコンピュータ１９００に提供してもよい。
【００７５】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【００７６】
特許請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。
【符号の説明】
【００７７】
１０  遺伝的処理装置、２０  変換器、２２  処理部品、２４  部品群、３４  変換器格納部、３６  学習用入力データ格納部、３８  変換処理部、４０  学習用出力データ格納部、４２  学習用目標データ格納部、４４  適合度算出部、４６  選択部、４８  更新部、５０  生成部、５２  履歴格納部、５４  特定部、５６  スコア格納部、５８  加算部、１９００  コンピュータ、２０００  ＣＰＵ、２０１０  ＲＯＭ、２０２０  ＲＡＭ、２０３０  通信インターフェイス、２０４０  ハードディスクドライブ、２０５０  フレキシブルディスク・ドライブ、２０６０  ＣＤ−ＲＯＭドライブ、２０７０  入出力チップ、２０７５  グラフィック・コントローラ、２０８０  表示装置、２０８２  ホスト・コントローラ、２０８４  入出力コントローラ、２０９０  フレキシブルディスク、２０９５  ＣＤ−ＲＯＭ
【図１】
2010244363.tif 000003
【図２】
2010244363.tif 000004
【図３】
2010244363.tif 000005
【図４】
2010244363.tif 000006
【図５】
2010244363.tif 000007
【図６】
2010244363.tif 000008
【図７】
2010244363.tif 000009
【図８】
2010244363.tif 000010
【図９】
2010244363.tif 000011
【図１０】
2010244363.tif 000012
【図１１】
2010244363.tif 000013