JP6269121B2 - Information processing apparatus, evaluation function learning method, and program - Google Patents

Information processing apparatus, evaluation function learning method, and program Download PDF

Info

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
Application number
JP2014021189A
Other languages
Japanese (ja)
Other versions
JP2015148926A (en
Inventor
裕治 金澤
裕治 金澤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2014021189A priority Critical patent/JP6269121B2/en
Publication of JP2015148926A publication Critical patent/JP2015148926A/en
Application granted granted Critical
Publication of JP6269121B2 publication Critical patent/JP6269121B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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.

特開平8−96013号公報JP-A-8-96013 特開平9−330350号公報JP-A-9-330350 特開平10−256375号公報Japanese Patent Laid-Open No. 10-256375

上記のように、情報処理装置に最適化処理を実行させるにあたっては、適切な評価関数を用意することになる場合がある。例えば、データから抽出される特徴量に対応する変数とパラメータ(例えば、特徴量にかける重みとしての係数など)とを含む評価関数を定義しておく。ただし、変数やパラメータが多い場合など、適切な評価関数を人間が定義すること(例えば、適切なパラメータの値を決定すること)が容易でない場合もある。   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.

情報処理装置の例を示す図である。It is a figure which shows the example of information processing apparatus. 設計装置のハードウェア例を示すブロック図である。It is a block diagram which shows the hardware example of a design apparatus. LSIレイアウトの最適化問題の例を示す第1の図である。FIG. 10 is a first diagram illustrating an example of an LSI layout optimization problem. LSIレイアウトの最適化問題の例を示す第2の図である。FIG. 10 is a second diagram illustrating an example of an LSI layout optimization problem. 設計装置の機能例を示すブロック図である。It is a block diagram which shows the function example of a design apparatus. 機械学習に用いるサンプルの生成例を示す図である。It is a figure which shows the example of a production | generation of the sample used for machine learning. 機械学習に用いる誤差関数の例を示す図である。It is a figure which shows the example of the error function used for machine learning. パラメータ学習の手順例を示すフローチャートである。It is a flowchart which shows the example of a procedure of parameter learning. 1ステップ最適化の手順例を示すフローチャートである。It is a flowchart which shows the example of a procedure of 1 step optimization. コンテナパッキングの最適化問題の例を示す図である。It is a figure which shows the example of the optimization problem of a container packing.

以下、本実施の形態を図面を参照して説明する。
[第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 information processing apparatus 10 according to the first embodiment generates an evaluation function used when solving a combination optimization problem by supervised machine learning. As an example of the combinatorial optimization problem, determining an arrangement pattern of circuit blocks on a printed board in LSI design can be cited. The optimization process using the evaluation function is implemented in, for example, CAD (Computer Aided Design) software that supports design work such as LSI design. The evaluation function learned by the information processing apparatus 10 can be used in the information processing apparatus 10 or another information processing apparatus.

情報処理装置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 information processing apparatus 10 includes a storage unit 11 and a calculation unit 12. The information processing apparatus 10 may be called a computer. The storage unit 11 may be a volatile storage device such as a RAM (Random Access Memory) or a non-volatile storage device such as an HDD (Hard Disk Drive). The calculation unit 12 is, for example, a processor. The processor may be a central processing unit (CPU) or a digital signal processor (DSP), and may include an integrated circuit for a specific application such as an application specific integrated circuit (ASIC) or a field programmable gate array (FPGA). The processor may execute a program stored in a storage device such as a RAM (for example, the storage unit 11). A set of two or more processors (multiprocessor) may be called a “processor”.

記憶部11は、最適化処理に用いる評価関数13(第1の評価関数)を示す情報を記憶する。評価関数13には、例えば、被評価データの特徴を示す特徴量に相当する1または2以上の変数と、変数以外のパラメータ(例えば、特徴量の重みに相当する係数)とが含まれる。その場合、評価関数13の情報には、機械学習によって算出されたパラメータの値が含まれる。評価関数13の変数に被評価データの特徴量を代入することで、評価関数13による被評価データの評価結果を示す評価値を算出できる。被評価データの特徴量としては、例えば、回路ブロック間の配線のうちある条件を満たす配線の数や、プリント板上の各サブ領域に配置した回路ブロックの合計面積などが挙げられる。   The storage unit 11 stores information indicating the evaluation function 13 (first evaluation function) used for the optimization process. The evaluation function 13 includes, for example, one or more variables corresponding to the feature amount indicating the feature of the evaluated data, and parameters other than the variable (for example, a coefficient corresponding to the weight of the feature amount). In this case, the information of the evaluation function 13 includes parameter values calculated by machine learning. By substituting the feature value of the evaluated data into the variable of the evaluation function 13, an evaluation value indicating the evaluation result of the evaluated data by the evaluation function 13 can be calculated. Examples of the feature amount of the data to be evaluated include the number of wiring satisfying a certain condition among wirings between circuit blocks, the total area of circuit blocks arranged in each sub-region on the printed board, and the like.

演算部12は、サンプルデータとしての被評価データを用いて、最適化処理に用いる評価関数の精度が上がるように評価関数を学習する(例えば、評価関数に含まれるパラメータの値を算出する)。後述するように、演算部12は、記憶部11に記憶された情報が示す評価関数13(第1の評価関数)を評価関数13a(第2の評価関数)に更新する。評価関数13aは、例えば、パラメータの値が評価関数13とは異なる。ただし、評価関数13aは、評価関数13に含まれない変数やパラメータを含んでいてもよい。   The arithmetic unit 12 learns the evaluation function using the evaluated data as the sample data so that the accuracy of the evaluation function used for the optimization process is increased (for example, calculates the value of the parameter included in the evaluation function). As will be described later, the calculation unit 12 updates the evaluation function 13 (first evaluation function) indicated by the information stored in the storage unit 11 to the evaluation function 13a (second evaluation function). For example, the evaluation function 13 a is different in parameter value from the evaluation function 13. However, the evaluation function 13a may include variables and parameters that are not included in the evaluation function 13.

評価関数13aを算出するにあたり、演算部12は、被評価データ14を生成する。例えば、被評価データ14は、配置を決定すべき回路ブロックや配置パターンの制約条件の情報を含む。被評価データ14は、人間が作成したサンプルデータでなくてよく、所定のアルゴリズムに従ってまたはランダムに自動生成したものでよい。例えば、被評価データ14は、人間が作成したサンプルデータをランダムに変形したものでもよい。   In calculating the evaluation function 13 a, the calculation unit 12 generates the evaluated data 14. For example, the evaluated data 14 includes information on the constraint conditions of circuit blocks and arrangement patterns whose arrangement is to be determined. The evaluated data 14 need not be sample data created by a human, but may be automatically generated according to a predetermined algorithm or randomly. For example, the data 14 to be evaluated may be data obtained by randomly transforming sample data created by a human.

被評価データ14が生成されると、演算部12は、評価関数13を用いて被評価データ14に対して最適化処理を進める。最適化処理においては、演算部12は、複数の候補の中から評価関数13の評価値が良いものを選択していく。最適化処理が複数段階の部分最適化処理を含む場合、演算部12は、最適化処理の途中であるn段階目(nは1以上の整数)までの部分最適化処理を実行してもよい。nは所定の固定値であってもよい。例えば、演算部12は、プリント板の領域を2分割して評価値が高くなるように回路ブロックを2つのサブ領域に振り分けることを、階層的にn回繰り返す。   When the evaluated data 14 is generated, the arithmetic unit 12 advances an optimization process on the evaluated data 14 using the evaluation function 13. In the optimization process, the calculation unit 12 selects a candidate having a good evaluation value of the evaluation function 13 from a plurality of candidates. When the optimization process includes a plurality of stages of partial optimization processes, the arithmetic unit 12 may execute the partial optimization processes up to the nth stage (n is an integer of 1 or more) in the middle of the optimization process. . n may be a predetermined fixed value. For example, the calculation unit 12 repeats n times hierarchically to divide the circuit board into two sub-regions so that the evaluation value is increased by dividing the printed board region into two.

そして、演算部12は、最適化処理を進めた後の被評価データ14の状態に応じた評価値15を算出する。例えば、演算部12は、プリント板の領域をn回だけ階層的に分割したときの配置パターンの特徴量を評価関数13の変数に代入することで、評価値15を算出する。一般に、あるサンプルデータの良否がその時点では明確とは言えない場合であっても、最適化処理を進めると、元のサンプルデータが良かったか悪かったかが明確になることが多い。すなわち、最適化処理を進める前の特徴量から算出される評価値よりも、最適化処理を進めた後の特徴量から算出される評価値の方が、明確に良い値または明確に悪い値になることが多い。そこで、演算部12は、生成した被評価データ14から直接得られる評価値に代えて、最適化処理を進めた後の評価値15を使用することとする。   And the calculating part 12 calculates the evaluation value 15 according to the state of the to-be-evaluated data 14 after progressing an optimization process. For example, the calculation unit 12 calculates the evaluation value 15 by substituting the feature amount of the arrangement pattern when the area of the printed board is hierarchically divided n times into the variable of the evaluation function 13. In general, even if the quality of certain sample data is not clear at that time, it is often clear whether the original sample data was good or bad when the optimization process is advanced. That is, the evaluation value calculated from the feature value after the optimization process is clearly better or worse than the evaluation value calculated from the feature value before the optimization process. Often becomes. Therefore, the calculation unit 12 uses the evaluation value 15 after the optimization process is performed, instead of the evaluation value obtained directly from the generated evaluated data 14.

評価値15が算出されると、演算部12は、生成した被評価データ14および最適化処理を進めた後の評価値15に基づいて、評価関数13を評価関数13aに更新する(例えば、評価関数13のパラメータの値を更新する)。例えば、演算部12は、被評価データ14の特徴量と評価値15の組を含む複数の特徴量と評価値の組を回帰分析することで、評価関数13aのパラメータの値を算出する。このとき、演算部12は、最適化処理を進める前の元のサンプルデータの特徴量と最適化処理を進めた後の状態の評価値との間の関係を推定することになる。評価関数13aの算出に用いる評価値15は、被評価データ14の良否をより明確に表している可能性が高いため「理想評価値」と言うこともできる。   When the evaluation value 15 is calculated, the calculation unit 12 updates the evaluation function 13 to the evaluation function 13a based on the generated evaluated data 14 and the evaluation value 15 after the optimization process is performed (for example, evaluation Update the value of the parameter of function 13). For example, the computing unit 12 calculates the parameter value of the evaluation function 13a by performing regression analysis on a plurality of feature value / evaluation value pairs including the feature value / evaluation value 15 pair of the evaluated data 14. At this time, the calculation unit 12 estimates the relationship between the feature amount of the original sample data before the optimization process is advanced and the evaluation value of the state after the optimization process is advanced. The evaluation value 15 used for the calculation of the evaluation function 13a can be said to be an “ideal evaluation value” because there is a high possibility that the evaluation data 14 is more clearly expressed as good or bad.

この処理は、被評価データ14の数が非常に多いと時間がかかることがある。その場合、自動的に生成されたデータのうち一部だけを使うことでデータを削減し、処理時間を短縮することができる。このとき、最初の評価値と評価値15の差が小さいサンプルデータは、従来の学習結果がうまく機能していることを意味するため、推定処理に入力しても結果に大きな影響は与えない。しかし、差が小さいものを全く選択せずに推定処理を実行すると、既存の学習結果を壊してしまう可能性が生じる。したがって、データを選択する際に、評価値の差が大きいものが選択される確率を増やし、差が小さいものは低い確率で選択することで、データを削減しても修正に必要なデータを取りこぼす可能性を下げることが期待できる。例えば、最初の評価値と評価値15の差が0〜100のときは選択確率を1%、評価値の差が100〜200のときに選択確率を10%というように、予め評価値の差に対応する確率を決めておき、乱数を使用して推定処理に使用するデータを選択すればよい。   This process may take time if the number of data 14 to be evaluated is very large. In that case, by using only a part of the automatically generated data, the data can be reduced and the processing time can be shortened. At this time, sample data having a small difference between the first evaluation value and the evaluation value 15 means that the conventional learning result is functioning well, so that even if it is input to the estimation process, the result is not greatly affected. However, if the estimation process is executed without selecting a small difference at all, the existing learning result may be destroyed. Therefore, when selecting data, increasing the probability that a value with a large difference in evaluation values will be selected, and selecting a value with a small difference with a low probability, the data necessary for correction can be acquired even if the data is reduced. It can be expected to reduce the possibility of spilling. For example, when the difference between the first evaluation value and the evaluation value 15 is 0 to 100, the selection probability is 1%, and when the difference between the evaluation values is 100 to 200, the selection probability is 10%. The probability corresponding to is determined, and data used for the estimation process may be selected using a random number.

第1の実施の形態の情報処理装置10によれば、最適化処理に用いる評価関数を学習するにあたり、被評価データ14に対して最適化処理を進めた後の評価値15が算出され、被評価データ14と評価値15とに基づいて評価関数13が更新される。これにより、被評価データ14が人手によらずに自動生成されたものであってもその良否を推定することができ、被評価データ14を利用して、評価関数13の精度(例えば、評価関数13に含まれるパラメータの値の精度)を向上させることができる。   According to the information processing apparatus 10 of the first embodiment, when learning the evaluation function used for the optimization process, the evaluation value 15 after the optimization process is performed on the evaluated data 14 is calculated, The evaluation function 13 is updated based on the evaluation data 14 and the evaluation value 15. As a result, even if the evaluated data 14 is automatically generated without human intervention, the quality of the evaluated data 14 can be estimated, and the accuracy (e.g., the evaluation function) of the evaluation function 13 can be estimated using the evaluated data 14. 13) can be improved.

よって、人間が用意するサンプルデータの不足を補うことができ、評価関数を教師付き機械学習によって算出するときの負担を軽減することができる。また、評価関数の精度が向上することで、人間から見て「悪い」候補に対して良い評価値が算出されてしまうことを抑制でき、最適解または準最適解を効率的に探索できるようになる。   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 design apparatus 100 according to the second embodiment supports LSI layout design. The design apparatus 100 can be realized as a computer. In this case, the design apparatus 100 executes CAD software used for LSI layout design.

図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 design apparatus 100 includes a CPU 101, a RAM 102, an HDD 103, an image signal processing unit 104, an input signal processing unit 105, a medium reader 106, and a communication interface 107. The CPU 101 is an example of the calculation unit 12 according to the first embodiment. The RAM 102 or the HDD 103 is an example of the storage unit 11 according to the first embodiment.

CPU101は、プログラムの命令を実行する演算回路を含むプロセッサである。CPU101は、HDD103に記憶されているプログラムやデータの少なくとも一部をRAM102にロードし、プログラムを実行する。なお、CPU101は複数のプロセッサコアを備えてもよく、設計装置100は複数のプロセッサを備えてもよく、以下で説明する処理を複数のプロセッサまたはプロセッサコアを用いて並列実行してもよい。また、複数のプロセッサの集合(マルチプロセッサ)を「プロセッサ」と呼んでもよい。   The CPU 101 is a processor including an arithmetic circuit that executes program instructions. The CPU 101 loads at least a part of the program and data stored in the HDD 103 into the RAM 102 and executes the program. The CPU 101 may include a plurality of processor cores, the design apparatus 100 may include a plurality of processors, and the processes described below may be executed in parallel using a plurality of processors or processor cores. A set of processors (multiprocessor) may be called a “processor”.

RAM102は、CPU101が実行するプログラムやCPU101が演算に用いるデータを一時的に記憶する揮発性メモリである。なお、設計装置100は、RAM以外の種類のメモリを備えてもよく、複数個のメモリを備えてもよい。   The RAM 102 is a volatile memory that temporarily stores programs executed by the CPU 101 and data used by the CPU 101 for calculation. The design apparatus 100 may include a type of memory other than the RAM, or may include a plurality of memories.

HDD103は、OS(Operating System)やアプリケーションソフトウェアなどのソフトウェアのプログラム、および、データを記憶する不揮発性の記憶装置である。アプリケーションソフトウェアには、LSIレイアウト設計に用いるCADソフトウェアが含まれる。なお、設計装置100は、フラッシュメモリやSSD(Solid State Drive)などの他の種類の記憶装置を備えてもよく、複数の不揮発性の記憶装置を備えてもよい。   The HDD 103 is a nonvolatile storage device that stores software programs such as an OS (Operating System) and application software, and data. Application software includes CAD software used for LSI layout design. The design apparatus 100 may include other types of storage devices such as a flash memory and an SSD (Solid State Drive), and may include a plurality of nonvolatile storage devices.

画像信号処理部104は、CPU101からの命令に従って、設計装置100に接続されたディスプレイ21に画像を出力する。ディスプレイ21としては、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ(LCD:Liquid Crystal Display)、プラズマディスプレイ(PDP:Plasma Display Panel)、有機EL(OEL:Organic Electro-Luminescence)ディスプレイなどを用いることができる。   The image signal processing unit 104 outputs an image to the display 21 connected to the design apparatus 100 according to a command from the CPU 101. As the display 21, a CRT (Cathode Ray Tube) display, a liquid crystal display (LCD), a plasma display (PDP), an organic electro-luminescence (OEL) display, or the like can be used. .

入力信号処理部105は、設計装置100に接続された入力デバイス22から入力信号を取得し、CPU101に出力する。入力デバイス22としては、マウスやタッチパネルやタッチパッドやトラックボールなどのポインティングデバイス、キーボード、リモートコントローラ、ボタンスイッチなどを用いることができる。また、設計装置100に、複数の種類の入力デバイスが接続されていてもよい。   The input signal processing unit 105 acquires an input signal from the input device 22 connected to the design apparatus 100 and outputs it to the CPU 101. As the input device 22, a pointing device such as a mouse, a touch panel, a touch pad, a trackball, a keyboard, a remote controller, a button switch, or the like can be used. A plurality of types of input devices may be connected to the design apparatus 100.

媒体リーダ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 medium reader 106 is a reading device that reads a program and data recorded on the recording medium 23. The program may include a CAD software program used for LSI layout design. Examples of the recording medium 23 include a magnetic disk such as a flexible disk (FD) and an HDD, an optical disk such as a CD (Compact Disc) and a DVD (Digital Versatile Disc), a magneto-optical disk (MO), A semiconductor memory or the like can be used. For example, the medium reader 106 stores the program and data read from the recording medium 23 in the RAM 102 or the HDD 103.

通信インタフェース107は、ネットワーク24に接続され、ネットワーク24を介して他の情報処理装置と通信を行うインタフェースである。通信インタフェース107は、スイッチなどの通信装置とケーブルで接続される有線通信インタフェースでもよいし、基地局と無線リンクで接続される無線通信インタフェースでもよい。   The communication interface 107 is an interface that is connected to the network 24 and communicates with other information processing apparatuses via the network 24. The communication interface 107 may be a wired communication interface connected to a communication device such as a switch via a cable, or may be a wireless communication interface connected to a base station via a wireless link.

なお、設計装置100は、媒体リーダ106および通信インタフェース107の少なくとも一方を備えていなくてもよい。また、設計装置100は、ユーザが操作する端末装置からリモートアクセスされる場合には、画像信号処理部104および入力信号処理部105の少なくとも一方を備えていなくてもよい。また、ディスプレイ21および入力デバイス22の少なくとも一方が、設計装置100の筐体と一体に形成されていてもよい。   Note that the design apparatus 100 may not include at least one of the medium reader 106 and the communication interface 107. In addition, the design apparatus 100 may not include at least one of the image signal processing unit 104 and the input signal processing unit 105 when remotely accessed from a terminal device operated by a user. In addition, at least one of the display 21 and the input device 22 may be formed integrally with the housing of the design apparatus 100.

次に、設計装置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 design apparatus 100 will be described.
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 cells # 1 to # 8 and cells # 1 to # 8 can be arranged is defined. In FIG. 3, the description of the net is omitted or simplified.

パーティショニングベース配置法では、設計装置100は、領域を2分割して複数のセルを2つの領域に割り振ることを、各セルの位置が十分に限定されるまで階層的に繰り返す。ある領域を2分割してセルを割り振る操作が、ヒューリスティクスにおける1ステップに相当する。セルを2つの領域に割り振る方法(分割パターン)は複数通りあるため、設計装置100は、1ステップ毎に、複数の分割パターンの中から評価関数によって算出される評価値の最も良い分割パターンを選択する。この評価値は、最適化処理の途中で算出するものであるため「中間評価値」と言うこともできる。設計装置100は、選択した分割パターンを基準にして、次のステップとして分割した領域を更に2分割する。   In the partitioning-based arrangement method, the design apparatus 100 hierarchically repeats dividing the area into two and allocating a plurality of cells to the two areas until the positions of the cells are sufficiently limited. The operation of dividing a region into two and allocating cells corresponds to one step in heuristics. Since there are a plurality of methods (division patterns) for allocating cells to two areas, the design apparatus 100 selects a division pattern having the best evaluation value calculated by the evaluation function from a plurality of division patterns for each step. To do. Since this evaluation value is calculated during the optimization process, it can also be referred to as an “intermediate evaluation value”. The design apparatus 100 further divides the divided area into two as the next step based on the selected division pattern.

一例として、設計装置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 design apparatus 100 divides the region R into regions R0 and R1 having the same area by drawing a dividing line (cut line) in the X-axis direction of the region R. The design apparatus 100 generates a division pattern by arranging the cells # 1 to # 8 in any of the regions R0 and R1. For each divided pattern, the evaluation value is calculated by substituting the feature amount into the evaluation function. In the example of FIG. 3, cells # 1, # 3, # 4, and # 8 are arranged in the region R0, and cells # 2, # 5, # 6, and # 7 are arranged in the region R1. When there is a net connecting the cell arranged in the region R0 and the cell arranged in the region R1, the net intersects with the cut line. The number of nets that intersect the cut line may be referred to as the cut number.

領域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 design apparatus 100 draws a cut line (perpendicular to the previous cut line) in the Y-axis direction of the region R0. R0 is divided into a region R00 and a region R01 having the same area. The design apparatus 100 generates the division pattern by arranging the cells # 1, # 3, # 4, and # 8 arranged in the region R0 in the previous step in any of the regions R00 and R01. In the example of FIG. 3, cells # 1 and # 4 are arranged in the region R00, and cells # 3 and # 8 are arranged in the region R01.

同様に、設計装置100は、領域R1のY軸方向にカットラインを引くことで、領域R1を面積の等しい領域R10と領域R11に分割する。設計装置100は、前のステップで領域R1に配置されたセル#2,#5,#6,#7それぞれを領域R10,R11の何れかに配置することで、分割パターンを生成する。図3の例では、領域R10にセル#5,#6が配置され、領域R11にセル#2,#7が配置されている。このように、パーティショニングベース配置法では、選択した上位の分割パターンに基づいて領域が細分化されて複数の部分最適化問題が生成されることが、階層的に繰り返される。   Similarly, the design apparatus 100 divides the region R1 into regions R10 and R11 having the same area by drawing a cut line in the Y-axis direction of the region R1. The design apparatus 100 generates a division pattern by arranging the cells # 2, # 5, # 6, and # 7 arranged in the region R1 in the previous step in any of the regions R10 and R11. In the example of FIG. 3, cells # 5 and # 6 are arranged in the region R10, and cells # 2 and # 7 are arranged in the region R11. As described above, in the partitioning-based arrangement method, the region is subdivided based on the selected upper division pattern and a plurality of partial optimization problems are generated hierarchically.

ここで、ステップ毎に複数の分割パターンの中から「良い」分割パターンを選択する基準としては、様々な基準が考えられる。一例として、カット数に着目するものとして、ミニカット法、バランス考慮カット法、重み付きのミニカット法などが挙げられる。   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.

Figure 0006269121
Figure 0006269121

重み付きのミニカット法は、全てのネットを均等に評価するのではなく、ネットに接続されたピンの数に応じてネットを重み付けして評価するものである。重み付きのミニカット法では、カットラインと交差するネットがピン数に応じて分類され、ピン数毎にカット数がカウントされる。重み付きのミニカット法では、例えば、評価関数が式(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.

Figure 0006269121
Figure 0006269121

図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.

Figure 0006269121
Figure 0006269121

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 design apparatus 100 calculates a value based on Expression (3) for each of the two divided areas, and uses the sum of the values of the two areas as the evaluation value of the divided pattern. The evaluation value calculated from the evaluation formula of Expression (3) represents an estimated area including the total area of the blocks and the total area of the net. A small evaluation value can be defined as a good division pattern.

図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 block # 5 is arranged in the region R1.

領域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 block # 1 and the block # 2 in the region R0. Therefore, the parameters Wa0 (16) and La0 (s, 16) are applied to this net group. In the region R0, a net group including 16 nets with a maximum line length restriction is connected between the block # 3 and the block # 4. Therefore, the parameters Wa1 (16) and La1 (s, 16) are applied to this net group. A net group including 12 nets without a maximum line length constraint is connected between the block # 2 and the block # 3 in the region R0. Further, as described above, another net group having a maximum line length constraint is connected to the block # 3. Therefore, the parameters Wa0 (12), La0 (s, 12) and the parameters Wa2 (12), La2 (s, 12) are applied to this net group.

領域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 block # 1 in the region R0 toward another region. Therefore, the parameters Wb0 (6) and Lb0 (s, 6) are applied to this net group when calculating the evaluation value of the region R0. A net group including eight nets with no maximum line length constraint extends from block # 2 in the region R0 toward another region. Therefore, the parameters Wb0 (8) and Lb0 (s, 8) are applied to this net group in calculating the evaluation value of the region R0.

領域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 block # 5 in the region R1 toward another region. Therefore, the parameters Wb0 (8) and Lb0 (s, 8) are applied to this net group in calculating the evaluation value of the region R1. Further, a net group including six nets that are not located in the region R1 and have no maximum line length constraint passes through the region R1. Therefore, the parameters Wc0 (6) and Lc0 (s, 6) are applied to this net group in calculating the evaluation value of the region R1.

次に、設計装置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 design apparatus 100 will be described.
FIG. 5 is a block diagram illustrating an example of functions of the design apparatus.
The design apparatus 100 includes a manual sample storage unit 111, an automatic sample storage unit 112, a parameter storage unit 113, an initial value calculation unit 114, an automatic sample generation unit 115, a regression analysis unit 117, a parameter update unit 118, and a variable setting unit 119. . The manual sample storage unit 111, the automatic sample storage unit 112, and the parameter storage unit 113 are mounted as storage areas secured in the RAM 102 or the HDD 103, for example. The initial value calculation unit 114, the automatic sample generation unit 115, the regression analysis unit 117, the parameter update unit 118, and the variable setting unit 119 are implemented as, for example, modules of a program executed by the CPU 101.

人手サンプル記憶部111は、パラメータの学習に用いる分割パターンのサンプルであって、人間が作成したサンプル(人手サンプル)を記憶する。人手サンプルは、良い分割パターンの例として使用することができる。人手サンプルは、例えば、複数のブロック・ブロック間を接続する複数のネット・領域面積・各ブロックの位置などの情報を含む。   The manual sample storage unit 111 stores a sample (manual sample) created by a human, which is a division pattern sample used for parameter learning. A manual sample can be used as an example of a good division pattern. The manual sample includes, for example, information such as a plurality of blocks, a plurality of nets connecting the blocks, a region area, and a position of each block.

自動サンプル記憶部112は、パラメータの学習に用いる分割パターンのサンプルであって、自動サンプル生成部115によって自動生成されたサンプル(自動サンプル)を記憶する。自動サンプルは、良い分割パターンである場合もあるし悪い分割パターンであることもある。自動サンプルは、例えば、複数のブロック・ブロック間を接続する複数のネット・領域面積・各ブロックの振り分け結果などの情報を含む。また、各自動サンプルには、自動サンプル生成部115によって算出された「理想評価値」が付与されている。理想評価値は、自動サンプルの良否の推定結果を表すと言うことができる。   The automatic sample storage unit 112 stores a sample (automatic sample) of a division pattern used for parameter learning and automatically generated by the automatic sample generation unit 115. An automatic sample may be a good division pattern or a bad division pattern. The automatic sample includes, for example, information such as a plurality of blocks, a plurality of nets connecting between the blocks, a region area, and a distribution result of each block. Further, an “ideal evaluation value” calculated by the automatic sample generation unit 115 is given to each automatic sample. It can be said that the ideal evaluation value represents an estimation result of the quality of the automatic sample.

パラメータ記憶部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 parameter storage unit 113 stores parameter information including parameters included in the evaluation function and calculated parameter values. The initial value calculation unit 114 calculates the initial value of the parameter and stores it in the parameter storage unit 113. Thereafter, the parameter update unit 118 may update the parameter value once or twice or more so as to increase the accuracy. In the case of the example of FIG. 4 and Formula (3), parameters such as Wa0 (1), La0 (s, 1), Wa0 (2), La0 (s, 2), Wa0 (3), La0 (s, 3) Is stored in the parameter storage unit 113. The parameter value may be prepared by limiting the number of nets n to an integer range of 1 or more and a predetermined maximum value or less. For a net group including a number of nets exceeding the maximum value, n = maximum value. The value of the parameter corresponding to may be applied.

初期値算出部114は、人手サンプル記憶部111に記憶された人手サンプルを教師データとして用いて教師付き機械学習を行い、評価関数のパラメータの初期値を算出する。まず、初期値算出部114は、人手サンプルを良い分割パターンを示す良いサンプルとする。また、初期値算出部114は、ランダムな分割パターンを自動生成し、人手サンプルと異なるサンプルを悪い分割パターンを示す悪いサンプルとする。   The initial value calculation unit 114 performs supervised machine learning using the manual samples stored in the manual sample storage unit 111 as teacher data, and calculates initial values of parameters of the evaluation function. First, the initial value calculation unit 114 sets a manual sample as a good sample indicating a good division pattern. Further, the initial value calculation unit 114 automatically generates a random division pattern and sets a sample different from the manual sample as a bad sample indicating a bad division pattern.

そして、初期値算出部114は、良いサンプルから良い評価値(例えば、低い評価値)が算出され、悪いサンプルから悪い評価値(例えば、高い評価値)が算出されるように、評価関数のパラメータを学習する。パラメータの学習には、例えば、SVM(Support Vector Machine)などの機械学習の手法を用いる。SVMでは、ベクトル空間上で良いサンプルと悪いサンプルを最も明確に分割できる境界面、すなわち、良いサンプルとの距離および悪いサンプルとの距離の両方が最大になる境界面が算出される。初期値算出部114は、算出したパラメータの値をパラメータ記憶部113に格納する。   Then, the initial value calculation unit 114 calculates the evaluation function parameters so that a good evaluation value (for example, a low evaluation value) is calculated from a good sample and a bad evaluation value (for example, a high evaluation value) is calculated from a bad sample. To learn. For the parameter learning, for example, a machine learning method such as SVM (Support Vector Machine) is used. In SVM, a boundary surface that can most clearly divide a good sample and a bad sample in the vector space, that is, a boundary surface that maximizes both the distance to the good sample and the distance to the bad sample is calculated. The initial value calculation unit 114 stores the calculated parameter value in the parameter storage unit 113.

自動サンプル生成部115は、パラメータの値の精度を上げるために、人手サンプルとは異なる自動サンプルを生成し、自動サンプルの良否を推定した理想評価値を算出する。まず、自動サンプル生成部115は、人手サンプル記憶部111に記憶された人手サンプルの変形などを通じて、人手サンプルと異なる自動サンプルを生成する。   The automatic sample generation unit 115 generates an automatic sample different from a manual sample and calculates an ideal evaluation value that estimates the quality of the automatic sample in order to increase the accuracy of the parameter value. First, the automatic sample generation unit 115 generates an automatic sample different from the manual sample through, for example, deformation of the manual sample stored in the manual sample storage unit 111.

次に、自動サンプル生成部115は、生成した自動サンプルから始めて、所定ステップ(例えば、3ステップ)だけ最適化処理を進める。このとき、各ステップで分割パターンの選択に用いる評価関数のパラメータの値としては、パラメータ記憶部113に現在記憶されているもの(例えば、初期値算出部114が算出した初期値)を使用する。例えば、自動サンプル生成部115は、最適化処理を3ステップ進めることで、自動サンプルの分割パターンが示す各領域を更に8分割した分割パターンを生成する。自動サンプル生成部115は、最適化処理を1ステップずつ進める1ステップ最適化部116を有する。   Next, the automatic sample generation unit 115 starts the generated automatic sample and advances the optimization process by a predetermined step (for example, 3 steps). At this time, as the parameter value of the evaluation function used for selecting the division pattern at each step, the value currently stored in the parameter storage unit 113 (for example, the initial value calculated by the initial value calculation unit 114) is used. For example, the automatic sample generation unit 115 generates a division pattern in which each region indicated by the division pattern of the automatic sample is further divided into eight by performing the optimization process three steps. The automatic sample generation unit 115 includes a one-step optimization unit 116 that advances the optimization process step by step.

そして、自動サンプル生成部115は、所定ステップだけ最適化処理を進めた後の分割パターンに対応する理想評価値を算出する。理想評価値は、所定ステップだけ最適化処理を進めた後の分割パターンの特徴量を、パラメータ記憶部113に記憶されているパラメータの値を適用した評価関数に代入することで算出できる。例えば、8分割された各領域の評価値の合計を、自動サンプルに対応する理想評価値とする。すなわち、自動サンプルの分割パターン自体の特徴量から算出される評価値に代えて、所定ステップだけ最適化処理を進めた後の分割パターンの特徴量から算出される評価値が、パラメータの学習に使用されることになる。最適化処理を進めることで自動サンプルの時点よりも分割パターンの良否がより明確になる可能性が高いため、理想評価値は、自動サンプルの良否を推定したものと言うことができる。自動サンプル生成部115は、生成した自動サンプルと算出した理想評価値とを対応付けて、自動サンプル記憶部112に格納する。この処理において、自動サンプル生成部115は、自動サンプルの数が非常に多い場合は、第1の実施の形態の場合と同様に、データのうち一部だけを使うことでデータを削減し、処理時間を減らすことができる。このとき、選択を乱数に基づいて確率的に行い、理想評価値と現在の評価値の差が大きいサンプルを自動サンプル記憶部112に格納する確率を増やすことで、データを削減しても修正に必要なデータを取りこぼす可能性を下げることが期待できる。   Then, the automatic sample generation unit 115 calculates an ideal evaluation value corresponding to the division pattern after the optimization process is advanced by a predetermined step. The ideal evaluation value can be calculated by substituting the feature value of the divided pattern after the optimization process is advanced by a predetermined step into an evaluation function to which the parameter value stored in the parameter storage unit 113 is applied. For example, the sum of the evaluation values of each area divided into eight is set as an ideal evaluation value corresponding to the automatic sample. In other words, instead of the evaluation value calculated from the feature value of the automatic sample division pattern itself, the evaluation value calculated from the feature value of the division pattern after the optimization process has been advanced by a predetermined step is used for parameter learning. Will be. Since it is highly likely that the quality of the division pattern is clearer than the time of the automatic sample by proceeding with the optimization process, it can be said that the ideal evaluation value is an estimate of the quality of the automatic sample. The automatic sample generation unit 115 associates the generated automatic sample with the calculated ideal evaluation value and stores them in the automatic sample storage unit 112. In this process, when the number of automatic samples is very large, the automatic sample generation unit 115 reduces the data by using only a part of the data, as in the first embodiment, and performs processing. Time can be reduced. At this time, the selection is performed probabilistically based on random numbers, and the probability of storing a sample having a large difference between the ideal evaluation value and the current evaluation value in the automatic sample storage unit 112 is increased, so that correction can be made even if data is reduced. It can be expected to reduce the possibility of missing necessary data.

回帰分析部117は、自動サンプル記憶部112に記憶された自動サンプルおよび理想評価値を用いて、回帰分析を行いパラメータの値を算出する。まず、回帰分析部117は、各自動サンプルの分割パターンから、ブロックの合計面積やネットグループ数など(式(3)のDやNa0(1),Na0(2)など)の特徴量を抽出する。そして、回帰分析部117は、自動サンプルから抽出した特徴量を評価関数に代入することで算出される評価値と当該自動サンプルに対応付けられた理想評価値との誤差が最小になるように、パラメータの値を調整する。パラメータの学習には、例えば、ε−SVR(Support Vector Regression)などの回帰分析手法を用いることができる。   The regression analysis unit 117 performs regression analysis using the automatic sample and ideal evaluation value stored in the automatic sample storage unit 112 to calculate the parameter value. First, the regression analysis unit 117 extracts feature amounts such as the total area of blocks and the number of net groups (D in Equation (3), Na0 (1), Na0 (2), etc.) from the division pattern of each automatic sample. . Then, the regression analysis unit 117 minimizes the error between the evaluation value calculated by substituting the feature amount extracted from the automatic sample into the evaluation function and the ideal evaluation value associated with the automatic sample. Adjust the parameter value. For parameter learning, for example, a regression analysis method such as ε-SVR (Support Vector Regression) can be used.

パラメータ更新部118は、回帰分析部117によって算出されたパラメータの値が、パラメータ記憶部113に記憶されている現在のパラメータの値と比べて改善しているか判断する。改善していると判断した場合、パラメータ更新部118は、パラメータ記憶部113に記憶されたパラメータの値を、回帰分析部117によって算出されたパラメータの値へと更新する。その場合、設計装置100は、更新されたパラメータの値を用いて、再度パラメータの学習を進めてもよい。一方、改善していないと判断した場合、パラメータ更新部118は、回帰分析部117によって算出されたパラメータの値を採用しない。その場合、設計装置100は、パラメータの学習を終了してもよい。   The parameter update unit 118 determines whether the parameter value calculated by the regression analysis unit 117 is improved as compared with the current parameter value stored in the parameter storage unit 113. If it is determined that the parameter has been improved, the parameter updating unit 118 updates the parameter value stored in the parameter storage unit 113 to the parameter value calculated by the regression analysis unit 117. In that case, the design apparatus 100 may proceed with learning of the parameter again using the updated parameter value. On the other hand, when it is determined that there is no improvement, the parameter update unit 118 does not employ the parameter value calculated by the regression analysis unit 117. In this case, the design apparatus 100 may end the parameter learning.

パラメータの値が改善しているかは、自動サンプルなどのサンプルを用いて検証することができる。例えば、設計装置100は、あるサンプルの分割パターンから始めて最後まで(個々のブロックの位置が十分に限定されるまで)最適化処理を行い、最終的な分割パターンを生成する。パラメータ更新部118は、現在のパラメータの値を用いて算出される当初の分割パターンの評価値と最終的な分割パターンの良否との相関を確認する。また、パラメータ更新部118は、新たなパラメータの値を用いて算出される当初の分割パターンの評価値と最終的な分割パターンの良否との相関を確認する。   Whether the parameter value is improved can be verified using a sample such as an automatic sample. For example, the design apparatus 100 performs an optimization process from a division pattern of a certain sample to the end (until the position of each block is sufficiently limited) to generate a final division pattern. The parameter update unit 118 confirms the correlation between the evaluation value of the initial division pattern calculated using the current parameter value and the quality of the final division pattern. Further, the parameter update unit 118 confirms the correlation between the evaluation value of the initial division pattern calculated using the new parameter value and the quality of the final division pattern.

そして、パラメータ更新部118は、この相関が改善している場合に、パラメータの値が改善していると判断する。最適化後の分割パターンが「良い」ときに当初の分割パターンについて良い評価値が算出され、かつ、最適化後の分割パターンが「悪い」ときに当初の分割パターンについて悪い評価値が算出されていれば、相関が強いと言える。パラメータ更新部118は、相関の強弱を示す指標値として相関係数を算出してもよい。   Then, the parameter updating unit 118 determines that the parameter value is improved when the correlation is improved. A good evaluation value is calculated for the original division pattern when the division pattern after optimization is “good”, and a bad evaluation value is calculated for the original division pattern when the division pattern after optimization is “bad”. If so, it can be said that the correlation is strong. The parameter update unit 118 may calculate a correlation coefficient as an index value indicating the strength of correlation.

変数設定部119は、ユーザからの入力に応じて、評価関数に新たな変数や新たなパラメータを追加することを許容する。ユーザから変数やパラメータの追加が指示されると、変数設定部119は、追加する変数やパラメータを回帰分析部117に通知する。すると、回帰分析部117は、次に回帰分析を行うとき、追加した変数に対応する新たな特徴量を自動サンプルから抽出し、変数およびパラメータが追加された新たな評価関数について回帰分析を行う。変数やパラメータの追加は、自動サンプル生成部115、回帰分析部117およびパラメータ更新部118がパラメータの学習を繰り返している途中で行うことも可能である。よって、ユーザは、評価関数の学習状況を見ながら、評価値が改善されるような好ましい変数やパラメータを評価関数に適宜追加することができる。   The variable setting unit 119 allows a new variable or a new parameter to be added to the evaluation function in response to an input from the user. When the user gives an instruction to add a variable or parameter, the variable setting unit 119 notifies the regression analysis unit 117 of the variable or parameter to be added. Then, the next time regression analysis is performed, the regression analysis unit 117 extracts a new feature amount corresponding to the added variable from the automatic sample, and performs regression analysis on the new evaluation function to which the variable and the parameter are added. The addition of variables and parameters can be performed while the automatic sample generation unit 115, the regression analysis unit 117, and the parameter update unit 118 are repeatedly learning the parameters. Therefore, the user can appropriately add preferable variables and parameters that improve the evaluation value to the evaluation function while watching the learning status of the evaluation function.

図6は、機械学習に用いるサンプルの生成例を示す図である。
前述のように、自動サンプル生成部115は、人手サンプルに基づいて自動サンプルを生成する。これにより、人手サンプルの不足をカバーすることができる。自動サンプルの生成方法としては、最適化問題の内容に応じて様々な生成方法が考えられる。
FIG. 6 is a diagram illustrating a generation example of a sample used for machine learning.
As described above, the automatic sample generation unit 115 generates an automatic sample based on a manual sample. This can cover the shortage of manpower samples. As an automatic sample generation method, various generation methods can be considered according to the contents of the optimization problem.

例えば、自動サンプル生成部115は、人手サンプルが示すLSIレイアウトの中からランダムに一部分の領域を切り出して部分問題として採用する。すなわち、自動サンプル生成部115は、切り出した領域に含まれるブロックやブロック間を接続するネットの情報を維持しつつブロックの位置情報を消去することで、切り出した領域のレイアウトを初期化して自動サンプルのベースとして使用する。このとき、切り出した領域の内と外とを結合するネットについては、領域のエッジにピンが設定されていると仮定して取り扱う。自動サンプル生成部115は、切り出して初期化した領域について1ステップだけ最適化処理を進めた(領域を1回分割した)分割パターンを、自動サンプルとして使用する。   For example, the automatic sample generation unit 115 randomly extracts a partial area from the LSI layout indicated by the manual sample and adopts it as a partial problem. That is, the automatic sample generation unit 115 initializes the layout of the cut-out area by erasing the block position information while maintaining the information on the blocks included in the cut-out area and the nets connecting the blocks. Use as a base for At this time, the net that connects the inside and the outside of the cut-out area is handled on the assumption that a pin is set at the edge of the area. The automatic sample generation unit 115 uses, as an automatic sample, a division pattern in which optimization processing has been advanced by one step for a region that has been cut out and initialized (the region has been divided once).

図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. Block # 1 and block # 6, block # 2 and block # 7, and block # 5 and block # 8 are connected via the net. It is assumed that the automatic sample generation unit 115 extracts an area including blocks # 1 to # 5 but not including blocks # 6 to # 8 from the entire area. Then, the automatic sample generation unit 115 deletes the position information of the blocks # 1 to # 5. In addition, the automatic sample generation unit 115 sets a pin at a point where the net between the blocks # 1 and # 6 and the edge of the region intersect, and treats the pin and the block # 1 as being connected by the net. The net between blocks # 2 and # 7 and the net between blocks # 5 and # 8 are handled in the same manner. Then, the automatic sample generation unit 115 generates a division pattern in which the area is divided into two and blocks # 1 to # 5 are allocated as an automatic 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 value calculation unit 114 assigns a good evaluation value to a good sample and a bad evaluation value to a bad sample from the feature amount extracted from the sample of the division pattern and the determination result of the quality of the sample. To learn the parameters of the evaluation function. For example, the initial value calculation unit 114 searches for a parameter value that minimizes the value of Expression (4). In the search for the parameter value, for example, a search method such as a steepest descent method can be used.

式(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.

Figure 0006269121
Figure 0006269121

また、前述のように、回帰分析部117は、分割パターンのサンプルから抽出される特徴量と当該サンプルの理想評価値とから、特徴量と理想評価値との関係を最も適切に表現できるように評価関数のパラメータを学習する。例えば、回帰分析部117は、式(5)の値が最小になるようなパラメータの値を探索する。パラメータの値の探索においては、例えば、最急降下法などの探索方法を用いることができる。   Further, as described above, the regression analysis unit 117 can most appropriately express the relationship between the feature value and the ideal evaluation value from the feature value extracted from the sample of the divided pattern and the ideal evaluation value of the sample. Learn the parameters of the evaluation function. For example, the regression analysis unit 117 searches for parameter values that minimize the value of Equation (5). In the search for the parameter value, for example, a search method such as a steepest descent method can be used.

式(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.

Figure 0006269121
Figure 0006269121

次に、設計装置100が実行するパラメータの機械学習の手順を説明する。
図8は、パラメータ学習の手順例を示すフローチャートである。
(S10)初期値算出部114は、人手サンプル記憶部111に記憶された複数の分割パターンのサンプル(人手サンプル)を、良いサンプルとして取得する。
Next, a machine learning procedure of parameters executed by the design apparatus 100 will be described.
FIG. 8 is a flowchart illustrating an exemplary procedure for parameter learning.
(S10) The initial value calculation unit 114 acquires a plurality of division pattern samples (manual samples) stored in the manual sample storage unit 111 as good samples.

(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 value calculation unit 114 randomly generates a plurality of division patterns, and adopts a generated division pattern that is different from a manual sample as a bad sample.
(S12) The initial value calculation unit 114 calculates the initial value of the parameter of the evaluation function using the good sample in step S10 and the bad sample in step S11. For example, the initial value calculation unit 114 extracts feature quantities such as the number of net groups Na0 (1), Na0 (2),... From each of a good sample and a bad sample. The initial value calculation unit 114 uses a supervised machine learning method such as SVM so that a good evaluation value is calculated from a good sample feature amount and a bad evaluation value is calculated from a bad sample feature amount. The values of parameters such as Wa0 (1), Wa0 (2),... And line lengths La0 (1), La0 (2),. The initial value calculation unit 114 stores the calculated parameter value in the parameter storage unit 113.

(S13)自動サンプル生成部115は、人手サンプル記憶部111に記憶された人手サンプルからランダムに一部分の領域を切り出して各ブロックの位置情報を消去することで、出現するブロックやネットがランダムに変化する設計データを自動生成する。ただし、自動サンプル生成部115は、ブロックサイズや配線層の数や配線ピットなどの設計条件をランダムに変更するなど、他の方法によって設計データを自動生成してもよい。自動サンプル生成部115は、最適化問題の内容に応じて生成方法を選択してもよい。   (S13) The automatic sample generation unit 115 randomly changes a block or net that appears by cutting out a partial area from the manual sample stored in the manual sample storage unit 111 and deleting the position information of each block. Design data to be generated automatically. However, the automatic sample generation unit 115 may automatically generate design data by other methods such as randomly changing design conditions such as the block size, the number of wiring layers, and wiring pits. The automatic sample generation unit 115 may select a generation method according to the content of the optimization problem.

(S14)自動サンプル生成部115は、ステップS13で切り出した領域についての設計データに対して、1ステップ最適化部116を呼び出すことで最適化処理を1ステップだけ進める。このとき、ステップS12で算出されたパラメータの初期値(または、その後に以下のステップS20で更新されたパラメータの値)を適用した評価関数が使用される。例えば、1ステップ最適化部116は、ステップS13で切り出した領域を2分割して、ブロックを2つの領域に割り振る。自動サンプル生成部115は、1ステップ進んだ後の分割パターンを自動サンプルPとして取得する。   (S14) The automatic sample generation unit 115 advances the optimization process by one step by calling the one-step optimization unit 116 for the design data for the region cut out in step S13. At this time, an evaluation function to which the initial value of the parameter calculated in step S12 (or the parameter value updated in step S20 below) is applied is used. For example, the one-step optimizing unit 116 divides the area cut out in step S13 into two, and allocates blocks to two areas. The automatic sample generation unit 115 acquires the division pattern after one step as an automatic sample P.

(S15)自動サンプル生成部115は、ステップS115で生成された自動サンプルPに対して、1ステップ最適化部116を複数回呼び出すことで最適化処理を更に3ステップ進める。このとき、ステップS12で算出されたパラメータの初期値(または、その後に以下のステップS20で更新されたパラメータの値)を適用した評価関数が使用される。例えば、ステップS14で2分割した領域それぞれが更に8分割される。   (S15) The automatic sample generation unit 115 further advances the optimization process by three steps by calling the one-step optimization unit 116 a plurality of times for the automatic sample P generated in step S115. At this time, an evaluation function to which the initial value of the parameter calculated in step S12 (or the parameter value updated in step S20 below) is applied is used. For example, each of the regions divided into two in step S14 is further divided into eight.

(S16)自動サンプル生成部115は、ステップS15を実行した後の分割パターンから理想評価値を算出する。例えば、自動サンプル生成部115は、細分化された各領域について、ネットグループ数Na0(1),Na0(2),…などの特徴量と使用幅Wa0(1),Wa0(2),…や線長La0(1),La0(2),…などのパラメータの値とから算出された、見積もり面積についての評価値を取得する。自動サンプル生成部115は、細分化された各領域の評価値を合計したもの(見積もり面積の合計)を理想評価値とする。ただし、各領域の評価値を合計する方法は一例であり、他の方法で理想評価値を算出してもよい。自動サンプル生成部115は、算出した理想評価値とステップS14で生成した自動サンプルPとを対応付けて、自動サンプル記憶部112に格納する。   (S16) The automatic sample generation unit 115 calculates an ideal evaluation value from the division pattern after step S15 is executed. For example, for each subdivided area, the automatic sample generation unit 115 uses the feature amounts such as the number of net groups Na0 (1), Na0 (2),... And the usage widths Wa0 (1), Wa0 (2),. An evaluation value for the estimated area calculated from parameter values such as line lengths La0 (1), La0 (2),. The automatic sample generation unit 115 sets the sum of the evaluation values of the subdivided regions (the total of the estimated areas) as the ideal evaluation value. However, the method of summing up the evaluation values of each region is an example, and the ideal evaluation value may be calculated by another method. The automatic sample generation unit 115 stores the calculated ideal evaluation value and the automatic sample P generated in step S14 in the automatic sample storage unit 112 in association with each other.

(S17)自動サンプル生成部115は、回帰分析を行うのに十分な数の自動サンプルPが得られたか判断する。自動サンプルPの所要数は、ユーザによって予め指定されてもよい。所要数の自動サンプルPが得られた場合はステップS18に処理が進み、所要数の自動サンプルPが得られていない場合はステップS13に処理が進む。   (S17) The automatic sample generation unit 115 determines whether a sufficient number of automatic samples P are obtained to perform the regression analysis. The required number of automatic samples P may be designated in advance by the user. If the required number of automatic samples P is obtained, the process proceeds to step S18. If the required number of automatic samples P is not obtained, the process proceeds to step S13.

(S18)回帰分析部117は、自動サンプルPと理想評価値との複数の組み合わせを用いて、評価関数のパラメータの値を算出する。例えば、回帰分析部117は、2分割された領域それぞれのネットグループ数Na0(1),Na0(2),…など、各自動サンプルP(ステップS15で3ステップ進める前のもの)から特徴量を抽出する。そして、回帰分析部117は、ε−SVRなどの回帰分析の手法を用いて、評価関数から算出される評価値と理想評価値との誤差が最小になるように、使用幅Wa0(1),Wa0(2),…や線長La0(1),La0(2),…などのパラメータの値を算出する。   (S18) The regression analysis unit 117 calculates the value of the parameter of the evaluation function using a plurality of combinations of the automatic sample P and the ideal evaluation value. For example, the regression analysis unit 117 obtains a feature amount from each automatic sample P (before three steps are advanced in step S15) such as the number of net groups Na0 (1), Na0 (2),. Extract. Then, the regression analysis unit 117 uses a regression analysis method such as ε-SVR so that the error between the evaluation value calculated from the evaluation function and the ideal evaluation value is minimized. The values of parameters such as Wa0 (2),..., Line length La0 (1), La0 (2),.

(S19)パラメータ更新部118は、ステップS18で算出したパラメータの値が、パラメータ記憶部113に記憶されている現在のパラメータの値より改善しているか検証する。パラメータの値が改善していると判断される場合はステップS20に処理が進み、改善していないと判断される場合はステップS21に処理が進む。   (S19) The parameter update unit 118 verifies whether the parameter value calculated in step S18 is improved from the current parameter value stored in the parameter storage unit 113. If it is determined that the parameter value has improved, the process proceeds to step S20. If it is determined that the parameter value has not improved, the process proceeds to step S21.

改善を検証するにあたり、例えば、設計装置100は、複数のサンプルそれぞれに対して最適化処理を最後まで進めて最終的なブロック配置の良否を判断する。パラメータ更新部118は、現在のパラメータの値を用いて算出される当初の分割パターンの評価値と最終的なブロック配置の良否との相関を判断する(例えば、相関係数などの指標値を算出する)。また、パラメータ更新部118は、新たなパラメータの値を用いて算出される当初の分割パターンの評価値と最終的なブロック配置の良否との相関を判断する。後者の相関が前者より改善していれば、パラメータ更新部118は、パラメータの値が改善したと判断することができる。ただし、他の方法で改善の有無を判断してもよい。   In verifying the improvement, for example, the design apparatus 100 proceeds with optimization processing to the end of each of the plurality of samples to determine whether the final block arrangement is acceptable. The parameter update unit 118 determines the correlation between the evaluation value of the initial division pattern calculated using the current parameter value and the quality of the final block arrangement (for example, calculates an index value such as a correlation coefficient). To do). Further, the parameter update unit 118 determines the correlation between the evaluation value of the initial division pattern calculated using the new parameter value and the quality of the final block arrangement. If the latter correlation is improved from the former, the parameter update unit 118 can determine that the parameter value has improved. However, the presence or absence of improvement may be determined by other methods.

(S20)パラメータ更新部118は、パラメータ記憶部113に記憶されたパラメータの値を、ステップS18で算出されたものに更新する。
(S21)自動サンプル生成部115は、パラメータ学習の終了条件が満たされたか判断する。終了条件としては、例えば、パラメータの値が改善しなくなったことや、ステップS13〜S20の処理が所定回数繰り返されたことなどが挙げられる。終了条件が満たされていない場合はステップS13に処理が進み、パラメータの学習が継続される。終了条件が満たされた場合はパラメータの学習が終了する。
(S20) The parameter update unit 118 updates the parameter value stored in the parameter storage unit 113 to the value calculated in step S18.
(S21) The automatic sample generation unit 115 determines whether the parameter learning end condition is satisfied. Examples of the termination condition include that the parameter value is not improved, and that the processes in steps S13 to S20 are repeated a predetermined number of times. If the end condition is not satisfied, the process proceeds to step S13, and parameter learning is continued. If the termination condition is satisfied, the parameter learning is terminated.

図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-step optimization unit 116 divides the region into two.

(S31)1ステップ最適化部116は、分割前の領域に含まれる複数のブロックを分割した2つの領域に割り振ることで、分割パターンを1つ生成する。分割パターンを探索する方法としては、例えば、貪欲法や局所探索法などの近似アルゴリズムを用いる。   (S31) The one-step optimizing unit 116 generates one division pattern by allocating a plurality of blocks included in the region before division to two divided regions. As a method for searching for the division pattern, for example, an approximation algorithm such as a greedy method or a local search method is used.

(S32)1ステップ最適化部116は、ステップS31で生成した分割パターンから特徴量を抽出する。1ステップ最適化部116は、パラメータ記憶部113に記憶されている現在のパラメータの値を適用した評価関数に、抽出した特徴量を代入することで、ステップS31の分割パターンの良否を示す評価値を算出する。この評価値は、最適化処理の途中における評価を示すものであるため「中間評価値」と呼ぶこともできる。   (S32) The one-step optimizing unit 116 extracts a feature amount from the division pattern generated in step S31. The one-step optimization unit 116 substitutes the extracted feature quantity into the evaluation function to which the current parameter value stored in the parameter storage unit 113 is applied, thereby evaluating the evaluation value indicating the quality of the divided pattern in step S31. Is calculated. Since this evaluation value indicates an evaluation in the middle of the optimization process, it can also be called an “intermediate evaluation value”.

(S33)1ステップ最適化部116は、ステップS32で算出された評価値が、現在記録しているもの(過去に算出された最良の評価値)よりも改善しているか判断する。評価値が小さいほど良い評価を示す場合、1ステップ最適化部116は、ステップS32で算出された評価値が現在記録しているものより小さいか判断する。評価値が改善している場合はステップS34に処理が進み、改善していない場合(評価値が現在記録しているものと同じか悪い場合)はステップS35に処理が進む。なお、記録している評価値がない場合(最初の分割パターンの評価値である場合)は、改善しているものとして扱う。   (S33) The one-step optimizing unit 116 determines whether or not the evaluation value calculated in step S32 is better than the currently recorded value (the best evaluation value calculated in the past). When a smaller evaluation value indicates a better evaluation, the one-step optimization unit 116 determines whether the evaluation value calculated in step S32 is smaller than that currently recorded. If the evaluation value has improved, the process proceeds to step S34. If the evaluation value has not improved (if the evaluation value is the same or worse than the currently recorded value), the process proceeds to step S35. When there is no evaluation value recorded (when it is the evaluation value of the first division pattern), it is treated as improved.

(S34)1ステップ最適化部116は、ステップS31で生成した分割パターンを、現在までに探索された中で最良の分割パターンとして記録しておく。また、ステップS32で算出した評価値を、現在までに探索された範囲で最良の評価値として記録しておく。このとき、前回記録しておいた分割パターンや評価値は削除してよい。   (S34) The 1-step optimizing unit 116 records the division pattern generated in step S31 as the best division pattern searched so far. The evaluation value calculated in step S32 is recorded as the best evaluation value in the range searched up to now. At this time, the previously recorded division pattern and evaluation value may be deleted.

(S35)1ステップ最適化部116は、分割パターンの探索の終了条件が満たされたか判断する。終了条件は、ステップS31で使用する近似アルゴリズムに依存する。終了条件としては、例えば、分割パターンを所定数生成したことや、所定回数連続して評価値が改善しなかったことなどが挙げられる。終了条件が満たされた場合はステップS36に処理が進み、終了条件が満たされていない場合はステップS31に処理が進む。   (S35) The one-step optimizing unit 116 determines whether or not the division pattern search end condition is satisfied. The termination condition depends on the approximation algorithm used in step S31. Examples of the termination condition include that a predetermined number of division patterns have been generated, and that the evaluation value has not improved continuously for a predetermined number of times. If the end condition is satisfied, the process proceeds to step S36. If the end condition is not satisfied, the process proceeds to step S31.

(S36)1ステップ最適化部116は、最後に記録した分割パターン、すなわち、探索された中で評価値が最も良い(例えば、評価値が最も小さい)分割パターンを取得し、最適化処理を1ステップ進めた分割パターンとして出力する。   (S36) The one-step optimizing unit 116 acquires the last recorded division pattern, that is, the division pattern having the best evaluation value (for example, the smallest evaluation value) among the searched ones. Output as stepped division pattern.

以上、LSIレイアウトの最適化問題を例にして、設計装置100による評価関数の学習について説明した。ただし、第2の実施の形態の評価関数の学習方法は、LSIレイアウト以外の他の分野の最適化問題にも適用することが可能である。以下では、他の最適化問題の例として、コンテナパッキングの最適化問題を説明する。   The learning of the evaluation function by the design apparatus 100 has been described above using the LSI layout optimization problem as an example. However, the evaluation function learning method of the second embodiment can also be applied to optimization problems in other fields other than LSI layout. Below, the optimization problem of a container packing is demonstrated as an example of another optimization problem.

図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 Category # 1, Division # 1, but cargo that falls within (2Ux, Uy, Uz) exceeds the size of Division # 2, Division # 2, but (2Ux , 2Uy, Uz) Define multiple categories such that cargo that falls within category # 3 and cargo that exceeds the size of category # 2 but falls within (3Ux, Uy, Uz) are category # 4 Can do.

すると、特徴量として、コンテナ毎に各区分の貨物の数を抽出することができる。図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.

Figure 0006269121
Figure 0006269121

この最適化問題に対しては、例えば、探索アルゴリズムとしてタブーサーチ法を用いることが考えられる。コンテナパッキングのタブーサーチ法については、例えば、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 design apparatus 100 can learn the parameters w 0 , w i, j of the evaluation function used for the container packing optimization by supervised machine learning. For example, the design apparatus 100 acquires a packing pattern created by a human as a manual sample, and generates a packing pattern in which several cargoes are randomly exchanged from the manual sample. Then, the design apparatus 100 evaluates the parameter of the evaluation function so that the movement of the cargo returned to the original manual sample from the generated packing pattern is a good exchange operation and the movement of other cargo is a bad exchange operation. The initial value of is calculated.

また、設計装置100は、例えば、人手サンプルからランダムに数ステップだけ貨物を移動させることで、パッキングパターンの自動サンプルを生成する。そして、設計装置100は、上記で算出したパラメータの初期値を適用した評価関数を用いて、自動サンプルに対して数ステップ(例えば、3ステップ)最適化処理を進め、数ステップ進めた後のパッキングパターンから理想評価値を算出する。設計装置100は、生成した自動サンプルと算出した理想評価値とを回帰分析し、パラメータの値を更新することができる。   In addition, the design apparatus 100 generates an automatic sample of the packing pattern by, for example, moving a cargo at random several steps from a manual sample. Then, the design apparatus 100 uses the evaluation function to which the initial value of the parameter calculated above is applied to advance the optimization process for several steps (for example, three steps), and the packing after the several steps are advanced. An ideal evaluation value is calculated from the pattern. The design apparatus 100 can perform regression analysis on the generated automatic sample and the calculated ideal evaluation value, and update the parameter value.

第2の実施の形態の設計装置100によれば、最適化処理に用いる評価関数を学習するにあたり、自動サンプルが生成され、自動サンプルに対して最適化処理を進めた後の評価値が理想評価値として算出される。そして、自動サンプルと理想評価値とを回帰分析することで評価関数のパラメータの値が更新される。これにより、自動サンプルの良否を推定することができ、自動サンプルを利用して評価関数のパラメータの精度を向上させることができる。よって、人間が用意する人手サンプルの不足を補うことができ、評価関数を教師付き機械学習によって算出するときの負担を軽減することができる。特に、変数やパラメータの数が多い場合でも、回帰分析を行うのに十分な数のサンプルを用意できる。   According to the design apparatus 100 of the second embodiment, when learning the evaluation function used for the optimization process, an automatic sample is generated, and the evaluation value after the optimization process is performed on the automatic sample is an ideal evaluation. Calculated as a value. The parameter value of the evaluation function is updated by performing regression analysis on the automatic sample and the ideal evaluation value. Thereby, the quality of the automatic sample can be estimated, and the accuracy of the parameter of the evaluation function can be improved using the automatic sample. Therefore, the shortage of human samples prepared by humans can be compensated, and the burden when calculating the evaluation function by supervised machine learning can be reduced. In particular, even when there are a large number of variables and parameters, a sufficient number of samples can be prepared for regression analysis.

また、評価関数の精度が向上することで、人間から見て「悪い」候補に対して良い評価値が算出されてしまうことを抑制でき、最適解または準最適解を効率的に探索できるようになる。また、評価関数の学習を繰り返す中で、好ましい新たな変数やパラメータを追加することができるなど、ユーザによって評価関数を適宜変形することが可能となる。   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 information processing apparatus 10 to execute a program. The information processing of the second embodiment can be realized by causing the design apparatus 100 to execute a program.

プログラムは、コンピュータ読み取り可能な記録媒体(例えば、記録媒体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 SYMBOLS 10 Information processing apparatus 11 Storage part 12 Operation part 13, 13a Evaluation function 14 Evaluated data 15 Evaluation value

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.
前記記憶部には、第1の評価関数の情報が記憶され、
前記演算部は、前記被評価データおよび前記最適化処理を進めた後の前記被評価データの状態に応じた評価値に基づいて第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.
JP2014021189A 2014-02-06 2014-02-06 Information processing apparatus, evaluation function learning method, and program Active JP6269121B2 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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