JP6269121B2 - Information processing apparatus, evaluation function learning method, and program - Google Patents
Information processing apparatus, evaluation function learning method, and program Download PDFInfo
- Publication number
- JP6269121B2 JP6269121B2 JP2014021189A JP2014021189A JP6269121B2 JP 6269121 B2 JP6269121 B2 JP 6269121B2 JP 2014021189 A JP2014021189 A JP 2014021189A JP 2014021189 A JP2014021189 A JP 2014021189A JP 6269121 B2 JP6269121 B2 JP 6269121B2
- Authority
- JP
- Japan
- Prior art keywords
- evaluation
- evaluation function
- data
- optimization process
- evaluation value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Complex Calculations (AREA)
Description
本発明は情報処理装置、評価関数学習方法およびプログラムに関する。 The present invention relates to an information processing apparatus, an evaluation function learning method, and a program.
情報処理装置の演算能力が向上するに伴い、情報処理装置を用いて様々な組み合わせ最適化問題を解く試みが行われている。組み合わせ最適化問題の一例として、回路部品としてのセルをプリント板に配置するときに、ある評価基準(例えば、セル間の配線が短いことや占有面積が小さいことなど)の観点から好ましい配置パターンを探索する問題が挙げられる。組み合わせ最適化問題を情報処理装置に解かせることで、好ましい解を自動的に得ることができ、人間の経験や勘に依存していた作業を支援することができる。 As the computing power of information processing devices improves, attempts have been made to solve various combinatorial optimization problems using information processing devices. As an example of the combinatorial optimization problem, when placing cells as circuit components on a printed board, a preferred arrangement pattern from the viewpoint of a certain evaluation criterion (for example, short wiring between cells or small occupied area) The problem to search is mentioned. By letting the information processing apparatus solve the combinatorial optimization problem, it is possible to automatically obtain a preferable solution, and it is possible to support work that depends on human experience and intuition.
組み合わせ最適化問題の中には、最適解を求めるための効率的なアルゴリズムが知られておらず、また、網羅的に全ての組み合わせを検討することが計算量の観点から難しい問題がある。そのような組み合わせ最適化問題については、ヒューリスティクスによって解を探索することがある。例えば、解を探索する最適化処理が複数のステップに分割可能であるとき、評価関数を用いて次の1ステップの操作候補の中から評価値の高い操作を選択していくことで、最適化処理を1ステップずつ進める方法がある。ヒューリスティクスを用いることで、最適解または最適解に近い準最適解を求めることができる。 Among combinatorial optimization problems, an efficient algorithm for obtaining an optimal solution is not known, and there is a problem that it is difficult to comprehensively study all combinations from the viewpoint of computational complexity. For such combinatorial optimization problems, solutions may be searched by heuristics. For example, when an optimization process for searching for a solution can be divided into a plurality of steps, optimization is performed by selecting an operation with a high evaluation value from among operation candidates for the next one step using an evaluation function. There is a method in which processing is advanced step by step. By using heuristics, it is possible to obtain an optimal solution or a suboptimal solution close to the optimal solution.
なお、半導体集積回路のレイアウト設計においてセルを自動配置する集積回路配置装置が提案されている。この集積回路配置装置は、あるチップ領域を分割線(カットライン)によって2つの領域に分割し、カットラインを横切る配線(ネット)の数が最小になるようにセルを2つの領域に振り分ける。また、集積回路配置装置は、信号の遅延時間が大きいクリティカルパスを抽出し、遅延時間が小さくなるように、クリティカルパス上のセルおよびクリティカルパス上のネットに接続されたセルを移動させる。 An integrated circuit placement apparatus that automatically places cells in the layout design of a semiconductor integrated circuit has been proposed. This integrated circuit arrangement device divides a chip area into two areas by dividing lines (cut lines), and distributes the cells into the two areas so that the number of wirings (nets) crossing the cut lines is minimized. Further, the integrated circuit arrangement apparatus extracts a critical path having a large signal delay time, and moves a cell on the critical path and a cell connected to the net on the critical path so that the delay time becomes small.
また、LSI(Large Scale Integration)素子の配置パターンを決定する要素配置装置が提案されている。この要素配置装置は、アルゴリズムまたはヒューリスティクスを用いて配置パターンの解を探索し、探索途中で得られる解候補を画面に逐次表示する。要素配置装置は、画面に表示した解候補に対して、要素間の相対的位置関係や制約条件を変更する操作を許容し、変更された相対的位置関係や制約条件を反映して探索を継続する。 In addition, an element arrangement apparatus that determines an arrangement pattern of LSI (Large Scale Integration) elements has been proposed. This element arrangement device searches for a solution of an arrangement pattern using an algorithm or heuristic, and sequentially displays solution candidates obtained during the search on the screen. The element placement device allows operations to change the relative positional relationship and constraint conditions between elements for the solution candidates displayed on the screen, and continues the search by reflecting the changed relative positional relationship and constraint conditions To do.
また、集積回路のセルをチップ上に配置するセル配置方法が提案されている。このセル配置方法では、カットラインにより分割された2つの配置領域にセルを振り分けるとき、次の3つの条件が満たされるようにする。(1)カットラインと交差する信号線の数が最小になり、(2)信号線を引くことが可能な格子線の使用率が2つの配置領域の間で均等になり、(3)各配置領域についてセル面積の合計がその配置領域の面積を超えない。 In addition, a cell placement method has been proposed in which cells of an integrated circuit are placed on a chip. In this cell arrangement method, the following three conditions are satisfied when a cell is distributed to two arrangement areas divided by a cut line. (1) The number of signal lines intersecting with the cut line is minimized, (2) the utilization rate of the grid lines capable of drawing the signal lines is equalized between the two arrangement areas, and (3) each arrangement The total cell area of the region does not exceed the area of the arrangement region.
上記のように、情報処理装置に最適化処理を実行させるにあたっては、適切な評価関数を用意することになる場合がある。例えば、データから抽出される特徴量に対応する変数とパラメータ(例えば、特徴量にかける重みとしての係数など)とを含む評価関数を定義しておく。ただし、変数やパラメータが多い場合など、適切な評価関数を人間が定義すること(例えば、適切なパラメータの値を決定すること)が容易でない場合もある。 As described above, when the information processing apparatus executes the optimization process, an appropriate evaluation function may be prepared. For example, an evaluation function including a variable corresponding to a feature amount extracted from data and a parameter (for example, a coefficient as a weight applied to the feature amount) is defined. However, there are cases where it is not easy for a human to define an appropriate evaluation function (for example, to determine an appropriate parameter value), such as when there are many variables and parameters.
そこで、教師付き機械学習の手法を用いて、サンプルデータから評価関数を学習することが考えられる。例えば、人間から見て「良い」サンプルデータと「悪い」サンプルデータとを用意し、「良い」サンプルデータの特徴量から良い評価値が算出され「悪い」サンプルデータの特徴量から悪い評価値が算出されるような評価関数を算出する。例えば、評価関数に含まれるパラメータの値が、統計的手法を用いて算出される。 Therefore, it is conceivable to learn an evaluation function from sample data using a supervised machine learning technique. For example, “good” sample data and “bad” sample data are prepared from the viewpoint of humans, a good evaluation value is calculated from the feature value of the “good” sample data, and a bad evaluation value is calculated from the feature value of the “bad” sample data. An evaluation function as calculated is calculated. For example, the value of the parameter included in the evaluation function is calculated using a statistical method.
しかし、このような方法で評価関数を学習するにあたっては、人間がサンプルデータを用意することになるため、サンプル数が不足することがある。その結果、学習された評価関数の精度が低くなり、人間から見て「悪い」操作に対して良い評価値が算出されてしまうことで「悪い」操作が選択されるなど、最適化処理が非効率になってしまうことがある。一方、情報処理装置が自動生成したデータは、人間による「良い」「悪い」の判断が付与されていないため、そのまま評価関数の学習に用いることは容易でない。 However, when learning the evaluation function by such a method, since humans prepare sample data, the number of samples may be insufficient. As a result, the accuracy of the learned evaluation function is reduced, and the optimization processing is not performed, for example, a “bad” operation is selected because a good evaluation value is calculated for a “bad” operation as seen by humans. It may become efficient. On the other hand, data automatically generated by the information processing apparatus is not easily used for learning an evaluation function as it is because it is not given a “good” or “bad” judgment by a human.
1つの側面では、本発明は、最適化処理に用いる評価関数の学習精度を向上させる情報処理装置、評価関数学習方法およびプログラムを提供することを目的とする。 In one aspect, an object of the present invention is to provide an information processing apparatus, an evaluation function learning method, and a program that improve the learning accuracy of an evaluation function used for optimization processing.
1つの態様では、記憶部と演算部とを有する情報処理装置が提供される。記憶部は、最適化処理に用いる評価関数の情報を記憶する。演算部は、被評価データを生成し、評価関数を用いて被評価データに対して最適化処理を進めて、最適化処理を進めた後の被評価データの状態に応じた評価値を算出し、被評価データおよび評価値に基づいて評価関数を更新する。また、1つの態様では、コンピュータが実行する評価関数学習方法が提供される。また、1つの態様では、コンピュータに実行させるプログラムが提供される。 In one aspect, an information processing apparatus having a storage unit and a calculation unit is provided. The storage unit stores information on evaluation functions used for optimization processing. The calculation unit generates evaluated data, advances an optimization process on the evaluated data using an evaluation function, and calculates an evaluation value according to the state of the evaluated data after the optimization process is advanced. The evaluation function is updated based on the evaluated data and the evaluation value. In one aspect, an evaluation function learning method executed by a computer is provided. In one aspect, a program to be executed by a computer is provided.
1つの側面では、最適化処理に用いる評価関数の学習精度が向上する。 In one aspect, the learning accuracy of the evaluation function used for the optimization process is improved.
以下、本実施の形態を図面を参照して説明する。
[第1の実施の形態]
図1は、情報処理装置の例を示す図である。
Hereinafter, the present embodiment will be described with reference to the drawings.
[First Embodiment]
FIG. 1 is a diagram illustrating an example of an information processing apparatus.
第1の実施の形態の情報処理装置10は、組み合わせ最適化問題を解くときに用いる評価関数を、教師付き機械学習によって生成する。組み合わせ最適化問題の一例として、LSI設計においてプリント板上の回路ブロックの配置パターンを決定することが挙げられる。評価関数を用いた最適化処理は、例えば、LSI設計などの設計作業を支援するCAD(Computer Aided Design)ソフトウェアに実装される。情報処理装置10が学習した評価関数は、情報処理装置10または他の情報処理装置において利用され得る。
The
情報処理装置10は、記憶部11および演算部12を有する。情報処理装置10は、コンピュータと呼ばれてもよい。記憶部11は、RAM(Random Access Memory)などの揮発性の記憶装置でもよいし、HDD(Hard Disk Drive)などの不揮発性の記憶装置でもよい。演算部12は、例えば、プロセッサである。プロセッサは、CPU(Central Processing Unit)やDSP(Digital Signal Processor)であってもよく、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの特定用途の集積回路を含んでもよい。プロセッサは、RAMなどの記憶装置(例えば、記憶部11)に記憶されたプログラムを実行するものであってもよい。また、2以上のプロセッサの集合(マルチプロセッサ)を「プロセッサ」と呼んでもよい。
The
記憶部11は、最適化処理に用いる評価関数13(第1の評価関数)を示す情報を記憶する。評価関数13には、例えば、被評価データの特徴を示す特徴量に相当する1または2以上の変数と、変数以外のパラメータ(例えば、特徴量の重みに相当する係数)とが含まれる。その場合、評価関数13の情報には、機械学習によって算出されたパラメータの値が含まれる。評価関数13の変数に被評価データの特徴量を代入することで、評価関数13による被評価データの評価結果を示す評価値を算出できる。被評価データの特徴量としては、例えば、回路ブロック間の配線のうちある条件を満たす配線の数や、プリント板上の各サブ領域に配置した回路ブロックの合計面積などが挙げられる。
The
演算部12は、サンプルデータとしての被評価データを用いて、最適化処理に用いる評価関数の精度が上がるように評価関数を学習する(例えば、評価関数に含まれるパラメータの値を算出する)。後述するように、演算部12は、記憶部11に記憶された情報が示す評価関数13(第1の評価関数)を評価関数13a(第2の評価関数)に更新する。評価関数13aは、例えば、パラメータの値が評価関数13とは異なる。ただし、評価関数13aは、評価関数13に含まれない変数やパラメータを含んでいてもよい。
The
評価関数13aを算出するにあたり、演算部12は、被評価データ14を生成する。例えば、被評価データ14は、配置を決定すべき回路ブロックや配置パターンの制約条件の情報を含む。被評価データ14は、人間が作成したサンプルデータでなくてよく、所定のアルゴリズムに従ってまたはランダムに自動生成したものでよい。例えば、被評価データ14は、人間が作成したサンプルデータをランダムに変形したものでもよい。
In calculating the
被評価データ14が生成されると、演算部12は、評価関数13を用いて被評価データ14に対して最適化処理を進める。最適化処理においては、演算部12は、複数の候補の中から評価関数13の評価値が良いものを選択していく。最適化処理が複数段階の部分最適化処理を含む場合、演算部12は、最適化処理の途中であるn段階目(nは1以上の整数)までの部分最適化処理を実行してもよい。nは所定の固定値であってもよい。例えば、演算部12は、プリント板の領域を2分割して評価値が高くなるように回路ブロックを2つのサブ領域に振り分けることを、階層的にn回繰り返す。
When the evaluated
そして、演算部12は、最適化処理を進めた後の被評価データ14の状態に応じた評価値15を算出する。例えば、演算部12は、プリント板の領域をn回だけ階層的に分割したときの配置パターンの特徴量を評価関数13の変数に代入することで、評価値15を算出する。一般に、あるサンプルデータの良否がその時点では明確とは言えない場合であっても、最適化処理を進めると、元のサンプルデータが良かったか悪かったかが明確になることが多い。すなわち、最適化処理を進める前の特徴量から算出される評価値よりも、最適化処理を進めた後の特徴量から算出される評価値の方が、明確に良い値または明確に悪い値になることが多い。そこで、演算部12は、生成した被評価データ14から直接得られる評価値に代えて、最適化処理を進めた後の評価値15を使用することとする。
And the calculating
評価値15が算出されると、演算部12は、生成した被評価データ14および最適化処理を進めた後の評価値15に基づいて、評価関数13を評価関数13aに更新する(例えば、評価関数13のパラメータの値を更新する)。例えば、演算部12は、被評価データ14の特徴量と評価値15の組を含む複数の特徴量と評価値の組を回帰分析することで、評価関数13aのパラメータの値を算出する。このとき、演算部12は、最適化処理を進める前の元のサンプルデータの特徴量と最適化処理を進めた後の状態の評価値との間の関係を推定することになる。評価関数13aの算出に用いる評価値15は、被評価データ14の良否をより明確に表している可能性が高いため「理想評価値」と言うこともできる。
When the
この処理は、被評価データ14の数が非常に多いと時間がかかることがある。その場合、自動的に生成されたデータのうち一部だけを使うことでデータを削減し、処理時間を短縮することができる。このとき、最初の評価値と評価値15の差が小さいサンプルデータは、従来の学習結果がうまく機能していることを意味するため、推定処理に入力しても結果に大きな影響は与えない。しかし、差が小さいものを全く選択せずに推定処理を実行すると、既存の学習結果を壊してしまう可能性が生じる。したがって、データを選択する際に、評価値の差が大きいものが選択される確率を増やし、差が小さいものは低い確率で選択することで、データを削減しても修正に必要なデータを取りこぼす可能性を下げることが期待できる。例えば、最初の評価値と評価値15の差が0〜100のときは選択確率を1%、評価値の差が100〜200のときに選択確率を10%というように、予め評価値の差に対応する確率を決めておき、乱数を使用して推定処理に使用するデータを選択すればよい。
This process may take time if the number of
第1の実施の形態の情報処理装置10によれば、最適化処理に用いる評価関数を学習するにあたり、被評価データ14に対して最適化処理を進めた後の評価値15が算出され、被評価データ14と評価値15とに基づいて評価関数13が更新される。これにより、被評価データ14が人手によらずに自動生成されたものであってもその良否を推定することができ、被評価データ14を利用して、評価関数13の精度(例えば、評価関数13に含まれるパラメータの値の精度)を向上させることができる。
According to the
よって、人間が用意するサンプルデータの不足を補うことができ、評価関数を教師付き機械学習によって算出するときの負担を軽減することができる。また、評価関数の精度が向上することで、人間から見て「悪い」候補に対して良い評価値が算出されてしまうことを抑制でき、最適解または準最適解を効率的に探索できるようになる。 Therefore, the shortage of sample data prepared by a human can be compensated, and the burden when calculating the evaluation function by supervised machine learning can be reduced. In addition, by improving the accuracy of the evaluation function, it is possible to prevent a good evaluation value from being calculated for a “bad” candidate from the viewpoint of humans, and to efficiently search for an optimal solution or a sub-optimal solution. Become.
[第2の実施の形態]
次に、第2の実施の形態を説明する。第2の実施の形態の設計装置100は、LSIレイアウト設計を支援する。設計装置100はコンピュータとして実現できる。その場合、設計装置100は、LSIレイアウト設計に用いられるCADソフトウェアを実行する。
[Second Embodiment]
Next, a second embodiment will be described. The
図2は、設計装置のハードウェア例を示すブロック図である。
設計装置100は、CPU101、RAM102、HDD103、画像信号処理部104、入力信号処理部105、媒体リーダ106および通信インタフェース107を有する。CPU101は、第1の実施の形態の演算部12の一例である。RAM102またはHDD103は、第1の実施の形態の記憶部11の一例である。
FIG. 2 is a block diagram illustrating a hardware example of the design apparatus.
The
CPU101は、プログラムの命令を実行する演算回路を含むプロセッサである。CPU101は、HDD103に記憶されているプログラムやデータの少なくとも一部をRAM102にロードし、プログラムを実行する。なお、CPU101は複数のプロセッサコアを備えてもよく、設計装置100は複数のプロセッサを備えてもよく、以下で説明する処理を複数のプロセッサまたはプロセッサコアを用いて並列実行してもよい。また、複数のプロセッサの集合(マルチプロセッサ)を「プロセッサ」と呼んでもよい。
The
RAM102は、CPU101が実行するプログラムやCPU101が演算に用いるデータを一時的に記憶する揮発性メモリである。なお、設計装置100は、RAM以外の種類のメモリを備えてもよく、複数個のメモリを備えてもよい。
The
HDD103は、OS(Operating System)やアプリケーションソフトウェアなどのソフトウェアのプログラム、および、データを記憶する不揮発性の記憶装置である。アプリケーションソフトウェアには、LSIレイアウト設計に用いるCADソフトウェアが含まれる。なお、設計装置100は、フラッシュメモリやSSD(Solid State Drive)などの他の種類の記憶装置を備えてもよく、複数の不揮発性の記憶装置を備えてもよい。
The
画像信号処理部104は、CPU101からの命令に従って、設計装置100に接続されたディスプレイ21に画像を出力する。ディスプレイ21としては、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ(LCD:Liquid Crystal Display)、プラズマディスプレイ(PDP:Plasma Display Panel)、有機EL(OEL:Organic Electro-Luminescence)ディスプレイなどを用いることができる。
The image
入力信号処理部105は、設計装置100に接続された入力デバイス22から入力信号を取得し、CPU101に出力する。入力デバイス22としては、マウスやタッチパネルやタッチパッドやトラックボールなどのポインティングデバイス、キーボード、リモートコントローラ、ボタンスイッチなどを用いることができる。また、設計装置100に、複数の種類の入力デバイスが接続されていてもよい。
The input
媒体リーダ106は、記録媒体23に記録されたプログラムやデータを読み取る読み取り装置である。プログラムには、LSIレイアウト設計に用いるCADソフトウェアのプログラムが含まれ得る。記録媒体23として、例えば、フレキシブルディスク(FD:Flexible Disk)やHDDなどの磁気ディスク、CD(Compact Disc)やDVD(Digital Versatile Disc)などの光ディスク、光磁気ディスク(MO:Magneto-Optical disk)、半導体メモリなどを使用できる。媒体リーダ106は、例えば、記録媒体23から読み取ったプログラムやデータをRAM102またはHDD103に格納する。
The
通信インタフェース107は、ネットワーク24に接続され、ネットワーク24を介して他の情報処理装置と通信を行うインタフェースである。通信インタフェース107は、スイッチなどの通信装置とケーブルで接続される有線通信インタフェースでもよいし、基地局と無線リンクで接続される無線通信インタフェースでもよい。
The
なお、設計装置100は、媒体リーダ106および通信インタフェース107の少なくとも一方を備えていなくてもよい。また、設計装置100は、ユーザが操作する端末装置からリモートアクセスされる場合には、画像信号処理部104および入力信号処理部105の少なくとも一方を備えていなくてもよい。また、ディスプレイ21および入力デバイス22の少なくとも一方が、設計装置100の筐体と一体に形成されていてもよい。
Note that the
次に、設計装置100を用いて解くLSIレイアウトの最適化問題の例を説明する。
図3は、LSIレイアウトの最適化問題の例を示す第1の図である。
ここでは、パーティショニングベース配置法によって、回路部品としてのセルの最適な配置パターンを探索することを考える。入力データとして、複数のセルとセル間を結合するネットとセルを配置可能な領域とを示す設計データが与えられる。各セルには1以上のピンが設けられており、また、全体の領域のエッジには外部のLSIと接続するためのピンが設けられていることがある。1つのネットは、2または3以上のピンに接続される。図3の例では、セル#1〜#8とセル#1〜#8を配置可能な領域Rが定義されている。図3では、ネットについては記載を省略するか簡略化した記載としている。
Next, an example of an LSI layout optimization problem solved using the
FIG. 3 is a first diagram illustrating an example of an LSI layout optimization problem.
Here, it is considered to search for an optimal arrangement pattern of cells as circuit components by the partitioning base arrangement method. As input data, design data indicating a plurality of cells, a net that connects the cells, and an area in which the cells can be arranged is given. Each cell is provided with one or more pins, and a pin for connecting to an external LSI may be provided at the edge of the entire region. One net is connected to two or more pins. In the example of FIG. 3, a region R in which
パーティショニングベース配置法では、設計装置100は、領域を2分割して複数のセルを2つの領域に割り振ることを、各セルの位置が十分に限定されるまで階層的に繰り返す。ある領域を2分割してセルを割り振る操作が、ヒューリスティクスにおける1ステップに相当する。セルを2つの領域に割り振る方法(分割パターン)は複数通りあるため、設計装置100は、1ステップ毎に、複数の分割パターンの中から評価関数によって算出される評価値の最も良い分割パターンを選択する。この評価値は、最適化処理の途中で算出するものであるため「中間評価値」と言うこともできる。設計装置100は、選択した分割パターンを基準にして、次のステップとして分割した領域を更に2分割する。
In the partitioning-based arrangement method, the
一例として、設計装置100は、領域RのX軸方向に分割線(カットライン)を引くことで、領域Rを面積の等しい領域R0と領域R1に分割する。設計装置100は、セル#1〜#8それぞれを領域R0,R1の何れかに配置することで、分割パターンを生成する。各分割パターンについて、その特徴量を評価関数に代入することで評価値が算出される。図3の例では、領域R0にセル#1,#3,#4,#8が配置され、領域R1にセル#2,#5,#6,#7が配置されている。領域R0に配置されたセルと領域R1に配置されたセルとを接続するネットが存在する場合、当該ネットはカットラインと交差することになる。カットラインと交差するネットの数をカット数と呼ぶことがある。
As an example, the
領域Rの分割について評価値の最も良い分割パターンが選択されると、設計装置100は、領域R0のY軸方向にカットライン(1ステップ前のカットラインと垂直なもの)を引くことで、領域R0を面積の等しい領域R00と領域R01に分割する。設計装置100は、前のステップで領域R0に配置されたセル#1,#3,#4,#8それぞれを領域R00,R01の何れかに配置することで、分割パターンを生成する。図3の例では、領域R00にセル#1,#4が配置され、領域R01にセル#3,#8が配置されている。
When the division pattern having the best evaluation value for the division of the region R is selected, the
同様に、設計装置100は、領域R1のY軸方向にカットラインを引くことで、領域R1を面積の等しい領域R10と領域R11に分割する。設計装置100は、前のステップで領域R1に配置されたセル#2,#5,#6,#7それぞれを領域R10,R11の何れかに配置することで、分割パターンを生成する。図3の例では、領域R10にセル#5,#6が配置され、領域R11にセル#2,#7が配置されている。このように、パーティショニングベース配置法では、選択した上位の分割パターンに基づいて領域が細分化されて複数の部分最適化問題が生成されることが、階層的に繰り返される。
Similarly, the
ここで、ステップ毎に複数の分割パターンの中から「良い」分割パターンを選択する基準としては、様々な基準が考えられる。一例として、カット数に着目するものとして、ミニカット法、バランス考慮カット法、重み付きのミニカット法などが挙げられる。 Here, various criteria can be considered as criteria for selecting a “good” division pattern from a plurality of division patterns for each step. As an example, there are a mini-cut method, a balance-considering cut method, a weighted mini-cut method, and the like as focusing on the number of cuts.
ミニカット法では、カット数、すなわち、カットラインと交差するネットの数を評価値とし、評価値が小さい分割パターンを良い分割パターンと定義する。ただし、一方の領域に配置したセルの合計面積と他方の領域に配置したセルの合計面積とが等しいかほぼ等しい(例えば、両者の差が閾値以下になる)ことを制約条件とする。 In the mini-cut method, the number of cuts, that is, the number of nets intersecting the cut line is used as an evaluation value, and a division pattern having a small evaluation value is defined as a good division pattern. However, the constraint is that the total area of cells arranged in one region is equal to or substantially equal to the total area of cells arranged in the other region (for example, the difference between the two is equal to or less than a threshold).
バランス考慮カット法は、2つの領域の間でセルの合計面積のバランスが取れてない分割パターンも一定の限度で許容するものである。バランス考慮カット法では、例えば、評価関数が式(1)のように与えられる。Cutsはカット数、D0は一方の領域に配置したセルの合計面積、D1は他方の領域に配置したセルの合計面積を表す。式(1)の第2項は、セルの合計面積の偏りを示す項である。waはカット数に対して付与される重み、wbは合計面積の偏りに対して付与される重みである。すなわち、カット数と合計面積の偏りの2つが、一定の重みに基づいて評価される。重みwa,wbを変えると、各分割パターンの良否の評価も変わり得る。重みwa,wbは後述するように、最適なLSIレイアウトを探索する前に行われる教師付き機械学習によって学習することができる。 The balance-considering cut method allows a division pattern in which the total area of cells is not balanced between two regions to a certain extent. In the balance-considering cut method, for example, an evaluation function is given as in Expression (1). Cuts represents the number of cuts, D 0 represents the total area of cells arranged in one region, and D 1 represents the total area of cells arranged in the other region. The second term of the formula (1) is a term indicating the deviation of the total area of the cells. w a is a weight given to the number of cuts, and w b is a weight given to the deviation of the total area. That is, two of the number of cuts and the deviation of the total area are evaluated based on a certain weight. When the weights w a and w b are changed, the evaluation of the quality of each divided pattern can also be changed. As will be described later, the weights w a and w b can be learned by supervised machine learning performed before searching for an optimum LSI layout.
重み付きのミニカット法は、全てのネットを均等に評価するのではなく、ネットに接続されたピンの数に応じてネットを重み付けして評価するものである。重み付きのミニカット法では、カットラインと交差するネットがピン数に応じて分類され、ピン数毎にカット数がカウントされる。重み付きのミニカット法では、例えば、評価関数が式(2)のように与えられる。Cuts(i)はピン数iのネットについてのカット数、wiはCuts(i)に対して付与される重みである。評価値はw2×Cuts(2),w3×Cuts(3),…の合計になり、評価値が小さいほど良い分割パターンとなる。重みwiは後述するように教師付き機械学習によって学習することができる。 The weighted mini-cut method does not evaluate all nets equally but weights and evaluates nets according to the number of pins connected to the nets. In the weighted mini-cut method, nets that intersect the cut line are classified according to the number of pins, and the number of cuts is counted for each number of pins. In the weighted mini-cut method, for example, an evaluation function is given as in Expression (2). Cuts (i) is the number of cuts for a net with pin number i, and w i is a weight given to Cuts (i). The evaluation value is the sum of w 2 × Cuts (2), w 3 × Cuts (3),... The smaller the evaluation value, the better the division pattern. The weight w i can be learned by supervised machine learning as will be described later.
図4は、LSIレイアウトの最適化問題の例を示す第2の図である。
パーティショニングベース配置法によって回路部品としてのブロックをプリント板上に配置する、他の最適化問題の例を挙げる。ここでは、各ネットは2つのピンに接続されており、2つのブロックを結んでいるものとする。2つのブロックの間には、1または2以上のネットをグループ化したネットグループが接続される。ネットグループの中には、配線の長さがX以下であるという最大線長制約が与えられたものが含まれる。この最適化問題では、最大線長制約を満たすために要する面積に着目する。
FIG. 4 is a second diagram illustrating an example of an LSI layout optimization problem.
Examples of other optimization problems in which blocks as circuit components are arranged on a printed board by a partitioning base arrangement method will be given. Here, it is assumed that each net is connected to two pins and connects two blocks. A net group obtained by grouping one or more nets is connected between the two blocks. Some net groups are given a maximum line length constraint that the length of the wiring is X or less. In this optimization problem, attention is paid to the area required to satisfy the maximum line length constraint.
例えば、評価関数が式(3)のように与えられる。Dはある領域に配置されたブロックの合計面積を表す。両端のブロックの何れも領域面積sの領域に含まれており、最大線長制約がなくn本のネットを含むネットグループについて、Na0(n)は当該ネットグループの数、Wa0(n)は当該ネットグループの使用幅、La0(s,n)は当該ネットグループの線長の見積もりを表す。狭い領域にブロックを配置すると配線が長くなる可能性があるため、ネットグループの線長は領域面積sに依存する。 For example, the evaluation function is given as in Expression (3). D represents the total area of blocks arranged in a certain region. Both of the blocks at both ends are included in the area of the area s, and for a net group including n nets without a maximum line length constraint, Na0 (n) is the number of the net groups, and Wa0 (n) is the corresponding The use width of the net group, La0 (s, n), represents an estimate of the line length of the net group. If a block is arranged in a narrow region, the wiring may become long, so the net group line length depends on the region area s.
また、両端のブロックの何れも領域面積sの領域に含まれており、最大線長制約がありn本のネットを含むネットグループについて、Na1(n)は当該ネットグループの数、Wa1(n)は当該ネットグループの使用幅、La1(s,n)は当該ネットグループの線長の見積もりを表す。また、両端のブロックの何れも領域面積sの領域に含まれており、少なくとも一方のブロックに最大線長制約のある他のネットグループが接続されておりn本のネットを含むネットグループについて、Na2(n)は当該ネットグループの数、Wa2(n)は当該ネットグループの使用幅、La2(s,n)は当該ネットグループの線長の見積もりを表す。最大線長制約のあるネットグループに接続されたブロックだけでなく、それと隣接するブロックも配置の制約を受けることを考慮したものである。1つのネットグループが、Na0またはNa1とNa2の両方にカウントされることがある。 Also, both of the blocks at both ends are included in the area of the area s, and for a net group that has a maximum line length constraint and includes n nets, Na1 (n) is the number of the net groups, Wa1 (n) Is the use width of the net group, and La1 (s, n) is an estimate of the line length of the net group. Further, each of the blocks at both ends is included in the region of the area s, and another net group having a maximum line length restriction is connected to at least one block, and a net group including n nets is Na2 (N) represents the number of the net groups, Wa2 (n) represents the usage width of the net group, and La2 (s, n) represents an estimate of the line length of the net group. This is because not only the block connected to the net group with the maximum line length restriction but also the adjacent block is subject to the arrangement restriction. One net group may be counted as Na0 or both Na1 and Na2.
また、両端のブロックの一方のみが領域面積sの領域に含まれており、最大線長制約がなくn本のネットを含むネットグループについて、Nb0(n)は当該ネットグループの数、Wb0(n)は当該ネットグループの使用幅、Lb0(s,n)は当該ネットグループの線長の見積もりを表す。また、両端のブロックの一方のみが領域面積sの領域に含まれており、最大線長制約がありn本のネットを含むネットグループについて、Nb1(n)は当該ネットグループの数、Wb1(n)は当該ネットグループの使用幅、Lb1(s,n)は当該ネットグループの線長の見積もりを表す。また、両端のブロックの一方のみが領域面積sの領域に含まれており、少なくとも一方のブロックに最大線長制約のある他のネットグループが接続されておりn本のネットを含むネットグループについて、Nb2(n)は当該ネットグループの数、Wb2(n)は当該ネットグループの使用幅、Lb2(s,n)は当該ネットグループの線長の見積もりを表す。 Further, only one of the blocks at both ends is included in the area of the area s, and there is no maximum line length restriction, and for a net group including n nets, Nb0 (n) is the number of the net groups, and Wb0 (n ) Represents the usage width of the net group, and Lb0 (s, n) represents an estimate of the line length of the net group. Further, only one of the blocks at both ends is included in the region of the area s, and for a net group that includes a maximum line length constraint and includes n nets, Nb1 (n) is the number of the net groups, and Wb1 (n ) Represents the usage width of the net group, and Lb1 (s, n) represents an estimate of the line length of the net group. In addition, only one of the blocks at both ends is included in the area of the area s, and another net group having a maximum line length restriction is connected to at least one block, and the net group includes n nets. Nb2 (n) represents the number of the net group, Wb2 (n) represents the use width of the net group, and Lb2 (s, n) represents an estimate of the line length of the net group.
また、両端のブロックの何れも領域面積sの領域に含まれておらず、最大線長制約がなくn本のネットを含むネットグループについて、Nc0(n)は当該ネットグループの数、Wc0(n)は当該ネットグループの使用幅、Lc0(s,n)は当該ネットグループの線長の見積もりを表す。また、両端のブロックの何れも領域面積sの領域に含まれておらず、最大線長制約がありn本のネットを含むネットグループについて、Nc1(n)は当該ネットグループの数、Wc1(n)は当該ネットグループの使用幅、Lc1(s,n)は当該ネットグループの線長の見積もりを表す。また、両端のブロックの何れも領域面積sの領域に含まれておらず、少なくとも一方のブロックに最大線長制約のある他のネットグループが接続されておりn本のネットを含むネットグループについて、Nc2(n)は当該ネットグループの数、Wc2(n)は当該ネットグループの使用幅、Lc2(s,n)は当該ネットグループの線長の見積もりを表す。 Also, none of the blocks at both ends is included in the region of the area s, and for a net group including n nets without a maximum line length constraint, Nc0 (n) is the number of the net groups, Wc0 (n ) Represents the used width of the net group, and Lc0 (s, n) represents an estimate of the line length of the net group. Also, none of the blocks at both ends is included in the area of the area s, and for a net group that includes the maximum number of lines and includes n nets, Nc1 (n) is the number of the net groups, and Wc1 (n ) Represents the use width of the net group, and Lc1 (s, n) represents an estimate of the line length of the net group. Also, none of the blocks at both ends is included in the region of the area s, and another net group having a maximum line length restriction is connected to at least one block, and the net group includes n nets. Nc2 (n) represents the number of the net group, Wc2 (n) represents the use width of the net group, and Lc2 (s, n) represents an estimate of the line length of the net group.
Na0(n),Na1(n),Na2(n),Nb0(n),Nb1(n),Nb2(n),Nc0(n),Nc1(n),Nc2(n)は、分割パターンから抽出される特徴量を示す変数である。一方、Wa0(n),La0(s,n),Wa1(n),La1(s,n),Wa2(n),La2(s,n),Wb0(n),Lb0(s,n),Wb1(n),Lb1(s,n),Wb2(n),Lb2(s,n),Wc0(n),Lc0(s,n),Wc1(n),Lc1(s,n),Wc2(n),Lc2(s,n)はパラメータであり、後述するように教師付き機械学習によって学習することができる。 Na0 (n), Na1 (n), Na2 (n), Nb0 (n), Nb1 (n), Nb2 (n), Nc0 (n), Nc1 (n), Nc2 (n) are extracted from the division pattern This is a variable indicating the feature amount to be performed. On the other hand, Wa0 (n), La0 (s, n), Wa1 (n), La1 (s, n), Wa2 (n), La2 (s, n), Wb0 (n), Lb0 (s, n), Wb1 (n), Lb1 (s, n), Wb2 (n), Lb2 (s, n), Wc0 (n), Lc0 (s, n), Wc1 (n), Lc1 (s, n), Wc2 ( n) and Lc2 (s, n) are parameters and can be learned by supervised machine learning as will be described later.
設計装置100は、例えば、分割した2つの領域それぞれについて式(3)に基づく値を算出し、2つの領域の値の合計を分割パターンの評価値として用いる。式(3)の評価式から算出される評価値は、ブロックの合計面積とネットの合計面積とを含む見積もり面積を表している。この評価値が小さいものが良い分割パターンであると定義できる。
For example, the
図4の例では、ある領域がカットラインによって、領域面積sの領域R0と領域面積sの領域R1とに分割されている。ある分割パターンとして、領域R0にはブロック#1,#2,#3,#4が配置され、領域R1にはブロック#5が配置されている。
In the example of FIG. 4, a certain region is divided by a cut line into a region R0 having a region area s and a region R1 having a region area s. As a certain division pattern, blocks # 1, # 2, # 3, and # 4 are arranged in the region R0, and
領域R0内においてブロック#1とブロック#2の間には、最大線長制約のない16本のネットを含むネットグループが接続されている。よって、このネットグループには、パラメータWa0(16),La0(s,16)が適用される。領域R0内においてブロック#3とブロック#4の間には、最大線長制約のある16本のネットを含むネットグループが接続されている。よって、このネットグループには、パラメータWa1(16),La1(s,16)が適用される。領域R0内においてブロック#2とブロック#3の間には、最大線長制約のない12本のネットを含むネットグループが接続されている。また、ブロック#3には、上記のように、最大線長制約のある他のネットグループが接続されている。よって、このネットグループには、パラメータWa0(12),La0(s,12)とパラメータWa2(12),La2(s,12)が適用される。
A net group including 16 nets with no maximum line length restriction is connected between the
領域R0にあるブロック#1から他の領域に向かって、最大線長制約のない6本のネットを含むネットグループが伸びている。よって、領域R0の評価値を算出するにあたってこのネットグループには、パラメータWb0(6),Lb0(s,6)が適用される。領域R0にあるブロック#2から他の領域に向かって、最大線長制約のない8本のネットを含むネットグループが伸びている。よって、領域R0の評価値を算出するにあたってこのネットグループには、パラメータWb0(8),Lb0(s,8)が適用される。
A net group including six nets having no maximum line length constraint extends from
領域R1にあるブロック#5から他の領域に向かって、最大線長制約のない8本のネットを含むネットグループが伸びている。よって、領域R1の評価値を算出するにあたってこのネットグループには、パラメータWb0(8),Lb0(s,8)が適用される。また、両端のブロックの何れも領域R1になく最大線長制約のない6本のネットを含むネットグループが、領域R1を通過している。よって、領域R1の評価値を算出するにあたってこのネットグループには、パラメータWc0(6),Lc0(s,6)が適用される。
A net group including eight nets having no maximum line length constraint extends from
次に、設計装置100における評価関数のパラメータの機械学習を説明する。
図5は、設計装置の機能例を示すブロック図である。
設計装置100は、人手サンプル記憶部111、自動サンプル記憶部112、パラメータ記憶部113、初期値算出部114、自動サンプル生成部115、回帰分析部117、パラメータ更新部118および変数設定部119を有する。人手サンプル記憶部111、自動サンプル記憶部112およびパラメータ記憶部113は、例えば、RAM102またはHDD103に確保した記憶領域として実装される。初期値算出部114、自動サンプル生成部115、回帰分析部117、パラメータ更新部118および変数設定部119は、例えば、CPU101が実行するプログラムのモジュールとして実装される。
Next, machine learning of evaluation function parameters in the
FIG. 5 is a block diagram illustrating an example of functions of the design apparatus.
The
人手サンプル記憶部111は、パラメータの学習に用いる分割パターンのサンプルであって、人間が作成したサンプル(人手サンプル)を記憶する。人手サンプルは、良い分割パターンの例として使用することができる。人手サンプルは、例えば、複数のブロック・ブロック間を接続する複数のネット・領域面積・各ブロックの位置などの情報を含む。
The manual
自動サンプル記憶部112は、パラメータの学習に用いる分割パターンのサンプルであって、自動サンプル生成部115によって自動生成されたサンプル(自動サンプル)を記憶する。自動サンプルは、良い分割パターンである場合もあるし悪い分割パターンであることもある。自動サンプルは、例えば、複数のブロック・ブロック間を接続する複数のネット・領域面積・各ブロックの振り分け結果などの情報を含む。また、各自動サンプルには、自動サンプル生成部115によって算出された「理想評価値」が付与されている。理想評価値は、自動サンプルの良否の推定結果を表すと言うことができる。
The automatic
パラメータ記憶部113は、評価関数に含まれるパラメータおよび算出されたパラメータの値を含むパラメータ情報を記憶する。初期値算出部114によって、パラメータの初期値が算出されてパラメータ記憶部113に格納される。その後、パラメータ更新部118によって、精度が上がるように1回または2回以上パラメータの値が更新され得る。図4および式(3)の例の場合、Wa0(1),La0(s,1),Wa0(2),La0(s,2),Wa0(3),La0(s,3)などのパラメータの値が、パラメータ記憶部113に記憶される。なお、ネット数nが1以上所定の最大値以下の整数の範囲に限定してパラメータの値を用意してもよく、最大値を超える数のネットを含むネットグループに対してはn=最大値に対応するパラメータの値を適用してもよい。
The
初期値算出部114は、人手サンプル記憶部111に記憶された人手サンプルを教師データとして用いて教師付き機械学習を行い、評価関数のパラメータの初期値を算出する。まず、初期値算出部114は、人手サンプルを良い分割パターンを示す良いサンプルとする。また、初期値算出部114は、ランダムな分割パターンを自動生成し、人手サンプルと異なるサンプルを悪い分割パターンを示す悪いサンプルとする。
The initial
そして、初期値算出部114は、良いサンプルから良い評価値(例えば、低い評価値)が算出され、悪いサンプルから悪い評価値(例えば、高い評価値)が算出されるように、評価関数のパラメータを学習する。パラメータの学習には、例えば、SVM(Support Vector Machine)などの機械学習の手法を用いる。SVMでは、ベクトル空間上で良いサンプルと悪いサンプルを最も明確に分割できる境界面、すなわち、良いサンプルとの距離および悪いサンプルとの距離の両方が最大になる境界面が算出される。初期値算出部114は、算出したパラメータの値をパラメータ記憶部113に格納する。
Then, the initial
自動サンプル生成部115は、パラメータの値の精度を上げるために、人手サンプルとは異なる自動サンプルを生成し、自動サンプルの良否を推定した理想評価値を算出する。まず、自動サンプル生成部115は、人手サンプル記憶部111に記憶された人手サンプルの変形などを通じて、人手サンプルと異なる自動サンプルを生成する。
The automatic
次に、自動サンプル生成部115は、生成した自動サンプルから始めて、所定ステップ(例えば、3ステップ)だけ最適化処理を進める。このとき、各ステップで分割パターンの選択に用いる評価関数のパラメータの値としては、パラメータ記憶部113に現在記憶されているもの(例えば、初期値算出部114が算出した初期値)を使用する。例えば、自動サンプル生成部115は、最適化処理を3ステップ進めることで、自動サンプルの分割パターンが示す各領域を更に8分割した分割パターンを生成する。自動サンプル生成部115は、最適化処理を1ステップずつ進める1ステップ最適化部116を有する。
Next, the automatic
そして、自動サンプル生成部115は、所定ステップだけ最適化処理を進めた後の分割パターンに対応する理想評価値を算出する。理想評価値は、所定ステップだけ最適化処理を進めた後の分割パターンの特徴量を、パラメータ記憶部113に記憶されているパラメータの値を適用した評価関数に代入することで算出できる。例えば、8分割された各領域の評価値の合計を、自動サンプルに対応する理想評価値とする。すなわち、自動サンプルの分割パターン自体の特徴量から算出される評価値に代えて、所定ステップだけ最適化処理を進めた後の分割パターンの特徴量から算出される評価値が、パラメータの学習に使用されることになる。最適化処理を進めることで自動サンプルの時点よりも分割パターンの良否がより明確になる可能性が高いため、理想評価値は、自動サンプルの良否を推定したものと言うことができる。自動サンプル生成部115は、生成した自動サンプルと算出した理想評価値とを対応付けて、自動サンプル記憶部112に格納する。この処理において、自動サンプル生成部115は、自動サンプルの数が非常に多い場合は、第1の実施の形態の場合と同様に、データのうち一部だけを使うことでデータを削減し、処理時間を減らすことができる。このとき、選択を乱数に基づいて確率的に行い、理想評価値と現在の評価値の差が大きいサンプルを自動サンプル記憶部112に格納する確率を増やすことで、データを削減しても修正に必要なデータを取りこぼす可能性を下げることが期待できる。
Then, the automatic
回帰分析部117は、自動サンプル記憶部112に記憶された自動サンプルおよび理想評価値を用いて、回帰分析を行いパラメータの値を算出する。まず、回帰分析部117は、各自動サンプルの分割パターンから、ブロックの合計面積やネットグループ数など(式(3)のDやNa0(1),Na0(2)など)の特徴量を抽出する。そして、回帰分析部117は、自動サンプルから抽出した特徴量を評価関数に代入することで算出される評価値と当該自動サンプルに対応付けられた理想評価値との誤差が最小になるように、パラメータの値を調整する。パラメータの学習には、例えば、ε−SVR(Support Vector Regression)などの回帰分析手法を用いることができる。
The
パラメータ更新部118は、回帰分析部117によって算出されたパラメータの値が、パラメータ記憶部113に記憶されている現在のパラメータの値と比べて改善しているか判断する。改善していると判断した場合、パラメータ更新部118は、パラメータ記憶部113に記憶されたパラメータの値を、回帰分析部117によって算出されたパラメータの値へと更新する。その場合、設計装置100は、更新されたパラメータの値を用いて、再度パラメータの学習を進めてもよい。一方、改善していないと判断した場合、パラメータ更新部118は、回帰分析部117によって算出されたパラメータの値を採用しない。その場合、設計装置100は、パラメータの学習を終了してもよい。
The
パラメータの値が改善しているかは、自動サンプルなどのサンプルを用いて検証することができる。例えば、設計装置100は、あるサンプルの分割パターンから始めて最後まで(個々のブロックの位置が十分に限定されるまで)最適化処理を行い、最終的な分割パターンを生成する。パラメータ更新部118は、現在のパラメータの値を用いて算出される当初の分割パターンの評価値と最終的な分割パターンの良否との相関を確認する。また、パラメータ更新部118は、新たなパラメータの値を用いて算出される当初の分割パターンの評価値と最終的な分割パターンの良否との相関を確認する。
Whether the parameter value is improved can be verified using a sample such as an automatic sample. For example, the
そして、パラメータ更新部118は、この相関が改善している場合に、パラメータの値が改善していると判断する。最適化後の分割パターンが「良い」ときに当初の分割パターンについて良い評価値が算出され、かつ、最適化後の分割パターンが「悪い」ときに当初の分割パターンについて悪い評価値が算出されていれば、相関が強いと言える。パラメータ更新部118は、相関の強弱を示す指標値として相関係数を算出してもよい。
Then, the
変数設定部119は、ユーザからの入力に応じて、評価関数に新たな変数や新たなパラメータを追加することを許容する。ユーザから変数やパラメータの追加が指示されると、変数設定部119は、追加する変数やパラメータを回帰分析部117に通知する。すると、回帰分析部117は、次に回帰分析を行うとき、追加した変数に対応する新たな特徴量を自動サンプルから抽出し、変数およびパラメータが追加された新たな評価関数について回帰分析を行う。変数やパラメータの追加は、自動サンプル生成部115、回帰分析部117およびパラメータ更新部118がパラメータの学習を繰り返している途中で行うことも可能である。よって、ユーザは、評価関数の学習状況を見ながら、評価値が改善されるような好ましい変数やパラメータを評価関数に適宜追加することができる。
The
図6は、機械学習に用いるサンプルの生成例を示す図である。
前述のように、自動サンプル生成部115は、人手サンプルに基づいて自動サンプルを生成する。これにより、人手サンプルの不足をカバーすることができる。自動サンプルの生成方法としては、最適化問題の内容に応じて様々な生成方法が考えられる。
FIG. 6 is a diagram illustrating a generation example of a sample used for machine learning.
As described above, the automatic
例えば、自動サンプル生成部115は、人手サンプルが示すLSIレイアウトの中からランダムに一部分の領域を切り出して部分問題として採用する。すなわち、自動サンプル生成部115は、切り出した領域に含まれるブロックやブロック間を接続するネットの情報を維持しつつブロックの位置情報を消去することで、切り出した領域のレイアウトを初期化して自動サンプルのベースとして使用する。このとき、切り出した領域の内と外とを結合するネットについては、領域のエッジにピンが設定されていると仮定して取り扱う。自動サンプル生成部115は、切り出して初期化した領域について1ステップだけ最適化処理を進めた(領域を1回分割した)分割パターンを、自動サンプルとして使用する。
For example, the automatic
図6の例では、人手サンプルが示す全体領域の中にブロック#1〜#8が配置されている。ブロック#1とブロック#6、ブロック#2とブロック#7、ブロック#5とブロック#8とがネットで接続されている。自動サンプル生成部115は、この全体領域の中からブロック#1〜#5を含みブロック#6〜#8を含まない領域を抽出したとする。すると、自動サンプル生成部115は、ブロック#1〜#5の位置情報を消去する。また、自動サンプル生成部115は、ブロック#1,#6間のネットと領域のエッジとが交差する点にピンが設定され、当該ピンとブロック#1とがネットで接続されているものとして扱う。ブロック#2,#7間のネットおよびブロック#5,#8間のネットについても同様に取り扱う。そして、自動サンプル生成部115は、領域を2つに分割してブロック#1〜#5を振り分けた分割パターンを、自動サンプルとして生成する。
In the example of FIG. 6, blocks # 1 to # 8 are arranged in the entire area indicated by the manual sample.
なお、他の自動サンプルの生成方法として、ブロックの大きさや配線層の数や配線ピットなどの設計条件を、人手サンプルのものからランダムに変更する方法も考えられる。
図7は、機械学習に用いる誤差関数の例を示す図である。
As another automatic sample generation method, a method of randomly changing the design conditions such as the block size, the number of wiring layers, and the wiring pits from that of a manual sample can be considered.
FIG. 7 is a diagram illustrating an example of an error function used for machine learning.
前述のように、初期値算出部114は、分割パターンのサンプルから抽出される特徴量と当該サンプルの良否の判断結果とから、良いサンプルに良い評価値が付き悪いサンプルに悪い評価値が付くように評価関数のパラメータを学習する。例えば、初期値算出部114は、式(4)の値が最小になるようなパラメータの値を探索する。パラメータの値の探索においては、例えば、最急降下法などの探索方法を用いることができる。
As described above, the initial
式(4)を用いる場合、良いサンプルと悪いサンプルの組み合わせが全て列挙される。diffjは、j番目の組み合わせについて、良いサンプルの評価値と悪いサンプルの評価値との差を表す。err0(x)は誤差関数であり、Lは所定の正の値である。err0(x)は、図7(A)に示すように、xが−L以下のときは0を返し、xが−Lより大きいときはx+Lを返す。すなわち、式(4)の第1項は、−Lより大きいdiffjの値の和を最小化する目的を示している。λは所定の値であり、wiは評価関数に含まれるi番目のパラメータを表す。式(4)の第2項は、過学習を抑制する正規化項である。ただし、パラメータの値の2乗和を、パラメータの値の絶対値の和に置き換えてもよい。 When using equation (4), all combinations of good and bad samples are listed. diff j represents the difference between the evaluation value of the good sample and the evaluation value of the bad sample for the j-th combination. err0 (x) is an error function, and L is a predetermined positive value. As shown in FIG. 7A, err0 (x) returns 0 when x is −L or less, and returns x + L when x is larger than −L. That is, the first term of the equation (4) indicates the purpose of minimizing the sum of the values of diff j greater than -L. λ is a predetermined value, and w i represents the i-th parameter included in the evaluation function. The second term of Equation (4) is a normalization term that suppresses overlearning. However, the sum of squares of parameter values may be replaced with the sum of absolute values of parameter values.
また、前述のように、回帰分析部117は、分割パターンのサンプルから抽出される特徴量と当該サンプルの理想評価値とから、特徴量と理想評価値との関係を最も適切に表現できるように評価関数のパラメータを学習する。例えば、回帰分析部117は、式(5)の値が最小になるようなパラメータの値を探索する。パラメータの値の探索においては、例えば、最急降下法などの探索方法を用いることができる。
Further, as described above, the
式(5)において、vjはj番目のサンプルの理想評価値を表し、ajはj番目のサンプルの特徴量の集合を表す。よって、vj−f(aj)はj番目のサンプルの理想評価値とj番目のサンプルの特徴量を評価関数に代入したときの評価値との誤差を表している。err1(x)は誤差関数であり、εは所定の正の値である。err1(x)は、図7(B)に示すように、xの絶対値がε以下のときは0を返し、xの絶対値がεより大きいときは|x|−εを返す。すなわち、式(5)の第1項は、評価値の誤差の絶対値のうちεを超えるものの和を最小化する目的を示している。ただし、評価値の誤差の絶対値を、評価値の誤差の2乗に置き換えてもよい。式(4)と同様に、第2項は正規化項である。 In Expression (5), v j represents an ideal evaluation value of the j-th sample, and a j represents a set of feature quantities of the j-th sample. Therefore, v j −f (a j ) represents an error between the ideal evaluation value of the j-th sample and the evaluation value when the feature amount of the j-th sample is substituted into the evaluation function. err1 (x) is an error function, and ε is a predetermined positive value. As shown in FIG. 7B, err1 (x) returns 0 when the absolute value of x is equal to or smaller than ε, and returns | x | −ε when the absolute value of x is larger than ε. That is, the first term of Equation (5) indicates the purpose of minimizing the sum of the absolute values of the evaluation value errors exceeding ε. However, the absolute value of the evaluation value error may be replaced with the square of the evaluation value error. Similar to Equation (4), the second term is a normalization term.
次に、設計装置100が実行するパラメータの機械学習の手順を説明する。
図8は、パラメータ学習の手順例を示すフローチャートである。
(S10)初期値算出部114は、人手サンプル記憶部111に記憶された複数の分割パターンのサンプル(人手サンプル)を、良いサンプルとして取得する。
Next, a machine learning procedure of parameters executed by the
FIG. 8 is a flowchart illustrating an exemplary procedure for parameter learning.
(S10) The initial
(S11)初期値算出部114は、ランダムに複数の分割パターンを生成し、生成した分割パターンのうち人手サンプルと異なるものを悪いサンプルとして採用する。
(S12)初期値算出部114は、ステップS10の良いサンプルとステップS11の悪いサンプルとを用いて、評価関数のパラメータの初期値を算出する。例えば、初期値算出部114は、良いサンプルおよび悪いサンプルそれぞれからネットグループ数Na0(1),Na0(2),…などの特徴量を抽出する。初期値算出部114は、SVMなどの教師付き機械学習の手法を用いて、良いサンプルの特徴量から良い評価値が算出され悪いサンプルの特徴量から悪い評価値が算出されるように、使用幅Wa0(1),Wa0(2),…や線長La0(1),La0(2),…などのパラメータの値を算出する。初期値算出部114は、算出したパラメータの値をパラメータ記憶部113に格納する。
(S11) The initial
(S12) The initial
(S13)自動サンプル生成部115は、人手サンプル記憶部111に記憶された人手サンプルからランダムに一部分の領域を切り出して各ブロックの位置情報を消去することで、出現するブロックやネットがランダムに変化する設計データを自動生成する。ただし、自動サンプル生成部115は、ブロックサイズや配線層の数や配線ピットなどの設計条件をランダムに変更するなど、他の方法によって設計データを自動生成してもよい。自動サンプル生成部115は、最適化問題の内容に応じて生成方法を選択してもよい。
(S13) The automatic
(S14)自動サンプル生成部115は、ステップS13で切り出した領域についての設計データに対して、1ステップ最適化部116を呼び出すことで最適化処理を1ステップだけ進める。このとき、ステップS12で算出されたパラメータの初期値(または、その後に以下のステップS20で更新されたパラメータの値)を適用した評価関数が使用される。例えば、1ステップ最適化部116は、ステップS13で切り出した領域を2分割して、ブロックを2つの領域に割り振る。自動サンプル生成部115は、1ステップ進んだ後の分割パターンを自動サンプルPとして取得する。
(S14) The automatic
(S15)自動サンプル生成部115は、ステップS115で生成された自動サンプルPに対して、1ステップ最適化部116を複数回呼び出すことで最適化処理を更に3ステップ進める。このとき、ステップS12で算出されたパラメータの初期値(または、その後に以下のステップS20で更新されたパラメータの値)を適用した評価関数が使用される。例えば、ステップS14で2分割した領域それぞれが更に8分割される。
(S15) The automatic
(S16)自動サンプル生成部115は、ステップS15を実行した後の分割パターンから理想評価値を算出する。例えば、自動サンプル生成部115は、細分化された各領域について、ネットグループ数Na0(1),Na0(2),…などの特徴量と使用幅Wa0(1),Wa0(2),…や線長La0(1),La0(2),…などのパラメータの値とから算出された、見積もり面積についての評価値を取得する。自動サンプル生成部115は、細分化された各領域の評価値を合計したもの(見積もり面積の合計)を理想評価値とする。ただし、各領域の評価値を合計する方法は一例であり、他の方法で理想評価値を算出してもよい。自動サンプル生成部115は、算出した理想評価値とステップS14で生成した自動サンプルPとを対応付けて、自動サンプル記憶部112に格納する。
(S16) The automatic
(S17)自動サンプル生成部115は、回帰分析を行うのに十分な数の自動サンプルPが得られたか判断する。自動サンプルPの所要数は、ユーザによって予め指定されてもよい。所要数の自動サンプルPが得られた場合はステップS18に処理が進み、所要数の自動サンプルPが得られていない場合はステップS13に処理が進む。
(S17) The automatic
(S18)回帰分析部117は、自動サンプルPと理想評価値との複数の組み合わせを用いて、評価関数のパラメータの値を算出する。例えば、回帰分析部117は、2分割された領域それぞれのネットグループ数Na0(1),Na0(2),…など、各自動サンプルP(ステップS15で3ステップ進める前のもの)から特徴量を抽出する。そして、回帰分析部117は、ε−SVRなどの回帰分析の手法を用いて、評価関数から算出される評価値と理想評価値との誤差が最小になるように、使用幅Wa0(1),Wa0(2),…や線長La0(1),La0(2),…などのパラメータの値を算出する。
(S18) The
(S19)パラメータ更新部118は、ステップS18で算出したパラメータの値が、パラメータ記憶部113に記憶されている現在のパラメータの値より改善しているか検証する。パラメータの値が改善していると判断される場合はステップS20に処理が進み、改善していないと判断される場合はステップS21に処理が進む。
(S19) The
改善を検証するにあたり、例えば、設計装置100は、複数のサンプルそれぞれに対して最適化処理を最後まで進めて最終的なブロック配置の良否を判断する。パラメータ更新部118は、現在のパラメータの値を用いて算出される当初の分割パターンの評価値と最終的なブロック配置の良否との相関を判断する(例えば、相関係数などの指標値を算出する)。また、パラメータ更新部118は、新たなパラメータの値を用いて算出される当初の分割パターンの評価値と最終的なブロック配置の良否との相関を判断する。後者の相関が前者より改善していれば、パラメータ更新部118は、パラメータの値が改善したと判断することができる。ただし、他の方法で改善の有無を判断してもよい。
In verifying the improvement, for example, the
(S20)パラメータ更新部118は、パラメータ記憶部113に記憶されたパラメータの値を、ステップS18で算出されたものに更新する。
(S21)自動サンプル生成部115は、パラメータ学習の終了条件が満たされたか判断する。終了条件としては、例えば、パラメータの値が改善しなくなったことや、ステップS13〜S20の処理が所定回数繰り返されたことなどが挙げられる。終了条件が満たされていない場合はステップS13に処理が進み、パラメータの学習が継続される。終了条件が満たされた場合はパラメータの学習が終了する。
(S20) The
(S21) The automatic
図9は、1ステップ最適化の手順例を示すフローチャートである。
このフローチャートの処理は、上記のステップS14,S15で実行される。
(S30)1ステップ最適化部116は、領域を2つに分割する。
FIG. 9 is a flowchart illustrating an example of a procedure for one-step optimization.
The processing of this flowchart is executed in steps S14 and S15 described above.
(S30) The 1-
(S31)1ステップ最適化部116は、分割前の領域に含まれる複数のブロックを分割した2つの領域に割り振ることで、分割パターンを1つ生成する。分割パターンを探索する方法としては、例えば、貪欲法や局所探索法などの近似アルゴリズムを用いる。
(S31) The one-
(S32)1ステップ最適化部116は、ステップS31で生成した分割パターンから特徴量を抽出する。1ステップ最適化部116は、パラメータ記憶部113に記憶されている現在のパラメータの値を適用した評価関数に、抽出した特徴量を代入することで、ステップS31の分割パターンの良否を示す評価値を算出する。この評価値は、最適化処理の途中における評価を示すものであるため「中間評価値」と呼ぶこともできる。
(S32) The one-
(S33)1ステップ最適化部116は、ステップS32で算出された評価値が、現在記録しているもの(過去に算出された最良の評価値)よりも改善しているか判断する。評価値が小さいほど良い評価を示す場合、1ステップ最適化部116は、ステップS32で算出された評価値が現在記録しているものより小さいか判断する。評価値が改善している場合はステップS34に処理が進み、改善していない場合(評価値が現在記録しているものと同じか悪い場合)はステップS35に処理が進む。なお、記録している評価値がない場合(最初の分割パターンの評価値である場合)は、改善しているものとして扱う。
(S33) The one-
(S34)1ステップ最適化部116は、ステップS31で生成した分割パターンを、現在までに探索された中で最良の分割パターンとして記録しておく。また、ステップS32で算出した評価値を、現在までに探索された範囲で最良の評価値として記録しておく。このとき、前回記録しておいた分割パターンや評価値は削除してよい。
(S34) The 1-
(S35)1ステップ最適化部116は、分割パターンの探索の終了条件が満たされたか判断する。終了条件は、ステップS31で使用する近似アルゴリズムに依存する。終了条件としては、例えば、分割パターンを所定数生成したことや、所定回数連続して評価値が改善しなかったことなどが挙げられる。終了条件が満たされた場合はステップS36に処理が進み、終了条件が満たされていない場合はステップS31に処理が進む。
(S35) The one-
(S36)1ステップ最適化部116は、最後に記録した分割パターン、すなわち、探索された中で評価値が最も良い(例えば、評価値が最も小さい)分割パターンを取得し、最適化処理を1ステップ進めた分割パターンとして出力する。
(S36) The one-
以上、LSIレイアウトの最適化問題を例にして、設計装置100による評価関数の学習について説明した。ただし、第2の実施の形態の評価関数の学習方法は、LSIレイアウト以外の他の分野の最適化問題にも適用することが可能である。以下では、他の最適化問題の例として、コンテナパッキングの最適化問題を説明する。
The learning of the evaluation function by the
図10は、コンテナパッキングの最適化問題の例を示す図である。
ここでは、様々な大きさをもつ複数の直方体の貨物を、同じ大きさの複数のコンテナに分散して詰め込むことを考える。様々なパッキングパターンのうち、使用するコンテナの数が少なくなるものを良いパッキングパターンとして評価する。
FIG. 10 is a diagram illustrating an example of a container packing optimization problem.
Here, it is considered that a plurality of rectangular parallelepiped cargoes having various sizes are distributed and packed in a plurality of containers of the same size. Among various packing patterns, the one that uses fewer containers is evaluated as a good packing pattern.
あるパッキングパターンからは、例えば、図10に示すような特徴量が抽出される。使用されるm個のコンテナを、充足率(コンテナの容量に対する貨物の合計容量の割合)に基づいてソートし、充足率が高い順に各コンテナに識別番号を付与する。また、貨物をそのサイズに応じて複数の区分に分類しておく。例えば、幅(x軸)の単位長をUx、奥行(y軸)の単位長をUy、高さ(z軸)の単位長をUzとする。(Ux,Uy,Uz)以内に収まる貨物を区分#1、区分#1のサイズを超えるが(2Ux,Uy,Uz)以内に収まる貨物を区分#2、区分#2のサイズを超えるが(2Ux,2Uy,Uz)以内に収まる貨物を区分#3、区分#2のサイズを超えるが(3Ux,Uy,Uz)以内に収まる貨物を区分#4というように、複数の区分を定義しておくことができる。
For example, feature quantities as shown in FIG. 10 are extracted from a certain packing pattern. The m containers to be used are sorted based on the filling rate (ratio of the total capacity of the cargo to the capacity of the container), and an identification number is assigned to each container in descending order of filling rate. In addition, cargo is classified into a plurality of categories according to its size. For example, the unit length of the width (x axis) is Ux, the unit length of the depth (y axis) is Uy, and the unit length of the height (z axis) is Uz. Cargo that falls within (Ux, Uy, Uz) exceeds the size of
すると、特徴量として、コンテナ毎に各区分の貨物の数を抽出することができる。図10において、Ni,jはj番目のコンテナ(コンテナ#j)に詰め込まれた区分#iの貨物の数を表す。コンテナパッキングでは、例えば、評価関数が式(6)のように与えられる。Fullnessは使用されているコンテナ全体の充足率を表す。w0は充足率に付与する重みを表し、wi,jはNi,jに付与する重みを表す。この評価関数では、Fullness,Ni,jが変数であり、w0,wi,jがパラメータである。 Then, the number of cargoes in each section can be extracted as a feature amount for each container. In FIG. 10, N i, j represents the number of cargoes in section #i packed in the jth container (container #j). In container packing, for example, an evaluation function is given as shown in Equation (6). Fullness represents the fullness rate of the entire used container. w 0 represents the weight given to the satisfaction rate, and w i, j represents the weight given to N i, j . In this evaluation function, Fullness, N i, j are variables, and w 0 , w i, j are parameters.
この最適化問題に対しては、例えば、探索アルゴリズムとしてタブーサーチ法を用いることが考えられる。コンテナパッキングのタブーサーチ法については、例えば、Zhihong Jin, Takahiro Ito and Katsuhisa Ohno, "The Three-Dimensional Bin Packing Problem and Its Practical Algorithm", JSME (Japan Society of Mechanical Engineers) International Journal, Vol.46 No.1, pp.60-66, 2004-06-25に記載がある。 For this optimization problem, for example, a tabu search method may be used as a search algorithm. For example, Zhihong Jin, Takahiro Ito and Katsuhisa Ohno, "The Three-Dimensional Bin Packing Problem and Its Practical Algorithm", JSME (Japan Society of Mechanical Engineers) International Journal, Vol. 46 No. 1, pp.60-66, 2004-06-25.
タブーサーチ法を用いた場合、最初に、複数のコンテナに対してランダムに貨物が割り振られる。各コンテナの中では、タブーサーチ法を再帰的に用いることで(例えば、コンテナ内の領域を分割していくことで)、コンテナ内での各貨物の位置を算出できる。そして、初期のパッキングパターンから始めて、幾つかの貨物をコンテナ間で移動させる。例えば、あるコンテナに含まれる1または2以上の貨物を、空のコンテナまたは空でない他のコンテナに移動させる。また、例えば、あるコンテナに含まれる1または2以上の貨物と、他のコンテナに含まれる1または2以上の貨物とを交換する。 When the tabu search method is used, first, cargo is randomly allocated to a plurality of containers. In each container, the position of each cargo in the container can be calculated by recursively using the tabu search method (for example, by dividing an area in the container). Then, starting with an initial packing pattern, several cargoes are moved between containers. For example, one or more cargoes contained in a certain container are moved to an empty container or another container that is not empty. Further, for example, one or two or more cargoes contained in a container and one or two or more cargoes contained in another container are exchanged.
幾つかの貨物の移動1回が、ヒューリスティクスにおける1ステップに相当する。移動によって得られる複数のパッキングパターンの中から、評価関数によって算出される評価値が最も良いものが選択され、選択されたパッキングパターンに基づいて次のステップが実行される。このとき、直近N回(例えば、直近7回)採用したパッキングパターンをタブーリストとして記憶しておき、タブーリストに含まれるパッキングパターンは次のステップで使用しないようにする。これにより、同じ貨物の移動が繰り返されるのを防ぐ。 One movement of several cargoes corresponds to one step in heuristics. The one having the best evaluation value calculated by the evaluation function is selected from a plurality of packing patterns obtained by the movement, and the next step is executed based on the selected packing pattern. At this time, the packing pattern adopted most recently N times (for example, the latest seven times) is stored as a tabu list, and the packing pattern included in the tabu list is not used in the next step. This prevents repeated movement of the same cargo.
設計装置100は、LSIレイアウトの最適化の場合と同様に、コンテナパッキングの最適化に用いる評価関数のパラメータw0,wi,jを教師付き機械学習によって学習することができる。例えば、設計装置100は、人間が作成したパッキングパターンを人手サンプルとして取得し、人手サンプルからランダムに幾つかの貨物を交換したパッキングパターンを生成する。そして、設計装置100は、生成したパッキングパターンから元の人手サンプルに戻す貨物の移動が良い交換操作であり、他の貨物の移動が悪い交換操作であると評価されるように、評価関数のパラメータの初期値を算出する。
Similar to the LSI layout optimization, the
また、設計装置100は、例えば、人手サンプルからランダムに数ステップだけ貨物を移動させることで、パッキングパターンの自動サンプルを生成する。そして、設計装置100は、上記で算出したパラメータの初期値を適用した評価関数を用いて、自動サンプルに対して数ステップ(例えば、3ステップ)最適化処理を進め、数ステップ進めた後のパッキングパターンから理想評価値を算出する。設計装置100は、生成した自動サンプルと算出した理想評価値とを回帰分析し、パラメータの値を更新することができる。
In addition, the
第2の実施の形態の設計装置100によれば、最適化処理に用いる評価関数を学習するにあたり、自動サンプルが生成され、自動サンプルに対して最適化処理を進めた後の評価値が理想評価値として算出される。そして、自動サンプルと理想評価値とを回帰分析することで評価関数のパラメータの値が更新される。これにより、自動サンプルの良否を推定することができ、自動サンプルを利用して評価関数のパラメータの精度を向上させることができる。よって、人間が用意する人手サンプルの不足を補うことができ、評価関数を教師付き機械学習によって算出するときの負担を軽減することができる。特に、変数やパラメータの数が多い場合でも、回帰分析を行うのに十分な数のサンプルを用意できる。
According to the
また、評価関数の精度が向上することで、人間から見て「悪い」候補に対して良い評価値が算出されてしまうことを抑制でき、最適解または準最適解を効率的に探索できるようになる。また、評価関数の学習を繰り返す中で、好ましい新たな変数やパラメータを追加することができるなど、ユーザによって評価関数を適宜変形することが可能となる。 In addition, by improving the accuracy of the evaluation function, it is possible to prevent a good evaluation value from being calculated for a “bad” candidate from the viewpoint of humans, and to efficiently search for an optimal solution or a sub-optimal solution. Become. In addition, it is possible to appropriately modify the evaluation function by the user, for example, by adding preferable new variables and parameters while repeating learning of the evaluation function.
なお、前述のように、第1の実施の形態の情報処理は、情報処理装置10にプログラムを実行させることで実現することができる。第2の実施の形態の情報処理は、設計装置100にプログラムを実行させることで実現することができる。
As described above, the information processing according to the first embodiment can be realized by causing the
プログラムは、コンピュータ読み取り可能な記録媒体(例えば、記録媒体23)に記録しておくことができる。記録媒体としては、例えば、磁気ディスク、光ディスク、光磁気ディスク、半導体メモリなどを使用できる。磁気ディスクには、FDおよびHDDが含まれる。光ディスクには、CD、CD−R(Recordable)/RW(Rewritable)、DVDおよびDVD−R/RWが含まれる。プログラムは、可搬型の記録媒体に記録されて配布されることがある。その場合、可搬型の記録媒体からHDDなどの他の記録媒体(例えば、HDD103)にプログラムを複製して(インストールして)実行してもよい。 The program can be recorded on a computer-readable recording medium (for example, recording medium 23). As the recording medium, for example, a magnetic disk, an optical disk, a magneto-optical disk, a semiconductor memory, or the like can be used. Magnetic disks include FD and HDD. Optical discs include CD, CD-R (Recordable) / RW (Rewritable), DVD, and DVD-R / RW. The program may be recorded and distributed on a portable recording medium. In that case, the program may be copied (installed) from a portable recording medium to another recording medium such as an HDD (for example, the HDD 103) and executed.
10 情報処理装置
11 記憶部
12 演算部
13,13a 評価関数
14 被評価データ
15 評価値
DESCRIPTION OF
Claims (7)
被評価データを生成し、前記評価関数を用いて前記被評価データに対して前記最適化処理を進めて、前記最適化処理を進めた後の前記被評価データの状態に応じた評価値を算出し、前記被評価データおよび前記最適化処理を進めた後の前記被評価データの状態に応じた評価値に基づいて前記評価関数を更新する演算部と、
を有する情報処理装置。 A storage unit for storing information of an evaluation function used for optimization processing;
Generate evaluation data, advance the optimization process on the evaluation data using the evaluation function, and calculate an evaluation value according to the state of the evaluation data after the optimization process And an arithmetic unit that updates the evaluation function based on an evaluation value according to a state of the evaluated data and the evaluated data after the optimization process is advanced ,
An information processing apparatus.
請求項1記載の情報処理装置。 The arithmetic unit, when updating the evaluation function, when a plurality of evaluated data can be used, an evaluation value according to a state of the evaluated data and a current evaluation after the optimization process is advanced Based on the difference with the value, select the evaluated data to be used for calculation from the plurality of evaluated data.
The information processing apparatus according to claim 1.
請求項1または2記載の情報処理装置。 The arithmetic unit advances the optimization process for other evaluated data using the updated evaluation function, and performs another process according to the state of the other evaluated data after the optimization process is advanced. Further updating the updated evaluation function by calculating an evaluation value,
The information processing apparatus according to claim 1 or 2.
前記演算部は、前記被評価データおよび前記最適化処理を進めた後の前記被評価データの状態に応じた評価値に基づいて第2の評価関数を算出した場合、前記第1の評価関数による評価結果と前記第2の評価関数による評価結果との比較に応じて、前記第1の評価関数を前記第2の評価関数に更新するか判断する、
請求項1乃至3の何れか一項に記載の情報処理装置。 Information on the first evaluation function is stored in the storage unit,
When the calculation unit calculates a second evaluation function based on an evaluation value corresponding to a state of the evaluation target data and the evaluation target data after the optimization process is performed, the calculation unit uses the first evaluation function. Determining whether to update the first evaluation function to the second evaluation function according to a comparison between the evaluation result and the evaluation result by the second evaluation function;
The information processing apparatus according to any one of claims 1 to 3.
前記最適化処理を進めた後の前記被評価データの状態に応じた評価値は、前記被評価データに対して前記最適化処理の途中であるn段階目(nは1以上の整数)までの処理を実行することで算出される、
請求項1乃至4の何れか一項に記載の情報処理装置。 The optimization process includes a multi-stage process,
The evaluation value according to the state of the evaluated data after the optimization process is advanced is up to the nth stage (n is an integer of 1 or more) in the middle of the optimization process with respect to the evaluated data. Calculated by executing the process,
The information processing apparatus according to any one of claims 1 to 4.
被評価データを生成し、
評価関数を用いて前記被評価データに対して最適化処理を進めて、前記最適化処理を進めた後の前記被評価データの状態に応じた評価値を算出し、
前記被評価データおよび前記最適化処理を進めた後の前記被評価データの状態に応じた評価値に基づいて前記評価関数を更新する、
評価関数学習方法。 An evaluation function learning method executed by a computer,
Generate evaluated data,
Advance the optimization process on the evaluated data using an evaluation function, calculate the evaluation value according to the state of the evaluated data after the optimization process,
Updating the evaluation function based on an evaluation value corresponding to a state of the evaluated data and the evaluated data after the optimization process is advanced ;
Evaluation function learning method.
被評価データを生成し、
評価関数を用いて前記被評価データに対して最適化処理を進めて、前記最適化処理を進めた後の前記被評価データの状態に応じた評価値を算出し、
前記被評価データおよび前記最適化処理を進めた後の前記被評価データの状態に応じた評価値に基づいて前記評価関数を更新する、
処理を実行させるプログラム。 On the computer,
Generate evaluated data,
Advance the optimization process on the evaluated data using an evaluation function, calculate the evaluation value according to the state of the evaluated data after the optimization process,
Updating the evaluation function based on an evaluation value corresponding to a state of the evaluated data and the evaluated data after the optimization process is advanced ;
A program that executes processing.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014021189A JP6269121B2 (en) | 2014-02-06 | 2014-02-06 | Information processing apparatus, evaluation function learning method, and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014021189A JP6269121B2 (en) | 2014-02-06 | 2014-02-06 | Information processing apparatus, evaluation function learning method, and program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2015148926A JP2015148926A (en) | 2015-08-20 |
JP6269121B2 true JP6269121B2 (en) | 2018-01-31 |
Family
ID=53892241
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014021189A Active JP6269121B2 (en) | 2014-02-06 | 2014-02-06 | Information processing apparatus, evaluation function learning method, and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6269121B2 (en) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6439780B2 (en) * | 2015-12-24 | 2018-12-19 | Jfeスチール株式会社 | Magnetic property prediction device and magnetic property control device for electrical steel sheet |
US9792397B1 (en) * | 2017-01-08 | 2017-10-17 | Alphaics Corporation | System and method for designing system on chip (SoC) circuits through artificial intelligence and reinforcement learning |
JP7146751B2 (en) * | 2017-06-22 | 2022-10-04 | 株式会社半導体エネルギー研究所 | LAYOUT DESIGN SYSTEM AND LAYOUT DESIGN METHOD |
WO2020188397A1 (en) * | 2019-03-20 | 2020-09-24 | 株式会社半導体エネルギー研究所 | Method for designing wiring layout, program, and recording medium |
JP2021144511A (en) * | 2020-03-12 | 2021-09-24 | 株式会社グルーヴノーツ | Information processing device, information processing method and information processing program |
CN114048926B (en) | 2021-12-09 | 2022-04-15 | 广东工业大学 | Multi-box type three-dimensional boxing optimization method and system based on multi-branch tree search |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11306216A (en) * | 1998-04-16 | 1999-11-05 | Matsushita Electric Ind Co Ltd | Automatic arranging method and automatic arrangement system |
JP2004326363A (en) * | 2003-04-23 | 2004-11-18 | Mitsubishi Heavy Ind Ltd | Four-dimensional navigation object, four-dimensional navigation device, and four-dimensional control method of navigation object |
JP2006072820A (en) * | 2004-09-03 | 2006-03-16 | Mitsubishi Electric Corp | Device for analyzing combination optimization problem |
-
2014
- 2014-02-06 JP JP2014021189A patent/JP6269121B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2015148926A (en) | 2015-08-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6269121B2 (en) | Information processing apparatus, evaluation function learning method, and program | |
JP7413580B2 (en) | Generating integrated circuit floorplans using neural networks | |
JP7097757B2 (en) | Systems and methods for key parameter identification, process model calibration, and variability analysis in virtual semiconductor device manufacturing environments | |
Lin et al. | POLAR: Placement based on novel rough legalization and refinement | |
US8453091B1 (en) | Method and mechanism for managing hierarchical data for implementing region query | |
CN115315703A (en) | Generating an integrated circuit layout using a neural network | |
Wutthisirisart et al. | A two-phased heuristic for relation-based item location | |
US11709987B2 (en) | Method and system for generating layout design of integrated circuit | |
JP2020004387A (en) | Optimization problem calculation program and optimization problem calculation system | |
US20190391807A1 (en) | Computer-readable recording medium storing optimization problem computing program and optimization problem computing system | |
US20200364594A1 (en) | Information processing apparatus, optimization system, and optimization method | |
CN116227407B (en) | Method for forming module boundary of physical layout and related equipment | |
US20210097044A1 (en) | Systems and methods for designing data structures and synthesizing costs | |
KR101522478B1 (en) | Method, program, and device for grouping plurality of elements | |
Chang et al. | A novel damped-wave framework for macro placement | |
JP2022047362A (en) | Information processing system, information processing method, and program | |
US20230351087A1 (en) | Using machine trained network during routing to modify locations of vias in an ic design | |
US20230274067A1 (en) | Using pixel-based definition of an integrated circuit design to perform machine-trained routing | |
US20230282635A1 (en) | Integrated circuit with non-preferred direction curvilinear wiring | |
US8407228B1 (en) | Method and mechanism for maintaining existence information for electronic layout data | |
Zhu et al. | An augmented Lagrangian method for VLSI global placement | |
US20230122178A1 (en) | Computer-readable recording medium storing program, data processing method, and data processing device | |
JP7498393B2 (en) | Information processing device, information processing method, program, and information processing system | |
CN111160831A (en) | Intensive storage task generation method and device and electronic equipment | |
US20190286770A1 (en) | Computer-readable recording medium storing divided region generating program, divided region generating apparatus, and divided region generating method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20161004 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20171011 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20171024 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20171120 |
|
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: 20171205 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20171218 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6269121 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |