JP2000508096A - 遺伝的プログラミングを使用した複雑な構造の自動設計の方法および装置 - Google Patents

遺伝的プログラミングを使用した複雑な構造の自動設計の方法および装置

Info

Publication number
JP2000508096A
JP2000508096A JP9531067A JP53106797A JP2000508096A JP 2000508096 A JP2000508096 A JP 2000508096A JP 9531067 A JP9531067 A JP 9531067A JP 53106797 A JP53106797 A JP 53106797A JP 2000508096 A JP2000508096 A JP 2000508096A
Authority
JP
Japan
Prior art keywords
function
circuit
node
entity
component
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.)
Granted
Application number
JP9531067A
Other languages
English (en)
Other versions
JP3958793B2 (ja
JP2000508096A5 (ja
Inventor
コザ,ジョン・アール
サード ベネット,フォレスト・エイチ・ザ
アンドレ,デビッド
キーン,マーティン・エイ
Original Assignee
コザ,ジョン・アール
サード ベネット,フォレスト・エイチ・ザ
アンドレ,デビッド
キーン,マーティン・エイ
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by コザ,ジョン・アール, サード ベネット,フォレスト・エイチ・ザ, アンドレ,デビッド, キーン,マーティン・エイ filed Critical コザ,ジョン・アール
Publication of JP2000508096A publication Critical patent/JP2000508096A/ja
Publication of JP2000508096A5 publication Critical patent/JP2000508096A5/ja
Application granted granted Critical
Publication of JP3958793B2 publication Critical patent/JP3958793B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/12Computing arrangements based on biological models using genetic models
    • G06N3/126Evolutionary algorithms, e.g. genetic algorithms or genetic programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/36Circuit design at the analogue level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2111/00Details relating to CAD techniques
    • G06F2111/06Multi-objective optimisation, e.g. Pareto optimisation using simulated annealing [SA], ant colony algorithms or genetic algorithms [GA]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2113/00Details relating to the application field
    • G06F2113/16Cables, cable trees or wire harnesses

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Biophysics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Genetics & Genomics (AREA)
  • Physiology (AREA)
  • Artificial Intelligence (AREA)
  • Biomedical Technology (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

(57)【要約】 遺伝操作(1046)を使用して、所定の設計目標(1008ないし1016)を満たすために回路など複雑な構造を設計する際に使用される自動設計方法および装置。本発明は、設計目標(1008ないし1016)を潜在的に満たせる構造(1024ないし1028)を生成するように進化できるエンティティ(1022)のポピュレーションを使用する。そのような生成された構造の動作を設計目標に鑑みて評価し(1008)、設計目標をより厳密に満たしている構造を、所定の設計目標(1010ないし1016)または他の何らかのプロセス完了基準(1046)を満たす構造が生成されるまでさらに進化させる(1020ないし1044)。このようにして、設計複雑構造を得ることができる。

Description

【発明の詳細な説明】 遺伝的プログラミングを使用した複雑な構造の自動設計の方法および装置発明の分野 本発明の分野は、電気回路など複雑な構造の自動設計である。より詳細には、 本発明は、コンピュータに実装した遺伝的アルゴリズムを使用して、電気回路な ど複雑な構造を設計することである。発明の背景 設計者の要件を満足する複雑な構造の自動設計は、通常人間の知性を必要とす ると考えられる困難な課題である。 電気技術者は、しばしばいくつかの設計目的または要件を満足する回路を設計 するよう要求される。電気回路は、抵抗、コンデンサ、インダクタ、ダイオード 、トランジスタ、変換器、エネルギー源を含めて、非常に様々な異なるタイプの 構成要素から構成される。電気回路の個々の構成要素は、回路を形成する特定の 「トポロジ」に構成される。 様々なタイプの構成要素が回路のトポロジ構成中の各位置に挿人される。さら に、各構成要素はさらに一組の構成要素値(一般に数字)によって指定(「寸法 決定」)される。電気回路の完全な仕様は、そのトポロジ、トポロジ構成中の各 位置に挿入すべき構成要素タイプの選択、およびすべてのその構成要素の寸法決 定を含む。 回路を設計する場合、目的は、1つまたは複数の観測可能な量(例えば、回路 中のあるプローブ・ポイントでのいくつかの時刻またはいくつかの周波数での電 圧の観測されるパターン)のいくつかの所望の値を達成することである。しばし ば1つまたは複数の追加の考慮事項(例えば、回路中の構成要素の数、構成要素 のコストなど)がある。 同様に、機械及び民間技術者は、しばしばいくつかの設計目的または要件を満 足する物理構造を設計するよう要求される。電気回路など物理構造は、様々な異 なるタイプの構成要素から構成される。これらの個々の構成要素は、全体的な複 雑な物理構造を形成する特定のトポロジに構成される。様々なタイプの構成要素 がトポロジ構成中の各位置に挿入される。全体的な構造中の各構成要素はさらに 一組の構成要素値(一般に数字)によって指定される。例えば、機械技術者は、 堅い荷重支持金属ビームや荷重支持フレキシブル・ケーブルなどの構成要素から 構成されるトラスとして設計すること望むであろう。その設計目的は、特定の荷 重または複数の荷重を支持すること、または各バーまたはケーブル上の応力で堅 いバーまたはフレキシブル・ケーブルが破壊されるほど大きくならないようにす る要件を満足するものである。最後に、トラス中に含まれる材料の全重量を最小 限に抑えるなど、物理構造全体があるコスト要件を満足する追加の設計目的があ る。所望のトラスを設計するために、設計者は、構成要素の適切なトポロジ構成 (すなわち構成要素の数やどのようにそれらを接続するか)を生成し、トポロジ 構成中に挿入すべき構成要素タイプ(すなわち堅いビームやフレキシブル・ケー ブル)を選択し、各構成要素ごとに適切な数値(すべてのそれらの厚さ)を選択 しなければならない。 上記の電気および機械設計問題ならびに多数の他の分野からの多数の他の設計 問題は、設計者が構成要素の適切なトポロジ構成を生成し、トポロジ構成中に挿 入すべき構成要素タイプを選択し、全体的な複雑な構造中の各構成要素ごとに適 切な数値を選択する必要がある共通の特徴を共有する。 自然界における自然淘汰プロセス 自然界において、生体は、様々な環境中で生き残り、繁栄する非常に様々な構 造を示す。生体をそれらの自然環境の要件を満足するように設計する自然界の方 法は、複雑な構造を設計するための有用なモデルを与える。 生物中のたいていの構造および挙動はタンパク質の作用反作用の結果である。 実際、タンパク質は、生体の構造および機能が主としてタンパク質によって決定 されると言えるほど非常に様々な生物構造および挙動の原因である。タンパク質 は、アミノ酸の配列から構成されるポリペプチド分子である。タンパク質分子が そこから構成される(文字A、C、D、E、F、G、H、I、K、L、M、N、 P、Q、R、S、T、V、W、およびYによって示される)20個のアミノ酸残 基がある。タンパク質分子は、平均約300個のそのようなアミノ酸残基から構 成される(大きいタンパク質は数千個のアミノ酸残基を含む)。単純なバクテリ アは1800個程度の異なるタンパク質とともに生命を維持し、人間は推定10 0000個のタンパク質を有する。 タンパク質は、組織の染色体DNA中に含まれる命令および情報に従って製造 される。DNA(デオキシリボ核酸)は、遺伝情報を伝える能力およびそれ自体 の複製の生成用のモデルの役目をする能力を有する長い糸状の生物分子である。 この惑星上のすべての既知の生命形態(バクテリア、菌類、植物、動物、人間を 含む)は、DNA分子に基づいている。自然界では、遺伝子は、遺伝情報がそれ によって親から子孫に伝えられる基本的な機能単位である。遺伝子は、デオキシ リボ核酸(DNA)の分子に沿って特定の場所に現れる。 DNA分子に関係するわゆる「遺伝コード」は、DNA分子に沿って様々な遺 伝子座に現れる4つの可能な値の長いストリング(シーケンス)から構成される 。DNAの場合、4つの可能な値は、アデニン、グアニン、シトシン、チミン( 通常それぞれA、G、C、Tと略される)と呼ばれる4つの「ベース」をさす。 したがって、DNA中の「遺伝コード」はCTCGACGGTなど長いストリン グから構成される。生きた細胞が繁殖するとき、DNA中の遺伝コードが読み取 られる。3つのDNAベースから構成される(「コドン」と呼ばれる)サブシー ケンスは、20個のアミノ酸の1つを指定する。したがって、遺伝コードは、D NA分子中に含まれる情報および命令からタンパク質の構造を指定し、制御する ために使用される。 組織は、それぞれ数千個の相互作用するタンパク質を含む生きた細胞から構成 され、それらの生命をそれらの環境を処理しようと試みることに費やす。いくつ かの組織は、それらの環境の処理を他の組織よりもよく行う。特に、いくつかの 組織は、繁殖年齢まで生き延び、そのときそれによりそれらの遺伝構成(すべて のそれらの遺伝子)をそれらの子孫に伝えることができる。自然淘汰は、その特 性が繁殖年齢までの生存を容易にする組織がそれらの遺伝構成の全部または一部 を子孫に伝えるプロセスである(ダーウィン1859年)。ある時間期間および 多数の世代にわたって、ポピュレーションは全体として進化し、したがって生き 残ったポピュレーション中の個体中の染色体ストリングは、組織がその環境中で 生き残るために貢献する特性を永続させる。すなわち、自然淘汰プロセスは、あ る時間期間にわたって、それらの環境を効果的に処理するように設計される構造 を進化させる傾向がある。 遺伝的アルゴリズム 遺伝的アルゴリズムは、所与の一組の物体を改善する方法を与える。自然淘汰 および適者生存のプロセスは、遺伝的アルゴリズムの理論ベースを与える。Pr ofessor John H.Holland(1975)著、Adapta tion in Artificial and Natural Syste ms は、自然システムならびに人工システムの適合の全体的な数学的理論を要約 し、提示するものである。Hollandの文献の重要な部分には、生物適合の 自然の方法に習ってパターン化される「遺伝的アルゴリズム」が記載されている 。後者の作業中、Holland(1986)には、遺伝的アルゴリズムおよび 問題を解決するためのバケット・ブリゲート・アルゴリズムを使用した選別シス テムが記載されている。米国特許出願第4697242号(Holland他) および米国特許出願第4881178号(Holland他)には、遺伝的アル ゴリズムとともに固定長二進ストリングを使用する選別システムが記載されてい る。 遺伝的プログラミング 「遺伝的プログラミング」(以前は「非線形遺伝的アルゴリズム」または「階 層遺伝的アルゴリズム」とも呼ばれた)が文献Genetic Program ming:On the Programming of Computers by Means of Natural Selection (Koza 1992)、文献Genetic Programming II:Autom atic Discovery of Reusable Programs ( Koza1992)および、米国特許出願第4935877号、第513668 6号、第5148513号、および第5343554号に記載されている。 遺伝的プログラミングは、1975年にHollandによって記述された最 初の遺伝的アルゴリズムが(性質が染色体に似ている)文字の線形ストリングに 基づいて動作したので「非線形」または「階層」と呼ばれるが、遺伝的プログラ ミングは、様々なサイズおよび形状の階層プログラム・ツリー上で動作する。 遺伝的プログラミングは、様々な分野からの様々な問題を解決するか、または ほぼ解決するコンピュータ・プログラムを進化させることができる。遺伝的プ口 グラミングは、使用できるプログラマティック成分から構成されるランダムに生 成されたプログラムの原始分泌から始まり、次いでプログラムの新しい(そして しばしば改善される)ポピュレーションを繁殖させるために家畜学原理を適用す る。繁殖は、ダーウィンの適者生存の原理、クロスオーバの自然に発生する遺伝 動作の類似物(性繁殖)、および突然変異を使用して、ドメインと無関係な形で 行われる。クロスオーバ動作は有効な子孫プログラム(一組の成分中の所与の閉 鎖)をシンタックス的に生成するように設計される。遺伝的プログラミングは、 コンピュータ・プログラムの明示的なハイレベル記号表示をHollandの遺 伝的アルゴリズムに関連する学習の最適に近い効率と組み合わせる。所与の問題 を解決(またはほぼ解決)するプログラムは、しばしばこのプロセスから発生す る。 文献Genetic Programming II:Automatic Discovery of Reusable Programs (Koza1 994)で証明されているように、遺伝的プログラミングは、主プログラムおよ び1つまたは複数の再使用可能なパラメータ化された階層的と呼ばれるサブプロ グラム(自動定義関数またはADFと呼ばれる)から構成されるマルチパート・ プログラムを進化させることができる。 遺伝的プログラミングは、以下のステップを実行することによって問題を解決 するコンピュータ・プログラムを繁殖させる。 (l)問題の関数および終端のランダムな組成の初期ポピュレーションを生成 するステップ(例えばコンピュータ・プログラム) (2)終了基準が満足されるまで以下のサブステップを繰り返し実施するステ ップ (A)ポピュレーション中の各プログラムを実行し、それに適応基準を使用し て適応度値を割り当てるステップ (B)以下の動作を適用することによってコンピュータ・プログラムの新しい ポピュレーションを生成するステップ。動作は、適応度に基づく確率を有するポ ピュレーションから選択されるコンピュータ・プログラムに適用される。 (i)繁殖。既存のプログラムを新しいポピュレーションにコピーする。 (ii)クロスオーバ。2つの既存のプログラムのランダムに選択された部分 を再結合することによって新しいポピュレーション用の新しい子孫プログラムを 生成する。 (iii)突然変異。1つの既存のプログラムのランダムに選択された部分を ランダムに突然変異させることによって新しいポピュレーション用の新しい子孫 プログラムを生成する。 (3)結果選定の方法(例えば、今まで最も良い個体)によって識別されたプ ログラムは、実行用の遺伝的アルゴリズムの結果に選定される。この結果は、問 題に対する解決策(またはおおよその解決策)になる。 他の遺伝的プログラミング・プロセスは、「順列」、「ビルディング・ブロッ クを定義する」(「カプセル化」とも呼ばれる)、後述するアーキテクチャ変更 操作(オペレーション)など追加の操作を使用する。 ニューラル・ネットワークの細胞符号化 ニューラル・ネットワークは1つまたは複数の神経処理単位(ニューロン)か ら構成される構造である。ニューラル・ネットワークは線ラベル付けされ、点ラ ベル付けされた有向グラフによって表示できる。グラフの点は、ニューラル・ネ ットワーク中の神経処理単位、入力点、または出力点である。線は、2つの点間 の重み付けされた接続を表すために数字重みでラベル付けされる。神経処理単位 は、処理単位のしきい値およびバイアスを示す2つの数字でラベル付けされる。 ニューラル・ネットワーク中の構成要素の唯一のタイプは神経処理単位である 。ニューラル・ネットワークは、将来の時刻でのネットワークの状態が現在の時 刻でのネットワークの状態と現在の時刻でのネットワークへの入力に依存する意 味 でダイナミックなシステムである。ニューラル・ネットワーク中には情報の方向 性流れがある。フィードフォワード・ニューラル・ネットワークでは、情報は、 ネットワークを表す有向グラフ中のサイクルなしに入力からネットワークまで、 ニューロンを介して、ネットワークの出力まで流れる。再帰ニューラル・ネット ワークでは、ネットワーク中の1つまたは複数の個々のニューロンの特定の時刻 での出力は、ネットワークを表す有向グラフ中にサイクルを生成するために他の 神経処理単位の将来の時刻での入力になるように返送される。 固定長文字ストリング上て動作する従来の遺伝的アルゴリズムは、接続用の数 字重みならびにニューラル・ネットワークのしきい値およびバイアスを発見する ために重みベクトルの高度線形多次元探索空間を探索する方法を与える。しかし ながら、ニューラル・ネットワークのアーキテクチャは予め指定されなければな らない(SchafferおよびWhitleyl992年)。遺伝方法を使用 したアーキテクチャの発見を自動化する場合の難点は、遺伝的アルゴリズムによ って実行される演算の種類を受け入れるニューラル・ネットワークを表す線ラベ ル付けされ、点ラベル付けされたグラフ用の順応性のある表示を見つけることに 焦点を置いた。 ある初期の研究では、「ビルディング・ブロックを定義する」(「カプセル化 」とも呼ばれる)遺伝的プログラミングの操作(KozaおよびRice199 1年)を使用して、ニューラル・ネットワークのアーキテクチャならびに重みを 発見する問題に遺伝的プログラミングを適用した。文献「The Algori thmic Beauty of Plants にはLindenmayerシ ステム(Lシステム)および文法書き換え規則が記載されている。これらのシス テムは、初期(またはエンブリオニック)パターンに書き換え規則を適用するこ とによって複雑なパターンを開発する方法を与える。 彼のCellular Encoding of Genetic Neut ral Networks 、 Frederic Gruau(1992a)に は、遺伝的プログラミングを使用して、ニューラル・ネットワーク中の個々のニ ューロンの重み、しきい値、およびバイアスとともに、ニューラル・ネットワー クのアーキテクチャを同時に進化させる細胞符号化と呼ばれる技法が記載されて いる。 この技法では、ポピュレーション中の各個々のプログラム・ツリーは、単一のニ ューロンから構成される非常に単純なニューラル・ネットワークから完全なニュ ーラル・ネットワークを開発する仕様である。遺伝的プログラミングは、当該の 問題を解決することができるニューラル・ネットワークを進化させるためにこれ らのネットワーク構成プログラム・ツリーのポピュレーションに適用される。G ruau1992b、1993、1994a、1994bも参照されたい。 細胞符号化では、各プログラム・ツリーは構成関数の構成物である。プログラ ム・ツリーは遺伝子型であり、ツリーの命令に従って構成されたニューラル・ネ ットワークは表現型である。ポピュレーション中の個々のプログラム・ツリーの 適応度は、プログラム・ツリー中含まれる命令に従って構成されたニューラル・ ネットワークが所望のタスクをどのくらいうまく実行するかによって測定される 。これは、一般にニューラル・ネットワークを入力の可能な組合せのすべて(ま たは大きいサンプリング)に触れさせ、ニューラル・ネットワークの出力が入力 の特定の組合せに対して正確な出力に一致するかどうかをテストすることによっ て実施される。多数の問題に対して、ニューラル・ネットワークからの正確な出 力および不正確な出力の数から適応度を計算する。遺伝的プログラミングは、次 いでダーウィンの繁殖、クロスオーバ、および突然変異の通常の遺伝操作を使用 して、プログラム・ツリーのポピュレーションを繁殖させる。 細胞符号化では、ニューラル・ネットワークの構成プロセスは、単一のニュー ロンから構成されるニューラル・ネットワークから始まる。このニューロンはし きい値0を有する。そのバイアスは0である。その入力は、重み+1を有する接 続を有するすべてのネットワークの入カノードに接続される。その出力はすべて のネットワークの出力ノードに接続される。プログラム・ツリー中の関数は、次 いでこのニューロンをどのようにして全ニューラル・ネットワーク中に成長させ るかを指定する。いくつかの内容に関係ない関数は特定のニューロンを平行また は連続的な形で分割することを可能にする。他の関数は、ニューロンのしきい値 、接続の重み、またはニューロンに対するバイアスを変更することができる。 電気回路用のSPICEシミュレータ 工学の多数の分野では、コンピュータベースのシミュレータを使用して、複雑 な物理現象をシミュレートできる。電気工学の分野では、SPICE(Simu lation Program with Integrated Circu it Emphasisの頭文字)は、アナログ、ディジタル、混合アナログ/ ディジタル電気回路のシミュレーション用に米国バークレーのカリフォルニア大 学で数十年にわたって書かれたプログラムの大規模ファミリーである。 SPICE3(Quarles他1994年)はSPICEの最新バージョン である。SPICE3は、様々な回路要素を含む回路に対して様々なタイプの分 析を実施する。回路要素は、抵抗、コンデンサ、インダクタ、スイッチ、ダイオ ード、トランジスタ、電圧源および電流源、伝送線、および多数の他のデバイス を含む。SPICEは、DC分析、過渡分析、ポールゼロ分析、小信号歪み分析 、感度分析、雑音分析、AC小信号分析、および他のタイプの分析を実施できる 。SPICE3プログラムは、Cソース・コードの約217000本の線を含む 878個の別々のファイル上に広がった約6.1メガバイトのソース・コードか ら構成される。 SPICEシミュレーションへの入力は、分析すべき回路を記述するネットリ スト、および実行すべき分析のタイプおよび生成すべき出力の性質に関してSP ICEに命令するいくつかのコマンドから構成される。 同様のシミュレータが多数の工学分野に存在する。例えば、機械工学の分野で は、(それぞれ異なる数字パラメータおよび非数字パラメータによってさらに指 定される)様々なタイプの物理構成要素のトポロジ構成をシミュレータに与え、 それにより物理構造を次いでシミュレートできるようにする多数のシミュレータ が存在する。 自動回路設計 純粋にディジタルな回路用にいくつかの設計問題を自動化することはかなり進 歩した。しかしながら、アナログ回路および混合アナログディジタル回路の設計 は自動化が可能であることが証明されていない(Rutenbar 1993年 )。「アナログ・ジレンマ」を論じる場合、AaserudおよびNielse n (1995年)は次のように述べている。 「アナログ設計者はごく少数である。ディジタル設計に対比して、アナログ回 路の大部分はまだアナログ設計の専門家またはいわゆるアナログ設計の「zah 」によって製造されている。設計プロセスは、経験と勘の組合せによって特徴付 けられ、プロセス特性および実際の製品の詳細な仕様の完全な知識を必要とする 。」 「アナログ回路設計は通常かなりの時間期間にわたって延び、相当の技術を有 する設計者によって実施される知識集中的、多相、反復作業であることが知られ ている。したがって、科学というよりも芸術の形態であると多くの人によって考 えられている。」 アナログ回路および混合アナログディジタル回路の設計プロセスを自動化する 多数の努力がなされている。次に、これらの努力の一部について以下で説明する 。 IDAC(Degrauwe 1987年)と呼ばれるアナログ集積回路用の 対話型設計ツールでは、ユーザは、回路用の可能な様々なトポロジを選択するこ とから始める。IDACは、次いで(所望の挙動特性に関して)各回路中の構成 要素の値を決定する。ユーザは最良回路を選択する。 OASYS(HarJani、Rutenbar、Carley l989年 )およびOPASYN(Koh、Sequin、Gray 1990年)では、 トポロジが予めヒューリスティック規則に基づいて選択され、合成ツールが回路 を寸法決定しようと試みる。合成ツールが選択されたトポロジを正確に寸法決定 できない場合、ツールは他のヒューリスティック規則を使用して新しいトポロジ を生成し、プロセスが継続する。これらのシステムの成功はヒュー・リスティッ ク規則の知識ベースの有効性に依存する。 SEAS(Ning、Kole、Mouthaan、Wallings 19 92年)では、進化を使用してトポロジを修正し、シミュレート・アニーリング を使用して回路を寸法決定する。 Maulik、Carley、Rutenbar(1992年)は、専門設計 知識を使用して、トポロジ選択および回路寸法決定を同時に処理しようとする。 Nielsen(1995年)は、アナログ・フィルタ回路を設計するために 使用できる連続時間フィルタ設計ツール(彼の「C−Tコンパイラ」)を開発し た。Nielsenのプロセスは原型フィルタを手動で設計することから始まる 。次いで、構成要素値およびトポロジを調整して、当該の問題の設計要件との追 従を達成する。 遺伝的アルゴリズムおよび自動回路設計 DARWIN(KruiskampおよびLeenaerts 1995年) では、二進文字ストリングに対して作用する遺伝的アルゴリズムを使用して、演 算増幅器(オペアンプ)回路を設計する。DARWINの初期ポピュレーション を生成する場合、初期ポピュレーション中の各回路がオペアンプの働きをするよ うに事前に確立された手動設計された一組の24個のトポロジからポピュレーシ ョン中の各オペアンプのトポロジをランダムに取り出す。さらに、すべてのトラ ンジスタがそれらの適切な範囲内で動作し、かつすべてのトランジスタ・サイズ が最大値と最小値との間に入るように一組の問題固有の制約を解決する。小信号 評価回路およびオペアンプ回路に対して特殊化された分析計算を使用して、各オ ペアンプの挙動を評価する。回路の実際の挙動と所望の挙動との間のずれ、回路 の電力消費を含めて、ファクタの組合せを使用して、各オペアンプの適応度を計 算する。オペアンプを記述する二進染色体ストリング用のクロスオーバ操作およ び突然変異操作を使用して、子孫二進染色体ストリングを生成する。 Hemmi、Mizoguchi、Shimohara(1994年)、Hi guchi他(1993年)、Mizoguchi、Hemmi、Shimoh ara(1994年)は、ハードウェア記述言語(HDL)を使用して、遺伝方 法をディジタル回路の設計に利用した。これらの手法では、文法を使用して、デ ィジタル回路の設計の開発を駆り立てる。 発明の概要 アナログおよびディジタル回路など、複雑な構造の自動設計の方法および装置 。ただし、これに限定されない。本発明は、様々なサイズおよび形状のエンティ ティのポピュレーションを有するシステムとともに動作する。ポピュレーション 中のエンティティは構成処置(constructing action)を含む。本発明は、一連 のステップが反復する事前に指定された設計目的を満足する構造の設計を生成す る反復プロセスを実行する方法および装置を含む。一実施態様では、本発明は、 それ ぞれ構成要素値に関連する、トポロジに構成された多数のタイプの構成要素を有 する構造を開発するためにポピュレーション中のエンティティ中の構成処置を繰 り返し実行する方法および装置を含む。本発明はまた、前記開発した構造の挙動 を決定する方法および装置を含む。 図面の説明 本発明は、以下に示す詳細な説明および本発明の好ましい実施形態の添付の図 面からより完全に理解できよう。ただし、これらは、本発明を特定の実施形態に 限定するものではなく、説明および理解のためのものにすぎない。 第1A図は、本発明の流れ図である。 第1B図は、電気回路を設計するための遺伝的プログラミングの流れ図である 。 第2図は、拘束構文構造の一実施形態を示す図である。 第3図は、1入力1出力エンブリオニック(embryonic)電気回路の一実施形 態を示す図である。 第4図は、変更可能ワイヤZ0を含む回路を示す図である。 第5図は、抵抗(R)関数を変更可能ワイヤに適用した結果を示す図である。 第6図は、コンデンサ(C)関数を変更可能ワイヤに適用した結果を示す図で ある。 第7図は、ダイオード関数を変更可能ワイヤに適用した結果を示す図である。 第8図は、接地トランジスタ関数を変更可能ワイヤに適用した結果を示す図で ある。 第9図は、QP関数を変更可能ワイヤに適用した結果を示す図である。 第10図は、QT0関数を変更可能ワイヤに適用した結果を示す図である。 第11図は、QT8関数を変更可能ワイヤに適用した結果を示す図である。 第12図は、度数2の2つのノードに接続された抵抗R1を示す図である。 第13図は、活動ノードならびに非活動ノードが度数2であるときにQT7関 数を適用した結果を示す図である。 第14図は、FLIP関数をダイオードD1に適用した結果を示す図である。 第15図は、直列分割関数SERIESを抵抗に適用した結果を示す図である 。 第16図は、並列分割関数PSSを抵抗R1に適用した結果を示す図である。 第17図は、並列分割関数PSLを抵抗R1に適用した結果を示す図である。 第18図は、ノード1およびノード2が度数2である回路にPSSまたはPS Lを適用した結果を示す図である。 第19図は、ノード1が度数3であり、ノード2が度数2である抵抗R1を含 む回路を示す図である。 第20図は、ノード1が度数3であり、ノード2が度数2てある回路にPSS を適用した結果を示す図である。 第21図は、CUTを抵抗R1に適用した結果を示す図である。 第22図は、VIA0関数を抵抗R1に適用した結果を示す図である。 第23図は、THVIA0関数を抵抗R1に適用した結果を示す図である。 第24図は、世代0の最良回路のプログラム・ツリーを示す図である。 第25図は、最初の2つの書込みヘッドを有する1入力1出力エンブリオニッ ク回路を示す図である。 第26図は、コンデンサC3を生成するために変更可能ワイヤZ0に作用する C関数を実行した結果を示す図である。 第27図は、FLIP関数を実行した結果を示す図である。 第28図は、SERIES関数を実行した結果を示す図である。 第29図は、FLIP関数を実行した結果を示す図である。 第30図は、SERIES関数を実行した結果を示す図である。 第31図は、コンデンサを新しいインダクタに変換するためにコンデンサに作 用するL関数を実行した結果を示す図である。 第32図は、L関数を実行した結果を示す図である。 第33図は、L関数を実行した結果を示す図である。 第34図は、L関数を実行した結果を示す図である。 第35図は、世代0の最良回路を示す図である。 第36図は、並列遺伝的プログラミング・システムを示す図である。 第37図は、64個の処理ノードそれぞれの4つのプロセスを示す図である。 第38図は、世代32からの最良実行「7段はしご」回路を示す図である。 第39図は、世代76からの最良実行「19段はしご」回路を示す図である。 第40図は、世代64からの「ブリッジT」回路を示す図である。 第41図は、世代58からの最良実行回路を示す図である。 第42図は、世代212からの最良実行回路を示す図である。 第43図は、世代53からの最良実行回路を示す図である。 第44図は、4つの関数定義ブランチおよび2つの結果作成ブランチを有する プログラムを示す図である。 第45図は、2回使用され、自動的に定義される関数ADF3および世代9を 示す図である。 第46図は、2回使用され、自動的に定義される関数ADF0および世代9を 示す図である。 第47図は、5回使用される世代31からの自動的に定義される関数ADF0 を示す図である。 第48図は、世代31の最良回路を示す図である。 第49図は、ADF0によって生成された遺伝3ポート・サブ構造を示す図で ある。 第50図は、世代35からの最良実行回路のADF0の編集バージョンを示す 図である。 第51図は、世代35からの最良実行回路を示す図である。 第52図は、世代35からの最良実行個体を示す図である。 第53図は、1入力1出力エンブリオニック回路を示す図である。 第54図は、C関数を実行した結果を示す図である。 第55図は、THVIA関数を実行した結果を示す図である。 第56図は、FLIP関数を実行した結果を示す図である。 第57図は、3つのEND関数を実行した結果を示す図である。 第58図は、PSS関数を実行した結果を示す図である。 第59図は、PSS関数を実行した結果を示す図である。 第60図は、PSS関数を実行した結果を示す図である。 第61図は、FLIP関数、END関数、PSS関数を実行した結果を示す図 である。 第62図は、ADFを適用しようとしているところの回路を開発する破断図で ある。 第63図は、ADF中てNOP関数およびL関数を実行した結果を示す図であ る。 第64図は、ADF中で第1のSERIES関数を実行した結果を示す図であ る。 第65図は、ADF中で第2のSERIES関数を実行した結果を示す図であ る。 第66図は、ADF中てL関数を実行した結果を示す図である。 第67図は、ADF中でL関数を実行した結果を示す図である。 第68図は、ADF中でPSS関数を実行した結果を示す図である。 第69図は、ADF中でC関数を実行した結果を示す図である。 第70図は、ADFによって生成された3ポート・サブ構造を示す図である。 第71図は、世代35からの最良実行回路の異なる図である。 第72図は、世代77からの最良実行回路の自動的に定義されたADF0を示 す図である。 第73図は、世代77からの最良実行回路を示す図である。 第74図は、世代37からの最良世代回路を示す図である。 第75図は、世代52からのより倹約した回路を示す図である。 第76図は、1入力2出力エンブリオニック電気回路を示す図である。 第77図は、L関数、C関数、C関数を実行した結果を示す図である。 第78図は、世代0の最良回路を示す図である。 第79図は、世代79の最良回路を示す図である。 第80図は、世代137からの最良実行回路を示す図である。 第81図は、1入力3出力エンブリオニック電気回路を示す図である。 第82図は、ロボット用の2入力2出力コントローラ用のエンブリオニック回 路を示す図である。 第83図は、QVIAC7関数を適用した結果を示す図である。 第84図は、QVIAB7関数を適用した結果を示す図である。 第85図は、QVIAE7関数を適用した結果を示す図である。 第86図は、TRANFORMER0関数を適用した結果を示す図である。 第87図は、TRANFORMER1関数を適用した結果を示す図である。 第88図は、TRANFORMER2関数を適用した結果を示す図である。 第89図は、TRANFORMER3関数を適用した結果を示す図である。 第90図は、TRANFORMER4関数を適用した結果を示す図である。 第91図は、TRANFORMER5関数を適用した結果を示す図である。 第92図は、抵抗R1を有する回路を示す図である。 第93図は、FIVE_LEAD_OPAMP1関数を抵抗R1に適用した結 果を示す図である。 第94図は、STAR1分割関数を抵抗R1に適用した結果を示す図である。 第95図は、活動ノード(ノード1)が度数3のときにTRIANGLE1分 割関数を抵抗R1に適用した結果を示す図である。 第96図は、活動ノード(ノード1)が度数2のときにTRIANGLE1分 割関数を抵抗R1に適用した結果を示す図である。 第97図は、世代45からの遺伝的に進化した最良世代増幅器を示す図である 。 第98図は、遺伝的に進化した増幅器の電圧利得段を示す図である。 第99図は、遺伝的に進化した増幅器のダーリントン・エミッタ・フォロワ・ セクションを示す図である。 第100図は、遺伝的に進化した増幅器の他の図である。 第101図は、8つの剛性ビームおよび2つの負荷を支持する2つの可撓性ケ ーブルから構成されるトラスを示す図である。 第102図は、2つのスプリング、2つのダッシュ・ポット、2つのマスを含 む機械システムを示す図である。 第103図は、楕円5低域フィルタ・サブ回路ELIP5_LP_1を示す図 である。 第104図は、楕円5高域フィルタ・サブ回路ELIP5_HP_1を示す図 である。 第105図は、世代45からの遺伝的に進化した最良世代多帯域フィルタを示 す図である。 第106図は、ディジタルINVERTER関数を修正可能なワイヤZ0に適 用した結果を示す図である。 第107図は、ディジタルAND6関数を修正可能なワイヤZ0に適用した結 果を示す図である。 第108図は、ディジタルOR6関数を修正可能なワイヤZ0に適用した結果 を示す図である。 第109図は、THREE_LEAD_OPAMP1関数を変更可能ワイヤZ 0に適用した結果を示す図である。 第110図は、TWO_LEAD_OPAMP1関数を適用した結果を示す図 である。 第111図は、フィールド・プログラマブル・ディジタルまたはアナログ・ア レイを使用して、所望の回路を物理的に実現する方法を示す図である。 第112図は、5個の構成要素、10個のインタフェース・ポイント、7個の アークから構成される電気構造を示す図である。 第113図は、7個の構成要素、11個のインタフェース・ポイント、6個の アークから構成される機械構造を示す図である。 第114図は、13個の構成要素および24個のインタフェース・ポイントか ら構成される機械構造を示す図である。発明の詳細な説明 複雑な構造を設計する方法および装置について述べる。設計すべき複雑な構造 は、電気回路、物理構造、機械構造、または特定のトポロジ構成に従ってインタ フェースされ、かつ数値パラメータまたは他のタイプのパラメータに関して寸法 決定される複数のタイプの構成要素から構成される他の複雑な構造である。 本発明の以下の詳細な説明では、本発明を完全に理解できるように多数の特定 の詳細を記載する。しかしながら、本発明は、これらの特定の詳細なしに実施で きることが当業者には明らかであろう。いくつかの例では、周知の構造および装 置は、本発明を曖昧にするのを回避するために、詳細ではなく、ブロック図で示 してある。 以下の詳細な説明の一部は、アルゴリズムおよびコンピュータ・メモリ中のデ ータ・ビットに対する動作の記号表示に関して提示される。これらの演算記述お よび表示は、データ処理技術の当業者が当業者の研究の要旨を当業者に最も効果 的に伝えるために使用する手段である。アルゴリズムは、ここでは、一般に、所 望の結果をもたらすステップの自己矛盾のないシーケンスであると考えられる。 ステップは、物理量の物理的操作を必要とするステップである。通常、必ずしも そうではないが、これらの量は、記憶、転送、結合、比較、他の形の操作が可能 な電気信号または磁気信号の形をとる。主として一般的な用法の理由で、これら の信号をビット、値、要素、記号、文字、項、数などと呼ぶことが時々便利であ ることが分かっている。 しかしながら、上記および同様のすべての用語は適切な物理量に関連すべきで あり、これらの量に付けられた便利なラベルにすぎないことを念頭に置かれたい 。以下の議論から明らかなように別段に詳述されていない場合、本発明では、「 処理」、「コンピューティング」、「計算」、「決定」、「表示」などの用語を 使用する議論は、コンピュータ・システムのレジスタおよびメモリ中の物理(電 子)量として表されるデータを操作し、コンピュータ・システム・メモリまたは レジスタまたは他のそのような情報記憶装置、伝送装置または表示装置中の物理 量として同様に表される他のデータに変換するコンピュータ・システムまたは同 様の電子計算装置の処理およびプロセスをさす。 本発明はまた、ここに示される操作(オペレーション)を実施する装置にも関 する。この装置は、所要の目的のために特別に構成されるか、またはコンピュー タ中に記憶されたコンピュータ・プログラムによって選択的に活動化するか、ま たは再構成される汎用コンピュータを含む。本明細書で提示するアルゴリズムお よびディスプレイは、本来特定のコンピュータまたは他の装置に関連しない。本 明細書の教示に従うプログラムとともに様々な汎用マシンが使用でき、また所要 の方法ステップを実施するためにより特殊化された装置を構成することが便利で あることが分かる。様々なこれらの機械に必要な構造は以下の説明から明らかに なろう。さらに、本発明は、特定のプログラミング言語に関連して説明されない 。様々なプログラミング言語を使用して、本明細書に記載の本発明の教示を実施 できることを理解されたい。本発明の概要 本発明は、電気回路(例えば、アナログ回路、機械構造、またはいくつかの設 計制約を満足する他の物理構造)など複雑な構造を設計する方法を提供する。 本発明の電気回路は、抵抗、コンデンサ、インダクタ、ダイオード、トランジ スタ、エネルギー源を含めて、非常に様々な異なるタイプの構成要素を含む。た だし、これらに限定されない。個々の構成要素は、回路を形成する特定の「トポ ロジ」に構成される。さらに、各構成要素は、一組の構成要素値(一般に数値) によってさらに指定(寸法決定)される。回路は、一般に、1つまたは複数の入 力源から入力信号を受信し、1つまたは複数の出力ポートで出力信号を発生する 。一実施形態では、回路は、少なくとも1つのエネルギー源(例えば、着信信号 、電源など)を有する。したがって、本発明は、電気回路をそのトポロジならび にすべてのその構成要素の寸法決定に関して完全に指定する。 一実施形態では、「構成要素」は、タイプ、構成要素をさらに指定するいくつ かの構成要素値、およびいくつかのインタフェース・ポイントを有するオブジェ クトである。例えば、抵抗について考えてみる。抵抗は、タイプ「抵抗」のオブ ジェクトであるので構成要素である。これは、1000オームの単一の構成要素 数値を有し、2つのインタフェース・ポイント(リード線、エンド)を有する。 構成要素のインタフェース・ポイントは、(例えば、抵抗の2つのリード線の ように)操作上識別できないか、または(例えば、トランジスタのコレクタ、ベ ース、エミッタのように)操作上異なる。 「回路」は、構成要素のインタフェース・ポイント間に(1)一組の構成要素 および(2)一組の無方向線線(アーク)を含む。各無方向線線は、ある構成要 素のインタフェース・ポイントと(一般に他の構成要素の)他のインタフェース ・ポイントとの間の接続の存在を示す。 物理構造(トラスなど)に関係する場合、異なるタイプの構成要素は、堅い荷 重支持ビームおよびフレキシブル荷重支持ケーブルを含む。ただし、これらに限 定されない。 機械構造に関係する場合、構成要素のタイプは、スプリング、マス、ダッシュ ・ポットを含む。ただし、これらに限定されない。 ユーザが設計すべき複雑な構造の設計目的を指定した後、本発明の自動設計プ ロセスは完全な設計を生成する。すなわち、本発明は、トポロジならびに複雑な 構造の寸法決定を生成する目的駆動方法である。本発明は目的駆動設計を達成す る方法を提供する。 第1A図に、遺伝的プログラミングを使用した本発明のプロセスを示す。この プロセスは、複雑な構造(例えば、トラス、回路など)を表すエンティティ(例 えば、プログラム・ツリー)のポピュレーションに適用される。ポピュレーショ ンは、様々な形で(例えば、ランダムに)生成されることもあり、プロセスを開 始するために供給されることもある。エンティティのポピュレーションを使用し て、プロセスは、構造を開発するためにポピュレーションの各エンティティ中の 構成処置(constructiong action)を実行することから始まる(処理ブロック1 01)。本発明では、構造は、トポロジに構成された複数のタイプの構成要素を 含む。構成要素値がある場合、それらはトポロジ中の構成要素に関連する。一実 施形態では、構成処置は、実行中に、すべてのエンティティに共通であるか、ま たは最初に異なるエンティティ間で異なるエンブリオニック構造(embryonic st ructure)に適用される。 構成処置を実行した後、ポピュレーション中の各開発された構造の挙動を決定 する(処理ブロック102)。この決定は、例えば、シミュレーションまたは観 測である。ただし、これらに限定されない。挙動を決定した後、適応基準を得る ために、それを事前に指定された設計目的と比較する(処理ブロック103)。 次いで、テストによって、以下でさらに論じるように、設計目的または終了基 準が満足されているかどうかを決定する(処理ブロック104)。それらが満足 されている場合、プロセスは終了する。他方、設計目的または終了基準が満足さ れていない場合、本発明の進化プロセスを継続するためにポピュレーション中の エンティティに遺伝操作を適用する(処理ブロック105)。遺伝操作を適用し た後、プロセスは処理ブロック101に戻り、プロセスは引き続き繰り返す。 本発明のプロセスは、アナログ電気フィルタ回路を設計する問題を含む多数の 問題に適用できる。1つのそのようなフィルタは、信号をその入力として受信し 、ある指定された周波数範囲(通過帯域)中にある着信信号の周波数成分を通し 、かつ他の周波数範囲(阻止帯域)中にある信号の周波数成分を阻止する1入力 1出力電子回路である。 遺伝的プログラミングは、順序付けされたブランチを有する根のついた、点ラ ベルの付いた木のポピュレーション(すなわち円のないグラフ)を繁殖させる。 遺伝的プログラミングの現在周知の形態によって繁殖させたツリーの種類と、電 気回路の世界で使用されるラベルの付いたサイクリック・グラフの特殊な種類と の間にはかなりの差がある。 電気回路はツリーではなく、サイクリック・グラフである。実際、電気回路は 、線が円に属するサイクリック・グラフである(例えば、緩いワイヤやたれ下が る構成要素はない)。さらに、電気回路を表すグラフの線は互いにラベル付けさ れる。通常、各線上に多数のラベルがある。各線上の一次ラベルは、電気構成要 素(例えば、ワイヤ、抵抗、コンデンサ、場合によっては構成要素の一部)のタ イプを与える。各線上の二次ラベルは構成要素の値を与える(ただし、ダイオー ドなど、構成要素値を担持しない構成要素は除く)。単一の数値で多数の構成要 素(例えば、抵抗、コンデンサ、インダクタ)を指定するのに十分である。他の 構成要素(例えば、正弦波源の周波数およびピーク電圧)を指定するためには多 数の値が必要である。電気回路中の多数の構成要素は、それらのリード線(例え ば、トランジスタのコレクタ、ベース、エミッタ)の極性(例えば、ダイオード )または配向または特徴を有する。電気回路は、少なくとも1つのエネルギー源 (例えば、着信信号または内部電源)を有する。いくつかの構成要素値は、エネ ルギー源が「AC」であるか「DC」であるかなど、数値でない。さらに、構成 要素値のグループは、構成要素に適用できる数値を与える「モデル」を参照する ことによって指定されることが便利である。例えば、トランジスタやダイオード など複雑な構成要素は、広範なモデルによって記述される。 本発明は、遺伝的プログラミングの世界で使用される点ラベルの付いたツリー の種類と、電気回路を表す線ラベルの付いたサイクリック・グラフとの間でマッ ピングを確立することによって遺伝的プログラミングを電気回路に適用する。 本明細書で使用される開発成長プロセスは、非常に簡単な、実質上無用な、エ ンブリオニック電気回路から始まる。エンブリオニック回路の他に、通常遺伝的 プログラミングで使用されるタイプのプログラム・ツリーがある。電気回路は、 その場合、プログラム・ツリー中の関数が実行され、徐々にエンブリオニック回 路(およびその継承者)に適用されるときに開発される。プログラム・ツリー中 の関数は、電気回路の重要な特徴を維持する形でエンブリオニック回路(および その継承者)を操作する。この開発プロセスの最終結果は、回路のトポロジなら びにすべてのその構成要素の寸法決定である。第1B図に、電気回路の自動設計 用の本発明の方法の一実施形態を示す。(第1B図については以下でより詳細に 説明する)。 電気回路について説明する本発明の方法は、機械構造など、他の複雑な構造の 自動設計に適用できる。機械構造はツリーではなく、グラフである。機械構造を 表すグラフの線にはそれぞれラベルが付けられる。各線上の一次ラベルは構成要 素(例えばマス(mass))の名前を与える。各線上の二次ラベルは構成要素の値を 与える。 本発明の方法から得られる設計は、実際の構造を実装または構成する機械また は装置中に直接的か、または間接的に供給される。そのような機械およびそれら の構成は当技術分野において周知である。例えば、電気回路は、設計ツール、お よび/または場所ツールおよび経路ツールに基づいて周知の半導体加工技法を使 用して製造される。FPGAなどプログラム・デバイスは、ネットリストなどに 応答するツールを使用してプログラムされる。機械構造など他の構造は、構成要 素の処理、移動、および取付けを実施するコンピュータ制御処理およびハードウ ェア(例えば、組立ライン技術)を使用して物理的に構成される。 ポピュレーション中のプログラム・ツリーの拘束構文構造 本発明では、プログラム・ツリーは、以下の5つの関数の範疇のいずれかまた はすべてを含む。 (1)エンブリオニック回路からの回路のトポロジを修正する接続生成関数 (2)特定の構成要素をワイヤ(または他の構成要素)の代わりに回路のトポ ロジ中の位置に挿入し、その演算実行サブツリーが回路中に挿入された各構成要 素ごとに数値(寸法決定)を指定する構成要素生成関数 (3)その数およびアリティ(arity)がユーザによって予め指定される自動 定義関数 (4)その数およびアリティがユーザによって予め指定されず、アーキテクチ ャ変更操作の結果として遺伝プログラムの実行中に動的に生じる自動定義関数 一実施形態では、プログラム・ツリーは拘束構文構造に一致する。プログラム ・ツリー中の各構成要素生成関数は、0、1つまたは複数の演算実行サブツリー および1つまたは複数の構造継続サブツリーを有し、各接続生成関数は1つまた は複数の構造継続サブツリーを有する。各構成要素生成関数の演算実行サブツリ ーがある場合、演算実行サブツリーは、いっしょに構成要素の数値をもたらす数 値定数終端と演算関数の構成物を含む。構造継続サブツリーは回路の構成をどの ように継続すべきかを指定する。第2図にプログラム・ツリーの1つの拘束構文 構造を示す。この特定の図は、2つの結果作成ブランチおよび4つの自動定義関 数の存在を保証する。他の実施形態では、プログラム・ツリーは、この特定の拘 束構文構造またはいずれの拘束構文構造に一致しないことがあることに留意され たい。 慣例として、演算実行サブツリーは左側に配置され、構造継続サブツリーは右 側に配置される。 初期ポピュレーション(世代0)中のランダム・プログラム・ツリーならびに 後の世代で突然変異操作によって生成されるランダム・サブツリーは、この拘束 構文構造に一致するように生成される。この拘束構文構造は、(Koza199 4年に記載されている)「ポイント・タイピング」を有する構造維持クロスオー バを使用したクロスオーバ操作によって維持される。 1入力1出力エンブリオニック回路 本発明では、プログラム・ツリーを実行することによって電気回路を生成する 。 ポピュレーション中の各プログラム・ツリーはエンブリオニック電気回路から1 つの電気回路を生成する。特定の問題に対して使用されるエンブリオニック回路 は、入力信号の数および出力信号(プローブ・ポイント)の数に依存する。これ はまた、設計すべき回路に必要な、または望ましいいくつかの固定の構成要素を 組み込む。 一実施形態では、エンブリオニック回路は、1つの入力信号、1つのプローブ ・ポイント、2つの修正可能なワイヤ、固定のソース抵抗、および固定の負荷抵 抗を含む。エンブリオニック回路中で、2つの修正可能なワイヤは、それぞれ最 初に本明細書の図で円形ハイライトで表される書込みヘッドを所有する。書込み ヘッドが回路構成プログラム・ツリー中の関数に従って指す構成要素を修正する ことによって回路を開発する。プログラム・ツリー中の各接続生成関数および構 成要素生成関数は、開発中の回路中のその関連するハイライトされた構成要素を 特定の形で修正し、継承者書込みヘッドがある場合、その将来の配置を指定する 。 第3図に、1入力1出力エンブリオニック回路の一実施形態を示す。第3図を 参照すると、エネルギー源は、2ボルト電源VSOURCE319であり、その 負(−)のエンドはノード300(接地)に接続され、その正(+)のエンドは ノード301に接続される。 「エンド」または「リード線」または「インタフェース」なる語は、構成要素 が全体的な回路構造中の他の構成要素に接続される場所を説明するために使用し ていることに留意されたい。 固定の1000オーム・ソース抵抗RSOURCE312がノード301とノ ード302の間にある。修正可能なワイヤZ1(すなわち書込みヘッドを有する ワイヤ)306がノード302とノード303の間にあり、他の修正可能なワイ ヤZ0 307がノード303とノード304の間にある。修正可能なワイヤZ 0およびZ1のまわりに2つの書込みヘッドがそれらを指すことを示す円がある 。固定の分離ワイヤZOUT308がノード303とノード305の間にあり、 電圧プローブVOUT309がノード305にあり、固定の1000オーム負荷 抵抗RLOAD310がノード305とノード300(接地)の間にある。分離 ワイヤZGND311がノード304とノード300(接地)の間にある。開発 プ ロセスの初めに、それぞれ2つの修正可能なワイヤZ0およびZ1を指す書込み ヘッドがある。回路のすべてのその後の開発は書込みヘッドから生じる。回路構 成プログラム・ツリー中の関連する関数に従って書込みヘッドが指している構成 要素(時々構成要素とそのノードの1つ)を修正することによって電気回路を開 発する。 この特定のエンブリオニック回路は、回路中の任意の1つのノードに当たる線 の数が2または3になるように設計される。この条件は、回路構成プログラム・ ツリー中のすべての関数によって維持される。 分離ワイヤZOUT308は、プローブ・ポイントVOUT309および負荷 抵抗RLOAD310が開発プロセス中に修正されないよう保護し、分離ワイヤ ZGND311も同様にVSOURCE319の負の終端300および接地を保 護する。 このエンブリオニック回路中に入ったドメイン知識はほとんどないことに留意 されたい。具体的には、(1)エンブリオニック回路は回路であり、(2)エン ブリオニック回路は1つの入力および1つの出力を有し、(3)修正可能な接続 が出力とソースの間および出力と接地の間にある。このエンブリオニック回路は 任意の1入力1出力回路に適用できることに留意されたい。適応基準が進化探索 プロセスを所望の回路に導く。これは、任意の特定の前に見られない問題に対す る遺伝プログラムの特定の実行の結果がうまくいく保証があることをいっている のではなく、エンブリオニック回路によって入力および出力の性質を指定し、適 応基準によって望まれるものを記述するため以外にユーザが設計プロセス中に導 入する情報がほとんどないことをいっている。 人間の設計者は、特定の問題に対してエンブリオニック回路を生成するために 彼の特定のフィールドのドメイン知識を適用することが有利であることが分かる 。そのような知識は、特定の周知のまたは望ましい特性の方向に満足な設計の探 索を偏らせる。また、いくつかの設計問題は、(おそらく特定の形で構成される )特定の構成要素を全体的な設計の一部として含めることを要求する。 一実施形態では、同じエンブリオニック回路がポピュレーション中のすべての 個々のプログラム・ツリーの開発のための開始点として使用される。すなわち、 ポピュレーション中の各個々のプログラム・ツリーごとに開発プロセス用の開始 点である共通のエンブリオニック回路がある。ポピュレーション中の個々のエン ティティはプログラム・ツリーから構成される。ポピュレーション中の個々のエ ンティティを実行するとき、実行は、特定の個々のエンティティ中に含まれるプ ログラム・ツリーの構成処置を共通のエンブリオニック回路に適用するステップ を含む。代替実施形態では、プログラム・ツリーは異なるエンブリオニック回路 から始まることに留意されたい。 いくつかの問題について、エンブリオニック回路およびプログラム・ツリーを 含む一対のエンティティを同時に共進化させることが有利である。すなわち、ポ ピュレーション中の各エンティティは、エンブリオニック回路およびプログラム ・ツリーから構成される対を有する。ポピュレーション中の個々のエンティティ を実行するとき、実行は、特定の個々のエンティティ中に含まれるプログラム・ ツリーの構成処置を特定の個々のエンティティ中に含まれる特定のエンブリオニ ック回路に適用するステップを含む。進化プロセスは、そのエンブリオニック回 路およびプログラム・ツリーが互いに関連して作用するときに問題の設計目的を よりより満足するポピュレーション中のエンティティを助ける。 本発明の一実施形態ではエンブリオニック回路を使用しているが、エンブリオ ニック回路を有する必要は全くないことに留意されたい。代わりに、回路構成関 数の組は回路全体を構築する関数を含むことができる。しかしながら、この手法 は、回路がいくつかの最小の重要な特徴(例えば、着信信号、接地を含めること 、プローブ・ポイントを含めることなど)を有することを保証するのでエンブリ オニック回路を別個に与えることが非常に有利である。エンブリオニック回路が ない場合、多数の個体は、例えば、着信信号源がない(したがって、問題の設計 目的を満足することに関して十分な成績を達成できない)。そのような基本的な 特徴を進化させるには、追加の努力の消費が必要である。したがって、一実施形 態では、これらの最小の特徴は、予めエンブリオニック回路の形で与えられる。 構成要素生成関数 ポピュレーション中の各個々の回路構成プログラム・ツリーは一般に構成要素 生成関数および接続生成関数を含む。 構成要素は構成要素生成関数によって回路のトポロジ中に挿入される。構成要 素はまた構成要素生成関数からそれらの寸法決定を得る。プログラム・ツリー中 の各構成要素生成関数は、開発中の回路中のハイライトされた構成要素(すなわ ち書込みヘッドを有する構成要素)を指し、ハイライトされた構成要素を何らか の形で修正する。各構成要素生成関数は1つまたは複数の書込みヘッドを(その 構成継続サブツリーを介して)生成する。 各構成要素生成関数は、回路中の任意の1つのノードに当たる線の数を2また は3にする。これは必要条件ではないことに留意されたい。 構成要素生成関数の一部は内容に関係なく、一部は内容に即している。構成要 素生成関数が内容に関係ない場合、結果は単一のハイライトされた構成要素(す なわち書込みヘッドを有する構成要素)にのみ依存する。構成要素生成関数が内 容に即している場合、結果は単一のハイライトされた構成要素にのみ依存するだ けでなく、回路構成の他の近くの要素にも依存する。本発明は、内容に即した関 数ならびに内容に関係ない関数の実行から得られる複雑な構造の生成を支持する 。 表1に電気回路用のいくつかの例示的な構成要素生成関数を記載する。この表 には、関数の短い名前、関数のより長い、より記述的な名前、およびそのアリテ ィ(すなわちそれがとる引数の数)が示されている。この表は、電気回路の可能 な有用な構成要素生成関数の徹底的なリストではなく、可能な構成要素生成関数 の性質を示すためのものである。 表1 構成要素生成関数 各構成要素生成関数の構成継続サブツリーは回路構成プログラム・ツリー中の 継承者関数または終端を指す。 構成要素生成関数の演算実行サブツリーは演算関数(加算および減算)の構成 物およびランダムな定数(−1.000から+1.000まで)を含む。演算実 行サブツリーは浮動小数点値を戻すことによって構成要素の数値を指定する。 電気回路の構成要素の第1の値は多数の桁の範囲に及ぶ。したがって、対数ス ケール上で構成要素を見ることが有用である。したがって、この設計システムの 一実施形態では、演算実行サブツリーによって戻された浮動小数点値を、関連す る構成要素の特定のタイプに適切な測定単位を使用して11桁の範囲内の構成要 素の値と解釈することが有用であることが分かっている。演算実行サブツリーは 浮動小数点値を戻し、これを以下の形で構成要素の値と解釈する。戻り値が−0 .5と+0.5の間である場合、Uはサブツリーによって戻された値に等しい。 戻り値が−100.0より小さいか、または+100よりも大きい場合、Uは0 に セットされる。戻り値が−100と−0.5の間である場合、Uは点(−100 、0)と点(−5、−5)を接続する直線から求まる。戻り値が+5.0と+1 00の間である場合、Uは点(5,5)と点(100,0)を接続する直線から 求まる。構成要素の値は、構成要素のタイプに適切な単位で10Uである。この マッピングは、現代の電気工学の文献で多数の実際的な回路を調べた後で決定し た適切なまたは所定の値を中心とする値を構成要素に与える。幾分異なる解釈の 方法もいくつかの特殊化された用途の範疇(例えば、より極端な値が一般に必要 とされる場合)に適切である。 構成要素(例えばダイオード)が数値を有しない場合、残っているサブツリー (引数)はない。構成要素を記述するために通常1よりも大きい数値が必要な場 合、多数の演算実行サブツリー(引数)がある。例えば、独立した交流電流正弦 波電圧源の完全な仕様には5つの数値構成要素、すなわち電圧源の振幅、その周 波数、そのオフセット電圧、その時間遅延、およびその減衰定数が必要である。 構成要素は、構成要素の初期条件(例えば、コンデンサの初期電圧、インダクタ の初期電流、いくつかの発振回路値のトランジスタの初期電圧)を指定すること が必要な状況で追加の構成要素数値を必要とする。 抵抗関数 本発明では、2引数R(「抵抗」)関数はハイライトされた構成要素を抵抗に 変化させる。 第4図に、4つのコンデンサを含む部分回路のノード401および402を接 続する修正可能ワイヤZ0 403を示す。修正可能なワイヤZ0 403は書 込みヘッドを保持する(すなわち円でハイライトされている)。 第5図に、R関数を第4図の変更可能ワイヤZ0に適用し、それにより第4図 の修正可能なワイヤZ0 403の代わりにノード401および402を接続す る抵抗R1 503を生成した結果を示す。抵抗の極性はその代わりになる修正 可能なワイヤZ0の極性に一致することに留意されたい。 この構成要素の値(5オーム)は演算実行サブツリーによって指定される。一 実施形態では、抵抗の値はキロオーム(Kオーム)の中間値(U)の真数(ベー ス10)である。 回路のネットリストは、回路の各構成要素、その構成要素が接続されるノード 、およびその構成要素の値を識別するリストである。回路のネットリストは回路 が完全に開発されるまで生成されない。さらに電気回路用のSPICEシミュレ ータに送られるネットリストはワイヤを含まない。しかしながら、議論のために 、ネットリストが第4図のために生成された場合、以下の単一の行 Z0 402 401 は修正可能なワイヤZ0に関連する。 ネットリストのこの行の解釈は、回路のノード402とノード401の間に接 続されたZ0と呼ばれる構成要素があるということである。構成要素の正の端部 はノード402に接続され、負の端部はノード401に接続される。 5オーム抵抗R1を生成するR関数の効果は、この単一の行を以下の行 R1 402 401 5オーム に変更することである。 ネットリストのこの行の解釈は、回路のノード402とノード401の間に接 続されたR1と呼ばれる抵抗があり、かつこの構成要素が5オームの値を有する ということである。ネットリスト値の最初に記載されたノードは構成要素の正の 端部に接続されたノードであることを想起されたい。 構成要素生成関数(例えば上述のR関数)は、ワイヤが構成要素に変換された 後でその構成要素がその後常に回路に残るように定義されたかもしれないことに 留意されたい。この代替手法は、新たに生成された構成要素に書込みヘッドを与 えない(すなわち、構成要素生成関数用の構成継続サブツリーを有しない)こと によって容易に実施できる。この代替手法の欠点は、抵抗の並列(または直列) 構成をどのように生成するかを考えることによって説明できる。この代替手法を 使用する場合、この構成物は、まず並列(または直列)分割関数をワイヤに適用 し、次いでいま生成されたワイヤを抵抗に変換することによってのみ生成できる 。上述の手法は、この構成物を得る第2の方法、すなわちまずあるワイヤを抵抗 に変換し、次いで並列(または直列)分割関数をいま生成された抵抗に適用する ことができるので多数の状況に対してよりフレキシブルである。したがって、一 実 施形態では、新たに生成された構成要素は書込みヘッドを持っている。 コンデンサ関数 2引数C(「コンデンサ」)関数はハイライトされた構成要素をコンデンサに 変化させる。一実施形態では、コンデンサの値は、ナノファラッド(nF)の上 述の形で計算した中間値Uの真数(ベース10)である。このマッピングは1n Fを中心としてプラスまたはマイナス5桁の範囲内の値をコンデンサに与える。 第6図に、C関数を第4図の修正可能なワイヤZ0に適用し、それによりノー ド401および402を接続するコンデンサC1 601を生成した結果を示す 。 インダクタ関数 2引数L(「インダクタ」)関数はハイライトされた構成要素をインダクタに 変化させる。一実施形態では、インダクタの値はマイクロヘンリーの中間値Uの 真数(ベース10)である。このマッピングは1マイクロヘンリーを中心として プラスまたはマイナス5桁の範囲内の値をインダクタに与える。 ダイオード関数 1引数D(「ダイオード」)関数はハイライトされた構成要素をダイオードに 変化させる。ダイオードは明示的な構成要素値を有せず、したがって演算実行サ ブツリーはない。したがって、この関数は構成継続サブツリーのみを有し、1引 数関数である。 第7図に、D関数を第4図の修正可能なワイヤZ0に適用し、それによりノー ド401および402を接続するダイオードD1 701を生成した結果を示す 。 D関数によって生成されたネットリスト中の1つの行の一例を以下に示す。 D1 402 401 D1N4148 この行の解釈は、ダイオードD1のアノード(+端部)がノード402に接続 され、カソード(−端部)がノード401に接続され、ダイオードがダイオード のD1N4148モデルであるということである。ダイオードは明示的な構成要 素数値を有しないが、モデルの仕様はSPICEシミュレータに対して多数のパ ラメータの値を暗に指定する。実際、ただ1つのダイオード・モデルが特定の設 計問題に対して使用できるのが普通である。しかし極端な場合、ダイオード用の モデル中に含まれる多数の別々のパラメータのすべての値が潜在的な構成要素値 と見られ(そして別個の演算実行関数が割り当てられる)ことがある。 また、いくつかの問題に対して、モデル自体を構成要素の構成要素値にするこ とが望ましいことがある。このモデルは非構成要素数値の一例である。このモデ ルの可能な代替値は構成要素の異なる使用できるモデルに及ぶ。モデルは、同様 にいくつかの他のタイプの構成要素(例えば、トランジスタ用のモデルQ2N3 904)に関連して本明細書に現れる。 QG関数 2引数QG(「接地されたトランジスタ」)関数はハイライトされた構成要素 を、そのエミッタがアースに接続されたトランジスタに変化させる。トランジス タの構成要素値はトランジスタのコレクタでの初期条件(例えば9ボルト)であ る。初期条件は通常トランジスタで使用されない。しかしながら、それらはいく つかの回路(例えばいくつかの発振器)用のSPICEシミュレータに必要であ る。初期条件が不要な場合、この関数はただ1つの引数(すなわちその構成継続 サブツリーの引数)を有するのでD関数と同じである。 第8図に、QG関数を第4図の修正可能なワイヤZ0に適用し、それによりノ ード401および402を接続するトランジスタQ1 801を生成した結果を 示す。トランジスタのコレクタはZ0の+端部(第4図のノード402)に接続 され、ベースはZ0の−端部(第4図のノード401)に接続される。 QG関数によって生成されたネットリスト中の2つの行の一例を以下に示す。 Q1 402 401 Q2N3904 .IC V(402)=9ボルト 第1の行の解釈は、トランジスタQ1のコレクタが第8図のノード402に接 続され、ベースが第8図のノード401に接続され、エミッタがノード0(アー ス)に接続され、トランジスタのモデルがQ2N3904モデルであるというこ とである。他のトランジスタ・モデルの例はQ2N3055、Q2N2222、 H3725Cである。任意選択の第2の行の解釈は第8図のコレクタ・ノード4 02の任意選択の初期条件が9ボルトであるということである。 QP関数 2引数QP(「正電圧源トランジスタ」)関数はハイライトされた構成要素を 、そのコレクタが正電圧源(例えば、第9図のノード50の5ボルトDC)に接 続されたトランジスタに変化させる。トランジスタの構成要素値はトランジスタ のベースの初期条件(例えば9ボルト)である。初期条件は通常トランジスタで 使用されない。しかしながら、それらはいくつかの回路(例えばいくつかの発振 器)用のSPICEシミュレータに必要である。初期条件が不要な場合、この関 数はただ1つの引数(すなわちその構成継続サブツリーの引数)を有するのでD 関数と同じである。 第9図に、QP関数を第4図の修正可能なワイヤZ0に適用し、それによりノ ード401および402を接続するトランジスタQ1 901を生成した結果を 示す。トランジスタのベースはZ0の+端部(第4図のノード402)に接続さ れ、エミッタはZ0の−端部(第4図のノード401)に接続される。コレクタ は第9図のノード50の+5ボルトDC正電圧源に接続される。 QG関数によって生成されたネットリスト中の2つの行の一例を以下に示す。 Q1 50 402 401 Q2N3904 .IC V(402)=9ボルト 第1の行の解釈は、トランジスタQ1 901のコレクタが+5ボルトDC電 力源に接続され、トランジスタのベースが第9図のノード402に接続され、ト ランジスタのエミッタがノード401に接続され、トランジスタのモデルがQ2 N3904モデルであるということである。第2の行の解釈は(第9図の)ベー ス・ノード402の初期条件が9ボルトであるということである。 QVIAC関数 (QVIAC0、...、QVIAC7と呼ばれる)0引数関数のQVIAC (「コレクタからビアを有するトランジスタ」)グループ中の8つの関数は、ハ イライトされた構成要素を、そのコレクタが(ビアと呼ばれる)番号付きポート に接続されたトランジスタに変化させる。書込みヘッドはQVIAC関数の実行 によって失われる。新しいトランジスタ自体上には書込みヘッドがないので、ト ランジスタは、QVIAC関数(または次のセクションで説明する密に関連する QVIAB関数またはQVIAE関数)によって挿入された後開発中の回路中に 残る。 QVIAC関数は、ハイライトされた構成要素を、そのベースがハイライトさ れた構成要素の負の端部に接続され、そのエミッタがハイライトされた構成要素 の正の端部に接続され、そのコレクタが特定の番号の付いたポートに接続された トランジスタと交換する。このポートは、回路が常駐する仮想的なウエハ中の8 つの仮想的なレイヤの指定された1つに接続される。 完全に開発された回路の他の部分がQVIAC(またはQVIABまたはQV IAE)関数によって指定された特定の番号の付いたレイヤに接続しない場合、 そのレイヤに接続するポートは無用である。その場合、ポートは削除され、トラ ンジスタのいま取り外されたリード線は、ハイライトされた構成要素の正の端部 がそれに接続されたノードに再び取り付けられる。この削除および再取付けは、 回路のネットリストの生成の直前に行われる。 第83図に、QVIAC7関数を第4図の修正可能なワイヤZ0に適用し、そ れによりノード401、ノード402、ポート7の間に配置されたトランジスタ Q6を生成した結果を示す。トランジスタのベースはハイライトされた構成要素 の負の端部(ノード401)に接続され、エミッタはその正の端部(ノード40 2)に接続される。コレクタはポート7に接続される。 QVIAB関数 (QVIAB0、...、QVIAB7と呼ばれる)0引数関数のQVIAB (「ベースからビアを有するトランジスタ」)グループ中の8つの関数は、ハイ ライトされた構成要素を、そのベースが番号付きポート(ビア)に接続されたト ランジスタに変化させる。書込みヘッドはQVIAB関数の実行によって失われ る。 QVIAB関数は、ハイライトされた構成要素を、そのエミッタがハイライト された構成要素の負の端部に接続され、そのコレクタがハイライトされた構成要 素の正の端部に接続され、そのベースが特定の番号の付いたポートに接続された トランジスタと交換する。 第84図に、QVIAB7関数を第4図の修正可能なワイヤZ0に適用し、そ れによりノード401、ノード402、ポート7の間に配置されたトランジスタ Q6を生成した結果を示す。 QVIAE関数 (QVIAE0、...、QVIAE7と呼ばれる)0引数関数のQVIAE (「エミッタからビアを有するトランジスタ」)グループ中の8つの関数は、ハ イライトされた構成要素を、そのエミッタが番号付きポート(ビア)に接続され たトランジスタに変化させる。書込みヘッドはQVIAE関数の実行によって失 われる。 QVIAE関数は、ハイライトされた構成要素を、そのコレクタがハイライト された構成要素の負の端部に接続され、そのベースがハイライトされた構成要素 の正の端部に接続され、そのエミッタが特定の番号の付いたポートに接続された トランジスタと交換する。 第85図に、QVIAE7関数を第4図の修正可能なワイヤZ0に適用し、そ れによりノード401、ノード402、ポート7の間に配置されたトランジスタ Q6を生成した結果を示す。 QT関数 (QT0、...、QT11と呼ばれる)4引数QT(「トランジスタ」)関 数のグループ中の12個の各関数は、ハイライトされた構成要素が現在接続され ているノードの1つの代わりにトランジスタを挿入させる(またハイライトされ た構成要素を削除する)。各QT関数はまた5つの新しいノードおよび3つの新 しい修正可能なワイヤを生成する。QT関数を実行した後、3つの新しい修正可 能なワイヤを指す3つの書込みヘッドがある。QT関数の適用によって生じる構 成要素値はトランジスタのコレクタの初期条件(例えば9ボルト)である。新し いトランジスタ自体上には書込みヘッドがないので、トランジスタは、(以下で 説明するCUT関数がその後その削除を引き起こさない場合)QT関数によって 挿入された後開発中の回路中に残る。 12個のQT関数は、元のハイライトされた構成要素の極性、回路中の既存の 構成要素の数、およびハイライトされた構成要素がそれに接続されたノードの度 数に応じてわずかに異なる形で動作する。 まずハイライトされた構成要素の両方のノード(すなわち第4図のノード40 1および402)が度数3である場合について考えてみる。理解できるように、 12個のQT関数はこの状況で12個の明確な結果をもたらす。 第1の6つの関数(QT0、...、QT5)はトランジスタを、ハイライト された構成要素の正の端部がそれに接続されたノードに挿入し、第2の6つの関 数(QT6、...、QT11)はトランジスタを負の端部に挿入する。すなわ ちQT0、...、QT5はハイライトされた構成要素の正の端部がそれに接続 されたノードを「活動」ノードになるようにし、QT6、...、QT11はハ イライトされた構成要素の負の端部がそれに接続されたノードを「活動」ノード になるようにする。 これら2つのサブセット中の6つの関数の動作は、「活動」ノード(すなわち 、トランジスタに変換すべきノード)に接続された回路中の3つの既存の構成要 素の番号付けに依存する。3つのオブジェクトの6つの可能な置換があるので、 新しいトランジスタのコレクタ、ベース、エミッタを接続する6つの可能な方法 がある。 表2に、新しいトランジスタのどのリード線(コレクタ、ベース、エミッタ) を度数3の活動ノードの最小番号、中間番号、最大番号の既存の構成要素に接続 すべきかを示す。 表2 活動ノードが度数3のときのQT関数の動作 例えば、QT0関数が第4図の修正可能なワイヤZ0に適用されたと仮定する 。QT0は第1のサブセット(すなわちQT0、...、QT5)中にあるので 、QT0は第4図のハイライトされた構成要素Z0の正の端部に対して動作する 。すなわち、ノード402はトランジスタに変換される「活動」ノードである( そしてノード401は「非活動」ノードである)。第4図の活動ノード402の 3つの既存の構成要素はZ0、C4、およびC5である。表2は、新しいトラン ジスタのコレクタを最小番号構成要素に接続し、ベースを中間番号構成要素(す なわち第4図のC4)に接続し、エミッタを最大番号構成要素(すなわち第4図 のC5)に接続するよう指定する。 第10図に、QT0関数を第4図の修正可能なワイヤZ0に適用し、それによ りトランジスタQ6を生成した結果を示す。 第1に、QT0関数は、3つの新しい修正可能なワイヤZ7、Z8、Z9、お よび5つの新しいノード(1014、1015、1016、1017、1018 )を生成する。 第2に、第1の新しいワイヤ(Z7)は非活動ノード(すなわちノード401 )および新しいトランジスタの1つのリード線を新しいノード1018に接続す る。この新しいワイヤの極性は、非活動ノードに接続された元の構成要素の端部 によって(すなわち元の構成要素Z0の負の端部がノード401にあったことに よっ て)確立される。したがって、ノード401はZ7の負の端部に接続され、ノー ド1018はZ7の正の端部に接続される。 第3に、活動ノード(すなわちノード402)は2つの新しいノード1014 および1016に分割される。 第4に、第2の新しいワイヤ(Z8)は新しいノード1014を新しいトラン ジスタの1つのリード線の新しいノード1015に接続する。この新しいワイヤ は、元のハイライトされた構成要素の正または負の端部が活動ノード(すなわち ノード402)で正であったか、または負であったかに基づいてその極性を得る 。 第5に、第3の新しいワイヤ(Z9)は新しいノード1016を新しいトラン ジスタの1つのリード線の新しいノード1017に接続する。この新しいワイヤ は、新しいワイヤZ8と同じ形でその極性を得る。 第6に、新しいトランジスタのコレクタ・リード線、ベース・リード線、エミ ッタ・リード線はそれぞれ、実行中の特定のQT関数に対して表2中のエントリ によって指定された形で新しいノード1018、1015、1017に接続され る。 以下は、このQT0関数によって生成されたネットリスト中の2つの行の一例 である。 Q6 1018 1015 1017 Q2N3904 .IC V(1018)=9ボルト 第1の行の解釈は、トランジスタQ6のコレクタがノード1018に接続され 、トランジスタのベースがノード1015に接続され、トランジスタのエミッタ がノード1017に接続され、トランジスタのモデルがQ2N3904モデルで あるということである。任意選択の第2の行の解釈はコレクタ(ノード1018 )の任意選択の初期条件が9ボルトであるということである。 第2の例のように、QT8関数が第4図の修正可能なワイヤZ0に適用された と仮定する。QT8は第2のサブセット(すなわちQT6、...、QT11) 中にあるので、QT8はハイライトされた構成要素Z0の負の端部に対して動作 する。すなわち、ノード401はトランジスタに変換される「活動」ノードであ り、ノード402は「非活動」ノードである。ノード402の3つの既存の構成 要素はZ0、C2、およびC3である。 表2は、新しいトランジスタのベースを最小番号構成要素(すなわちZ0)に 接続し、コレクタを中間番号構成要素(すなわちC2)に接続し、エミッタを最 大番号構成要素(すなわちC3)に接続することを示す。第11図に、QT8関 数を第4図の修正可能なワイヤZ0に適用し、それによりトランジスタQ6を生 成した結果を示す。 次に、ハイライトされた構成要素のただ1つのノードが度数3であり、かつ他 のノードが度数2である場合について考えてみる。この場合、度数3の一方のノ ードは活動ノードであり、他方のノードは非活動ノードである。表2は前と同じ 形で適用される。 最後に、ハイライトされた構成要素の両方のノードが度数2である場合につい て考えてみる。第12図に度数2の2つのノードに接続されたハイライトされた 構成要素を示す。 前のように、第1の6つの関数(QT0、...、QT5)はトランジスタを 、ハイライトされた構成要素の正の端部がそれに接続されたノードに挿入し、第 2の6つの関数(QT6、...、QT11)はトランジスタを負の端部に挿入 する。 表3に、新しいトランジスタのどのリード線(コレクタ、ベース、エミッタ) をハイライトされた構成要素に接続するか、およびどの2つのリード線を活動ノ ードの他の構成要素(すなわちハイライトされた構成要素以外の構成要素)に接 続すべきかを示す。 表3 活動ノードならびに非活動ノードが度数2のときのQT関数の動作 例えば、QT7(またはQT10)関数が第12図のハイライトされた構成 要素に適用されたと仮定する。QT7は第2のサブセット(すなわちQT6、. ..、QT11)中にあるので、QT7はハイライトされた構成要素Z0の負の 端部に対して動作する。すなわち、ノード1201はトランジスタに変換される 「活動」ノードであり、ノード1202は「非活動」ノードである。活動ノード 1201の2つの既存の構成要素はR1およびC2である。表3は、新しいトラ ンジスタのベースをハイライトされた構成要素(すなわちR1)に接続し、コレ クタおよびエミッタをともに活動ノード(すなわちC2)に接続された他の構成 要素に接続することを示す。第13図に、QT7関数を第12図の抵抗R1に適 用し、それによりトランジスタQ6を生成した結果を示す。 一実施形態では、世代0の初期ランダムポピュレーションを生成するために、 グループの関数の1つを選択する累積確率が関数集合から任意の他の非グループ 化関数を選択する確率に等しくなるように、関数のグループに属するすべての関 数を重み付けする。したがって、例えば、12個の各QT関数は、いわば、L関 数やC関数を選択する確率の1/12に等しい選択される確率を有する。一実施 形態では、この重み付けの手法はまた、一般にすべての他の同様の関数グループ に使用される。 図示のように、構成要素生成関数のQTグループを定義する場合に使用される 一般的な原理は任意の3リード線構成要素(例えば、後述するようにオペアンプ ) に適用できる。 ディジタル・インバータ関数 2引数ディジタル・インバータ(否定)関数はハイライトされた構成要素をデ ィジタル・インバータ構成要素に変化させる。 第106図に、ディジタル・インバータ関数を第4図の修正可能なワイヤZ0 に適用し、それにより第4図の修正可能なワイヤZ0の代わりにノード1および 2を接続するディジタル・インバータNOT1を生成した結果を示す。 ディジタルAND関数 3引数ディジタルAND関数(AND0、...、AND11)のグループ中 の12個の関数はハイライトされた構成要素を、QT関数がハイライトされた構 成要素を3リード線トランジスタに変換するのと同じ形でディジタルANDゲー トに変換する。ディジタルAND関数を実行した後、3つの新しい修正可能なワ イヤを指す3つの書込みヘッドがある。 第107図に、ディジタルAND6関数を第4図の修正可能なワイヤZ0に適 用し、それによりANDゲートAND6を生成した結果を示す。 ディジタルOR関数 3引数ディジタルOR関数(OR0、...、OR11)のグループ中の12 個の関数はハイライトされた構成要素を、QT関数がハイライトされた構成要素 を3リード線トランジスタに変換するのと同じ形でディジタルORゲートに変換 する。ディジタルOR関数を実行した後、3つの新しい修正可能なワイヤを指す 3つの書込みヘッドがある。 第108図に、ディジタルOR6関数を第4図の修正可能なワイヤZ0に適用 し、それによりORゲートOR6を生成した結果を示す。 他のディジタル関数 他の純粋にディジタルな関数(例えば、NAND関数、NOR関数、排他的論 理和XOR関数、非排他的論理和NXOR関数)が同様に定義できる。さらにフ リップフロップなどのディジタル関数も定義できる。 回路のすべての構成要素がディジタル構成要素である場合に回路がディジタル であるという。回路のすべての構成要素がアナログである場合に回路がアナログ であるという。回路がアナログ構成要素とディジタル構成要素の両方を含む場合 に回路が混合アナログ/ディジタルであるという。SPICEなど電気シミュレ ータは、ディジタル回路、アナログ回路、混合アナログ/ディジタル回路に適合 する。 ネオン電球関数 1引数NE(「ネオン電球」)関数はハイライトされた構成要素をネオン電球 に変化させる。ネオン電球は、そのリード線間に67ボルト以上の電圧があると きに点灯する。この電圧は固定であり、ネオン電球は他の構成要素値を有しない ので、演算実行サブツリーはない。したがって、この関数は構成継続サブツリー のみを有し、1引数関数である。 DC電源(DC)関数 2引数DC(「DC電源」)関数はハイライトされた構成要素をDC電源に変 化させる。構成要素値はそのDC電圧の値である。演算実行サブツリーは浮動小 数点値を戻すことによって構成要素の数値を指定する。浮動小数点値は構成要素 の値と解釈される。電源の場合、解釈の方法は、抵抗、コンデンサ、インダクタ などの構成要素のそれと異なる。演算実行サブツリーは浮動小数点値を戻し、浮 動小数点値は以下の形で構成要素の値と解釈される。戻り値が−100.0と+ 100.0の間である場合、Uはサブツリーによって戻された値に等しい。戻り 値が−100.0より小さい場合、Uは−100.0ボルトDCにセットされる 。戻り値が+100.0よりも大きい場合、Uは+100.0にセットされる。 この手法は、構成要素に適切な狭い範囲内の電源の電圧レベルをつくり出す。 AC電源(AC)関数 6引数AC(「AC電源」)関数はハイライトされた構成要素をAC正弦波電源 に変化させる。AC電源に関連する5つの構成要素値は、そのオフセット電圧、 その振幅電圧、その周波数、その時間遅延(秒)、およびその減衰定数である。 5つの演算実行サブツリーは、適切な形で解釈される5つの浮動小数点値を戻す ことによってこれら5つの数値を指定する。電源の場合、解釈の方法は、抵抗、 コンデンサ、インダクタなどの構成要素のそれと異なる。さらに、解釈の方法は この特定の構成要素生成関数の5つの値に対して異なる。 振幅および周波数の場合、各演算実行サブツリーによって戻された浮動小数点 値は以下の形で解釈される。戻り値が−100.0と+100.0の間である場 合、Uはサブツリーによって戻された絶対値に等しい。戻り値が−100.0よ り小さいか、または+100よりも大きい場合、Uは+100.0にセットされ る。 オフセット電圧、時間遅延、および減衰定数の場合、各演算実行サブツリーに よって戻された浮動小数点値は以下の形で解釈される。戻り値が−100.0と +100.0の間である場合、Uはサブツリーによって戻された値に等しい。戻 り値が−100.0より小さい場合、Uは−100.0にセットされる。戻り値 が+100.0よりも大きい場合、Uは+100.0にセットされる。 変圧器関数 変圧器は、その2つのコイル上の交流信号の電圧をその「巻線比」に従って変 化させる。例えば、変圧器は、その一次コイル上の信号の電圧を10倍に逓昇し 、新しいより電圧の高い信号をその二次コイル上で使用できるようにする。「巻 線比」は、一般に変圧器に対して固定であり、そのモデルの変圧器の仕様の一部 である。 (TRANFORMER0、...、TRANFORMER5と呼ばれる)4 引数関数のTRANFORMERグループ中の6つの関数は、8つの新しいノー ド、4つの新しい修正可能なワイヤを生成し、ハイライトされた構成要素を変圧 器に変化させる。TRANFORMER関数を実行した後、4つの書込みヘッド がある。それらは、新しい変圧器の4つのリード線に接続された4つの新しい修 正可能なワイヤを指す。新しい変圧器自体上には書込みヘッドがないので、変圧 器は、TRANFORMER関数によって挿入された後開発中の回路中に残る。 変圧器の4つのリード線のうち2つのリード線は変圧器の一次コイルに関連し 、他の2つのリード線は変圧器の二次コイルに関連する。すなわち、変圧器の2 つのコイルは別個であり、交換できない。2つの変圧器中の交流信号の位相が重 要である用途では、各コイルの各リード線も別個であり、交換できない。しかし ながら、用途によっては、位相は重要でないこともあり、したがって特定のコイ ルの2つのリード線は交換できると考えてよい。(位相が重要である場合、12 個の異なるTRANFORMER関数がある)。本明細書では後者の場合をこの 議論のために仮定する。このように仮定すれば、TRANFORMER関数によ って生成された6つの潜在的に異なる結果は、4つのオブジェクトを2つのオブ ジェクトの2つのサブセットに分割する3つの異なる方法、およびより低い電圧 およびより高い電圧を2つのコイルに割り当てる2つの異なる方法から生じる。 ハイライトされた構成要素の両方のノード(すなわち第4図のノード401お よび402)が度数3であるとき、6つのTRANFORMER関数は6つの別 個の結果を生じる。いずれかのTRANFORMER関数を第4図のノード40 1および402に適用した結果を以下に示す。 第1に、TRANFORMER関数は4つの新しい修正可能なワイヤZ6、Z 7、Z8、Z9および8つの新しいノード3、4、5、6、14、15、16、 17を生成する。 第2に、変圧器の一次コイルの2つのリード線が新しいノード3および4に接 続される。 第3に、変圧器の二次コイルの2つのリード線が新しいノード5および6に接 続される。 第4に、ノード1がノード14および15に分割され、ノード2がノード16 および17に分割される。 表4は、ハイライトされた構成要素の両方のノードが度数3であるときに適用 される。表4は、4つの新しいノード3、4、5、6のうち、ハイライトされた 構成要素の正の端部の番号のより小さい構成要素、ハイライトされた構成要素の 正の端部の番号のより大きい構成要素、ハイライトされた構成要素の負の端部の 番号のより小さい構成要素、およびハイライトされた構成要素の負の端部の番号 のより大きい構成要素に接続されるべきノードを示す。 表4 ハイライトされた構成要素の両方のノードが度数3のときの TRANFORMER関数の動作 第86図に、TRANFORMER0関数を第4図の修正可能なワイヤZ0に 適用した結果を示す。 第87図に、TRANFORMER1関数を第4図の修正可能なワイヤZ0に 適用した結果を示す。 第88図に、TRANFORMER2関数を第4図の修正可能なワイヤZ0に 適用した結果を示す。 第89図に、TRANFORMER3関数を第4図の修正可能なワイヤZ0に 適用した結果を示す。 第90図に、TRANFORMER4関数を第4図の修正可能なワイヤZ0に 適用した結果を示す。 第91図に、TRANFORMER5関数を第4図の修正可能なワイヤZ0に 適用した結果を示す。 ノード401が度数2である場合、ワイヤZ6およびZ8は同じ点で終端する 。同様に、ノード402が度数2である場合、ワイヤZ7およびZ9は同じノー ドで終端する。 4つの挙動の異なるリード線を有する4リード線構成要素の構成要素生成関数 の24個のバージョンがある。それを理解すれば、構成要素生成関数のTRAN FORMERグループを定義する場合に使用される一般的な原理は任意の4リー ド線構成要素に適用できることが示せる。 TWO_LEAD_OPAMP関数 オペアンプは(通常使用される)5つのリード線を有する構成要素である。そ の第1の2つのリード線はオペアンプへの入力である。さらに、第3のリード線 は一般に固定の正電圧源に接続され、第4のリード線は一般に固定の負電圧源に 接続される。オペアンプはその2つの入力電圧間の差をとり、その差と定数A( 増幅定数)との積を第5のリード線への出力として発生する。 これら2つの固定電圧源へのオペアンプの第3および第4のリード線の接続は 非常に一般的であるので、これら2つのリード線が全く自由でなく、代わりにこ れら2つの固定電圧源にハードワイヤされるオペアンプの特殊なバージョンにつ いて考えることが有用である。さらに、いくつかの回路では、目的は、単に2つ の入力電圧間の差をとり、次いでその差を増幅定数Aだけ増幅するのではなく、 1つの入力を増幅することである。したがって、TWO_LEAD_OPAMP 関数を備えることが有用である。 2引数TWO_LEAD_OPAMP分割関数(TWO_LEAD_OPAM P0およびTWO_LEAD_OPAMP1)のグループ中の2つの関数はハイ ライトされた構成要素をオペアンプに変換する。TWO_LEAD_OPAMP 関数を実行した後、元の構成要素および2つのコピーを指す1つの新しい書込み ヘッドがある。 オペアンプの増幅定数Aはそのモデルによって指定される。 TWO_LEAD_OPAMP0関数はハイライトされた構成要素を、その正 の入力リード線がハイライトされた構成要素の正の端部(第92図のノード2) に接続され、その出力リード線がハイライトされた構成要素の負の端部(第92 図のノード1)に接続されたオペアンプに変換する。TWO_LEAD_OPA MP1関数はオペアンプを反対の方向に挿入する。 第110図に、TWO LEAD OPAMP1関数を適用した結果を示す。 その正の入力リード線はハイライトされた構成要素の負の端部(第92図のノー ド1)に接続され、その出力リード線がハイライトされた構成要素の正の端部( 第92図のノード2)に接続される。 THREE_LEAD_OPAMP関数 TWO_LEAD_OPAMP関数は、2つの入力電圧間の差をとり、次いで その差を増幅定数Aだけ増幅する必要があるときには十分でない。したがって、 THREE_LEAD_OPAMP関数を備えることが有用である。 3引数THREE_LEAD_OPAMP分割関数(TFIREE_LEAD _OPAMP0、...、THREE LEAD OPAMP11)のグループ 中の12個の関数はハイライトされた構成要素を、QT関数がハイライトされた 構成要素を3リード線トランジスタに変換するのと同じ形でオペアンプに変換す る。THREE_LEAD_OPAMP関数を実行した後、3つの新しい修正可 能なワイヤを指す3つの書込みヘッドがある。 オペアンプの増幅定数Aはそのモデルによって指定される。 THREE_LEAD_OPAMP関数は実際の回路の広範囲に充分である。 第109図はTHREE_LEAD_OPAMP1関数を適用した結果を示す 。 FIVE_LEAD_OPAMP関数 5引数のFIVE_LEAD_OPAMP関数はオペアンプのリード線の割当 ての融通性を高める。さらに、5本のリード線を備えたオペアンプの挿入方法は 5本のリード線を備えたその他の構成要素、ならびにそれ以上の本数のリード線 を備えた構成要素にも拡張できる原理を示している。 オペアンプへの5種類の入力を入れ替えるのには、120通りの方法が考えら れる。さらに、ハイライトされた構成要素の各ノードが3度である場合、開発回 路にオペアンプを挿入するのには、4種類の異なる方法がある。したがって、4 80のFIVE_LEAD_OPAMP関数がある。120の組合せのうち1つ だけが実施形態の1つで使用され、本明細書で説明される(すなわち、オペアン プの5本のリード線がまったく入れ替えられない場合に適用される480種類の FIVE_LEAD_OPAMP関数のうちの4つ)。 構成要素作成関数のFIVE_LEAD_OPAMPグループを定義する際に 使用される原理を、5本の独自のリード線を備えた任意の構成要素に適用できる ことがわかる。 6引数の関数のFIVE_LEAD_OPAMPグループの4つの関数(FI VE_LEAD_OPAMP0、...、FIVE_LEAD_OPAMP3と いう)は7つの新しいノード、5本の変更可能ワイヤを作成し、ハイライトされ た構成要素を他の既存の構成要素とともにオペアンプへ変更させる。FIVE_ LEAD_OPAMP関数の実行後、5つの書込みヘッドが得られる。これらは 新しいオペアンプの5本のリード線に接続された新しい5本の変更可能ワイヤを ポイントする。新しいオペアンプ自体には書込みヘッドが存在しないため、ある オペアンプをFIVE_LEAD_OPEAMP関数によって挿入された場合、 これは開発回路に残る(後述のCUT関数がその後これを削除しない限り)。 オペアンプの増幅度Aはそのモデルによって指定される。 第92図は回路の一部を示している。その回路は、抵抗R1が書込みヘッドを 有しており、端部の両方が3度のノードに接続されており、ノード3にある第2 の削除対象構成要素(R7)の端部が3度である。抵抗R7が高い番号の構成要 素であり、ハイライトされた構成要素(R1)のプラス端部と同じノードに接続 されていることに留意されたい。 ハイライトされた構成要素の両方のノード(すなわち、第92図の抵抗R1の ノード1および2)が3度である場合、4つのFIVE_LEAD_OPAMP 関数(120の組合せの1つに関連付けられた)は4種類の結果を生じる。 FIVE_LEAD_OPAMP関数はハイライトされた構成要素R1、なら びにR1のノードの1つに接続された1つの付加的な構成要素を削除する。FI VE_LEAD_OPAMP0、. . .、FIVE_LEAD_OPAMP3の 間の違いは、第2の削除対象構成要素の同一性である。たとえば、FIVE_L EAD_OPAMP1はR1のプラス端部が接続されているノード、すなわちR 7における高い番号の構成要素を削除する。 FIVE_LEAD_OPAMP関数を図のノード1および2に適用した結果 は次の通りである。 第1に、FIVE_LEAD_OPAMP関数は5本の新しい変更可能ワイヤ Z8、Z9、Z10、Z1lおよびZ12、ならびに新しいノード15、16、 17、18、19、20および21を作成する。 第2に、オペアンプのプラス入力は新しいノード18に接続され、オペアンプ のマイナス入力は新しいノード17に接続される。 第3に、通常プラス電圧源(文献では、従来V+で表されている)に接続され るリード線は新しいノード19に接続され、通常マイナス電圧源(文献では、従 来V_で表されていた)に接続されるリード線は新しいノード15に接続される 。 第4に、オペアンプの出力は新しいノード15に接続される。 第5に、R1のマイナス端部が本来接続されていたノードは、新しいノード2 0を生じるように分割される。R1のマイナス端部が本来接続されていた低い番 号の構成要素(R1を除く)はノード1に接続されたままであるが、高い番号の 構成要素は新しいノード20に接続されるようになる。 第6に、第2の削除対象構成要素に接続されているノード(かつ、R1に接続 されていない)(たとえば、ノード3)は、新しいノード21を生じるように分 割される。ノード3が本来接続されていた低い番号の構成要素(第2の削除対象 構成要素を除く)はノード3に接続されたままであるが、高い番号の構成要素は 新しいノード21に接続されるようになる。 第7に、ノード2はR1および第2の削除対象構成要素の両方との接続から外 される。 第8に、新しい変更可能ワイヤZ8はノード15とノード3の間に接続され、 Z9はノード16およびノード21の間に接続され、Z10はノード17とノー ド20の間に接続され、Z11はノード1とノード18の間に接続され、Z12 はノード19とノード2の間に接続される。 第93図はFIVE_LEAD_OPAMP1関数を第92図の抵抗R1に適 用した結果を示す。 この関数が内容に即した構成要素作成関数の一例(本明細書てはいくつかある もののうちの)であることに留意されたい。 SPICEにおけるサブ回路の定義 サブ回路の定義を構成要素作成関数に含めることができる。サブ回路によって 、構成要素の組合せを定義してから、回路のネットリストに含めることが可能と なる。 SPICEは「subckt」コマンドを使用してサブ回路の定義をサポート する。サブ回路の定義は数値パラメータを含んでいても、含んでいなくてもよい 。 サブ回路の定義を自動定義関数と混同してはならない。サブ回路定義は設計す る回路のプリミティブ構成要素であるかのように取り扱われる構成要素を定義す る。サブ回路は遺伝的プログラミングの実行前に定義される。サブ回路はいった ん定義されると、他のすべての構成要素(たとえば、抵抗、コンデンサ)とまっ たく同様に取り扱われる。対照的に、自動定義関数は作業実行本体が遺伝的プロ グラミングの実行中に動的に発展する関数定義ブランチである。自動定義関数は 通常、接続作成関数と構成要素作成関数の構成要素を含んている。ただし、自動 定義関数は数値パラメータ(ダミー引数)を含んでいても、含んでいなくてもよ い。 他の構成要素作成関数 上記の構成要素作成関数は本発明の自動設計システムの汎用性と融通性を示し ている。多くの他の構成要素作成関数を作成して、回路の特定のクラスまたは回 路要素の特定のトポロジ構成を設計する要件に対処することができる。QT関数 によってすでに説明したように、構成要素を挿入して、ノード(点)を置き換え たり、回路図のエッジ(線)を置き換えることができる。内容に即したFIVE _LEAD_OPAMP関数によってすでに説明したように、5本(または、そ れ以上)のリード線を備えた構成要素を挿入して、ノード(点)、エッジ(線) および他の隣接する構成要素を置き換えることができる。本発明で使用される多 くの他の関数は回路図の2つ以上のノード(点)またはエッジ(線)に動作した り、内容に即した態様で動作したりすることができる。 ノードの度数は上記の説明において2または3であるが、他の構成要素作成関 数を、他の構成要素作成関数と関連させて、定義して、度数がもっと大きいノー ドに対処することができる。 接続作成関数 本発明において、接続作成関数が回路のトポロジを変更する。プログラム・ツ リー内の各接続作成関数は関連するハイライトされた構成要素(変更可能ワイヤ であることがしばしばある)をポイントし、何らかの態様で開発回路のトポロジ を改変する。各接続作成関数はゼロ個、1個またはそれ以上の書込みヘッドを生 じる。さらに、実施形態の1つにおいて、各接続作成関数は回路内のいずれか1 つのノードに影響を与えるラインの数を2または3のいずれかにしておく。他の 実施形態において、各接続作成関数の結果として残されるいずれか1つのノード に影響を与えるラインの数は、4以上(たとえば、4、5など)でよい。 接続作成関数のなかには内容に関係の無いものも、内容に即したものもある。 接続作成関数が内容に関係のないものである場合、結果は単一のハイライトされ た構成要素(すなわち、書込みヘッドを備えた構成要素)のみによって左右され る。接続作成関数が内容に即したものである場合、結果は単一のハイライトされ た構成要素だけではなく、回路構造の他の近傍の要素にも左右される。本発明は 内容に即した関数ならびに内容に関係ない関数を実行することによって生じる複 雑な構造の作成をサポートしている。 表5は電気回路に対する若干の例示的な接続作成関数をリストし、関数の短縮 名、関数の長い説明的な名前、およびそのアリティを含んでいる。 表5 接続作成関数 表5の関数のセットは本発明の自動設計方法で用いられる接続作成関数に考え られる各種の変形を示している。多くの付加的な異なる接続作成関数を特定の問 題または状況に合わせて作成することができる。 FLIP関数 2本のリード線(端部、インタフェース)を備えているすべての電気的構成要 素は、これらのおのおのが指定されたプラス(+)端部および指定されたマイナ ス(−)端部を有している意味で、SPICEにおいて極性を有している。回路 に対するネットリストの各ラインにおける最初にリストされたノードが構成要素 のプラス端部に接続されたノードであり、第2にリストされたノードに構成要素 のマイナス端部が接続されていることによって、極性が反映される。極性がダイ オードなどの構成要素の問題であることは明らかである。極性は、エンブリオニ ック回路を完全に開発された回路に開発するプロセスの順次過程にこれが影響を 及ぼすため、電気的挙動が構成要素の極性と無関係である構成要素(たとえば、 ワイヤ、抵抗)の問題でもある。 本発明において、FLIP関数は2つの端部だけを備えている任意の構成要素 の極性を逆転する方法を与える。第14図はFLIP関数を第7図のダイオード D1に適用することにより、極性が逆転されたダイオードD2を作成した結果を 示す。 1引数FLIP関数はハイライトされた構成要素のプラス端部を、そのマイナ ス端部が現在接続されているノードへ、あるいはその逆に接続する。FLIP関 数の実行後、1つの書込みヘッドは現在フリップされた元の構成要素をポイント する。 単一の5オーム抵抗のR1を記述している第4図のネットリストの部分は、以 下の1行のネットリストからなっている。 R1 402 401 5オーム ネットリストで最初にリストされたノードが構成要素のプラス端部に接続され たノードであり、したがってノード402にそのプラス端部が、ノード401に そのマイナス端部が接続されているものとして抵抗R1が示されていることを想 起されたい。 FLIP関数は上記の1行のネットリストを以下のものに変更する。 R1 401 402 5オーム SERIES分割関数 3引数のSERIES(「直列分割」)関数は1つのハイライトされた構成要 素で動作し、ハイライトされた構成要素、ハイライトされた構成要素のコピー、 1つの新しい変更可能ワイヤ、2つの新しいノードを含んでいる直列構成を作成 する。SERIES関数の実行後、元の構成要素、新しい変更可能ワイヤ、およ び元の構成要素のコピーをポイントする3つの書込みヘッドが得られる。 第15図はSERIES分割関数を第4図からの抵抗R1に適用した結果を示 す。第1に、SERIES関数は2つの新しいノード、1503と1504を作 成する。第2に、SERIESは元の構成要素(図の例ではR1)のマイナス端 部(現在、401というラベルがつけられている)を第1の新しいノード150 4と名前変更し、そのプラス端部を元のノード402のままにしておく。第3に 、SERIESは新しいノード1503と1504の間に新しいワイヤ(図では 、Z6と呼ばれている)を作成する。新しいワイヤのマイナス端部は第1の新し いノード1503へ接続され、プラス端部は第2の新しいノード1504へ接続 される。第4に、SERIESは元の構成要素の複製(図では、R7と呼ばれれ ている)を、新しいノード1503と元のノード401の間に挿入する。複製の プラス端部は元のノード401へ接続され、マイナス端部は新しいノード150 3へ接続されている。 単一の5オーム抵抗のR1を記述している第4図のネットリストの部分は、以 下の1行のネットリストからなっている。 R1 402 401 5オーム SERIES関数は上記の1行のネットリストを以下の3行に変更する。 R1 402 1504 5オーム Z6 1504 1503 R7 1503 401 5オーム 変更可能ワイヤ(Z6など)が開発プロセス中でだけ使用されるものであり、 すべてのこれらのワイヤがSPICEに対するネットリスの最終的な作成前に編 集されることに留意されたい。また、SERIES関数がワイヤに適用され、そ の結果が3本のワイヤ(各々がそれ自体の書込みヘッドを備えている)の直列構 成であることにも留意されたい。すなわち、ワイヤは開発構成要素である。 各タイプの構成要素に対して異なるシリーズの連続した番号を維持するのでは なく、構成要素に連続して包括的に番号を振るという規則(たとえば、新しい抵 抗をR2ではなく、R7と呼ぶ)に留意されたい。この包括番号付け規則は次の 節で説明するいくつかの関数(たとえば、PSSおよびPSL)の動作に役立つ 。 PSSおよびPSL並列分割関数 並列分割関数のグループにおける2つの4引数関数(PSSおよびPSL)の 各々はハイライトされた構成要素で動作して、元のハイライトされた構成要素、 元の構成要素の複製、2本の新しい変更可能ワイヤ、および2つの新しいノード からなる並列構成を作成する。PSSまたはPSLの実行後、4つの書込みヘッ ドが得られる。これらの書込みヘッドは元の構成要素、2本の新しいワイヤ、お よび元の構成要素の複製をポイントする。 PSSおよびPSL関数は、元のハイライトされた構成要素が接続されている ノードの度数および回路内の既存の構成要素の番号付けによっては、若干異なる 態様で動作する。 第1に、ハイライトされた構成要素の両方のノード(すなわち、第4図のノー ド401および402)が3度である場合を考える。第4図は4個のコンデンサ を含んでいる部分回路のノード401および402を接続している抵抗R1を示 す。本図において、ノード401は3度であり(R1、コンデンサC2およびコ ンデンサC3がこれに接続されているため)、ノード402も3度である(R1 、コンデンサC4およびコンデンサC5がこれに接続されているため)。第16 図および第17図は、ハイライトされた構成要素の両方のノード(すなわち、ノ ード401および402)が3度である(第4図の場合と同様に)ときに、PS SおよびPSL関数のそれぞれを抵抗R1に適用した結果を示す。 第1に、並列分割関数は2つの新しいノード1603および1604を作成し 、また2本の新しいワイヤZ6(元のノード402と新しいノード1603の間 )とZ8(元のノード401と新しいノード1604の間)を作成する。両方の 新しいワイヤのマイナス端部は元の構成要素のノード(すなわち、401および 402)に接続され、これにより新しいワイヤの極性を確立する。 第2に、並列分割関数はハイライトされた構成要素の複製(その構成要素値の すべてを含む)を新しいノード1603および1604の間に挿入する。複製の マイナス端部はノード1604(元の構成要素のマイナス端部に接続されている 新しいワイヤ、すなわちZ8によって接続されている新しいノード)に接続され る。複製のプラス端部はノード1603(元の構成要素のプラス端部に接続され ている新しいワイヤ、すなわちZ6によって接続されている新しいノード)に接 続される。これは新しい構成要素の極性を確立する。 第3に、元の構成要素に関して新しい構成要素のトポロジを確立しなければな らない。2つの並列分割関数はこれに関し、若干異なる態様で動作する。関数の 名前(PSSまたはPSL)の3番目の文字(SまたはL)は、新しい構成要素 のマイナス端部がハイライトされた構成要素のマイナス端部に本来接続されてい た2つの構成要素のうち小さい番号(S)の構成要素に接続されているか、大き い番号(L)の構成要素に接続されているかを示す。 第4図のネットリストは次の通りである。 R1 402 401 5オーム C2 401 10 C3 401 11 C4 402 12 C5 402 13 ネットリストで最初にリストされたノードが構成要素のプラス端部へ接続され たノードであることを想起されたい。 並列分割関数PSSは上記の元のネットリストを次の新しいネットリストへ変 更する。 R1 402 401 5オーム Z6 1603 402 Z8 1604 401 R7 1603 1604 5オーム C2 1604 10 C3 401 11 C4 1603 12 C5 402 13 C2およびC3は元の構成要素R1のマイナス端部に本来接続されていた(元 のノード1において)2つの元の構成要素である。抵抗が複製された場合、C2 またはC3のいずれを新しい抵抗(元のR1とは異なる)に接続すべきかという 疑問が生じる。C2の番号がC3よりも小さいため、Pss関数はC2(番号が 小さい構成要素)を新しいノード1604へ接続させるとともに、C3を元のノ ード401へ接続されたままにする。第4図の4つのコンデンサの極性が示され ておらず、上記のネットリストを提示するにあたり、C2およびC3のプラス端 部が元のノード401に接続されている(したがって、1604がC2に関して ネットリストで10行前にあり、401がC3に関して11行前にある)と想定 しただけであることに留意されたい。PSS関数の重要な態様はC2およびC3 の極性にではなく、1604がネットリストのC2の行に現れる(401はC3 の行に現れる)ことにある。 PSL関数はPSS関数と若干異なる動作をする。PSL関数は元のネットリ ストを以下の新しいネットリストへ変更する。 R1 402 401 5オーム Z6 1703 402 Z8 1704 401 R7 1703 1704 5オーム C2 401 10 C3 1704 11 C4 1703 12 C5 402 13 C3の番号がC2よりも大きいため、PSL関数はC3(番号が大きい構成要 素)を新しいノード1704へ接続させるとともに、C2を元のノード401へ 接続されたままにする。 抵抗R1が並列構成の一部として複製された場合に生じることのできるすべて のトポロジを、PSSおよびPSL関数が作成することに留意されたい。それ故 、元の構成要素のプラス端部へ接続された構成要素に対する構成要素番号の相対 的な大きさを考慮する必要がない。 極性が電気的な意義を有していない構成要素(たとえば、抵抗)に対してであ っても、極性が開発プロセスに影響を及ぼすことに留意されたい。もちろん、多 くの構成要素(たとえば、ダイオードおよびトランジスタ)に関しても、極性は 電気的に重要である。 ハイライトされた構成要素の両方のノード(すなわち、第12図のノード12 01および1202)が2度である場合を考える。図示のように、PSSおよび PSLはこの場合、同一の結果を生じる。 第12図は2個のコンデンサを含んでいる部分回路のノード1201および1 202を接続している抵抗R1を示す。R1は書込みヘッド(すなわち、丸印の )を有している。ノード1201は2度であり(R1およびコンデンサC2がこ れに接続されているため)、ノード1202は2度である(R1およびコンデン サC4がこれに接続されているため)。第18図はPSSまたはPSLのいずれ かを回路に適用した結果を示す(たとえば、ノード1201および1202が2 度である第12図)。 第1に、並列分割関数は2つの新しいノード1803および1804を作成し 、また2本の新しいワイヤZ6(元のノード1202と新しいノード1803の 間)とZ8(元のノード1201と新しいノード1804の間)を作成する。両 方の 新しいワイヤのマイナス端部は元の構成要素のノード(すなわち、1201およ び1202)に接続され、これにより新しいワイヤの極性を確立する。 第2に、並列分割関数はハイライトされた構成要素の複製(その構成要素値の すべてを含む)を新しいノード1803と1804の間に挿入する。複製のマイ ナス端部はノード1804(元の構成要素のマイナス端部に接続されている新し いワイヤ、すなわち新しいワイヤZ8によって接続されている新しいノード)に 接続される。複製のプラス端部はノード1803(元の構成要素のプラス端部に 接続されている新しいワイヤ、すなわち新しいワイヤZ6によって接続されてい る新しいノード)に接続される。これは新しい構成要素の極性を確立する。 最後に、ハイライトされた構成要素のノードの1つ(たとえば、第4図のノー ド401)が3度であり、ノード402が2度てある場合を考える。第19図は 3個のコンデンサを含んでいる、ノード1901が3度であり、ノード1902 が2度である部分回路のノード1901および1902を接続している抵抗R1 を示す。 トポロジに関する潜在的な問題は、新しいノード2003がC4と元のノード 1902の間に配置されるかどうか、および元のノード2がC4と新しいノード 2003の間に配置されるかどうか(C2に関しては同様に、ノード1901お よびノード2004)だけである。 第20図はPSSまたはPSLのいずれかを第19図に適用した結果を示す。 PSSおよびPSL関数が内容に即した構成要素作成関数の一例(本明細書で はいくつかあるもののうちの)であることに留意されたい。 STAR分割関数 3引数のSTAR分割関数のグループ内の2つの関数(STAR0およびST AR1)はハイライトされた1つの構成要素で動作して、ハイライトされた構成 要素、ハイライトされた構成要素の2つのコピー、および2つの新しいノードを 含んでいる星状の構成を作成する。STAR関数の実行後、元の構成要素および 2つのコピーをポイントする3つの書込みヘッドが得られる。 STAR関数はハイライトされた構成要素の「活動」ノードで2つのコピーを 挿入する。STAR0関数の場合、活動ノードはハイライトされた構成要素のプ ラス端部が接続されるノードである。STAR1関数の場合、活動ノードはハイ ライトされた構成要素のマイナス端部が接続されるノードである。 STAR関数を説明するため、これらの関数の一方を第5図の抵抗R1のノー ド401および402に適用した結果を考える。この結果を第94図に示す。 第1に、STAR関数は活動ノードをノード3と名前変更する。 第2に、活動ノードの度数が3である場合、STAR関数は2つの新しいノー ド4および5を作成するが、活動ノードの度数が2でしかない場合には、STA R関数は新しいノード4だけを作成する。第3に、STAR関数は元の構成要素 の複製の1つ(R6と呼ぶ)(その構成要素値のすべてを含む)を、新しいノー ド3と新しいノード4の間に挿入する(複製のプラス端部はノード3に接続され ている)。第4に、活動ノードの度数が3である場合、STAR関数は元の構成 要素の複製の1つ(R7と呼ぶ)(その構成要素値のすべてを含む)を、新しい ノード3と新しいノード5の間に挿入する(複製のプラス端部はノード3に接続 されている)。しかしながら、活動ノードの度数が2である場合、STAR関数 は元の構成要素の第2の複製(R7)を新しいノード3とノード4の間に挿入す る(したがって、R6およびR7はノード3および4の間で互いに並列である) 。ノード4および5はR1のマイナス端部に接続している。 第94図はSTAR1分割関数を第5図の抵抗R1に適用した結果を示す。第 5図のノード1がSTAR1に対する活動ノードであり、3度であることに留意 されたい。 単一の5オームの抵抗R1を記述している第5図のネットリストの部分は、以 下の5行からなっている。 R1 402 401 5オーム C2 401 10 C3 401 11 C4 402 12 C5 402 13 STAR1関数は上記を以下のように変更する。 R1 402 3 5オーム R6 3 4 5オーム R7 3 5 5オーム C2 4 10 C3 5 11 C4 2 12 C5 2 13 第5図のノード1が2度である場合、結果は次のようになる。 R1 402 3 5オーム R6 3 4 5オーム R7 3 4 5オーム C2 4 10 C4 2 12 C5 2 13 TRIANGLE関数 6引数のTRIANGLE関数のグループの2つの関数(TRIANGLE0 およびTRIANGLE1)はハイライトされた構成要素の1つで動作して、こ れ(および隣接する1つのノード)を排除し、かつ元のハイライトされた構成要 素の3つのコピー(およびその構成要素値のすべてを含む)、3本の新しい変更 可能ワイヤ、および5つの新しいノードからなる三角形構成を作成する。TRI ANGLE関数の実行後、6つの書込みヘッドが得られる。これらは3つのコピ ーおよび3番の新しいワイヤをポイントする。 TRIANGLE関数はハイライトされた構成要素の「活動」ノードで三角形 構成を挿入する。ハイライトされた構成要素の2つのノードの度数が異なってい る場合、活動ノードは3度のノードである。また、TRIANGLE0関数の場 合、活動ノードはハイライトされた構成要素のプラス端部が接続されているノー ドであるが、TRIANGLE1関数の場合、活動ノードはハイライトされた構 成要素のマイナス端部が接続されているノードである。 活動ノードが3度である場合、TRIANGLE関数は第5図の抵抗R1のノ ード401および402に適用したときに、以下の結果を生じる。 第1に、TRIANGLE関数はハイライトされた構成要素を排除し、活動ノ ードをノード3と名前変更し、ノード3と受動ノードの間に新しい変更可能ワイ ヤZ5を作成する。 第2に、TRIANGLE関数は4つの新しいノード4、5、6および7を作 成する。 第3に、TRIANGLE関数は元の構成要素の複製の1つ(R6と呼ぶ)( その構成要素値のすべてを含む)を、新しいノード3と新しいノード4の間に挿 入し(複製のプラス端部はノード3に接続されている)、新しい変更可能ワイヤ Z9を新しいノード4と新しいノード6の間に挿入する。 第4に、TRIANGLE関数は元の構成要素の第2の複製(R7と呼ぶ)を 、新しいノード3と5の間に挿入し(複製のプラス端部はノード3に接続されて いる)、新しい変更可能ワイヤZ10を新しいノード5と新しいノード7の間に 挿入する。 第5に、TRIANGLE関数は元の構成要素の第3の複製(R8と呼ばれる )を新しいノード4と5の間に挿入する(複製のプラス端部はノード4に接続さ れている)。 第95図は、活動ノード(ノード401)が3度である場合に、第5図の抵抗 R1へTRIANGLE1分割関数を適用した結果を示す。 活動ノードが2度である場合、TRIANGLE関数は第5図の抵抗R1のノ ード401および402に適用したときに、以下の結果を生じる。 第1に、TRIANGLE関数は活動ノードをノード3と名前変更し、ノード 3と受動ノードの間に新しい変更可能ワイヤZ5を作成する。 第2に、TRIANGLE関数は3つの新しいノード4、5および6を作成す る。 第3に、TRIANGLE関数は元の構成要素の複製の1つ(R6と呼ぶ)( その構成要素値のすべてを含む)を、新しいノード3と新しいノード4の間に挿 入し(複製のプラス端部はノード3に接続されている)、新しい変更可能ワイ ヤZ9を新しいノード4と新しいノード6の間に挿入する。 第4に、TRIANGLE関数は元の構成要素の第2の複製(R7と呼ばれる )を新しいノード3と5の間に挿入し(複製のプラス端部はノード3に接続され ている)、新しい変更可能ワイヤZI0を新しいノード5と新しいノード6の間 に挿入する。 第5に、TRIANGLE関数は元の構成要素の第3の複製(R8と呼ばれる )を新しいノード4と5の間に挿入する(複製のプラス端部はノード4に接続さ れている)。 第96図は、活動ノード(ノード401)が2度である場合に、第5図の抵抗 R1へTRIANGLE1分割関数を適用した結果を示す。 CUT関数 0引数のCUT関数により、ハイライトされた構成要素が回路から除去される 。CUT関数により、書込みヘッドが失われ、これによりこの特定の開発パスが 終了する。CUT関数が発生すると、全体的なプログラム・ツリー内の開発パス に沿った開発のみが停止する。第21図はCUT関数を第4図の変更可能ワイヤ に適用した結果を示す。 2引数のVIA、GNDおよびPOS関数 8つの2引数のVIA関数(本明細書では、VIA0、...、VIA7と呼 ぶ)、2引数のGND(「接地」)関数、および2引数のPOS(「プラス基準 電圧源」)関数により、回路の離れた部品を互いに接続することが可能となる。 2引数のVIA関数 8つの2引数のVIA関数(本明細書では、VIA0、...、VIA7と呼 ぶ)の各々は、各々が後続の書き込みヘッドを有している2本のワイヤと、書込 みヘッドを有していない番号がつけられたポート(「バイア」と呼ぶ)からなる 直列構成を作成する。ポートは回路が置かれるウェハの8つの仮想層(0ないし 7の番号がつけられている)の指定された1つに接続されている。回路の1つま たは複数の部品が特定のレイヤに接続している場合には、このような部品はすべ てワイヤがこれらの間に延びているかのようにして、電気的に接続される。回路 の他の部品が特定のレイヤに接続していない場合には、そのレイヤに接続してい る1つのポートが不要となる(また、このポートは回路のネットリストが結果と して作成された場合に、削除される)。VIA関数の実行後、2つの書込みヘッ ドが得られる。これらは2本の新しいワイヤをポイントする。 第22図は第4図から抵抗R1にVIA0関数を適用した結果を示す。この場 合、ノード401と新しいノード2203の間のワイヤZ6、およびノード40 2と新しいノード2203の間のワイヤZ7は、元の構成要素を置き換える。ポ ートM0 2204は新しいノード2303を全体的な回路の他の部品へ接続す る方法を与える。ポートM0 2204は番号0のレイヤに接続される。 2引数のGND関数 2引数のGND(「接地」)関数により、回路の離れた部品を接地することが 可能となる。GND関数は特別な「バイア」関数であり、回路の電気的接地に直 接接続する。接地へのこの直接接続は、回路内の接地への接続を必要とするGN D関数が1つしかない場合でも行われる。GND関数の実行後、2つの書込みヘ ッドが得られる。これらは2本の新しいワイヤをポイントする。 2引数のPOS関数 2引数のPOS(「プラス基準電圧源」)関数により、回路の離れた部品をプ ラス(たとえば、+5.0)の直流電圧電源に接続することが可能となる。PO S関数は特別な「バイア」関数であり、プラス電源に直接接続する。この直接接 続は、電源への接続を必要とするPOS関数が1つしかない場合でも行われる。 POS関数の実行後、2つの書込みヘッドが得られる。これらは2本の新しいワ イヤをポイントする。 3引数のTHVIA関数 8つの3引数のTHVIA関数(THVIA0、...、THVIA7と呼ぶ ) の各々により、回路の離れた部品を互いに接続することが可能となる。THVI A関数はVIA関数と同様であるが、THVIA関数は3つの引数を取る。3本 の新しい変更可能ワイヤが作成され、またTHVIA関数の実行後に3つの書き こみヘッドが得られる。3つの書きこみヘッドは3本の新しいワイヤをポイント する。 第23図は、第4図からTHVIA0関数をワイヤZ0に適用した結果を示す 。THVIA0関数はZ0をノード401と新しいノード2303の間の新しい 変更可能ワイヤZ6、ノード402と新しいノード2303の間の新しい変更可 能ワイヤZ7、新しいノード2203とポートM0 2304の間の新しい変更 可能ワイヤZ8と置き換える。それ故、THVIA0 2304はノード230 3を全体的な回路の他の部品へ潜在的に接続する方法を与える。 3引数のTHGND関数 3引数のTHGND関数により、回路の離れた部品を接地することが可能とな る。THGND関数は特別な「バイア」関数であり、回路の電気的接地に直接接 続する。接地へのこの直接接続は、回路内の接地への接続を必要とするTHGN D関数が1つしかない場合でも行われる。THGND関数の実行後、3つの書込 みヘッドが得られる。これらは3本の新しいワイヤをポイントする。 3引数のTHPOS関数 3引数のTHPOS関数により、回路の離れた部品をプラス(たとえば、+5 .0)の直流電圧電源に接続することが可能となる。THPOS関数は特別な「 バイア」関数であり、プラス電源に直接接続する。この直接接続は、電源への接 続を必要とするTHPOS関数が1つしかない場合でも行われる。THPOS関 数の実行後、3つの書込みヘッドが得られる。これらは3本の新しいワイヤをポ イントする。 NOP関数 1引数のNOP関数はハイライトされた構成要素に何の影響も及ぼさないが、 この関数が全体的なプログラム・ツリーの他の開発パスに関して現れる開発パス における活動を遅らせ、これによって構成プロセスによって生じる全体的な結果 に影響を及ぼす(恐らくは)。NOP関数の実行後、1つの書込みヘッドは元の ハイライトされた構成要素をポイントする。 END関数 0引数のEND関数により、ハイライトされた構成要素が書きこみヘッドを失 い、これによりこの特定の開発パスを終了させる。END関数が発生すると、全 体的なプログラム・ツリー内の開発パスに沿った開発のみが停止する。 他の接続作成関数 上記の接続作成関数は本発明の自動設計システムの汎用性と融通性を示してい る。多くの他の接続作成関数を使用して、回路の特定のクラスまたは回路要素の トポロジ構成を設計する要件に対処することができる。 他の関数 QT関数によってすでに説明したように、構成要素を作成して、ノード(点) を置き換えたり、回路図のエッジ(線)を置き換えることができる。さらに、ノ ードの度数は上記の説明において2または3であるが、他の構成要素作成関数を 、他の接続作成関数と関連させて、定義して、度数がもっと大きいノードに対処 することができる。演算実行関数 構成要素作成関数の演算実行サブツリーは演算実行関数と終端を合成したもの である。評価した場合、演算実行サブツリーは数値構成値となる(解釈後に)浮 動小数点値を返す。 表6は演算実行関数および終端を示す。 表6 演算実行関数および終端 ただし、「R」は−1.000と+1.000の間の浮動小数点ランダム定数を 表す。 実施形態の1つにおいて、乗算および除算(ならびに、指数関数および対数関 数などのその他の関数)は、演算実行サブツリーによって返される浮動小数点値 が対数目盛で解釈されるため、演算実行関数のセットには含まれない。しかしな がら、所望する場合、あるいは特定のアプリケーションで必要とされる場合には 、他の演算実行関数を追加することができる。 演算実行サブツリーの関数は深さ優先順序で実行される(LISPなどのプロ グラミング言語にしたがって)。 ADF0などの自動定義関数およびARG0などのダミー変数(仮パラメータ )については次節で検討する。これらを特定の問題で使用しても、使用しなくて もよく、また演算実行サブツリーで使用しても、使用しなくてもよい。自動定義関数 自動プログラミングおよび自動化設計の問題には、規則性、対称性、均一性、 類似性、パターン、およびモジュラ性などがある。本発明における自動プログラ ミングおよび自動化設計の手法は問題環境に固有な規則性、対称性、均一性、類 似性、パターン、およびモジュラ性を、再使用とパラメータ化とによって活用す る階層機構を組み込んだものである。サブルーチンが通常のコンピュータ・プロ グラム内でこれを行う。 メイン・プログラムと、1つまたは複数の再使用可能で、パラメータ化され、 階層的に呼び出されるサブプログラムとからなる複数パーツ・プログラムをどの ように開発するかを記述することは、当技術分野において周知である。たとえば 、米国特許第5343554号、およびGenetic Programmin g II: Automatic Discover of Reusabl e Programs (Koza、1994年)という文献を参照されたい。 自動定義関数(ADF)は作業実行本体が遺伝的プログラミングの実行中に動 的に発展させられ、作業実行本体が同時に発展する呼出し側メイン・プログラム (サブプログラムを呼び出すための)によって呼び出される関数である(サブル ーチン、サブプログラム、DEFUN、プロシージャ、またはモジュールと呼ば れることもある)。自動定義関数が使用されている場合、ポピュレーションにお けるプログラムは1つ(または、複数)の再使用可能な関数定義ブランチ(すな わち、自動的に定義された関数)の階層を1つ(または、複数)のメイン結果作 成ブランチとともに有している。自動定義関数は1つまたは複数のダミー引数( 仮パラメータ)を有していることができる。通常、自動定義関数はこれらのダミ ー引数のさまざまなインスタンス化で再使用される。実行中に、遺伝的プログラ ミングは全体的なプログラム関数定義ブランチ内にさまざまなサブプログラムを 、結果作成ブランチ内にさまざまなメイン・プログラムを、関数定義ブランチ内 での自動定義関数のダミー引数のさまざまなインスタンス化を、およびブランチ 間でのさまざまな階層参照を発展させる。 自動定義関数が遺伝的プログラミングで使用されている場合、ポピュレーショ ンの初期乱数世代が生成され、したがって個々のプログラムがブランチの特定の アーキテクチャ構成からなる制約構文構造を有する。実施形態の1つにおいて、 クロスオーバを行う場合、親コンピュータ・プログラムの各潜在的クロスオーバ ・ポイントに、ブランチ全体をベースとしてタイプを割り当てるか(ブランチ・ タイピングと呼ぶ)、あるいは潜在的なクロスオーバ・ポイントの下のサブツリ ーの実際の内容に基づいてタイプを割り当てるかする(ポイント・タイピングと 呼ぶ)。クロスオーバを構造を保存する態様(クロージャを与えて)で行って、 子孫の構文的妥当性を確保する。 設計の点で、自動定義関数は、問題環境に固有な規則性、対称性、均一性、類 似性、パターン、およびモジュラ性を、再使用とパラメータ化とによって活用す る方法を与える。それ故、複雑な構造を設計するために遺伝的プログラミングを 実行する際に、自動定義関数を含めることが望ましい。 表7は自動定義関数と関連して使用される潜在的な関数および終端をリストし たものである。自動定義関数の最大値MAXadfと、自動定義関数が有すること のできる引数の最大値MAXargがある。 表7 自動定義関数の潜在的な関数と終端 演算実行サブツリーが自動定義関数を呼び出して、数値計算の結果を再使用で きることに留意されたい。 プログラム・ツリーの実行中に自動定義関数に遭遇した場合、自動定義関数お よびプログラム・ツリー内での関数の実行順序は、自動定義関数全体がプログラ ム・ツリーに挿入されたかのようなものとなる。 自動定義関数は2種類の異なる態様で使用される。第1に、これらを接続作成 関数および構成要素作成関数で構成し、トポロジを作成し、構成要素をトポロジ に挿入するプロセスの一部として呼び出すことができる。第2に、これらを演算 関数で構成し、構成要素寸法決定プロセスの一部として演算実行サブツリーから 呼び出すことができる。 エンブリオニック回路から回路を開発する詳細な例 本節ではエンブリオニック回路から回路を開発するプロセスの例を示す。本節 で使用される個々のプログラム・ツリーは低域フィルタの設計に関する最初の節 で後述する問題を1回実行した世代0からの最良の世代回路である。このプログ ラム・ツリーの第1の結果作成ブランチは25の点(すなわち、関数および終端 )を有しており、以下に示されている。 (C (−0.963(−(−−0.875 −0.113)0.880)) (series (flip end) (series (flip end) (L −0.277 end) end) (L (−−0.640 0.749) (L −0.123 end)))) 第2の結果作成ブランチは5つの点を有しており、以下に示されている。 (flip (nop (L −0.657 end)))) 第24図は番号付きブランチを備えたルート化され、ポイントにラベルのつい たツリーとして、この回路構成プログラムを示す。接続LIST関数2401は 2つの結果作成ブランチを接合する。第1の結果作成ブランチはC関数2402 をルートとしており、第2の結果作成ブランチはFLIP関数2403をルート としている。 第25図は第24図のプログラム・ツリーの最上位の3つの点をこの問題のエ ンブリオニック回路とともに示す。第24図は最初の2つの書込みヘッドも示す 。一方の書込みヘッドは当初C関数2402と関連付けられ、変更可能ワイヤZ 0をポイントしており、他方は当初FLIP関数2403と関連付けられ、変更 可能ワイヤZ1をポイントしている。 プログラム・ツリーを実行すると、ツリーのルートにおける接続LIST関数 2401の下の結果作成ブランチの関数が幅優先順序で実行され、各演算実行サ ブツリー(ポイント2404をルートとする7ポイント・サブツリーなど)が、 構成要素作成関数に遭遇したときに、深さ優先順序で直ちに実行される。それ故 、第24図のC(コンデンサ)関数2402が最初に実行される。この場合、7 ポイント演算実行サブツリー2404が深さ優先方式で全体として直ちに実行さ れて、コンデンサ関数Cが必要とする数値構成要素値を供給する。次いで、幅優 先順序が再開され、FLIP関数2403が実行される。 第26図は第25図のエンブリオニック回路の変更可能ワイヤZ0に作用して 、新しいコンデンサC3を作成するC関数2402を実行した結果を示す。7ポ イントサブツリー (−0.963(−(−−0.875 −0.113)0.880)) (ポイント2404をルートとする)は演算実行サブツリーであり、したがって 、C関数2402後に全体として直ちに実行される。この7ポイント・サブツリ ーは2.605に対して評価され、解釈され、評価されたときに(上述した態様 で)、コンデンサC3の構成要素値として403nFを確立する。C関数240 2の実行後、一方の書き込みヘッドはC3をポイントする。 第24図の全体的なプログラム・ツリーの第2の結果作成ブランチのFLIP 関数2403が、ここで実行される。第27図は変更可能ワイヤZ1(そのプラ ス端部が元はノード2502にあった)に作用して、その極性を変更する(マイ ナス端部がノード2502にあるように)FLIP関数2403を実行した結果 を示す。極性の変更はワイヤ(または、コンデンサ、抵抗、またはインダクタ) に対して電気的な影響を持たないが、極性の変更は多くの構成要素(たとえば、 ダイオード)に影響を及ぼす。いずれにせよ、極性はその後に実行できるある種 の関数(たとえば、SERIES分割)によって生じるトポロジに影響を及ぼす 。FLIP関数の実行後、一方の書き込みヘッドはZ1をポイントする。 プログラム・ツリーの幅優先サーチの実行はここで、第24図のツリーの第3 レベルまで進む。7ポイント演算実行サブツリー2404が全体としてすでに実 行されているため、SERIES関数2405が次に実行される。 第28図はコンデンサC3に作用して、コンデンサC3、新しいノード280 6、変更可能ワイヤZ4、新しいノード2807、および新しいコンデンサC5 (C1と同じ構成要素値403nFを有している)からなる直列構成を作成する SERIES関数2405の実行結果を示す。SERIES関数の実行後、3つ の書込みヘッド(C3、Z4、およびC5をポイントする)、ならびにZ1をポ イントする1つの書き込み静止ヘッドが得られる。 全体的なプログラム・ツリーの第2の結果作成ブランチのNOP(「ノー・オ ペレーション」)関数2406が、ここで実行される。その唯一の影響は第1の 結果作成ブランチに関する、第2の結果作成ブランチにおける以降の関数の実行 のタイミングに対するものである。 実行はここで第24図のプログラム・ツリーの第4レベルへ進む。 第29図はコンデンサC3(そのプラス端部が元はノード2503にあった) に作用して、その極性を変更する(マイナス端部がノード2503にあるように )FLIP関数2409を実行した結果を示す。FLIP関数を実行すると、一 方の書込みヘッドはC3をポイントする(また、書込みヘッドは依然Z4、C5 およびZ1をポイントしている)。 第30図は変更可能ワイヤZ4に作用して、変更可能ワイヤZ4、新しいノー ド3008、変更可能ワイヤZ6、新しいノード3009、およびZ5からなる 直列構成を作成するSERIES関数2410の実行結果を示す。このSERI ES関数の実行後、6つの書込みヘッド(C3、Z4、Z6、C5、C5および Z1をポイントする)が得られる。 第31図はコンデンサC5に作用するL関数2411の実行結果を示す。L関 数はコンデンサC5を新しいインダクタL7に変換する。この3ポイント・サブ ッリー(2419をルートとする)の戻り値 (−−0.640 0.749) は−1.389である。解釈された後、この戻り値は新しいインダクタL7に対 する構成要素値として0.041マイクロヘンリーを確立する。L関数の実行後 も、6つの書込みヘッドが得られる。 全体的なプログラム・ツリーの第2の結果作成ブランチのL関数2412が、 ここで実行される。第32図は変更可能ワイヤZ1に作用して、インダクタL8 を作成する第2の結果作成ブランチからのL関数2412の実行結果を示す。解 釈されると、定数−0.657(2421)はL8に対する構成要素値として0 .220マイクロヘンリーを確立する。このL関数の実行後も、6つの書込みヘ ッドが得られる。 実行はここで第24図のプログラム・ツリーの第5レベルへ渡される。 END関数(515というラベルのつけられている)がここで実行され、これ によりこの特定のパス(第24図にあるツリーのポイント2401から始まり、 ポイント2402、2405および2409を通ってポイント2415まで延び ている)に対する開発プロセスを終了させる。このパスに関連付けられた書込み ヘッドが排除されて、存在している書込みヘッドは5つだけとなる。 FLIP関数2416はワイヤZ4で動作するため、電気的な影響を及ぼさな い。 第33図は変更可能ワイヤZ5に作用して、新しいインダクタL9を作成する L関数2417の実行結果を示す。解釈されると、定数−0.277(2426 )はインダクタL9に対する構成要素値として0.528マイクロヘンリーを確 立する。 END関数2418がここで実行され、これによりZ5に対する開発プロセス を終了させ、この構成要素に関連付けられた書込みヘッドを排除させる。それ故 、存在する書込みヘッドは4つだけとなる。 第34図は既存の0.47マイクロヘンリーのインダクタL7に作用して、代 わりに新しいインダクタL10を作成する第1の結果作成ブランチからのL関数 2420の実行結果を示す。解釈されると、定数−0.123(2430)は新 しいインダクタL10に対する構成要素値として0.753マイクロヘンリーを 確立する。 ポイント2422におけるEND関数がここで実行され、これにより第2の結 果作成ブランチを完了する。 実行がここで第24図のプログラム・ツリーの第6(最下部)のレベルへ進む 。ポイント2425,2427および2431におけるEND関数がここて実行 され、これによりZ4、L9およびL10における書込みヘッドを排除し、回路 の開発全体的プロセスを完了する。残っている書込みヘッドはなくなる。 第35図はすべてのここでは外来のワイヤ(すなわち、Z4およびZ5)なら びにすべてのここでは外来のノード(すなわち、3008および3009)を実 行した後の世代0の最良の回路を示す。 実施形態の1つにおいては、プログラム・ツリーを幅優先方式で横切っている (直ちに実行される演算実行サブツリーを除く)。この横断方法はこのプロセス に関する現在の経験に基づくと、有利なものと思われる。しかしながら、このプ ロセスは深さ優先サーチなどの他の手法を使用して実施することもできる。低域LCフィルタの設計 理想的な低域フィルタは指定された周波数よりも低いすべての周波数を通すが 、すべての高い周波数を停止するものである。理想的な高域フィルタは逆のこと を行う。理想的な帯域フィルタは1つまたは複数の指定された範囲のすべての周 波数を通すとともに、すべての他の周波数を停止する。理想的な停止帯域フィル タは1つまたは複数の指定された範囲のすべての周波数を停止するとともに、す べての他の周波数を通す。実用的なフィルタで理想的な性能を達成するものはな い。 フィルタ設計のスタート・ポイントは通過帯域および停止帯域に対する周波数 範囲をユーザが指定することである。さらに、ユーザは最大通過帯域リプル(す なわち、通過帯域内で許容されるわずかな変動)および最小停止帯域減衰(すな わち、停止帯域で要求される、信号の大きい閉塞度)またはロールオフなどのそ の他の要因を指定することができる。 ユーザがより多くの要件およびより厳格な制約を課すにつれて、フィルタの設 計はますます困難となっている。実用上、ユーザは、たとえば、回路の電力消費 量、回路内の構成要素の数、構成要素のコスト、すべての構成要素が占める表面 積、あるいは温度に対する回路の感度を含む付加的な設計要件を課すことができ る。 振幅が2ボルトのAC入力信号でインダクタおよびコンデンサを使用したフィ ルタを設計することを目標とする、回路設計の問題を考える。回路は内部(電源 )抵抗が1000オームで、1000オームの負荷抵抗で終端している電源によ って駆動されるものとする。フィルタは970ミリボルトと1ボルトの間の電圧 値 で1000ヘルツ未満の通過帯域を有しており、0ボルトと1ミリボルトの間の 電圧値で2000Hz超の停止帯域を有しているものとする。 デシベルは相対電圧の無単位の尺度である。デシベルは特定のプローブ・ポイ ントにおける電圧と基準電圧(本明細書において、これは常に1.0ボルトであ る)の間の比の常用対数を20倍したものと定義される。それ故、上記の要件は 最大0.3デシベルの通過帯域リプルおよび少なくとも60デシベルの停止帯域 減衰に対する要件と書き換えることができる。 実施技術者にはこれらの要件が複雑度5のチェブィシェフ−コウア(Cheb ychev−Cauer)フィルタによって満たされることを認識している。 低域LCフィルタの準備ステップ 回路設計の問題に遺伝的プログラミングを適用する前に、7つの準備ステップ をユーザが行うのが普通である。これらのステップは、(1)展開対象のプログ ラムの終端を特定し、(2)展開対象のプログラムに含まれている原始関数を特 定し、(3)所与のプログラムが当面の問題をどの程度解決するかを評価するた めの適合尺度を作成し、(4)いくつかの制御パラメータ(特に、ポピュレーシ ョン規模および実行すべき世代の最大数)を選択し、(5)終了基準と結果指定 方法とを決定し、(6)全体的なプログラムのアーキテクチャを決定し、(7) 問題に適したエンブリオニック回路を特定することを含んでいる。 以下の検討では、準備ステップ(7)および(6)を検討してから、他のステ ップを検討する。 エンブリオニック回路 低域LCフィルタを設計する問題が電源抵抗と負荷抵抗を備えた1入力1出力 回路を必要としているため、第3図のエンブリオニック回路はこの例示的な問題 に適したものである。 プログラムのアーキテクチャ この例示的な問題には、自動定義関数は使用されない。 エンブリオニック回路が当初2つの書込みヘッド−結果作成ブランチの各々と 関連付けられたもの−を有しているため、各全体的なプログラム・ツリーには2 つの結果作成ブランチが存在する。それ故、ポピュレーションにおける各全体的 なプログラム・ツリーのアーキテクチャは、LIST関数によって接合された2 つの結果作成ブランチからなっている。 関数および終端のセット 終端セットおよび関数セットはこの例示的な問題に対するポピュレーションに おけるプログラム・ツリーの結果作成ブランチの両方に同一のものである。 各ブランチは第2図に示すような拘束構文構造にしたがって作成される。 関数はこの例示的な問題の場合、3つのカテゴリーに分けられる。 (1)エンブリオニック回路から回路のトポロジを作成する接続作成関数。 (2)回路内のワイヤ(およびその他の構成要素)を指定された構成要素に変 換する構成要素作成関数。 (3)一緒になって回路の各構成要素に対する数値を指定する(寸法決定する )演算実行関数および数値終端。 演算実行サブツリーは演算関数とランダム定数とを含んでおり、構成要素の数 値を指定する。構築継続サブツリーは開発プロセスを継続する。この問題で使用 される構成要素(すなわち、インダクタおよびコンデンサ)の各々が1つの数値 構成要素値を取るため、各構成要素作成関数には1つの演算実行サブツリーだけ が関連付けられている。 接続作成関数は1つまたは複数の構築継続サブツリーを有している。しかしな がら、接続作成関数は演算実行サブツリーを有していない。 この例示的な問題の場合、各構築継続サブツリーに対する関数セットFccsは 次の通りである。 Fccs={C,L,SERIES,PSS,FLIP,NOP,GND,VI A0,VIA1,VIA2,VIA3,VIA4,VIA5,VIA6,VIA 7}, これはそれぞれ2、2、3、4、1、1、2、2、2、2、2、2、2、2およ び2個の引数を取る。 各構築継続サブツリーに対する終端セットTccsは次のものからなる。 Tccs={END} 各演算実行サブツリーに対する関数セットFapsは次の通りである。 Faps={+,−} 各々は2つの引数を取る。 各演算実行サブツリーに対する終端セットTapsは次の通りである。 Taps={R} ただし、「R」は−1.000と+1.000の間の浮動小数点ランダム定数を 表す。 適合尺度 エンブリオニック回路、プログラム・アーキテクチャ、関数および終端セット 、ならびに上述の拘束構文構造は任意の1入力1出力LC回路に適用できること を留意されたい。評価プロセス(回路構築プログラム・ツリーのサーチ空間にお ける)を所望のフィルタを構築するプログラムへ送るのは、ユーザが与える適合 尺度である。換言すると、所望の回路構造は適応度から得られる。 第1B図は回路を設計する全体的なプロセスの流れ図である。RUNは現行の 経路数であり、Nは作成される経路の最大数である。変数GENは現在の世代番 号を指す。変数Mはポピュレーション規模である。指標iはポピュレーションに おけるの現行の個体を指す。 第1B図を再度参照すると、本発明の全体的なプロセスは処理論理によって制 御されるいくつかの独立した経路を含んでおり、プロセスは処理ブロック100 2でoに初期化される経路数RUNで開始される。処理論理はハードウェアおよ び/またはソフトウェア、専用論理などを含んでいることができる。各経路は多 くの世代からなっており、世代番号GENは処理ブロック1004において0に 初期化される。 世代0において、第1のステップは「経路に対する初期ポピュレーションを作 成する」(処理ブロック1006)であり、これは個体数Mを作成する(通常は ランダムに)。 処理ブロック1008における「終了基準が実行に対して満たされる」に関す るテストは通常、世代のある最大数Gに達したこと、または何らかの問題固有の 基準を満たすことのいずれかに基づいている。「終了基準が実行に対して満たさ れる」に対するテストが満たされた場合(処理ブロック1008)、次のステッ プは処理ブロック1010における「経路に対して結果を指定する」である(通 常、世代にわたって達成される最良の個体を指定することによって)。次いで、 経路数RUNが処理ブロック1012で増分される。経路数RUNが実行される 最大経路数Nに等しいことという処理ブロック1014におけるテストを満たし た場合、処理は「終了」(処理ブロック1016)で終了する。それ以外の場合 、処理は処理ブロック1004を次に行うことによって他の経路へ進む。 処理論理は次いで、ポピュレーションの個体に対する2つの主反復ステップを 含んでいる世代反復ステップを実行する。これら2つの主反復ステップの第1の もの(処理ブロック1020で始まる)において、ポピュレーションの各個体i の適合が判定される。これら2つの主反復ステップの第2のもの(処理ブロック 140で始まる)において、遺伝操作が行われる。 ポピュレーションにおける個体に対する2つの主反復ステップのうち第1のも のは、ポピュレーションにおける個体の指標iを初期化することから始まる(処 理ブロック1020)。ステップ1021において指標iを、これがポピュレー ション規模Mと等しいか(あるいは、超えているか)どうかについてテストされ る。そうでない場合には、ポピュレーションにおける各個体iが適合していると 判定される。原則として、適応度の判定は暗黙のものであっても、明示のもので あってもよく、また適応度の数値を生じても、生じなくてもよい。この流れ図は 適応度の判定が明示的なものであり、適応度の数値が決定されている場合に基づ いている。遺伝的プログラミングを回路の設計に使用している場合、適応度の測 定は4つのステップからなっている。 (1)個々の回路構築プログラム・ツリーをエンブリオニック回路に適用して 、完全に開発された回路を作成する(処理ブロック1022)。 (2)完全に開発された回路の記述を作成する(処理ステップ1024)。 (3)回路を分析して(実環境において、あるいは記述に基づいて回路のシミ ュレーションを行うことによって)、その挙動を作成する(処理ブロック102 6)。 (4)適応度尺度を挙動に適用して、回路の適合値を作成する(処理ブロック 1028)。 次いで、ポピュレーションにおける個体の指標iを処理ブロック1030で増 分する。指標iがポピュレーション規模Mと等しい(あるいは、これを超えてい る)ことという処理ブロック1021におけるテストを満たす場合には、ポピュ レーションにおける個体に対するこれらの主反復ステップの第1のものが終了し 、処理は処理ブロック1040で継続する。 ポピュレーションにおける個体に対する2つの主反復ステップのうち第2のも のは、ポピュレーションにおける個体の指標iを初期化することから始まる(処 理ブロック1040)。指標iがポピュレーション規模Mに等しいか(あるいは 、これを超えているか)どうかについてテストされる。そうでない場合には、「 遺伝操作を選択する」ステップ(処理ブロック1046)を実行する。 「遺伝操作を選択する」ステップ(処理ブロック1046)は見込みに基づく ものである。繁殖、クロスオーバ、突然変異、ブランチの複製、引数の複製、ブ ランチの削除、引数の削除、ブランチの作成、および引数の作成についての操作 を選択する蓋然性の合計は1である。それ故、9つの選択肢のうちの1つが選択 される。 9つの選択肢の各々は選択ステップから始まる。たとえば、繁殖の遺伝操作の 場合、「選択1個体」ステップが選択ステップである(処理ブロック1058) 。この選択ステップは蓋然的に比較的高い適応度値によってポピュレーションか ら個体を選択するものであり、この選択はほとんどの場合、比較的高い適応度値 を有している個体が比較的低い適応度値を有している個体よりも好ましいという 個体の適応度に実質的に基づくものである。処理ブロック1060におけるクロ スオーバ操作に対する選択ステップは適応度に基づいて2つの個体を選択するこ とを必要としていることに留意されたい。突然変異操作に対する選択ステップ( 処理ブロック1070)および他の6つの選択ステップは、適応度に基づいて1 つ の個体を選択することを必要とする。ポピュレーションにおける同じ個体を各世 代で2回以上選択できることに留意されたい。 9つの選択肢の各々に対して、遺伝操作が行われる。たとえば、繁殖操作を選 択した場合、繁殖操作が行われる(処理ブロック1052)。クロスオーバ操作 を選択した場合、クロスオーバ操作が行われる(処理ブロック1062)。本明 細書で使用されているクロスオーバ操作の場合、単一の子孫が作成されることに 留意されたい。突然変異操作を選択した場合、突然変異操作が行われる(処理ブ ロック1072)。他の6つの操作も同様に処理される。 次いで、「子孫を新しいポピュレーションに挿入する」という共通ステップl 090が、9つの選択肢の各々に対して行われる(処理ブロック1090)。 次いで、ポピュレーションにおける個体の指標iが増分される(処理ブロック 1092)。指標iがポピュレーション規模Mと等しい(あるいは、超えている )という処理ブロック1042におけるテストを満たしていない場合、この第2 の主反復ステップは処理ブロック1046で継続する。 指標iが処理ブロック1042におけるテストを満たしている場合には、ポピ ュレーションにおける個体に対するこれらの主反復ステップの第2のものが終了 する。世代番号GENは処理ブロック1044て増分され、処理は処理ブロック 1008で継続する。 全体的なプロセスにはさまざまなわずかな変更が可能であるということを認識 すべきである。これらの変更の中には、便宜的に使用できるものがある。 簡単にするため、流れ図は実施形態の1つで用いられない、「入れ替え」や「 ビルディング・ブロックの定義」(「カプセル化」とも呼ばれる)などの付加的 な遺伝操作を示していない。 ポピュレーションにおける個別の回路構築プログラム・ツリーの各々に対する 適応度の評価は、その実行時に開始される。この実行はプログラム・ツリーの関 数をきわめて簡単なエンブリオニック回路に適用し、これによってエンブリオニ ック回路を完全に開発された回路へ展開する。この回路を記述したネットリスト を次いで作成する。ネットリストは回路の各構成要素、その構成要素が接続され るノード、その構成要素の値(該当する場合)、および構成要素のモデル(該当 する場合)を特定する。次いで、各回路のシミュレーションを行って、その挙動 を決定する。217000行のSPICEシミュレータを変更して、遺伝的プロ グラミング・システム内のサブモジュールとして実行した。SPICEシミュレ ーションへの入力は分析対象の回路を記述したネットリストと、実行される分析 のタイプおよび作成される出力の性質に関してSPICEに指示するいくつかの コマンドからなっている。SPICEは回路の電気的挙動を記述した表情報を作 成することができる。この表情報を次いで使用して、適応度を測定する。 適応度尺度は時間領域における回路の挙動、周波数領域におけるその挙動、そ の消費電力、構成要素の数、構成要素のコスト、その構成要素が占める表面積、 または温度またはその他の変数に対する感度を含む、回路の計算可能な特性また は特性の組合せを組み込むことができる。フィルタを設計しているのであるから 、周波数領域における回路の挙動に焦点をおく。 この問題に関し、電圧VOUTを第3図の分離されたノード305で調べ、回 路を周波数領域で検討する。SPICEシミュレータには、AC小信号分析を行 い、50段階の周波数(1Hzから100000Hzまで)にわたって選択した 101の周波数値の各々に対する回路の挙動を報告することが要求される。各1 0段階は20の部分に分割される(対数尺を使用して)。 分離ノード305におけるプローブ・ポイントVOUTにおいて回路が発生す る周波数領域における電圧の実際値と、電圧に対するターゲット値との間の絶対 加重偏差の、これら101件の適応度に対する合計によって、適応度を測定する 。適応度の値は小さければ小さいほどよい。ゼロという適応度は理想的なフィル タを表す。 具体的にいうと、標準化された適応度は次のようになる。 ただし、f(i)は適応度の事例iの周波数(ヘルツ)であり、d(x)は周波 数xにおけるターゲット値と観測値との差であり、W(y,x)は周波数xにお ける差yに対する重み付けである。適応度尺度は理想値に負担をかけず、すべて の許容偏差に若干の負担をかけ、許容されないすべての偏差に大きい負担をかけ る。 1Hzから1000Hzまでの30の間隔における61の点の各々に対するプ ロシージャは次の通りである。電圧がこの間隔における1.0ボルトという理想 値に等しい場合、偏差d(f;)は0.0であり、電圧が970ミリボルトと1 000ミリボルトの間である場合、1000ミリボルトからの偏差の絶対値には 1.0という係数で重みがつけられ、電圧が970ミリボルト未満の場合、10 00ミリボルトからの偏差の絶対値には、10.0という係数で重みがつけられ る。この構成は通過帯域における理想電圧が1.0ボルトであり、30ミリボル トの不足は許容でき、通過帯域における970ミリボルト未満の電圧は許容でき ないことを反映している。電圧がこの種のLC回路内で1.0ボルトを超えるこ とはできない。 2000Hzから100000Hzまでの間隔における35の点の各々に対す るプロシージャは次の通りである。電圧が0ミリボルトと1ミリボルトの間であ る場合、0ミリボルトからの偏差の絶対値には、1.0という係数で重みがつけ られる。電圧が1ミリボルト超である場合、0ミリボルトからの偏差の絶対値に は、10.0という係数で重みがつけられる。この構成は停止帯域における理想 電圧が0.0ボルトであり、0ミリボルトを超える1ミリボルトのリプルは許容 でき、停止帯域における1ミリボルト超の電圧は許容できないことを反映してい る。 この例において、これら2つの主帯域における適応度事例の数(61および3 5)は、これら2つの主帯域における異なる数の適応度事例に対して与えられた 重みを等化させる試みを行わなかったことに十分近いものである。1000Hz 超および2000Hz未満の間隔(すなわち、「don’t care」帯域) における5ポイントの各々に対して、偏差はゼロとみなされる。 ヒットは電圧が許容できる、あるいは理想である、あるいは「don’t c are」帯域内にある適応度事例の数と定義される。それ故、ヒット数はこの問 題に対して5という低い値から101という高い値までの範囲である。ユーザが 与える問題固有の適合尺度が展開プロセスを決定することに留意されたい。 初期のランダム・ポピュレーションに対してランダムに作成され、後の世代に おいてクロスオーバ操作および突然変異操作によって作成される風変わりな回路 の中には、SPICEによるシミュレーションが行えないものがある。SPIC Eによるシミュレーションを行えない回路には、ペナルティ値が高い適応度(1 08)を割り当てる。これらの回路は各世代に対する最悪世代回路となる。ペナ ルティ値が高い適応度の実際上の効果は、これらの個体が選択されて、遺伝操作 に関与することがほとんどなく、またこれらがポピュレーションから迅速に消滅 することである。 実施形態の1つにおいて、回路のネットリストが以下の病理学的特性のいずれ かを有している場合、ネットリストはシミュレーションのためにSPICEに沿 って渡されることはなく、その代わりに、高いペナルティ値の適応度が直ちに割 り当てられる。 (1)回路が電圧源を含んでおり、両端が同一のノードに接続されている。 (2)回路がインダクタを含んでおり、両端が同一のノードに接続されている 。 (3)回路がリード線の接続されていない構成要素を含んでいる。 (4)回路がノードを含んでおり、コンデンサを通っていない接地へのDCパ スがない。あるいは (5)回路が一対のノードを有しており、これらの間にパスがない。 実施形態の1つにおいて、以下のタイプのエラーのいずれかがSPICEシミ ュレーション中に生じた場合、シミュレーションは停止され、回路には高いペナ ルティ値の適応度が割り当てられる。 (1)メモリ割振り要求の数が2000の要求という規定の上限を超えている 。 (2)割り振られたメモリの量が300キロバイトという予め指定された上限 を超えている(この限度はシミュレーションに対する時間制限として間接的に作 用する)。 (3)浮動小数点エラー(たとえば、ゼロによる除算、アンダーフロー、オー バフローなど)が、たとえばバイポーラ接合トランジスタのシミュレーション中 に生じ、場合によっては、浮動小数点のオーバフローが生じ、場合によっては、 プローブ出力セットアップ中にゼロによる除算が生じる。 (4)ヌル(無効)ポインタがマトリックス・ルーチンの1つに現れた。ある いは (5)これまで割り振られていなかったメモリのブロックを解除する試みがな された。 制御パラメータ この例示的な問題の場合、ポピュレーション規模Mはほとんどの経路について 320000であった(ただし、若干の経路については40000であった)。 各世代における遺伝操作の割合は、クロスオーバが89%、繁殖が10%、突然 変異が1%であった。アーキテクチャ変更操作はこの例示的な問題では使用され なかった。200ポイントという最大サイズが全体的なプログラムの各々におけ る2つの結果作成ブランチの各々に対して確立された。 最初のランダム・ポピュレーションの作成時に関数をランダムに選択する際に 、C、L、SERIES、PSS、FLIP、NOP、各GNDの関数の各々に は、8という相対重みが割り当てられ、8つのVIA関数の各々には1という相 対重みが割り当てられた。 遺伝的プログラミングの経路を制御する他のパラメータはKoza1994年 (付録D)で指定されたデフォルト値であった。 終了基準および結果の指定 この例において、個々のスコアリングの101のヒットを展開できるかどうか を予め判断することは困難である。さらに、ヒットのこの最大値が達成できるも のである場合、数種類の解決策を並列コンピュータ・システムの各種の処理ノー ドから得ることができる。問題がゆっくり実行されるため、世代の最大数Gは大 きい数にセットされて、開発の可能性を高める。 並列コンピュータ・システム プロセスの時間のかかる適応度の測定が非結合性であるから、本発明の実施に 並列処理が有利である(ただし、必須というものではない)。並列化をほとんど 100%の効率で、本発明のプロセスが使用することができる。 実施形態の1つにおいて、処理論理はトロイダル・メッシュに配列された64 個のPowerPC601 80MHzプロセッサ(各々が付随するINMOS トランスピュータを備えている)からなり、ホストPCがPentium(登録 商標)タイプ・コンピュータである中粒度並列パリスティック・コンピュータ・ システム(medium−grained parallel Paryste c computer system)上で経路を実行する。PowerPCプ ロセッサは、各PowerPCプロセッサと関連付けられているINMOSトラ ンスピュータによって通信を行う。いわゆる分散遺伝的アルゴリズムすなわち並 列化のアイランド・モデルを使用する。すなわち、サブポピュレーション(本明 細書ではデメスと呼ぶ)をシステムの処理ノードに配置する。ポピュレーション 規模はD=64デメスの各々においてQ=5000であり、したがって総ポピュ レーション規模Mは320000となる。世代0の最初のランダム・サブポピュ レーションが各処理ノードにおいて局部的に作成される。世代は各ノードにおい て非同期的に実行される。遺伝操作を各ノードにおいて局部的に実行した後、各 々がB=2%(システムの実施形態の1つで使用される移行率)のノードのサブ ポピュレーション(適応度に基づいて選択される)からなるエミグラントの4つ のボートロードが4つのトロイダルに隣接した処理ノードの各々に送られる。イ ミグラントを各宛先処理ノードへ同化させる前に、そのノードがそのイミグラン トを隣のノードへ送る。 並列遺伝的プログラミングの実装の1つとして使用される物理的システムはP c pentiumプロセッサ・タイプのコンピュータをホストとして使用し、 また処理ノードのネットワークを使用している。第36図はシステムの各種の要 素を示す。これらの要素は次のものからなる全体的なシステムに配列されている 。 (1)キーボード3602、ビデオ表示モニタ3603、および大型ディスク ・メモリ3604からなるホスト・コンピュータ。 (2)中央スーパバイザ・プロセス(ボス・プロセス)を含んでいるプロセッ サ3605。 (3)各々がモニタ・プロセス、ブリーダ・プロセス、エクスポータ・プロセ ス、およびインポータ・プロセスを実行する、64個のプロセッサ3606の並 列ネットワーク。 PCコンピュータ3601はホストであり、全体的なシステムのファイル・サ ーバとして働く。「ボス・ノード」3605は遺伝的プログラミングを実行する ための中央スーパバイザ・プロセスである。 64の処理ノードはトロイダル・ネットワークに配列されており、64の処理 ノードのうち62はネットワーク内の4つの隣のノード(東西南北方向の)に物 理的に接続されている。ネットワークの64のノードのうち2つは、これらがボ ス・ノード3605とたった3つの他の処理ノードとに物理的に接続されている 点で例外的なものである。ボス・ノード3605はネットワークの2つの処理ノ ードのみと物理的にリンクされている。異なる処理ノードにおけるプロセス間の 通信は、一方向、2点間非バッファ同期チャネルによって行われる。 処理ノードはチャネルによって接続された相互通信プロセスを実行する。ホス ト3601は2つのプロセスを有している。ホスト3601上の第1のプロセス はキーボード3602からの入力を受け取り、経路を制御するパラメータを含ん でいる入力ファイル3609を読み取り、2つの出力ファイル、すなわち出力フ ァイル3604とビデオ・バッファ(VB)ファイルを書き込み、ボス3605 と通信を行う。ホスト・コンピュータ上の第2のプロセスはモニタ・プロセスで ある。図中の枠はホスト・コンピュータ(PC Pentiumプロセッサ・タ イプのマシン)、オプションのデバッガ・ノード3607(INMOSデバッガ を収納するのに使用されるTRAM)、ボス・ノード3605、および処理ノー ドのネットワーク(メッシュノードとも呼ばれる)を含む各種のコンピュータを 指す。簡単にするため、第36図は9つのノードのネットワークのみを示してい る(64のノード全部ではなく)。楕円形は各経路の1つの入力ファイル(経路 を制御するためのパラメータを含んでいる)および2つの出力ファイル(経路の 中間および最終結果を含んでいるものと、本明細書ではVBプロセス3610と 呼ばれるモニタ・プロセスが必要とする要約情報を含んでいるもの)を含む各種 のファイル(全部がホスト・コンピュータ上にある)を指す。丸みのついた枠は キーボードおよびビデオ表示モニタを含むホスト・コンピュータの入出力装置を 指す。ひし形はホスト・コンピュータのビデオ表示モニタ上に経路に関する情報 を表示するモニタ・プロセスを指す。太い連続線はシステムの各種の要素の間の 物理的リンクを示すために使用されている。太い破線はボス・ノード3605と 処理ノードとの間の仮想通信の線を示す。細い連続線は処理ノードの各々をその 4つの隣のノードと接続する仮想通信の線を示す。 デバッガ用のオプションのトランスピュータは1つのプロセス、すなわちIN MOSデバッガ・プロセスだけを実行する。ボスのプロセッサは1つのプロセス 、すなわちボスだけを実行する。 トロイダル・ネットワーク内の64個のプロセッサの各々は、以下の4つのプ ロセスを同時に実行する。 (1)インポータ (2)エクスポータ (3)ブリーダ (4)モニタ 第37図は64個のプロセッサの各々におけるこれら4つのプロセスを示す。 処理ノードの各々における主プロセスはブリーダ・プロセス3701である。ブ リーダ・プロセス3701は遺伝的プログラミングにおけるコンピュテーション を行い、3つの他のプロセスはボスおよび4つの隣のノードとの通信を容易とす る。具体的にいうと、他の3つのプロセスは非同期通信を可能とし、デッドロッ クを回避する役割を果たす。 ボス・プロセスはホスト・プロセスとの通信、ネットワーク内のプロセッサの 各々への初期開始メッセージの送信、各世代の終りに各プロセッサから送られて くる情報の作表、ホスト上のモニタ・プロセスへの情報の送信、およびエラー状 態の取扱いを取扱う。 遺伝的プログラミングの実行の開始時に、ボス・プロセスは各種のデータ構造 を初期化し、適応度事例のセットを機能的に、あるいはホスト上のファイルから 情報を取得することによって作成し、各プロセッサに対する異なるランダム・シ ードを作成し、各プロセッサをピング(ping)して、準備ができていることを確 認し、遺伝的プログラミングを制御するホスト上のファイルから一連のパラメー タを読み込む。次いで、ボスはスタートアップ・メッセージをモニタ・プロセス 3702などの各モニタ・プロセスへ送る(このプロセスは次いでこれをブリー ダ・プロセス3701などのブリーダ・プロセスへ送る)。このメッセージは次 のものを含んでいる。 ・ 処理ノードで作成すべきサブポピュレーションの規模 ・ 生成方法および初期ランダム個体の最大サイズ(ならびにその各関数定義 ブランチおよび結果作成ブランチ)を含む初期ランダム・サブポピュレーション をその処理ノードで作成するための制御パラメータ ・ その問題に対するランダム定数のネットワーク全体にわたる共通テーブル (存在している場合) ・ 各世代に対して実行される各遺伝操作(たとえば、繁殖、クロスオーバな ど)の数を指定する制御パラメータ ・ ランダマイザ用のノード固有のシード ・ その問題に対する実際の適応度事例 ・ プリントされた固体の数(および、存在している場合には、プリントされ た個体そのもの) スタートアップ・メッセージの送信後、ボスはループに入り、エラー状態が生 じるか、解決策が見つかるか、すべてのプロセッサがパラメータ・ファイルに指 定されたいくつかの世代を破壊するか、完成するかするまで、各モニタが送信す る各種のメッセージを処理する。 各処理ノードのモニタ・プロセスはボス・ノードのボス・プロセス、ならびに 処理ノードのブリーダ・プロセス両方からのメッセージを常に待っている。ボス からスタートアップ・メッセージを受け取ると、モニタ・プロセスはこのメッセ ージをそのノード上のブリーダ・プロセスへ渡す。モニタ・プロセスはそのノー ドのブリーダ・プロセスからの次のメッセージもボスへ渡す。 (1)エンドオブジェネレーション・メッセージ。エンドオブジェネレーショ ン・メッセージは処理ノード上の現在のサブポピュレーションに対するベストオ ブジェネレーション個体と、適応度およびヒット数などのその個体に関する統計 値とを含んでいる。このメッセージは処理ノードのワーストオブジェネレーショ ン個体に対する適応度(およびヒット)、そのノードにおけるサブポピュレーシ ョンに対する平均適応度(およびヒット)、サブポピュレーションの適応度(お よびヒット)の分散も含んでいる。 (2)ユーレカ・メッセージ。ユーレカ・メッセージは問題の成功基準を満た しており、作成されたばかりのベストオブラン個体およびこれに関する各種の統 計値を含んでいるサブポピュレーションに、処理ノードが個体を作成したばかり であることを通知する。 (3)トレース・メッセージ。トレース・メッセージはブリーダ・プロセスが そのコード内の何らかのマイルストーン(たとえば、そのスタートアップ・メッ セージの受取り、そのノードに対する初期ランダム・サブポピュレーションの作 成の完了)に達したことを通知する。 (4)エラー・メッセージ。エラー・メッセージはブリーダ・プロセスが何ら かの予測可能なエラー状態に遭遇したことを通知する。 処理ノードのブリーダ・プロセスはスタートアップ・メッセージを受け取った 後、そのノードに対する個体の初期ランダム・サブポピュレーションを作成する 。次いで、主世代ループにおいて、処理ノードのブリーダ・プロセスは次のステ ップを反復して行う。 (1)サブポピュレーションのすべての個体の適応度を評価する。 (2)エミグラントになる少数の個体(世代0のものを除く)を適応度に基づ いて蓋然的に選択し、これをエクスポータ・プロセス内のバッファへ送る。 (3)インポータ・プロセスのバッファで現在待機中のイミグラント(世代0 のものを除く)を同化させる。個体の適応度がその個体に関連付けられたデータ 構造の一部であり、イミグラントの適応度をそれがその宛先に到着した際に再計 算する必要がないことに留意されたい。 (4)サブポピュレーションに対してエンドオブジェネレーション・レポート を作成する。 (5)サブポピュレーションに遺伝操作を行う。 ブリーダ・プロセスは問題の成功属性を満たす1つの個体が作成されるまで、 あるいはボス・プロセスによって停止されるまで実行される。 遺伝的プログラミングにおける個体を評価するのに必要なコンピュータ時間の 長さは通常、小さいサブポピュレーションの間でかなり変動する。特定のサブポ ピュレーションに時間のかかるプログラムが1つだけ、あるいは若干存在してい ると、1つの世代を実行するのに必要なコンピュータ時間の長さが大きい影響を 受ける。各種の処理ノードにおけるアルゴリズムの活動を同期させようとすると 、すべての処理ノードの速度を最も遅いものの速度まで下げることが必要となる 。したがって、各処理ノードは他のすべての処理ノードと非同期で動作する。わ ずかな世代の後、システムの各種の処理ノードは通常異なる世代で動作するよう になる。 この速度の変動は、個々のプログラムの異なるサイズ、プログラムに高速およ び低速の原始関数が混在していること、最も重要なのは、全体的なプログラムの 関数定義ブランチの数、性質および内容を含むさまざまな要因によって生じる。 自動定義関数を呼び出すたびに、その自動定義関数の本体を実行することが必要 となり、したがって、実行時の全体的なプログラムの有効サイズが全体的なプロ グラムに実際に現れるポイント(すなわち、関数および終端)の可視数よりもか なり大きくなる。さらに、1つの自動定義関数が階層的に他のものを参照できる 場合、プログラムの有効サイズ(および、実行時間)は全体的なプログラムに実 際に現れるポイントの可視数の指数関数となる。さらに、多くの時間ステップ、 多くの別々の実験、あるいは多くの蓋然的シナリオに関する挙動のシミュレーシ ョンを含んでいる問題の場合、プログラムの中には他のものよりもかなり前に、 あるいは後にシミュレーションを完了するものがある。 近傍のプロセッサにおける世代についての所望の非同時性は、近隣のプロセス が世代を完了するのをブリーダ自体が待つことを必要としない態様で、マイグレ ートするプログラムのエクスポートまたはインポートが行われることを必要とす る。ブリーダ3701がコンピューティング時間をほとんど妨害しないようにす るために、エクスポータ・プロセス3704とインポータ・プロセス3703が 通信を取り扱う。モニタ・プロセスは同じような態様で、ボス・プロセスとの通 信に作用する。さらに、デッドロックが生じないようにするには、複数のプロセ スを使用することが重要である。 エクスポータ・プロセス3704は、各世代(世代0を除く)に対するブリー ダの主世代ループの一部としてその処理ノードのブリーダ・プロセス3701と 周期的に対話する。その場合、ブリーダ3701は個々のプログラム・ツリーの 4つのボードロード(グループ)をポピュレーション(すなわち、エミグラント )からエクスポータ・プロセス3704のバッファへ送る。エクスポータ・プロ セス3704は次いで、エミグラントのボートロードの1つをネットワークの4 つの近隣処理ノードの各々のインポータ・プロセス3703へ送る。 インポータ3703の目的は、ブリーダ3701がエミグラントの着信ボート ロードをサブポピュレーションに組み込めるようになるまで、これらのボートロ ードを格納することである。イミグラントのボートロードが、インポータ・プロ セス3703を4つの近隣エクスポータ・プロセスへ接続している4つのチャネ ルのいずれか1つを介して到着した場合、インポータ3703はそのチャネルか らのイミグラントを消費し、これらのイミグラントを、そのチャネルに関連付け られたバッファに入れる(しばしば、以前に到着しているが、まだ同化されてい ない、そのバッファ内のイミグラントを上書きして)。ブリーダ・プロセス37 01はイミグラントを同化させられるようになった場合、インポータ3703の バッファの内容を呼び出す。4つのバッファ全部がいっぱいである場合、イミグ ラントの4つのボ−トロードは、ブリーダ・プロセス3701がそのノードのエ クスポータ・プロセス3704へ送ったばかりのエミグラントを置き換える。4 つよりも少ないバッファがいっぱいの場合には、新しいイミグラントが送られた ばかりのエミグラントをできるだけ多く置き換える。 この例示的な問題の経路の中には、トロイダル・メッシュ構成の4個のPow erPC601 80MHzプロセッサからなり、ホストPCがPentium タイプ・コンピュータである粗粒度並列パリスティック・コンピュータ・システ ムで動作するものがあった。ポピュレーション規模はD=4デメスの各々におい てQ=10000であり、したがって総ポピュレーション規模Mは40000と なる。 低域LCフィルタに対する結果 低域LCフィルタを設計する問題に関し遺伝的プログラミングを数回実行した 結果は、本発明の自動設計プロセスの背後にある原理を説明するものである。 第1回目の実行についての説明 この例示的な問題に対する遺伝的プログラミングの実行は、上述の関数および 終端で構成され、上述の拘束構文構造にしたがって構成された320000のプ ログラム・ツリー(各々が2つの結果作成ブランチからなる)の初期ポピュレー ションをランダムに作成することから始まる。 ポピュレーションにおける320000のプログラム・ツリーの各々に関して 、回路構築プログラム・ツリー内の一連の関数をこの問題に対するエンブリオニ ック回路(第3図)に適用して、回路を作成する。得られる回路のネットリスト を次いで決定する。ネットリストはSPICEコマンドの適切なセットの内部で 折り返され、SPICEの改変されたバージョンを使用して回路のシミュレーシ ョンが行われる。 遺伝的プログラミングの実行に関する初期ランダム・ポピュレーションは問題 のサーチ空間のブラインド・ランダム・サーチである。したがって、これは以降 の世代の結果を比較するための基準線を与える。 世代0からの最悪の個別回路構築プログラム・ツリーは、SPICEシミュレ ータがこれらのシミュレーションを行えないほど病的な回路を作り出す。これら の回路には高いペナルティ値(すなわち、108)の適応度が割り当てられる。 世代0からの最悪のシミュレーション可能な個体の適応度は892.0である 。個々のプログラム・ツリーはその第1の結果生成ブランチの11点を、また第 2の結果生成ブランチの14点を有している。この回路構築プログラム・ツリー にしたがってエンブリオニック回路を開発した場合に得られる回路は、インダク タをまったく有していない。この回路で生じるヒットの数は5つだけに過ぎない (101の適応度事例のうちの5つの「don’t care」ポイントを表す )。 推定フィルタの挙動特性は周波数領域の挙動によって最もよく測定される。この 場合、回路の周波数応答は低域フィルタのものと類似していない。 しかしながら、ランダムに作成した回路の間でも、他よりもよいものがある。 世代0(シミュレーション可能な個体からの)の25パーセンタイルの適応度 による回路の適応度は610.1であり、ヒットのスコアは34(101のうち の)である。インダクタがまったくない以前の回路とは異なり、この回路は1つ のインダクタと1つのコンデンサを有している。 世代0からの中位(50パーセンタイル)回路の適応度は610.0であり、 ヒットのスコアは40(101のうち)である。この回路の出力プローブ・ポイ ントVOUTは、電圧源VSOURCEから電力をまったく受け取らない。した がって、回路はすべての周波数に対して0ボルトの出力を発生する。周波数領域 における世代0の中位回路の挙動は、回路がすべての周波数を同様に取り扱うた め、フィルタのものではない。初期ランダム世代のこの中位回路は、アナログ電 気フィルタ回路の動作特性から除去される。 世代0からの75パーセンタイルの適応度の回路の適応度は401.0であり 、ヒットのスコアは5である。周波数領域におけるこの75パーセンタイル回路 の挙動は、これがすべての周波数を同様に取り扱うため、フィルタのものではな い。しかしながら、この回路はその電圧の一定値(約0.8ボルト)が通過帯域 (1Hzないし1000Hz)の若干多くのポイントに関して、世代0の中位個 体が発生する0ボルトという一定値よりも1ボルトに近いため、世代0の中位個 体よりも良好な適応度値を達成する。換言すると、この例示的な問題に対して選 択された適応基準を与えると、この個体は中位回路よりも若干良好である。 世代0からの320000の回路のうち最良の回路の適応度は58.71(上 述した重み付けボルトの尺度で)であり、ヒットのスコアは51である。この個 々のプログラム・ツリーについては第25図ないし第35図で詳細に説明した。 1Hzと100Hzの間の間隔における周波数領域のこの回路の挙動は、必要 とされる1ボルトに極めて近いものである(この個体が示す51ヒットのほとん どに対して)。しかしながら、100Hzと1000Hzの間で発生する電圧は 、設計仕様書で要求されている970ミリボルトという最小値よりもかなり低い も のである(実際には、1000Hzに接近した場合、数百ミリボルトだけ)。さ らに、2000Hz超で発生する電圧は、ほとんどの場合、設計仕様書で要求さ れている1ミリボルトという最小値よりもかなり高いものである(ほとんどの場 合、数百ミリボルト)。しかしながら、世代0からのこの非適合回路の挙動は、 電圧が最初の20の周波数に対して1ボルトに近く、また電圧が高い周波数にお ける若干数のサンプル・ポイントに対してゼロに近くて、低域フィルタのものと 若干類似している。 世代1(および、その経路の以降の各世代)が、適応度に基づいて以前の世代 におけるポピュレーションから選択された個体(あるいは、クロスオーバの場合 には個体の対)に繁殖、クロスオーバ、および突然変異を行うことによって、先 行する世代におけるポピュレーションから作成される。 世代1における最良の個別プログラムの適応度は58.59であり(すなわち 、世代0の58.71よりも若干良好である)、ヒットのスコアは52である( 世代0よりも高い)。 経路が世代から世代へ進むと、ベストオブジェネレーション個体の適応度は向 上する傾向がある。たとえば、適応度の新しいペース設定値(すなわち、それま でに報告されたどのベストオブジェネレーション適応度値よりも良好な、64の プロセッサの1つから報告されたベストオブジェネレーション適応度値)が、世 代2、3、4、5、6、7、9および13で報告された。具体的にいうと、これ らの世代のベストオブジェネレーション個体に対する適応度のこれらのペース設 定値は、それぞれ、58.56,57.51,57.45,48.51,22. 51,21.58,5.75および5.52である。ポピュレーションにおける ベストオブジェネレーション個体に対するヒット数は、世代5では56、世代1 3では86に達する。ベストオブジェネレーション23の適応度は0.37であ り、ヒットのスコアは99である。 この問題に対する世代0のプログラムの72%は、SPICEではシミュレー ションできない回路を作り出す。シミュレーション不能なプログラムは各世代に 対してワーストオブジェネレーション・プログラムであり、高いペナルティ値の 適応度を受け取る(108)。しかしながら、シミュレーション不能プログラム の割合は世代1では31%に、世代2では16%に、世代3では15%に、世代 10では7%に低下する。換言すると、ダーウィン選択およびクロスオーバ操作 によって作成される子孫の大部分はほんの数世代後にシミュレーション可能とな る。 遺伝的プログラミングを使用して電子回路を展開することを試みるにあたり、 主要な限界的問題の1つはこの極めて発現性の高いサーチ空間における世代0の ランダムに作成された回路の有効数がシミュレーション可能であるかどうかであ る。第2の問題はクロスオーバ操作が有効な数のシミュレーション可能な回路を 作り出すかどうかである。これらの問題はいずれもこの問題に関する遺伝的プロ グラミングによって実現されなかった。後続世代のポピュレーションを、親がク ロスオーバ操作によりシミュレーション可能な子孫を生み出すことのできるサー チ空間の部分へ迅速に送るのに、ダーウィン選択が極めて有効であることは明ら かである。 この観察は遺伝的プログラミングの経路の中間世代のポピュレーションにおけ る個体(および、これらから取り出したランダムなサブツリー)が、同じ経路の 世代0のランダムに作成されたポピュレーションにおける個体(および、これら のランダムに取り出したサブツリー)と異なっているという原理を裏付けるもの である。すなわち、遺伝的プログラミングの経路の中間世代からのクロスオーバ 断片は、突然変異操作によって得られるランダムに成長したサブツリーと極めて 異なっている。この重要な問題に関して、ポピュレーションが遺伝的アルゴリズ ムにおいて重要な役割を果たす−すなわち、サーチを迅速に進めるための有用な 断片のリザーバを与える役割を果たすことは、実験的に実証されている。 遺伝的アルゴリズムにおいて、ポピュレーション全体は世代間で一般に改善さ れる。ポピュレーション全体での適応度における世代間の改善は、世代ごとのポ ピュレーションの平均適応度を検証することによって明らかとなる。世代1の3 20000の個体のポピュレーションの平均適応度は3240415である(世 代0では7232192である)。すなわち、ポピュレーション全体は世代0か ら世代1へと向上する。この向上の一部は適応度のペナルティ値が高い世代1に おけるポピュレーションにおける少ない数の個体を反映している。ポピュレーシ ョン全体としての平均適応度は世代5では1328221に、世代13では92 4046に達する(このこともポピュレーションの多くの少数の個体が適応度の 高いペナルティ値を受け取ることを示している)。ポピュレーション全体として の平均適応度は世代0では1054に、世代2では443に、世代5では213 に、世代10では58.2に、世代20では38.0に、世代30では16.5 に達する。発展プロセスはそれ故、世代から世代へ継続する。 世代32の最良の個別プログラム・ツリーの点は306、適応度は0.007 81、ヒットのスコアは101である。すなわち、世代32にまでに、すべての 101個のサンプル・ポイントはこの例示的な問題に対する設計要件に適合する ことになる。偏差の平均値はサンプル・ポイントあたり約0.08ミリボルトと なる。 第38図は世代32の最良の回路を示す。この回路はさまざまな反復値の各種 のインダクタおよびコンデンサからなる7段のラダーである。このラダー構造は バッタワースまたはチェブィシェフ・フィルタのトポロジであるが、この回路は バッタワースまたはチェブィシェフ・フィルタに関連付けられる正確な数値の構 成要素を有していない。 最初の100%適合した個体の発生後に、遺伝的プログラミングの実行を継続 した場合、他の100%適合した個体がしばしば発生する。これらの付加的な解 決策は大幅に異なるトポロジ、ならびに異なる大きさをしばしば有している。第 2に、実行を継続すると、適応度のより良好な値に対する探索が続けられ、さら に適合した(100%適合した)個体がしばしば作成される。デメスを備えた並 列コンピューティング・システムを使用した場合、同じ経路から得られた解決策 の間に極めて顕著な相違がしばしばある(デメスのない直列コンピュータ装備と は対照的なものである)。 この同じ経路の世代76からの最良の個体は、世代32で見られる最初の完全 に適合した個体のものよりも1桁ほど良好な適応度(0.000995)を有し ている。第39図は世代76からのベストオブラン回路を示す。この回路は17 の0.203ヘンリーのインダクタと17の201nFのコンデンサかなるラダ ーを有している。また、4つの異なる値のインダクタとコンデンサを、ラダーの 先頭と末尾に有している。 ヒットのスコアが101のいくつかの他の回路がこの経路から得られた。すべ ての回路はラダー構造を用いていた(異なる数の段と異なる構成要素値を備えて いる)。 したがって、本発明により、ユーザの設計目標を満たす有用な電子回路を自動 的に作成することが可能となる。 経路2からの「ブリッジT」回路 遺伝的プログラミングは少なくとも4個所に蓋然的ステップ、すなわち世代0 の初期ポピュレーションを作成し、各操作が行われるポピュレーションから個体 を選択し、実行する特定の操作を選択し、遺伝操作が行われる、選択された個体 内でポイント(たとえば、クロスオーバ・ポイント)を選択するステップを含ん でいる。それ故、遺伝的プログラミングの異なる経路は異なる結果を生じる。 第40図はこの問題における遺伝的プログラミングの他の経路の世代64から の完全に適合したベストオブラン回路を示す。この回路(0.04224という 適応度を有する)において、インダクタL14はコンデンサC3およびC15、 ならびにインダクタL11とともに、認識可能な「ブリッジT」サブ構造を形成 する。もちろん、並列コンデンサ(C18とC33の対、ならびに3つ1組のC 24、C21およびC12)を組み合せることができる。この「ブリッジT」回 路はトポロジが「ラダー」回路と異なっている。 他に展開された完全に適合した回路は遺伝的プログラミングから得ることので きる各種さまざまな結果を示している。 第41図は適応度が0.03201の、この問題における遺伝的プログラミン グの経路3の世代58からの他の完全に適合したベストオブラン回路を示す。こ の回路は組み合せることのできるさまざまな並列コンデンサと直列インダクタを 有しており、またその右半分はラダー構造を有しているが、残りの左半分は上述 のラダー回路と大幅に異なっている。 コンデンサC29をバイパスすることは遺伝的に発展した構造にしばしば現れ る異形の例である。多くのこのような異形はもちろん、標準的な手動または自動 編集および簡素化方法によって除去することができる。 第42図は適応度が0.00114の、この問題における遺伝的プログラミン グの経路4の世代212からの他の完全に適合した回路を示す。この場合も、並 列コンデンサおよび直列インダクタを組み合せた後であっても、この回路のトポ ロジは上述のものと異なっている。 第43図は適応度が0.06507の、この問題における遺伝的プログラミン グの経路5の世代53からの他の完全に適合した回路を示す。この回路の並列コ ンデンサと直列インダクタを組み合せた場合、この回路の右半分はラダー構造を 有している。自動定義関数を使用した低域LCフィルタの設計 自動定義関数(ADF)はコンピュータ・プログラムの部品を再使用する機構 を与える。本節において、目標は自動定義関数を使用するとともに、上述したも のと同じ設計特性を満たす低域フィルタを設計することである。本節において、 アーキテクチャ構成はユーザによって予め指定されることとなる(すなわち、自 動定義関数を作成し、変更し、削除するアーキテクチャ変更操作は使用されない )。 自動定義関数(ADF)を使用した低域LCフィルタの準備ステップ エンブリオニック回路 2つの書込みヘッドを備えた1入力1出力回路に対する、第25図のエンブリ オニック回路は、この問題にも適したものである。 プログラムのアーキテクチャ エンブリオニック回路が当初2つの書込みヘッド−結果生成ブランチの各々と 関連付けられたもの−を有しているため、各プログラム・ツリー−には2つの結 果生成ブランチ(RPB0およびRPB1と呼ばれる)が存在する。 4つの0引数の自動定義関数(ADF0、ADF1、ADF2、ADF3と呼 ぶ)が各プログラム・ツリーに含まれている。自動定義関数の間には階層的参照 はない。それ故、各プログラム・ツリーには4つの関数定義ブランチが存在する 。希望する場合に、任意の数の自動定義関数を使用することができ、また任意の 数のこれらを階層的に互いに参照することができることに留意されたい。 したがって、ポピュレーションにおける全体的な各プログラム・ツリーのアー キテクチャはLIST関数で接合された全部で6つのブランチがある(すなわち 、4つの関数定義ブランチと2つの結果生成ブランチ)。第44図はこの6ブラ ンチの全体的なアーキテクチャ構造を示す。 関数および終端のセット ポピュレーションにおける各プログラム・ツリーの4つの関数定義ブランチ全 部および両方の結果生成ブランチは、この例示的な問題と同じ終端セットを用い ている。また、4つの関数定義ブランチはすべてこの問題と同じ共通関数セット を用いている。結果生成ブランチは両方とも共通関数セットを用いており、これ らの共通関数セットは、これが4つの自動定義関数を含んでいる点だけで、4つ の関数定義ブランチと異なっている。各ブランチは拘束構文構造にしたがって作 成される。 関数はこの例示的な問題の場合、4つのカテゴリーに分けられる。 (1)エンブリオニック回路から回路のトポロジを作成する接続作成関数。 (2)回路内のワイヤ(およびその他の構成要素)を指定された構成要素に変 換する構成要素作成関数。 (3)一緒になって回路の各構成要素に対する数値を指定する(寸法決定する )演算実行関数および数値終端。 (4)その数とアリティがユーザにより予め指定される自動定義関数(サブル ーチン)。 自動定義関数は引数を取らず、また階層的に互いを参照することがない。 各構築継続サブツリーに対する関数セットFccsは次の通りである。 Fccs={ADF0,ADF1,ADF2,ADF3,C,L,SERIES ,PSS,FLIP,NOP,THGND,THVIA0,THVIA1,TH VIA2,THVIA3,THVIA4,THVIA5,THVIA6,THV I A7}. 最初の10の関数はそれぞれ、0、0、0、0、2、2、3,4,1,1,3お よび0個の引数を取る。8つのTHVIA関数の各々は3つの引数を取る。 各構築継続サブツリーに対する終端セットTccsは次の通りである。 Tccs={END,CUT}. 各演算実行サブツリーに対する関数セットFapsは次の通りである。 Faps={+,−} 各々は2つの引数を取る。 各演算実行サブツリーに対する終端セットTapsは次の通りである。 Taps={R} ただし、Rは−1.000と+1.000の間の浮動小数点ランダム定数を表す 。 適応基準 適応基準は上述のLC低域フィルタの設計問題のものと同じである。 パラメータ 制御パラメータは次のことを除き、上述のLC低域フィルタの設計問題のもの と同じである。 (1)300ポイントという最大サイズが全体的なプログラムの各々における 2つの結果作成ブランチの各々に対して確立された。 (2)最初のランダム・ポピュレーションの作成時に関数をランダムに選択す る際に、C、L、SERIES、PSS、FLIP、NOP、およびTHGND の関数の各々には、8という相対重みが割り当てられ、8つのTHVIA関数の 各々、および4つの自動定義関数(ADF0、ADF1、ADF2、ADF3) には1という相対重みが割り当てられた。 終了基準および結果の指定 終了基準および結果指定方法は上述のLC低域フィルタの設計問題のものと同 じである。 自動定義関数を使用した低域LCフィルタの結果 世代0からの最良の回路の適応度は58.6であり、ヒットのスコアは52( 101のうち)である。その第1の結果生成ブランチ283の点を、第2の結果 生成ブランチに3つの点を有しており、また自動定義関数ADF0、ADF1、 ADF2、およびADF3のそれぞれに52、284、20、および33の点を 有している。しかしながら、ベストオブジェネレーション個体の結果生成ブラン チはいずれも、4つの自動定義関数のいずれも参照していない。ベストオブジェ ネレーション回路は単一のインダクタと単一のコンデンサを有している。これら 2つの構成要素のトポロジ上の構成は古典的なラダー・フィルタの最初の段のも のである。周波数領域における世代0からのベストオブジェネレーション回路の 挙動は、希望する低域フィルタのものとわずかに類似しているに過ぎない。 この問題に対する世代0のプログラムの98%が、SPICEではシミュレー ションできない回路を作り出すことに留意されたい。シミュレーション不能なプ ログラムは各世代に対してワーストオブジェネレーション・プログラムであり、 高いペナルティ値の適応度を受ける(108)。しかしながら、シミュレーショ ン不能プログラムの割合は世代1では84%に、世代2では77%に、世代3で は41%に、世代4では15%に低下する。その後、この割合は経路の残りに対 して6%と12%の間の範囲となる。換言すると、ダーウィン選択およびクロス オーバ操作によって作成される子孫の大部分はほんの数世代後にシミュレーショ ン可能となる。 世代9の処理ノード18からのベストオブジェネレーション個体は第1のペー ス設定個体であり、自動定義関数が2回以上呼び出される。この個体の適応度は 29.5であり、ヒットのスコアは65である。 第45図は2回使用された自動定義関数ADF3が228nFのコンデンサを 作成することを示す。ADF3は自動定義関数の最も単純な利点の1つ、すなわ ち共通値を有する構成要素が回路内の2個所以上で利用できるようになることを 示す。 世代9における処理ノード21からの最良の個体の適応度は10.3であり、 ヒットのスコアは84である。そのRPB0は19の点を、RPB1は8つの点 を、またADF0、ADF1、ADF2およびADF3のそれぞれは48、28 3、6および2つの点を有している。第46図は2回使用されたADF0を示す 。 世代9における処理ノード21からの最良の回路は、異なるトポロジ、すなわ ち2段のラダーを有している点で、上述のすべてのペース設定ベストオブジェネ レーション個体と異なっている。ラダーの両方の段の誘導要素は3つのインダク タ(第1の段のL5、L18、およびL14、ならびに第2の段のL16、L2 0、およびL11)の直列構成でできている。両方のグループのインダクタはA DF0のものである。2段のラダーは周波数領域における挙動を大幅に改善する 。 世代16における最良の個別プログラムの適応度は4.1であり、ヒットのス コアは90である。ADF0は3回使用される。ADF0の3つのインダクタの 55500μヘンリーという値を受け取ることは、ADF0内でのSERIES 関数の上述の効果を反映している。世代16の最良の回路は先行物とは異なるト ポロジ、すなわち3段のラダーを有している。 世代19における最良の個別プログラムの適応度は4.1であり、ヒットのス コアは95である。そのADF0は4回使用される。世代19の最良の回路は先 行物とは異なるトポロジ、すなわち4段のラダーを有している。 世代31における最良の個別プログラムは楕円フィルタの正確なトポロジを有 しているため、特に興味深いものである。この個体のヒットのスコアは101( 101のうち)であり、適応度は0.0850である。これは処理ノード3で構 成されている。そのRPB0は41の点を、RPB1は7つの点を、またADF 0、ADF1、ADF2およびADF3のそれぞれは52、297、22および 2つの点を有している。ADF0(第47図)は5回使用される。 第48図は世代31のこの最良な回路を示す。図示のように、この回路の5つ の垂直な分路の各々にはインダクタとコンデンサがある(たとえば、第1の分路 にはL34とC18がある)。 世代35における最良の個別プログラムのヒットのスコアは101(101の うち)であり、適応度は0.00752である(すなわち、世代31からのベス トオブジェネレーション個体のものよりも約1桁良好である)。そのRPB0は 34の点を、RPB1は4つの点を、またADF0、ADF1、ADF2および ADF3のそれぞれは55、260、3および2つの点を有している。ADF0 だけが結果生成ブランチによって参照される。 ADF0(第49図)は世代35からのベストオブジェネレーション・プログ ラムにおいて4回呼び出される。この自動定義関数によって作成される回路の部 分のトポロジは、上述のものよりもかなり複雑なものである。2つのインダクタ (L18およびL20)ならびに1つのコンデンサ(C25)が三角形を形成し ており、インダクタL18とL20が合致するノード10において三角形から分 岐している付加的な誘導要素(具体的にいうと、3つのインダクタL20、L2 1およびL16の直列構成)がある。また、ADF0は3つのポートを有してい る。第50図はインダクタの直列構成を単純化し、その配向を三角形配向に変更 した後のADF0の態様を示す。 第51図は世代35からのこのベストオブラン回路を示す。世代35からのベ ストオブラン回路の周波数領域における挙動は、通過帯域と停止帯域を分離する 古典的な「ブリック・ウォール」を示す。 第52図は番号付きブランチを備えたルート化され、ポイントにラベルのつい たツリーとして、世代35からのベストオブラン個体を示す。第1の結果生成ブ ランチRPB0はC関数5206をルートとしており、第2の結果生成ブランチ はTHVIA3関数5207をルートとしている。第1の自動定義関数ADF0 はDEFUN5202をルートとしている。ADF0はいずれかの結果生成ブラ ンチによって実際に参照される唯一の関数定義ブランチである。3つの参照され ない関数定義ブランチADF1、ADF2、ADF3は5203,5205とい うラベルのついた塗りつぶされた円によって略示されている。演算実行サブツリ ーは示されていないが、V1 5217、V2 5245、V3 5252、V 4 5254、およびV5 5210と略示されている。 結果生成ブランチの詳細な分析 第53図は、この問題に使用される1入力1出力エンブリオニック回路を示す 。以下では、このエンブリオニック回路の世代35から得たこのベストオブラン 個 体の開発について説明する。 第1の結果生成ブランチRPB0のルートにあるプログラム・フラグメント( 後述)内で下線を施された第52図のC関数5206は、変更可能ワイヤZ0を コンデンサC3に変換する。+関数をルートとする11ポイント演算実行サブツ リー(第52図では単にVS5 210と呼ばれ、以下のプログラム・フラグメ ントでは下線が施されている)は、C関数5206が実行されるときに全体的に 深さ優先的に実行される。第54図は、このC関数5206を実行した結果を示 す。このサブツリーは、解釈されると、値128nFをコンデンサC3に割り当 てさせる値を返す。この場合、書込みヘッドはコンデンサC3を指し示す。 (C(+−0.166−0.376+−0.910−0.0366)(−−0 .297−0.917))) (flip(pss(pss end(pss e nd end end(flip(adf0)))end(f1ip(adf0 )))(pss end end end(flip(adf0)))end( flip(adf0))))) 次に、プログラム・ツリーの幅優先実行によってRPB1のTHVIA3関数 (第52図の5207)が実行される。このTHVIA3関数はワイヤZ1をレ イヤ3の1つのポートおよび新しい変更可能ワイヤZ91、Z92、Z93に変 換する。3本のワイヤはそれぞれ、書込みヘッドを有する。第55図は、このT HVIA関数(7と呼ぶ)を実行した結果を示す。 V5 5210は、C関数5206が実行されたときにただちにその全体が深 さ優先的に実行された演算実行サブツリーを表すので、次に、プログラム・ツリ ーの幅優先実行によって、RPB1のFLIP関数(第52図の5211、以下 では下線が施されている)が実行される。FLIP関数はコンデンサC3の極性 をフリップし、書込みヘッドは引き続きコンデンサC3を指し示す。第56図は 、このFLIP関数を実行した結果として得られるコンデンサC3の極性の変更 を示す。 (C(+(−0.166−0.376)(+(−0.910−0.0366) (−−0.297−0.917)))(flip(pss(pss end(p ss end end end(flip(adf0)))end(fl ip(adf0)))(pss end end end(flip(adf0 )))end(flip(adf0))))) 次に、プログラム・ツリーの幅優先実行によってRPB1の3つのEND関数 (第52図の5212ないし5214)が実行される。この3つのEND関数は 、THVIA3関数5207によって生成されたすべての3つの書込みヘッドを なくす。第57図は、3つのEND関数5212ないし5214を実行した結果 を示す。 次いで、RPB0の第1のPSS関数(第52図の5216、以下では下線が 施されている)が実行される。 (C(+(−0.166−0.376)(+(−0.910−0.0366) (−−0.297−0.917)))(flip(pss(pss end(p ss end end end(flip(adf0)))end(flip( adf0)))(pss end end end(flip(adf0))) end(flip(adf0))))) このPSS関数は、コンデンサC3に作用し、重複コンデンサC4を作成し、 新しい変更可能ワイヤZ5およびZ6を作成することによってコンデンサC3を 並列化する。このPSS関数は4つの書込みヘッドを生成する。PSS関数がZ 5とZ6の両方の極性を確立することに留意されたい。この極性が必要になるの は、Z6が後で各構成要素に変換されるときである。第58図は、PSS関数5 216を実行した結果を示す。 次いで、RPB0の次のPSS関数(第52図の5219、以下では下線が施 されている)は、コンデンサC3をもう1度並列化し、新しいコンデンサC7お よび変更可能ワイヤZ8およびZ9を作成する。 (C(+(−0.166−0.376)(+(−0.910−0.0366) (−−0.297−0.917)))(flip(pss(pss end(p ss end end end(flip(adf0)))end(flip) adf0)))(pss end end end(flip(adf0))) end(flip(adf0))))) このPSS関数は4つの書込みヘッドを生成する。第59図は、PSS関数52 19を実行した結果を示す。 次に、プログラム・ツリーの幅優先実行によってRPB0のPSS関数(第5 2図の5220、以下では下線が施されている)が実行される。 (C(+(−0.0166−0.376)(+(−0.910−0.0366 )(−−0.297−0.917)))(flip(pss(pss end( pss end end end(flip(adf0)))end(flip )adf0)))(pss end end end(flip(adf0)) )end(flip(adf0))))) このPSS関数はコンデンサC4(すなわち、16として示したPSSによって 生成された第2の書込みヘッドが指し示す構成要素)を並列化する。このPSS 関数は、新しいコンデンサC10および変更可能ワイヤZ11およびZ12を作 成する。このPSS関数は4つの書込みヘッドを生成する。第60図は、PSS 関数5220を実行した結果を示す。 次に、プログラム・ツリーの幅優先実行によってEND関数(第52図の52 21)が実行される。これによって、PSS関数5216によって生成されたZ 5上の書込みヘッドがなくなる。 次に、プログラム・ツリーの幅優先実行によって、ワイヤZ6に作用するFL IP関数(第52図の5222、以下では下線が施される)が実行される。この FLIP関数を実行すると、1番上のLIST関数の下のプログラム・ツリーの 第4レベルに配置された関数の実行が実行される。 第5レベルでは、END関数(第52図の5226、以下では下線が施されて いる)が実行され、それによって、C3上の書込みヘッドがなくなる。次いで、 PSS関数(第52図の5227、以下ては下線が施されている)が実行され、 コンデンサC7(すなわち、PSS5219によって生成された第2の書込みヘ ッドが指し示す構成要素)が並列化される。このPSS関数は、新しいコンデン サC13および変更可能ワイヤZ14およびZ15を作成する。このPSS関数 (5227)は4つの追加の書込みヘッドを生成する。 (C(+(−0.166−0.376)(+(−0.910−0.0366) (−−0.297−0.917)))(flip(pss(pss en pss end end end(flip(adf0)))end(f lip(adf0)))(pss end end end(flip(adf 0)))end(flip(adf0))))) 第61図は、FLIP関数(5222)、END関数(5226)、PSS関 数(5227)を実行した結果を示す。 この点で、第52図のプログラム・ツリーの残りの部分は、END関数(52 28、5230、5231、5232)と、2ポイント構成要素の4つのオカレ ンスのみからなる。 (flip(adf0)) この4つのオカレンスは、ポイント5222と5234、(前述の)5229と 5243、5233と5244、及び5229と5243の各対に配置される。 5228、5230、5231、5232のEND関数は、Z8、C4、C1 0、Z11の書込みヘッドをなくす。 ADF0の詳細な分析 以下の議論は、第52図の一対のポイント5222と5234(以下では下線 が施されている)に配置された特定の(flip(adf0))に焦点を当てた ものである。 (C(+(−0.166−0.376)(+(−0.910−0.0366)( −−0.297−0.917)))(flip(pss(pss end(ps s end end end(flip(adf0)))end(flip(a df0)))(pss end end end(flip(adf0)))e nd(flip(adf0))))) 前述のように、FLIP5222はプログラム・ツリーの第4レベルで実行さ れており、ADF0 5234はまだ第5レベルで実行されていない。第62図 は、第61図の切り取り部分であり、書込みヘッドは変更可能ワイヤZ6を指し 示している。 全体的なプログラム・ツリーの第1の関数定義ブランチは、自動定義関数AD F0を定義するものであり、第52図ではDEFUN5202で始まるように示 されている。ADF0の作業実行本体はNOP関数5209で始まる。ADF0 は次式で与えられる。 (nop(L+0.504(−(+(+(+0.0830 0.406−0.2 43 0.658))(−(−(+(+0.809 0.4070.893−0 .113))−0.212)(−(+(−−0.506−0.0313)(−− 0.243 0.658))(−(−0.556 0.0370)−0.946 ))))−0.000741)) (series(series end(L− 0.000741(L 0.0609 end))end)end(nop(p ss end end end(C−0.949 end)))))) 初期NOP関数(第52図の5209)が実行された後、インダクタ作成関数 L(第52図の5215、上記で下線が施されている)は変更可能ワイヤZ6を インダクタL16に変換する。34ポイント演算実行サブツリー(上記で下線が 施されている)は、値56000マイクロヘンリーを新しいインダクタL16に 割り当てる。この34ポイント・サブツリーを第52図では、単に値Vl 52 17と呼ぶ。第63図は、(第52図の5234にある)ADF0のNOP関数 およびL関数を実行した結果を示す。 次いで、開発プロセスはADF0の第1のSERIES関数(第52図の52 18、以下では下線が施されている)に出会う。 (nop(L(+0.504(−(+(+(+0.0830 0.406)(− −0.243 0.658))(−(−(+(+8.086497e−01 0 .407)(−0.893−0.113))−0.212)(−(+(−−0. 506−0.0313)(−−0.243 0.658))(−(−0.556 0.0370)−0.946))))−0.000741))(series (series end(L−0.000741(L 0.0609 end) )end)end(nop(pss end end end(C−0.949 end)))))) このSERIES関数5218は、初期インダクタL16と、新しい変更可能 ワイヤZ17と、重複56000マイクロヘンリー・インダクタL18とからな る直列構成を作成する。このSERIES関数は3つの書込みヘッドを作成する 。第64図は、ADF0の第1のSERIES関数5218を実行した結果を示 す。 制御は次いで、ADF0の第2のSERIES関数(第52図の5223、以 下では下線が施されている)に渡される。このSERIES関数はインダクタL 16に適用される。 (nop(L(+0.504(−(+(+(+0.0830 0.406)( −−0.243 0.658))(−(−(+(+8.086497e−010 .407)(−0.893−0.113))−0.212)(−(+(−−0. 506−0.0313)(−−0.243 0.658))(−(−0.556 0.0370)−0.946))))−0.000741))(series(series end(L−0.000741(L 0.0609end)) end)end(nop(pss end end end(C−0.949 end)))))) この第2のSERIES関数5223は、インダクタL16(すなわち、第1 のSERIES5218によって生成された第1の書込みヘッドが指し示す構成 要素)と、新しい変更可能ワイヤZ19と、他の重複56000マイクロヘンリ ー・インダクタL20とからなる直列構成を作成する。このSERIES関数は 3つの書込みヘッドも生成する。第65図は、ADF0の第2のSERIES関 数5223を実行した結果を示す。 次に、プログラム・ツリーの幅優先実行によってEND関数(第52図の52 24)が実行され、それによって、第1のSERIES関数5218によって作 成されたZ17上の書込みヘッドがなくなる。次いで、NOP関数5225が実 行される。そのため、ADF0の4回の実行はこの特定のプログラムでは相互作 用せず、したがって、NOP関数は、最終的に開発される電気回路に影響を与え ない。 次いで制御がEND関数(第52図の5235)に渡され、L16上の書込み ヘッドがなくなる。 開発は次いで、ADF0のL関数(第52図の5236、以下では下線が施さ れている)に進む。 (nop(L(+0.504(−(+(+(+0.0830 0.406)( −−0.243 0.658))(−(−(+(+8.086497e−010 .407)(−0.893−0.113))−0.212)(−(+(−−0. 506−0.0313)(−−0.243 0.658))(−(−0.556 0.0370)−0.946))))−0.000741))(series (series end(L−0.000741(L 0.0609end)) end)end(nop(pss end end end(C−0.949 end)))))) この構成要素作成関数は、Z19に作用しそれをインダクタL21に変換する。 小さな数値−0.000741(以下では下線が施されており、第66図のポイ ント45に単にV2として示されている)によって、インダクタL21の値は0 .998マイクロヘンリーに設定される。第66図は、ADF0のL関数523 6を実行した結果を示す。 制御はEND関数(第52図の5237)に渡され、L20上の書込みヘッド をなくす。次いで、制御はPSS並列分割関数5238に渡される。インダクタ L21に関する議論を完了するためにこのPSS関数について後で簡単に説明す る。ADF0のL関数(第52図の5246、以下では下線が施されている)は インダクタL21を値の異なるインダクタに変換する。 nop(L(+0.504(−(+(+(+0.0830 0.406)(− −0.243 0.658))(−(−(+(+8.086497e−01 0 .407)(−0.893 0.113))−0.212)(−(+(−−0. 506−0.0313)(−−0.243 0.658))(−(−0.556 0.0370)−0.946))))−0.000741)(series(s eries end(L−0.000741(L 0.0609 end))e nd)end(nop(pss(pss end end end(C−0.9 49 end)))))) 具体的には、数値0.0609(以下では下線が施され、第52図の5252 に単にV3として示されている)は、L21の値を1.15マイクロヘンリーに 再設定する。第67図は、ADF0のL関数5246を実行した結果を示す。 以下で下線が施されているPSS並列分割関数5238に戻るとわかるように 、この関数はL18に作用し、新しいインダクタL22と、2本の新しいワイヤ Z23およびZ24と、L18とからなる並列構成を作成する。このPSS関数 は4つの書込みヘッドを作成する。 (nop(L(+0.504(−(+(+(+0.0830 0.406)( −−0.243 0.658))(−(−(+(+8.086497e−010 .407)(−0.893−0.113))−0.212)(−(+(−−0. 506−0.0313)(−−0.243 0.658))(−(−0.556 0.0370)−0.946))))−0.000741))(seri es(series end(L−0.000741(L 0.0609 en d))end)end(nop(pss end end end(C−0.9 49 end)))))) 第68図は、ADF0のPSS関数5238を実行した結果を示す。PSS関 数5238によって生成されたこれらの書込みヘッドのうちの3つはEND関数 (5247、5248、5249)によってただちに終了し、したがって、C関 数(5250、以下では下線が施されている)に注意が向けられる。 (nop(L(+0.504(−(+(+(+0.0830 0.406)( −−0.243 0.658))(−(−(+(+8.086497e−010 .407)(−0.893 −0.113))−0.212)(−(+(−−0 .506−0.0313)(−−0.243 0.658))(−(−0.55 6 0.0370)−0.946))))−0.000741))(ser ies(series end(L−0.000741(L 0.0609 e nd))end)end(nop(pss end end end(C−0. 949 end) )))) このC関数は、変更可能ワイヤZ24に作用しそれをコンデンサC25に変換 する。小さな数値−0.949(第52図の5454に単にV4として示されて いる)によって、コンデンサC25は構成要素値0.112nFを得る。第69 図は、ADF0のEND関数5247ないし5249およびC関数5250を実 行した結果を示す。 L16、L21、L20、Z17、L22、Z23、L18、C25がすべて 、変更可能ワイヤZ6からADF0によって作成されたことに留意されたい。 Z6が2つの端部(第62図のノード7および8)を有する単なるワイヤであ った場合でも、ADF0を実行した結果が3つのポート(第69図のノード69 07、6908、6909)を有するサブストラクチャになることにも留意され たい。本明細書で「サブストラクチャ」の語を使用するのは、より一般的に使用 される語の「サブサーキット」がSPICEでは特殊な意味を有するからである 。 この3つのポートは、PSS関数5238を実行し、それに続いてC関数52 50を実行し、それによって、第69図のノード8および9が、介在する構成要 素(すなわち、コンデンサC25)によって分離された結果として得られる。 END関数5253および5255はL21およびC25上の書込みヘッドを なくす。 第49図は、ADF0によって作成された3ポート・サブストラクチャを示す 。 第70図は、ADF0によって作成されたこの同じ3ポート・サブストラクチ ャを異なる配向で三角形サブストラクチャとして示す。 第71図は、ADF0によって作成された三角形3ポート・ザブストラクチャ を使用して世代35から得たベストオブジェネレーション回路(上記では第62 図として示した)を示す。アーキテクチャ変更操作を使用した低域LCフィルタの設計 本節の目標は、自動定義関数およびアーキテクチャ変更操作を使用しながら、 前述の設計特性を満たす低域フィルタを設計することである。すなわち、自動定 義関数のアーキテクチャ構成は、ユーザによって事前に指定されることがなく、 実行時にアーキテクチャ変更操作を使用して動的に進化する。 1994年8月4日に出願された「Simultaneous Evolut ion Of The Architecture Of A Multl−P art Program To Solve A Problem Using Architecture Altering Operations」と題 する米国特許出願第08/286134号は、6つのアーキテクチャ変更操作、 すなわちブランチ複製、引数複製、ブランチ削除、引数削除、ブランチ作成、引 数作成を使用して遺伝的プログラミングの実行時にプログラム全体のアーキテク チャを動的に進化させる方法について説明している。Koza(1994b)も 参照されたい。この6つのアーキテクチャ変更操作を以下に示す。 (i)ブランチ複製:1つの既存のプログラムの1つの関数定義ブランチを複 製し追加の適切な変更を加えてこの変更を反映することによって新しいポピュレ ーションの1つの新しい子孫プログラムを作成する。 (ii)引数複製:1つの既存のプログラムの1つの関数定義ブランチの1つ の引数を複製し追加の適切な変更を加えてこの変更を反映することによって新し いポピュレーションの1つの新しい子孫プログラムを作成する。 (iii)ブランチ削除:1つの既存のプログラムの1つの関数定義ブランチ を削除し追加の適切な変更を加えてこの変更を反映することによって新しいポピ ュレーションの1つの新しい子孫プログラムを作成する。 (iv)引数削除:1つの既存のプログラムの1つの関数定義ブランチの1つ の引数を削除し追加の適切な変更を加えてこの変更を反映することによって新し いポピュレーションの1つの新しい子孫プログラムを作成する。 (v)ブランチ作成:既存のブランチの一部を含む1つの新しい関数定義ブラ ンチを追加し、そのブランチの参照を作成することによってポピュレーションの 1つの新しい子孫プログラムを作成する。 (vi)引数作成:既存の関数定義ブランチの引数リストに1つの新しい引数 を追加し、そのブランチの参照を適切に修正することによってポピュレーション の1つの新しい子孫プログラムを作成する。 この6つのアーキテクチャ変更操作は、遺伝的プログラミングが実行時に、関 数定義ブランチを使用するかどうかと、いくつの関数定義ブランチを使用するか と、各関数定義ブランチが有する引数の数を動的に決定できるようにする自動方 法を提供する。アーキテクチャ変更操作と自動定義関数は共に、問題の表現を変 更し、同時に問題を解決する自動方法を提供する。別法として、アーキテクチャ 変更操作と自動定義関数は、問題を非事前指定次元の非事前指定数のサブプロブ レムに分解し、サブプロブレムを解き、サブプロブレムの解を組み立てて問題全 体の解を得る自動方法とみなすこともできる。 アーキテクチャ変更操作を使用した低域LCフィルタ用の準備ステップ エンブリオニック回路 2つの書込みヘッドを有する1入力1出力回路に関する第4図のエンブリオニ ック回路はこの問題に適している。 プログラム・アーキテクチャ エンブリオニック回路は最初、それぞれ、各結果生成ブランチに関連付けられ た、2つの書込みヘッドを有するので、各プログラム・ツリーに2つの結果生成 ブランチ(RPB0およびRPB1と呼ぶ)がある。 自動定義関数がもしあればその数は、アーキテクチャ変更操作を使用して進化 プロセスによって決定される。 プログラムの初期ポピュレーション中の各プログラムは、自動定義関数(すな わち、2つの結果生成ブランチ)を含まない一様なアーキテクチャを有する。 関数セットおよび終端セット 関数は、この問題に関しては4つの範疇に分割される。 (1)エンブリオニック回路から回路のトポロジを作成する接続作成関数 (2)回路内のワイヤ(およびその他の構成要素)を、指定された構成要素に 変換する構成要素作成関数 (3)共に回路の各構成要素についての数値(寸法決定)を指定する演算実行 関数および数値終端 (4)数がアーキテクチャ変更操作によって決定される自動定義関数(サブル ーチン) 終端と関数セットは、自動定義関数の存在がアーキテクチャ変更操作によって 決定されることを除いて前述の実行進化自動定義関数の例と同じである。 適応度 適応度は、前述のLC低域フィルタ設計問題と同じである。 パラメータ 制御パラメータは、以下の違いを除いて、すでに使用したものと同じであった 。 (1)アーキテクチャ変更操作は各世代でまれに使用されるものである。世代 5よりも後の各世代での操作の割合は、クロスオーバが86.5%、繁殖が10 %、突然変異が1%、ブランチ複製が1%、引数複製が0%、ブランチ削除が0 5%、引数削除が0.0%、ブランチ作成が1%、引数作成が0%であった。少 数のプログラムしか自動関数を有さない初期世代で大量のコンピュータ時間を費 やすのを回避するために、世代6よりも前の各世代での操作の割合は、クロスオ ーバが78.0%、繁殖が10%、突然変異が1%、ブランチ複製が5.0%、 引数複製が0%、ブランチ削除が1%、引数削除が0.0%、ブランチ作成が5 .0%、引数作成が0%であった。 (2)各プログラム全体中の2つの結果生成ブランチ(および自動定義関数) のそれぞれの最大サイズは300ポイントである。 (3)自動定義関数の最大数は4である。 (4)各自動定義関数ごとの引数の数は零である。 (5)初期ランダムポピュレーションの作成時に関数をランダムに選択する際 に、C関数、L関数、SERIES関数、PSS関数、FLIP関数、NOP関 数、THGND関数にそれぞれ、相対加重8を割り当て、同時に8つのTHVI A関数のそれぞれおよびCUT関数に相対加重1を割り当てた。 終端作成および結果指定 終端作成および結果指定方法は、すでに使用したのと同じである。 アーキテクチャ変更操作を使用した低域LCフィルタに関する結果 世代77から得たベストオブラン個体プログラムは、(101個中)101個 のヒットを記録し、0.000765の適応度を有する。プログラム・ツリーは RPB0が87ポイントであり、RPB1が2ポイントてあり、ADF0、AD F1、ADF2、ADF3はそれぞれ、65ポイント、66ポイント、94ポイ ント、9ポイントである。 ADF0およびADF1は、自動定義関数の一般的な使用法、すなわち特定の サブストラクチャを定義しそれを複数回にわたって再使用する一般的な方法を示 す。ADF0は6回呼び出され、ADF1は3回呼び出される。第72図はこの ADF0を示す。ADF0のサブストラクチャは、3つのインダクタの直列構成 からなる(かつ1つのインダクタと電気的に等価である)。ADF0を6回呼び 出すことによって、この値を1回定義し、複数回にわたって再使用することがで きる。 ADF1は1つの28600マイクロヘンリー・インダクタからなる。ADF 1を3回呼び出すことによって、このインダクタを1回作成し、次いで再使用す ることができる。ADF2は、1つの37300マイクロヘンリー・インダクタ のみからなり、1回しか呼び出されない。ADF3は1回呼び出される。ADF 3は、以下に示すように、接続作成関数のみからなり、構成要素を作成させない 。 (pss end(series end end(flip end))e nd end) 第73図は、世代77から得たベストオブラン回路を示す。多目的適応度 進化プロセスは適応度によって駆動される。上記の議論では、適応度を単一の 因子、すなわち(設計中のフィルタの選択された周波数ドメイン内の)回路の所 望の動作と回路の実際の動作との間の偏差の加重和で測定した。ユーザが供給す る適応度は、回路の電力消費量や、回路の構成要素の数や、構成要素のコストや 、構成要素が占める表面積や、時間ドメイン内の回路の動作や、周波数ドメイン 内の回路の動作を含めて、回路の計算可能な特性または特性の組合せを組み込む ことができる。 多くの場合、実行の適応度に複数の因子を組み込むことが望ましい。本節では 、 多目的適応度を用いて、前述の低域フィルタ設計問題を再び検討する。 適応度の一次因子は、(前述の)問題の設計要件に対する満足度である。二次 因子は、(特定のコスト割り当てが与えられた場合)倹約された設計による解決 策を推進する。具体的には、回路の適応度は、周波数ドメイン内の101個のサ ンプル・ポイントに関して、101回よりも少ないヒット(すなわち、101個 の適合サンプル・ポイント)を記録したあらゆる回路の実際の電圧と所望の電圧 の偏差の、すでに使用したのと同じ加重和を10.0に加えた値である。しかし 、完全に101回のヒットを記録した回路の場合、適応度は、コンデンサの数を 0.001倍し、それにインダクタの数の0.002倍を加えた値である。すな わち、この多目的適応度では、適応度に二次因子として回路の倹約を組み込む。 倹約性は、インダクタのコストをコンデンサの2倍にするように算出される。こ の二次因子は、(このような実行におけるプログラム・ツリーで最大数のポイン トが許容される場合)常に10.0よりもかなり小さく、したがって、101個 の満足ポイントを有する回路の適応度は常に、100個以下の満足ポイントを有 する最良の回路の適応度よりも優れている(低い)。101個の満足ポイントを 有する回路のうちで、より倹約された回路がより良い回路とみなされる。この多 目的適応度は、100%の満足度が得られるまで設計要件に対する満足度が完全 に倹約性を支配し、それ以後、適応度は倹約性に基づくものになるという意味で 辞書的である。 ある実行では、101回のヒットを記録した第1の個体は世代37に現れた。 第74図は、世代37から得た100%満足回路の進化した14個の構成要素( 10個のインダクタと4つのコンデンサ)のコストが0.024であることを示 す。世代37の後に、この実行によって、101回のヒットを記録した多数の他 の回路構成プログラム・ツリーが生成された。101回のヒットを記録したすべ てのプログラムは、100回以下のヒットを記録したプログラムよりも適応度が 優れていた。しかし、101回のヒットを記録したプログラムのうちで、より倹 約されたプログラムの方が適応度が優れていた。したがって、世代52など実行 の後の世代では、101回のヒットを記録したより倹約された個体が現れた。 第75図は、世代52から得た100%満足回路の進化した12個の構成要素 (8つのインダクタと4つのコンデンサ)のコストが0.020であることを示 す。4つのインダクタ(L41、L31、L18、L39)からなる直列構成か らL41およびL31を削除すると倹約性が向上することに留意されたい。設計 要件に対する100%満足度は、L24、L5、L17の値をわずかに変更する ことによって維持された。また、L18およびL39はフリップされている。こ の特定の倹約プログラムは(世代37から得た100%満足プログラムの場合の 235ポイントと比べて)261ポイントを有する。 この実行は、ユーザが定義する倹約度に基づいて一次因子および二次因子を組 み込んだ多目的適応度を使用した遺伝的プログラミングを使用して電子回路を進 化させることが可能であることを示している。 1入力2出力回路の設計 2バンド・クロスオーバ(ウーハおよびツィータ)フィルタは1入力2出力回 路であり、ある指定された周波数よりも低いすべての周波数を第1の出力ポート (ウーハ)に通過させ、この指定された周波数よりも高いすべての周波数を第2 の出力ポート(ツィータ)に通過させる。2バンド・クロスオーバ・フィルタは 、入力と第1の出力ポートとの間の低域フィルタと、入力と第2の出力ポートと の間の高域フィルタとからなる並列構成によって実現することができる。 本節では、クロスオーバ周波数が2512Hzである2バンド・クロスオーバ ・フィルタが設計される。 2バンド・クロスオーバ(ウーハおよびツィータ)フィルタ用の準備ステップ 本節では、この問題に関する準備ステップについて論じる。 エンブリオニック回路 この問題に必要なエンブリオニック回路は、2バンド・クロスオーバ(ウーハ およびツィータ)フィルタが2つの出力を有することを反映する。 第76図の下4分の3は、2バンド・クロスオーバ・フィルタの1入力2出力 回路用のエンブリオニック回路を示す。エネルギー源は2V正弦電圧源VSOU RCEであり、その負(−)の端部はノード0(接地)に接続され、正(+)の端 部はノード1に接続される。ノード1とノード2との間にソース抵抗RSOUR CEがある。ノード2とノード3との間に1本の変更可能ワイヤ(すなわち、書 込みヘッドを有するワイヤ)Z0があり、ノード2とノード6との間に第2の変 更可能ワイヤZ1があり、ノード3とノード6との間に第3の変更可能ワイヤZ 2がある。変更可能ワイヤZ0、Z1、Z2の周りに、3つの書込みヘッド(太 い線)がそれらのワイヤを指し示すことを示す円がある。ノード3とノード4と の間に分離ワイヤーZOUT1があり、ノード4に電圧プローブVOUT1があ り、ノード4と接地との間に固定負荷抵抗RLOAD1がある。また、ノード6 とノード5との間に分離ワイヤーZOUT2があり、VOUT2と呼ばれる電圧 プローブがノード5にあり、ノード5と接地との間に負荷抵抗RLOAD2があ る。すべての3つの抵抗は0.00794KΩの抵抗を有する。このエンブリオ ニック回路のすべての上記の素子(Z0、Z1、Z2を除く)は常に固定され、 回路の開発プロセス中に修正されることはない。開発プロセスの開始時に、書込 みヘッドが3本の変更可能ワイヤZ0、Z1、Z2のそれぞれを指し示す。 一実施形態では、エンブリオニック回路は、回路内の1つのノードに達する線 の数が2と3のどちらかになるように設計される。この条件は、回路構成プログ ラム・ツリー内のすべての関数によって維持される。分離ワイヤーZOUT1お よびZOUT2は、プローブ・ポイントVOUT1およびVOUT2を開発プロ セス中に修正されないように保護する。 このエンブリオニック回路ではドメインの知識がほとんど必要とされないこと に留意されたい。具体的には、(1)エンブリオニック回路は回路であり、(2 )このエンブリオニック回路は1つの入力と2つの出力とを有し、(3)1つの 入力(ノード2)と2つの出力(ノード4および5)との間に完全な2地点間接 続性を与える変更可能な接続部Z0、Z1、Z2がある。具体的には、低域フィ ルタと高域フィルタを並列に組み合わせることによって2バンド・クロスオーバ ・フィルタを構築することができるという知識は使用されないことに留意された い。 このエンブリオニック回路は、任意の1入力2出力回路に適用することができ る。この適応度によって進化探索プロセスを所望の回路に近づけることができる 。 プログラム・アーキテクチャ エンブリオニック回路は最初、それぞれ、各結果生成ブランチに関連付けられ た、3つの書込みヘッドを有し、3つの結果生成ブランチがある。この例示的な 問題では、自動定義関数は使用されない。したがって、プログラム・ツリー全体 のアーキテクチャは、LIST関数によって結合された3つの結果生成ブランチ からなる。 第76図の上4分の1は、例示的なプログラム・ツリーの1番上の4つのポイ ントを示す。1つの書込みヘッドは最初、L関数7602に関連付けられ、変更 可能ワイヤZ0を指し示し、第2の書込みヘッドは、C関数7603に関連付け られ、変更可能ワイヤZ1を指し示し、第3の書込みヘッドは、C関数7604 に関連付けられ、変更可能ワイヤZ2を指し示す。 第78図は、第1の結果生成ブランチのL関数(第76図の7602)、第2 の結果生成ブランチのC関数(第76図の7603)、第3の結果生成ブランチ のC関数(第76図の7604)を実行した結果としての第76図のエンブリオ ニック回路に対する効果を示す。 L関数は、第76図の変更可能ワイヤZ0に作用して第78図のインダクタL 3に変換する。ノード2(第76図には図示せず)の左側への演算実行サブツリ ー・ブランチは、このL関数の評価の一部として評価され、解釈されスケーリン グされると、インダクタL3の構成要素値として478マイクロヘンリーを確立 する。 C関数7603は、第76図の変更可能ワイヤZ1に作用して第78図のコン デンサC4に変換する。ノード3(第76図には図示せず)の左側への演算実行 サブツリー・ブランチは、コンデンサC4の構成要素値として3430nFを確 立する。同様に、C関数7604は、第76図の変更可能ワイヤZ2に作用して 第78図の6.58nFコンデンサC5に変換する。 これらのL関数およびC関数の実行後に、書込みヘッドがL3、C4、コンデ ンサC5を指し示す。 関数セットおよび終端セット 終端セットおよび関数セットは、すべての3つの結果生成ブランチについて同 じである。これらのセットは、自動定義関数を使用しなかったときに前述の低域 フィルタを設計する問題で使用したセットと同じである。 適応度 ユーザが提供する適応度は進化プロセスを方向付ける。 ポピュレーション中の個別の各プログラム・ツリーについての適応度の評価は そのプログラム・ツリーを実行することから始まる。この実行によって、非常に 簡単なエンブリオニック回路がより複雑な回路になる。そのような各回路は次い で、SPICEシミュレータの修正バージョンを使用してシミュレートされる。 SPICEシミュレータは、AC小信号分析を実行し、10Hzないし100 000Hzの範囲から選択された101個の周波数値のそれぞれについて、2つ のプローブ・ポイントVOUT1およびVOUT2での回路の動作を報告するよ う要求される。この4桁の周波数はそれぞれ、(対数スケールを使用して)25 の部分に分割され、したがって、この問題には合計で202個の適応度ケースが ある。 適応度は、第1のプローブ・ポイントVOUT1で回路によって生成される周 波数ドメイン内の電圧の実際の値と、その第1のプローブ・ポイントの電圧に関 する目標値との間の絶対加重偏差の、101個のVOUT1周波数値にわたる和 に、第2のプローブ・ポイントVOUT2で回路によって生成される電圧の実際 の値と、その第2のプローブ・ポイントの電圧に関する目標値との間の絶対加重 偏差の、101個のVOUT1周波数値にわたる和を加えた値で測定される。適 応度の値が小さければ小さいほど良好である。零適応度は理想的なフィルタを表 す。 具体的には、標準化適応度F(t)は次式で与えられる。 上式で、f(i)は適応度ケースiの周波数(ヘルツ単位)であり、d1(x) はプローブ・ポイントVOUT1に関する周波数xでの目標値と観測値との間の 差であり、d2(x)はプローブ・ポイントVOUT2に関する周波数xでの目 標値と観測値との間の差であり、W1 (y,x)はプローブ・ボイントVOU T1に関する周波数xでの差yに対する加重であり、W(y,x)はプローブ・ ポイントVOUT2に関する周波数xでの差yに対する加重である。 適応度は、理想値にはペナルティを課さず、あらゆる受け入れられる偏差にわ ずかにペナルティを課し、あらゆる受け入れられない偏差に重いペナルティを課 す。 まずウーハ部とVOUT1について考える。2バンド・クロスオーバ・フィル タのウーハ部は低域フィルタである。 10Hzないし1905Hzの間隔中の58個のポイントのそれぞれに関する 手順を以下に示す。電圧がこの間隔中の理想値の1.0Vに等しい場合、偏差は 0.0である。電圧が970mVないし1000mVである場合、1000mV からの偏差の絶対値が係数1.0で加重される。電圧が970mV未満である場 合、1000mVからの偏差の絶対値が係数10.0で加重される。この構成は 、通過帯域内の理想電圧が1.0Vであり、30mVの不足がこの問題の設計要 件を満たし、通過帯域内の970mVよりも低い電圧が受け入れられないことを 反映する。 周波数3311以上を表す38個の適応度ケースの場合、手順を以下に示す。 電圧が0mVないし1mVである場合、0mVからの偏差の絶対値が係数1.0 で加重される。電圧が1mVよりも高い場合、0mVからの偏差の絶対値が係数 10.0で加重される。この構成は、停止帯域内の理想電圧が0.0Vであり、 0mVよりも高い1mVリップルが受け入れられ、停止帯域内の1mVよりも高 い電圧が受け入れられないことを反映する。 この2つの主要帯域における適応度ケース(61および35)の数は十分近い 数である。したがって、この2つの主要帯域における適応度ケースのそれぞれの 異なる数に与える加重を等しくしようとはしなかった。次の適応度ケース(すな わち、2089Hzおよび2291Hz)では、1000mVからの偏差の絶対 値が係数1.0で加重される。次の適応度ケース(すなわち、周波数2512H z)では、500mVからの偏差の絶対値が係数1.0で加重される。次の2つ の適応度ケース(すなわち、2754Hzおよび3020Hz)では、0mVか らの偏差の絶対値が係数1.0で加重される。 次に、ツィータ部およびVOUT2について考える。2バンド・クロスオーバ ・フィルタのツィータ部は高域フィルタである。ツィータ部の適応度は、ウーハ 部の構成の鏡像である。 SPICEでシミュレートできない回路には高い適応度ペナルティ値(108 )が割り当てられる。 ヒットは、電圧が受け入れられるか、あるいは理想的なものであり、あるいは 「don't care」帯域(この特定の問題とは関係がない)に存在する適 応度ケースの数として定義される。したがって、ヒットの数は最大で202であ る。 パラメータ ポピュレーションサイズMは、640000である。 各世代の遺伝操作の割合は、クロスオーバが89%、繁殖が10%、突然変異 が1%であった。この例示的な問題では、アーキテクチャ変更操作は使用しなか った。 各プログラム全体内の3つの結果生成ブランチのそれぞれについて最大サイズ 200ポイントを確立した。 初期ランダムポピュレーションの作成時に関数をランダムに選択する際に、C 、L、SERIES、PSS、FLIP、NOP、GNDにそれぞれ、相対加重 8を割り当て、同時に8つのVIA関数のそれぞれに相対加重1を割り当てた。 遺伝的プログラミングの実行を制御する他の小パラメータはKoza1994 (アペンディックスD)に指定されたデフォルト値であった。 終了基準および結果指定 設計要件が厳しいので、合理的な時間で202個のヒットを記録する個体を進 4化させることが可能であるかどうかはわからなかった。この問題は低速で実行 されるので、世代Gの最大数を任意の大きな数に設定し、各実行時に開発を待っ た。 2バンド・クロスオーバ(ウーハおよびツィータ)フィルタに関する結果 世代0におけるランダムに作成された640000個の回路のポピュレーショ ンのうちでいくつかの個体は他の個体よりも優れている。世代0から得た最悪の 個体回路構成プログラム・ツリーは非常に異常であり、SPICEシミュレータ がそのような回路をシミュレートできない回路を作成する。このような回路には 高い適応度ペナルティ値(すなわち、108)が割り当てられる。 世代0から得たシミュレート可能な回路の中間回路は適応度が964.3であ り、10回のヒットを記録する。世代0のこの中間回路は、周波数を顕著に差別 的に通過させることはない。 世代0の最良の個体プログラム・ツリーは適応度が159.0であり、(20 2回中)85回のヒットを記録する。このプログラム・ツリーの第1の結果生成 ブランチは181ポイントを有し、第2の結果生成ブランチは181ポイントを 有し、第3の結果生成ブランチは18ポイントを有する。第78図は、世代0か ら得たベストオブジネレーション回路を示す。 世代12から得たベストオブジェネレーション個体は適応度が80.3であり 、(202回中)116回のヒットを記録する。世代20のベストオブジェネレ ーション個体は適応度が38.8であり、125回のヒットを記録する。 後で世代137に現れるベストオブラン回路と同じトポロジを有する回路が世 代79に現れる。世代79のこの回路は、第79図に示されており、適応度が1 .06であり(すなわち、世代137から得たベストオブラン個体の適応度ほど 良好ではない)、196回のヒットを記録する。この回路の大部分の構成要素値 は、最終的なベストオブラン回路とは異なる。しかし、これらのそれぞれの異な る構成要素値はすべて、世代137に現れるまだ発見されていないベストオブラ ン個体の最終的な構成要素値の1桁内である。 世代137のベストオブラン個体プログラム・ツリーは適応度が0.7807 であり、(202回中)192回のヒットを記録する。このプログラム・ツリー の3つの結果生成ブランチはそれぞれ、187ポイント、198ポイント、19 1ポイントを有する。進化したこの回路の対称性に留意されたい。 第80図は、世代137から得たベストオブラン個体に関する回路を示す。世 代137から得たこのベストオブラン回路が完全な202回のヒットは記録しな いことに留意されたい。現在実施可能な量の時間および労力でこの問題に関する 100%満足回路を進化させることができるかどうかは不明である。 バッタワース回路は、等級付けされた一連の「はしご」ベンチマーク・フィル タである。オーダー3のバッタワース応答は、いくつかの実際的な応用例で十分 なものとみなされている。(フィルタのカットオフ周波数を2512Hzで適切 にスケーリングした場合に)低域バッタワース3フィルタおよび高域バッタワー ス3フィルタの組合せに適応度およびヒット度を適用すると、組合せ回路は(2 02回中)162回のヒットを記録する。2つのバッタワース5フィルタの周波 数ドメイン応答は184回のヒットのスコアに対応する。2つのバッタワース7 フィルタの周波数ドメイン応答は190回のヒットのスコアに対応する。前述の 世代137から得たベストオブラン回路は、192回のヒットを記録し、したが って、オーダー7の低域バッタワース・フィルタと高域バッタワース・フィルタ の組合せよりもわずかに優れた応答を与えるとみなすことができる。低域バッタ ワース7フィルタと高域バッタワース7フィルタの組合せは、7つのインダクタ と7つのコンデンサを必要とするが、遺伝的に進化したベストオブラン回路は6 つのインダクタと7つのコンデンサしか必要としない。したがって、遺伝的に進 化したフィルタ回路は、バッタワース7フィルタよりもわずかに優れた応答を有 し、わずかにより倹約されている。 世代137から得たベストオブラン回路の低域部分はバッタワース・トポロジ を有する(ただし、構成要素のバッタワース値は有さない)。これに対して、ベ ストオブラン回路の高域部分は、余分のコンデンサを有し、したがってバッタワ ース・トポロジを有さない。周波数応答の高域部分(すなわち、余分なコンデン サを含む部分)については、低域部分よりも鋭い境界が2512Hzの周りにあ る。1入力3出力回路の設計 3バンド・クロスオーバ(ウーハ−ミッドレンジ−ツィータ)フィルタは1入 力3出力回路であり、ある指定された周波数よりも低いすべての周波数を第1の 出力ポート(ウーハ)に通過させ、この指定された周波数とは異なりそれよりも 高い指定されたある周波数より高いすべての周波数を第3の出力ポート(ツィー タ)に通過させ、中間周波数を第2の出力ポートに通過させる(ミッドレンジ出 力)。 この問題に必要な3バンド・クロスオーバ(ウーハ−ミッドレンジ−ツィータ )フィルタが3つの出力を有することを反映するエンブリオニック回路は、3つ の出力を有する。 第81図は、3バンド(ウーハ−ミッドレンジ−ツィータ)クロスオーバ・フ ィルタの1入力3出力回路用のエンブリオニック回路を示す。エネルギー源は2 V正弦電圧源VSOURCEであり、その負(−)の端部はノード0(接地)に 接続され、正(+)の端部はノード1に接続される。ノード1とノード2との間 にソース抵抗RSOURCEがある。ノード2とノード3との間に1本の変更可 能ワイヤ(すなわち、書込みヘッドを有するワイヤ)Z0があり、ノード2とノ ード5との間に第2の変更可能ワイヤZ1があり、ノード2とノード7との間に 第3の変更可能ワイヤZ2がある。変更可能ワイヤZ0、Z1、Z2の周りに、 3つの書込みヘッドがそれらのワイヤを指し示すことを示す円がある。ノード3 とノード4との間に分離ワイヤーZOUT0があり、VOUT0と呼ばれる電圧 プローブがノード4にあり、ノード4と接地との間に固定負荷抵抗RLOAD1 がある。第2に、ノード5とノード6との間に分離ワイヤーZOUT1があり、 VOUT1と呼ばれる電圧プローブがノード6にあり、ノード6と接地との間に 負荷抵抗RLOAD1がある。第3に、ノード7とノード8との間に分離ワイヤ ーZOUT2があり、VOUT2と呼ばれる電圧プローブがノード8にあり、ノ ード8と接地との間に負荷抵抗RLOAD1がある。すべての3つの抵抗は0. 00794KΩの抵抗を有する。このエンブリオニック回路のすべての上記の素 子(Z0、Z1、Z2を除く)は常に固定され、回路の開発プロセス中に修正さ れることはない。開発プロセスの開始時に、書込みヘッドが3本の変更可能ワイ ヤZ0、Z1、Z2のそれぞれを指し示す。回路のすべてのその後の開発は書込 4みヘッドから始まる。回路構成プログラム・ツリー内の関連する関数に従って 書 込みヘッドが指し示す構成要素を修正することによって回路が開発される。 したがって、プログラム・ツリー全体のアーキテクチャは、LIST関数によ って結合された3つの結果生成ブランチからなる。すなわち、エンブリオニック 回路は最初、それぞれ、各結果生成ブランチに関連付けられた、3つの書込みヘ ッドを有する。 問題の要件が高くなるにつれて、遺伝的プログラミングを実行する場合には一 般に、ポピュレーションのサイズを大きくし、世代の数を増やして所望の結果を 生成する必要がある。たとえば、この3出力問題を実行したときには、前述の問 題で使用したのと同じポピュレーションサイズ(640000)を使用して、き ちんと要件を満たす回路を進化させた。しかし、640000個の個体のみのポ ピュレーションを使用してこの問題に関して進化させた回路は、すべての3つの 出力ポートに関する周波数ドメイン内の100%のサンプル・ポイントを満足し たわけではなかった。そのような場合は、ポピュレーションのサイズおよび世代 の数を増加させる(その結果、問題の解決に関わる資源を増加させる)必要があ る。多重入力多重出力エンブリオニック回路 多くの電気回路は、複数の入力と複数の出力とを有する。1例として、複数の 信号チャネルを処理するシステムが挙げられる。他の例として、ロボットを制御 する回路が挙げられ、この回路には、たとえば距離センサからの2つの入力と、 ロボットの左側および右側のホィールの速度を制御する2つの出力がある。 第82図は、2入力2出力回路を進化させる基礎として使用できるエンブリオ ニック回路を示す。電圧源VSOURCE1はノード0(接地)およびノード1 に接続され、それに対して、VSOURCE2はノード8およびノード0(接地 )に接続される。ノード1とノード2との間に1つのソース抵抗RSOURCE 1があり、ノード8とノード7との間に他のソース抵抗RSOURCE1がある 。ノード3とノード4との間に分離ワイヤーZOUT1があり、VOUT1と呼 ばれる電圧プローブがノード4にあり、ノード4とノード0(接地)との間に固 定負荷抵抗RLOAD1がある。また、ノード6とノード5との間に分離ワイヤ ー ZOUT2があり、VOUT2と呼ばれる電圧プローブがノード5にあり、ノー ド5とノード0(接地)との間に負荷抵抗RLOAD2がある。変更可能ワイヤ Z1(ノード3とノード2との間)と、Z2(ノード7とノード3との間)と、 Z3(ノード7とノード2との間)と、Z4(ノード6とノード3との間)と、 Z5(ノード6とノード2との間)と、Z6(ノード6とノード7との間)があ る。この6本の変更可能ワイヤは2つの入力と2つの出力との間に完全な2地点 間接続性を与える。開発プロセスの開始時には、(変更可能ワイヤZ1、Z2、 Z3、Z4、Z5、Z6を指し示す)6つの書込みヘッドがある。 サブサーキットを構成要素として使用した多帯域通過フィルタの設計 回路を作成するために使用される構成要素は抵抗、コンデンザ、インダクタな どと同程度にプリミティブである必要はない。SPICEにおけるサブサーキッ ト機能によって、サブサーキットを定義することができる。SPICEでサブサ ーキットを定義した後、そのサブサーキットは、プリミティブ構成要素を使用で きる任意の場所で繰り返し使用することができる。すなわち、サブサーキットの 参照は回路のネットリストに現れる。 サブサーキットは、1本または複数のリード線を有することができ、形式パラ メータを有することができる。 サブサーキットは、SPICEではSUBCKTコマンドを使用して定義され る。各SUBCKT定義は、サブサーキットの名前と、そのノードの1つまたは 複数の形式パラメータと、サブサーキットを定義するネットリストと、ENDS コマンド(入れ子サブサーキット定義を使用している場合はサブサーキットの名 前を含まなければならない)とからなる。各SUBCKT定義は、サブサーキッ トを定義するネットリスト内の構成要素およびノードのそれ自体のローカル番号 付けを有する。サブサーキットは、Xで始まるネットリストの行、固有の番号、 1つまたは複数のノード番号、サブサーキットの名前によって呼び出される。た とえば、以下に、楕円形5低域フィルタ用の2本のリード線を含むサブサーキッ トのサブサーキット定義を示す。この低域フィルタのカットオフ周波数は342 58ヘルツである。 .SUBCKT ELIP5_LP_1 l 2 L1 1 3 5.76e+03uH L2 3 4 3.46e+02uH C3 4 0 5.90e+00nF L4 3 5 8.99e+03uH L5 5 6 9.40e+02uH C6 6 0 5.26e+00nF L7 5 2 5.24e+03uH .ENDS ELIP5_LP_l サブサーキットの名前はELIP5_LP_1である。サブサーキットは、2 つのノード、すなわちこの場合はノード1およびノード2を参照する。サブサー キットは5つのインダクタと2つのコンデンサとを有する。サブサーキット定義 はENDS行で終了する。 第103図は、この楕円形5低域フィルタ・サブサーキットを示す。 第104図は、楕円形5高域フィルタ・サブサーキットを示す。高い抵抗を有 する2つの抵抗R8およびR9は、SPICEではシミュレートできない浮動ノ ードを防止するために追加される。これらの抵抗を物理回路に含める必要はない 。 SUBCKTコマンドが新しい構成要素を定義するために使用され、このコマ ンドが自動定義関数と同じではないことに留意されたい。 SPICEのサブサーキット機能は、第1の通過帯域が100Hzから始まっ て200Hzで終わり、第2の通過帯域が10KHzから始まって20KHzで 終わり、通過帯域および停止帯域の許容リップルがオーダー5の楕円形フィルタ の許容リップルである多帯域通過フィルタを設計することによって示される。こ の目標は、低域フィルタおよび高域フィルタを構成要素として使用するが、イン ダクタやコンデンサを構成要素として使用することのない多通過帯域フィルタを 設計することである。 多通過帯域フィルタ用の準備ステップ エンブリオニック回路 この問題には、1つの書込みヘッドを有するエンブリオニック回路を使用する 。このエンブリオニック回路は、ワイヤZ0上に書込みヘッドがないことを除い て第3図のエンブリオニック回路と同じである。 プログラム・アーキテクチャ この例示的な問題では、自動定義関数は使用されない。 エンブリオニック回路は最初に1つの書込みヘッドを有するので、各プログラ ム・ツリー全体に1つの結果生成ブランチがある。 この例示的な問題の場合、各構成継続サブツリーについての関数セットFccs は次式で与えられる。 Fccs={ELIP5_LP,ELIP5_HP,SERIES,PSS,F LIP,NOP,THGND,THPOS,THVIA0,THVIA1,TH VIA2,THVIA3,THVIA4,THVIA5,THVIA6,THV IA7}, この場合、ELIP5_LP関数およびELIP5_HP関数はそれぞれ、オ ーダー5の楕円形フィルタのカットオフ周波数を指定する1つの引数を取り出す 。この引数は演算実行サブツリーに含まれる。その場合、ELIP5_LP(ま たはELIP5_HP)関数は、所望のカットオフ周波数を有するオーダー5の 低域(または高域)楕円形フィルタがモデルであるサブサーキットを与える。 各構成継続サブツリーについての終端セットTccsは以下のものからなる。 Tccs={END,CUT}. 各演算実行サブツリーについての関数セットFapsは次式で与えられ、 Faps={+, −} それぞれ、2つの引数をとる。 各演算実行サブツリーについての終端セットTapsは次式で与えられる。 Taps={R} 上式で、Rは−1.000ないし+1.000の浮動小数点ランダム定数を表す 。 適応度 この問題では、電圧VOUTがプローブされ、回路は周波数ドメイン内で観察 される。SPICEシミュレータは、AC小信号分析を実行し、4桁の周波数( 10Hzないし100000Hz)の範囲から選択された101個の周波数値の それぞれについての回路の動作を報告するよう要求される。各桁は(対数スケー ルを使用して)25個の部分に分割される。 適応度は、プローブ・ポイントVOUTで回路によって生成される周波数ドメ イン内の電圧の実際の値と、目標電圧値との間の絶対加重偏差の、101個の適 応度ケースにわたる和で測定される。適応度の値が小さければ小さいほど良好で ある。零適応度は理想的なフィルタを表す。 適応度は、理想値にはペナルティを課さず、あらゆる受け入れられる偏差にわ ずかにペナルティを課し、あらゆる受け入れられない偏差に重いペナルティを課 す。 周波数範囲は、2つの通過帯域と、3つの停止帯域と、4つの「don’t care」領域に分割される。 2つの通過帯域内のそれぞれの8ポイント(合計で16ポイント)のそれぞれ に関する手順を以下に示す。電圧がこの間隔中の理想値の1.0Vに等しい場合 、偏差は0.0である。電圧が950mVないし1000mVである場合、10 00mVからの偏差の絶対値が係数1.0で加重される。電圧が950mV未満 である場合、1000mVからの偏差の絶対値が係数10.0で加重される。こ の構成は、通過帯域内の理想電圧が1.0Vであり、50mVの不足が受け入れ られ、通過帯域内の950mVよりも低い電圧が受け入れられないことを反映す る。この種のLC回路で電圧が1.0Vを超えることは不可能である。 3つの停止帯域内の53個のポイントのそれぞれに関する手順を以下に示す。 電圧が0mVないし5mVである場合、0mVからの偏差の絶対値が係数1.0 で加重される。電圧が5mVよりも高い場合、0mVからの偏差の絶対値が係数 10.0で加重される。この構成は、停止帯域内の理想電圧が0.0Vであり、 0mVよりも高い5mVリップルが受け入れられ、停止帯域内の5mVよりも高 い電圧が受け入れられないことを反映する。 各通過帯域の直前に8つの「don’t care」ポイントがあり、各通過 帯域の直後に8つの「don’t care」ポイントがある。 偏差は、3つの「don’t care」帯域内の32個のポイントのそれぞ れについて零とみなされる。 ヒットは、電圧が受け入れられるか、あるいは理想的なものであり、あるいは 「don’t care」帯域に存在する適応度ケースの数として定義される。 したがって、この問題の場合、ヒットの数は最小で32であり、最大で101で ある。 制御パラメータ ポピュレーションサイズMは40000であった。 終了基準および結果指定 終了基準および結果指定方法は、前述のLC低域フィルタ設計問題の場合と同 じである。 サブサーキットを構成要素として使用した多帯域通過フィルタに関する結果 世代25から得た最良の回路は適応度が0.197であり、(101回中)1 01回のヒットを記録する。したがって、この問題は解決されるとみなすことが できる。 第105図は、世代25から得たベストオブジェネレーション個体を示す。図 を見ればわかるように、2つの通過帯域は、利用可能な低域楕円形フィルタ・サ ブサーキットおよび高域楕円形フィルタ・サブサーキットの直列並列構成によっ て定義される。各サブサーキットに関連付けられた数値パラメータはそのフィル タのカットオフ周波数である。これらの数値パラメータはそれぞれ演算実行サブ ッリーから得られる。ハード配線構成要素を含む回路の設計 多くの実際的な設計問題はまず、ある指定された構成要素を特定の方法で回路 に組み込むという要件から始まる。そのような要件は、様々な実際的な電気的問 題、経済的問題、またはパッケージ問題によって動機付けることができる。 たとえば、特定の方法で接続される2つのトランジスタを組み込むための解決 策が必要とされるクラスBプッシュプル増幅器を設計する必要があると仮定する 。必要な方法で接続された必要な2つのトランジスタを組み込むには特殊なエン ブリオニック回路を作成することができる。書込みヘッドは、この2つのトラン ジスタ上には配置されず、したがって開発進化全体的プロセスにわたって変更さ れない。次いで、進化プロセスが前述のように進行する。トランジスタを使用した増幅器の設計 増幅器は1入力1出力回路であり、入力信号の電圧に増幅係数Aを乗じる。 増幅器の設計の開始点は、ユーザが増幅係数Aと、増幅器が動作することが予 想される周波数範囲を指定することである。この問題の場合、周波数範囲20H zないし20000Hzにわたって増幅係数3.5が追求される。 増幅器は、出力電圧が入力電圧よりも高くなる可能性があるという意味で能動 回路である。抵抗、コンデンサ、インダクタのみで能動回路を実現することはで きず、トランジスタや1つまたは複数の電源などの能動構成要素を存在させる必 要がある。 増幅器用の準備ステップ エンブリオニック回路 増幅器を設計する問題では、ソース抵抗と負荷抵抗とを含む1入力1出力回路 が必要とされるので、第3図のエンブリオニック回路はこの例示的な問題に適し ている。ソース抵抗RSOURCEは1000Ωであり、負荷抵抗RLOADは 8Ωである。入力交流信号源VSOURCEの振幅は500mVである。 プログラム・アーキテクチャ この例示的な問題では、自動定義関数を使用する必要がある。 エンブリオニック回路は最初、それぞれ、各結果生成ブランチに関連付けられ た、2つの書込みヘッドを有するので、各プログラム・ツリー全体には2つの結 果生成ブランチがある。 したがって、ポピュレーション内の各プログラム・ツリー全体のアーキテクチ ャは、LIST関数によって結合された2つの結果生成ブランチからなる。 関数セットおよび終端セット 終端セットおよび関数セットは、この例示的な問題ではポピュレーション内の プログラム・ツリーの両方の結果生成ブランチについて同じである。 各ブランチは、制約付き構文構造に従って作成される。 関数は、この問題では3つの範疇に分割される。 (1)エンブリオニック回路から回路のトポロジを作成する接続作成関数 (2)回路内のワイヤ(およびその他の構成要素)を、指定された構成要素に 変換する構成要素作成関数 (3)回路の各構成要素について数値(寸法決定)を指定する演算実行関数お よび数値終端 この例示的な問題の場合、各構成継続サブツリーについての関数セットFccs は次式で与えられる。 Fccs={R,C,QTO,QT1,QT2,QT3,QT4,QT5,QT 6,QT7,QT8,QT9,QT10,QT11,SERIES,PSS,F LIP,NOP,TGND,POS,THVIA0,THVIA1,THVIA 2,THVIA3,THVIA4,THVIA5,THVIA6,THVIA7 }, 各構成継続サブツリーについての終端セットTccsは以下のものからなる。 Tccs={END,CUT}. 各演算実行サブツリーについての関数セットFapsは次式で与えられ、 Faps={+,−} それぞれ、2つの引数をとる。 各演算実行サブツリーについての終端セットTapsは以下のものからなる。 Taps={R} 上式で、Rは−1.000ないし+1.000の浮動小数点ランダム定数を表す 。 適応度 この問題では、電圧VOUTがプローブされ、回路は周波数ドメイン内で観察 される。 SPICEシミュレータは、AC小信号分析を実行し、3桁の周波数(20H zないし20000Hz)の範囲から選択された151個の周波数値のそれぞれ についての回路の動作を報告するよう要求される。各桁は(対数スケールを使用 して)50個の部分に分割される。 適応度は、プローブ・ポイントVOUTで回路によって生成される周波数ドメ イン内の相対電圧の実際の値と、相対電圧目標値の5デシベルとの間の絶対加重 偏差の、151個の適応度ケースにわたる(すなわち、1Vに対する)和で測定 される。適応度の値が小さければ小さいほど良好である。零適応度は理想的なフ ィルタを表す。 適応度は、理想値にはペナルティを課さず、あらゆる受け入れられる偏差にわ ずかにペナルティを課し、あらゆる受け入れられない偏差に重いペナルティを課 す。 20Hzないし20000Hzの間隔中の151個のポイントのそれぞれに関 する手順を以下に示す。相対電圧が4dBないし6dBである場合、5dBから の偏差の絶対値が係数1.0で加重される。相対電圧がこの範囲外である場合、 5dBからの偏差の絶対値が係数10.0で加重される。この構成は、理想相対 電圧が5dBであり、1dBの偏差が受け入れられ、1dBを超える相対電圧の 偏差が受け入れられないことを反映する。 ヒットは、電圧が受け入れられるか、あるいは理想的なものである適応度ケー スの数として定義される。したがって、この問題の場合、ヒットの数は最小で0 であり、最大で151である。 制御パラメータ 各世代での遺伝操作の割合は、クロスオーバが89%、繁殖が10%、突然変 異が1%であった。この例示的な問題ではアーキテクチャ変更操作を使用しなか った。 各プログラム全体内の2つの結果生成ブランチのそれぞれについて最大サイズ 300ポイントを確立した。 初期ランダムポピュレーションの作成時に関数をランダムに選択する際に、R 、C、SERIES、PSS、FLIP、NOP、THGND、THPOSにそ れぞれ、相対加重24を割り当てた。8つのTHVIA関数には相対加重3を割 り当てた。12個のQT関数QT0...QTIIには相対加重2を割り当てた 。 遺伝的プログラミングの実行を制御する他のパラメータは、Koza 199 4(アペンディックスD)で指定されたデフォルト値であった。 終了基準および結果指定 終了基準および結果指定方法は、前述のLC低域フィルタ設計問題の場合と同 じである。 増幅器に関する結果 世代45(第97図)から得た最良の回路は、ゼロ近傍適応度が0.0032 9であり、(151回中)151回のヒットを記録する。この回路は、第1の結 果生成ブランチで109ポイントを有し、第2の結果生成ブランチで115ポイ ントを有する。目標相対電圧からの加重偏差の和がほぼ零であるので、所望の周 波数範囲にわたって所望の増幅係数が達成された。 第97図は、世代45から得たベストオブジェネレーション遺伝進化増幅器を 示す。 世代45から得たベストオブジェネレーション遺伝進化増幅器は、様々な段で 構成されるものとみなすことができる。 第98図は、電圧利得段として解釈することのできる世代45から得たベスト オブジェネレーション遺伝進化増幅器の一部を示す。 世代45から得たベストオブジェネレーション遺伝進化増幅器の他の部分(第 99図)はダーリントン・エミッタ・フォロワとして解釈することができる(た だし、トランジスタQ71は従来型の構成を反転させた状態で使用される)。 第99図は、電圧利得段とダーリントン・エミッタ・フォロワ部がボックスに よって強調表示された同じ回路を示す。 進化した電圧利得段および進化したダーリントン・エミッタ・フォロワ段を除 く遺伝的に進化した増幅器内のあらゆるものを削除すると、残りの回路は実際に 、全体的に遺伝的に進化した回路の利得に非常に類似した利得を有する増幅器に なる。この残りの部分は、出力電圧1.788を達成し、それに対して、進化し た回路全休は出力電圧1.7783を達成し、その差は0.01よりも小さい。 世代45から得た全体的に遺伝的に進化した増幅器のデシベル単位の利得は周波 数範囲全体にわたって5.0001dBであり、それに対して、残りの回路はこ の範囲にわたって利得5.0464dBを達成する。したがって、遺伝的に進化 した増幅器は、電圧利得段とダーリントン・エミッタ・フォロワ段とで構成され た増幅器回路に機能的に非常に類似したものとして解釈することができる。他のシミュレータ SPICEシミュレータは好ましい実施形態では、ポピュレーション中の各個 体の適応度を測定するために使用される。他のシミュレータは、特定の問題また は問題のクラスに望ましいそれぞれの異なる動作特性を有する。他のシミュレー タでは、SPICEシミュレータでは実行できない回路の動作の特性を測定する ことができる。 SPICEシミュレータを使用するには、このシミュレータを本発明に有用な ものにするいくつかの変更を実施する必要がある。他のシミュレータを使用する 場合、同様な変更を実施する必要がある。このような変更には、以下のことのう ちのいくつかまたはすべてが含まれる。 (1)完全に開発された回路の記述がシミュレータへの適切な入力になるよう にその記述を伝達することと、シミュレータから出力される生成された回路の動 作が遺伝的プログラミングの実施に適した入力になるようにこの動作を伝達する こととを含めて、シミュレータと汎用プログラミングとのインタフェースをとる こと。 (2)(必要に応じて)シミュレータを(必要な初期設定を用いて)バッチ指 向システムから呼出し可能な再入サブモジュールヘ変更すること。 (3)利用可能なメモリ資源を管理すること。 (4)シミュレータからの出口によってポピュレーション内の他のすべての個 体および実行の他のすべての世代に対して実行全休を継続できるように、エラー 条件によって生成された出口を管理すること。 (5)シミュレータが並列機械に対する指数性能劣化なしに多数の世代にわた る個体のディーム(deme)ポピュレーションを処理できるように、シミュレータ を十分に効率的なものにすること。 代替実施形態では、プログラムされたディジタル信号プロセッサ(DSP)を 用いてアナログ回路をシミュレートすることができる。実際の電気構成要素を使用した適応度の測定 第1B図で、本発明の開発プロセスによって作成された電気回路の動作を決定 するステップを(一実施形態では)SPICEシミュレータによって実施した。 回路の動作を決定する1つの有利な代替方法は、フィールド・プログラマブル ・デバイスを使用して当該の回路を物理的に実現し、次いで、回路の物理的実現 を実際に操作することによって回路の動作を決定することである。 たとえば、ディジタル回路の場合、フィールド・プログラマブル・ゲート・ア レイ(FPGA)はマイクロプロセッサ・チップであり、チップを特定のタスク を実行するようにカスタマイズするように構成できるディジタル・ゲート・アレ イを含む。再構成可能なFPGAの種類では、FPGA内のある接続部を活動化 し、FPGAによって実行すべき特定の論理関数を指定するビット・パターンを 、FPGAのSRAMメモリに設定することによってカスタマイズが行われる。 Xilinix CorporationはFPGAの一流供給業者の1つであ る。アナログ回路については、Pilkington Micro Elect ronics Limitedがたとえば、切換コンデンサ技法に基づいて再構 成可能なアナログ・デバイスのフィールド・プログラマブル・アナログ・アレイ (FPAA)を開発している。 第111図は、本発明のプロセスを実行する際に作成できるディジタル回路と アナログ回路のどちらかの動作を決定するためにフィールド・プログラマブル再 構成可能デバイスをどのように使用できるかを示す。「全休的プロセス」111 0は、電気回路の動作を決定するステップを除く本発明の全休的プロセスを表す 。すなわち、「全休的プロセス」1110は、完全に開発された回路の記述を作 成するステップを含む。プロセスの特定の世代でのポピュレーション内の1つの 個体に関して完全に開発された回路の記述を作成すると、その記述は、通信バス 1111によって「構成」ステップに伝達される。「構成」ステップ1112は 回路の記述を詳細な情報に変換し、この情報は、フィールド・プログラマブル・ デバイスにロードされると、このデバイスを特定の個々の回路にカスタマイズす る。この情報は通常、ビット・パターンであり、フィールド・プログラマブル・ デバイス内のSRAMメモリにロードされる。この情報は次いで、バス1113 を介して「構成」ステップ1112からフィールド・プログラマブル・デバイス 1114に伝達される。フィールド・プログラマブル・デバイス1114は次い で、所望の回路を物理的に実現する。次いで、フィールド・プログラマブル・デ バイス1114に多数の異なる入力(すなわち、個々の回路の適応度を測定する ために使用される適応度ケース)を与えることができる。ディジタル・フィール ド・プログラマブル・ゲート・アレイ(FPGA)では、それぞれの異なる入力 は通常、回路への様々なディジタル入力の多数の異なる組合せからなる。必要に 応じて、この目的専用のFPGAの部分によって入力のこれらの組合せを好都合 に生成することができる。アナログ・フィールド・プログラマブル・アレイでは 、アナログ信号生成装置によって生成できる様々なアナログ試験信号でそれぞれ の異なる入力を構成することができる。必要に応じて、この目的専用のアナログ ・フィールド・プログラマブル・アレイの部分によってこれらのアナログ試験信 号を生成することができる。(ディジタルであるか、それともアナログであるか にかかわらず)フィールド・プログラマブル・デバイスが(オンチップで生成さ れたか、それともオフチップで生成されたかにかかわらず)いくつかの異なる入 力を受け取った後、通信バス1115によって個々の回路の動作を「全体的プロ セス」1110に伝達することがてきる。他の複雑な構造の設計 本発明の各方法に従って他の多数の複雑な構造を設計することができる。 物理構造は、電気回路と同様に、複数の異なる種類の構成要素からなる。これ らの個別の構成要素は、複雑な物理構造全体を形成するように特定のトポロジに 配置することができる。トポロジ構成内の各位置に様々な種類の構成要素を配置 することがてきる。構造全体の各構成要素は、さらに1組の構成要素値(通常は 数値)によって指定することができる。 第101図は、機械エンジニアが設計することができ、2つの100kgの荷 重を支持するために剛性の荷重支持金属ビームや荷重支持可とう性ケーブルなど の構成要素からなる、縦壁に支持されたトラスを示す。この例示的な図では、剛 性の金属ビームである構成要素はB1、B2、B3、B5、B6、B7、B8、 B9として識別される。可とう性金属ケーブルはC4およびC10として識別さ れる。この図は、2つの質量と壁も含む。この図では、示した構造内の構成要素 の数は13であり、10本のビームおよびケーブルの形状構成は、4本が水平で あり、2本が垂直であり、4本が斜めである構成である(図示した特定のトポロ ジに構成される)。 トラスを設計する際、特定の荷重を支持し、各バーまたはケーブル上の応力が 剛性のバーまたは可とう性のケーブルを破壊するほど大きくならないことを指定 する応力制約を満たし、トラスに含まれる材料の総重量を最小限に抑えるなど、 あるコスト要件を満たすという設計上の目標がある。設計者は、所望のトラスを 設計するために、構成要素の適切なトポロジ構成(すなわち、構成要素の数と、 構成要素をどのように結合するか)を作成し、トポロジ構成に挿入すべき構成要 素タイプ(すなわち、剛性のビームまたは可とう性ケーブル)を選択し、各構成 要素についての適切な数値(すなわち、構成要素の厚さ)を選択しなければなら ない。したがって、設計要件を満たすトラスを設計する問題は、そのトポロジを 見出し、トポロジ内の各位置に配置される構成要素の種類を選択し、すべての構 成要素をサイズ付けする(通常は数値)ことである。 第102図は、2つのばねと、2つのダッシュ・ポットと、2つの質量とから なる機械構造を示す。ばねK1は2つの接合点(リード線、端部)を有し、その うちの一方の接合点は図の1番上に示した支持ビームに接続され、他方の接合点 はダッシュ・ポットB1に接続される。ダッシュ・ポットB1はばねK1に直列 に接続される。ダッシュ・ポットB1は2つの接合点を有し、そのうちの一方は ばねK1に接続され、他方は質量M1に接続される。同様に、質量M1、ダッシ ュ・ポットB2、ばねK2、質量M2は直列に接続される。 電気回路に使用されるのと同様な方法でこの機械システムなど複雑な構造の設 計に本発明の開発方法を適用できることが理解されよう。そのようなシステムで は、質量をコンデンサに関連付けることができ、ばね定数がインダクタンスの逆 数に対応し、ダッシュ・ポットの減衰定数がコンダクタンス(抵抗の逆数)に対 応し、力がトルクに対応し、角速度が電圧に対応する。 同様に、当然のことながら、電気回路に使用されるのと同様な方法で機械シス テムや回転システムなど複雑な構造の設計に本発明の開発方法を適用することが できる。回転システムでは、ばね定数をインダクタンスの逆数に関連付けること ができ、慣性のモーメントがコンデンサに対応し、ダッシュ・ポットの減衰定数 がコンダクタンス(抵抗の逆数)に対応し、力が電流に対応し、速度が電圧に対 応する。 構成要素と、構成要素から構築される全休的な構造の性質を検討することによ って、それぞれの異なる種類の複雑な構造の間の類似性を理解することができる 。 前述のように、一実施形態では、「構成要素」とは、種類と、構成要素をさら に指定するいくつかの構成要素値と、いくつかの接合点とを有する物体である。 構成要素の各接合点の動作は、(たとえば、抵抗の2つのリード線のように) 区別不能であっても、あるいは(トランジスタのコレクタ、ベース、エミッタの ように)異なるものであってもよい。 したがって、たとえば電気工学では、抵抗は、種類「抵抗」の物体であり、単 一の構成要素数値1000Ωを有し、2つの接合点(リード線、端部)を有する ので構成要素である。 同様に、土木工学では、ある長さの剛性の金属ビームは、種類「30フィート 金属ビーム」の物体であり、その直径が1インチであることを指定する単一の構 成要素数値を有し、2つの接合点(端部)を有するので構成要素である。 また、機械工学では、ばねは、種類「ばね」の物体であり、そのばね定数を指 定する単一の構成要素数値を有し、2つの接合点(端部)を有するので構成要素 である。ダッシュ・ポットは、種類「ダッシュ・ポット」の物体であり、その減 衰定数を指定する単一の構成要素数値を有し、2つの接合点を有するので構成要 素である。質量は、種類「質量」の構成要素であり、その質量を指定する単一の 構成要素数値を有し、1つの接合点を有する。 したがって、一実施形態では、「構造」は、(1)1組の構成要素と、(2) 構成要素どうしの接合点の間の1組の無方向線線(アーク)とからなる。各無方 向線線は、1つの構成要素の接合点と(通常は他の構成要素の)他の接合点との 間に接続が存在することを示す。 第112図は、電気回路の分野における、「構成要素」と、構成要素で構築さ れた「構造」の図を示す。この構造は、5つの「構成要素」と、10個の「接合 点」と、7つの「アーク」とからなる。5つの構成要素とは、接地GND、電圧 源V、抵抗R、コンデンサC、トランジスタQである。接地は1つの接合点のみ を有し、電圧源、抵抗、コンデンサはそれぞれ、2つの接合点を有し、トランジ スタは3つの接合点を有する。 電圧源の2つの接合点およびトランジスタの3つの接合点の動作は区別できる が、抵抗およびコンデンサの接合点の動作は区別できない。この動作の識別を、 関係のない目的(たとえば、場合によっては、極性以外の点では区別不能な、抵 抗のリード線を含めて、あらゆる接合点に正の極性および負の極性を割り当てる SPICEシミュレータの規約)に適用できる識別ラベルと混同しないよう留意 されたい。 次いで、5つの構成要素の接合点は、電気回路を作成するように7つの無方向 性線(アーク)によって接続される。たとえば、アーク20001は接地GDN の接合点11を接合点12(バッテリVの負のリード線)に接続する。アーク2 0002は接合点16(バッテリVの正のリード線)を接合点17(抵抗Rの一 方のリード線)に接続する。アーク20003は抵抗Rの接合点17を接合点2 0(トランジスタQのエミッタ・リード線)に接続する。 アークは無方向線である。この無方向性は、アークが特定の構成要素の区別可 能な接合点に接続するか、それとも区別不能な接合点に接続するかの影響を受け ない。また、この無方向性は、このような接合点が接続される接合点が、1つの 接合点を含む構成要素に属するか、あるいは2つの接合点を含む構成要素に属す るか、あるいは3つの接合点を含む構成要素に属するか、あるいはそれ以上の接 合点を含む構成要素に属するかの影響を受けない。 構造の接合点グラフとは、点(ノード)が構造の構成要素の接合点を表し、線 (アーク、無方向線)が2つの接合点の間に接続が存在することを表すグラフで ある。 図示された5つの構成要素と、10個の接合点と、7つのアークとからなる電 気回路では、接合点グラフは、(11から20まで番号付けされた)10個の点 と(20001から20007まで番号付けされた)7つのアークとを有する。 第113図は、機械構造の分野における構成要素で構築された構造を示す。こ の構造は第102図の構造に対応する。この構造は、7つの構成要素と、11個 の接続点と、6つのアークとを有する。この構造は7つの構成要素、すなわち天 井、ばねK1、ダッシュ・ポットB1、質量M1、ダッシュ・ポットB2、ばね K2、質量M2を有する。天井および2つの質量はそれぞれ、1つの接合点のみ を有し、ばねおよびダッシュ・ポットはそれぞれ、2つの接合点を有する。すべ てのこれらの構成要素の接合点の動作は区別不能である。 その場合、7つの構成要素の接合点が、機械構造を作成するように6本の無方 向線(アーク)によって接続される。たとえば、アーク21000は天井の接合 点71を接合点73(ばねK1の端部)に接続する。アーク21001はばねK 1の接合点73を接合点74(ダッシュ・ポットB1の端部)に接続する。 アーク21002がダッシュ・ポットB1の接合点81を接合点75(質量M 1の端部)に接続し、アーク21003がダッシュ・ポットB1の接合点81を 接合点76(ダッシュ・ポットB2の端部)に接続することに留意されたい。上 記で指摘したように、質量M1は1つの接合点のみを有する。第102図など機 械工学図の形式は、ダッシュ・ポットB2が質量M1に結合され、それに対して 、実際にはダッシュ・ポットB1の底部に3方向接合部があることを示す。第1 13図は、質量M1が1つの接合点のみを有し、質量M1とダッシュ・ポットB 2 が共にダッシュ・ポットB1の底部に接続されることを明確に示す。同様に、第 113図中の他のアークは、図中の他の様々な構成要素の他の様々な接合点の間 の接続を示す。 図に示された7つの構成要素と、11個の接合点と、6つのアークとからなる 機械構造では、接合点グラフは(71から81まで番号付けされた)11個の点 と(21000から20005まで番号付けされた)6つのアークとを有する。 第114図は、機械構造の分野における構成要素で構築された他の構造(トラ ス)の一部を示す。この構造は、第101図に示したトラスに対応する。この構 造は13個の構成要素と24個の接合点とを有する。これらの構成要素は、壁と 、6つの30フィート剛性金属ビームB1、B3、B5、B6、B7、B8と、 2つの42フィート剛性金属ビームB2およびB9(トラスに斜めに配置される )と、2本の42フィート可とう性ケーブルC4およびC10(斜めに配置され る)と、2つの100kg質量M1およびM2である。質量はそれぞれ、1つの 接合点のみを有する。各剛性金属ビームと、各可とう性ケーブルと、壁は2つの 接合点を有する。 話を簡単にするために、この図は、質量M1 22000の単一の接合点に接 続する5つのアークのみを示している。 本発明のプロセスの一実施形態によれば、プロセスは、各種類の構成要素の多 数のコピーを含む部品ビンから始まる。プロセスの開始時に、接合点グラフは、 部品ビン内の各構成要素の各接合点ごとの1つの点から始まる。構成処置によっ て、この接合点グラフのある構成要素どうしの接合点の間に無方向線(アーク) が追加される。 すべての構成処置が実行されると、接合点との接続を有さない構成要素に関連 付けられたすべての接合点を削除することによって接合点グラフが簡略化される 。すなわち、完全に未使用の構成要素に関連付けられたあらゆるものが接合点グ ラフから削除される。このことは、未使用部品を部品ビンに返すことに対応する 。 この簡略化の後、接合点グラフの点(ノード)は構造の構成要素の接合点を表 し、接合点グラフの無方向線(アーク)は、2つの接合点の間に接続が存在する ことを表す。本発明のプロセスの一実施形態によれば、構成処置によって、構成 要素が配置された開発構造全体内の位置のトポロジ構成が構築される。また、構 成処置によって、構造全体の特定の位置にある特定の構成要素が他の構成要素で 置き換えられる。構成処置によって、構成要素の構成要素値(寸法決定)も指定 される。 この場合、本発明のプロセスによって暗黙的に探索される可能な回路のサーチ 空間の広大なサイズを推定する方法も与えられる。可能な回路の数の推定は、3 つの因子、すなわち可能なトポロジの数と、トポロジ構成内に様々な種類の構成 要素を配置するための可能な方法の数と、各構成要素についての可能な値の数の 積を検討することによって行うことができる。 場合によっては比較的簡単な問題の解を与える回路は多くの場合、20個以上 の構成要素を有する。上記の3つの因子を例示するために、丁度20個の2リー ド線構成要素を含み、構成要素が3つの可能性、すなわちコンデンサ、インダク タ、または抵抗のみに限られた1入力1出力回路について考える。この回路は4 2個の接合点を有するので、42から2つの接合点を選択するための861通り の方法がある。したがって、これらの接合点を接続するための2861 (約102 60 )通りの可能な方法がある。3種類の構成要素があるので、20個の構成要素 に関する構成要素の種類を選択するための320(約109)通りの可能な方法が ある。各構成要素の種類ごとの1組の280個の値は、(1.05280が約106 であるので)6桁の範囲にわたって約5%の間隔で構成要素値を与える。構成要 素の値にこの細分性を使用すると、20個の構成要素に関する値を選択するため の28020(約1049)通りの可能な方法が得られる。この3つの係数を組み合 わせると、可能な回路の数の推定値として約10317が与えられる。この粗な推 定では、(対称性など)ある種の係数が無視されるが、特定の数の構成要素が仮 定され(これに対して、実際には数20が事前に固定される)、3種類の構成要 素のみが仮定され、6桁の構成要素値のみが仮定されるので、過小評価である。 それにもかかわらず、この推定によって、回路設計の問題に関するサーチ空間の 広大なサイズが明らかになる。 単一の実行における100の世代にわたって640000のポピュレーション サイズを使用する場合、サイズが約10317であるこの広大なサーチ空間から明 示的に調べられる回路は6400万個(重複は無視する)に過ぎない。本発明の 方法は、電気回路に関する特定の知識も構成要素の特性の電気的性質に関する特 定の知識も使用せずに問題の非常に大きなサーチ空間を暗黙的に探索する。 本発明が、物理法則に従う実際の物理システおよび実際の物理量を扱うもので あることにも留意されたい。前述の3つの構造(すなわち、電気的構造、第10 2図および第113図のばねとダッシュ・ポットと質量とからなる機械的構造、 第101図および第114図の剛性の金属ビームと可とう性ケーブルと質量とか らなる機械的構造)はすべて、ある種の物理法則に従う。 電気システムに関するキルヒホフの電流の法則は、回路内の任意のノードでの 電流の和が零になることを示している。機械的システムの場合、電流の相似形は 力である。したがって、機械的システムに関するキルヒホフの電流の法則の相似 形は、任意の点に加えられる力ベクトルの和も零になることである。すなわち、 第101図および第114図のトラスまたは第102図および第113図の機械 的システム内で構成要素どうしが出会う任意の接合点(ノード)での力の和は零 である。最終的な構造の各開発段階で、本発明の構成処置(たとえば、電気回路 に関する接続作成関数や構成要素作成関数)によって、現在の開発構造が新しい 構造に変化する。しかし、開発プロセスにおけるそのような変更された構造は常 に、あらゆるノードでこの保存の法則に従う。すなわち、各構造(電気的構造ま たは機械的構造)ごとに、構成要素が接続される各点での力に対応する数量の値 の和は零に維持される。 電気的システムでは、キルヒホフの電圧の法則によって、回路内の任意の閉ル ープの周りの電圧の和が零に維持されることが示されている。結論 複雑な構造の自動設計に有用な 遺伝的プログラミングのいくつかの変形実施態様について説明した。 本明細書の特定の構成および方法は、本発明の原則を例示したものに過ぎない 。当業者なら、本発明の真の趣旨および範囲から逸脱せずに形態および細部に多 数の修正を加えることができる。 本発明を特定の実施形態に関して示したが、本発明をそのように限定されると みなすべきではない。本発明は、添付の請求の範囲によってのみ制限される。
───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,DE, DK,ES,FI,FR,GB,GR,IE,IT,L U,MC,NL,PT,SE),OA(BF,BJ,CF ,CG,CI,CM,GA,GN,ML,MR,NE, SN,TD,TG),AP(KE,LS,MW,SD,S Z,UG),EA(AM,AZ,BY,KG,KZ,MD ,RU,TJ,TM),AL,AM,AT,AT,AU ,AZ,BA,BB,BG,BR,BY,CA,CH, CN,CU,CZ,CZ,DE,DE,DK,DK,E E,EE,ES,FI,FI,GB,GE,HU,IL ,IS,JP,KE,KG,KP,KR,KZ,LC, LK,LR,LS,LT,LU,LV,MD,MG,M K,MN,MW,MX,NO,NZ,PL,PT,RO ,RU,SD,SE,SG,SI,SK,SK,TJ, TM,TR,TT,UA,UG,US,UZ,VN,Y U (71)出願人 アンドレ,デビッド アメリカ合衆国・94025・カリフォルニア 州・メンロ パーク・ライブ オーク ア ヴェニュ・860・4番 (71)出願人 キーン,マーティン・エイ アメリカ合衆国・60630・イリノイ州・シ カゴ・ウエスト グローバ・5733 (72)発明者 コザ,ジョン・アール アメリカ合衆国・94022・カリフォルニア 州・ロス アルトス ヒルズ・ラ レナ レーン・25372 (72)発明者 ベネット,フォレスト・エイチ・ザ サー ド アメリカ合衆国・94306・カリフォルニア 州・パロ アルト イエール ストリー ト・2080 (72)発明者 アンドレ,デビッド アメリカ合衆国・94025・カリフォルニア 州・メンロ パーク・ライブ オーク ア ヴェニュ・860・4番 (72)発明者 キーン,マーティン・エイ アメリカ合衆国・60630・イリノイ州・シ カゴ・ウエスト グローバ・5733

Claims (1)

  1. 【特許請求の範囲】 1.各エンティティが、少なくとも1つの構成処置を含む、様々なサイズおよ び形状のエンティティのポピュレーションを有するシステムにおいて、所定の設 計目標を満たす構造の設計を作成し、一連のステップの反復を含み、各反復が 前記エンティティ内で構成処置を実行し、構成要素値を有するトポロジ構成内 に複数の種類の構成要素を備える構造を開発するステップと、 前記開発した構造の挙動を決定するステップと の各システム実施ステップを含むことを特徴とする反復方法。 2.構成処置を実行するステップが、エンブリオニック構造に構成処置を適用 することを含むことを特徴とする請求項1に記載の方法。 3.前記エンブリオニック構造が前記ポピュレーション内のすべてのエンティ ティに共通することを特徴とする請求項2に記載の方法。 4.前記各エンティティが、関連付けられたエンブリオニック構造を有し、少 なくとも1つの前記エンティティの前記関連付けられたエンブリオニック構造が 、他の前記エンティティの前記関連付けられたエンブリオニック構造とは異なる ことを特徴とする請求項2に記載の方法。 5.エンブリオニック構造が少なくとも1つの所定の構成要素を含むことを特 徴とする請求項2に記載の方法。 6.エンブリオニック構造が少なくとも1つの所定の接続を含むことを特徴と する請求項2に記載の方法。 7.前記構成処置が、構成要素のリストと、前記構成要素どうしの接合点の間 の接続のリストと、前記構成要素の値とからなる形式の前記構造の中間記述を生 成することを特徴とする請求項1に記載の方法。 8.挙動を決定するステップが、前記構造をシミュレートすることを含むこと を特徴とする請求項1に記載の方法。 9.挙動を決定する前記ステップが、前記構造を表す物理的実現を観測するこ とを含み、前記物理的実現が、前記構成処置の実行に応答して構成されることを 特徴とする請求項1に記載の方法。 10.前記エンティティが構成処置のプログラム・ツリーであることを特徴と する請求項1に記載の方法。 11.さらに、 新しいエンティティを作成する操作を選択するステップと、 前記選択した操作がクロスオーバである場合に、 前記ポピュレーションから少なくとも2つのエンティティの群を選択し、 前記選択したエンティティのうちの少なくとも1つのエンティティの選択が、前 記エンティティに関連付けられた前記開発した構造が前記所定の設計目標を満た す程度に基づいて行われるステップと、 前記選択したクロスオーバ操作を実行するステップと、 前記選択した操作がクロスオーバ以外の操作である場合に、 前記ポピュレーションから1つのエンティティを選択し、前記選択したエ ンティティが、前記エンティティに関連付けられた前記開発した構造が前記所定 の設計目標を満たす程度に基づくものであるステップと、 前記選択した操作を実行するステップと、 前記選択した操作によって作成された前記エンティティを前記ポピュレーショ ンに追加するステップとを含むことを特徴とする請求項1に記載の方法。 12.前記操作のうちの1つが繁殖であり、前記繁殖操作が、前記選択したエ ンティティを変更せずに前記ポピュレーションに保持することを特徴とする請求 項11に記載の方法。 13.前記操作のうちの1つが突然変異であり、前記突然変異操作が、前記選 択したエンティティを突然変異させ、それによって、前記選択したエンティティ の少なくとも一部が、ランダムに生成された部分で置き換えられ、新しいエンテ ィティが生成されることを特徴とする請求項11に記載の方法。 14.前記操作のうちの1つがエンティティのポピュレーションのうちの少な くとも1つのエンティティのアーキテクチャを変更することを特徴とする請求項 11に記載の方法。 15.前記操作のうちの前記1つがブランチ複製を含むことを特徴とする請求 項14に記載の方法。 16.前記操作のうちの前記1つが引数複製を含むことを特徴とする請求項1 4に記載の方法。 17.前記操作のうちの前記1つがブランチ削除を含むことを特徴とする請求 項14に記載の方法。 18.前記操作のうちの前記1つが引数削除を含むことを特徴とする請求項1 4に記載の方法。 19.前記操作のうちの前記1つがブランチ作成を含むことを特徴とする請求 項14に記載の方法。 20.前記操作のうちの前記1つが引数作成を含むことを特徴とする請求項1 4に記載の方法。 21.さらに、前記エンティティに関連付けられた前記開発した構造が前記所 定の設計目標を満たさない程度に基づいて少なくとも1つのエンティティを削除 するステップを含むことを特徴とする請求項11に記載の方法。 22.前記エンティティがそれぞれ、サブエンティティで構成され、前記サブ エンティティのうちの少なくとも1つが外部から呼出し可能であり、ポピュレー ション中の少なくとも1つの前記エンティティが、少なくとも1つの内部で呼出 し可能なサブエンティティを有し、前記少なくとも1つの外部から呼出し可能な サブエンティティが、内部で呼出し可能なサブエンティティの呼出しを含むこと ができ、さらに、内部で呼出し可能な各サブエンティティが、内部で呼出し可能 なサブエンティティの呼出しを含むことができることを特徴とする請求項1に記 載の方法。 23.少なくとも1つの書込みヘッドが構成要素に関連付けられることを特徴 とする請求項1に記載の方法。 24.前記エンティティが、制約付き構文構造を満足することを特徴とする請 求項1に記載の方法。 25.各エンティティが、少なくとも1つの文脈対応構成処置を含む、エンテ ィティのポピュレーションを有するシステムにおいて、所定の設計目標を満たす 構造の設計を作成し、一連のステップの反復を含み、各反復が、 前記少なくとも1つの文脈対応構成処置を含む構成処置を前記エンティティ内 で実行し、構成要素値を有するトポロジ構成の構造を開発するステップと、 前記開発した構造の動作を決定するステップの各システム実施ステップを含む ことを特徴とする反復方法。 26.各エンティティが、少なくとも1つの構成処置を含む、様々なサイズお よび形状のエンティティのポピュレーションを有するシステムにおいて、所定の 設計目標を満たす回路の設計を作成し、一連のステップの反復を含み、各反復が 、 前記エンティティ内で構成処置を実行し、構成要素値を有するトポロジ構成の 複数の種類の構成要素を含むように設計された回路を開発するステップと、 前記開発した回路構造の動作を決定するステップの各システム実施ステップを 含むことを特徴とする反復方法。 27.前記複数の種類の構成要素が、抵抗、コンデンサ、インダクタ、ダイオ ード、トランジスタ、またはエネルギー源からなる群から得た少なくとも2つの 構成要素の種類を含むことを特徴とする請求項26に記載の方法,。 28.構成処置を実行するステップが、エンブリオニック構造に構成処置を適 用することを含むことを特徴とする請求項27に記載の方法。 29.前記エンブリオニック構造が前記ポピュレーション中のすべてのエンテ ィティに共通することを特徴とする請求項28に記載の方法。 30.前記各エンティティが、関連付けられたエンブリオニック構造を有し、 少なくとも1つの前記エンティティの前記関連付けられたエンブリオニック構造 が、他の前記エンティティの前記関連付けられたエンブリオニック構造とは異な ることを特徴とする請求項28に記載の方法。 31.エンブリオニック構造が、少なくとも1つの所定の構成要素を含むこと を特徴とする請求項28に記載の方法。 32.エンブリオニック構造が、少なくとも1つの所定の接続を含むことを特 徴とする請求項28に記載の方法。 33.前記構成処置が、構成要素のリストと、前記構成要素どうしの接合点の 間の接続のリストと、前記構成要素の値とからなる形式の前記回路のネットリス トを生成することを特徴とする請求項27に記載の方法。 34.動作を決定するステップが、前記構造をシミュレートすることを含むこ とを特徴とする請求項27に記載の方法。 35.動作を決定する前記ステップが、前記構造を表す物理的実現を観測する ことを含み、前記物理的実現が、前記構成処置の実行に応答して構成されること を特徴とする請求項27に記載の方法。 36.前記エンティティが構成処置のプログラム・ツリーであることを特徴と する請求項27に記載の方法。 37.さらに、 新しいエンティティを作成する操作を選択するステップと、 前記選択した操作がクロスオーバである場合に、 前記ポピュレーションから少なくとも2つのエンティティの群を選択し、 前記選択したエンティティのうちの少なくとも1つのエンティティの選択が、前 記エンティティに関連付けられた前記開発した構造が前記所定の設計目標を満た す程度に基づいて行われるステップと、 前記選択したクロスオーバ操作を実行するステップと、 前記選択した操作がクロスオーバ以外の操作である場合に、 前記ポピュレーションから1つのエンティティを選択し、前記選択したエ ンティティが、前記エンティティに関連付けられた前記開発した構造が前記所定 の設計目標を満たす程度に基づくものであるステップと、 前記選択した操作を実行するステップと、 前記選択した操作によって作成された前記エンティティを前記ポピュレーショ ンに追加するステップとを含むことを特徴とする請求項27に記載の方法。 38.前記操作のうちの1つが繁殖であり、前記繁殖操作が、前記選択したエ ンティティを変更せずに前記ポピュレーションに保持することを特徴とする請求 項37に記載の方法。 39.前記操作のうちの1つが突然変異であり、前記突然変異操作が、前記選 択したエンティティを突然変異させ、それによって、前記選択したエンティティ の少なくとも一部が、ランダムに生成された部分で置き換えられ、新しいエンテ ィティが生成されることを特徴とする請求項37に記載の方法。 40.前記操作のうちの1つがエンティティのポピュレーションのうちの少な くとも1つのエンティティのアーキテクチャを変更することを特徴とする請求項 37に記載の方法。 41.前記操作のうちの前記1つがブランチ複製を含むことを特徴とする請求 項40に記載の方法。 42.前記操作のうちの前記1つが引数複製を含むことを特徴とする請求項4 0に記載の方法。 43.前記操作のうちの前記1つがブランチ削除を含むことを特徴とする請求 項40に記載の方法。 44.前記操作のうちの前記1つが引数削除を含むことを特徴とする請求項4 0に記載の方法。 45.前記操作のうちの前記1つがブランチ作成を含むことを特徴とする請求 項41に記載の方法。 46.前記操作のうちの前記1つが引数作成を含むことを特徴とする請求項4 0に記載の方法。 47.さらに、前記エンティティに関連付けられた前記開発した構造が前記所 定の設計目標を満たさない程度に基づいて少なくとも1つのエンティティを削除 するステップを含むことを特徴とする請求項37に記載の方法。 48.前記エンティティがそれぞれ、サブエンティティで構成され、前記サブ エンティティのうちの少なくとも1つが外部から呼出し可能であり、ポピュレー ション中の少なくとも1つの前記エンティティが、少なくとも1つの内部で呼出 し可能なサブエンティティを有し、前記少なくとも1つの外部から呼出し可能な サブエンティティが、内部で呼出し可能なサブエンティティの呼出しを含むこと ができ、さらに、内部で呼出し可能な各サブエンティティが、内部で呼出し可能 なサブエンティティの呼出しを含むことができることを特徴とする請求項27に 記載の方法。 49.少なくとも1つの書込みヘッドが構成要素に関連付けられることを特徴 とする請求項27に記載の方法。 50.前記エンティティが、制約付き構文構造を満足することを特徴とする請 求項27に記載の方法。 51.少なくとも1つの前記構成要素がサブサーキットであることを特徴とす る請求項26に記載の方法。 52.前記物理的実現がフィールド・プログラマブル・デバイスであることを 特徴とする請求項35に記載の方法。 53.前記フィールド・プログラマブル・デバイスがディジタル・フィールド ・プログラマブル・ゲート・アレイであることを特徴とする請求項52に記載の 方法。 54.前記フィールド・プログラマブル・デバイスがフィールド・プログラマ ブル・アナログ・アレイであることを特徴とする請求項52に記載の方法。 55.前記フィールド・プログラマブル・デバイスがフィールド・プログラマ ブル・パーツ・アレイであることを特徴とする請求項52に記載の方法。 56.各エンティティが、少なくとも1つの構成処置を含む、様々なサイズお よび形状のエンティティのポピュレーションを有するシステムにおいて、所定の 設計目標を満たす構造の設計を作成し、一連のステップの反復を含み、各反復が 、 構成処置を前記エンティティ内で実行し、構成要素同志が出会う各ノードでの 電流の値の和が零になるという法則に従い、かつ構成要素の各閉ループの周りの 電圧の値の和が零になるという法則に従う、構成要素値を有するトポロジ構成の 回路を開発するステップと、 前記開発した構造の動作を決定するステップの各システム実施ステップを含む ことを特徴とする反復方法。 57.各エンティティが、少なくとも1つの構成処置を含む、様々なサイズお よび形状のエンティティのポピュレーションを有するシステムにおいて、所定の 設計目標を満たす構造の設計を作成し、一連のステップの反復を含み、各反復が 、 構成処置を前記エンティティ内で実行し、構成要素同志が出会う各ノードでの 力の和が零になるという法則に従う、構成要素値を有するトポロジ構成の構造を 開発するステップと、 前記開発した構造の動作を決定するステップの各システム実施ステップを含む ことを特徴とする反復方法。
JP53106797A 1996-02-20 1997-02-20 遺伝的プログラミングを使用した複雑な構造の自動設計の方法および装置 Expired - Fee Related JP3958793B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/603,648 US5867397A (en) 1996-02-20 1996-02-20 Method and apparatus for automated design of complex structures using genetic programming
US08/603,648 1996-02-20
PCT/US1997/002915 WO1997032259A1 (en) 1996-02-20 1997-02-20 Method and apparatus for automated design of complex structures using genetic programming

Publications (3)

Publication Number Publication Date
JP2000508096A true JP2000508096A (ja) 2000-06-27
JP2000508096A5 JP2000508096A5 (ja) 2004-11-25
JP3958793B2 JP3958793B2 (ja) 2007-08-15

Family

ID=24416350

Family Applications (1)

Application Number Title Priority Date Filing Date
JP53106797A Expired - Fee Related JP3958793B2 (ja) 1996-02-20 1997-02-20 遺伝的プログラミングを使用した複雑な構造の自動設計の方法および装置

Country Status (6)

Country Link
US (2) US5867397A (ja)
EP (1) EP0954798A1 (ja)
JP (1) JP3958793B2 (ja)
AU (1) AU728013B2 (ja)
CA (1) CA2256044C (ja)
WO (1) WO1997032259A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006155449A (ja) * 2004-12-01 2006-06-15 Matsushita Electric Ind Co Ltd 分散遺伝的アルゴリズムを用いた最適化処理方法
JP2014170556A (ja) * 2005-08-18 2014-09-18 D.E. Shaw Research LLC 粒子相互作用を計算するための並行計算アーキテクチャ

Families Citing this family (176)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3358780B2 (ja) * 1996-02-02 2002-12-24 富士通株式会社 最適解探索装置
US5867397A (en) * 1996-02-20 1999-02-02 John R. Koza Method and apparatus for automated design of complex structures using genetic programming
JP3693420B2 (ja) * 1996-06-20 2005-09-07 株式会社リコー 集積回路の消費電力見積り装置
GB9614927D0 (en) * 1996-07-16 1996-09-04 British Telecomm Arranging data signals defining a network
JP3254393B2 (ja) * 1996-11-19 2002-02-04 三菱電機株式会社 遺伝的アルゴリズムマシン及び遺伝的アルゴリズムマシンの製造方法及び遺伝的アルゴリズムの実行方法
US6272479B1 (en) * 1997-07-21 2001-08-07 Kristin Ann Farry Method of evolving classifier programs for signal processing and control
US6336107B1 (en) * 1997-07-31 2002-01-01 Matsushita Electric Industrial Co., Ltd Method and system of automatic arrangement of composing elements
WO1999053530A2 (en) * 1998-04-13 1999-10-21 Gte Internetworking Incorporated System and method for evaluating genetic programming parse-trees
JP3449923B2 (ja) * 1998-06-02 2003-09-22 富士通株式会社 ネットワークトポロジー設計装置及びネットワークトポロジー設計方法並びにネットワークトポロジー設計プログラムを記録した記録媒体
US6233493B1 (en) * 1998-09-16 2001-05-15 I2 Technologies, Inc. Computer-implemented product development planning method
US6253365B1 (en) * 1998-10-06 2001-06-26 David P. Baldwin Automated design system for digital circuits
US6314390B1 (en) * 1998-11-30 2001-11-06 International Business Machines Corporation Method of determining model parameters for a MOSFET compact model using a stochastic search algorithm
ATE231992T1 (de) * 1998-11-30 2003-02-15 Actcon Control Ab Verfahren um objekte in den arbeitsbereich in eine rechneranwendung einzubringen
US6502238B1 (en) * 1998-12-31 2002-12-31 Honeywell International Inc. System for constructing and distributing block-based fragments
US6539532B1 (en) * 1999-02-26 2003-03-25 Xilinx, Inc. Method and apparatus for relocating elements in an evolvable configuration bitstream
US6523016B1 (en) * 1999-04-12 2003-02-18 George Mason University Learnable non-darwinian evolution
US6532453B1 (en) 1999-04-12 2003-03-11 John R. Koza Genetic programming problem solver with automatically defined stores loops and recursions
US6577992B1 (en) * 1999-05-07 2003-06-10 Nassda Corporation Transistor level circuit simulator using hierarchical data
US6424959B1 (en) * 1999-06-17 2002-07-23 John R. Koza Method and apparatus for automatic synthesis, placement and routing of complex structures
US6107975A (en) * 1999-06-28 2000-08-22 The United States Of America As Represented By The National Security Agency Programmable antenna
US6148265A (en) * 1999-08-27 2000-11-14 Hewlett-Packard Company Valence correct molecular structures using cellular encoding
US6378117B1 (en) * 1999-08-27 2002-04-23 Hewlett-Packard Company Cellular encoding using typed development operators
US6289455B1 (en) * 1999-09-02 2001-09-11 Crypotography Research, Inc. Method and apparatus for preventing piracy of digital content
US6564194B1 (en) * 1999-09-10 2003-05-13 John R. Koza Method and apparatus for automatic synthesis controllers
US6526556B1 (en) 1999-09-13 2003-02-25 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Evolutionary technique for automated synthesis of electronic circuits
US6728666B1 (en) * 1999-09-13 2004-04-27 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Evolvable circuit with transistor-level reconfigurability
US7072814B1 (en) * 1999-09-13 2006-07-04 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Evolutionary technique for automated synthesis of electronic circuits
US7072816B1 (en) * 1999-09-30 2006-07-04 International Business Machines Corporation Method and system for providing hierarchical self-checking in ASIC simulation
US20020055903A1 (en) * 1999-11-01 2002-05-09 Neal Solomon System, method, and apparatus for a cooperative communications network
US20030074301A1 (en) * 1999-11-01 2003-04-17 Neal Solomon System, method, and apparatus for an intelligent search agent to access data in a distributed network
US20020069134A1 (en) * 1999-11-01 2002-06-06 Neal Solomon System, method and apparatus for aggregation of cooperative intelligent agents for procurement in a distributed network
US20020046157A1 (en) * 1999-11-01 2002-04-18 Neal Solomon System, method and apparatus for demand-initiated intelligent negotiation agents in a distributed network
US6327552B2 (en) * 1999-12-28 2001-12-04 Intel Corporation Method and system for determining optimal delay allocation to datapath blocks based on area-delay and power-delay curves
US6578176B1 (en) * 2000-05-12 2003-06-10 Synopsys, Inc. Method and system for genetic algorithm based power optimization for integrated circuit designs
US7542948B2 (en) * 2000-06-16 2009-06-02 Honda Giken Kogyo Kabushiki Kaisha Genetic design method and apparatus
US6477444B1 (en) 2000-07-07 2002-11-05 Fuji Xerox Co., Ltd. Method for the automated design of decentralized controllers for modular self-reconfigurable robots
US6539534B1 (en) * 2000-08-25 2003-03-25 Xilinx, Inc. Apparatus and method for automatically generating circuit designs that meet user output requirements
AU2001295591A1 (en) * 2000-10-13 2002-04-22 Fraunhofer-Gesellschaft Zur Forderung Der Angewandten Forschung E.V. A method for supervised teaching of a recurrent artificial neural network
US6557153B1 (en) * 2000-11-15 2003-04-29 Reshape, Inc. Method and system for implementing a user interface for performing physical design operations on an integrated circuit netlist
US20030142036A1 (en) * 2001-02-08 2003-07-31 Wilhelm Michael John Multiband or broadband frequency selective surface
US20030076276A1 (en) * 2001-02-08 2003-04-24 Church Kenneth H. Methods and systems for embedding electrical components in a device including a frequency responsive structure
US7365701B2 (en) * 2001-02-08 2008-04-29 Sciperio, Inc. System and method for generating a genetically engineered configuration for at least one antenna and/or frequency selective surface
GB0106459D0 (en) * 2001-03-15 2001-05-02 Marconi Comm Ltd Hardware design using evolutionary algorithms
US7657412B2 (en) * 2001-03-29 2010-02-02 Honda Giken Kogyo Kabushiki Kaisha Method of and apparatus for displaying structure optimizing result
US6557149B2 (en) * 2001-04-04 2003-04-29 Intel Corporation Algorithm for finding vectors to stimulate all paths and arcs through an LVS gate
FR2824654B1 (fr) * 2001-05-14 2003-08-15 Saint Venant Barre Raoul De Outil pour controler et commander le developpement d'organismes complexes
US7424461B2 (en) * 2001-06-28 2008-09-09 Hewlett-Packard Development Company, L.P. Multi-module genetic programming with multiple genetic data representations
US6910192B2 (en) * 2001-09-06 2005-06-21 Synopsys, Inc. Method of robust technology design using rational robust optimization
US6807652B2 (en) * 2001-09-06 2004-10-19 Synopsys, Inc. Method of robust semiconductor circuit products design using rational robust optimization
WO2003038749A1 (en) * 2001-10-31 2003-05-08 Icosystem Corporation Method and system for implementing evolutionary algorithms
US6968517B2 (en) * 2001-11-07 2005-11-22 Synopsys Inc. Method of interactive optimization in circuit design
US7328195B2 (en) * 2001-11-21 2008-02-05 Ftl Systems, Inc. Semi-automatic generation of behavior models continuous value using iterative probing of a device or existing component model
US6738961B2 (en) * 2002-02-28 2004-05-18 Hewlett-Packard Development Company, L.P. Computer readable medium and a method for representing an electronic circuit as a routing-resource graph
US7454733B2 (en) * 2002-03-06 2008-11-18 International Business Machines Corporation Interconnect-aware methodology for integrated circuit design
US6785870B2 (en) * 2002-03-14 2004-08-31 Hewlett-Packard Development Company, L.P. Method of optimizing high performance CMOS integrated circuit designs for power consumption and speed using global and greedy optimizations in combination
US20030188271A1 (en) * 2002-04-02 2003-10-02 Institute Of High Performance Computing System and method for integrated circuit design
US20030208348A1 (en) * 2002-05-02 2003-11-06 Arthur Williams Method and system for simulation of frequency response effeccts on a transmission line due to coupling to a second electrical network by direct synthesis of nulls
DE10226915A1 (de) * 2002-06-17 2004-01-08 Infineon Technologies Ag Verfahren zum Verändern von Entwurfsdaten für die Herstellung eines Bauteils sowie zugehörige Einheiten
US6769097B2 (en) * 2002-06-27 2004-07-27 Lsi Logic Corporation Scale-invariant topology and traffic allocation in multi-node system-on-chip switching fabrics
US6847851B1 (en) 2002-07-12 2005-01-25 John R. Koza Apparatus for improved general-purpose PID and non-PID controllers
US6859914B2 (en) * 2002-08-27 2005-02-22 Synopsys, Inc. Smooth operators in optimization of circuit structures
US6789233B2 (en) * 2002-08-28 2004-09-07 Micron Technology, Inc. Method for determining a matched routing arrangement for semiconductor devices
US20040122534A1 (en) * 2002-08-30 2004-06-24 Paulin Matthew A. Method for facilitating computer-based modeling
US7505886B1 (en) * 2002-09-03 2009-03-17 Hewlett-Packard Development Company, L.P. Technique for programmatically obtaining experimental measurements for model construction
WO2004023351A1 (en) * 2002-09-06 2004-03-18 Jonathan Westphal Vector logic techniques for multilevel minimization
US7225415B2 (en) * 2002-09-06 2007-05-29 Vectorlog, Inc. Vector logic techniques for multilevel minimization with multiple outputs
US7865534B2 (en) * 2002-09-30 2011-01-04 Genstruct, Inc. System, method and apparatus for assembling and mining life science data
US20040133355A1 (en) * 2002-10-01 2004-07-08 Target Discovery, Inc. Methods and compositions utilizing evolutionary computation techniques and differential data sets
AU2003298668A1 (en) * 2002-11-20 2004-06-15 Genstruct, Inc. Epistemic engine
US20040186804A1 (en) * 2003-03-19 2004-09-23 Anindya Chakraborty Methods and systems for analytical-based multifactor multiobjective portfolio risk optimization
US7640201B2 (en) * 2003-03-19 2009-12-29 General Electric Company Methods and systems for analytical-based multifactor Multiobjective portfolio risk optimization
US7593880B2 (en) * 2003-03-19 2009-09-22 General Electric Company Methods and systems for analytical-based multifactor multiobjective portfolio risk optimization
US8010467B2 (en) * 2003-03-24 2011-08-30 Fiske Software Llc Active element machine computation
US8019705B2 (en) * 2003-03-24 2011-09-13 Fiske Software, LLC. Register and active element machines: commands, programs, simulators and translators
US7043463B2 (en) * 2003-04-04 2006-05-09 Icosystem Corporation Methods and systems for interactive evolutionary computing (IEC)
US7260562B2 (en) * 2003-06-30 2007-08-21 Intel Corporation Solutions for constraint satisfaction problems requiring multiple constraints
US7051279B2 (en) * 2003-07-08 2006-05-23 Intentional Software Corporation Method and system for providing multiple levels of help information for a computer program
WO2005008579A2 (en) * 2003-07-16 2005-01-27 Idaho Research Foundation, Inc. Biomimic artificial neuron
US7333960B2 (en) * 2003-08-01 2008-02-19 Icosystem Corporation Methods and systems for applying genetic operators to determine system conditions
US7437336B2 (en) * 2003-08-01 2008-10-14 George Mason Intellectual Properties, Inc. Polyoptimizing genetic algorithm for finding multiple solutions to problems
US7356518B2 (en) * 2003-08-27 2008-04-08 Icosystem Corporation Methods and systems for multi-participant interactive evolutionary computing
US20050071302A1 (en) * 2003-09-29 2005-03-31 Mcguffin Tyson R. Method and system for mapping genes to characteristics in a genetic optimization process
US7623139B1 (en) * 2003-10-07 2009-11-24 Enventive Engineering, Inc. Design and modeling system and methods
AU2004296023A1 (en) * 2003-11-26 2005-06-16 Genstruct, Inc. System, method and apparatus for causal implication analysis in biological networks
GB2408599A (en) * 2003-11-29 2005-06-01 Ibm Multi-objective genetic optimization method
US7243086B2 (en) * 2003-12-19 2007-07-10 Fuji Xerox Co., Ltd. Methods and systems for automatically generating provably correct computer program code
US20050154535A1 (en) * 2004-01-09 2005-07-14 Genstruct, Inc. Method, system and apparatus for assembling and using biological knowledge
US20050197979A1 (en) * 2004-01-21 2005-09-08 Anderson David M. Speculation count in a genetic algorithm
US8219477B2 (en) * 2004-02-20 2012-07-10 General Electric Company Systems and methods for multi-objective portfolio analysis using pareto sorting evolutionary algorithms
US7630928B2 (en) * 2004-02-20 2009-12-08 General Electric Company Systems and methods for multi-objective portfolio analysis and decision-making using visualization techniques
US8126795B2 (en) * 2004-02-20 2012-02-28 General Electric Company Systems and methods for initial sampling in multi-objective portfolio analysis
US7469228B2 (en) * 2004-02-20 2008-12-23 General Electric Company Systems and methods for efficient frontier supplementation in multi-objective portfolio analysis
US7542932B2 (en) * 2004-02-20 2009-06-02 General Electric Company Systems and methods for multi-objective portfolio optimization
US20050218398A1 (en) * 2004-04-06 2005-10-06 Availableip.Com NANO-electronics
US7019391B2 (en) * 2004-04-06 2006-03-28 Bao Tran NANO IC packaging
US7707220B2 (en) * 2004-07-06 2010-04-27 Icosystem Corporation Methods and apparatus for interactive searching techniques
US20060010117A1 (en) * 2004-07-06 2006-01-12 Icosystem Corporation Methods and systems for interactive search
US7395191B2 (en) * 2004-07-28 2008-07-01 Blueridge Analytic, Inc. Computer-implemented land planning system and method designed to generate at least one conceptual fit solution to a user-defined land development problem
US7287236B2 (en) * 2004-09-30 2007-10-23 Alcatel Lucent Electronic device connectivity analysis methods and systems
US7437335B2 (en) * 2004-12-07 2008-10-14 Eric Baum Method and system for constructing cognitive programs
US20060140860A1 (en) * 2004-12-08 2006-06-29 Genstruct, Inc. Computational knowledge model to discover molecular causes and treatment of diabetes mellitus
US8229871B2 (en) * 2004-12-29 2012-07-24 Woolf Tod M Systems and methods for computer aided inventing
US20060218107A1 (en) * 2005-03-24 2006-09-28 The University Of Tennessee Research Foundation Method for controlling a product production process
JP2006295580A (ja) * 2005-04-12 2006-10-26 Matsushita Electric Ind Co Ltd アンテナの製造方法及び通信機器の製造方法
WO2006113799A2 (en) * 2005-04-15 2006-10-26 Baum Eric B Planning method and system for use in cognitive programs
US20060293045A1 (en) * 2005-05-27 2006-12-28 Ladue Christoph K Evolutionary synthesis of a modem for band-limited non-linear channels
DE102005024379A1 (de) * 2005-05-27 2006-11-30 Universität Mannheim Verfahren zur Erzeugung und/oder Einprägung eines wiedergewinnbaren kryptographischen Schlüssels bei der Herstellung einer topographischen Struktur
US7370019B2 (en) * 2005-06-23 2008-05-06 Ecole Polytechnique Federal De Lausanne Method and device for evolving a network using a genetic representation
US8423323B2 (en) * 2005-09-21 2013-04-16 Icosystem Corporation System and method for aiding product design and quantifying acceptance
US7734423B2 (en) * 2005-09-23 2010-06-08 Crowley Davis Research, Inc. Method, system, and apparatus for virtual modeling of biological tissue with adaptive emergent functionality
US7711674B2 (en) * 2005-11-01 2010-05-04 Fuji Xerox Co., Ltd. System and method for automatic design of components in libraries
WO2007089691A2 (en) 2006-01-30 2007-08-09 Blue Ridge Analytics, Inc. Computer-implemented land planning system and method
US8332188B2 (en) * 2006-03-03 2012-12-11 Solido Design Automation Inc. Modeling of systems using canonical form functions and symbolic regression
US20070225956A1 (en) * 2006-03-27 2007-09-27 Dexter Roydon Pratt Causal analysis in complex biological systems
EP2032224A2 (en) * 2006-06-26 2009-03-11 Icosystem Corporation Methods and systems for interactive customization of avatars and other animate or inanimate items in video games
US20080004737A1 (en) * 2006-06-30 2008-01-03 Bennardo Frank L Computerized engineering design and operating system
US20080103701A1 (en) * 2006-10-31 2008-05-01 Motorola, Inc. Automatic signal processor design software system
WO2008079097A1 (en) * 2006-12-22 2008-07-03 Singapore Technologies Dynamics Pte Ltd Method and apparatus for automatic configuration of meta-heuristic algorithms in a problem solving environment
US7792816B2 (en) * 2007-02-01 2010-09-07 Icosystem Corporation Method and system for fast, generic, online and offline, multi-source text analysis and visualization
US20080270330A1 (en) 2007-04-24 2008-10-30 Yedidia Jonathan S Multi-Cellular Logic Circuits
US7865454B2 (en) * 2007-06-29 2011-01-04 Accenture Global Services Limited Feature configuration analysis tool
WO2009029712A1 (en) * 2007-08-29 2009-03-05 Genstruct, Inc. Computer-aided discovery of biomarker profiles in complex biological systems
US20090070087A1 (en) * 2007-09-07 2009-03-12 Newman Richard D Virtual tissue with emergent behavior and modeling method for producing the tissue
WO2009042754A1 (en) * 2007-09-26 2009-04-02 Genstruct, Inc. Software assisted methods for probing the biochemical basis of biological states
US7934189B2 (en) * 2008-01-25 2011-04-26 Infineon Technologies Ag Method of making an integrated circuit including simplifying metal shapes
US7962878B2 (en) * 2008-02-26 2011-06-14 Infineon Technologies Ag Method of making an integrated circuit using pre-defined interconnect wiring
US8296120B2 (en) * 2008-06-20 2012-10-23 Utah State University FPGA simulated annealing accelerator
WO2010129909A1 (en) * 2009-05-07 2010-11-11 Cypress Semiconductor Corporation Development, programming, and debugging environment
US10321840B2 (en) * 2009-08-14 2019-06-18 Brainscope Company, Inc. Development of fully-automated classifier builders for neurodiagnostic applications
US20110060895A1 (en) * 2009-09-09 2011-03-10 Neal Solomon System and methods for generating and organizing modular program code components
TWI529551B (zh) * 2009-09-10 2016-04-11 卡登斯系統設計公司 用於實作圖形可編輯參數化單元之系統及方法
US10366180B2 (en) 2010-03-15 2019-07-30 Bentley Systems, Inc. Computer-implemented land planning system and method with automated parking area design tools
US9384591B2 (en) 2010-09-17 2016-07-05 Enventive Engineering, Inc. 3D design and modeling system and methods
US9721043B2 (en) 2010-10-29 2017-08-01 Bentley Systems, Incorporated Computer-implemented land planning system and method with GIS integration
US10614255B2 (en) * 2010-10-29 2020-04-07 Bentley Systems, Incorporated Computer-implemented land planning system and method with GIS integration
US20140029658A1 (en) * 2012-07-26 2014-01-30 Massachusetts Institute Of Technology Analog/Digital Co-Design Methodology to Achieve High Linearity and Low Power Dissipation in a Radio Frequency (RF) Receiver
US8964901B2 (en) 2011-01-07 2015-02-24 Massachusetts Institute Of Technology Analog/digital co-design methodology to achieve high linearity and low power dissipation in a radio frequency (RF) receiver
US10268843B2 (en) 2011-12-06 2019-04-23 AEMEA Inc. Non-deterministic secure active element machine
JP5630870B2 (ja) * 2011-02-18 2014-11-26 ルネサスエレクトロニクス株式会社 半導体集積回路のレイアウト方法及びプログラム
US20120310619A1 (en) * 2011-06-06 2012-12-06 Solido Design Automation Inc. Fast function extraction
US8453101B1 (en) 2011-11-22 2013-05-28 International Business Machines Corporation Method, system and program storage device for generating accurate performance targets for active semiconductor devices during new technology node development
JP2013120558A (ja) * 2011-12-08 2013-06-17 Fujitsu Ltd 情報処理装置、試験方法、及びプログラム
US8832635B2 (en) * 2012-01-06 2014-09-09 Mentor Graphics Corporation Simulation of circuits with repetitive elements
US9052703B2 (en) * 2012-02-02 2015-06-09 Emerson Process Management Power & Water Solutions, Inc. Enhanced sequential method for solving pressure/flow network parameters in a real-time distributed industrial process simulation system
US9799040B2 (en) 2012-03-27 2017-10-24 Iprova Sarl Method and apparatus for computer assisted innovation
US8924909B2 (en) 2012-06-13 2014-12-30 Purdue Research Foundation Microelectromechanical system design and layout
US8958470B2 (en) 2012-07-26 2015-02-17 Massachusetts Institute Of Technology Method and apparatus for sparse polynomial equalization of RF receiver chains
US20140278328A1 (en) 2013-03-15 2014-09-18 Nvidia Corporation System, method, and computer program product for constructing a data flow and identifying a construct
US9015643B2 (en) * 2013-03-15 2015-04-21 Nvidia Corporation System, method, and computer program product for applying a callback function to data values
US9323502B2 (en) 2013-03-15 2016-04-26 Nvidia Corporation System, method, and computer program product for altering a line of code
US9015646B2 (en) 2013-04-10 2015-04-21 Nvidia Corporation System, method, and computer program product for translating a hardware language into a source database
US9171115B2 (en) 2013-04-10 2015-10-27 Nvidia Corporation System, method, and computer program product for translating a common hardware database into a logic code model
US9021408B2 (en) 2013-04-10 2015-04-28 Nvidia Corporation System, method, and computer program product for translating a source database into a common hardware database
US8887109B1 (en) * 2013-05-17 2014-11-11 Synopsys, Inc. Sequential logic sensitization from structural description
US9032355B2 (en) * 2013-10-03 2015-05-12 Helic S.A. System and method for integrated transformer synthesis and optimization using constrained optimization problem
US9218445B2 (en) * 2014-01-23 2015-12-22 International Business Machines Corporation Implementing enhanced physical design quality using historical placement analytics
US10459925B2 (en) 2014-12-08 2019-10-29 Iprova Sarl Computer-enabled method of assisting to generate an innovation
US10108770B2 (en) 2015-02-10 2018-10-23 Thalia Design Automation Ltd. Corner process for analog circuit design optimization
JP6368686B2 (ja) * 2015-06-10 2018-08-01 東京エレクトロン株式会社 熱処理装置、熱処理装置の調整方法、及び、プログラム
KR20180126452A (ko) 2016-01-05 2018-11-27 센티언트 테크놀로지스 (바베이도스) 리미티드 인공 신경망을 이용하는 웹 인터페이스 생성 및 테스팅
US11403532B2 (en) 2017-03-02 2022-08-02 Cognizant Technology Solutions U.S. Corporation Method and system for finding a solution to a provided problem by selecting a winner in evolutionary optimization of a genetic algorithm
US10726196B2 (en) 2017-03-03 2020-07-28 Evolv Technology Solutions, Inc. Autonomous configuration of conversion code to control display and functionality of webpage portions
WO2019067717A1 (en) 2017-09-27 2019-04-04 Alphamorph, LLC DESIGN TOOL AND METHOD OF USING THE SAME
US11250181B2 (en) 2017-09-29 2022-02-15 Enventive Engineering, Inc. Functional relationship management in product development
US11250184B2 (en) 2017-10-24 2022-02-15 Enventive Engineering, Inc. 3D tolerance analysis system and methods
US10909288B2 (en) * 2017-12-26 2021-02-02 Autodesk, Inc. Techniques for applying generative design to the configuration of mechanical assemblies
US10885236B2 (en) * 2018-01-09 2021-01-05 Autodesk, Inc. Constraint-oriented programming approach to mechanical assembly design
US11574201B2 (en) 2018-02-06 2023-02-07 Cognizant Technology Solutions U.S. Corporation Enhancing evolutionary optimization in uncertain environments by allocating evaluations via multi-armed bandit algorithms
US20210019628A1 (en) * 2018-07-23 2021-01-21 Intel Corporation Methods, systems, articles of manufacture and apparatus to train a neural network
US11755979B2 (en) 2018-08-17 2023-09-12 Evolv Technology Solutions, Inc. Method and system for finding a solution to a provided problem using family tree based priors in Bayesian calculations in evolution based optimization
KR102325616B1 (ko) * 2019-09-04 2021-11-11 경희대학교 산학협력단 뉴럴 네트워크를 이용한 건축 구조 설계 방법 및 이를 실행하는 장치
US11080122B2 (en) * 2019-09-19 2021-08-03 International Business Machines Corporation Software-invisible interrupt for a microprocessor
CN110955971B (zh) * 2019-11-27 2023-09-22 南京工程学院 基于改进遗传算法的电力弹簧优化配置方法
DE102020200911B3 (de) * 2020-01-27 2020-10-29 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren zum Erkennen von Objekten in einer Umgebung eines Fahrzeugs
CN112182968B (zh) * 2020-09-28 2024-01-30 长安大学 一种构建锂离子电池等效电路模型的方法、系统及设备
EP4227951A1 (en) * 2022-02-11 2023-08-16 Samsung Display Co., Ltd. Method for predicting and optimizing properties of a molecule

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4479241A (en) * 1981-08-06 1984-10-23 Buckley Bruce S Self-organizing circuits for automatic pattern recognition and the like and systems embodying the same
US4697242A (en) * 1984-06-11 1987-09-29 Holland John H Adaptive computing system capable of learning and discovery
US4675829A (en) * 1984-07-27 1987-06-23 Intellicorp Corporation Method and apparatus for building knowledge-based systems
US4752890A (en) * 1986-07-14 1988-06-21 International Business Machines Corp. Adaptive mechanisms for execution of sequential decisions
US4821333A (en) * 1986-08-22 1989-04-11 Environmental Research Inst. Of Michigan Machine learning procedures for generating image domain feature detector structuring elements
US5742738A (en) * 1988-05-20 1998-04-21 John R. Koza Simultaneous evolution of the architecture of a multi-part program to solve a problem using architecture altering operations
US4935877A (en) * 1988-05-20 1990-06-19 Koza John R Non-linear genetic algorithms for solving problems
US5343554A (en) * 1988-05-20 1994-08-30 John R. Koza Non-linear genetic process for data encoding and for solving problems using automatically defined functions
WO1991014990A1 (en) * 1990-03-28 1991-10-03 Koza John R Non-linear genetic algorithms for solving problems by finding a fit composition of functions
US5623418A (en) * 1990-04-06 1997-04-22 Lsi Logic Corporation System and method for creating and validating structural description of electronic system
US5222030A (en) * 1990-04-06 1993-06-22 Lsi Logic Corporation Methodology for deriving executable low-level structural descriptions and valid physical implementations of circuits and systems from high-level semantic specifications and descriptions thereof
US5390282A (en) * 1992-06-16 1995-02-14 John R. Koza Process for problem solving using spontaneously emergent self-replicating and self-improving entities
US5465218A (en) * 1993-02-12 1995-11-07 Kabushiki Kaisha Toshiba Element placement method and apparatus
JP2974900B2 (ja) * 1993-12-13 1999-11-10 株式会社 エイ・ティ・アール人間情報通信研究所 自律進化型ハードウェア設計システム
US5557533A (en) * 1994-04-19 1996-09-17 Lsi Logic Corporation Cell placement alteration apparatus for integrated circuit chip physical design automation system
US5581657A (en) * 1994-07-29 1996-12-03 Zerox Corporation System for integrating multiple genetic algorithm applications
US5719794A (en) * 1995-07-19 1998-02-17 United States Of America As Represented By The Secretary Of The Air Force Process for the design of antennas using genetic algorithms
US5867397A (en) * 1996-02-20 1999-02-02 John R. Koza Method and apparatus for automated design of complex structures using genetic programming

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006155449A (ja) * 2004-12-01 2006-06-15 Matsushita Electric Ind Co Ltd 分散遺伝的アルゴリズムを用いた最適化処理方法
JP2014170556A (ja) * 2005-08-18 2014-09-18 D.E. Shaw Research LLC 粒子相互作用を計算するための並行計算アーキテクチャ

Also Published As

Publication number Publication date
EP0954798A4 (ja) 1999-11-10
JP3958793B2 (ja) 2007-08-15
US5867397A (en) 1999-02-02
AU728013B2 (en) 2001-01-04
US6360191B1 (en) 2002-03-19
WO1997032259A1 (en) 1997-09-04
AU2056097A (en) 1997-09-16
CA2256044C (en) 2006-08-22
EP0954798A1 (en) 1999-11-10
CA2256044A1 (en) 1997-09-04

Similar Documents

Publication Publication Date Title
JP2000508096A (ja) 遺伝的プログラミングを使用した複雑な構造の自動設計の方法および装置
Koza et al. Four problems for which a computer program evolved by genetic programming is competitive with human performance
Koza et al. Automated design of both the topology and sizing of analog electrical circuits using genetic programming
Koza et al. Automated WYWIWYG design of both the topology and component values of electrical circuits using genetic programming
Koza et al. Automated synthesis of analog electrical circuits by means of genetic programming
Koza et al. Evolving inventions
JP2881711B2 (ja) 神経回路網の遺伝子的合成
Henz et al. Using Oz for college timetabling
US7624012B2 (en) Method and apparatus for automatically generating a general extraction function calculable on an input signal, e.g. an audio signal to extract therefrom a predetermined global characteristic value of its contents, e.g. a descriptor
CN109344969B (zh) 神经网络系统及其训练方法以及计算机可读介质
Bennett et al. Evolution of a 60 decibel op amp using genetic programming
Koza et al. Evolution using genetic programming of a low-distortion, 96 decibel operational amplifier
US7742908B2 (en) Method for simulating an electrical circuit by synthesis of a physical model, device for simulating an electrical circuit, in particular a musical instrument obtained with that method
Gielen et al. Open analog synthesis system based on declarative models
Fan et al. Exploring multiple design topologies using genetic programming and bond graphs
Hou et al. A novel machine learning algorithm to reduce prediction error and accelerate learning curve for very large datasets
Koza et al. Evolution of a low-distortion, low-bias 60 decibel op amp with good frequency generalization using genetic programming
Andre et al. On the theory of designing circuits using genetic programming and a minimum of domain knowledge
US20140172396A1 (en) Automated model-based method for generating physical systems architectures and optimizing same
Koza et al. Design of a 96 decibel operational amplifier and other problems for which a computer program evolved by genetic programming is competitive with human performance
JP2856141B2 (ja) 遅延情報処理方法及び遅延情報処理装置
Koza et al. Evolution of a tri-state frequency discriminator for the source identification problem using genetic programming
Koza et al. Automatic Synthesis of Circuits
Lindsay et al. Plan2Know: Constructing Plans for Guiding Data Collection
Taylor et al. Algorithmic and knowledge based CAD for VLSI

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040220

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040220

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060509

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20060809

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20060925

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061030

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070109

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070306

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: 20070424

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070511

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110518

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120518

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130518

Year of fee payment: 6

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees