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