JP7185614B2 - 情報処理装置、及び情報処理プログラム - Google Patents
情報処理装置、及び情報処理プログラム Download PDFInfo
- Publication number
- JP7185614B2 JP7185614B2 JP2019208006A JP2019208006A JP7185614B2 JP 7185614 B2 JP7185614 B2 JP 7185614B2 JP 2019208006 A JP2019208006 A JP 2019208006A JP 2019208006 A JP2019208006 A JP 2019208006A JP 7185614 B2 JP7185614 B2 JP 7185614B2
- Authority
- JP
- Japan
- Prior art keywords
- chromosome
- gene
- information processing
- elements
- dependencies
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Stored Programmes (AREA)
Description
そのため、アーキテクチャの構築・維持は極めて重要であり、近年のソフトウェアの高度化・大規模化に伴って、その重要性が更に増している。
これらを手動で修正するのは困難であり、修正作業を補助するシステムが求められている。
ところで、アーキテクチャの改善では、色々な組み合わせを試す処理があり、本願発明者は、遺伝的アルゴリズムの適用が有効であるとの心証を持っていた。
しかし、遺伝的アルゴリズムでは、問題の種類ごとに遺伝子の構造とその善し悪しの計測方法を設計しなければならないところ、遺伝的アルゴリズムをアーキテクチャの依存関係に適用した前例がなく、全く手がかりのない最初から開発しなければならないという問題があった。
請求項2に記載の発明では、前記ソフトウェアアーキテクチャは、下位グループごとに管理される下位要素と、前記下位グループを上位要素として管理する上位グループとを有する階層構造を有しており、前記進化手段は、前記階層構造の階層ごとに前記各グループと前記各要素の依存関係を別々に進化させ、前記出力手段は、前記階層ごとに別々に進化した依存関係を統合して出力することを特徴とする請求項1に記載の情報処理装置を提供する。
請求項3に記載の発明では、前記進化手段は、前記進化させた染色体に対応する依存関係のメトリクスを計測することにより、前記染色体の進化の良否を判断することを特徴とする請求項1又は請求項2に記載の情報処理装置を提供する。
請求項4に記載の発明では、前記進化手段は、個別に前記染色体を進化させる複数のアイランドと、前記染色体を前記アイランドに提供する提供手段と、を用いて構成されていることを特徴とする請求項3に記載の情報処理装置を提供する。
請求項5に記載の発明では、前記アイランドで進化させている染色体を所定のタイミングで他のアイランドに移住させる移住手段を具備したことを特徴とする請求項4に記載の情報処理装置を提供する。
請求項6に記載の発明では、前記移住手段は、前記移住させる染色体が所定の遺伝子パターンを有している場合に、当該染色体の遺伝子を改変してから移住させることを特徴とする請求項5に記載の情報処理装置を提供する。
請求項7に記載の発明では、前記アイランドは、それぞれ異なるメトリクスを用いて前記計測を行うことを特徴とする請求項4に記載の情報処理装置を提供する。
請求項8に記載の発明では、前記出力した依存関係を機械学習によって学習した分類器によって評価する評価手段を具備したことを特徴とする請求項1から請求項7までのうちの何れか1の請求項に記載の情報処理装置を提供する。
請求項9に記載の発明では、ソフトウェアアーキテクチャの依存関係を遺伝的アルゴリズムによって改善する情報処理機能をコンピュータで実現する情報処理プログラムであって、グループごとに管理され、グループを介した依存関係が設定されているソフトウェアアーキテクチャの要素と、当該要素の間の依存関係と、を取得する要素取得機能と、前記取得した要素を染色体に符号化する符号化機能と、前記符号化した染色体を進化させることにより、前記要素の属するグループを変化させる進化機能と、前記取得した依存関係に基づく要素間の直接的なつながりを表す接続情報を生成する接続情報生成機能と、前記進化させた染色体に対応する進化した依存関係を出力する出力機能と、をコンピュータで実現する情報処理プログラムであって、前記符号化機能は、前記要素に対応する遺伝子座を配列要素とする配列によって前記染色体を生成し、各遺伝子座に、当該遺伝子座に対応する要素が属するグループの識別情報を遺伝子として格納し、前記進化機能は、前記生成した接続情報に基づき突然変位を起こす遺伝子を選択し、前記遺伝子座が格納する前記選択した遺伝子を、当該遺伝子に対応する要素が前記依存関係に基づいて対応する他の要素の遺伝子に置き換えることにより、前記染色体を突然変異させることを特徴とする情報処理プログラムを提供する。
情報処理装置1(図2)は、例えば、関数をファイル間で移動したり、ファイルをフォルダ間で移動することによって、コンピュータプログラムにおける依存関係を改善する。
これを実現するために、情報処理装置1は、関数間(前者の場合)やファイル間(後者の場合)の接続関係を保持しつつ、関数とファイルの組み合わせ、ファイルとフォルダの組み合わせを遺伝的アルゴリズムで試行錯誤する。
染色体は、要素(例えば関数)を遺伝子座とし、当該要素が属しているグループ(例えば、ファイル)を遺伝子として、要素がグループに属する態様を符号化したものである。
グループと要素の組み合わせを網羅的に全数探索すると計算時間上現実的でないところ、突然変異によって要素の移動を確率的に選択することにより、少ない試行回数で優れた組み合わせを探索することができる。
このように全数探索を避けて、確率的な選択によって準最適解を効率よく得るのが遺伝的アルゴリズムの目的とするところである。
メトリクスは、種類によって長短(トレードオフ)が存在するため、複数種類のメトリクスを用いることにより、様々な環境に適応した個体をバランス良く進化させることができる。
なお、GA部2は、アイランドと呼ばれる単位ごとに個別に個体を進化させ、コーディネータによって個体のアイランド間での移住を管理する、今回新たに開発したコーディネータモデルを採用した。
コーディネータは、個体を移住させる際に、パターンマッチにより問題のある遺伝子配列を発見し、これに解法アルゴリズムを適用して遺伝子を改変してから移住させる機能も有している。
AI部3は、計測された複数のメトリクスを標準化して、これをDNNとランダムフォレストの入力データとする。
このように、情報処理装置1は、依存関係の改善案の作成(GA部2)と改善された依存関係の評価(AI部3)、及び改善されたソースコードの出力を自動的に行う。
図1は、本実施の形態の情報処理装置1のハードウェア的な構成を示した図である。
情報処理装置1は、ソフトウェアアーキテクチャの依存関係を遺伝的アルゴリズムによって改善する情報処理装置であって、CPU(Central Processing Unit)11、ROM(Read Only Memory)12、RAM(Random Access Memory)13、インターフェース14、入力装置15、出力装置16、記憶装置17などがバスラインで接続されて構成されている。
ROM12は、読み取り専用メモリであって、情報処理装置1が動作する際の基本的なプログラムやパラメータなどを記憶している。
RAM13は、読み書きが可能なメモリであって、CPU11が、遺伝的アルゴリズムやAI(artificial intelligence)のアルゴリズムに従って情報処理する際のワーキングメモリを提供する。
入力装置15は、例えば、キーボード、マウスといった入力装置を備えており、オペレータが情報処理装置1を操作する際に使用される。
出力装置16は、ディスプレイやスピーカなどを備えており、改善プログラムの操作画面や解析結果を表示したり、操作音を出力したりする。
情報処理装置1は、GA部2とAI部3を用いて構成されている。
GA部2は、例えば、C言語のソースコードを読み込み、例えば、ライブラリなどで用いる関数やファイルなどの依存関係を解析する。
そして、当該依存関係を遺伝的アルゴリズムで適正化した依存関係の改善案を複数作成してAI部3に出力する。
実用上は、個体が要求されている品質を満たしていれば足りるため、最適解を全数探索する必要はなく、準最適な解を確率的に探索することにより、処理時間を大幅に短縮することができる。
なお、個体とは、染色体を具現化した実態物であり、ここでは染色体6によって表された依存グラフや依存関係を意味する。
AI部3は、この評価に合格したアーキテクチャの改善案をソースコードの形でユーザに提供する。
GA部2は、改善対象であるソースコードを解析して依存グラフ(依存関係グラフとも呼ばれる)を作成する。
依存グラフは、例えば、フォルダ内の関数など、グループ化された要素の依存関係を表すものであって、詳細は後述する。
このように、情報処理装置1は、グループごとに管理され、グループを介した依存関係が設定されているソフトウェアアーキテクチャの要素と、当該要素の間の依存関係と、を取得する要素取得手段を備えている。
染色体6は、アーキテクチャの移動対象となっている要素を遺伝子によって符号化(コード化)したものであり、遺伝的アルゴリズムで進化の対象となるものである。
このように情報処理装置1は、要素を染色体に符号化する符号化手段を備えている。
接続情報7は、進化の後に(要素をグループ間で移動した後に)、要素間の依存関係を再構築したり、あるいは、染色体6を突然変異させる場合に、接続関係が維持されるものだけ許されるように、突然変異(ミューテーション)の態様を制限するのに用いられる。
後者の場合、元の依存関係からかけ離れた劣悪な染色体6が生成されて、進化処理が空費されるのを抑制することができる。
依存グラフ5は、アーキテクチャの要素(構成要素)の依存関係を表すものであり、本実施の形態では、依存関係を低レベル層(レイヤ)と高レベル層の2層構造で構成した。
低レベル層の依存グラフは、関数やメソッドなどの要素と、これらをグループにまとめるファイル、クラスなどで構成されている。
なお、関数81a、81b、・・・を特に区別しない場合は、単に関数81と記す。他の表記も同様とする。
これらのファイルや関数は、C言語の場合、例えば、ヘッダファイルやこれによってインクルードされるものである。
同様に、関数81cは、ファイル8bの関数82aと、ファイル8cの関数83bにグループを超えて接続し、関数81bは、ファイル8cの関数83aにグループを超えて接続している。
GA部2は、これらグラフの要素の接続関係を解析して、例えば、隣接行列、接続行列、リンクトリストなどで表し、これを接続情報7として保持する。
例えば、関数82aは、関数81cと接続関係を有するため、ファイル8bからファイル8aに移動できるが、ファイル8cには、接続関係を有する関数がないため、ファイル8cには、移動できない。詳細については後述する。
なお、関数の移動によって空のファイルが生じる場合があるが、これを許容するのと対応して新しいファイルを生成することを可能としている。
高レベル層の依存関係は、ファイルを要素とし、これをグループにまとめるフォルダやモジュールなどで構成されている。
このように、低レベル層でのグループを要素とし、これを更にグループ化する高レベル層を設定することにより、依存関係を多層化することができる。本実施の形態では、2層構造としたが、更に多層とすることも可能である。
なお、フォルダに関しても空のフォルダが生じるのを許容するのと対応して新しいフォルダを生成することを可能としている。
図5(a)は、一例として、要素数5、グループ数3のアーキテクチャの依存グラフを表しており、各グループに属する要素を括弧で表すとグループ1(要素1、2)、グループ2(要素3)、グループ3(要素4、5)となっている。
要素1が要素2に接続することを要素1→要素2などと、矢線を用いて表すと、要素間の接続関係は、要素1→要素2→要素3→要素5→要素4となっている。
このように、符号化手段は、要素に対応する遺伝子座を配列要素とする配列によって染色体を生成し、各遺伝子座に、当該遺伝子座に対応する要素が属するグループの識別情報を遺伝子として格納している。
染色体の長さは要素数となり、配列の各配列要素は、先頭から要素1、要素2、・・・に対応する遺伝子座となっている。
各遺伝子座には、遺伝子座に対応する要素が属するグループのラベルが遺伝子として格納される。
このようにして構成した染色体6に対し、GA部2は、遺伝的アルゴリズムに従って突然変異と2点交叉を行い、これを進化させていく。
個体の進化は、染色体6の突然変異と2点交叉をベースに行うが、突然変異に関しては、接続情報7を用いた2段階の制御によって行う。
一方、要素2、3、5は、他グループの要素と接続しているため、これらの要素の遺伝子座の遺伝子は、突然変異の選択対象となる。
この際に、変異先のグループは、選択した遺伝子に対応する要素が、接続の方向にかかわらずに接続している要素の属するグループとする。
要素2に対応する遺伝子を突然変異させて当該要素2をグループ2に移動させた場合、染色体6は(1、1、2、3、3)から(1、2、2、3、3)になる。
更に、要素3は、要素5とも接続しているため、要素3を要素5の属するグループ3に移動することもできる。
ランダムに選択した2点で交叉を行っても、接続情報7を別途管理しているため、これによって依存関係を復元することにより、依存グラフ全体としての整合性を保つことができる。
そして、当該進化手段は、遺伝子座が格納する遺伝子を、当該遺伝子に対応する要素が依存関係に基づいて作成された接続情報で対応する他の要素の遺伝子に置き換えることにより、当該染色体を突然変異させる。
GA部2は、アイランドモデル(島モデル)を利用して遺伝子を進化させる。
アイランドモデルとは、アイランドと呼ばれる単位ごとに遺伝的アルゴリズムのモジュール(Sub-GA)を備え、これらアイランドで進化を同時並行で進めるモデルである。
同時並行的に進化させることにより進化を早めたり、また、アイランドごとに異なる進化環境として、個体を異なった態様で進化させることにより局所解を回避したりする。
なお、個体を移住させるとは、染色体6を他のアイランドのSub-GAに渡すことを意味する。
以下では、個体を進化させたり、個体を移住させることを、よりコンピュータの処理に近い表現とするために染色体6を進化させたり、染色体6を移住させると言うことにする。
図に示したように、アイランドコーディネータモデルでは、GA部2は、複数のアイランド22a~22cと、移住処理などを支援するコーディネータ21を用いて構成されている。図では、一例として3つのアイランド22を用意したが、他の個数でもよい。
そこで、GA部2は、染色体6をコピーして複数作成し、これを各アイランド22に提供する。
全てのアイランド22で同一の状態からスタートし、突然変異によって多様性が生じてくる。
また、コーディネータ21で突然変異を起こして染色体群を生成し、生成した全人口を各アイランド22に提供したり、全人口の部分集合をアイランド22に提供したりなど、各種の形態が可能である。
このように、進化手段は、個別に染色体を進化させる複数のアイランドと、染色体をアイランドに提供する提供手段と、を備えている。
例えば、メトリクスとしては、ファイル数(全体のファイル数)、最大ファイル数(1つのフォルダ内にあるファイル数の最大値)、Cycle Edges(循環依存の原因となるエッジの数)、Cycle Paths(循環依存のサイクル数)、・・・などがある。
実際にはより多くのアイランド22を用い、12種類ほどのメトリクスを評価関数として採用した。
なお、これは一例であって、全てのアイランド22で単一のメトリクスを用いたり、複数のアイランド22で同じメトリクスを用いてもよい。
そして、各アイランドは、それぞれ異なるメトリクスを用いてメトリクスの計測を行う。
適当なタイミングとしては、例えば、定期的としたり、実行時に指定した一定世代ごととすることができる。
(移住管理)
コーディネータ21は、あるアイランド22から届いた染色体6を移住管理用のキュー(先着順の列)の最後尾に入れて保持すると共に、先頭の染色体6を当該アイランド22に送出することにより染色体6を移住させる。
これにより、各アイランド22で進化した優秀な個体を異なるアイランド22へ移住させることができる。
このように、情報処理装置1は、アイランドで進化させている染色体を所定のタイミングで他のアイランドに移住させる移住手段を備えている。
コーディネータ21は、アイランド22から染色体6を受け取って移住させる際に、当該染色体6と予め記憶してある局所解パターンと照合する。そして、当該パターンを検出した場合には、所定の解法アルゴリズムに従って遺伝子の改変を行う。
このように、移住手段は、移住させる染色体が所定の遺伝子パターンを有している場合に、当該染色体の遺伝子を改変してから移住させる。
このように、遺伝子改変を一定確率で行うことにしたのは、改変の適用が必ずしも全体の解として良いとは限らないためである。
GA部2は、上記のコーディネータモデルによる遺伝子の進化を低レベル層の染色体6(低)と、高レベル層の染色体6(高)で別々に行い、その後、進化した染色体6(低)と染色体6(高)を統合することにより、2層に渡って改善された依存関係を改善案として出力する。
この場合、染色体6(低)、染色体6(高)は、それぞれ低レベル層、高レベル層での部分解となり、染色体6(低+高)が染色体レベルで統合された解となる。
そして、GA部2は、完成した依存グラフを評価するため、AI部3に送出する。
更に、情報処理装置1は、進化させた染色体に対応する進化した依存関係を出力する出力手段を備えている。
そして、出力手段は、階層ごとに進化した依存関係を統合して出力する。
単純な例では、GA部2に、図7で説明したコーディネータモデルによるモジュールを2セット用意し、一方で染色体6(低)を進化させ、他方で染色体6(高)を進化させ、これらを統合して出力する構成により実現することができる。
本実施の形態では、効率化を進めるため、次に説明する、単一のコーディネータ21が低レベル層と高レベル層の両方を処理すると共に統合も行う構成を採用した。
GA部2は、低レベル層用のアイランド22a~22cと、高レベル層用のアイランド22d~22fを備えている。
コーディネータ21は、これらアイランド22から染色体6が送られてきた場合、これを統合管理用のキュー25の最後尾に格納する。
図の例では、アイランド22dが染色体6(高)を送ってきたところ、キュー25の先頭には染色体6(低)が格納されているため、コーディネータ21は、染色体6(高)をキュー25の最後尾に追加する一方、キュー25の先頭から染色体6(低)を取り出して当該染色体6(高)と統合し、依存グラフを作成して出力する。
あるいは、キュー25に移住管理用のキューを兼務させ、キュー25の先頭の染色体6を対応する階層のアイランド22に移住させるように構成するなど、他の構成を用いてもよい。
以下の処理は、CPU11が改善プログラムに従って行うものである。
まず、図9(a)に示したように、CPU11は、記憶装置17から改善対象のソースコードを読み込み、これから低レベル層の依存グラフ(低)と高レベル層の依存グラフ(高)を作成してRAM13に記憶する(ステップ5)。
これにより、CPU11(各アイランド22)は、RAM13をワーキングメモリとして、染色体6(低)と染色体6(高)の進化を階層別に開始する。
以下、CPU11は、染色体6(低)と染色体6(高)の進化を別々に行うが、染色体6(低)、染色体6(高)をまとめて染色体6と記す。
そして、CPU11(コーディネータ21)は、送られてきた染色体6に対して移住処理を行う(ステップ20)。
以下、CPU11は、各アイランド22での進化が終了するまで移住処理を継続する。
アイランド22は、評価関数の値が目標値に達した場合や、あるいは、予め指定しておいた世代数に達した場合など、所定の条件を満たした場合に進化を終了する。
CPU11(コーディネータ21)は、アイランド22から染色体6が送られてくると、これに対してマッチング処理にて局所解パターンの検出を行う(ステップ50)。
局所解パターンを検出しなかった場合(ステップ50;N)、CPU11(コーディネータ21)は、キュー25の先頭に異なる層の染色体6がある場合は、これと合わせて統合を行い、依存グラフを生成してAI部3に出力する(ステップ65)。
次に、アイランド22から受け取った染色体6を移住管理用のキューを解して他の同じ階層用のアイランド22に移住させる(ステップ70)。
遺伝子改変を行わない場合(ステップ50;N)、CPU11は、ステップ65の処理に移行する。
一方、遺伝子改変を行う場合(ステップ55;Y)、解法アルゴリズムに従って染色体6の遺伝子の配列を改変し(ステップ60)、ステップ65の処理に移行する。
GA部2が改善した依存グラフを出力すると、AI部3は、複数種類のメトリクスA、B、C、・・・、Xでこれを計測する。
例えば、依存グラフを10種類のメトリクスで計測する場合、10個の計測値が得られるが、これを標準化した10次元ベクトルが当該依存グラフの特徴量であり、入力データとなる。
DNNは、一般に利用されているものと同じであり、入力層、中間層、出力層から構成されている。DNNやランダムフォレストは、分類対象を学習結果に基づいて非線形分離する機械学習器である。
中間層は、全結合層となっており、ReLU関数などの非線形関数を実装している。中間層の各層のユニット数は、入力層と同程度としたが、層数や各層のユニット数は、学習結果の評価によって調整した。
出力層は、例えば、シグモイド関数を用いて、入力データに係る依存関係が良か不可かの2次元の2値分類を行う。
ここで、訓練データは、入力データと正解ラベル(良、不可)の組であり、人間がアーキテクチャの善し悪しを判断して作成した。
このように構成されたDNNは、GA部2が順次出力する改善済みのアーキテクチャに対して、それぞれ良・不可を判定して、その判定結果を出力する。
CPU11は、GA部2が出力した依存グラフをRAM13から読み出す(ステップ150)。
次に、CPU11は、読み出した依存グラフを用いて各メトリクスを計測し、それらの値をRAM13に記憶する(ステップ155)。
そして、CPU11は、DNNによる良・不可の判定を出力する(ステップ170)。
各決定木は、例えば、ブートストラップ(重複を許して入力データをサンプリングする手法)によって作成した異なるデータセット(ブートストラップデータ集合)で訓練されている。
このように各決定木は、異なるデータセットで訓練されているため、各決定木の判定がばらつくことになり、これらの多数決を取ることによって、アーキテクチャの良・不可を判定して、その判定結果を出力する。
これは、例えば、DNNとランダムフォレストの双方で良と判定されたソースコードを、改善案として推薦する表示をディスプレイに表示するなど、各種の形態が考えられる。
例えば、DNNとランダムフォレストの双方で良と判定されたソースコードをAランク、どちらか一方だけで良と判定されたソースコードをBランクなど、ランク付けして表示することもできる。
このように、情報処理装置1は、出力した依存関係を機械学習によって学習した分類器によって評価する評価手段を備えている。
(1)アーキテクチャの依存グラフから、遺伝的アルゴリズムを用いて改善案を複数作成することができる。
(2)作成した改善案について、ディープラーニングを用いてその善し悪しを判定することができる。
(3)改善案の修正項目を自動的にソースコードに反映することができる。
(4)依存関係のネットワークを接続情報とグループ情報(クラスタ)に分けて符号化することができる。
(5)遺伝的アルゴリズムによる依存グラフの進化を実装する。
(6)遺伝子の突然変異に接続情報を用いた制約を課すことができる。
(7)各アイランドで異なるメトリクスを用いて進化させ、遺伝子を混合することで、複数のメトリクス間でのトレードオフを実現する。
(8)各アイランドでの染色体の移動時に、コーディネータがアーキテクチャの改善パターンを適用することによって、アーキテクチャの進化を加速させることができる。
(9)各アイランドでの移住により遺伝子を混合させるが、混合の結果を複数出力して、ディープラーニングによって絞り込みを行うことができる。
2 GA部
3 AI部
5 依存グラフ
6 染色体
7 接続情報
8 ファイル
9 フォルダ
11 CPU
12 ROM
13 RAM
14 インターフェース
15 入力装置
16 出力装置
17 記憶装置
21 コーディネータ
22 アイランド
25 キュー
81、82、83 関数
Claims (9)
- ソフトウェアアーキテクチャの依存関係を遺伝的アルゴリズムによって改善する情報処理装置であって、
グループごとに管理され、グループを介した依存関係が設定されているソフトウェアアーキテクチャの要素と、当該要素の間の依存関係と、を取得する要素取得手段と、
前記取得した要素を染色体に符号化する符号化手段と、
前記符号化した染色体を進化させることにより、前記要素の属するグループを変化させる進化手段と、
前記取得した依存関係に基づく要素間の直接的なつながりを表す接続情報を生成する接続情報生成手段と、
前記進化させた染色体に対応する進化した依存関係を出力する出力手段と、を具備し、
前記符号化手段は、前記要素に対応する遺伝子座を配列要素とする配列によって前記染色体を生成し、
各遺伝子座に、当該遺伝子座に対応する要素が属するグループの識別情報を遺伝子として格納し、
前記進化手段は、前記生成した接続情報に基づき突然変位を起こす遺伝子を選択し、前記遺伝子座が格納する前記選択した遺伝子を、当該遺伝子に対応する要素が前記依存関係に基づいて対応する他の要素の遺伝子に置き換えることにより、前記染色体を突然変異させることを特徴とする情報処理装置。
- 前記ソフトウェアアーキテクチャは、下位グループごとに管理される下位要素と、前記下位グループを上位要素として管理する上位グループとを有する階層構造を有しており、
前記進化手段は、前記階層構造の階層ごとに前記各グループと前記各要素の依存関係を別々に進化させ、
前記出力手段は、前記階層ごとに別々に進化した依存関係を統合して出力することを特徴とする請求項1に記載の情報処理装置。
- 前記進化手段は、前記進化させた染色体に対応する依存関係のメトリクスを計測することにより、前記染色体の進化の良否を判断することを特徴とする請求項1又は請求項2に記載の情報処理装置。
- 前記進化手段は、
個別に前記染色体を進化させる複数のアイランドと、
前記染色体を前記アイランドに提供する提供手段と、
を用いて構成されていることを特徴とする請求項3に記載の情報処理装置。
- 前記アイランドで進化させている染色体を所定のタイミングで他のアイランドに移住させる移住手段を具備したことを特徴とする請求項4に記載の情報処理装置。
- 前記移住手段は、前記移住させる染色体が所定の遺伝子パターンを有している場合に、当該染色体の遺伝子を改変してから移住させることを特徴とする請求項5に記載の情報処理装置。
- 前記アイランドは、それぞれ異なるメトリクスを用いて前記計測を行うことを特徴とする請求項4に記載の情報処理装置。
- 前記出力した依存関係を機械学習によって学習した分類器によって評価する評価手段を具備したことを特徴とする請求項1から請求項7までのうちの何れか1の請求項に記載の情報処理装置。
- ソフトウェアアーキテクチャの依存関係を遺伝的アルゴリズムによって改善する情報処理機能をコンピュータで実現する情報処理プログラムであって、
グループごとに管理され、グループを介した依存関係が設定されているソフトウェアアーキテクチャの要素と、当該要素の間の依存関係と、を取得する要素取得機能と、
前記取得した要素を染色体に符号化する符号化機能と、
前記符号化した染色体を進化させることにより、前記要素の属するグループを変化させる進化機能と、
前記取得した依存関係に基づく要素間の直接的なつながりを表す接続情報を生成する接続情報生成機能と、
前記進化させた染色体に対応する進化した依存関係を出力する出力機能と、
をコンピュータで実現する情報処理プログラムであって、
前記符号化機能は、前記要素に対応する遺伝子座を配列要素とする配列によって前記染色体を生成し、
各遺伝子座に、当該遺伝子座に対応する要素が属するグループの識別情報を遺伝子として格納し、
前記進化機能は、前記生成した接続情報に基づき突然変位を起こす遺伝子を選択し、前記遺伝子座が格納する前記選択した遺伝子を、当該遺伝子に対応する要素が前記依存関係に基づいて対応する他の要素の遺伝子に置き換えることにより、前記染色体を突然変異させることを特徴とする情報処理プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019208006A JP7185614B2 (ja) | 2019-11-18 | 2019-11-18 | 情報処理装置、及び情報処理プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019208006A JP7185614B2 (ja) | 2019-11-18 | 2019-11-18 | 情報処理装置、及び情報処理プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2021081913A JP2021081913A (ja) | 2021-05-27 |
JP7185614B2 true JP7185614B2 (ja) | 2022-12-07 |
Family
ID=75965214
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019208006A Active JP7185614B2 (ja) | 2019-11-18 | 2019-11-18 | 情報処理装置、及び情報処理プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP7185614B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022239820A1 (ja) | 2021-05-13 | 2022-11-17 | 公益財団法人神戸医療産業都市推進機構 | 炎症性疾患を治療又は予防するための抗ヒトpd-1アゴニスト抗体及びこれを含有する医薬組成物 |
KR102478964B1 (ko) * | 2022-09-02 | 2022-12-21 | (주)아이티소프트 | 복수의 뉴럴 네트워크를 이용하여 소프트웨어 아키텍쳐와 관련된 정보를 기반으로 결정된 소프트웨어 아키텍쳐에 대한 구성도를 서버가 사용자 단말에게 전송하는 방법 및 장치 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012147825A1 (ja) | 2011-04-28 | 2012-11-01 | 日本電気株式会社 | アプリケーションアーキテクチャ設計方法、アプリケーションアーキテクチャ設計装置、および記録媒体 |
JP2017162069A (ja) | 2016-03-08 | 2017-09-14 | 株式会社Screenホールディングス | 最適化方法、最適化装置、プログラムおよび画像処理装置 |
-
2019
- 2019-11-18 JP JP2019208006A patent/JP7185614B2/ja active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012147825A1 (ja) | 2011-04-28 | 2012-11-01 | 日本電気株式会社 | アプリケーションアーキテクチャ設計方法、アプリケーションアーキテクチャ設計装置、および記録媒体 |
JP2017162069A (ja) | 2016-03-08 | 2017-09-14 | 株式会社Screenホールディングス | 最適化方法、最適化装置、プログラムおよび画像処理装置 |
Non-Patent Citations (2)
Title |
---|
中山弘隆ほか,多目的最適化と工学設計 ーしなやかシステム工学アプローチー,第1版,日本,株式会社現代図書,2007年12月25日,pp.36-45 |
趙冬青ほか,島ごとに異なるデコード化法を用いたGAによる施設レイアウト問題の解法,情報処理学会研究報告 数理モデル化と問題解決(MPS) 2014-MPS-100 [online],日本,情報処理学会,2014年09月18日 |
Also Published As
Publication number | Publication date |
---|---|
JP2021081913A (ja) | 2021-05-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210342699A1 (en) | Cooperative execution of a genetic algorithm with an efficient training algorithm for data-driven model creation | |
US11610131B2 (en) | Ensembling of neural network models | |
López-Ibáñez et al. | The irace package: Iterated racing for automatic algorithm configuration | |
Whitley et al. | Genetic algorithms and neural networks: Optimizing connections and connectivity | |
US4881178A (en) | Method of controlling a classifier system | |
JP6979661B2 (ja) | 量子分類器としての浅い回路のためのシステム、コンピュータ実装方法およびコンピュータ・プログラム | |
JP7185614B2 (ja) | 情報処理装置、及び情報処理プログラム | |
Briscoe | Digital ecosystems | |
KR20230065970A (ko) | 모델의 성능 테스트를 위한 컴퓨터 프로그램 | |
US11460982B1 (en) | Number embedding application system | |
CN114840857A (zh) | 基于深度强化学习与多级覆盖策略的智能合约模糊测试方法及系统 | |
KR20220163241A (ko) | 생체신호 분석 방법 | |
Rai | Advanced deep learning with R: Become an expert at designing, building, and improving advanced neural network models using R | |
Smith et al. | Phylogenetic inference using generative adversarial networks | |
WO2022031561A1 (en) | Memory usage prediction for machine learning and deep learning models | |
Cotta et al. | Applying memetic algorithms to the analysis of microarray data | |
Rasekh et al. | EDNC: Evolving differentiable neural computers | |
Schwefel | Deep insight from simple models of evolution | |
CN106776088A (zh) | 基于Malek模型的系统故障诊断方法 | |
KR20230031761A (ko) | 유전자 정보 분석 방법 | |
CN114896138A (zh) | 一种基于复杂网络和图神经网络的软件缺陷预测方法 | |
KR102556334B1 (ko) | 인공지능 기반의 모델의 벤치마크 결과를 제공하기 위한 방법 및 디바이스 | |
Moore et al. | Cellular automata and genetic algorithms for parallel problem solving in human genetics | |
KR102583120B1 (ko) | 인공지능 기반의 모델의 벤치마크 예측 결과를 제공하기 위한 방법 및 장치 | |
KR102645690B1 (ko) | 노드에 대응되는 인공지능 기반의 모델을 제공하기 위한 방법 및 디바이스 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20210726 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20220614 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20220627 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20220826 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20221108 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20221125 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7185614 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |