(57)【要約】【課題】適切な処理フローを迅速に生成することが可能な技術を提供する。【解決手段】複数の処理の順序を示す処理シーケンスと該複数の処理に係る１以上のパラメータの値とによってそれぞれ規定される第１処理フローおよび第２処理フローを含む複数の処理フローについて、処理シーケンスおよびパラメータの値の少なくとも一方を変更する変更処理、および変更処理によって得られた各処理フローに係る評価値の算出、該評価値に基づく複数の処理フローの取捨選択、が繰り返されることで、処理フローが生成される。ここで、変更処理には、第１処理フローと第２処理フローとの間において、パラメータの種類および該パラメータが取り得る値が共通する１以上の処理について、種類が対応する同一の数のパラメータの値が入れ替えられる交叉処理が含まれる。【選択図】図２１
2017182552.tif 000002
【特許請求の範囲】
【請求項１】
記憶部と、処理部と、を備え、
前記記憶部は、入力データおよび目標データを記憶し、
前記処理部は、
複数の処理の順序を示す処理シーケンスと該複数の処理に係る１以上のパラメータの値とによってそれぞれ規定される第１処理フローおよび第２処理フローを含む複数の処理フローを取得する取得部と、
前記第１処理フローと前記第２処理フローとの間において、パラメータの種類および該パラメータが取り得る値が共通する１以上の処理を検出する検出部と、
各前記処理フローについて、予め設定された第１変更ルールに従って前記処理シーケンスの少なくとも一部の処理を変更する第１変更処理、および予め設定された第２変更ルールに従って前記１以上のパラメータの値のうちの少なくとも一部のパラメータの値を変更する第２変更処理を実施する変更部と、
前記変更部によって前記第１変更処理および前記第２変更処理の少なくとも一方の変更処理が施された後の各前記処理フローについて、前記入力データに該処理フローに従った処理が施されることで得られる出力データと、前記目標データとの差異に応じた評価値を算出する評価部と、
各前記処理フローに係る前記評価値に基づいて、前記複数の処理フローについて取捨選択を行う取捨選択部と、を有し、
前記第２変更処理が、
前記検出部によって前記第１処理フローから検出された１以上の処理における１以上のパラメータと、前記検出部によって前記第２処理フローから検出された１以上の処理における１以上のパラメータとの間において、種類が対応する同一の数のパラメータの値が入れ替えられる交叉処理を含み、
前記処理部において、前記取捨選択部による前記取捨選択が行われた後における、前記変更部による前記第１変更処理および前記第２変更処理のうちの少なくとも一方の変更処理の実施、該変更部による前記少なくとも一方の変更処理によって得られた各処理フローに係る前記評価値の前記評価部による算出、および前記取捨選択部による該評価値に基づく前記取捨選択の実行、が繰り返されることで、前記出力データと前記目標データとの差異が低減される、処理フロー生成システム。
【請求項２】
請求項１に記載の処理フロー生成システムであって、
前記検出部は、
前記第１処理フローと前記第２処理フローとの間において、パラメータの種類および該パラメータが取り得る値が共通するとともに、１つの処理あるいは１つの処理と該１つの処理を行うためのデータを得る順序が同一の全ての処理とを含む２以上の処理、によって構成される部分的な処理シーケンスを検出し、
前記第２変更処理が、
前記第１処理フローにおいて前記部分的な処理シーケンスを構成する１以上の処理に係る１以上のパラメータと、前記第２処理フローにおいて前記部分的な処理シーケンスを構成する１以上の処理に係る１以上のパラメータとの間において、種類が対応する同一の数のパラメータの値が入れ替えられる交叉処理を含む、処理フロー生成システム。
【請求項３】
請求項２に記載の処理フロー生成システムであって、
前記第１処理フローと前記第２処理フローとの間において、前記部分的な処理シーケンスは同一である、処理フロー生成システム。
【請求項４】
請求項１に記載の処理フロー生成システムであって、
前記第１処理フローと前記第２処理フローとの間において、前記検出部によって検出される１以上の処理は、同種の処理である、処理フロー生成システム。
【請求項５】
請求項１から請求項４の何れか１つの請求項に記載の処理フロー生成システムであって、
前記処理部は、
予め設定された判定ルールに従って、前記変更部において前記第１変更処理および前記第２変更処理のうちの何れの変更処理を実行するのか判定する判定部、を更に有し、
前記処理部において、前記取捨選択部による前記取捨選択が行われた後における、前記判定部による判定結果に従った前記変更部による前記変更処理の実施、該変更部による前記変更処理によって得られた各処理フローに係る前記評価値の前記評価部による算出、および前記取捨選択部による該評価値に基づく前記取捨選択の実行、が繰り返されることで、前記出力データと前記目標データとの差異が低減される、処理フロー生成システム。
【請求項６】
記憶部と、処理部と、を備え、
前記記憶部は、入力データおよび目標データを記憶し、
前記処理部は、
複数の処理の順序を示す処理シーケンスと、該複数の処理に係る１以上のパラメータの値とによってそれぞれ規定される複数の処理フローを取得する取得部と、
各前記処理フローについて、予め設定された第１変更ルールに従って前記処理シーケンスの少なくとも一部の処理を変更する第１変更処理、および予め設定された第２変更ルールに従って前記１以上のパラメータの値の少なくとも一部の値を変更する第２変更処理を実施する変更部と、
予め設定された判定ルールに従って、前記変更部において前記第１変更処理および前記第２変更処理のうちの何れの変更処理を実行するのか判定する判定部と、
前記変更部によって前記変更処理が施された後の各前記処理フローについて、前記入力データに該処理フローに従った処理が施されることで得られる出力データと、前記目標データとの差異に応じた評価値を算出する評価部と、
各前記処理フローに係る前記評価値に基づいて、前記複数の処理フローについて取捨選択を行う取捨選択部と、を有し、
前記処理部において、前記取捨選択部による前記取捨選択が行われた後における、前記判定部による判定結果に従った前記変更部による前記第１変更処理および前記第２変更処理のうちの何れか一方の変更処理の実施、該変更部による前記変更処理によって得られた各処理フローに係る前記評価値の前記評価部による算出、および前記取捨選択部による該評価値に基づく前記取捨選択の実行、が繰り返されることで、前記出力データと前記目標データとの差異が低減される、処理フロー生成システム。
【請求項７】
請求項６に記載の処理フロー生成システムであって、
前記変更部は、
前記第１変更処理を実施した後に、該第１変更処理による前記処理シーケンスの変更に合わせて、該処理シーケンスとともに処理フローを規定している前記１以上のパラメータの値を変更する、処理フロー生成システム。
【請求項８】
請求項５から請求項７の何れか１つの請求項に記載の処理フロー生成システムであって、
前記判定部は、
乱数を発生させ、該乱数と閾値との関係に基づいて、前記変更部において前記第１変更処理および前記第２変更処理のうちの何れの変更処理を実行するのか判定する、処理フロー生成システム。
【請求項９】
請求項５から請求項７の何れか１つの請求項に記載の処理フロー生成システムであって、
前記判定ルールは、
１以上の前記第１変更処理および１以上の前記第２変更処理についての順序を規定しているルールを含む、処理フロー生成システム。
【請求項１０】
請求項１から請求項９の何れか１つの請求項に記載の処理フロー生成システムであって、
前記第１変更処理が、遺伝的プログラミングを用いた進化的計算を行う処理を含み、
前記第２変更処理が、遺伝的アルゴリズムを用いた進化的計算を行う処理を含む、処理フロー生成システム。
【請求項１１】
記憶部と、処理部と、を備えた情報処理システムにおける処理フローを生成する処理フロー生成方法であって、
前記記憶部は、入力データおよび目標データを記憶し、
前記処理部は、
複数の処理の順序を示す処理シーケンスと該複数の処理に係る１以上のパラメータの値とによってそれぞれ規定される第１処理フローおよび第２処理フローを含む複数の処理フローを取得する取得工程と、
前記第１処理フローと前記第２処理フローとの間において、パラメータの種類および該パラメータが取り得る値が共通する１以上の処理を検出する検出工程と、
各前記処理フローについて、予め設定された第１変更ルールに従って前記処理シーケンスの少なくとも一部の処理を変更する第１変更処理、および予め設定された第２変更ルールに従って前記１以上のパラメータの値のうちの少なくとも一部のパラメータの値を変更する第２変更処理のうちの少なくとも一方の変更処理を実施する変更工程と、
前記変更工程における前記第１変更処理および前記第２変更処理の少なくとも一方の変更処理が施された後の各前記処理フローについて、前記入力データに該処理フローに従った処理が施されることで得られる出力データと、前記目標データとの差異に応じた評価値を算出する評価工程と、
各前記処理フローに係る前記評価値に基づいて、前記複数の処理フローについて取捨選択を行う取捨選択工程と、を有する情報処理を実行し、
前記変更工程における前記第２変更処理が、
前記検出工程において前記第１処理フローから検出された１以上の処理における１以上のパラメータと、前記検出工程において前記第２処理フローから検出された１以上の処理における１以上のパラメータとの間において、種類が対応する同一の数のパラメータの値が入れ替えられる交叉処理を含み、
前記処理部によって、前記取捨選択工程における前記取捨選択の実行後における、前記変更工程における前記第１変更処理および前記第２変更処理のうちの少なくとも一方の変更処理の実施、該変更工程における前記少なくとも一方の変更処理によって得られた各処理フローに係る前記評価値の前記評価工程における算出、および前記取捨選択工程における該評価値に基づく前記取捨選択の実行、が繰り返されることで、前記出力データと前記目標データとの差異が低減される、処理フロー生成方法。
【請求項１２】
記憶部と、処理部と、を備えた情報処理システムにおける処理フローを生成する処理フロー生成方法であって、
前記記憶部は、入力データおよび目標データを記憶し、
前記処理部は、
複数の処理の順序を示す処理シーケンスと、該複数の処理に係る１以上のパラメータの値とによってそれぞれ規定される複数の処理フローを取得する取得工程と、
予め設定された判定ルールに従って、各前記処理フローについて、予め設定された第１変更ルールに従って前記処理シーケンスの少なくとも一部の処理を変更する第１変更処理、および予め設定された第２変更ルールに従って前記１以上のパラメータの値の少なくとも一部の値を変更する第２変更処理のうちの何れの変更処理を実施するのか判定する判定工程と、
前記判定工程における判定結果に応じて、各前記処理フローについて、前記第１変更処理および前記第２変更処理の何れかを実施する変更工程と、
各前記処理フローについて、前記入力データに該処理フローに従った処理が施されることで得られる出力データと、前記目標データとの差異に応じた評価値を算出する評価工程と、
各前記処理フローに係る前記評価値に基づいて、前記複数の処理フローの取捨選択を行う取捨選択工程と、を有する情報処理を実行し、
前記処理部によって、前記取捨選択工程における前記取捨選択が行われた後に、前記判定工程における判定結果に従った前記変更工程における前記第１変更処理および前記第２変更処理のうちの何れか一方の変更処理の実施、該変更工程における前記変更処理によって得られた各処理フローについての前記評価工程における前記評価値の算出、および前記取捨選択工程における該評価値に基づく前記取捨選択の実行、が繰り返されることで、前記出力データと前記目標データとの差異が低減される、処理フロー生成方法。
【請求項１３】
情報処理システムに含まれる処理部によって実行されることで、該情報処理システムを、請求項１から請求項１０の何れか１つの請求項に記載の処理フロー生成システムとして機能させる、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、処理フロー生成システム、処理フロー生成方法およびプログラムに関する。
【背景技術】
【０００２】
複数の処理によって構成される処理のフロー（処理フローとも言う）は、２つ以上の要素関数によって規定される処理のシーケンス（処理シーケンスとも言う）と、各要素関数に係るパラメータとの組合せによって規定され得る。
【０００３】
但し、複数の関数および各関数に係る複数のパラメータから生成され得る、２つ以上の関数と各関数に係るパラメータとについての組合せの数は膨大である。処理フローを開発するには、例えば、画像処理等の知識や経験が必要であり、これを自動的に行おうとすれば、膨大な試行錯誤が必要となり、演算に長時間を要してしまう。
【０００４】
ところで、進化的な計算手法としての遺伝的プログラミングが用いられて、２つ以上の要素関数によって構成される処理シーケンスが自動的に生成される技術が知られている（例えば、特許文献１等）。また、処理シーケンスを構成する個々の要素関数については、例えば、進化的な計算手法としての遺伝的アルゴリズムによってパラメータが自動的に最適化される技術が知られている。そして、例えば、進化的な計算手法としての遺伝的アルゴリズムおよび遺伝的プログラミングの両方が用いられて、処理フローが自動的に最適化される技術が提案されている（例えば、特許文献１，２等）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第４８６２１５０号明細書
【特許文献２】特開２０１５−２３０７０２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、上記特許文献１の技術では、処理シーケンスを規定する遺伝子の配列において各遺伝子の要素にパラメータが追加されている。
【０００７】
しかしながら、該特許文献１には、進化的な計算の過程で、遺伝子の要素とともにパラメータが世代交代する形態が挙げられているが、該形態では、遺伝子の要素が維持されたままで、パラメータがより好適なものに置換されるような進化は起こらない。また、該特許文献１では、遺伝子の要素とパラメータとが別々に世代交代する形態が挙げられているが、該形態では、ある遺伝子の要素に対してパラメータが好適化されても、次の世代では遺伝子の要素の変更によって、パラメータが好適なものでなくなってしまう場合がある。このため、処理フローが効率的には最適化され難く、演算量の増大を招く。
【０００８】
また、上記特許文献２の技術では、遺伝的プログラミングによる処理シーケンスの最適化が行われつつ、最適化される途中の各処理シーケンスについて、遺伝的アルゴリズムによるパラメータの最適化が行われる。
【０００９】
しかしながら、遺伝的プログラミングによって処理シーケンスを最適化するための演算処理のループの途中に、遺伝的アルゴリズムによってパラメータを最適化するための演算処理のループが含まれる、入れ子構造のような２重のループの処理によって演算量の増大を招く。
【００１０】
したがって、上記特許文献１，２の技術では、演算量の低減による演算処理の迅速化について、改善の余地がある。
【００１１】
本発明は、上記課題に鑑みてなされたものであり、適切な処理フローを迅速に生成することが可能な技術を提供することを目的とする。
【課題を解決するための手段】
【００１２】
上記課題を解決するために、第１の態様に係る処理フロー生成システムは、記憶部と、処理部と、を備え、前記記憶部は、入力データおよび目標データを記憶し、前記処理部は、複数の処理の順序を示す処理シーケンスと該複数の処理に係る１以上のパラメータの値とによってそれぞれ規定される第１処理フローおよび第２処理フローを含む複数の処理フローを取得する取得部と、前記第１処理フローと前記第２処理フローとの間において、パラメータの種類および該パラメータが取り得る値が共通する１以上の処理を検出する検出部と、各前記処理フローについて、予め設定された第１変更ルールに従って前記処理シーケンスの少なくとも一部の処理を変更する第１変更処理、および予め設定された第２変更ルールに従って前記１以上のパラメータの値のうちの少なくとも一部のパラメータの値を変更する第２変更処理を実施する変更部と、前記変更部によって前記第１変更処理および前記第２変更処理の少なくとも一方の変更処理が施された後の各前記処理フローについて、前記入力データに該処理フローに従った処理が施されることで得られる出力データと、前記目標データとの差異に応じた評価値を算出する評価部と、各前記処理フローに係る前記評価値に基づいて、前記複数の処理フローについて取捨選択を行う取捨選択部と、を有し、前記第２変更処理が、前記検出部によって前記第１処理フローから検出された１以上の処理における１以上のパラメータと、前記検出部によって前記第２処理フローから検出された１以上の処理における１以上のパラメータとの間において、種類が対応する同一の数のパラメータの値が入れ替えられる交叉処理を含み、前記処理部において、前記取捨選択部による前記取捨選択が行われた後における、前記変更部による前記第１変更処理および前記第２変更処理のうちの少なくとも一方の変更処理の実施、該変更部による前記少なくとも一方の変更処理によって得られた各処理フローに係る前記評価値の前記評価部による算出、および前記取捨選択部による該評価値に基づく前記取捨選択の実行、が繰り返されることで、前記出力データと前記目標データとの差異が低減される。
【００１３】
第２の態様に係る処理フロー生成システムは、第１の態様に係る処理フロー生成システムであって、前記検出部は、前記第１処理フローと前記第２処理フローとの間において、パラメータの種類および該パラメータが取り得る値が共通するとともに、１つの処理あるいは１つの処理と該１つの処理を行うためのデータを得る順序が同一の全ての処理とを含む２以上の処理、によって構成される部分的な処理シーケンスを検出し、前記第２変更処理が、前記第１処理フローにおいて前記部分的な処理シーケンスを構成する１以上の処理に係る１以上のパラメータと、前記第２処理フローにおいて前記部分的な処理シーケンスを構成する１以上の処理に係る１以上のパラメータとの間において、種類が対応する同一の数のパラメータの値が入れ替えられる交叉処理を含む。
【００１４】
第３の態様に係る処理フロー生成システムは、第２の態様に係る処理フロー生成システムであって、前記第１処理フローと前記第２処理フローとの間において、前記部分的な処理シーケンスは同一である。
【００１５】
第４の態様に係る処理フロー生成システムは、第１の態様に係る処理フロー生成システムであって、前記第１処理フローと前記第２処理フローとの間において、前記検出部によって検出される１以上の処理は、同種の処理である。
【００１６】
第５の態様に係る処理フロー生成システムは、第１から第４の何れか１つの態様に係る処理フロー生成システムであって、前記処理部は、予め設定された判定ルールに従って、前記変更部において前記第１変更処理および前記第２変更処理のうちの何れの変更処理を実行するのか判定する判定部、を更に有し、前記処理部において、前記取捨選択部による前記取捨選択が行われた後における、前記判定部による判定結果に従った前記変更部による前記変更処理の実施、該変更部による前記変更処理によって得られた各処理フローに係る前記評価値の前記評価部による算出、および前記取捨選択部による該評価値に基づく前記取捨選択の実行、が繰り返されることで、前記出力データと前記目標データとの差異が低減される。
【００１７】
第６の態様に係る処理フロー生成システムは、記憶部と、処理部と、を備え、前記記憶部は、入力データおよび目標データを記憶し、前記処理部は、複数の処理の順序を示す処理シーケンスと、該複数の処理に係る１以上のパラメータの値とによってそれぞれ規定される複数の処理フローを取得する取得部と、各前記処理フローについて、予め設定された第１変更ルールに従って前記処理シーケンスの少なくとも一部の処理を変更する第１変更処理、および予め設定された第２変更ルールに従って前記１以上のパラメータの値の少なくとも一部の値を変更する第２変更処理を実施する変更部と、予め設定された判定ルールに従って、前記変更部において前記第１変更処理および前記第２変更処理のうちの何れの変更処理を実行するのか判定する判定部と、前記変更部によって前記変更処理が施された後の各前記処理フローについて、前記入力データに該処理フローに従った処理が施されることで得られる出力データと、前記目標データとの差異に応じた評価値を算出する評価部と、各前記処理フローに係る前記評価値に基づいて、前記複数の処理フローについて取捨選択を行う取捨選択部と、を有し、前記処理部において、前記取捨選択部による前記取捨選択が行われた後における、前記判定部による判定結果に従った前記変更部による前記第１変更処理および前記第２変更処理のうちの何れか一方の変更処理の実施、該変更部による前記変更処理によって得られた各処理フローに係る前記評価値の前記評価部による算出、および前記取捨選択部による該評価値に基づく前記取捨選択の実行、が繰り返されることで、前記出力データと前記目標データとの差異が低減される。
【００１８】
第７の態様に係る処理フロー生成システムは、第６の態様に係る処理フロー生成システムであって、前記変更部は、前記第１変更処理を実施した後に、該第１変更処理による前記処理シーケンスの変更に合わせて、該処理シーケンスとともに処理フローを規定している前記１以上のパラメータの値を変更する。
【００１９】
第８の態様に係る処理フロー生成システムは、第５から第７の何れか１つの態様に係る処理フロー生成システムであって、前記判定部は、乱数を発生させ、該乱数と閾値との関係に基づいて、前記変更部において前記第１変更処理および前記第２変更処理のうちの何れの変更処理を実行するのか判定する。
【００２０】
第９の態様に係る処理フロー生成システムは、第５から第７の何れか１つの態様に係る処理フロー生成システムであって、前記判定ルールは、１以上の前記第１変更処理および１以上の前記第２変更処理についての順序を規定しているルールを含む。
【００２１】
第１０の態様に係る処理フロー生成システムは、第１から第９の何れか１つの態様に係る処理フロー生成システムであって、前記第１変更処理が、遺伝的プログラミングを用いた進化的計算を行う処理を含み、前記第２変更処理が、遺伝的アルゴリズムを用いた進化的計算を行う処理を含む。
【００２２】
第１１の態様に係る処理フロー生成方法は、記憶部と、処理部と、を備えた情報処理システムにおける処理フローを生成する処理フロー生成方法であって、前記記憶部は、入力データおよび目標データを記憶し、前記処理部は、複数の処理の順序を示す処理シーケンスと該複数の処理に係る１以上のパラメータの値とによってそれぞれ規定される第１処理フローおよび第２処理フローを含む複数の処理フローを取得する取得工程と、前記第１処理フローと前記第２処理フローとの間において、パラメータの種類および該パラメータが取り得る値が共通する１以上の処理を検出する検出工程と、各前記処理フローについて、予め設定された第１変更ルールに従って前記処理シーケンスの少なくとも一部の処理を変更する第１変更処理、および予め設定された第２変更ルールに従って前記１以上のパラメータの値のうちの少なくとも一部のパラメータの値を変更する第２変更処理のうちの少なくとも一方の変更処理を実施する変更工程と、前記変更工程における前記第１変更処理および前記第２変更処理の少なくとも一方の変更処理が施された後の各前記処理フローについて、前記入力データに該処理フローに従った処理が施されることで得られる出力データと、前記目標データとの差異に応じた評価値を算出する評価工程と、各前記処理フローに係る前記評価値に基づいて、前記複数の処理フローについて取捨選択を行う取捨選択工程と、を有する情報処理を実行し、前記変更工程における前記第２変更処理が、前記検出工程において前記第１処理フローから検出された１以上の処理における１以上のパラメータと、前記検出工程において前記第２処理フローから検出された１以上の処理における１以上のパラメータとの間において、種類が対応する同一の数のパラメータの値が入れ替えられる交叉処理を含み、前記処理部によって、前記取捨選択工程における前記取捨選択の実行後における、前記変更工程における前記第１変更処理および前記第２変更処理のうちの少なくとも一方の変更処理の実施、該変更工程における前記少なくとも一方の変更処理によって得られた各処理フローに係る前記評価値の前記評価工程における算出、および前記取捨選択工程における該評価値に基づく前記取捨選択の実行、が繰り返されることで、前記出力データと前記目標データとの差異が低減される。
【００２３】
第１２の態様に係る処理フロー生成方法は、記憶部と、処理部と、を備えた情報処理システムにおける処理フローを生成する処理フロー生成方法であって、前記記憶部は、入力データおよび目標データを記憶し、前記処理部は、複数の処理の順序を示す処理シーケンスと、該複数の処理に係る１以上のパラメータの値とによってそれぞれ規定される複数の処理フローを取得する取得工程と、予め設定された判定ルールに従って、各前記処理フローについて、予め設定された第１変更ルールに従って前記処理シーケンスの少なくとも一部の処理を変更する第１変更処理、および予め設定された第２変更ルールに従って前記１以上のパラメータの値の少なくとも一部の値を変更する第２変更処理のうちの何れの変更処理を実施するのか判定する判定工程と、前記判定工程における判定結果に応じて、各前記処理フローについて、前記第１変更処理および前記第２変更処理の何れかを実施する変更工程と、各前記処理フローについて、前記入力データに該処理フローに従った処理が施されることで得られる出力データと、前記目標データとの差異に応じた評価値を算出する評価工程と、各前記処理フローに係る前記評価値に基づいて、前記複数の処理フローの取捨選択を行う取捨選択工程と、を有する情報処理を実行し、前記処理部によって、前記取捨選択工程における前記取捨選択が行われた後に、前記判定工程における判定結果に従った前記変更工程における前記第１変更処理および前記第２変更処理のうちの何れか一方の変更処理の実施、該変更工程における前記変更処理によって得られた各処理フローについての前記評価工程における前記評価値の算出、および前記取捨選択工程における該評価値に基づく前記取捨選択の実行、が繰り返されることで、前記出力データと前記目標データとの差異が低減される。
【００２４】
第１３の態様に係るプログラムは、情報処理システムに含まれる処理部によって実行されることで、該情報処理システムを、第１から第１０の何れか１つの態様に係る処理フロー生成システムとして機能させる。
【発明の効果】
【００２５】
第１から第１０の何れの態様に係る処理フロー生成システムによっても、例えば、パラメータ値の最適化を図るための演算が効率良く行われることで、演算量が低減されるため、適切な処理フローが迅速に生成され得る。
【００２６】
第２および第３の何れの態様に係る処理フロー生成システムによっても、例えば、２つの処理フローの間において、類似した部分的な処理シーケンスについて、パラメータ値の入れ替えが行われることで、パラメータ値の最適化が迅速に行われ得る。
【００２７】
第３の態様に係る処理フロー生成システムによれば、例えば、２つの処理フローの間において、同一の部分的な処理シーケンスについて、パラメータ値の入れ替えが行われることで、パラメータ値の最適化が非常に迅速に行われ得る。
【００２８】
第４の態様に係る処理フロー生成システムによれば、例えば、２つの処理フローの間において、種類が共通している１つ以上の処理について、パラメータ値の入れ替えが行われることで、パラメータ値の最適化が迅速に行われ得る。
【００２９】
第５および第６の何れの態様に係る処理フロー生成システムによっても、例えば、処理シーケンスの変更とパラメータ値の変更とが同時期にバランス良く行われ得るため、演算量が低減され、適切な処理フローが迅速に生成され得る。
【００３０】
第７の態様に係る処理フロー生成システムによれば、例えば、処理シーケンスの変更に合わせてパラメータ値も変更されるため、進化処理における無駄な演算が低減され、パラメータ値の最適化が迅速に行われ得る。
【００３１】
第８および第９の何れの態様に係る処理フロー生成システムによっても、例えば、処理シーケンスの変更とパラメータ値の変更とが、容易にバランス良く実行され得る。
【００３２】
第１１の態様に係る処理フロー生成方法によれば、例えば、パラメータ値の最適化を図るための演算が効率良く行われることで、演算量が低減され、適切な処理フローが迅速に生成され得る。
【００３３】
第１２の態様に係る処理フロー生成方法によれば、例えば、処理シーケンスの変更とパラメータ値の変更とが同時期にバランス良く行われ得るため、演算量が低減され、適切な処理フローが迅速に生成され得る。
【００３４】
第１３の態様に係るプログラムによれば、例えば、第１から第１０の態様に係るフロー生成システムと同様な効果が得られる。
【図面の簡単な説明】
【００３５】
【図１】処理フロー生成システムの一例を概略的に示すブロック図である。
【図２】処理部における機能的な構成の一例を概略的に示すブロック図である。
【図３】複数の個体のそれぞれにおける構成の一例を示す図である。
【図４】処理シーケンスを示すＧＰ遺伝子のツリー構造の一例を示す図である。
【図５】２つのツリー構造の間でＧＰ交叉処理が行われる一例を示す図である。
【図６】２つのツリー構造の間でＧＰ交叉処理が行われる一例を示す図である。
【図７】ツリー構造でＧＰ突然変異処理が行われる一例を示す図である。
【図８】ツリー構造でＧＰ突然変異処理が行われる一例を示す図である。
【図９】ＧＰ突然変異処理に伴ってＧＡ遺伝子が更新される一例を示す図である。
【図１０】処理フロー生成システムの動作フローの一例を示すフローチャートである。
【図１１】処理フロー生成システムの動作フローの一例を示すフローチャートである。
【図１２】処理フロー生成システムの動作フローの一例を示すフローチャートである。
【図１３】入力画像としての原画像の一例を示す図である。
【図１４】目標画像の一例を示す図である。
【図１５】処理フローを生成するシミュレーションの条件の一例を示す図である。
【図１６】処理フローを生成するシミュレーションの条件の一例を示す図である。
【図１７】処理フローを生成するシミュレーションの条件の一例を示す図である。
【図１８】処理フローを生成するシミュレーションの条件の一例を示す図である。
【図１９】処理フローの生成に係る世代数と評価値との関係の具体例を示す図である。
【図２０】処理フローの生成に係る世代数と評価値との関係の参考例を示す図である。
【図２１】処理部における機能的な構成の一例を概略的に示すブロック図である。
【図２２】第１個体の構造の一例を示す図である。
【図２３】第１個体の構造の一例を示す図である。
【図２４】第１個体の構造の一例を示す図である。
【図２５】第２個体の構造の一例を示す図である。
【図２６】第２個体の構造の一例を示す図である。
【図２７】第２個体の構造の一例を示す図である。
【図２８】２つのツリー構造の間でＧＰ交叉処理が行われる一例を示す図である。
【図２９】２つのツリー構造の間でＧＰ交叉処理が行われる一例を示す図である。
【図３０】２つのツリー構造の間でＧＰ交叉処理が行われる一例を示す図である。
【図３１】２つのツリー構造の間でＧＰ交叉処理が行われる一例を示す図である。
【図３２】ツリー構造でＧＰ突然変異処理が行われる一例を示す図である。
【図３３】ツリー構造でＧＰ突然変異処理が行われる一例を示す図である。
【図３４】個体のツリー構造から部分ツリー構造が検出される一例を示す図である。
【図３５】個体のツリー構造から部分ツリー構造が検出される一例を示す図である。
【図３６】個体のツリー構造から部分ツリー構造が検出される一例を示す図である。
【図３７】個体のツリー構造から部分ツリー構造が検出される一例を示す図である。
【図３８】個体のツリー構造から部分ツリー構造が検出される一例を示す図である。
【図３９】個体のツリー構造から部分ツリー構造が検出される一例を示す図である。
【図４０】個体のツリー構造から部分ツリー構造が検出される一例を示す図である。
【図４１】個体のツリー構造から部分ツリー構造が検出される一例を示す図である。
【図４２】２つの処理フローの間において類似部分処理シーケンスが検出される一例を示す図である。
【図４３】２つの処理フローの間において類似部分処理シーケンスが検出される一例を示す図である。
【図４４】２つの処理フローの間で共通処理部分が検出される一例を示す図である。
【図４５】２つの処理フローの間で共通処理部分が検出される一例を示す図である。
【図４６】類似処理部分に係る対応ＧＡ遺伝子が生成される一例を示す図である。
【図４７】類似処理部分に係る対応ＧＡ遺伝子が生成される一例を示す図である。
【図４８】類似処理部分に係る対応ＧＡ遺伝子が生成される一例を示す図である。
【図４９】類似処理部分に係る対応ＧＡ遺伝子が生成される一例を示す図である。
【図５０】一対の対応ＧＡ遺伝子の間でＧＡ交叉処理が行われる一例を示す図である。
【図５１】対応ＧＡ遺伝子におけるＧＡ突然変異処理の一例を示す図である。
【図５２】処理フロー生成システムの動作フローの一例を示すフローチャートである。
【図５３】処理フロー生成システムの動作フローの一例を示すフローチャートである。
【図５４】処理フロー生成システムの動作フローの一例を示すフローチャートである。
【発明を実施するための形態】
【００３６】
以下、本発明の実施形態の一例および各種変形例を図面に基づいて説明する。なお、図面においては同様な構成および機能を有する部分については同じ符号が付されており、下記説明では重複説明が省略される。また、図面は模式的に示されたものであり、各図における各種構造のサイズおよび位置関係等は正確に図示されたものではない。
【００３７】
＜(１)処理フロー生成システム＞
＜(１−１)処理フロー生成システムの構成＞
図１は、処理フロー生成システム１０として機能する情報処理システム１の一例を概略的に示すブロック図である。
【００３８】
処理フロー生成システム１０は、例えば、複数の処理によって構成される処理のフロー（処理フローとも言う）を生成することができる。処理フローは、例えば、２つ以上の要素としての２つ以上の処理の関数（要素関数とも言う）を含む処理のシーケンス（処理シーケンスとも言う）と、各要素関数に係る引数（パラメータ）との組合せによって規定され得る。ここで、例えば、要素関数が、画像処理を規定する関数であれば、処理フローは、画像処理を行うフロー（画像処理フローとも言う）となり得る。
【００３９】
ここで、画像処理を規定する関数には、例えば、平滑化フィルタなどの各種画像処理を規定する関数が含まれ得る。また、画像処理フローには、例えば、製造現場で製造された各種部品等において生じる欠陥を検出する画像処理フロー、および生体の細胞における形態の変質等を検出する画像処理フロー等が含まれ得る。
【００４０】
情報処理システム１は、例えば、コンピューター等で構成され、バスラインＢｓ１を介して接続された、入力部１１、出力部１２、記憶部１３、制御部１４およびドライブ１５を備えている。
【００４１】
入力部１１は、例えば、情報処理システム１を使用するユーザーの動作等に応じた信号を入力することができる。入力部１１には、例えば、ユーザーの操作に応じた信号を入力可能なマウスおよびキーボード等を含む操作部、ユーザーの音声に応じた信号を入力可能なマイク、ユーザーの動きに応じた信号を入力可能なセンサー、および外部の機器からの信号を入力可能な通信部等が含まれ得る。
【００４２】
出力部１２は、各種情報を出力することができる。出力部１２には、例えば、各種情報をユーザーが認識可能な態様で出力可能な表示部およびスピーカー、ならびに各種情報をデータの形式で出力可能な通信部等が含まれ得る。該表示部は、例えば、入力部１１と一体化されたタッチパネルの形態を有していても良い。スピーカーでは、各種情報が可聴的に出力され得る。通信部では、各種情報が情報処理システム１の外部に配された各種機器に対してデータの形式で出力され得る。該通信部は、例えば、通信回線を介して各種外部装置との間においてデータを授受することができる。
【００４３】
記憶部１３は、各種の情報を記憶することができる。該記憶部１３、例えば、ハードディスクおよびフラッシュメモリ等の記憶媒体によって構成され得る。記憶部１３では、例えば、１つの記憶媒体を有する構成、２つ以上の記憶媒体を一体的に有する構成、ならびに２つ以上の記憶媒体を２つ以上の部分に分けて有する構成の何れの構成が採用されても良い。
【００４４】
記憶部１３には、例えば、プログラムＰ１およびその他の各種データが記憶され得る。各種データには、例えば、処理フローを生成するためのデータ（生成用データとも言う）が含まれる。生成用データには、例えば、入力データおよび目標データが含まれ得る。ここで、例えば、処理フローが、画像処理フローであれば、入力データには、１つ以上の原画像のデータ（原画像データとも言う）が含まれ得る。このとき、例えば、目標データには、原画像データに対して各種画像処理が施されることで得られる目標とする画像のデータ（目標画像データとも言う）が含まれ得る。なお、記憶部１３には、後述するメモリ１４ｂが含まれても良い。
【００４５】
制御部１４は、例えば、プロセッサーとして働く処理部１４ａおよび情報を一時的に記憶するメモリ１４ｂ等を含む。処理部１４ａとしては、例えば、中央演算部（ＣＰＵ）等の電子回路が採用され、メモリ１４ｂとしては、例えば、ランダムアクセスメモリ（ＲＡＭ）などが採用され得る。制御部１４において、例えば、記憶部１３に記憶されているプログラムＰ１が処理部１４ａに読み込まれて実行されることで、情報処理システム１が処理フロー生成システム１０として機能し得る。なお、制御部１４における各種情報処理によって一時的に得られる各種情報は、適宜メモリ１４ｂ等に記憶され得る。
【００４６】
ドライブ１５は、例えば、可搬性の記憶媒体ＳＭ１の脱着が可能な部分である。ドライブ１５では、例えば、記憶媒体ＳＭ１が装着されている状態で、該記憶媒体ＳＭ１と制御部１４との間におけるデータの授受が行われ得る。また、プログラムＰ１が記憶された記憶媒体ＳＭ１がドライブ１５に装着されることで、記憶媒体ＳＭ１から記憶部１３内にプログラムＰ１が読み込まれて記憶される態様が採用されても良い。
【００４７】
そして、処理フローを生成する方法（処理フロー生成方法とも言う）には、例えば、第１生成方法および第２生成方法が含まれ得る。これらの何れの生成方法によっても、適切な処理フローを迅速に生成することが可能な処理フロー生成システム１０が実現され得る。
【００４８】
処理フロー生成システム１０では、例えば、第１生成方法および第２生成方法のうちの少なくとも一方の生成方法に従って処理フローが生成され得る。以下、第１生成方法および第２生成方法について、順に説明する。
【００４９】
＜(１−２)第１生成方法＞
＜(１−２−１)第１生成方法に係る機能的な構成＞
図２は、処理部１４ａにおける機能的な構成の一例を概略的に示すブロック図である。換言すれば、図２では、処理部１４ａにおいて、プログラムＰ１の実行によって実現される第１生成方法に係る各種機能が例示されている。
【００５０】
処理部１４ａは、実現される機能的な構成として、取得部１４１と、評価部１４２、取捨選択部１４３と、判定部１４４と、進化計算部１４５と、決定部１４６とを有している。これらの各部１４１〜１４６での処理におけるワークスペースとして、例えば、メモリ１４ｂが使用される。
【００５１】
＜(１−２−１−１)取得部＞
取得部１４１は、例えば、複数の処理フローを取得することができる。本実施形態では、取得部１４１は、複数の処理フローを生成することができる。各処理フローは、例えば、複数の処理の順序を示す処理シーケンスと、該複数の処理に係る１つ以上のパラメータの値（パラメータ値とも言う）によって規定され得る。複数の処理には、例えば、パラメータを有する処理と、パラメータを有していない処理とが含まれ得る。複数の処理の順序は、例えば、処理を行う時間的な順序を含む。なお、複数の処理の順序は、例えば、ある処理が実行されなければ、次の処理を実行することができないと言った理由から規定され得る。
【００５２】
ここで、処理シーケンスは、例えば、遺伝的プログラミング（ＧＰ）に係る表現に従った遺伝子（ＧＰ遺伝子とも言う）によって示され得る。また、１つ以上のパラメータ値は、例えば、遺伝的アルゴリズム（ＧＡ）に係る表現に従った遺伝子（ＧＡ遺伝子とも言う）によって示され得る。該ＧＡ遺伝子は、例えば、ＧＰ遺伝子で示される処理におけるパラメータ（フィルタのサイズおよび閾値等）の値を規定することができる。このため、各処理フローは、例えば、ＧＰ遺伝子とＧＡ遺伝子との組を有する個体によって表現され得る。つまり、取得部１４１では、例えば、ＧＰ遺伝子とＧＡ遺伝子との組を有する初期の個体（初期個体とも言う）が生成され得る。
【００５３】
図３は、複数の個体Ｉｎ１〜ＩｎＮ（Ｎは自然数）のそれぞれにおける構成の一例を示す図である。図３には、取得部１４１で生成されるＮ個の個体Ｉｎ１〜ＩｎＮが示されている。ここで、Ｎは、予め設定される特定数であれば良く、例えば、１０〜２０に設定され得る。そして、Ｍ番目（Ｍは１〜Ｎの自然数）の個体ＩｎＭは、ＧＰ遺伝子ＧｐＭとＧＡ遺伝子ＧａＭとの組を有する。
【００５４】
取得部１４１では、例えば、予め準備された数十種類から数百種類の関数の中から、ランダムに数個から５０個程度の関数が選出され、選出された複数の関数によってＧＰ遺伝子ＧｐＭが設定される。複数の関数の中からの関数のランダムな選出は、例えば、乱数の発生に応じて得られた数に対応する関数が選出されることで実現され得る。
【００５５】
図３の例では、１番目の個体Ｉｎ１のＧＰ遺伝子Ｇｐ１が、要素関数ｆ１１〜ｆ１４と入力されるデータ（ここでは、原画像データＡ）Ｄ１ａによって構成されている。また、２番目の個体Ｉｎ２のＧＰ遺伝子Ｇｐ２が、要素関数ｆ２１，ｆ２２と入力されるデータ（ここでは、原画像データＡ，Ｂ）Ｄ２ａ，Ｄ２ｂによって構成されている。また、Ｎ番目の個体ＩｎＮのＧＰ遺伝子ＧｐＮが、要素関数ｆＮ１〜ｆＮ３と入力されるデータ（ここでは、原画像データＡ）ＤＮａによって構成されている。
【００５６】
ところで、Ｍ番目のＧＰ遺伝子ＧｐＭは、例えば、原画像データの入力と要素関数による処理とがツリー構造で表現され得る。
【００５７】
図４は、ＧＰ遺伝子ＧｐＭの一例としての２番目のＧＰ遺伝子Ｇｐ２に係るツリー構造の一例を示す図である。
【００５８】
図４の例では、要素関数ｆ２１のノードＮｄ１、原画像に係る原画像データＡの入力を規定するノードＮｄ２、要素関数ｆ２２による処理を規定するノードＮｄ３および原画像に係る原画像データＢの入力を規定するノードＮｄ４が記述されている。そして、ノードＮｄ１に対してノードＮｄ２およびノードＮｄ３がそれぞれアーク（エッジとも言う）で結ばれ、ノードＮｄ３に対してノードＮｄ４がアークで結ばれている。つまり、ＧＰ遺伝子Ｇｐ２では、原画像データＢを用いた要素関数ｆ２２の画像処理、ならびに原画像データＡと要素関数ｆ２２の画像処理の結果として得られた画像データとを用いた要素関数ｆ２１の画像処理が規定されている。このように、各ＧＰ遺伝子ＧｐＭでは、例えば、処理シーケンスが、画像データの入力を葉とし、要素関数による処理を節とするツリー構造で表現され得る。なお、ここでは、ＧＰ遺伝子ＧｐＭに係る引数についての情報が省略されている。
【００５９】
ところで、Ｍ番目のＧＰ遺伝子ＧｐＭで規定される処理シーケンスは、例えば、関数の形態およびＳ式の形態で規定され得る。Ｓ式は、Ｌｉｓｐと言うプログラミング言語で導入され、主にＬｉｓｐで用いられる、２分木またはリスト構造の形式的な記述方式である。
【００６０】
ここで、例えば、２番目のＧＰ遺伝子Ｇｐ２は、関数の形態では、下記式（１）の形態で規定され、Ｓ式の形態では、下記式（２）の形態で規定され得る。
【００６１】
ｆ２１（Ａ，ｆ２２（Ｂ））…（１）
（ｆ２１  Ａ  （ｆ２２  Ｂ））…（２）。
【００６２】
また、取得部１４１では、例えば、各個体ＩｎＭのＧＰ遺伝子ＧｐＭに含まれる全ての要素関数についてのパラメータの初期値が生成され得る。ここでは、各ＧＰ遺伝子ＧｐＭに含まれる１以上の要素関数には、例えば、パラメータを含む要素関数と、パラメータを含まない要素関数とが含まれ得る。このため、取得部１４１では、例えば、パラメータを含む各要素関数について、パラメータの初期値が生成され得る。これにより、ＧＰ遺伝子ＧｐＭに含まれる全ての要素関数に係るパラメータの値の群（パラメータ値群とも言う）ＰｇＭが生成され得る。なお、パラメータ値群ＰｇＭは、例えば、１つのパラメータ値、あるいは２つ以上のパラメータ値によって構成され得る。ここでは、例えば、パラメータの初期値がランダムに設定される。パラメータの初期値は、例えば、予め準備されたパラメータについての取り得る数値の範囲および刻み（刻み値とも言う）の情報に応じた数値の選択肢の中から、乱数の発生に応じて得られた数に対応する選択肢が選出されることで設定され得る。なお、ここでは、例えば、１つのＧＰ遺伝子ＧｐＭにおいて同一種類の要素関数が２回採用される場合には、例えば、同一種類の２つ以上の要素関数が区別され、同一種類の各要素関数に対して、ランダムにパラメータの初期値が設定され得る。
【００６３】
図３の例では、１番目の個体Ｉｎ１のＧＰ遺伝子Ｇｐ１に対して、要素関数ｆ１１に係るパラメータ値Ｐ１１，Ｐ１２、要素関数ｆ１２に係るパラメータ値Ｐ１３、および要素関数ｆ１４に係るパラメータ値Ｐ１４〜Ｐ１６を含むパラメータ値群Ｐｇ１が設定されている。また、２番目の個体Ｉｎ２のＧＰ遺伝子Ｇｐ２に対して、要素関数ｆ２１に係るパラメータ値Ｐ２１、および要素関数ｆ２２に係るパラメータ値Ｐ２２〜Ｐ２４を含むパラメータ値群Ｐｇ２が設定されている。また、Ｎ番目の個体ＩｎＮのＧＰ遺伝子ＧｐＮに対して、要素関数ｆＮ１に係るパラメータ値ＰＮ１，ＰＮ２、および要素関数ｆＮ３に係るパラメータ値ＰＮ３〜ＰＮ５を含むパラメータ値群ＰｇＮが設定されている。
【００６４】
また、第１生成方法では、例えば、各ＧＡ遺伝子ＧａＭに、Ｎ個の全ての個体Ｉｎ１〜ＩｎＮにおけるＧＰ遺伝子Ｇｐ１〜ＧｐＮの全ての要素関数に応じたパラメータ値が含まれる。具体的には、Ｍ番目のＧＡ遺伝子ＧａＭには、Ｍ番目のＧＰ遺伝子ＧｐＭを構成する全ての要素関数についてのパラメータの具体的な値（パラメータ値）によって構成されるＭ番目のパラメータ値群ＰｇＭだけでなく、１番目からＮ番目のパラメータ値群Ｐｇ１〜ＰｇＮの全てが含まれる。但し、ここで、１番目からＮ番目のＧＡ遺伝子Ｇａ１〜ＧａＮの間においては、Ｍ番目のＧＰ遺伝子ＧｐＭを構成する全ての要素関数に応じたパラメータの種類および数は共通するものの、各パラメータの具体的な値（パラメータ値）が異なり得る。また、ここでは、各個体ＩｎＭには、パラメータ値群ＰｇＭを構成する１以上のパラメータ値を含む１番目からＮ番目のパラメータ値群Ｐｇ１〜ＰｇＮに対応する全てのパラメータ値が１次元的に配列されて構成されるパラメータ値群が、ＧＡ遺伝子ＧａＭとして含まれている。すなわち、各個体ＩｎＭには、同一の長さを有するＧＡ遺伝子ＧａＭが含まれている。つまり、１番目からＮ番目のＧＡ遺伝子Ｇａ１〜ＧａＮは、同一の長さを有し、１番目からＮ番目のＧＡ遺伝子Ｇａ１〜ＧａＮの間で、相互に同種の要素関数に対するパラメータの値がならべられたものとなっているが、具体的なパラメータ値は、個体ＩｎＭ毎に異なり得る。
【００６５】
Ｍ番目の個体ＩｎＭでは、例えば、ＧＡ遺伝子ＧａＭのうち、Ｍ番目のＧＰ遺伝子ＧｐＭの全ての要素関数と、該Ｍ番目のＧＰ遺伝子ＧｐＭの全ての要素関数に係るＭ番目のパラメータ値群ＰｇＭに含まれる全てのパラメータ値とが関連付けられる。図３の例では、要素関数とパラメータ値との関連付けが、細線で描かれた矢印で示されている。つまり、図３においてＭ番目のＧＰ遺伝子ＧｐＭの各要素関数から引き出された矢印によって各要素関数と関連付けられている１以上のパラメータ値が、Ｍ番目のＧＰ遺伝子ＧｐＭを構成している各要素関数に係るパラメータについて、Ｍ番目の処理フローを実際に規定しているパラメータ値として使用される。一方、図３においてＭ番目のＧＰ遺伝子ＧｐＭの各要素関数から引き出された矢印によって各要素関数と関連付けられていない残余のパラメータ値は、各ＧＰ遺伝子ＧｐＭを構成している各要素関数に係るパラメータについて、処理フローを実際に規定するために取り得る値（パラメータ値）の候補である。そして、これらのパラメータ値の候補は、例えば、１番目からＮ番目のＧＡ遺伝子Ｇａ１〜ＧａＮの間で、ＧＡ交叉によってパラメータ値の入れ替えが生じることで、Ｍ番目の処理フローを実際に規定しているパラメータ値として使用されるようになる。なお、取得部１４１では、例えば、Ｍ番目のＧＰ遺伝子ＧｐＭの各要素関数から引き出された矢印によって各要素関数とは関連付けられていない各パラメータ値群を構成する１以上のパラメータ値についても、初期値が生成される。
【００６６】
＜(１−２−１−２)評価部＞
評価部１４２は、例えば、各処理フローについて、入力データに処理フローに従った処理が施されることで得られるデータ（出力データとも言う）と、目標データとの差異に応じた値（評価値とも言う）を算出することができる。つまり、評価部１４２では、各個体ＩｎＭについて、入力データを対象とした処理が施されることで出力データが得られ、該出力データと、目標データとの差異に応じた評価値が算出され得る。
【００６７】
入力データには、例えば、原画像データが含まれる。出力データには、例えば、１つ以上の原画像を用いた画像処理が施された後の画像（処理後画像とも言う）のデータ（処理後画像データとも言う）が含まれる。目標データには、例えば、入力データとしての原画像データに処理フローに従った画像処理が施されることで出力されるデータについて、目標としての画像データ（目標画像データとも言う）が含まれる。ここで、処理後画像データは、例えば、下記工程１および工程２が順に行われることで、原画像データと、Ｍ番目の個体ＩｎＭにおける、ＧＡ遺伝子ＧａＭおよびＧＰ遺伝子ＧｐＭとから算出され得る。
【００６８】
［工程１］例えば、Ｍ番目のＧＰ遺伝子ＧｐＭで規定される要素関数による処理の順序が認識される。ここでは、例えば、処理シーケンスを規定するＧＰ遺伝子ＧｐＭが関数の形態で表現されている場合、処理シーケンスを規定する関数のうち、最後尾に記述された要素関数から前側に向かって要素関数による処理が順に認識されることで、処理の順序が認識され得る。例えば、処理フローを規定するＧＰ遺伝子が、ｆ１（Ａ，ｆ２（Ｂ），ｆ３（ｆ４（Ｃ）））の関数の形態で表現される場合を想定する。ここで、Ａ，Ｂ，Ｃは、入力される原画像データを示している。該原画像データＡ，Ｂ，Ｃは、例えば、相互に同一である。なお、二種類以上の原画像データが準備される場合には、例えば、原画像データＡ，Ｂ，Ｃは、相互に異なる２つ以上の原画像データを含んでいても良い。また、ｆ１，ｆ２，ｆ３，ｆ４は、要素関数による処理を示す。この場合、処理順は、後ろから順に、「Ｃ，ｆ４，ｆ３，Ｂ，ｆ２，Ａ，ｆ１」の順となる。ここでは、例えば、Ｃは、原画像データＣの入力、Ｂは、原画像データＢの入力、およびＣは、原画像データＣの入力をそれぞれ示している。
【００６９】
［工程２］工程１で求められた処理の順序に従って、原画像データから処理後画像データが生成される。このとき、例えば、各要素関数ｆ１〜ｆ４に係るパラメータについては、演算の対象となる要素関数に関連付けられているパラメータ値が、ＧＡ遺伝子ＧａＭから読み出され得る。例えば、原画像データＣに対して、要素関数ｆ４の画像処理が施され、該要素関数ｆ４の画像処理で得られた画像データに対して、要素関数ｆ３の画像処理が施される。次に、原画像データＢに対して、要素関数ｆ２の画像処理が施される。そして、要素関数ｆ３の画像処理で得られた画像データ、要素関数ｆ２の画像処理で得られた画像データおよび原画像データＡに対して、要素関数ｆ１の画像処理が施される。これにより、処理後画像データが生成され得る。
【００７０】
ところで、出力データと目標データとの差異に応じた評価値は、例えば、処理後画像データと目標画像データとの差の絶対値の総和によって算出され得る。なお、評価値は、出力データが目標データに近づくように処理フローを適応させている度合いを示す値であるため、適応値とも称される。
【００７１】
例えば、原画像、処理後画像および目標画像のそれぞれについて、幅がｗ、高さがｈであれば、画素の座標（ｘ，ｙ）は、０≦ｘ＜ｗおよび０≦ｙ＜ｈの条件を満たす。
【００７２】
このとき、例えば、原画像、処理後画像および目標画像の各画像における各画素の値が多数の画素値で表現されるのであれば、原画像をＩ（ｘ，ｙ）、処理後画像をＯ（ｘ，ｙ）、目標画像をＴ（ｘ，ｙ）および評価値をＦとすると、評価値Ｆは、下記式（３）によって算出され得る。
【００７３】
Ｆ＝１−(ΣΣ｜Ｏ（ｘ，ｙ）−Ｔ（ｘ，ｙ）｜）／（ｗ×ｈ×２５５）…（３）。
【００７４】
一方、例えば、原画像、処理後画像および目標画像の各画像における各画素の値が２つの画素値で表現されるのであれば、評価値Ｆは、下記式（４）によって算出され得る。
【００７５】
Ｆ＝１−（相違画素数／全画素数）…（４）。
【００７６】
ここでは、相違画素数は、処理後画像Ｏ（ｘ，ｙ）と目標画像Ｔ（ｘ，ｙ）との間で、画素値が異なる画素の総数を示している。全画素数は、処理後画像Ｏ（ｘ，ｙ）および目標画像Ｔ（ｘ，ｙ）のそれぞれを構成している画素の総数を示している。
【００７７】
評価部１４２では、例えば、進化計算部１４５の変更部１４５ｃによって処理フローに変更処理が施される度に、変更処理後の各処理フローについて、評価値が算出され得る。これにより、例えば、処理フローを変更しながら最適化させている途中で、処理フローが、目標画像に対して適正なものとなっているか否かが、評価され得る。
【００７８】
なお、評価部１４２において評価値が算出される際には、例えば、画像を構成する領域毎に重要度に応じた重み付けがなされても良い。例えば、処理フローが、部品に欠陥が生じているか否かを検出することを目的とした画像処理を規定するものであれば、評価値が算出される際に、欠陥が生じ易い領域（欠陥多発領域とも言う）についての影響が大きくなるように、適宜重み付けがなされても良い。これにより、例えば、欠陥の検出精度が向上し得る。
【００７９】
例えば、原画像および目標画像について、欠陥が生じ易い欠陥多発領域が指定されていれば、下記式（５），（６）に従って、重みαが加味された評価値Ｆが算出され得る。ここでは、例えば、Ｆｄは、欠陥領域に係る評価値であり、Ｆｂは、背景領域に係る評価値である。係数Ｅｗについては、実験によって予め最適値に設定され得る。ここでは、例えば、欠陥多発領域に係る評価値Ｆｄに重みαが乗じられて得られる値と、該欠陥多発領域以外の領域（背景領域とも言う）に係る評価値Ｆｂに重み（１−α）が乗じられて得られる値との和が、評価値Ｆとして算出され得る。
【００８０】
Ｆ＝Ｆｄ×α＋Ｆｂ×（１−α）…（５）
α＝（欠陥多発領域の画素数）／（Ｅｗ×背景領域の画素数＋欠陥多発領域の画素数）…（６）。
【００８１】
＜(１−２−１−３)取捨選択部＞
取捨選択部１４３は、例えば、評価部１４２で算出された各処理フローに係る評価値に基づいて、複数の処理フローの取捨選択を行うことができる。取捨選択部１４３では、例えば、評価値が基準値に近い処理フローが残存するように、複数の処理フローについての取捨選択が行われる。基準値は、例えば、１に設定され得る。このような取捨選択によって、適正でない処理フローに係る個体が淘汰され得る。
【００８２】
具体的には、取捨選択部１４３では、例えば、ルーレット方式で、評価値が基準値に近い処理フローが選択される確率が高く設定されて、処理フローをそれぞれ示すＮ個の個体Ｉｎ１〜ＩｎＮから、Ｎ個の処理フローが選出される。例えば、処理フローをそれぞれ示す１０個の個体Ｉｎ１〜Ｉｎ１０から、１０個の個体が選出される。このとき、評価値が基準値に近い順に、ルーレットを占める確率が、例えば、２５％、２０％、１５％、１２％、１０％、７％、５％、３％、２％、１％などと言った具合に設定され得る。ここでは、Ｎ個の個体Ｉｎ１〜ＩｎＮからＮ個の処理フローが選出される際には、例えば、同一の処理フローが２回以上選出され得る。
【００８３】
＜(１−２−１−４)判定部＞
判定部１４４は、例えば、予め設定された判定ルールに従って、変更部１４５ｃにおいて、第１変更処理および第２変更処理のうちの何れの変更処理を実行するのか判定することができる。つまり、判定部１４４は、Ｎ個の個体Ｉｎ１〜ＩｎＮを進化させる処理を決定することができる。
【００８４】
ここで、第１変更処理は、例えば、ＧＰ遺伝子ＧｐＭを変更する処理、すなわち、遺伝的プログラミング（ＧＰ）を用いた進化的計算を行う処理（ＧＰ進化処理とも言う）を含む。このＧＰ進化処理により、ＧＰ遺伝子ＧｐＭを進化させることができる。第２変更処理は、例えば、ＧＡ遺伝子ＧａＭを変更する処理、すなわち、遺伝的アルゴリズム（ＧＡ）を用いた進化的計算を行う処理（ＧＡ進化処理とも言う）を含む。このＧＡ進化処理により、ＧＡ遺伝子ＧａＭを進化させることができる。
【００８５】
判定部１４４では、例えば、乱数を発生させ、該乱数と閾値との関係に基づいて、変更部１４５ｃにおいて第１変更処理および第２変更処理のうちの何れの変更処理を実行するのか判定され得る。これにより、例えば、処理シーケンスの変更とパラメータ値の変更とが、容易にバランス良く実行され得る。
【００８６】
このとき、予め設定された判定ルールには、例えば、乱数を発生させ、該乱数と閾値との大小関係に基づいて、第１変更処理および第２変更処理のうちの何れの変更処理を変更部１４５ｃに実行させるのかを規定するルール等が含まれ得る。
【００８７】
例えば、次のような判定ルールが考えられ得る。まず、例えば、所定の値域が、閾値を境界として、一方の領域（第１領域とも言う）が第１変更処理に対応し、他方の領域（第２領域とも言う）が第２変更処理に対応するように、２種類の領域に区分けされる。そして、例えば、発生させた乱数が、第１領域に属していれば、第１変更処理を実行させ、発生させた乱数が、第２領域に属していれば、第２変更処理を実行させるものと判定される。
【００８８】
具体的には、例えば、第１変更処理としてのＧＰ進化処理が実行される確率（ＧＰ確率とも言う）Ｐｇｐ、および第２変更処理としてのＧＡ進化処理が実行される確率（ＧＡ確率とも言う）Ｐｇａが、閾値を規定する数値として採用され得る。ここで、例えば、ＧＰ確率ＰｇｐとＧＡ確率Ｐｇａとは、下記の式（７）から式（９）の関係式を満たすものとする。
【００８９】
０≦Ｐｇｐ≦１  …（７）
０≦Ｐｇａ≦１  …（８）
Ｐｇｐ＋Ｐｇａ＝１  …（９）。
【００９０】
ＧＰ確率ＰｇｐおよびＧＡ確率Ｐｇａは、例えば、固定値であっても良いし、予め設定されたルールに沿って変更されていく値であっても良いし、発生される乱数によって規定されても良い、なお、Ｎ個の個体Ｉｎ１〜ＩｎＮの進化が進むにつれて、例えば、ＧＡ確率Ｐｇａが、徐々に高まるような設定であっても良い。換言すれば、例えば、判定部１４４における判定回数が大きくなるにつれて、第１変更処理としてのＧＡ進化処理が実行される頻度が高まるように設定されても良い。
【００９１】
ここで、例えば、０〜１の範囲の値を取り得る確率変数Ｃｖの値が、発生される乱数によって決まるものとする。このとき、確率変数Ｃｖの値が、ＧＡ確率Ｐｇａよりも大きければ、第１変更処理としてのＧＰ進化処理が行われるものと判定され、確率変数Ｃｖの値が、ＧＡ確率Ｐｇａ以下であれば、第２変更処理としてのＧＡ進化処理が行われるものと判定され得る。
【００９２】
また、判定部１４４では、例えば、ルーレット方式によって、変更部１４５ｃにおいて第１変更処理および第２変更処理のうちの何れの変更処理が実行されるのかが判定されても良い。この場合、例えば、ある値域の複数の値を示すルーレットが、第１変更処理に対応する第１領域と、第２変更処理に対応する第２領域とに区分され、発生させた乱数が第１領域に属せば、第１変更処理が実行され、該乱数が第２領域に属せば、第２変更処理が実行されるような判定方法が考えられる。ルーレットの値域は、例えば、第１領域が８０％を占め、第２領域が２０％を占めると言った具合に区分され得る。
【００９３】
＜(１−２−１−５)進化計算部＞
進化計算部１４５は、Ｎ個の個体Ｉｎ１〜ＩｎＮをＧＰ進化処理およびＧＡ進化処理によって進化させる計算を実行することができる。進化計算部１４５では、ＧＰ進化処理またはＧＡ進化処理が１回行われることで、Ｎ個の個体Ｉｎ１〜ＩｎＮの１回の世代交代が行われる。
【００９４】
進化計算部１４５は、例えば、変更部１４５ｃを有している。該変更部１４５ｃは、例えば、第１変更処理としてのＧＰ進化処理、および第２変更処理としてのＧＡ進化処理を実行することができる。
【００９５】
［Ｐ１］ＧＰ進化処理．
ＧＰ進化処理では、例えば、各処理フローについて、予め設定された第１変更ルールに従って処理シーケンスの少なくとも一部の処理が変更され得る。具体的には、ＧＰ進化処理では、例えば、処理シーケンスをそれぞれ規定する各ＧＰ遺伝子ＧｐＭの少なくとも一部の処理が変更され得る。
【００９６】
１回のＧＰ進化処理には、例えば、ＧＰ交叉処理、ＧＰ転移処理およびＧＰ突然変異処理のうちの少なくとも１つの処理が含まれる。ここで、例えば、Ｎ個の個体Ｉｎ１〜ＩｎＮで規定されるＮ個の処理シーケンスには、例えば、交叉の対象となる２つの処理シーケンスが含まれている。該２つの処理シーケンスには、例えば、１つの処理シーケンス（第１処理シーケンスとも言う）と該第１処理シーケンスとは異なる他の１つの処理シーケンス（第２処理シーケンスとも言う）が含まれる。
【００９７】
［Ｐ１１］ＧＰ交叉処理．
ＧＰ交叉処理は、例えば、Ｎ個の個体Ｉｎ１〜ＩｎＮで規定されるＮ個の処理シーケンスを規定するＮ個のＧＰ遺伝子Ｐｇ１〜ＰｇＮにおいて、２つのＧＰ遺伝子間で、少なくとも一部の処理が入れ替えられる処理である。このとき、例えば、一部の処理を規定する要素関数が、該要素関数に係るパラメータの値とともに入れ替えられる。換言すれば、ＧＰ交叉処理では、例えば、Ｎ個の個体Ｉｎ１〜ＩｎＮで規定されるＮ個の処理シーケンスのうち、第１処理シーケンスにおける１つ以上の処理と、第２処理シーケンスにおける１つ以上の処理とが入れ替えられる。このとき、入れ替えられる１つ以上の処理に１つ以上のパラメータが規定されていれば、１つ以上の処理に関連付けられている１つ以上のパラメータの値も１つ以上の処理とともに入れ替えられる。
【００９８】
図５および図６は、２つのＧＰ遺伝子Ｇｐａ，Ｇｐｂ（ａ，ｂは、１〜Ｎの異なる自然数）で規定されるツリー構造の間においてＧＰ交叉処理が行われる様子の一例を模式的に示す図である。
【００９９】
ＧＰ交叉処理では、図５および図６の例のように、一方のＧＰ遺伝子Ｇｐａのうちの一部の処理ＸＡを構成する部分ＰＴ１と、他方のＧＰ遺伝子Ｇｐｂのうちの一部の処理ＸＢを構成する部分ＰＴ２とが入れ替えられる。
【０１００】
ここで、入れ替えの対象となる部分（入れ替え対象部分とも言う）には、例えば、１つの処理を規定するノードと該１つの処理において処理されるデータを示すノードが含まれる。つまり、入れ替え対象部分には、例えば、１つの処理と該１つの処理を行うためのデータの入力を示す部分、あるいは１つの処理と該１つの処理を行うためのデータを得るための全ての処理を含む部分が含まれ得る。具体的には、入れ替え対象部分には、例えば、ある１つの要素関数を規定する１つの節としての１つのノードと、該１つのノードから葉としてのノードに向けてアークで結ばれた全てのノードとが含まれる、部分的なツリー構造（部分ツリー構造とも言う）が含まれ得る。
【０１０１】
この部分ツリー構造は、例えば、１つの処理と該１つの処理に対する１つ以上のデータの入力との組み合わせを規定することができ、１つの処理と該１つの処理を実行するためのデータを入力するための全ての処理とを含む２つ以上の処理を規定することもできる。
【０１０２】
このような部分ツリー構造は、例えば、ＧＰ遺伝子で規定される全体の処理シーケンス（全体処理シーケンスとも言う）のうち、一部の部分的な処理シーケンス（部分処理シーケンスとも言う）を示すものであると言える。このため、入れ替えの対象となる処理には、例えば、１つ以上のノードで規定される１つ以上の処理が含まれ得る。そして、入れ替えの対象となる処理には、例えば、節としての１つのノードで規定される要素関数による処理と、該１つのノードから葉に向けてアークで結ばれた全てのノードで規定される要素関数による処理およびデータの入力とが含まれる。
【０１０３】
ところで、入れ替え対象部分の間（例えば、部分ＰＴ１と部分ＰＴ２との間）では、例えば、ノードの数（すなわち、処理の数）およびノードの連結形態が、同一であっても、異なっていても良い。また、ＧＰ交叉処理において、ＧＰ遺伝子のうちの入れ替え対象部分の位置は、例えば、発生される乱数等によって適宜ランダムに指定され得る。
【０１０４】
なお、図５および図６では図示を省略しているが、２つのＧＰ遺伝子間において、部分ＰＴ１と部分ＰＴ２とが入れ替わる際には、部分ＰＴ１に含まれる要素関数に係るパラメータ値群と、部分ＰＴ２に含まれる要素関数に係るパラメータ値群とが入れ替えられる。また、２つのＧＰ遺伝子間において、例えば、少なくとも一方のＧＰ遺伝子において入れ替えられる対象の部分が、ＧＰ遺伝子の全体であっても良い。すなわち、２つのＧＰ遺伝子間において、例えば、少なくとも一方のＧＰ遺伝子において入れ替えられる対象の部分が、少なくとも１つの処理を規定する１つ以上のノードを含んでいれば良い。
【０１０５】
ところで、図５および図６のＧＰ交叉処理の例を、関数の形態で示すと、ＧＰ遺伝子であるｆａ（・・・ｆＡ（ＸＡ））と、ｆｂ（・・・ｆＢ（ＸＢ））との間でＧＰ交叉処理が行われることで、これらのＧＰ遺伝子が、ｆａ（・・・ｆＡ（ＸＢ））と、ｆｂ（・・・ｆＢ（ＸＡ））に変更される。
【０１０６】
［Ｐ１２］ＧＰ転移処理．
ＧＰ転移処理は、例えば、Ｎ個の個体Ｉｎ１〜ＩｎＮで規定されるＮ個の処理シーケンスを規定するＮ個のＧＰ遺伝子Ｐｇ１〜ＰｇＮにおいて、２つのＧＰ遺伝子間で、一部の処理が、一方のＧＰ遺伝子から他方のＧＰ遺伝子に移動される処理である。このとき、例えば、一部の処理を規定する要素関数が、該要素関数に係るパラメータの値とともに移動される。換言すれば、ＧＰ転移処理では、例えば、Ｎ個の個体Ｉｎ１〜ＩｎＮで規定されるＮ個の処理シーケンスのうち、第２処理シーケンスの１つ以上の処理の位置に、第１処理シーケンスの１つ以上の処理が移動される。このとき、移動対象の１つ以上の処理に１つ以上のパラメータが関連付けられている場合には、１つ以上の処理は、該１つ以上の処理に関連付けられている１つ以上のパラメータの値とともに移動される。
【０１０７】
［Ｐ１３］ＧＰ突然変異処理．
ＧＰ突然変異処理は、例えば、Ｎ個の個体Ｉｎ１〜ＩｎＮで規定されるＮ個の処理シーケンスを規定するＮ個のＧＰ遺伝子Ｐｇ１〜ＰｇＮにおいて、少なくとも１つのＧＰ遺伝子において、一部の処理が、異なる１つ以上の処理に置き換えられる処理である。換言すれば、ＧＰ突然変異処理では、例えば、Ｎ個の個体Ｉｎ１〜ＩｎＮで規定されるＮ個の処理シーケンスのうち、ある処理シーケンスに含まれる１つ以上の処理が、該１つ以上の処理とは異なる他の１つ以上の処理に突然置き換えられる。
【０１０８】
図７および図８は、Ｍ番目のＧＰ遺伝子ＧｐＭで規定されるツリー構造においてＧＰ突然変異処理が行われる様子の一例を模式的に示す図である。
【０１０９】
ＧＰ突然変異処理では、図７から図８の例のように、あるＧＰ遺伝子Ｇｐａにおける一部の処理ＸＡを含む部分ＰＴ１が、他の１つ以上の処理Ｘｍを含む部分ＰＴｍに置き換えられる。
【０１１０】
ここで、突然変異の対象としての部分（突然変異対象部分とも言う）には、例えば、１つ以上のノードによって規定される１つ以上の処理が含まれていれば良い。突然変異対象部分は、例えば、部分ツリー構造であっても良い。ここでは、例えば、置き換え前後の部分ＰＴ１と部分ＰＴｍとの間において、ノードの数（すなわち、処理の数）およびノードの連結形態が、同一であっても、異なっていても良い。なお、ＧＰ突然変異処理において、ＧＰ遺伝子のうちの突然変異対象部分の位置は、例えば、発生される乱数等によって適宜ランダムに指定され得る。
【０１１１】
ところで、図７および図８の例におけるＧＰ突然変異処理は、例えば、関数の形態であれば、ＧＰ遺伝子であるｆａ（・・・ｆＡ（ＸＡ））が、ｆａ（・・・ｆＡ（Ｘｍ））に変更される処理として表現され得る。
【０１１２】
［Ｐ１４］パラメータ値の更新処理．
変更部１４５ｃは、例えば、第１変更処理としてのＧＰ進化処理を実行した後に、該第１変更処理によって変更された処理シーケンスの変更に合わせて、該処理シーケンスとともに処理フローを規定しているパラメータ値群を更新することができる。
【０１１３】
ここでは、例えば、各個体ＩｎＭにおいて、ＧＰ遺伝子ＧｐＭを構成する全ての要素関数に係るパラメータ値群が、第１変更処理の実施前における旧ＧＡ遺伝子ＧａＭから取り出され、新しいＧＡ遺伝子ＧａＭにおいて配列し直される。このとき、例えば、１番目からＮ番目のＧＡ遺伝子Ｇａ１〜ＧａＮが、１番目からＮ番目のＧＡ遺伝子Ｇａ１〜ＧａＮの間で、相互に同種の要素関数に対する同数のパラメータの値がならべられており、同一の長さを有するように調整される。
【０１１４】
このとき、例えば、ＧＰ交叉処理およびＧＰ転移処理等によって、各個体ＩｎＭにおいて要素関数が変更された部分については、要素関数の移動に応じて、ＧＡ遺伝子ＧａＭにおけるパラメータ値の配列位置が変更され得る。このとき、要素関数と該要素関数に係るパラメータ値との関連付けが維持されていれば、各個体ＩｎＭにおける要素関数と該要素関数に係るパラメータ値との関連付けは変更されなくても良い。
【０１１５】
このように、第１生成方法では、例えば、ＧＰ交叉処理およびＧＰ転移処理において、要素関数と該要素関数に係るパラメータ値とが、一緒に置換および移動することができる。
【０１１６】
また、例えば、ＧＰ突然変異処理によって、各個体ＩｎＭにおいて要素関数が置き換えられた部分については、置き換え後の異なる１つ以上の処理に係る１つ以上のパラメータの初期値が、例えば、取得部１４１におけるパラメータの初期値の設定と同様に、ランダムに設定され得る。
【０１１７】
図９は、ＧＰ遺伝子で規定されるツリー構造においてＧＰ突然変異処理が行われた際におけるＧＡ遺伝子の更新の一例を模式的に示す図である。
【０１１８】
図９では、図３で示された、Ｎ番目の個体ＩｎＮについて、ＧＰ突然変異処理によって、Ｎ番目のＧＰ遺伝子ＧｐＮを構成する要素関数ｆＮ１〜ｆＮ３が、該要素関数ｆＮ１〜ｆＮ３とは異なる他の要素関数ｆＮ４，ｆＮ５に置き換えられた様子が示されている。そして、図９では、置き換え後の他の要素関数ｆＮ４，ｆＮ５に係るパラメータ値群ＰｇＮが、ＧＡ遺伝子ＧａＭの最後尾に追加されている様子が示されている。
【０１１９】
このように、ＧＰ突然変異処理によれば、新たな要素関数の追加によって、該要素関数に係るパラメータ値が増加するため、ＧＡ遺伝子ＧａＭの長さが延伸し得る。このとき、ＧＰ突然変異処理による置き換え対象であった要素関数については、ＧＰ突然変異処理によって消滅しているため、例えば、該要素関数に係るパラメータ値は削除されても良いし、そのまま放置されても良い。
【０１２０】
［Ａ１］ＧＡ進化処理．
ＧＡ進化処理では、例えば、各処理フローについて、予め設定された第２変更ルールに従ってパラメータ値群の少なくとも一部のパラメータ値が変更され得る。具体的には、ＧＡ進化処理では、例えば、複数の処理フローをそれぞれ規定するＮ個の個体Ｉｎ１〜ＩｎＮについて、各処理フローにおける複数の処理に係るパラメータ値群をそれぞれ規定する各ＧＡ遺伝子ＧａＭの少なくとも一部のパラメータ値が変更され得る。
【０１２１】
１回の世代交代に対応する１回のＧＡ進化処理には、例えば、ＧＡ交叉処理およびＧＡ突然変異処理のうちの少なくとも１つの処理が含まれる。
【０１２２】
［Ａ１１］ＧＡ交叉処理．
ＧＡ交叉処理は、例えば、各個体Ｉｎ１〜ＩｎＮに含まれる、パラメータ値群を規定するＧＡ遺伝子ＧａＭにおいて、少なくとも一部のパラメータ値が入れ替えられる処理である。ここでは、例えば、１番目からＮ番目のＧＡ遺伝子Ｇａ１〜ＧａＮのうちの任意の２つのＧＡ遺伝子の間で、相互に同数のパラメータの値が入れ替えられ得る。また、例えば、ＧＡ遺伝子ＧａＭに含まれるＮ個のパラメータ値群ＰｇＮのうち、相互に異なるパラメータ値群の間で、１つ以上の同数のパラメータ値が入れ替えられ得る。
【０１２３】
［Ａ１２］ＧＡ突然変異処理．
ＧＡ突然変異処理は、例えば、各個体Ｉｎ１〜ＩｎＮに含まれる、パラメータ値群を規定するＧＡ遺伝子ＧａＭにおいて、１つ以上のパラメータ値が、異なる１つ以上のパラメータ値に置き換えられる処理である。ここでは、例えば、ＧＡ遺伝子ＧａＭに含まれるＮ個のパラメータ値群ＰｇＮのうち、１つのパラメータ値群に属する１つ以上のパラメータ値が異なるパラメータ値に置き換えられても良いし、２つ以上のパラメータ値群にそれぞれ属する１つ以上のパラメータ値が異なるパラメータ値に置き換えられても良い。
【０１２４】
なお、ＧＡ突然変異処理における置き換えの対象となる１つ以上のパラメータ値は、例えば、発生される乱数に応じてランダムに決定され得る。また、ＧＡ突然変異処理における置き換え後のパラメータ値は、例えば、取得部１４１におけるパラメータの初期値の設定と同様に設定され得る。
【０１２５】
＜(１−２−１−６)決定部＞
第１生成方法では、例えば、処理部１４ａにおいて、取捨選択部１４３による取捨選択が行われた後において、判定部１４４による判定結果に従った変更部１４５ｃによる第１変更処理および第２変更処理のうちの何れか一方の変更処理の実施、該変更部１４５ｃによる変更処理によって得られた各処理フローに係る評価値の評価部１４２による算出、および取捨選択部１４３による該評価値に基づく取捨選択の実行、が繰り返される。これにより、出力データと目標データとの差異が低減され得る。すなわち、処理フローを規定する個体の進化による最適化が進められ得る。
【０１２６】
決定部１４６は、例えば、変更部１４５ｃによるＮ個の個体Ｉｎ１〜ＩｎＮの進化の状況が、特定の条件を満たせば、その時点におけるＮ個の個体Ｉｎ１〜ＩｎＮから、最適化された処理フローを選出することで、処理フローを決定することができる。これにより、処理フローの生成が完了し得る。特定の条件としては、例えば、変更部１４５ｃによるＮ個の個体Ｉｎ１〜ＩｎＮの進化の回数が、予め設定された特定の回数に到達しているとの条件、および評価部１４２で各個体ＩｎＭに対して算出された評価値が予め設定された所定の条件を満たしているとの条件等が採用され得る。所定の条件としては、例えば、変更部１４５ｃによるＮ個の個体Ｉｎ１〜ＩｎＮの進化の回数に対する、評価値の変化の勾配が予め設定された所定の勾配以下となっているとの条件等が採用され得る。所定の勾配としては、例えば、予め設定された所定回数のＮ個の個体Ｉｎ１〜ＩｎＮの進化に対する評価値の変化量等が採用され得る。
【０１２７】
また、決定部１４６は、例えば、Ｎ個の個体Ｉｎ１〜ＩｎＮから、出力データと目標データとの差異が最も小さくなる個体を認識し、該個体によって規定される処理フローを、最適化された処理フローとして決定することができる。
【０１２８】
＜(１−２−２)第１生成方法に係る動作フロー＞
図１０から図１２は、処理フローを生成する第１生成方法に係る情報処理の動作フローの一例を示すフローチャートである。本動作フローは、例えば、記憶部１３に、入力データおよび目標データが記憶され、ユーザーの動作に応じて入力部１１から所定の信号が入力されることで、開始され得る。
【０１２９】
図１０のステップＳ１では、例えば、処理部１４ａの取得部１４１によって、複数の処理フローが取得される工程（取得工程とも言う）が実行される。ここでは、複数の処理フローは、例えば、複数の処理の順序を示す処理シーケンスと、該複数の処理に係る１つ以上のパラメータの値とによってそれぞれ規定される。これにより、例えば、複数の初期個体としてのＮ個の個体Ｉｎ１〜ＩｎＮが準備され得る。
【０１３０】
ステップＳ２では、例えば、処理部１４ａにおいて、Ｎ個の個体Ｉｎ１〜ＩｎＮの世代交代による進化の回数を示すカウントＮｇが１に設定される。
【０１３１】
ステップＳ３では、例えば、処理部１４ａの評価部１４２によって、ステップＳ１で生成された各処理フローについて、入力データに該処理フローに従った処理が施されることで得られる出力データと、目標データとの差異に応じた評価値が算出される工程（評価工程とも言う）が実行される。これにより、例えば、各個体ＩｎＭについての評価値が算出され得る。
【０１３２】
ステップＳ４では、例えば、処理部１４ａの決定部１４６によって、変更部１４５ｃによるＮ個の個体Ｉｎ１〜ＩｎＮの進化の状況が、上述した特定の条件を満たしているか否かが判定される。ここで、特定の条件を満たしていれば、ステップＳ５に進み、特定の条件を満たしていなければ、ステップＳ６に進む。
【０１３３】
ステップＳ５では、例えば、処理部１４ａの決定部１４６によって、Ｎ個の個体Ｉｎ１〜ＩｎＮから、最適化された処理フローが選出されることで、処理フローが決定され得る。例えば、決定部１４６によって、Ｎ個の個体Ｉｎ１〜ＩｎＮから、出力データと目標データとの差異が最小となる個体によって規定される処理フローが、最適化された処理フローとして決定される。これにより本動作フローが終了される。
【０１３４】
ステップＳ６では、例えば、処理部１４ａの取捨選択部１４３によって、ステップＳ３で算出された各処理フローに係る評価値に基づいて、複数の処理フローの取捨選択が行われる工程（取捨選択工程とも言う）が実行される。
【０１３５】
ステップＳ７では、例えば、ＧＰ進化処理を実行するか否かが判定される。ここでは、例えば、処理部１４ａの判定部１４４によって、予め設定された判定ルールに従って、各処理フローについて、第１変更処理としてのＧＰ進化処理、および第２変更処理としてのＧＡ進化処理のうちの何れの変化処理を実行するのかが判定される工程（判定工程とも言う）が実行される。ここで、ＧＰ進化処理を実行するものと判定されれば、ステップＳ８に進み、ＧＰ進化処理を実行しないと判定されれば、ステップＳ１０に進む。
【０１３６】
ステップＳ８では、例えば、処理部１４ａの変更部１４５ｃによって、第１変更処理としてのＧＰ進化処理が行われる。具体的には、図１１のステップＳ８１からステップＳ８６の処理が行われる。
【０１３７】
ステップＳ８１では、ＧＰ交叉処理を行うか否か判定される。ここでは、例えば、０〜１の範囲で閾値が設定されるとともに、発生される乱数によって０〜１の範囲で確率変数Ｃｖａが決定される。そして、例えば、確率変数Ｃｖａの値が、閾値よりも大きければ、ＧＰ交叉処理を行うものと判定されて、ステップＳ８２に進み、確率変数Ｃｖａの値が、閾値以下であれば、ＧＰ交叉処理を行わないものと判定されて、ステップＳ８３に進む。
【０１３８】
ステップＳ８２では、処理部１４ａの変更部１４５ｃによって、ＧＰ交叉処理が行われる。
【０１３９】
ステップＳ８３では、ＧＰ転移処理を行うか否か判定される。ここでは、例えば、０〜１の範囲で閾値が設定されるとともに、発生される乱数によって０〜１の範囲で確率変数Ｃｖｂが決定される。そして、例えば、確率変数Ｃｖｂの値が、閾値よりも大きければ、ＧＰ転移処理を行うものと判定されて、ステップＳ８４に進み、確率変数Ｃｖｂの値が、閾値以下であれば、ＧＰ転移処理を行わないものと判定されて、ステップＳ８５に進む。
【０１４０】
ステップＳ８４では、処理部１４ａの変更部１４５ｃによって、ＧＰ転移処理が行われる。
【０１４１】
ステップＳ８５では、ＧＰ突然変異処理を行うか否か判定される。ここでは、例えば、０〜１の範囲で閾値が設定されるとともに、発生される乱数によって０〜１の範囲で確率変数Ｃｖｃが決定される。そして、例えば、確率変数Ｃｖｃの値が、閾値よりも大きければ、ＧＰ突然変異処理を行うものと判定されて、ステップＳ８６に進み、確率変数Ｃｖｂの値が、閾値以下であれば、ＧＰ突然変異処理を行わないものと判定されて、図１０のステップＳ９に進む。
【０１４２】
ステップＳ８６では、処理部１４ａの変更部１４５ｃによって、ＧＰ突然変異処理が行われる。本処理が終了されると、図１０のステップＳ９に進む。
【０１４３】
ステップＳ９では、例えば、処理部１４ａの変更部１４５ｃによって、第１変更処理としてのＧＰ進化処理が実行された後に、第１変更処理によって変更された処理シーケンスに合わせて、該処理シーケンスとともに処理フローを規定しているパラメータ値群が更新される。
【０１４４】
ステップＳ１０では、例えば、処理部１４ａの変更部１４５ｃによって、第２変更処理としてのＧＡ進化処理が行われる。具体的には、図１２のステップＳ１０１からステップＳ１０４の処理が行われる。
【０１４５】
ステップＳ１０１では、ＧＡ交叉処理を行うか否か判定される。ここでは、例えば、０〜１の範囲で閾値が設定されるとともに、発生される乱数によって０〜１の範囲で確率変数Ｃｖｄが決定される。そして、例えば、確率変数Ｃｖｄの値が、閾値よりも大きければ、ＧＡ交叉処理を行うものと判定されて、ステップＳ１０２に進み、確率変数Ｃｖｄの値が、閾値以下であれば、ＧＡ交叉処理を行わないものと判定されて、ステップＳ１０３に進む。
【０１４６】
ステップＳ１０２では、処理部１４ａの変更部１４５ｃによって、ＧＡ交叉処理が行われる。
【０１４７】
ステップＳ１０３では、ＧＡ突然変異処理を行うか否か判定される。ここでは、例えば、０〜１の範囲で閾値が設定されるとともに、発生される乱数によって０〜１の範囲で確率変数Ｃｖｅが決定される。そして、例えば、確率変数Ｃｖｅの値が、閾値よりも大きければ、ＧＡ突然変異処理を行うものと判定されて、ステップＳ１０４に進み、確率変数Ｃｖｅの値が、閾値以下であれば、ＧＡ突然変異処理を行わないものと判定されて、図１０のステップＳ１１に進む。
【０１４８】
ステップＳ１０４では、処理部１４ａの変更部１４５ｃによって、ＧＡ突然変異処理が行われる。本処理が終了されると、図１０のステップＳ１１に進む。
【０１４９】
このようにして、ステップＳ８およびステップＳ１０において、ステップＳ７における判定結果に応じて、各処理フローについて、第１変更処理および第２変更処理の何れかを実行する工程（変更工程とも言う）が行われる。
【０１５０】
ステップＳ１１では、例えば、処理部１４ａにおいて、Ｎ個の個体Ｉｎ１〜ＩｎＮの世代交代による進化の回数を示すカウントＮｇが１つ加算される。このステップＳ１１の処理が終了すると、ステップＳ３に戻る。これにより、特定の条件を満たすまで、ステップＳ３からステップＳ１１の処理が繰り返される。
【０１５１】
つまり、例えば、処理部１４ａによって、取捨選択工程における取捨選択が行われた後に、判定工程における判定結果に従った変更工程における第１変更処理および第２変更処理のうちの何れか一方の変更処理の実施、該変更工程における変更処理によって得られた各処理フローについての評価工程における評価値の算出、および取捨選択工程における該評価値に基づく取捨選択の実行、が繰り返される。これにより、出力データと目標データとの差異が低減され得る。
【０１５２】
以上のような動作フローによって、例えば、処理シーケンスの変更とパラメータ値の変更とが同時期にバランス良く行われ得る。このため、処理フローの生成に要する演算量が低減され、適切な処理フローが迅速に生成され得る。
【０１５３】
＜(１−２−３)第１生成方法に係る具体例＞
ここで、第１生成方法によって、ある原画像から目標画像に酷似した画像を生成することができる処理フローが生成される際に必要とされる世代交代の回数をシミュレーションによって算出した具体例について説明する。
【０１５４】
なお、ここでは、上記特許文献２の技術に従って、遺伝的プログラミングによって処理シーケンスの最適化を行うための演算処理のループの途中に、遺伝的アルゴリズムによってパラメータの最適化を行うための演算処理のループが含まれる、入れ子構造のような２重のループの処理によって、処理フローが生成される際に必要とされる世代交代の回数をシミュレーションによって算出した参考例についても説明する。
【０１５５】
図１３は、具体例および参考例においてそれぞれ使用された原画像Ｉ０としての入力画像の一例を示す図である。図１４は、具体例および参考例においてそれぞれ使用された目標画像Ｔ０の一例を示す図である。図１５から図１８は、処理フローを生成するシミュレーションの条件の一例を示す図である。図１５から図１８には、各ＧＰ遺伝子Ｇｐ１〜ＧｐＮを構成する要素関数として採用される得る関数が列挙されており、更に、各関数に対して、処理内容、引数（パラメータ）の数、引数の意味および取り得る引数の値が列挙されている。１〜１８の番号が付された関数が、１つの画像を用いた画像処理であり、２１〜３３の番号が付された関数が、２つの画像を用いた画像処理である。なお、２７〜２９，３１の番号が付された関数では、画像Ａ（Ａｘｙ）および１４，１５，１，１０の番号が付された関数による画像処理によって求められた値（Ｐ'ｘｙ）に対し、適応値とする画像Ｂ（Ｂｘｙ）の値が用いられて、下記の式（１０）で最終的な値（Ｐ''ｘｙ）が算出される。
【０１５６】
Ｐ''ｘｙ＝Ｐ'ｘｙ×Ｂｘｙ／１００＋（１．０−Ｂｘｙ／２５５）×Ａｘｙ…（１０）。
【０１５７】
具体例に係る第１生成方法においては、ＧＰ遺伝子Ｇｐ１〜ＧｐＮおよびＧＡ遺伝子Ｇａ１〜ＧａＮのそれぞれの数がＮ個、Ｎ個の個体Ｉｎ１〜ＩｎＮに係る評価値の変化が収束するまでに要する世代の数がＧ、と設定された。そして、Ｎ個の個体Ｉｎ１〜ＩｎＮの最適化に要する全計算量Ｔｃ１は、個体の数Ｎと世代の数Ｇとの積と等価であるものとされた。このとき、下記の式（１１）が成立した。
【０１５８】
Ｔｃ１＝Ｎ×Ｇ  …（１１）。
【０１５９】
一方、参考例に係る特許文献２の技術については、ＧＰ遺伝子の数がＮｇｐ、Ｎｇｐ個のＧＰ遺伝子の進化において個体に係る評価値の変化が収束するまでに要する世代の数がＧｇｐ、ＧＡ遺伝子の数がＮｇａ、Ｎｇａ個のＧＡ遺伝子の進化において個体に係る評価値の変化が収束するまでに要する世代の数がＧｇａ、とされた。そして、Ｎｇｐ個の個体Ｉｎ１〜ＩｎＮｇｐの最適化に要する全計算量Ｔｃ０は、ＧＰ進化処理における個体の数Ｎｇｐと世代の数Ｇｇｐとの積に、ＧＡ進化処理におけるＧＡ遺伝子の数Ｎｇａと世代の数Ｇｇａとの積が乗じられた値と等価であるものとされた。このとき、下記の式（１２）が成立した。
【０１６０】
Ｔｃ０＝Ｎｇｐ×Ｇｇｐ×Ｎｇａ×Ｇｇａ  …（１２）。
【０１６１】
このように、画像処理フローが自動的に構築される際に、ＧＰ進化処理による処理シーケンスの最適化、およびＧＡ進化処理によるパラメータの最適化における個体の数、評価値の変化量の収束（処理フローの最適化）に要する世代交代の数、すなわち世代数から、参考例に係る全計算量Ｔｃ０が推計された。
【０１６２】
図１９は、第１生成方法を用いた処理フローの生成に係るシミュレーションの結果の具体例を示す図である。図２０は、上記特許文献２の技術に従った生成方法を用いた処理フローの生成に係るシミュレーションの結果の参考例を示す図である。
【０１６３】
図１９には、ＧＰ遺伝子およびＧＡ遺伝子のそれぞれの数が１０個であるものとした場合に、ＧＰ遺伝子およびＧＡ遺伝子の最適化が同時期に行われた際に得られた世代交代の回数（世代数）と評価値との関係が示されている。図２０には、ＧＰ遺伝子の数が１０個であるものとした場合に、パラメータを規定するＧＡ遺伝子は固定されて、ＧＰ遺伝子の最適化のみが行われた際に得られた世代数と評価値との関係が示されている。
【０１６４】
図１９および図２０のそれぞれでは、横軸が世代数を示し、縦軸が評価値（適応値）を示す。また、図１９および図２０のそれぞれでは、３回のシミュレーションの結果としての世代数と評価値との関係が、実線で描かれた曲線、一点鎖線で描かれた曲線および破線で描かれた曲線で示されている。
【０１６５】
図１９で示されるように、ＧＰ遺伝子およびＧＡ遺伝子の両方について同時期に進化による最適化が行われた場合には、約６００世代で十分に評価値の変化が収束した。この結果から、具体例に係る進化処理に要する全計算量Ｔｃ１は、個体数Ｎ（＝１０）と、評価値の変化の収束に要する世代数（≒６００）との積（≒１０×６００＝６０００）となるものと推計された。
【０１６６】
一方、図２０で示されるように、ＧＰ遺伝子のみについて進化による最適化が行われた場合には、約２００世代で十分に評価値の変化が収束した。このため、参考例に係るシミュレーションでは、ＧＰ進化処理における個体の数Ｎｇｐは１０であり、ＧＰ進化処理における評価値の変化の収束に要する世代の数Ｇｇｐは約２００となった。
【０１６７】
ところで、参考例では、ＧＰ進化処理によって処理シーケンスが変更される度に、パラメータ値を示すＧＡ遺伝子の進化による最適化が行われた。ここでは、例えば、各ＧＰ遺伝子で規定される処理シーケンスが数個から数十個の要素関数で構成されており、その処理シーケンスに係るパラメータの数は、数十個程度であった。ここで、例えば、数十個のパラメータが既知のＧＡ進化処理によって最適化される場合、２００世代以下、平均して１００世代程度の進化で、評価値が収束することが一般的に知られている。このため、例えば、ＧＡ進化処理における評価値の変化の収束に要する世代の数Ｇｇａは約１００と予測された。また、ＧＡ進化処理におけるＧＡ遺伝子の数Ｎｇａは、平均して少なくとも１０個以上であった。
【０１６８】
これにより、参考例に係る進化処理に要する全計算量Ｔｃ０は、ＧＰ遺伝子の数Ｎｇｐ（＝１０）と、該Ｎｇｐ個のＧＰ遺伝子の進化において個体に係る評価値の変化が収束するまでに要する世代の数Ｇｇｐ（≒２００）と、ＧＡ遺伝子の数Ｎｇａ（≒１０）と、Ｎｇａ個のＧＡ遺伝子の進化において個体に係る評価値の変化が収束するまでに要する世代の数Ｇｇａ（≒１００）との積（≒１０×２００×１０×１００＝２００００００）となるものと推計された。
【０１６９】
なお、参考例に係る特許文献２の技術では、ＧＡ進化処理において、評価値が良好でない場合には、ＧＡ進化処理によるパラメータ値の最適化が打ち切られる場合がある。このため、例えば、Ｎｇａ個のＧＡ遺伝子の進化において個体に係る評価値の変化が収束するまでに要する世代の数がＧｇａ（≒１００）よりも減少され得る。
【０１７０】
しかしながら、このような世代数Ｇｇａの減少を加味しても、具体例に係る全計算量Ｔｃ１（≒６０００）が、参考例に係る全計算量Ｔｃ０（＞２００００〜２００００００）よりも大幅に小さいことが分かった。
【０１７１】
＜(１−２−４)第１生成方法に係るまとめ＞
以上のように、処理フローに係る第１生成方法によれば、例えば、１回の世代交代において、ＧＰ進化処理およびＧＡ進化処理の何れか一方の進化処理が行われる。このため、ＧＰ進化処理の途中で、パラメータ値が最適化されるまでの過度なＧＡ進化処理が行われることなく、ＧＰ進化処理による処理シーケンスの変更とＧＡ進化処理によるパラメータ値の変更とが同時期にバランス良く行われ得る。これにより、処理フローの生成に要する演算量が低減され、適切な処理フローが迅速に生成され得る。
【０１７２】
＜(１−３)第２の生成方法＞
＜(１−３−１)第２の生成方法に係る機能的な構成＞
図２１は、処理部１４ａにおける機能的な構成の一例を概略的に示すブロック図である。換言すれば、図２１では、処理部１４ａにおいて、プログラムＰ１の実行によって実現される第２生成方法に係る各種機能が例示されている。
【０１７３】
処理部１４ａは、実現される機能的な構成として、例えば、取得部１４１Ａと、評価部１４２と、取捨選択部１４３と、判定部１４４と、進化計算部１４５Ａと、決定部１４６とを有している。これらの各部１４１Ａ，１４２〜１４４，１４５Ａ，１４６での処理におけるワークスペースとして、例えば、メモリ１４ｂが使用される。これらの機能的な構成のうち、上記第１生成方法に係る機能的な構成とは異なる、取得部１４１Ａおよび進化計算部１４５Ａについて以下説明する。
【０１７４】
＜(１−３−１−１)取得部＞
取得部１４１Ａは、例えば、複数の処理フローを取得することができる。ここでは、取得部１４１Ａによって、複数の処理フローが生成され得る。各処理フローは、複数の処理の順序を示す処理シーケンスと、該複数の処理に係る１つ以上のパラメータの値とによって規定される。また、該複数の処理には、第１処理フローおよび第２処理フローが含まれる。
【０１７５】
複数の処理には、例えば、パラメータを有する処理と、パラメータを有していない処理とが含まれ得る。取得部１４１Ａでは、上記第１生成方法に係る取得部１４１と同様に、例えば、処理シーケンスを規定するＧＰ遺伝子と１つ以上のパラメータ値を示すＧＡ遺伝子との組を有するＮ個の初期個体が生成され得る。具体的には、各個体の処理シーケンスを規定するＧＰ遺伝子を構成する複数の要素関数は、例えば、予め準備された複数の関数の中からランダムに選出され得る。また、各個体ＩｎＭのＧＰ遺伝子に含まれる全ての要素関数についてのパラメータの初期値が、例えば、ランダムに設定される。但し、第２生成方法では、個体を表現するデータの形態が、上記第１生成方法とは異なっていても良い。
【０１７６】
図２２から図２４は、各個体ＩｎＭの構造の一例として、１番目の個体Ｉｎ１の構造を例示する図である。
【０１７７】
図２２で示されるように、各個体ＩｎＭにおいて、処理シーケンスを規定するＧＰ遺伝子ＧｐＭが、画像データの入力を葉とし、要素関数による処理を節とするツリー構造で表現され得る。
【０１７８】
図２２の例では、要素関数Ｎ０による処理を規定するノードＮｄ０が根とされて、該ノードＮｄ０に対して、原画像に係る原画像データＮ１の入力を規定するノードＮｄ１および要素関数Ｎ２による処理を規定するノードＮｄ２がそれぞれアークで結ばれている。また、ノードＮｄ２に対して、原画像に係る原画像データＮ３の入力を規定するノードＮｄ３および原画像に係る原画像データＮ４の入力を規定するノードＮｄ４がそれぞれアークで結ばれている。つまり、該ツリー構造では、原画像データＮ３と原画像データＮ４とを用いた要素関数Ｎ２による画像処理、ならびに原画像データＮ１と要素関数Ｎ２の出力としての画像データとを用いた要素関数Ｎ０による画像処理を有する処理シーケンスが規定されている。なお、ここで、原画像データＮ１，Ｎ３，Ｎ４は、例えば、相互に同一の画像データであっても良いし、相互に異なる画像データであっても良い。
【０１７９】
また、各個体ＩｎＭのツリー構造では、処理シーケンスを構成する各要素関数に対して、該各要素関数に係るパラメータが関連付けられている。図２２の例では、要素関数Ｎ０による処理を規定するノードＮｄ０に対して、該要素関数Ｎ０による処理に係るパラメータａを規定するノードＮｐ０が関連付けられ、要素関数Ｎ２による処理を規定するノードＮｄ２に対して、該要素関数Ｎ２による処理に係るパラメータｂを規定するノードＮｐ２が関連付けられている。そして、これらのパラメータについてＧＡ遺伝子が構築され得る。
【０１８０】
ここでは、図２２で示された処理フローを表現するツリー構造についての具体的な表現方法として、例えば、ＧＰ遺伝子が、１つ以上の要素の１次元的な配列によって表現され、ＧＡ遺伝子が、１つ以上の数値の１次元的な配列によって表現される方法が採用され得る。
【０１８１】
この場合、ＧＰ遺伝子では、例えば、図２３で示されるように、処理シーケンスを構成する処理を示す１つ以上の要素が１次元的に配列され、該１つ以上の要素のそれぞれについての要素の種類を示す情報が１次元的に配列される。ここで、１つ以上の要素には、例えば、要素関数による処理を示す要素、および該要素関数に対する原画像の入力を示す要素等が含まれる。要素の種類を示す情報には、例えば、要素の種類を示す数値が含まれる。そして、１つ以上の要素について、それぞれの要素の種類を示す数値が１次元的に配列された数値の列（スタックカウントとも称する）が採用され得る。該スタックカウントでは、例えば、２つのデータが入力される関数による処理を示す要素に数値“−１”が付与され、１つのデータが入力される関数による処理を示す要素に数値“０”が付与され、データの入力を示す要素に数値“１”が付与される。
【０１８２】
図２３の例では、ツリー構造の根から遠い順に、要素Ｎ４，Ｎ３，Ｎ２，Ｎ１，Ｎ０が１次元的に配列された要素の１次元配列と、これらの要素のそれぞれの種類を示す数値“１，１，−１，１，−１”が順に１次元的に配列されたスタックカウントとが示されている。このように、要素の１次元配列とスタックカウントとによって、ＧＰ遺伝子が記述され得る。該スタックカウントは、例えば、後述する部分ツリー構造を検出する処理に用いられ得る。ここで、１次元的に配列されるとは、データ上で一列にならべられることを意味している。
【０１８３】
また、ＧＡ遺伝子については、例えば、図２４で示されるように、各要素関数の処理に係るパラメータについての１つ以上のパラメータ値が１次元配列によって記述され得る。図２４の例では、要素関数Ｎ０の処理に係るパラメータａについての３種類のパラメータ値ａ１，ａ２，ａ３と、要素関数Ｎ２の処理に係るパラメータｂについての２種類のパラメータ値ｂ１，ｂ２と、が１次元配列によって記述されている。
【０１８４】
第２生成方法についての以下の例では、取得部１４１Ａによって、１つ以上の要素の１次元的な配列（１次元配列とも言う）と、該１つ以上の要素のそれぞれの種類を示す数値の１次元配列であるスタックカウントとを含むＧＰ遺伝子が生成される。また、取得部１４１Ａによって、各要素関数の処理に係るパラメータについて、１つ以上のパラメータ値が１次元的に記述されているＧＡ遺伝子が生成される。
【０１８５】
図２５から図２７は、各個体ＩｎＭの構造の一例として、２番目の個体Ｉｎ２の構造を例示する図である。
【０１８６】
図２５の例では、図２２の例と同様に、処理シーケンスを規定するＧＰ遺伝子ＧｐＭが、画像データの入力を葉とし、要素関数による処理を節とするツリー構造で表現され得る。
【０１８７】
図２５の例では、要素関数Ｎ５による処理を規定するノードＮｄ５が根とされて、該ノードＮｄ５に対して、要素関数Ｎ６による処理を規定するノードＮｄ６と要素関数Ｎ８による処理を規定するノードＮｄ８がそれぞれアークで結ばれている。また、ノードＮｄ６に対して、原画像データＮ７の入力を規定するノードＮｄ７がアークで結ばれ、ノードＮｄ８に対して、原画像データＮ９の入力を規定するノードＮｄ９がアークで結ばれている。つまり、該ツリー構造では、原画像データＮ９を用いた要素関数Ｎ８の画像処理、原画像データＮ７を用いた要素関数Ｎ６の画像処理、および要素関数Ｎ８の出力としての画像データと要素関数Ｎ６の出力としての画像データとを用いた要素関数Ｎ５の画像処理を有する処理シーケンスが規定されている。なお、ここで、原画像データＮ７，Ｎ８は、例えば、相互に同一の画像データであっても良いし、相互に異なる画像データであっても良い。
【０１８８】
また、図２５の例では、要素関数Ｎ５による処理を規定するノードＮｄ５に対して、該要素関数Ｎ５による処理に係るパラメータｃを規定するノードＮｐ５が関連付けられている。また、要素関数Ｎ６による処理を規定するノードＮｄ６に対して、該要素関数Ｎ６による処理に係るパラメータｄを規定するノードＮｐ６が関連付けられている。また、要素関数Ｎ８による処理を規定するノードＮｄ８に対して、該要素関数Ｎ８による処理に係るパラメータｅを規定するノードＮｐ８が関連付けられている。そして、これらのパラメータについてＧＡ遺伝子が構築され得る。
【０１８９】
図２５で示された処理シーケンスについては、図２６で示されるＧＰ遺伝子が生成され得る。図２６の例では、ツリー構造の根から遠い順に、要素Ｎ９，Ｎ８，Ｎ７，Ｎ６，Ｎ５が１次元的に配列された要素の１次元配列と、これらの要素のそれぞれの種類を示す数値“１，０，１，０，−１”が順に１次元的に配列されたスタックカウントとが示されている。
【０１９０】
また、図２５で示された処理シーケンスに係るパラメータについては、例えば、図２７で示されるように、各要素関数の処理に係るパラメータについての１つ以上のパラメータ値が１次元配列によって記述され得る。図２７の例では、要素関数Ｎ５の処理に係るパラメータｃについての３種類のパラメータ値ｃ１，ｃ２，ｃ３と、要素関数Ｎ６の処理に係るパラメータｄについての１種類のパラメータ値ｄ１と、要素関数Ｎ８の処理に係るパラメータｅについての２種類のパラメータ値ｅ１，ｅ２と、が１次元配列によって記述されている。つまり、各処理シーケンスを規定する複数の要素関数に係るパラメータについて、１つ以上のパラメータ値が１次元的に記述されているＧＡ遺伝子が生成され得る。
【０１９１】
＜(１−３−１−２)進化計算部＞
進化計算部１４５Ａは、Ｎ個の個体Ｉｎ１〜ＩｎＮをＧＰ進化処理およびＧＡ進化処理によって進化させる計算を実行することができる。進化計算部１４５Ａでは、ＧＰ進化処理またはＧＡ進化処理が１回行われることで、Ｎ個の個体Ｉｎ１〜ＩｎＮの１回の世代交代が行われる。
【０１９２】
進化計算部１４５Ａは、例えば、検出部１４５ａ、作成部１４５ｂ、変更部１４５ｃＡおよび更新部１４５ｄを有している。変更部１４５ｃＡは、例えば、第１変更処理としてのＧＰ進化処理、および第２変更処理としてのＧＡ進化処理を実行することができる。
【０１９３】
［Ｐ２］ＧＰ進化処理．
ＧＰ進化処理では、上記第１生成方法に係るＧＰ進化処理と同様に、例えば、各処理フローについて、予め設定された第１変更ルールに従って処理シーケンスの少なくとも一部の処理が変更され得る。ここで、１回のＧＰ進化処理には、例えば、ＧＰ交叉処理およびＧＰ突然変異処理のうちの少なくとも１つの処理が含まれる。
【０１９４】
［Ｐ２１］ＧＰ交叉処理．
ＧＰ交叉処理では、上記第１生成方法に係るＧＰ交叉処理と同様に、例えば、Ｎ個の個体Ｉｎ１〜ＩｎＮで規定されるＮ個の処理シーケンスを規定するＮ個のＧＰ遺伝子Ｐｇ１〜ＰｇＮにおける２つのＧＰ遺伝子間で、少なくとも一部の処理が入れ替えられる。このとき、上記第１生成方法に係るＧＰ進化処理と同様に、例えば、入れ替えられる１つ以上の処理に１つ以上のパラメータが規定されていれば、該１つ以上の処理に関連付けられている１つ以上のパラメータの値も１つ以上の処理とともに入れ替えられる。
【０１９５】
図２８から図３１は、２つのＧＰ遺伝子Ｇｐ１，Ｇｐ２で規定されるツリー構造の間においてＧＰ交叉処理が行われる様子の一例を模式的に示す図である。
【０１９６】
ＧＰ交叉処理では、図２８および図２９の例のように、一方のＧＰ遺伝子Ｇｐ１のうちの一部の部分的なツリー構造（部分ツリー構造）Ｐｔ１と、他方のＧＰ遺伝子Ｇｐ２のうちの一部の部分ツリー構造Ｐｔ２と、が入れ替えの対象とされる。図３０および図３１では、図２８および図２９の例における１番目のＧＰ遺伝子Ｇｐ１の部分ツリー構造Ｐｔ１と、２番目のＧＰ遺伝子Ｇｐ２の部分ツリー構造Ｐｔ２とが入れ替えられた後の状態が例示されている。
【０１９７】
ここで、部分ツリー構造は、例えば、１つの処理と該１つの処理に対する１つ以上のデータの入力との組み合わせを規定することができ、１つの処理と該１つの処理を実行するためのデータを入力するための全ての処理とを含む２つ以上の処理を規定することもできる。そして、入れ替え対象部分の間（例えば、部分ツリー構造Ｐｔ１と部分ツリー構造Ｐｔ２との間）では、例えば、ノードの数（すなわち、処理の数）およびノードの連結形態が、同一であっても、異なっていても良い。また、ＧＰ交叉処理において、ＧＰ遺伝子のうちの入れ替え対象部分の位置は、例えば、発生される乱数等によって適宜ランダムに指定され得る。
【０１９８】
また、図２８から図３１で示されるように、例えば、２つのＧＰ遺伝子間において、部分ツリー構造Ｐｔ１と部分ツリー構造Ｐｔ２とが入れ替わる際には、部分ツリー構造Ｐｔ１に係るパラメータ値と、部分ツリー構造Ｐｔ２に係るパラメータ値とが、ＧＰ遺伝子間における部分ツリー構造の入れ替えに応じて入れ替えられる。また、２つのＧＰ遺伝子間において、例えば、少なくとも一方の入れ替え対象部分が、少なくとも１つの処理を規定する１つ以上のノードを含んでいれば良く、ＧＰ遺伝子の全体であっても良い。
【０１９９】
［Ｐ２２］ＧＰ突然変異処理．
ＧＰ突然変異処理では、上記第１生成方法に係るＧＰ突然変異処理と同様に、例えば、Ｎ個の処理シーケンスを規定するＮ個のＧＰ遺伝子Ｐｇ１〜ＰｇＮのうちの少なくとも１つのＧＰ遺伝子において、一部の処理が異なる１つ以上の処理に置き換えられる。
【０２００】
図３２および図３３は、２番目のＧＰ遺伝子Ｇｐ２で規定されるツリー構造においてＧＰ突然変異処理が行われる様子の一例を模式的に示す図である。
【０２０１】
ＧＰ突然変異処理では、図３２および図３３の例のように、あるＧＰ遺伝子Ｇｐ２における一部の処理を含む部分Ａｒ２が、他の１つ以上の処理を含む部分ＡｒＸに置き換えられる。
【０２０２】
ここで、突然変異の対象としての部分（突然変異対象部分）は、例えば、１つ以上のノードによって規定される１つ以上の処理が含まれている部分であれば良く、部分ツリー構造であっても良い。また、突然変異対象部分の位置は、例えば、発生される乱数等によって適宜ランダムに指定され得る。また、例えば、突然変異対象部分については、置き換え後の異なる１つ以上の処理に係る１つ以上のパラメータの初期値が、例えば、上記第１生成方法に係る取得部１４１と同様に、取得部１４１Ａにおけるパラメータの初期値の設定と同様にランダムに設定され得る。
【０２０３】
［Ａ２］ＧＡ進化処理．
ＧＡ進化処理では、例えば、変更部１４５ｃＡによって、各処理フローについて、予め設定された第２変更ルールに従って１つ以上のパラメータ値の少なくとも一部のパラメータ値が変更され得る。具体的には、ＧＡ進化処理では、例えば、複数の処理フローをそれぞれ規定するＮ個の個体Ｉｎ１〜ＩｎＮについて、各処理フローの複数の処理に係る１つ以上のパラメータ値をそれぞれ規定する各ＧＡ遺伝子の少なくとも一部のパラメータ値が変更され得る。
【０２０４】
１回のＧＡ進化処理には、例えば、ＧＡ交叉処理およびＧＡ突然変異処理の少なくとも一方の処理が含まれる。また、１回のＧＡ進化処理には、例えば、処理シーケンスにおいて類似する処理を行う部分（類似処理部分とも言う）を検出する検出処理、および類似処理部分に係るＧＡ遺伝子を作成する作成処理、ならびにパラメータ値を更新する更新処理が含まれ得る。
【０２０５】
［Ａ２１］検出処理．
検出部１４５ａは、例えば、第１処理フローと第２処理フローとの間において、パラメータの種類および該パラメータが取り得る数値が共通する１つ以上の処理を検出することができる。ここで、検出される１つ以上の処理は、例えば、類似する処理を行う部分（類似処理部分）を構成する。
【０２０６】
第１処理フローと第２処理フローとを含む１組の処理フローは、例えば、取捨選択部１４３において連続して選出される２つの処理フローによって構成され得る。ここで、具体例として、例えば、取捨選択部１４３によって、１０個の処理フローから、１０回の処理フローの選出が行われる場合を想定する。このとき、例えば、１回目の選出と２回目の選出によって選出された２つの処理フローが、検出部１４５ａにおける検出の対象として用いられる一対の処理フローとされ得る。これと同様にして、３回目と４回目の選出、５回目と６回目の選出、７回目と８回目の選出ならびに９回目と１０回目の選出によって、それぞれ一対の処理フローが選出され得る。すなわち、Ｎ個の個体Ｉｎ１〜ＩｎＮが、例えば、偶数個の個体であれば、取捨選択部１４３によって、検出部１４５ａにおける検出の対象となるＮ／２組の処理フローが設定され得る。このとき、例えば、Ｎ＝１０であれば、５組の処理フローが設定され得る。
【０２０７】
そして、検出部１４５ａでは、例えば、各個体ＩｎＭの全体のツリー構造（全体ツリー構造とも言う）から部分ツリー構造が検出される処理（部分ツリー検出処理とも言う）が行われ得る。また、検出部１４５ａでは、例えば、第１処理フローに係る個体と第２処理フローに係る個体との間において、部分ツリー検出処理で検出された部分ツリー構造に係る情報に基づいて、パラメータの種類および該パラメータが取り得る数値が共通する１つ以上の処理を構成する類似処理部分が検出される処理（類似処理部分検出処理とも言う）が行われ得る。
【０２０８】
［Ａ２１１］部分ツリー検出処理．
各個体ＩｎＭのＧＰ遺伝子ＧｐＭで規定されるツリー構造には、例えば、ツリー構造の全体（全体ツリー構造とも言う）と、要素関数を規定する節としてのノードを仮の根とする部分的なツリー構造（部分ツリー構造）が含まれ得る。ここで、部分ツリー構造には、例えば、仮の根としてのノードから先の、原画像の入力を規定する葉としてのノードまでのツリー構造が含まれる。
【０２０９】
検出部１４５ａでは、例えば、スタックカウントが利用されて、部分ツリー構造が検出され得る。
【０２１０】
部分ツリー検出処理は、例えば、下記［１ａ］から［１ｄ］の処理が順に行われることで、実現され得る。
【０２１１】
［１ａ］ＧＰ遺伝子において、要素の１次元配列およびスタックカウントの最後尾が検索の始点とされ、後ろから前に進む方向が探索方向Ｄｒ１とされる。
【０２１２】
［１ｂ］探索の始点の要素から探索方向Ｄｒ１に対象としての要素（対象要素とも言う）が遷移されつつ、該対象要素に係るスタックカウントの数値が積算される。このとき、スタックカウントの数値の総和が１となるまで、対象要素の遷移および該対象要素に係るスタックカウントの数値の加算が順次に進められる。
【０２１３】
［１ｃ］探索の始点の要素からのスタックカウントの数値の積算によって得られる値（総和）が１となれば、その際における対象要素までが、探索の始点の要素を根とする部分ツリー構造として検出される。
【０２１４】
［１ｄ］次に、ＧＰ遺伝子における要素の１次元配列において、探索の新たな始点が前回の探索の始点よりも１つ前の要素に変更される。このとき、新たな始点が要素関数に係る要素であれば、上記［１ｂ］からの処理が再度実行され、該新たな始点が要素関数に係る要素でなければ、探索の新たな始点が要素関数に係る要素となるまで、探索の始点が１つずつ前に遷移される。そして、該探索の始点が、ＧＰ遺伝子における要素の１次元配列の先頭の要素まで遷移すれば、部分ツリー検出処理が終了される。
【０２１５】
図３４から図４１は、部分ツリー検出処理によって、各個体ＩｎＭのＧＰ遺伝子で規定される全体ツリー構造から部分ツリー構造が検出される一例を示す図である。
【０２１６】
図３４から図４１の例では、図３４で示されるような２番目の個体Ｉｎ２のＧＰ遺伝子Ｇｐ２で規定される全体ツリー構造について、図３５で示されるＧＰ遺伝子における要素の１次元配列およびスタックカウントに基づいて、部分ツリー構造が検出され得る。
【０２１７】
ここでは、まず、図３６で示されるように、２番目の個体Ｉｎ２のＧＰ遺伝子Ｇｐ２で規定される全体ツリー構造が１つ目の部分ツリー構造Ｇｐ２ａとして検出され得る。この場合、図３７で示されるように、部分ツリー構造の探索における対象要素は、要素Ｎ０を始点として、要素Ｎ０、要素Ｎ６、要素Ｎ７、要素Ｎ８および要素Ｎ９の順に遷移する。このとき、スタックカウントは、“−１、０、１、０、１”の順に積算されて、スタックカウントの総和が１に至る。
【０２１８】
また、次に、図３８で示されるように、ノードＮｄ６とノードＮｄ７とによって構成される部分ツリー構造Ｇｐ２ｂが検出され得る。この場合、図３９で示されるように、部分ツリー構造の探索における対象要素は、要素Ｎ６を始点として、要素Ｎ６および要素Ｎ７の順に遷移する。このとき、スタックカウントは、“０、１”の順に積算されて、スタックカウントの総和が１に至る。
【０２１９】
また、次に、図４０で示されるように、ノードＮｄ８とノードＮｄ９とによって構成される部分ツリー構造Ｇｐ２ｃが検出され得る。この場合、図４１で示されるように、部分ツリー構造の探索における対象要素は、要素Ｎ８を始点として、要素Ｎ８および要素Ｎ９の順に遷移する。このとき、スタックカウントは、“０、１”の順に積算されて、スタックカウントの総和が１に至る。
【０２２０】
これにより、図３４の例で示される２番目のＧＰ遺伝子Ｇｐ２で規定される全体ツリー構造から、図３６、図３８および図４０でそれぞれ示される３タイプの部分ツリー構造Ｇｐ２ａ〜Ｇｐ２ｃが検出され得る。
【０２２１】
このようにして、例えば、スタックカウントが用いられることで、ＧＰ遺伝子で規定される全体ツリー構造から、部分ツリー構造が容易に検出され得る。すなわち、ＧＰ遺伝子で規定される全体の処理シーケンスから、部分処理シーケンスが容易に検出され得る。
【０２２２】
［Ａ２１２］類似処理部分検出処理．
検出部１４５ａは、例えば、第１処理フローと第２処理フローとの間において、同様なタイプの部分処理シーケンス（類似部分処理シーケンスとも言う）を検出することができる。ここで、類似部分処理シーケンスには、例えば、パラメータの種類および該パラメータが取り得る値が共通するとともに、１つの処理あるいは該１つの処理を行うためのデータを得る順序が同一の全ての処理とを含む２つ以上の処理によって構成される部分処理シーケンスが含まれ得る。これにより、検出部１４５ａでは、例えば、第１処理フローと第２処理フローとの間において類似の処理を規定する類似処理部分が検出され得る。
【０２２３】
ここでは、検出部１４５ａによって、例えば、部分ツリー検出処理で検出された部分処理シーケンスの中から、類似部分処理シーケンスが検出され得る。パラメータの種類が共通する処理としては、例えば、幅と高さ等のパラメータによってフィルタのサイズが規定される２種以上の処理等が挙げられる。これらの処理では、フィルタのサイズによって処理内容が規定される。このようなフィルタのサイズによって処理内容が規定されるフィルタ処理としては、例えば、平均化フィルタ、メディアンフィルタ、ガウシアンフィルタおよびラプラシアンフィルタ等が挙げられる。パラメータが取り得る値が共通する処理としては、例えば、フィルタのサイズが取り得る最小値、最大値および刻みが共通するフィルタ処理等が挙げられる。そして、パラメータの種類および該パラメータが取り得る値が共通する同様なタイプの処理（同一タイプ処理とも言う）は、例えば、記憶部１３に記憶されるプログラムＰ１または各種のデータによって規定され得る。具体的には、同一タイプ処理は、例えば、予め準備された数十種類から数百種類の関数を同様なタイプの処理ごとに分類した情報によって規定され得る。
【０２２４】
また、ここでは、類似部分処理シーケンスは、例えば、仮想的な根としてのノードによって規定される１つの処理を行うためのデータを得る順序が同一の全ての処理を含むものである。このため、類似部分処理シーケンスは、例えば、２つの処理フローの間で、同数のノードが同一の形態で連結されている部分ツリー構造によって規定され得る。さらに、２つの処理フローについての類似部分処理シーケンスでは、部分ツリー構造を構成する同一の位置のノードによって、例えば、パラメータの種類および該パラメータが取り得る値が共通する同様なタイプの処理が規定され得る。
【０２２５】
また、検出部１４５ａでは、例えば、第１処理フローと第２処理フローとの間において、同一の部分処理シーケンスが検出されても良い。つまり、類似部分処理シーケンスには、例えば、同一の部分処理シーケンスが含まれ得る。このとき、２つの処理フローの間において、同一の部分処理シーケンスは、例えば、パラメータの種類およびパラメータが取り得る値が共通するとともに同数で且つ同種の処理を規定するノードが同一の形態で連結されている部分ツリー構造によって規定され得る。同種の処理には、例えば、同一の要素関数による処理が含まれ得る。
【０２２６】
図４２および図４３は、２つの処理フローの間において類似部分処理シーケンスとしての同一の部分処理シーケンスが検出される一例を示す図である。
【０２２７】
図４２および図４３の例では、３番目のＧＰ遺伝子Ｇｐ３に係るツリー構造と４番目のＧＰ遺伝子Ｇｐ４に係るツリー構造との間において、同一の部分処理シーケンスが存在している。具体的には、２つのツリー構造において、処理Ｎ１を規定するノードＮｄ１が仮想的な根とされて、ノードＮｄ１に対してアークで結ばれた処理Ｎ２を規定するノードＮｄ２、および該ノードＮｄ２に対してアークで結ばれた画像データＮ５の入力を規定するノードＮｄ５によって構成される同一の部分ツリー構造Ｐｔ３，Ｐｔ４が存在している。なお、ノードＮｄ１にはパラメータｂのノードＮｐ１が結びつけられ、ノードＮｄ２にはパラメータｃのノードＮｐ２が結びつけられている。
【０２２８】
このため、例えば、図４２および図４３で示される３番目のＧＰ遺伝子Ｇｐ３に係るツリー構造と４番目のＧＰ遺伝子Ｇｐ４に係るツリー構造との間では、検出部１４５ａによって、類似処理部分としての部分ツリー構造Ｐｔ３，Ｐｔ４が検出され得る。換言すれば、部分ツリー構造Ｐｔ３，Ｐｔ４によって規定される同一の部分処理シーケンスが、類似部分処理シーケンスとして検出され得る。
【０２２９】
また、類似処理部分検出処理では、２つの処理フローの間において類似部分処理シーケンスが検出されない場合には、例えば、２つの処理フローの間において同種の処理が検出されても良い。例えば、第１処理フローと第２処理フローとの間において、検出部１４５ａによって１つ以上の同種の処理が検出されても良い。この検出によっても、検出部１４５ａでは、例えば、第１処理フローと第２処理フローとの間における同種の処理を規定する類似処理部分が検出され得る。なお、１つ以上の同種の処理は、例えば、ツリー構造において、互いにアークで結ばれていない、離れたノードによって規定される２つ以上の同種の処理であっても良い。
【０２３０】
図４４および図４５は、２つのツリー構造の間における類似処理部分の一例を示す図である。図４４および図４５には、５番目のＧＰ遺伝子Ｇｐ５に係るツリー構造と６番目のＧＰ遺伝子Ｇｐ６に係るツリー構造との間において、類似部分処理シーケンスは存在していないが、同一の処理を規定している類似処理部分Ａｒ５，Ａｒ６が存在している様子が示されている。このとき、検出部１４５ａでは、例えば、第１処理フローと第２処理フローとの間において、パラメータの種類および該パラメータが取り得る数値が共通する１つ以上の処理によって構成される類似処理部分Ａｒ５，Ａｒ６が検出され得る。
【０２３１】
［Ａ２２］作成処理．
作成部１４５ｂは、例えば、検出部１４５ａによって検出された類似処理部分について、相互に対応する処理についての部分的なＧＡ遺伝子（対応ＧＡ遺伝子とも言う）を作成することができる。対応ＧＡ遺伝子は、例えば、類似処理部分を構成する１つ以上の処理に係るパラメータの値によって構成される。該対応ＧＡ遺伝子は、例えば、類似処理部分の検出対象であった２つの処理フローのそれぞれについて、類似処理部分を構成する１つ以上の処理に係るパラメータの値が１次元的に配列されることで作成され得る。このとき、例えば、１つ以上の処理が２つ以上の処理を含んでいれば、処理シーケンスにおける２つ以上の処理の順序に従って、パラメータ値が１次元的に配列されることで、対応ＧＡ遺伝子が作成され得る。
【０２３２】
図４６および図４７は、類似処理部分に係る対応ＧＡ遺伝子が生成される一例を示す図である。図４６および図４７の例では、図４２および図４３で例示される類似処理部分としての部分ツリー構造Ｐｔ３，Ｐｔ４のそれぞれに係る対応ＧＡ遺伝子が生成される様子が例示されている。
【０２３３】
例えば、図４２で示される類似処理部分としての部分ツリー構造Ｐｔ３に含まれるノードＮｐ１，Ｎｐ２について、ノードＮｐ１で規定されるパラメータｂおよびノードＮｐ２で規定されるパラメータｃのそれぞれについての１つ以上のパラメータ値が、図４６の上部に記載されている。具体的には、パラメータｂについて、２種類のパラメータ値である１．０と０が記述され、パラメータｃについて、１種類のパラメータ値である１２８が記述されている。より具体的には、例えば、パラメータｂに係る２種類のパラメータ値ｂ１，ｂ２について、パラメータ値ｂ１が、１．０であり、パラメータ値ｂ２が、０であり、さらに、パラメータｃに係る１種類のパラメータ値ｃ１について、パラメータ値ｃ１が、１２８であることが記述されている。このとき、作成部１４５ｂでは、類似処理部分を構成する１つ以上の処理に係るパラメータの値が１次元的に配列される。これにより、対応ＧＡ遺伝子が作成される。図４６の例では、図４６の下部に記載されているように、３番目の個体Ｉｎ３について、３つのパラメータの値が１次元的に配列されている「１．０、０、１２８」が対応ＧＡ遺伝子（ここでは、対応ＧＡ遺伝子３とも言う）として作成される。
【０２３４】
また、例えば、図４３で示される類似処理部分としての部分ツリー構造Ｐｔ４に含まれるノードＮｐ１，Ｎｐ２について、ノードＮｐ１およびノードＮｐ２で規定されるパラメータｂおよびパラメータｃのそれぞれについての１つ以上のパラメータ値が、図４７の上部に記載されている。具体的には、例えば、パラメータｂについて、パラメータ値ｂ１が、０．５であり、パラメータ値ｂ２が、３２であり、さらに、パラメータｃについて、パラメータ値ｃ１が、１２８であることが記述されている。このとき、作成部１４５ｂによって、図４７の下部に記載されているように、４番目の個体Ｉｎ４について、３つのパラメータの値が１次元的に配列されている「０．５、３２、６４」が対応ＧＡ遺伝子（ここでは、対応ＧＡ遺伝子４とも言う）として作成される。
【０２３５】
図４８および図４９は、類似処理部分に係る対応ＧＡ遺伝子が生成される他の一例を示す図である。図４８および図４９の例では、図４４および図４５で例示される類似処理部分Ａｒ５，Ａｒ６のそれぞれに係る対応ＧＡ遺伝子が生成される様子が例示されている。
【０２３６】
例えば、図４４で示される類似処理部分Ａｒ５に含まれるノードＮｐ１，Ｎｐ２で規定されるパラメータｂおよびパラメータｃのそれぞれについての１つ以上のパラメータ値が、図４８の上部に記載されている。具体的には、例えば、パラメータｂについて、パラメータ値ｂ１が、３であり、パラメータ値ｂ２が、３であり、さらに、パラメータｃについて、パラメータ値ｃ１が、１．０であり、パラメータ値ｃ２が、３２であることが記述されている。このとき、作成部１４５ｂによって、例えば、図４８の下部に記載されているように、５番目の個体Ｉｎ５について、４つのパラメータの値が１次元的に配列されている「３、３、１．０、３２」が対応ＧＡ遺伝子（ここでは、対応ＧＡ遺伝子５とも言う）として作成される。
【０２３７】
また、例えば、図４５で示される類似処理部分Ａｒ６に含まれるノードＮｐ１，Ｎｐ２で規定されるパラメータｂおよびパラメータｃのそれぞれについての１つ以上のパラメータ値が、図４９の上部に記載されている。具体的には、例えば、パラメータｂについて、パラメータ値ｂ１が、５であり、パラメータ値ｂ２が、５であり、さらに、パラメータｃについて、パラメータ値ｃ１が、０．５であり、パラメータ値ｃ２が、６４であることが記述されている。このとき、作成部１４５ｂによって、例えば、図４９の下部に記載されているように、６番目の個体Ｉｎ６について、４つのパラメータの値が１次元的に配列されている「５、５、０．５、６４」が対応ＧＡ遺伝子（ここでは、対応ＧＡ遺伝子６とも言う）として作成される。
【０２３８】
［Ａ２３］ＧＡ交叉処理．
変更部１４５ｃＡによるＧＡ交叉処理では、例えば、第１処理フローから検出部１４５ａによって検出された１つ以上の処理における１つ以上のパラメータと、第２処理フローから検出部１４５ａによって検出された１つ以上の処理における１つ以上のパラメータとの間において、種類が対応する同一の数のパラメータの値が入れ替えられる。このとき、例えば、第１処理フローに係る１つ以上のパラメータと、第２処理フローに係る１つ以上のパラメータとの間において、種類が対応する全てのパラメータのうち、一部の種類が対応する同一の数のパラメータの値が入れ替えられても良いし、全ての種類が対応する同一の数のパラメータの値が入れ替えられても良い。
【０２３９】
ここで、検出部１４５ａで検出された１つ以上の処理が、類似処理部分を構成するのであれば、例えば、変更部１４５ｃＡによって、第１処理フローと第２処理フローとの間で、類似処理部分において種類が対応する同一の数のパラメータの値が入れ替えられ得る。つまり、変更部１４５ｃＡでは、例えば、検出部１４５ａによって第１処理フローおよび第２処理フローから検出された類似処理部分について、種類が対応する同一の数のパラメータの値が入れ替えられ得る。このように、類似部分処理について、パラメータ値の入れ替えが行われることで、パラメータ値の最適化が迅速に行われ得る。その結果、例えば、パラメータ値の最適化を図るための演算が効率良く行われ、処理フローの生成に要する演算量が低減され得る。
【０２４０】
ここで、例えば、第１処理フローと第２処理フローとの間について、検出部１４５ａによって類似処理部分としての類似部分処理シーケンスが検出されていれば、変更部１４５ｃＡでは、類似部分処理シーケンスにおけるパラメータ値が入れ替えられ得る。このとき、例えば、変更部１４５ｃＡでは、第１処理フローにおける類似部分処理シーケンスを構成する１つ以上の処理に係る１つ以上のパラメータと、第２処理フローにおける類似部分処理シーケンスを構成する１つ以上の処理に係る１つ以上のパラメータとの間において、種類が対応する同一の数のパラメータの値が入れ替えられ得る。これにより、パラメータ値の最適化が迅速に行われ得る。
【０２４１】
また、例えば、類似部分処理シーケンスとして、第１処理フローと第２処理フローとの間に、同一の部分処理シーケンスが存在していれば、２つの処理フローの間において、該同一の部分処理シーケンスに係るパラメータ値の入れ替えが行われ得る。これにより、パラメータ値の最適化が非常に迅速に行われ得る。
【０２４２】
ここで、変更部１４５ｃＡでは、例えば、第１処理フローと第２処理フローとの間において、作成部１４５ｂで作成された類似処理部分に係る対応ＧＡ遺伝子においてパラメータ値が入れ替えられることで、ＧＡ交叉処理が行われ得る。
【０２４３】
図５０は、一対の対応ＧＡ遺伝子の間でＧＡ交叉処理が行われる一例を示す図である。図５０には、図４６で示された３番目の個体Ｉｎ３に係る対応ＧＡ遺伝子ＣＧａ３と、図４７で示された４番目の個体Ｉｎ４に係る対応ＧＡ遺伝子ＣＧａ４との間において、１つ以上のパラメータ値が入れ替えられる様子が示されている。
【０２４４】
図５０で示されているように、例えば、対応ＧＡ遺伝子ＣＧａ３と対応ＧＡ遺伝子ＣＧａ４との間において、同じ位置の同じ数のパラメータ値が適宜入れ替えられることで、ＧＡ交叉処理が実現され得る。ここでは、対応ＧＡ遺伝子ＣＧａ３および対応ＧＡ遺伝子ＣＧａ４は、それぞれ、３つのパラメータ値が１次元的に配列されたものである。そして、図５０の例では、対応ＧＡ遺伝子ＣＧａ３および対応ＧＡ遺伝子ＣＧａ４のそれぞれにおける３つのパラメータ値のうちの太枠で囲まれた後ろ（右側）の２つのパラメータ値が入れ替えられる様子が示されている。
【０２４５】
ここで、入れ替えられるパラメータ値の数は、１つ以上であればよく、対応ＧＡ遺伝子ＣＧａ３および対応ＧＡ遺伝子ＣＧａ４における全てのパラメータ値が入れ替えられても良い。換言すると、一点交叉、多点交叉、一様交叉等のいずれであっても良い。例えば、一点交叉では、対応ＧＡ遺伝子の１箇所においてパラメータ値が入れ替えられ、多点交叉では、対応ＧＡ遺伝子の相互に離隔した複数箇所においてパラメータ値が入れ替えられ、一様交叉では、対応ＧＡ遺伝子の全てパラメータ値が入れ替えられ得る。また、対応ＧＡ遺伝子ＣＧａ３および対応ＧＡ遺伝子ＣＧａ４の間では、例えば、処理の切れ目に拘わらず、対応する位置の同数のパラメータ値が入れ替えられ得る。このような対応ＧＡ遺伝子を用いたＧＡ交叉処理によれば、容易かつ効率よくＧＡ交叉処理を行うことが可能となる。
【０２４６】
また、例えば、第１処理フローと第２処理フローとの間について、検出部１４５ａによって、類似部分処理シーケンスが検出されず、類似処理部分としての１つ以上の処理が検出されていれば、変更部１４５ｃＡでは、該１つ以上の処理についてパラメータ値が入れ替えられ得る。このとき、例えば、変更部１４５ｃＡでは、第１処理フローにおける類似処理部分を構成する１つ以上の処理における１つ以上のパラメータと、第２処理フローにおける類似処理部分を構成する１つ以上の処理における１つ以上のパラメータとの間において、種類が対応する同一の数のパラメータの値が入れ替えられ得る。ここでは、例えば、２つの処理フローの間において、種類が共通している１つ以上の処理について、パラメータ値の入れ替えが行われるため、パラメータ値の最適化が迅速に行われ得る。
【０２４７】
この場合にも、変更部１４５ｃＡでは、例えば、第１処理フローと第２処理フローとについて、作成部１４５ｂで作成された対応ＧＡ遺伝子においてパラメータ値が入れ替えられることで、ＧＡ交叉処理が行われ得る。このとき、例えば、図４８で示された５番目の個体Ｉｎ５に係る対応ＧＡ遺伝子５と、図４９で示された６番目の個体Ｉｎ６に係る対応ＧＡ遺伝子６との間において、１つ以上のパラメータ値が入れ替えられる態様が考えられる。
【０２４８】
なお、ＧＡ交叉処理において、対応ＧＡ遺伝子のうちの入れ替えの対象となる１つ以上のパラメータ値は、例えば、発生される乱数に応じてランダムに指定されても良いし、発生される乱数に応じてランダムに指定される位置から後ろの部分または前の部分のパラメータ値であっても良い。
【０２４９】
［Ａ２４］ＧＡ突然変異処理．
変更部１４５ｃＡでは、例えば、各個体Ｉｎ１〜ＩｎＮにおいて、ＧＡ遺伝子における１つ以上のパラメータ値が、異なる１つ以上のパラメータ値に置き換えられる。このとき、例えば、対応ＧＡ遺伝子における１つ以上のパラメータ値が、ＧＡ突然変異処理における置き換えの対象とされても良い。
【０２５０】
図５１は、対応ＧＡ遺伝子のパラメータ値の置き換えによってＧＡ突然変異が行われる一例を示す図である。図５１には、４番目の個体Ｉｎ４の対応ＧＡ遺伝子ＣＧａ４における最後尾の１つのパラメータ値が置き換えられる様子が例示されている。
【０２５１】
［Ａ２５］更新処理．
更新部１４５ｄは、例えば、ＧＡ交叉処理およびＧＡ突然変異処理において発生した対応ＧＡ遺伝子におけるパラメータ値の変更を、個体ＩｎＭにおけるＧＡ遺伝子に反映することができる。換言すれば、例えば、対応ＧＡ遺伝子において生じたパラメータ値の変更が、該対応ＧＡ遺伝子が作成される元となった個体の類似処理部分に係るパラメータ値に反映される。これにより、例えば、１回のＧＡ変更処理が完了し得る。
【０２５２】
＜(１−３−２)第２の生成方法に係る動作フロー＞
図５２から図５４は、処理フローを生成する第２生成方法に係る情報処理の動作フローの一例を示すフローチャートである。本動作フローは、例えば、記憶部１３に、入力データおよび目標データが記憶され、ユーザーの動作に応じて入力部１１から所定の信号が入力されることで、開始され得る。
【０２５３】
図５２のステップＳＴ１では、例えば、処理部１４ａの取得部１４１Ａによって、複数の処理フローが取得される取得工程が実行される。ここでは、複数の処理フローは、例えば、複数の処理の順序を示す処理シーケンスと、該複数の処理に係る１つ以上のパラメータの値とによってそれぞれ規定される。これにより、例えば、複数の初期個体としてのＮ個の個体Ｉｎ１〜ＩｎＮが準備され得る。
【０２５４】
ステップＳＴ２では、例えば、処理部１４ａにおいて、Ｎ個の個体Ｉｎ１〜ＩｎＮの世代交代による進化の回数を示すカウントＮｇが１に設定される。
【０２５５】
ステップＳＴ３では、例えば、処理部１４ａの評価部１４２によって、ステップＳＴ１で生成された各処理フローについて、入力データに該処理フローに従った処理が施されることで得られる出力データと、目標データとの差異に応じた評価値が算出される評価工程が実行される。このステップＳＴ３における処理が２回目以降の場合には、後述する変更工程における第１変更処理および第２変更処理の少なくとも一方の変更処理が施された後の各処理フローについて、入力データに該処理フローに従った処理が施されることで得られる出力データと、目標データとの差異に応じた評価値が算出される評価工程が実行される。
【０２５６】
ステップＳＴ４では、例えば、上記第２生成方法のステップＳ４（図１０）と同様に、処理部１４ａの決定部１４６によって、変更部１４５ｃＡによるＮ個の個体Ｉｎ１〜ＩｎＮの進化の状況が、上述した特定の条件を満たしているか否かが判定される。ここで、特定の条件を満たしていれば、ステップＳＴ５に進み、特定の条件を満たしていなければ、ステップＳＴ６に進む。
【０２５７】
ステップＳＴ５では、例えば、上記第１生成方法のステップＳ５（図１０）と同様な処理によって、最適化された処理フローが決定され得る。これにより本動作フローが終了される。
【０２５８】
ステップＳＴ６では、例えば、上記第１生成方法のステップＳ６（図１０）と同様に、処理部１４ａの取捨選択部１４３によって、ステップＳＴ３で算出された各処理フローに係る評価値に基づいて、複数の処理フローの取捨選択が行われる取捨選択工程が実行される。
【０２５９】
ステップＳＴ７では、例えば、処理部１４ａの判定部１４４によって、ＧＰ進化処理を実行するか否かが判定される。ここでは、上記第１生成方法のステップＳ７（図１０）と同様な処理によって、予め設定された判定ルールに従って、各処理フローについて、第１変更処理であるＧＰ進化処理、および第２変更処理であるＧＡ進化処理のうちの何れの変化処理を実行するのかが判定される判定工程が実行される。ここで、ＧＰ進化処理を実行するものと判定されれば、ステップＳＴ８に進み、ＧＰ進化処理を実行しないものと判定されれば、ステップＳＴ９に進む。
【０２６０】
ステップＳＴ８では、例えば、処理部１４ａの変更部１４５ｃＡによって、第１変更処理としてのＧＰ進化処理が行われる。具体的には、図５３のステップＳＴ８１からステップＳＴ８４の処理が行われる。
【０２６１】
図５３のステップＳＴ８１では、ＧＰ交叉処理を行うか否か判定される。ここでは、例えば、上記第１生成方法のステップＳ８１（図１１）と同様な処理によって、ＧＰ交叉処理を行うか否か判定され得る。ここで、ＧＰ交叉処理を行うものと判定されば、ステップＳＴ８２に進み、ＧＰ交叉処理を行わないものと判定されなければ、ステップＳＴ８３に進む。
【０２６２】
ステップＳＴ８２では、処理部１４ａの変更部１４５ｃＡによって、ＧＰ交叉処理が行われる。
【０２６３】
ステップＳＴ８３では、ＧＰ突然変異処理を行うか否か判定される。ここでは、例えば、上記第１生成方法のステップＳ８５（図１１）と同様な処理によって、ＧＰ突然変異処理を行うか否か判定され得る。ここで、ＧＰ突然変異処理を行うものと判定されば、ステップＳＴ８４に進み、ＧＰ突然変異処理を行わないものと判定されなければ、図５２のステップＳＴ１０に進む。
【０２６４】
ステップＳＴ８４では、処理部１４ａの変更部１４５ｃＡによって、ＧＰ突然変異処理が行われる。本処理が終了されると、図５２のステップＳＴ１０に進む。
【０２６５】
ステップＳＴ９では、例えば、処理部１４ａの進化計算部１４５Ａによって、第２変更処理としてのＧＡ進化処理が行われる。具体的には、図５４のステップＳＴ９１からステップＳＴ９７の処理が行われる。
【０２６６】
ステップＳＴ９１では、処理部１４ａの検出部１４５ａによって、第１処理フローと第２処理フローとの間において、パラメータの種類および該パラメータが取り得る値が共通する１つ以上の処理が検出される工程（検出工程とも言う）が行われる。つまり、類似処理部分が検出される。
【０２６７】
ステップＳＴ９２では、処理部１４ａの作成部１４５ｂによって、第１処理フローおよび第２処理フローのそれぞれに対して、対応ＧＡ遺伝子が作成される。
【０２６８】
ステップＳＴ９３では、ＧＡ交叉処理を行うか否か判定される。ここでは、例えば、上記第１生成方法のステップＳ１０１（図１２）と同様な処理によって、ＧＡ交叉処理を行うか否かが判定され得る。ここで、ＧＡ交叉処理を行うものと判定されれば、ステップＳＴ９４に進み、ＧＡ交叉処理を行わないものと判定されれば、ステップＳＴ９５に進む。
【０２６９】
ステップＳＴ９４では、処理部１４ａの変更部１４５ｃＡによって、ＧＡ交叉処理が行われる。該ＧＡ交叉処理では、例えば、ステップＳＴ９１において第１処理フローから検出された１つ以上の処理における１つ以上のパラメータと、ステップＳＴ９１において第２処理フローから検出された１つ以上の処理における１つ以上のパラメータとの間において、種類が対応する同一の数のパラメータの値が入れ替えられる。例えば、類似処理部分について、種類が対応する同一の数のパラメータの値が入れ替えられる。このパラメータ値の入れ替えは、例えば、ステップＳＴ９２で作成された対応ＧＡ遺伝子において行われ得る。
【０２７０】
ステップＳＴ９５では、ＧＡ突然変異処理を行うか否か判定される。ここでは、例えば、上記第１生成方法のステップＳ１０３（図１２）と同様な処理によって、ＧＡ突然変異処理を行うか否かが判定され得る。ここで、ＧＡ突然変異処理を行うものと判定されれば、ステップＳＴ９６に進み、ＧＡ突然変異処理を行わないものと判定されれば、ステップＳＴ９７に進む。
【０２７１】
ステップＳＴ９６では、処理部１４ａの変更部１４５ｃＡによって、ＧＡ突然変異処理が行われる。ここでは、例えば、対応ＧＡ遺伝子において、パラメータ値が、異なるパラメータ値に置き換えられ得る。
【０２７２】
ステップＳＴ９７では、処理部１４ａの更新部１４５ｄによって、ＧＡ遺伝子が更新される。ここでは、例えば、ステップＳＴ９４およびステップＳＴ９６の少なくとも一方のステップにおける対応ＧＡ遺伝子の変更に応じて、ＧＡ遺伝子が更新される。なお、ステップＳＴ９４およびステップＳＴ９６においてＧＡ交叉処理およびＧＡ突然変異処理が行われなかった場合には、本ステップＳＴ９７におけるＧＡ遺伝子の更新は行われない。本ステップＳＴ９７の処理が終了されると、図５２のステップＳＴ１０に進む。
【０２７３】
このようにして、例えば、ステップＳＴ８およびステップＳＴ９において、各処理フローについて、第１変更処理および第２変更処理のうちの一方の変更処理を実施する変更工程が行われる。
【０２７４】
ステップＳＴ１０では、例えば、処理部１４ａにおいて、Ｎ個の個体Ｉｎ１〜ＩｎＮの世代交代による進化の回数を示すカウントＮｇが１つ加算される。このステップＳＴ１０の処理が終了すると、ステップＳＴ３に戻る。これにより、特定の条件を満たすまで、ステップＳＴ３からステップＳＴ１０の処理が繰り返される。
【０２７５】
つまり、例えば、処理部１４ａによって、取捨選択工程における取捨選択が実行された後に、変更工程における第１変更処理および第２変更処理のうちの一方の変更処理の実施、該変更工程における変更処理によって得られた各処理フローに係る評価値の評価工程における算出、および取捨選択工程における該評価値に基づく取捨選択の実行、が繰り返される。これにより、出力データと目標データとの差異が低減される。
【０２７６】
ここで、第２生成方法においても、第１生成方法と同様に、１回の世代交代において、判定部１４４による判定結果に応じて、第１変更処理であるＧＰ進化処理または第２変更処理であるＧＡ進化処理が行われる。これにより、例えば、処理シーケンスの変更とパラメータ値の変更とが同時期にバランス良く行われ得る。このため、処理フローの生成に要する演算量が低減され、適切な処理フローが迅速に生成され得る。
【０２７７】
この場合、例えば、処理部１４ａにおいて、取捨選択部１４３による取捨選択が行われた後における、判定部１４４による判定結果に従った変更部１４５ｃＡによる変更処理の実施、該変更部１４５ｃＡによる変更処理によって得られた各処理フローに係る評価値の評価部１４２による算出、および取捨選択部１４３による該評価値に基づく取捨選択の実行、が繰り返され得る。このような構成によっても、出力データと目標データとの差異が低減される。
【０２７８】
但し、第２生成方法においては、例えば、判定部１４４による判定が行われずに、１回の世代交代において、第１変更処理であるＧＰ進化処理および第２変更処理であるＧＡ進化処理の双方が行われても良い。つまり、１回の世代交代が行われる際に、各処理フローについて、例えば、第１変更処理および第２変更処理のうちの少なくとも一方の変更処理を実施する変更工程が行われても良い。
【０２７９】
すなわち、第２生成方法においては、例えば、処理部１４ａによって、取捨選択工程における取捨選択が実行された後に、変更工程における第１変更処理および第２変更処理のうちの少なくとも一方の変更処理の実施、該変更工程における少なくとも一方の変更処理によって得られた各処理フローに係る評価値の評価工程における算出、および取捨選択工程における該評価値に基づく取捨選択の実行、が繰り返されれば良い。これによっても、出力データと目標データとの差異が低減され得る。
【０２８０】
＜(１−３−３)第２の生成方法に係るまとめ＞
以上のように、処理フローに係る第２生成方法によれば、例えば、第１処理フローと第２処理フローとの間において、パラメータの種類および該パラメータが取り得る値が共通する１つ以上の処理が検出される。そして、ＧＡ交叉処理において、第１処理フローから検出された１つ以上の処理における１つ以上のパラメータと、第２処理フローから検出された１つ以上の処理における１つ以上のパラメータとの間において、種類が対応する同一の数のパラメータの値が入れ替えられる。これにより、例えば、パラメータ値の最適化を図るための演算が効率良く行われることで、処理フローの生成に要する演算量が低減される。その結果、適切な処理フローが迅速に生成され得る。
【０２８１】
＜(２)変形例＞
なお、本発明は上述の実施形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更、改良等が可能である。
【０２８２】
例えば、上記実施形態の一例では、生成する対象としての処理フローの一例として、画像処理を行う画像処理フローを挙げて説明したが、これに限られない。例えば、入力されるデータに対してデータ処理を施す各種の処理フローであっても良い。この場合、入力されるデータには、例えば、デジタルデータ、アナログデータ、デジタル信号およびアナログ信号が含まれ得る。このとき、例えば、入力画像、目標画像および出力画像は、入力データ、目標データおよび出力データ等とされ得る。
【０２８３】
また、上記実施形態の一例では、判定部１４４において判定の基準となる予め設定された判定ルールが、例えば、１回以上の第１変更処理および１回以上の第２変更処理についての実行順を規定しているルールであっても良い。該実行順は、例えば、記憶部１３に記憶されているプログラムＰ１またはデータ等によって規定され得る。このとき、該実行順に従って、判定部１４４は、例えば、第１変更処理および第２変更処理のうちの何れの変更処理を実行するのか判定することができる。なお、実行順は、１回以上の第１変更処理と１回以上の第２変更処理とが適宜に実行される順序であれば良く、該実行順には、例えば、第１変更処理と第２変更処理とが交互に実行される順序等が含まれ得る。
【０２８４】
また、処理フローの第２生成方法では、例えば、１回の世代交代において、ＧＡ交叉処理が行われることが決定した後に、検出部１４５ａによる類似処理部分の検出、および作成部１４５ｂによる対応ＧＡ遺伝子の作成が行われても良い。
【０２８５】
また、上記実施形態の一例では、例えば、取得部１４１，１４１Ａにおいて、入力部１１から入力される複数の個体Ｉｎ１〜ＩｎＮを示す情報が取得されても良い。
【０２８６】
また、上記実施形態の一例では、１台のコンピューターによって情報処理システム１が構成されたが、これに限られない。例えば、情報処理システム１が複数台のコンピューター等といった複数の電子機器によって構成されても良い。この場合、複数の電子機器の間におけるデータの授受は、例えば、通信回線を介したものであっても、記憶媒体を介したものであっても良い。
【０２８７】
なお、上記実施形態の一例および各種変形例をそれぞれ構成する全部または一部を、適宜、矛盾しない範囲で組み合わせ可能であることは、言うまでもない。
【符号の説明】
【０２８８】
１  情報処理システム
１０  処理フロー生成システム
１１  入力部
１２  出力部
１３  記憶部
１４  制御部
１４ａ  処理部
１４ｂ  メモリ
１４１，１４１Ａ  取得部
１４２  評価部
１４３  取捨選択部
１４４  判定部
１４５，１４５Ａ  進化計算部
１４５ａ  検出部
１４５ｂ  作成部
１４５ｃ，１４５ｃＡ  変更部
１４５ｄ  更新部
１４６  決定部
Ｐ１  プログラム
【図１】
2017182552.tif 000003
【図２】
2017182552.tif 000004
【図３】
2017182552.tif 000005
【図４】
2017182552.tif 000006
【図５】
2017182552.tif 000007
【図６】
2017182552.tif 000008
【図７】
2017182552.tif 000009
【図８】
2017182552.tif 000010
【図９】
2017182552.tif 000011
【図１０】
2017182552.tif 000012
【図１１】
2017182552.tif 000013
【図１２】
2017182552.tif 000014
【図１３】
2017182552.tif 000015
【図１４】
2017182552.tif 000016
【図１５】
2017182552.tif 000017
【図１６】
2017182552.tif 000018
【図１７】
2017182552.tif 000019
【図１８】
2017182552.tif 000020
【図１９】
2017182552.tif 000021
【図２０】
2017182552.tif 000022
【図２１】
2017182552.tif 000023
【図２２】
2017182552.tif 000024
【図２３】
2017182552.tif 000025
【図２４】
2017182552.tif 000026
【図２５】
2017182552.tif 000027
【図２６】
2017182552.tif 000028
【図２７】
2017182552.tif 000029
【図２８】
2017182552.tif 000030
【図２９】
2017182552.tif 000031
【図３０】
2017182552.tif 000032
【図３１】
2017182552.tif 000033
【図３２】
2017182552.tif 000034
【図３３】
2017182552.tif 000035
【図３４】
2017182552.tif 000036
【図３５】
2017182552.tif 000037
【図３６】
2017182552.tif 000038
【図３７】
2017182552.tif 000039
【図３８】
2017182552.tif 000040
【図３９】
2017182552.tif 000041
【図４０】
2017182552.tif 000042
【図４１】
2017182552.tif 000043
【図４２】
2017182552.tif 000044
【図４３】
2017182552.tif 000045
【図４４】
2017182552.tif 000046
【図４５】
2017182552.tif 000047
【図４６】
2017182552.tif 000048
【図４７】
2017182552.tif 000049
【図４８】
2017182552.tif 000050
【図４９】
2017182552.tif 000051
【図５０】
2017182552.tif 000052
【図５１】
2017182552.tif 000053
【図５２】
2017182552.tif 000054
【図５３】
2017182552.tif 000055
【図５４】
2017182552.tif 000056