JP5987720B2 - Binary decision graph processing system and method - Google Patents

Binary decision graph processing system and method Download PDF

Info

Publication number
JP5987720B2
JP5987720B2 JP2013025887A JP2013025887A JP5987720B2 JP 5987720 B2 JP5987720 B2 JP 5987720B2 JP 2013025887 A JP2013025887 A JP 2013025887A JP 2013025887 A JP2013025887 A JP 2013025887A JP 5987720 B2 JP5987720 B2 JP 5987720B2
Authority
JP
Japan
Prior art keywords
bdd
binary decision
decision graph
representing
local
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.)
Expired - Fee Related
Application number
JP2013025887A
Other languages
Japanese (ja)
Other versions
JP2014154107A (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 JP2013025887A priority Critical patent/JP5987720B2/en
Publication of JP2014154107A publication Critical patent/JP2014154107A/en
Application granted granted Critical
Publication of JP5987720B2 publication Critical patent/JP5987720B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Supply And Distribution Of Alternating Current (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Description

本発明は、二分決定グラフ処理システムおよび方法に関する。   The present invention relates to a binary decision graph processing system and method.

二分決定グラフ(Binary Decision Diagram、以下、単にBDDと呼ぶことがある)は、VLSIの論理設計、電力配送電システムの配電網の構成最適化など数理工学の問題において、論理関数や組み合わせ集合を圧縮して表現、処理する技術の一つである。   Binary decision diagram (hereinafter referred to simply as BDD) compresses logical functions and combinatorial sets in mathematical engineering problems such as VLSI logic design and power distribution system configuration optimization. It is one of the technologies to express and process.

BDDは、与えられた論理関数の値の全ての変数について場合分けした結果を二分木グラフで表し、これを圧縮(縮約)することによって得ることができる。圧縮の際には、場合分けする変数の順序を固定し、冗長な節点の削除と、等価な節点の共有をできるだけ行うことにより、既約なBDDが得られる。この既約なBDDは、論理関数をコンパクトに一意的に表すことができる。   BDD can be obtained by expressing the result divided into cases for all variables of a given logical function value as a binary tree graph and compressing (reducing) the result. During compression, the order of the variables to be classified is fixed, redundant nodes are deleted, and equivalent nodes are shared as much as possible to obtain an irreducible BDD. This irreducible BDD can uniquely represent a logical function in a compact manner.

たとえば、電力配送電システムの配電網では、変電所から電力を事業所や各家庭に送り届ける。この配電網の経路を切り替えるためのスイッチが多数存在し、そのオンとオフによって多くの組み合わせの中から一つを最適経路として選ぶことが必要である。配電網を最適化しようとする際、考慮すべき制約条件が存在する。制約条件には、たとえば「各家庭は停電せず、しかも2つの変電所をつながってはいけない」といった幾何学的制約条件や、「電線の各区間で許容電流を超えない」といった電気的制約条件が存在する。そして、BDDは、幾何学的制約条件と電気的制約条件の両方を満たす配電経路の抽出に用いることができる。つまり、各スイッチをグラフの節点とし、スイッチのオンの状態を節点の値が「1」である状態に、スイッチがオフの状態を節点の値が「0」である状態に対応させる。例えば、N個のスイッチがあるとすると、2通りの組み合わせがあり、それは末端が2個ある二分木グラフに対応する。このグラフを圧縮することによって得られるBDDを用いると、最適経路を高速に検索することができることが知られている。 For example, in a power distribution network of a power distribution system, power is sent from a substation to a business office or household. There are many switches for switching the route of this distribution network, and it is necessary to select one of many combinations as the optimum route by turning it on and off. There are constraints to consider when trying to optimize a distribution network. Examples of constraints include geometric constraints such as “Do not power out each household and connect two substations” and electrical constraints such as “Do not exceed the allowable current in each section of the wire”. Exists. The BDD can be used to extract a distribution path that satisfies both the geometric constraint condition and the electrical constraint condition. That is, each switch is a node of the graph, and the on state of the switch corresponds to the state where the node value is “1”, and the off state of the switch corresponds to the state where the node value is “0”. For example, if there are N switches, there are 2 N combinations, which correspond to a binary tree graph with 2 N ends. It is known that an optimum route can be searched at high speed by using BDD obtained by compressing this graph.

また、BDDの処理の並列化によって更なる高速化を図る試みも知られている。たとえば、BDDを上位の変数で場合分けして部分グラフに分割し、それぞれ独立に処理する方法が知られている。また、二分木グラフのレベルごとに、すなわち二分木グラフの横一列を輪切りにして分散処理する方法も知られている。   Attempts to further increase the speed by parallelizing BDD processing are also known. For example, there is known a method in which BDD is divided into upper graphs and divided into subgraphs and processed independently. There is also known a method of performing distributed processing for each level of a binary tree graph, that is, by cutting a horizontal row of the binary tree graph.

井上武他「ZDDを用いた系統運用制約を満たす配電網構成の網羅的探索方法」平成24年電気学会全国大会予稿集、第6分冊、p.52Takeshi Inoue et al. “Exhaustive search method for distribution network configuration satisfying system operation constraints using ZDD” 2012 Annual Conference of the Institute of Electrical Engineers of Japan, 6th volume, p. 52 湊伸一、石原晋也「BDDの規模によらず一定の実記憶の範囲内で動作するストリーム形式のBDD処理アルゴリズム」システムLSI設計技術93−9(1999.11.27)p.63Shinichi Tsuji and Shinya Ishihara “Stream type BDD processing algorithm that operates within a certain range of real memory regardless of the size of BDD” System LSI Design Technology 93-9 (1999. 11.27) p. 63 R.E.Bayant,”Graph−Based Algorithms for Boolean Function Manipulation”,IEEE Trans. on Computers,Vol.C−35,No.8 p.677(1986)R. E. Bayant, “Graph-Based Algorithms for Boolean Function Manipulation”, IEEE Trans. on Computers, Vol. C-35, No. 8 p. 677 (1986)

BDDを計算機プログラムとして実装すると、BDDは節点の数が増えて行き成長する。その際、BDDの節点に関するデータは配列データとしてメモリに格納される。計算機のメモリの記憶容量は有限なので、格納可能な節点の数には上限値が存在する。BDDが成長してその上限値を超えると、異常終了したり、処理速度が低下したりすることがある。BDDを分割して複数の計算機に部分問題を割り当て、各部分問題を独立に処理することで、各部分問題を処理する計算機の記憶容量を超えてしまうメモリ不足の可能性を低減することができる。BDDの処理を並列化すると、処理時間の多くの割合は計算機同士のデータの遣り取りのための通信時間となる場合がある。さらに、各部分問題には制約条件を満たす解が多く存在することがある。すると、各部分問題の解を通信するために多くの通信時間を要し、処理時間が掛かるという問題がある。   When BDD is implemented as a computer program, BDD grows as the number of nodes increases. At this time, data relating to the nodes of the BDD is stored in the memory as array data. Since the memory capacity of the computer's memory is finite, there is an upper limit on the number of nodes that can be stored. When the BDD grows and exceeds the upper limit value, it may end abnormally or the processing speed may decrease. By dividing the BDD and allocating subproblems to a plurality of computers and processing each subproblem independently, the possibility of memory shortage exceeding the storage capacity of the computer that processes each subproblem can be reduced. . When BDD processing is parallelized, a large proportion of processing time may be communication time for data exchange between computers. Furthermore, there may be many solutions that satisfy the constraint conditions in each subproblem. Then, it takes a lot of communication time to communicate the solution of each partial problem, and there is a problem that it takes a processing time.

よって、一つの側面として、本発明は、二分決定グラフ(BDD)を分割して複数の計算機に部分問題を割り当て処理する際に、メモリ不足の可能性を低減しつつ、たとえば通信時間を減らして処理時間を低減する二分決定グラフ処理システムおよび方法を提供することを目的とする。   Therefore, as one aspect, the present invention reduces the possibility of memory shortage and reduces the communication time, for example, when dividing a binary decision graph (BDD) and assigning a partial problem to a plurality of computers. It is an object to provide a binary decision graph processing system and method that reduces processing time.

マスタデバイスとローカルデバイスを含む二分決定グラフ処理システムが提供される。
マスタデバイスは、全体問題を複数の部分問題に分割する部分問題分割部と、複数の部分問題の少なくとも2つの部分問題をローカルデバイスに送信し、前記ローカルデバイスから少なくとも2つの部分問題の解を表す1つの二分決定グラフ(BDD)を受信するマスタ入出力制御部と、を含む。ローカルデバイスは、マスタデバイスから少なくとも2つの部分問題を受信し、少なくとも2つの部分問題の解を表す1つの二分決定グラフ(BDD)を送信するローカル入出力制御部と、少なくとも2つの部分問題のそれぞれの解を表す二分決定グラフを作成し、それぞれの解を表す二分決定グラフが所定の条件を満たす場合には、少なくとも2つの部分問題のそれぞれの解を表す二分決定グラフ同士を演算して、1つの二分決定グラフを生成するローカルBDD演算部と、ローカルBDD演算部で生成される二分決定グラフが制約条件を満たすかどうかを判定するローカル制約充足チェック部とを含む。
A binary decision graph processing system is provided that includes a master device and a local device.
The master device transmits a sub-problem dividing unit that divides the whole problem into a plurality of sub-problems and at least two sub-problems of the plurality of sub-problems to the local device, and represents solutions of at least two sub-problems from the local device And a master input / output control unit that receives one binary decision graph (BDD). The local device receives at least two subproblems from the master device and transmits a binary decision graph (BDD) representing solutions of the at least two subproblems, and each of the at least two subproblems When the binary decision graphs representing the solutions of the two are created and the binary decision graphs representing the respective solutions satisfy a predetermined condition, the binary decision graphs representing the respective solutions of at least two subproblems are calculated to calculate 1 A local BDD operation unit that generates two binary decision graphs, and a local constraint satisfaction check unit that determines whether the binary decision graph generated by the local BDD operation unit satisfies a constraint condition.

二分決定グラフを分割して複数の計算機に部分問題を割り当て処理する際に、メモリ不足の可能性を低減しつつ、たとえば通信時間を減らして処理時間を低減することができる。   When dividing the binary decision graph and assigning a partial problem to a plurality of computers, the processing time can be reduced by reducing the communication time, for example, while reducing the possibility of memory shortage.

二分木グラフから二分決定グラフ(BDD)を生成する演算の例を示す図である。It is a figure which shows the example of the calculation which produces | generates a binary decision graph (BDD) from a binary tree graph. BDDの一つの特徴を説明する図である。It is a figure explaining one characteristic of BDD. BDDの別の特徴を説明する図である。It is a figure explaining another characteristic of BDD. BDDの適用の例を説明する図である。It is a figure explaining the example of application of BDD. 比較例を説明する図である。It is a figure explaining a comparative example. 別の比較例を説明する図である。It is a figure explaining another comparative example. 第1の実施形態に従う並列処理の概要を説明する図である。It is a figure explaining the outline | summary of the parallel processing according to 1st Embodiment. マスタデバイスの機能ブロックの例を示す図である。It is a figure which shows the example of the functional block of a master device. 第1の実施形態に従う並列処理を行うためのローカルデバイスの機能ブロックの例を示す図である。It is a figure which shows the example of the functional block of the local device for performing the parallel processing according to 1st Embodiment. マスタデバイスとローカルデバイスの間の通信を説明する図である。It is a figure explaining communication between a master device and a local device. 図8に示されているマスタデバイスとローカルデバイスの間の通信で送られるBDDの例を示す図である。It is a figure which shows the example of BDD sent by communication between the master device shown by FIG. 8, and a local device. マスタデバイスとローカルデバイスの構成の例を示す図である。It is a figure which shows the example of a structure of a master device and a local device. 第1の実施形態に従う並列処理方法の処理の流れの例を示す図である。It is a figure which shows the example of the flow of a process of the parallel processing method according to 1st Embodiment. 第2の実施形態に従う並列処理方法を説明する図である。It is a figure explaining the parallel processing method according to 2nd Embodiment. 第2の実施形態に従う並列処理を行うためのローカルデバイスの機能ブロックの例を示す図である。It is a figure which shows the example of the functional block of the local device for performing the parallel processing according to 2nd Embodiment. 第2の実施形態に従う並列処理方法の処理の流れの例を示す図である。It is a figure which shows the example of the flow of a process of the parallel processing method according to 2nd Embodiment. 第2の実施形態に従う並列処理の変形例を行うためのローカルデバイスの機能ブロックの例を示す図である。It is a figure which shows the example of the functional block of the local device for performing the modification of the parallel processing according to 2nd Embodiment. 第2の実施形態に従う並列処理方法の処理の流れの変形例を示す図である。It is a figure which shows the modification of the flow of a process of the parallel processing method according to 2nd Embodiment.

以下では、組み合わせ最適化問題を二分決定グラフ(Binary Decision Diagram、以下、単にBDDと呼ぶことがある)により、複数の計算機(プロセッサを含むデバイス)で演算する際に、各計算機に全体問題を分割して得られる部分問題を割り当て、各計算機において割り当てられた部分問題の解を表すBDDを通信することによって、処理時間を削減し、BDDの演算を高速化するシステムおよび方法が提供される。全体問題とは、論理回路の出力関数、組合せに制約のあるスイッチのオン・オフの組合せ列挙、あるいは組合せに制約のあるアイテムの選択・非選択の組合せ列挙、などの論理関数の計算に帰着できる問題であってよい。   In the following, when the combinatorial optimization problem is calculated by a plurality of computers (devices including a processor) using a binary decision diagram (hereinafter sometimes simply referred to as BDD), the entire problem is divided into each computer. A system and method for reducing processing time and speeding up BDD operations are provided by allocating the obtained subproblems and communicating BDDs representing solutions of the subproblems assigned in each computer. The overall problem can be reduced to the calculation of logic functions such as output function of logic circuit, enumeration of switch ON / OFF with restrictions on combinations, or selection enumeration of selection / non-selection of items with restrictions on combinations. It can be a problem.

また、組み合わせ最適化問題をBDDにより、複数の計算機で演算する際に、各計算機に部分問題を割り当て、各計算機において割り当てられた部分問題の個々のBDDのサイズ和と、部分問題のBDDの積(AND演算)を取った後のBDDのサイズを比較し、小さい方を通信することによって、処理時間を削減し、BDDの演算を高速化する演算方法および装置が提供される。このように、通信するBDDが小さくなるように、または全体の処理時間が小さくなるように、演算を行う計算機を選択することで、通信のオーバーヘッドを小さくすることができる。その結果、並列化により全体の演算時間を小さくすることができる。   Further, when the combinatorial optimization problem is calculated by a plurality of computers using BDD, a subproblem is assigned to each computer, and the size sum of the individual BDDs of the subproblems assigned in each computer is multiplied by the product of the BDDs of the subproblems. Comparing the size of the BDD after taking (AND operation), and communicating the smaller one, a processing method and apparatus for reducing the processing time and speeding up the BDD operation are provided. As described above, the communication overhead can be reduced by selecting the computer that performs the calculation so that the BDD to be communicated is reduced or the entire processing time is reduced. As a result, the overall calculation time can be reduced by parallelization.

以下で説明する二分決定グラフの並列演算装置および方法は、全体問題の解を表すBDDは、部分問題の解を表すBDDの積(AND演算)で得られる場合のみならず、全体問題の解を表すBDDが、部分問題の解を表すBDDの和(OR演算)で得られる場合にも容易に変形して適用可能である。   The parallel computation device and method of the binary decision graph described below is not limited to the case where the BDD representing the solution of the entire problem is obtained by the product (AND operation) of the BDD representing the solution of the subproblem. Even when the BDD to be expressed is obtained by the sum (OR operation) of BDDs representing the solutions of the subproblems, the present invention can be easily modified and applied.

<第1の実施形態>
図1〜11を参照しながら、第1の実施形態にしたがう二分決定グラフの処理システムおよび方法を説明する。
<First Embodiment>
A binary decision graph processing system and method according to the first embodiment will be described with reference to FIGS.

<<全般的説明>>
二分決定グラフ(Binary Decision Diagram、以下、単にBDDと呼ぶことがある)は、与えられた論理関数の値の全ての変数について場合分けした結果を二分木グラフで表し、これを圧縮(縮約)することによって得ることができる。圧縮の際には、場合分けする変数の順序を固定し、冗長な節点の削除と、等価な節点の共有をできるだけ行うことにより、既約なBDDが得られる。この既約なBDDは、論理関数をコンパクトに一意的に表すことができる。
<< General description >>
A binary decision diagram (hereinafter referred to simply as BDD) is a binary tree graph showing the result of dividing all variables of a given logical function value, and compressing (reducing) the binary decision graph (binary decision diagram). Can be obtained. During compression, the order of the variables to be classified is fixed, redundant nodes are deleted, and equivalent nodes are shared as much as possible to obtain an irreducible BDD. This irreducible BDD can uniquely represent a logical function in a compact manner.

以下では、BDDの演算の並列化により処理を高速に処理する演算装置および方法について説明する。
論理関数として、表1のような真理値表に示される入出力関係を有する関数f(x、x、x)を考える。表1では、論理関数fの値を全ての変数について場合分けした結果が示されている。以下では、二値論理を考え、trueを「1」、falseを「0」で表すが、{true、false}={1、0}には限定されず、たとえば{true、false}={1、−1}など他の値でも良い。
Hereinafter, an arithmetic device and method for processing at high speed by parallelizing BDD operations will be described.
As a logical function, a function f (x 1 , x 2 , x 3 ) having an input / output relationship shown in the truth table as shown in Table 1 is considered. Table 1 shows the result of dividing the value of the logical function f for all variables. In the following, binary logic is considered and true is represented by “1” and false is represented by “0”, but is not limited to {true, false} = {1, 0}. For example, {true, false} = {1 , −1} or other values.

表1が示しているのは、たとえば、x=0、x=0、x=0であれば、f(x、x、x)=0ということである。 Table 1 shows that, for example, if x 1 = 0, x 2 = 0, and x 3 = 0, f (x 1 , x 2 , x 3 ) = 0.

図1は、二分木グラフから二分決定グラフ(BDD)を生成する演算の例を示す図である。
図1(a)は、表1の真理値表に示されている論理関数fの値を全ての変数について場合分けした結果を二分木グラフで表した図である。図1(a)の二分木グラフ10から図1(b)の準既約BDD11を経て図1(c)のBDD12を得るには、場合分けする変数の順序を固定し、等価な節点の共有と、冗長な節点の削除を可能な限り行う。等価な節点の共有と、冗長な節点の削除の演算を縮約、圧縮を呼ぶことがある。
FIG. 1 is a diagram illustrating an example of a calculation for generating a binary decision graph (BDD) from a binary tree graph.
FIG. 1A is a binary tree graph showing the result of dividing the values of the logical function f shown in the truth table of Table 1 for all variables. In order to obtain the BDD 12 of FIG. 1C from the binary tree graph 10 of FIG. 1A through the quasi-irreducible BDD 11 of FIG. 1B, the order of variables divided into cases is fixed, and equivalent nodes are shared. And delete redundant nodes as much as possible. The operations of sharing equivalent nodes and deleting redundant nodes may be referred to as reduction or compression.

図1(b)の準既約BDD11は、図1(a)の二分木グラフ10において等価な節点を共有する縮約操作を行って得られる準既約BDDの例である。図1(a)の節点101と節点102が等価である。ここで、「節点が等価」とは、0枝が指す節点同士が同じ葉または等価であり、かつ1枝が指す節点同士が同じ葉または等価である節点である。図1(a)の二分木グラフ10には、「x」が「0」であるとき「1」を出力し、「x」が「1」であるとき「0」を出力する節点101、102が存在する。これら2つの節点101、102は等価な節点である。 A quasi-irreducible BDD 11 in FIG. 1B is an example of a quasi-irreducible BDD obtained by performing a reduction operation that shares an equivalent node in the binary tree graph 10 in FIG. Node 101 and node 102 in FIG. 1A are equivalent. Here, the “nodes are equivalent” are nodes in which the nodes pointed to by the 0 branch are the same leaf or equivalent, and the nodes pointed to by the 1 branch are the same leaf or equivalent. The binary tree graph 10 in FIG. 1 (a), outputs "1" when "x 3" is "0", the node 101 "x 3" is for outputting "0" when "1" , 102 exist. These two nodes 101 and 102 are equivalent nodes.

図1(c)のBDD12は、図1(b)の準既約BDD11において冗長な節点を削除する縮約操作を行って得られるBDDである。「冗長な節点」とは、入力に対して、節点に付与された変数の値がいかなる値であろうと、出力の値が同一である節点である。たとえば、図1(b)の準既約BDD11の節点113では、節点113に付与された値「x」が「1」であろうと「0」であろうと、葉115に示される「0」が出力される。また、図1(b)の準既約BDD11の節点114では、節点113に付与された値「x」が「1」であろうと「0」であろうと、葉116に示される「1」が出力される。このように、節点113、114は冗長な節点である。 The BDD 12 in FIG. 1C is a BDD obtained by performing a reduction operation for deleting redundant nodes in the semi-irreducible BDD 11 in FIG. A “redundant node” is a node whose output value is the same regardless of the value of the variable assigned to the node with respect to the input. For example, in the node 113 of the quasi-irreducible BDD 11 in FIG. 1B, whether the value “x 3 ” assigned to the node 113 is “1” or “0” is “0” shown in the leaf 115. Is output. Further, in the node 114 of the quasi-irreducible BDD 11 in FIG. 1B, the value “x 3 ” given to the node 113 is “1” indicated by the leaf 116 regardless of whether it is “1” or “0”. Is output. Thus, the nodes 113 and 114 are redundant nodes.

図2A、2Bは、BDDの特徴を説明する図である。
BDDの特徴として、図2Aに示されているように、BDD131とBDD132の間の論理演算処理をすることができる。図2Aでは、BDD131とBDD132とOR演算をしてBDD133を得ている。
2A and 2B are diagrams for explaining the characteristics of BDD.
As a feature of BDD, as shown in FIG. 2A, logical operation processing between BDD 131 and BDD 132 can be performed. In FIG. 2A, BDD 133 is obtained by performing an OR operation with BDD 131 and BDD 132.

BDD同士の論理演算の基本的なアルゴリズムは次の処理を含んでも良い。
(A1)二項演算(f・g)において、2つのBDDをある入力変数xについて場合分けし、2つの部分演算(f(x=0)・g(x=0))と(f(x=1)・g(x=1))に分解する。
(A2)(A1)の分解をすべての入力変数について再帰的に繰り返し、最終的に自明な演算になったところで部分演算の結果のBDDを生成する。
(A3)各部分演算で得られたBDDを再度組み上げ、全体の演算結果を表すBDDを生成する。
A basic algorithm of logical operation between BDDs may include the following processing.
(A1) In the binomial operation (f · g), two BDDs are classified for a certain input variable x, and two partial operations (f (x = 0) · g (x = 0) ) and (f (x = 1) · g (x = 1) )
(A2) The decomposition of (A1) is recursively repeated for all input variables, and a BDD as a result of the partial operation is generated when the operation is finally obvious.
(A3) The BDD obtained by each partial calculation is reassembled to generate a BDD representing the entire calculation result.

また、冗長な部分演算を避けるテクニックを用いることで、BDDの節点数にほぼ比例する時間で論理演算を行うことができることが知られている。   Further, it is known that a logical operation can be performed in a time substantially proportional to the number of BDD nodes by using a technique that avoids redundant partial operations.

また、図2Bに示されているように、たとえば縮約したBDDの各節点に重みを付与することによって、最適なパスの探索を行うことができる。図2Bでは、BDD141の頂点から「1」を表す葉への重み和を最小とするようなパスを探索することができる。   Further, as shown in FIG. 2B, for example, an optimum path can be searched by assigning a weight to each node of the reduced BDD. In FIG. 2B, it is possible to search for a path that minimizes the sum of weights from the vertex of the BDD 141 to the leaf representing “1”.

図3は、BDDを用いて最適な組み合わせを探索する例としての、配電網構成の探索を説明する図である。配電網を構成する問題を、配電網構成問題と呼ぶこともある。全体問題は、論理回路の出力関数の導出、組合せに制約のあるスイッチのオンまたはオフの組合せの列挙、組合せに制約のあるアイテムの選択または非選択の組合せ列挙を含む、論理関数の計算として表現される問題であっても良い。図3に示されている例では、全体問題とは、電源、多数のスイッチ、スイッチ同士を繋ぐ電線、および電線につながれる負荷を含むシステムにおいて、制約条件を満たすスイッチの状態の組み合わせを探す問題として定義される配電網構成問題であって、制約条件は下記のような(C1)幾何学的制約条件、(C2)電気的制約条件、(C3)最適構成の条件である。   FIG. 3 is a diagram for explaining a search for a distribution network configuration as an example of searching for an optimal combination using BDD. The problem of configuring the distribution network is sometimes referred to as a distribution network configuration problem. The overall problem is expressed as a calculation of a logical function, including derivation of the output function of the logic circuit, enumeration of on / off combinations of switches that are constrained in combination, and enumeration of selection or non-selection of items that are constrained in combination May be a problem. In the example shown in FIG. 3, the overall problem is a problem of finding a combination of switch states that satisfy the constraint conditions in a system including a power source, a large number of switches, electric wires connecting the switches, and a load connected to the electric wires. The distribution network configuration problem is defined as: (C1) Geometric constraint condition, (C2) Electrical constraint condition, and (C3) Optimal configuration condition as follows.

一般に、電力システムには、送電網と配電網がある。送電網では、高電圧で、長距離にわたり電力が送られる。配電網では、比較的低い電圧(数千ボルト)で、近距離の地域に属する各家に電力が送られる。配電網中には、多数のスイッチが存在し、各スイッチの状態(オン(ON)またはオフ(OFF))の組み合わせによって配電網が構成される。また、配電網は複数の変電所が所定の地域に給電するように構成される。正しく構成しないと、停電、異常電圧、過電流といったトラブルが生じる可能性がある。   Generally, power systems include a power transmission network and a power distribution network. In the power transmission network, electric power is transmitted over a long distance at a high voltage. In the power distribution network, power is sent to each house in a short distance area at a relatively low voltage (several thousand volts). There are many switches in the distribution network, and the distribution network is configured by a combination of the states of the switches (ON (ON) or OFF (OFF)). The distribution network is configured such that a plurality of substations supply power to a predetermined area. If not configured correctly, problems such as power outages, abnormal voltages, and overcurrents may occur.

図3に示されているように、配電網15では、変電所1501、1502、1503、1504からの電力を各家庭に配るために、スイッチ1511、1512、1513、1514の状態を次のような制約の下に決定する必要がある。
(C1)幾何学的制約条件
(C2)電気的制約条件
(C3)最適構成の条件
As shown in FIG. 3, in the distribution network 15, in order to distribute the power from the substations 1501, 1502, 1503, and 1504 to each home, the states of the switches 1511, 1512, 1513, and 1514 are as follows. Must be determined under constraints.
(C1) Geometric constraints (C2) Electrical constraints (C3) Optimal configuration conditions

(C1)の幾何学的制約条件は、配電網構成問題では、次のような条件である。
(C1−1)スイッチがオンの状態で互いに繋がれる家で構成される区域が、必ず1箇所の変電所に接続されている。
この(C1−1)の条件は、停電しないことと、異なる変電所の系統を一つの家に繋がない、と言い換えることもできる。図3に示されている配電網15では、そのような組み合わせが数多く存在する。
The geometrical constraint condition (C1) is as follows in the distribution network configuration problem.
(C1-1) An area composed of houses connected to each other when the switch is on is always connected to one substation.
The condition of (C1-1) can be paraphrased as not having a power failure and not connecting different substation systems to one house. There are many such combinations in the power distribution network 15 shown in FIG.

(C−2)の電気的制約条件は、配電網構成問題では、次のような条件である。
(C2−1)電線の各区間で流れる電流は許容電流を超えない。
(C2−2)電線の抵抗による電圧効果が許容範囲を超えない。
(C2−3)三相交流のバランスが取れていること。
などである。(C−2)の条件を満たすかどうかを判定するためには、与えられた配電網構成に対して、電線を流れる電流などを計算する必要がある。それらは、図3の配電網シミュレータ16によって行われる。
The electrical constraint condition (C-2) is as follows in the distribution network configuration problem.
(C2-1) The current flowing in each section of the electric wire does not exceed the allowable current.
(C2-2) The voltage effect due to the resistance of the electric wire does not exceed the allowable range.
(C2-3) The three-phase alternating current must be balanced.
Etc. In order to determine whether or not the condition (C-2) is satisfied, it is necessary to calculate a current flowing through the electric wire for a given distribution network configuration. They are performed by the distribution network simulator 16 of FIG.

(C−3)の最適構成の条件は、たとえば、送電損失最小という条件であり得る。
現実での配電網構成問題では、考え得る構成の数は2としてN=400を超えることもある。
The condition of the optimal configuration of (C-3) can be, for example, a condition of minimum power transmission loss.
In an actual distribution network configuration problem, the number of possible configurations may exceed 2 = N and N = 400.

配電網構成問題では、配電網全体を、部分的に損失を計算できるようなコンポーネントに分割することができることある。たとえば、損失最小構成では、変電所に近いスイッチは開かれていないと考え、変電所から最初の分岐点までのスイッチは綴じると仮定する、すると、分岐点で配電網を分割することで、電力流出の無いコンポーネントが得られ、他のコンポーネントとは独立に損失を計算することができる。以下では、主に、このような状況を考える。   In a distribution network configuration problem, the entire distribution network may be divided into components that can partially calculate losses. For example, in the minimum loss configuration, assume that the switch near the substation is not open, and assume that the switch from the substation to the first branch point is bound. Then, by dividing the distribution network at the branch point, A component with no spills is obtained and the loss can be calculated independently of the other components. In the following, this situation is mainly considered.

BDD演算デバイス17では、配電網15からBDD171を作成し、幾何学的制約条件(C1)および電気的制約条件(C2)を満たす配電網を選び出す。配電網15からBDDを作成するとき、BDDの節点はスイッチに対応する。スイッチの状態の組み合わせが、幾何学的制約条件(C1)および電気的制約条件(C2)を満たすか否かは、葉の状態「1」または「0」に対応する。   The BDD computing device 17 creates a BDD 171 from the distribution network 15 and selects a distribution network that satisfies the geometric constraint condition (C1) and the electrical constraint condition (C2). When creating a BDD from the distribution network 15, the node of the BDD corresponds to a switch. Whether the combination of the switch states satisfies the geometric constraint (C1) and the electrical constraint (C2) corresponds to the leaf state “1” or “0”.

BDD演算デバイス17ではさらに、幾何学的制約条件(C1)および電気的制約条件(C2)を満たすスイッチの組み合わせの中から、条件(C−3)を満たすもの、たとえば送電損失が最小となるような構成を探す。すなわち、BDD172において「1」を示す葉への重み最小パスを探索する。   The BDD computing device 17 further satisfies a condition (C-3) among combinations of switches satisfying the geometric constraint condition (C1) and the electrical constraint condition (C2), for example, the transmission loss is minimized. Find the right composition. That is, the BDD 172 searches for the minimum weight path to the leaf indicating “1”.

図4は、以上のような配電網構成問題を含むBDD演算の処理を1つの計算機(プロセッサを含むデバイス)18で処理をする場合を示す図である。この場合、制約を満たすかどうかを決定するため、配電網シミュレータを数多く、実行する必要があり、多くの処理時間が掛かることがある。   FIG. 4 is a diagram showing a case where the BDD calculation processing including the above-described distribution network configuration problem is processed by one computer (device including a processor) 18. In this case, in order to determine whether or not the constraint is satisfied, it is necessary to execute a large number of power distribution network simulators, which may take a lot of processing time.

図5は、以上のような配電網構成問題を含むBDD演算の処理を分散メモリ型並列計算システム19によって処理する場合を示す図である。計算システム19は、マスタデバイス191、ローカルデバイス192、193、194を含む。図5では、ローカルデバイス192、193、194をそれぞれ、ローカルデバイス1、2、3と呼んでいる。また、計算システム19は、3つのローカルデバイスを含んでいるが、3つより少ない数のローカルデバイスを含んでいてもよいし、3つより多くのローカルデバイスを含んでも良い。図5の計算システム19では、マスタデバイス191は、全体の問題を複数の部分問題に分割し、複数のローカルデバイスに割り当て、並列に計算する。たとえば、配電網構成問題では、各ローカルデバイスには、ある地域の配電網が幾何学的制約条件(C1)および電気的制約条件(C2)を満たすか否かを判定する部分問題が割り当てられる。各ローカルデバイスでは、配電網を構成し、配電網シミュレータを実行して、もし、その構成が幾何学的制約条件(C1)および電気的制約条件(C2)を満たす場合、マスタデバイス191に構成に関する情報を送る。各ローカルデバイスに割り当てられる部分問題は複数でもよいし、一つでも良い。マスタデバイス191は、ローカルデバイス191、192、193から送られた、幾何学的制約条件(C1)および電気的制約条件(C2)を満たす構成を受け取り、全体のBDDを作成する。そして、マスタデバイス191は、条件(C−3)を満たすような構成を表すBDDを選ぶ。   FIG. 5 is a diagram showing a case where the distributed memory parallel computing system 19 processes the BDD operation including the distribution network configuration problem as described above. The computing system 19 includes a master device 191 and local devices 192, 193, 194. In FIG. 5, the local devices 192, 193, 194 are called local devices 1, 2, 3, respectively. Also, the computing system 19 includes three local devices, but may include fewer than three local devices and may include more than three local devices. In the calculation system 19 of FIG. 5, the master device 191 divides the entire problem into a plurality of partial problems, assigns them to a plurality of local devices, and calculates in parallel. For example, in the distribution network configuration problem, each local device is assigned a partial problem that determines whether or not a local distribution network satisfies the geometric constraint condition (C1) and the electrical constraint condition (C2). In each local device, a distribution network is configured and a distribution network simulator is executed. If the configuration satisfies the geometric constraint condition (C1) and the electrical constraint condition (C2), the master device 191 has a configuration related to the configuration. Send information. There may be a plurality of partial problems assigned to each local device or one. The master device 191 receives the configuration satisfying the geometric constraints (C1) and the electrical constraints (C2) sent from the local devices 191, 192, 193, and creates the entire BDD. Then, the master device 191 selects a BDD that represents a configuration that satisfies the condition (C-3).

一般に、各部分問題に対して、幾何学的制約条件(C1)および電気的制約条件(C2)を満たす構成は数多く存在するので、ローカルデバイスとマスタデバイス間のデータの通信量は多く、通信のために要する時間である通信時間が大きくなることがある。   In general, for each subproblem, there are many configurations that satisfy the geometric constraint condition (C1) and the electrical constraint condition (C2), so the amount of data communication between the local device and the master device is large. Therefore, the communication time, which is the time required for this, may increase.

図6は、第1の実施形態に従う並列処理の概要を説明する図である。より詳細には、図6は、配電網構成問題を含むBDD演算の処理を分散メモリ型並列計算システム20によって処理する場合を示す図である。計算システム20は、マスタデバイス201、ローカルデバイス202、203、204を含む。図6では、ローカルデバイス202、203、204をそれぞれ、ローカルデバイス1、2、3と呼んでいる。また、計算システム20は、3つのローカルデバイスを含んでいるが、3つより少ない数のローカルデバイスを含んでいてもよいし、3つより多くのローカルデバイスを含んでも良い。   FIG. 6 is a diagram illustrating an outline of parallel processing according to the first embodiment. More specifically, FIG. 6 is a diagram illustrating a case in which a BDD calculation process including a distribution network configuration problem is processed by the distributed memory parallel computing system 20. The computing system 20 includes a master device 201 and local devices 202, 203, and 204. In FIG. 6, the local devices 202, 203, and 204 are called local devices 1, 2, and 3, respectively. Also, the computing system 20 includes three local devices, but may include fewer than three local devices and may include more than three local devices.

図6の計算システム20では、マスタデバイス201は、全体の問題を複数の部分問題に分割し、複数のデバイスに割り当て、並列に計算する。このとき、一つのローカルデバイスには複数の部分問題を割り当てる。マスタデバイスには複数の部分問題を割り当ててもよいし、一つの部分問題を割り当てても良い。   In the calculation system 20 of FIG. 6, the master device 201 divides the entire problem into a plurality of partial problems, assigns them to a plurality of devices, and calculates in parallel. At this time, a plurality of partial problems are assigned to one local device. A plurality of partial problems may be assigned to the master device, or one partial problem may be assigned.

たとえば、全体の問題Qは、Q=A・B・C・D・E・F・G・Hのように、部分問題A、B、C、D、E、F、G、HのAND演算を施した結果として得られるものとする。そして、マスタデバイス201は、部分問題AとBをローカルデバイス202に、部分問題CとDをローカルデバイス203に、部分問題EとFをローカルデバイス204に、部分問題GとHをマスタデバイス201自身に割り当てる。各デバイス201〜204は、割り当てられた部分問題に対して、幾何学的制約条件(C1)および電気的制約条件(C2)を満たす解をBDDで表す。以下、「部分問題の解」とは、幾何学的制約条件(C1)および電気的制約条件(C2)を満たす解を意味することがある。   For example, the entire problem Q is obtained by performing an AND operation on the sub-problems A, B, C, D, E, F, G, H as Q = A, B, C, D, E, F, G, H. Shall be obtained as a result of application. Then, the master device 201 sets the partial problems A and B to the local device 202, the partial problems C and D to the local device 203, the partial problems E and F to the local device 204, and the partial problems G and H to the master device 201 itself. Assign to. Each device 201 to 204 represents a solution satisfying the geometric constraint condition (C1) and the electrical constraint condition (C2) with respect to the assigned subproblem in BDD. Hereinafter, the “solution of the partial problem” may mean a solution satisfying the geometric constraint condition (C1) and the electrical constraint condition (C2).

ローカルデバイス202〜204では、与えられた複数の部分問題に対する解を表すBDD同士のAND演算を施し、その結果のBDDに関する情報をマスタデバイス201に送る。たとえば、ローカルデバイス202には、部分問題AとBが割り当てられる。それらの問題に対して、幾何学的制約条件(C1)、電気的制約条件(C2)および条件(C−3)を満たす解をBDDで表し、さらにAND演算を施し、部分問題(A・B)に対する解を表すBDDを作成する。ここで、最適化条件(C−3)を局所的に満たす解をBDDで表したが、最適化条件(C−3)を局所的に満たす解の探索が出来ない場合は、幾何学的制約条件(C1)と電気的制約条件(C2)を満たす解であっても良い。そして、この部分問題(A・B)に対する解を表すBDDに関する情報をマスタデバイス201に送る。マスタデバイス201では、まず、部分問題(G・H)に対する解を表すBDDを作成する。さらに、マスタデバイス201では、ローカルデバイス202〜204から送られた部分問題(A・B)、(C・D)、(E・F)に対する解を表すBDDと、部分問題(G・H)に対する解を表すBDDの間のAND演算を実行する。さらに、マスタデバイス201は、条件(C−3)を大域的に満たすような構成を表すBDDを求める。   The local devices 202 to 204 perform an AND operation between BDDs representing solutions to a plurality of given subproblems, and send information about the resulting BDD to the master device 201. For example, partial problems A and B are assigned to the local device 202. For these problems, a solution satisfying the geometric constraint condition (C1), the electrical constraint condition (C2), and the condition (C-3) is represented by BDD, and further subjected to an AND operation, and the subproblem (A · B To create a BDD representing the solution to. Here, a solution that locally satisfies the optimization condition (C-3) is represented by BDD. However, when a search for a solution that locally satisfies the optimization condition (C-3) cannot be performed, a geometric constraint is imposed. The solution may satisfy the condition (C1) and the electrical constraint condition (C2). Then, information regarding the BDD representing the solution to the partial problem (A / B) is sent to the master device 201. First, the master device 201 creates a BDD representing a solution to the partial problem (G · H). Further, in the master device 201, a BDD representing a solution to the subproblems (A · B), (C · D), and (E · F) sent from the local devices 202 to 204, and a subproblem (G · H) Perform an AND operation between BDDs representing solutions. Furthermore, the master device 201 obtains a BDD representing a configuration that satisfies the condition (C-3) globally.

このように全体の問題QをBDDにより、複数の計算機(デバイス)で演算する際に、各計算機に部分問題を割り当て、各計算機において割り当てられた部分問題の解を表すBDDを通信することによって、処理時間を削減し、BDDの演算を高速化する演算方法および装置が提供される。   In this way, when the entire problem Q is calculated by a plurality of computers (devices) by BDD, a subproblem is assigned to each computer, and by communicating a BDD representing a solution of the subproblem assigned in each computer, An operation method and apparatus are provided that reduce processing time and speed up BDD operations.

<<二分決定グラフの並列演算装置>>
図7Aは、マスタデバイス201の機能ブロックの例を示す図であり、図7Bは、本実施形態に従う並列処理を行うためのローカルデバイス202の機能ブロックの例を示す図である。ローカルデバイス203、204はローカルデバイス202と同一または類似の機能ブロックを有する。
<< Parallel processing unit for binary decision graph >>
FIG. 7A is a diagram illustrating an example of functional blocks of the master device 201, and FIG. 7B is a diagram illustrating an example of functional blocks of the local device 202 for performing parallel processing according to the present embodiment. The local devices 203 and 204 have the same or similar functional blocks as the local device 202.

マスタデバイス201は、(マスタ)入出力制御部2011、問題記憶部2012、部分問題分割部2013、(マスタ)BDD記憶部2014、(マスタ)BDD演算部2015、(マスタ)制約充足チェック部2016を含む。   The master device 201 includes a (master) input / output control unit 2011, a problem storage unit 2012, a partial problem division unit 2013, a (master) BDD storage unit 2014, a (master) BDD operation unit 2015, and a (master) constraint satisfaction check unit 2016. Including.

入出力制御部2011は、マスタデバイス201に接続されているローカルデバイスとのデータの遣り取りを制御する。また、マスタデバイス201が、問題の入力のためにキーボードなど入力装置と接続されている場合は、それら入力装置とのデータの遣り取りを行う。たとえば、入出力制御部2011には、上記のような配電網構成問題Q=A・B・C・D・E・F・G・Hが入力される。   The input / output control unit 2011 controls data exchange with a local device connected to the master device 201. In addition, when the master device 201 is connected to an input device such as a keyboard for inputting a problem, data is exchanged with the input device. For example, the input / output control unit 2011 receives the distribution network configuration problem Q = A, B, C, D, E, F, G, and H as described above.

また、入出力制御部2011は、後述のように部分問題分割部2013で分割され、各ローカルデバイスに割り当てられた部分問題を出力する。   In addition, the input / output control unit 2011 outputs a partial problem divided by the partial problem dividing unit 2013 and assigned to each local device as described later.

さらに、入出力制御部2011は、各ローカルデバイスによって得られた部分問題の解を表すBDDを受け、BDD記憶部2014に格納する。   Further, the input / output control unit 2011 receives the BDD representing the solution of the partial problem obtained by each local device, and stores it in the BDD storage unit 2014.

さらに、入出力制御部2011は、BDD演算部2015で得られた全体問題に対する解をディスプレイ、プリンタなどの出力装置に出力しても良い。   Further, the input / output control unit 2011 may output a solution to the overall problem obtained by the BDD operation unit 2015 to an output device such as a display or a printer.

問題記憶部2012は、入出力制御部2011を介して受けた組み合わせ問題Qを記憶する。   The problem storage unit 2012 stores the combination problem Q received via the input / output control unit 2011.

部分問題分割部2013では、与えられた問題Qを独立に計算できる部分問題に分割する。例えば、配電網構成問題Q=A・B・C・D・E・F・G・Hの場合は、8つの部分問題A、B、C、D、E、F、G、Hに分割する。   The sub-problem dividing unit 2013 divides the given problem Q into sub-problems that can be calculated independently. For example, in the case of distribution network configuration problem Q = A, B, C, D, E, F, G, H, it is divided into eight partial problems A, B, C, D, E, F, G, H.

部分問題の構成方法としては、たとえば、全体の問題Qを、上のようにAND演算で区切ることもできるが、Q=A+B+CのようにOR演算で区切っても良い。全体問題をOR演算で区切って部分問題を構成するときは、以下の記載において、AND演算をOR演算に置き換えればよい。   As a method of constructing the partial problem, for example, the entire problem Q can be divided by an AND operation as described above, but may be divided by an OR operation such as Q = A + B + C. When the partial problem is configured by dividing the whole problem by the OR operation, the AND operation may be replaced with the OR operation in the following description.

また、上述のように、配電網構成問題において、配電網全体を、部分的に損失を計算できるようなコンポーネントに分割することができる。勿論、コンポーネントごとに独立に損失を計算できない場合もある。このように各部分問題の解が、上記条件の幾何学的制約条件(C1)、電気的制約条件(C2)および条件(C−3)を満たすのか、幾何学的制約条件(C1)および電気的制約条件(C2)だけを満たすのかに依存して、後述のBDD演算部2015の処理は以下の記載とは若干、異なっても良い。   Further, as described above, in the distribution network configuration problem, the entire distribution network can be divided into components that can partially calculate the loss. Of course, the loss may not be calculated independently for each component. In this way, whether the solution of each sub-problem satisfies the geometric constraint condition (C1), the electrical constraint condition (C2), and the condition (C-3) of the above conditions, the geometric constraint condition (C1) and the electrical Depending on whether only the conditional constraint (C2) is satisfied, the processing of the BDD operation unit 2015 described later may be slightly different from the following description.

また、部分問題分割部2013では、分割された部分問題をマスタデバイスまたはローカルデバイスに割り当てる。たとえば、部分問題AとBをローカルデバイス202に、部分問題CとDをローカルデバイス203に、部分問題EとFをローカルデバイス204に、部分問題GとHをマスタデバイス201自身に割り当てる。   Further, the partial problem dividing unit 2013 assigns the divided partial problems to the master device or the local device. For example, the partial problems A and B are allocated to the local device 202, the partial problems C and D are allocated to the local device 203, the partial problems E and F are allocated to the local device 204, and the partial problems G and H are allocated to the master device 201 itself.

部分問題分割部2013でマスタデバイス201自身に割り当てられた部分問題GとHは、BDD演算部2015に送られる。   The partial problems G and H assigned to the master device 201 itself by the partial problem division unit 2013 are sent to the BDD operation unit 2015.

BDD記憶部2014は、入出力制御部2011に入力された各ローカルデバイスによって得られた部分問題の解を表すBDD、または後述の制約充足チェック部2016によって得られた部分問題の解を表すBDDを格納する。   The BDD storage unit 2014 displays a BDD that represents a solution of the subproblem obtained by each local device input to the input / output control unit 2011 or a BDD that represents a solution of the subproblem obtained by the constraint satisfaction check unit 2016 described later. Store.

BDD演算部2015は、本デバイスに割り当てられた部分問題GとHに対して、二分木グラフから縮約を繰り返し、BDDを得る。   The BDD operation unit 2015 repeats contraction from the binary tree graph for the subproblems G and H allocated to this device, and obtains BDD.

また、BDD演算部2015は、部分問題GとHのそれぞれに対して得られたBDD同士のAND演算を実行し、部分問題(G・H)に対する解を表すBDDを生成する。   The BDD operation unit 2015 performs an AND operation between the BDDs obtained for the partial problems G and H, and generates a BDD representing a solution to the partial problem (G · H).

また、BDD演算部2015は、BDD記憶部2014に格納されたBDDを用いて、全体の問題Qに対する解を求める。たとえば、ローカルデバイス202〜204から送られた部分問題(A・B)、(C・D)、(E・F)に対する解を表すBDDと、部分問題(G・H)に対する解を表すBDDの間のAND演算を実行し、さらに、条件(C−3)を満たすような構成を表すBDDを求める。   Further, the BDD operation unit 2015 uses the BDD stored in the BDD storage unit 2014 to obtain a solution to the entire problem Q. For example, BDDs representing solutions to subproblems (A · B), (C · D), and (E · F) sent from the local devices 202 to 204 and BDDs representing solutions to the subproblem (G · H) The BDD representing the configuration that satisfies the condition (C-3) is obtained.

制約充足チェック部2016では、BDD演算部2015で生成されるBDDが、幾何学的制約条件(C1)、電気的制約条件(C2)および条件(C−3)を満たすかどうかをチェックして、これら条件を満たすBDDを選ぶ。ここで、幾何学的制約条件(C1)、電気的制約条件(C2)および最適化条件(C−3)を局所的に満たす解をBDDで表したが、最適化条件(C−3)を局所的に満たす解の探索が出来ない場合は、幾何学的制約条件(C1)と電気的制約条件(C2)を満たす解であっても良い。   The constraint satisfaction check unit 2016 checks whether the BDD generated by the BDD operation unit 2015 satisfies the geometric constraint condition (C1), the electrical constraint condition (C2), and the condition (C-3). A BDD that satisfies these conditions is selected. Here, the solution that locally satisfies the geometric constraint condition (C1), the electrical constraint condition (C2), and the optimization condition (C-3) is represented by BDD. In the case where a locally satisfying solution cannot be searched, a solution satisfying the geometric constraint condition (C1) and the electrical constraint condition (C2) may be used.

ローカルデバイス202は、(ローカル)入出力制御部2021、部分問題記憶部2022、(ローカル)BDD記憶部2023、(ローカル)BDD演算部2024、(ローカル)制約充足チェック部2025を含む。   The local device 202 includes a (local) input / output control unit 2021, a partial problem storage unit 2022, a (local) BDD storage unit 2023, a (local) BDD operation unit 2024, and a (local) constraint satisfaction check unit 2025.

入出力制御部2021は、マスタデバイス201とのデータの遣り取りを行う。たとえば、入出力制御部2021は、ローマルデバイス202に割り当てられた部分問題を受け取り、後述の制約充足チェック部2025で求められBDD記憶部2014に格納された部分問題の解を表すBDDに関する情報をマスタデバイス201に出力する。   The input / output control unit 2021 exchanges data with the master device 201. For example, the input / output control unit 2021 receives the subproblem assigned to the roman device 202, and obtains information related to the BDD that represents the solution of the subproblem obtained by the constraint satisfaction check unit 2025 described later and stored in the BDD storage unit 2014. Output to the master device 201.

BDD記憶部2023は、後述の制約充足チェック部2025によって得られた部分問題の解を表すBDDを格納する。   The BDD storage unit 2023 stores a BDD representing a solution of the partial problem obtained by the constraint satisfaction check unit 2025 described later.

BDD演算部2024は、本デバイスに割り当てられた部分問題AとBに対して、二分木グラフから縮約を繰り返し、BDDを得る。   The BDD operation unit 2024 repeats contraction from the binary tree graph for the subproblems A and B assigned to the present device, and obtains BDD.

また、BDD演算部2024は、部分問題AとBのそれぞれに対して得られたBDD同士のAND演算を実行し、部分問題(A・B)に対する解を表すBDDを生成する。   Also, the BDD operation unit 2024 performs an AND operation between the BDDs obtained for the partial problems A and B, and generates a BDD representing a solution to the partial problem (A · B).

制約充足チェック部2025では、BDD演算部2015で生成されるBDDが、幾何学的制約条件(C1)、電気的制約条件(C2)および条件(C−3)を満たすかどうかをチェックして、これら条件を満たすBDDを選ぶ。ここでも、幾何学的制約条件(C1)、電気的制約条件(C2)および最適化条件(C−3)を局所的に満たす解をBDDで表したが、最適化条件(C−3)を局所的に満たす解の探索が出来ない場合は、幾何学的制約条件(C1)と電気的制約条件(C2)を満たす解であっても良い。   The constraint satisfaction check unit 2025 checks whether the BDD generated by the BDD operation unit 2015 satisfies the geometric constraint condition (C1), the electrical constraint condition (C2), and the condition (C-3). A BDD that satisfies these conditions is selected. Also here, the solution that locally satisfies the geometric constraint condition (C1), the electrical constraint condition (C2), and the optimization condition (C-3) is represented by BDD, but the optimization condition (C-3) is In the case where a locally satisfying solution cannot be searched, a solution satisfying the geometric constraint condition (C1) and the electrical constraint condition (C2) may be used.

図示されていないが、ローカルデバイス203、204もローカルデバイス202と同一または類似の構成を有する。例えば、ローカルデバイス203は、入出力制御部2031、部分問題分割部2032、BDD記憶部2033、BDD演算部2034、制約充足チェック部2035を含み、これらはそれぞれ入出力制御部2021、部分問題記憶部2022、BDD記憶部2023、BDD演算部2024、制約充足チェック部2025と同一または類似の構成および/または機能を有する。   Although not shown, the local devices 203 and 204 have the same or similar configuration as the local device 202. For example, the local device 203 includes an input / output control unit 2031, a partial problem division unit 2032, a BDD storage unit 2033, a BDD operation unit 2034, and a constraint satisfaction check unit 2035, which are an input / output control unit 2021 and a partial problem storage unit, respectively. 2022, the BDD storage unit 2023, the BDD operation unit 2024, and the constraint satisfaction check unit 2025 have the same or similar configuration and / or function.

図8はマスタデバイス201とローカルデバイス202の間の通信を説明する図である。
マスタデバイス201からローカルデバイス202には、部分問題AとBが送られる。また、ローカルデバイス202からマスタデバイス201には、部分問題(A・B)の解を表すBDDに関する情報が送られる。
FIG. 8 is a diagram for explaining communication between the master device 201 and the local device 202.
Partial problems A and B are sent from the master device 201 to the local device 202. In addition, information regarding the BDD representing the solution of the partial problem (A / B) is sent from the local device 202 to the master device 201.

図9は、部分問題(A・B)の解を表すBDDの例を示す図である。図9に示されているBDDに関する情報は表2のような形でローカルデバイス202からマスタデバイス201に送られる。   FIG. 9 is a diagram illustrating an example of a BDD representing a solution of a partial problem (A / B). Information relating to the BDD shown in FIG. 9 is sent from the local device 202 to the master device 201 in the form shown in Table 2.

表2の各行はある節の名前、図9の節点a、b、cなどと、その節点で「0」の場合に向かう節点、その節で「1」の場合に向かう節点を含む。たとえば、表2の第一行目は図9の左下の葉「0」を、第2行目が右下の葉「1」を表している。   Each row in Table 2 includes the name of a certain node, the nodes a, b, c, etc. of FIG. 9, the node that goes to “0” at that node, and the node that goes to “1” at that node. For example, the first row of Table 2 represents the lower left leaf “0” in FIG. 9, and the second row represents the lower right leaf “1”.

表2の第3行目は一番上の節点aで、「0」の場合は、4番目の節点つまり節点cへ、「1」の場合は、3番目の節点つまり節点bに向かうとを表している。このように、表2をデータとして送ると、図9のBDDを再構築することができる。   The third row of Table 2 is the top node a. When it is "0", it goes to the fourth node or node c. When it is "1", it goes to the third node or node b. Represents. Thus, when Table 2 is sent as data, the BDD of FIG. 9 can be reconstructed.

図10は、二分決定グラフの並列演算装置の構成の例を示す構成図である。二分決定グラフの並列演算装置は、汎用コンピュータ500として実現され得る。   FIG. 10 is a configuration diagram illustrating an example of a configuration of a parallel calculation device for a binary decision graph. The parallel computation device for the binary decision graph can be realized as the general-purpose computer 500.

このコンピュータ500は、MPU502、ROM504、RAM506、ハードディスク装置508、入力装置510、表示装置512、インタフェース装置514、及び記録媒体駆動装置516を備えている。なお、これらの構成要素はバスライン520を介して接続されており、MPU502の管理の下で各種のデータを相互に授受することができる。   The computer 500 includes an MPU 502, ROM 504, RAM 506, hard disk device 508, input device 510, display device 512, interface device 514, and recording medium drive device 516. These components are connected via a bus line 520, and various data can be exchanged under the management of the MPU 502.

MPU(Micro Processing Unit)502は、このコンピュータ500全体の動作を制御する演算処理装置であり、コンピュータ500の制御処理部として機能する。   An MPU (Micro Processing Unit) 502 is an arithmetic processing unit that controls the operation of the entire computer 500, and functions as a control processing unit of the computer 500.

ROM(Read Only Memory)504は、所定の基本制御プログラムが予め記録されている読み出し専用半導体メモリである。MPU502は、この基本制御プログラムをコンピュータ500の起動時に読み出して実行することにより、このコンピュータ500の各構成要素の動作制御が可能になる。   A ROM (Read Only Memory) 504 is a read-only semiconductor memory in which a predetermined basic control program is recorded in advance. The MPU 502 reads out and executes this basic control program when the computer 500 is activated, thereby enabling operation control of each component of the computer 500.

RAM(Random Access Memory)506は、MPU502が各種の制御プログラムを実行する際に、必要に応じて作業用記憶領域として使用する、随時書き込み読み出し可能な半導体メモリである。   A RAM (Random Access Memory) 506 is a semiconductor memory that can be written and read at any time and used as a working storage area as necessary when the MPU 502 executes various control programs.

ハードディスク装置508は、MPU502によって実行される各種の制御プログラムや各種のデータを記憶しておく記憶装置である。MPU502は、ハードディスク装置508に記憶されている所定の制御プログラムを読み出して実行することにより、後述する各種の制御処理を行えるようになる。   The hard disk device 508 is a storage device that stores various control programs executed by the MPU 502 and various data. The MPU 502 reads out and executes a predetermined control program stored in the hard disk device 508, thereby performing various control processes described later.

入力装置510は、例えばマウス装置やキーボード装置であり、図6のシステムの利用者により操作されると、その操作内容に対応付けられている各種情報の入力を取得し、取得した入力情報をMPU502に送付する。   The input device 510 is, for example, a mouse device or a keyboard device, and when operated by a user of the system of FIG. Send to.

表示装置512は例えば液晶ディスプレイであり、MPU502から送付される表示データに応じて各種のテキストや画像を表示する。
インタフェース装置514は、このコンピュータ500に接続される各種機器との間での各種情報の授受の管理を行う。
The display device 512 is, for example, a liquid crystal display, and displays various texts and images according to display data sent from the MPU 502.
The interface device 514 manages the exchange of various information with various devices connected to the computer 500.

記録媒体駆動装置516は、可搬型記録媒体518に記録されている各種の制御プログラムやデータの読み出しを行う装置である。MPU502は、可搬型記録媒体218に記録されている所定の制御プログラムを、記録媒体駆動装置516を介して読み出して実行することによって、後述する各種の制御処理を行うようにすることもできる。なお、可搬型記録媒体218としては、例えばUSB(Universal Serial Bus)規格のコネクタが備えられているフラッシュメモリ、CD−ROM(Compact Disc Read Only Memory)、DVD−ROM(Digital Versatile Disc Read Only Memory)などがある。   The recording medium driving device 516 is a device that reads various control programs and data recorded on the portable recording medium 518. The MPU 502 can read out and execute a predetermined control program recorded on the portable recording medium 218 via the recording medium driving device 516, thereby performing various control processes described later. As the portable recording medium 218, for example, a flash memory equipped with a USB (Universal Serial Bus) standard connector, a CD-ROM (Compact Disc Read Only Memory), a DVD-ROM (Digital Versatile Disc Only Only). and so on.

このようなコンピュータ500を用いて二分決定グラフの並列演算装置を構成するには、例えば、上述の各処理部における処理をMPU502に行わせるための制御プログラムを作成する。作成された制御プログラムはハードディスク装置508若しくは可搬型記録媒体518に予め格納しておく。そして、MPU502に所定の指示を与えてこの制御プログラムを読み出させて実行させる。こうすることで、二分決定グラフの並列演算装置が備えている機能がMPU502により提供される。   In order to configure a binary calculation graph parallel arithmetic apparatus using such a computer 500, for example, a control program for causing the MPU 502 to perform the processing in each processing unit described above is created. The created control program is stored in advance in the hard disk device 508 or the portable recording medium 518. Then, a predetermined instruction is given to the MPU 502 to read and execute the control program. By doing so, the MPU 502 provides the functions of the binary computation graph parallel computing device.

<<二分決定グラフの並列演算装置の処理>>
図11を参照して、二分決定グラフの並列演算装置20の処理について説明する。図11では、マスタデバイス201と、ローカルデバイス202、203の処理のシーケンスが示されているが、図6のようにさらにローカルデバイス204を含んでいても良い。
<< Processing of Parallel Processing Unit for Binary Decision Graph >>
With reference to FIG. 11, the process of the parallel arithmetic unit 20 of the binary decision graph will be described. In FIG. 11, the processing sequence of the master device 201 and the local devices 202 and 203 is shown, but the local device 204 may be further included as shown in FIG.

以下では、上述の配電網構成問題のように、各部分問題に対して、上記条件の幾何学的制約条件(C1)、電気的制約条件(C2)および条件(C−3)を満たす解が構成可能な場合を想定する。このような部分問題を以下では、「独立に計算できる部分問題」と呼ぶことがある。この場合、各部分問題に対して、局所最適化の条件(C−3)を満足する一つの解が得られる。しかしながら、上述のように、そうでない場合について以下の処理を変形することは可能である。   In the following, as in the distribution network configuration problem described above, for each subproblem, a solution satisfying the geometric constraint condition (C1), the electrical constraint condition (C2), and the condition (C-3) of the above conditions is obtained. Assume a configurable case. Hereinafter, such a partial problem may be referred to as a “subproblem that can be calculated independently”. In this case, one solution that satisfies the local optimization condition (C-3) is obtained for each subproblem. However, as described above, it is possible to modify the following processing for other cases.

まず処理が開始されると、S101でマスタデバイス201の部分問題分割部2013は、全体の問題を独立に計算できる部分問題に分割する。全体の問題Qは、Q=A・B・C・Dのように、部分問題A、B、C、DのAND演算を施した結果として得られるものとする。S101でマスタデバイス201の部分問題分割部2013は、全体問題Qを、部分問題A、B、C、Dに分割する。また、S101でマスタデバイス201の部分問題分割部2013は、分割された部分問題のそれぞれを、ローカルデバイス202、203に割り当てる。例えば、部分問題A、Bはローカルデバイス202に、部分問題C、Dをローカルデバイス203に割り当てる。   First, when processing is started, in S101, the partial problem dividing unit 2013 of the master device 201 divides the entire problem into partial problems that can be calculated independently. It is assumed that the entire problem Q is obtained as a result of performing an AND operation of the partial problems A, B, C, and D as Q = A · B · C · D. In S101, the partial problem division unit 2013 of the master device 201 divides the overall problem Q into partial problems A, B, C, and D. In S101, the sub-problem dividing unit 2013 of the master device 201 assigns the divided sub-problems to the local devices 202 and 203, respectively. For example, partial problems A and B are assigned to local device 202 and partial problems C and D are assigned to local device 203.

次のS102でマスタデバイス201の入出力制御部2011は、部分問題をローカルデバイス202、203に送信する。例えば、部分問題A、Bはローカルデバイス202に、部分問題C、Dをローカルデバイス203に送信する。   In next step S <b> 102, the input / output control unit 2011 of the master device 201 transmits the partial problem to the local devices 202 and 203. For example, the partial problems A and B are transmitted to the local device 202, and the partial problems C and D are transmitted to the local device 203.

S103でローカルデバイス202の入出力制御部2021は、マスタデバイス201から部分問題、たとえば部分問題A、Bを受信する。また、S103でローカルデバイス202は、受信した部分問題を部分問題記憶部2022に格納しても良い。   In step S <b> 103, the input / output control unit 2021 of the local device 202 receives partial problems, for example, partial problems A and B, from the master device 201. In S103, the local device 202 may store the received partial problem in the partial problem storage unit 2022.

S104でローカルデバイス203の入出力制御部2031は、マスタデバイス201から部分問題、たとえば部分問題C、Dを受信する。また、S104でローカルデバイス203は、受信した部分問題を部分問題記憶部2032に格納しても良い。S104の処理が終わると、S108に進む。   In step S <b> 104, the input / output control unit 2031 of the local device 203 receives partial problems, for example, partial problems C and D, from the master device 201. In S104, the local device 203 may store the received partial problem in the partial problem storage unit 2032. When the process of S104 ends, the process proceeds to S108.

S105でローカルデバイス202のBDD演算部2024は、マスタデバイス201から受信した部分問題の解の全てをBDDとして生成する。たとえば、部分問題AとBの解の全てをBDDとして生成する。この際、制約充足チェック部2025で、生成されるBDDが制約条件を満たすかどうかチェックをする。また、S105でローカルデバイス202のBDD演算部2024は、生成されたBDDをBDD記憶部2023に格納しても良い。S105の処理が終わると、S106に進む。   In step S <b> 105, the BDD operation unit 2024 of the local device 202 generates all of the partial problem solutions received from the master device 201 as BDDs. For example, all the solutions of the partial problems A and B are generated as BDD. At this time, the constraint satisfaction check unit 2025 checks whether the generated BDD satisfies the constraint condition. In S105, the BDD operation unit 2024 of the local device 202 may store the generated BDD in the BDD storage unit 2023. When the process of S105 ends, the process proceeds to S106.

S106でローカルデバイス202のBDD演算部2024は、BDDが複数あればAND演算で一つにする。たとえば、部分問題AとBを表すBDDがあれば、図2AのようにBDD同士に対しAND演算を施し部分問題(A・B)の解を表すBDDを生成する。また、S106でローカルデバイス202のBDD演算部2024は、生成されたBDDをBDD記憶部2023に格納する。S106の処理が終わると、S107に進む。   In S106, if there are a plurality of BDDs, the BDD operation unit 2024 of the local device 202 makes one by AND operation. For example, if there is a BDD representing the subproblems A and B, an AND operation is performed on the BDDs as shown in FIG. 2A to generate a BDD representing the solution of the subproblem (A · B). In S106, the BDD operation unit 2024 of the local device 202 stores the generated BDD in the BDD storage unit 2023. When the process of S106 ends, the process proceeds to S107.

S107でローカルデバイス202の入出力制御部2021は、S106で生成されたBDDをマスタデバイス201に送信する。S107の処理が終わると、S111に進む。   In step S <b> 107, the input / output control unit 2021 of the local device 202 transmits the BDD generated in step S <b> 106 to the master device 201. When the process of S107 ends, the process proceeds to S111.

S104の次のS108でローカルデバイス203のBDD演算部2034は、マスタデバイス201から受信した部分問題の解の全てをBDDとして生成する。この際、制約充足チェック部2035で、生成されるBDDが制約条件を満たすかどうかチェックをする。たとえば、部分問題CとDの解の全てをBDDとして生成する。また、S108でローカルデバイス203のBDD演算部2034は、生成されたBDDをBDD記憶部2033に格納しても良い。S108の処理が終わると、S109に進む。   In S108 following S104, the BDD operation unit 2034 of the local device 203 generates all of the partial problem solutions received from the master device 201 as BDDs. At this time, the constraint satisfaction check unit 2035 checks whether the generated BDD satisfies the constraint condition. For example, all the solutions of the partial problems C and D are generated as BDD. In S108, the BDD operation unit 2034 of the local device 203 may store the generated BDD in the BDD storage unit 2033. When the process of S108 ends, the process proceeds to S109.

S109でローカルデバイス203のBDD演算部2034は、BDDが複数あればAND演算で一つにする。たとえば、部分問題CとDを表すBDDがあれば、図2AのようにBDD同士に対しAND演算を施し部分問題(C・D)の解を表すBDDを生成する。また、S109でローカルデバイス203のBDD演算部2034は、生成されたBDDをBDD記憶部2033に格納する。S109の処理が終わると、S110に進む。   In S109, if there are a plurality of BDDs, the BDD operation unit 2034 of the local device 203 unites them by AND operation. For example, if there is a BDD representing the subproblems C and D, an AND operation is performed on the BDDs as shown in FIG. 2A to generate a BDD representing the solution of the subproblem (C · D). In S109, the BDD operation unit 2034 of the local device 203 stores the generated BDD in the BDD storage unit 2033. When the process of S109 ends, the process proceeds to S110.

S110でローカルデバイス203の入出力制御部2031は、S109で生成されたBDDをマスタデバイス201に送信する。S110の処理が終わると、S111に進む。   In S110, the input / output control unit 2031 of the local device 203 transmits the BDD generated in S109 to the master device 201. When the processing of S110 ends, the process proceeds to S111.

S111でマスタデバイス201の入出力制御部2011は、ローカルデバイス202、203から送られた部分問題の解を表すBDDを受信する。受信したBDDをBDD記憶部2014に格納しても良い。BDD演算部2015は、ローカルデバイス202、203から送られた部分問題の解を表すBDDについてAND演算を行い、全体の問題Q=A・B・C・Dの解を表すBDDを生成する。この際、制約充足チェック部2016で、生成されるBDDが制約条件、たとえば配電網構成問題であれば上記条件(C−1)〜(C−3)を満たすかどうかチェックしても良い。全体問題Qに対する解が得られれば、処理は終了する。   In step S <b> 111, the input / output control unit 2011 of the master device 201 receives the BDD representing the solution of the partial problem sent from the local devices 202 and 203. The received BDD may be stored in the BDD storage unit 2014. The BDD operation unit 2015 performs an AND operation on the BDD representing the solution of the partial problem sent from the local devices 202 and 203, and generates a BDD representing the solution of the entire problem Q = A · B · C · D. At this time, the constraint satisfaction check unit 2016 may check whether or not the generated BDD satisfies the above conditions (C-1) to (C-3) if the generated BDD is a constraint condition, for example, a distribution network configuration problem. If a solution to the overall problem Q is obtained, the process ends.

図11に示された処理では、マスタデバイス201には部分問題は割り当てられていないが、マスタデバイス201にも部分問題を割り当てても良い。その場合、マスタデバイス201は、S105〜S106、またはS108〜S109の処理を行い、割り当てられた部分問題の解を表すBDDを作成する。そして、S111でマスタデバイス201のBDD演算部2014は、ローカルデバイス202、203から送られた部分問題の解を表すBDDとマスタデバイス201で得られた部分問題の解を表すBDDのAND演算を行い、全体問題の解を表すBDDを作成する。   In the processing shown in FIG. 11, the partial problem is not assigned to the master device 201, but the partial problem may be assigned to the master device 201. In that case, the master device 201 performs the processing of S105 to S106 or S108 to S109, and creates a BDD representing the solution of the assigned subproblem. In step S <b> 111, the BDD operation unit 2014 of the master device 201 performs an AND operation on the BDD that represents the solution of the subproblem sent from the local devices 202 and 203 and the BDD that represents the solution of the subproblem obtained by the master device 201. Create a BDD that represents the solution of the overall problem.

このように、BDDで制約充足解を圧縮して送信するため通信時間が短縮できる。BDDを分割して複数の計算機に部分問題を割り当て処理する際に、メモリ不足の可能性を低減しつつ、たとえば通信時間を減らして処理時間を低減する並列演算方法が提供される。   Thus, the communication time can be shortened because the constraint satisfaction solution is compressed and transmitted by BDD. When a BDD is divided and a partial problem is assigned to a plurality of computers for processing, a parallel operation method is provided that reduces the processing time by reducing the communication time, for example, while reducing the possibility of memory shortage.

<第2の実施形態>
図12〜15を参照しながら、第1の実施形態にしたがう二分決定グラフの並列演算装置および方法を説明する。
<Second Embodiment>
A parallel computation device and method for a binary decision graph according to the first embodiment will be described with reference to FIGS.

<<全般的説明>>
本実施形態では、マスタデバイスと複数のローカルデバイスからなるシステムで、制約充足問題を複数の部分問題に分割し、各部分問題を制約条件から二分決定グラフ(BDD)を構築し、それら部分問題の解に対応するBDDの論理積を取ることによって解く方法であって、マスタデバイスは複数の部分問題を、複数のローカルデバイスに割り当て、各ローカルデバイスでは、割り当てられた複数の部分問題の解であって、制約を満たす解を複数のBDDとして構築し、各ローカルデバイスは、得られた複数のBDDをマスタデバイスに、複数のBDDの少なくとも2つの論理積(AND演算)を、論理積を取ったBDDのサイズが論理積を取る前のBDDのサイズの和を超えないように取って得られるBDDを含むBDDを送信し、マスタデバイスは、部分問題の解に対応するBDDを受信し、それらの論理積を取ることで制約充足問題の解を得る並列演算方法および、その方法を用いる並列演算装置が提供される。
<< General description >>
In this embodiment, in a system composed of a master device and a plurality of local devices, a constraint satisfaction problem is divided into a plurality of subproblems, and a binary decision graph (BDD) is constructed for each subproblem from the constraint conditions. In this method, the master device assigns a plurality of subproblems to a plurality of local devices, and each local device is a solution of a plurality of subproblems assigned. Then, a solution satisfying the constraints is constructed as a plurality of BDDs, and each local device takes a logical product of at least two logical products (AND operations) of the plurality of BDDs using the obtained BDDs as a master device. The BDD including the BDD obtained so that the size of the BDD does not exceed the sum of the sizes of the BDD before taking the logical product is transmitted, and The device receives a BDD that corresponds to the solution of partial problems, parallel operation method to obtain a solution of the constraint satisfaction problem by taking a logical product of them and, parallel operation device is provided using the method.

図12は、第2の実施形態に従う並列処理の概要を説明する図である。より詳細には、図12は、配電網構成問題を含むBDD演算の処理を分散メモリ型並列計算システム30によって処理する場合を示す図である。計算システム30は、マスタデバイス301、ローカルデバイス302、303、304を含む。図12では、ローカルデバイス302、303、304をそれぞれ、ローカルデバイス1、2、3と呼んでいる。また、計算システム30は、3つのローカルデバイスを含んでいるが、3つより少ない数のローカルデバイスを含んでいてもよいし、3つより多くのローカルデバイスを含んでも良い。   FIG. 12 is a diagram illustrating an outline of parallel processing according to the second embodiment. More specifically, FIG. 12 is a diagram illustrating a case in which a BDD calculation process including a distribution network configuration problem is processed by the distributed memory type parallel calculation system 30. The computing system 30 includes a master device 301 and local devices 302, 303, and 304. In FIG. 12, the local devices 302, 303, and 304 are called local devices 1, 2, and 3, respectively. Also, the computing system 30 includes three local devices, but may include fewer than three local devices and may include more than three local devices.

図12の計算システム30では、マスタデバイス301は、全体の問題を複数の部分問題に分割し、複数のデバイスに割り当て、並列に計算する。このとき、一つのローカルデバイスには複数の部分問題を割り当てる。マスタデバイスには複数の部分問題を割り当ててもよいし、一つの部分問題を割り当てても良い。   In the calculation system 30 of FIG. 12, the master device 301 divides the entire problem into a plurality of partial problems, assigns them to a plurality of devices, and calculates in parallel. At this time, a plurality of partial problems are assigned to one local device. A plurality of partial problems may be assigned to the master device, or one partial problem may be assigned.

図12の計算システム30が、図6の計算システム20と異なる点は、(i)ローカルデバイス302、303、304で、割り当てられた複数の部分問題の解を表すBDDを生成し、複数のBDDのAND演算を行う際に、複数のBDDのサイズの和と、AND演算を行って得られるBDDのサイズを比較すること、(ii)複数のBDDのサイズの和と、AND演算を行って得られるBDDのサイズの比較の結果、AND演算を行って得られるBDDのサイズが複数のBDDのサイズの和より大きくなったらAND演算を中止すること、(iii)AND演算を行って得られるBDDのサイズが複数のBDDのサイズの和より大きい場合、ローカルデバイスはマスタデバイスに複数の部分問題の解を現す複数のBDDを送ること、である。   The calculation system 30 of FIG. 12 differs from the calculation system 20 of FIG. 6 in that (i) the local devices 302, 303, and 304 generate BDDs representing solutions of a plurality of assigned subproblems, and a plurality of BDDs are generated. When performing an AND operation, a comparison is made between the sum of the sizes of a plurality of BDDs and the size of a BDD obtained by performing the AND operation, and (ii) a sum of the sizes of a plurality of BDDs is obtained by performing an AND operation. If the size of the BDD obtained by performing the AND operation becomes larger than the sum of the sizes of the plurality of BDDs, the AND operation is stopped, and (iii) the BDD obtained by performing the AND operation. If the size is greater than the sum of the sizes of multiple BDDs, the local device sends multiple BDDs representing solutions of multiple partial problems to the master device.

このように計算システム30を構成することによって、通信するBDDが小さくなるように、あるいは全体の処理時間が小さくなるように、演算を行う場所(プロセッサを含むデバイス)を決めることで、通信のオーバーヘッドを削減できる。その結果、並列化により全体の計算時間を削減することができる。   By configuring the calculation system 30 as described above, communication overhead is determined by determining a place (a device including a processor) where the operation is performed so that the BDD to be communicated is reduced or the entire processing time is reduced. Can be reduced. As a result, the overall calculation time can be reduced by parallelization.

<<二分決定グラフの並列演算装置>>
図12のマスタデバイス301は、前実施形態のマスタデバイス201と同一または類似の構成を有する。すなわち、マスタデバイス301は、図示されていないが、入出力制御部3011、問題記憶部3012、部分問題分割部3013、BDD記憶部3014、BDD演算部3015、制約充足チェック部3016を含む。これらはそれぞれ、図7Aに示されているマスタデバイス201の入出力制御部2011、問題記憶部2012、部分問題分割部2013、BDD記憶部2014、BDD演算部2015、制約充足チェック部2016と同一または類似の構成および/または機能を有する。
<< Parallel processing unit for binary decision graph >>
The master device 301 in FIG. 12 has the same or similar configuration as the master device 201 of the previous embodiment. That is, the master device 301 includes an input / output control unit 3011, a problem storage unit 3012, a partial problem division unit 3013, a BDD storage unit 3014, a BDD operation unit 3015, and a constraint satisfaction check unit 3016 (not shown). These are the same as the input / output control unit 2011, the problem storage unit 2012, the partial problem division unit 2013, the BDD storage unit 2014, the BDD operation unit 2015, and the constraint satisfaction check unit 2016 of the master device 201 shown in FIG. It has a similar configuration and / or function.

図13は本実施形態の計算システム30で用いられるローカルデバイス302の機能ブロック図である。図13には、ローカルデバイス302の機能ブロックが示されているが、図12のローカルデバイス303、304の同一または類似の構成を有する。   FIG. 13 is a functional block diagram of the local device 302 used in the computing system 30 of this embodiment. FIG. 13 shows functional blocks of the local device 302, which has the same or similar configuration of the local devices 303 and 304 of FIG.

図13に示されているローカルデバイス302は、入出力制御部3021、部分問題分割部3022、BDD記憶部3023、BDD演算部3024、BDDサイズ計算部3025、BDDサイズ比較部3026、制約充足チェック部3027を含む。   The local device 302 illustrated in FIG. 13 includes an input / output control unit 3021, a partial problem division unit 3022, a BDD storage unit 3023, a BDD operation unit 3024, a BDD size calculation unit 3025, a BDD size comparison unit 3026, and a constraint satisfaction check unit. 3027.

入出力制御部3021は、マスタデバイス301とのデータの遣り取りを行う。たとえば、入出力制御部3021は、ローカルデバイス302に割り当てられた部分問題を受け取り、ローカルデバイス302に割り当てられた部分問題の解を現すBDDに関する情報をマスタデバイス301に出力する。ローカルデバイス302に複数の部分問題が割り当てられたとき、複数の部分問題の個々の解を表すBDDに関する情報をマスタデバイス301に出力されても良いし、複数の問題の解を表すBDD同士のAND演算を行って得られるBDDに関する情報をマスタデバイス301に出力されても良い。BDDの生成の際、後述の制約充足チェック部3025で制約条件を満たすことをチェックしながら、BDDが生成される。   The input / output control unit 3021 exchanges data with the master device 301. For example, the input / output control unit 3021 receives the partial problem assigned to the local device 302, and outputs to the master device 301 information related to the BDD that represents the solution of the partial problem assigned to the local device 302. When a plurality of subproblems are assigned to the local device 302, information regarding the BDD representing individual solutions of the plurality of subproblems may be output to the master device 301, or AND between BDDs representing the solutions of the plurality of problems. Information regarding the BDD obtained by performing the calculation may be output to the master device 301. When generating the BDD, the BDD is generated while checking that the constraint satisfaction check unit 3025 described later satisfies the constraint condition.

BDD記憶部3023は、複数の問題の解を表すBDDを格納する。また、BDD記憶部3023には、複数の問題の解を表すBDD同士のAND演算を行って得られるBDDが格納されても良い。   The BDD storage unit 3023 stores BDDs representing solutions for a plurality of problems. The BDD storage unit 3023 may store BDDs obtained by performing an AND operation between BDDs that represent solutions to a plurality of problems.

BDD演算部3024は、本デバイスに割り当てられた部分問題、たとえば部分問題AとBに対して、二分木グラフから縮約を繰り返し、BDDを得る。   The BDD operation unit 3024 repeats contraction from the binary tree graph for subproblems assigned to this device, for example, subproblems A and B, to obtain BDDs.

また、BDD演算部3024は、部分問題AとBのそれぞれに対して得られたBDD同士のAND演算を実行し、部分問題(A・B)に対する解を表すBDDを生成する。   Further, the BDD operation unit 3024 performs an AND operation between the BDDs obtained for the partial problems A and B, and generates a BDD representing a solution to the partial problem (A · B).

BDDサイズ計算部3025では、BDD演算部3024で生成しているBDDのサイズを計算する。BDDのサイズとは、節点の数であっても良い。   The BDD size calculation unit 3025 calculates the size of the BDD generated by the BDD calculation unit 3024. The BDD size may be the number of nodes.

BDDサイズ比較部3026では、複数のBDDのサイズを比較する。例えば、部分問題AとBのそれぞれに対して得られた解を表すBDDのサイズの和と、部分問題(A・B)に対する解を表すBDDのサイズを比較する。   The BDD size comparison unit 3026 compares the sizes of a plurality of BDDs. For example, the sum of the BDD sizes representing the solutions obtained for the subproblems A and B is compared with the size of the BDD representing the solution for the subproblem (A · B).

制約充足チェック部3026では、BDD演算部3024で生成されるBDDが、幾何学的制約条件(C1)、電気的制約条件(C2)および条件(C−3)を満たすかどうかをチェックする。ここでも、幾何学的制約条件(C1)、電気的制約条件(C2)および最適化条件(C−3)を局所的に満たす解をBDDで表したが、最適化条件(C−3)を局所的に満たす解の探索が出来ない場合は、幾何学的制約条件(C1)と電気的制約条件(C2)を満たす解であっても良い。   The constraint satisfaction check unit 3026 checks whether the BDD generated by the BDD operation unit 3024 satisfies the geometric constraint condition (C1), the electrical constraint condition (C2), and the condition (C-3). Also here, the solution that locally satisfies the geometric constraint condition (C1), the electrical constraint condition (C2), and the optimization condition (C-3) is represented by BDD, but the optimization condition (C-3) is In the case where a locally satisfying solution cannot be searched, a solution satisfying the geometric constraint condition (C1) and the electrical constraint condition (C2) may be used.

上述のローカルデバイス302は、部分問題AとBのそれぞれに対して得られた解を表すBDDのサイズの和と、部分問題(A・B)に対する解を表すBDDのサイズを比較し、サイズの小さい方をマスタデバイス301に送信するように構成されているが、部分問題がさらに小さな部分問題に分割可能であるときは、送信するBDDのサイズができるだけ小さくなるような組み合わせで、BDDに関する情報をマスタデバイス301に送信しても良い。   The local device 302 described above compares the size of the BDD representing the solution obtained for each of the subproblems A and B with the size of the BDD representing the solution for the subproblem (A · B). Although the smaller one is configured to be transmitted to the master device 301, when the partial problem can be divided into smaller partial problems, the information regarding the BDD is combined in such a way that the size of the BDD to be transmitted becomes as small as possible. It may be transmitted to the master device 301.

<<二分決定グラフの並列演算装置の処理>>
図14を参照して、二分決定グラフの並列演算装置30の処理について説明する。図14では、マスタデバイス301と、ローカルデバイス302、303の処理のシーケンスが示されているが、図6のようにさらにローカルデバイス304を含んでいても良い。
<< Processing of Parallel Processing Unit for Binary Decision Graph >>
With reference to FIG. 14, the process of the parallel arithmetic unit 30 of the binary decision graph will be described. In FIG. 14, the processing sequence of the master device 301 and the local devices 302 and 303 is shown, but the local device 304 may be further included as shown in FIG.

以下では、上述の配電網構成問題のように、各部分問題に対して、上記条件の幾何学的制約条件(C1)、電気的制約条件(C2)および条件(C−3)を満たす解が構成可能な場合を想定する。この場合、各部分問題に対して、局所最適化の条件(C−3)を満足する一つの解が得られる。しかしながら、上述のように、そうでない場合について以下の処理を変形することは可能である。   In the following, as in the distribution network configuration problem described above, for each subproblem, a solution satisfying the geometric constraint condition (C1), the electrical constraint condition (C2), and the condition (C-3) of the above conditions is obtained. Assume a configurable case. In this case, one solution that satisfies the local optimization condition (C-3) is obtained for each subproblem. However, as described above, it is possible to modify the following processing for other cases.

まず処理が開始されると、S201でマスタデバイス301の部分問題分割部3013は、全体の問題を独立に計算できる部分問題に分割する。全体の問題Qは、Q=A・B・C・Dのように、部分問題A、B、C、DのAND演算を施した結果として得られるものとする。S201でマスタデバイス301の部分問題分割部3013は、全体問題Qを、部分問題A、B、C、Dに分割する。また、S201でマスタデバイス301の部分問題分割部3013は、分割された部分問題のそれぞれを、ローカルデバイス302、303に割り当てる。例えば、部分問題A、Bはローカルデバイス302に、部分問題C、Dをローカルデバイス303に割り当てる。   First, when the process is started, the sub-problem dividing unit 3013 of the master device 301 divides the entire problem into sub-problems that can be calculated independently in S201. It is assumed that the entire problem Q is obtained as a result of performing an AND operation of the partial problems A, B, C, and D as Q = A · B · C · D. In S201, the partial problem dividing unit 3013 of the master device 301 divides the entire problem Q into partial problems A, B, C, and D. In S201, the sub-problem dividing unit 3013 of the master device 301 allocates the divided sub-problems to the local devices 302 and 303, respectively. For example, partial problems A and B are assigned to local device 302 and partial problems C and D are assigned to local device 303.

次のS202でマスタデバイス301の入出力制御部3011は、部分問題をローカルデバイス302、303に送信する。例えば、部分問題A、Bはローカルデバイス302に、部分問題C、Dをローカルデバイス303に送信する。   In next step S <b> 202, the input / output control unit 3011 of the master device 301 transmits the partial problem to the local devices 302 and 303. For example, the partial problems A and B are transmitted to the local device 302, and the partial problems C and D are transmitted to the local device 303.

S203でローカルデバイス302の入出力制御部3021は、マスタデバイス301から部分問題、たとえば部分問題A、Bを受信する。また、S203でローカルデバイス302は、受信した部分問題を部分問題記憶部3022に格納しても良い。S203の処理が終わると、S205に進む。   In step S <b> 203, the input / output control unit 3021 of the local device 302 receives partial problems, for example, partial problems A and B, from the master device 301. In S203, the local device 302 may store the received partial problem in the partial problem storage unit 3022. When the process of S203 ends, the process proceeds to S205.

S204でローカルデバイス303の入出力制御部3031は、マスタデバイス301から部分問題、たとえば部分問題C、Dを受信する。また、S204でローカルデバイス303は、受信した部分問題を部分問題記憶部3032に格納しても良い。S204の処理が終わると、S209に進む。   In step S <b> 204, the input / output control unit 3031 of the local device 303 receives partial problems, for example, partial problems C and D, from the master device 301. In S204, the local device 303 may store the received partial problem in the partial problem storage unit 3032. When the process of S204 ends, the process proceeds to S209.

S205でローカルデバイス302のBDD演算部3024は、マスタデバイス301から受信した部分問題の解の全てをBDDとして生成する。たとえば、部分問題AとBの解の全てをBDDとして生成する。この際、制約充足チェック部3027で、生成されるBDDが制約条件を満たすかどうかチェックをする。また、S205でローカルデバイス302のBDD演算部3024は、生成されたBDDをBDD記憶部3023に格納しても良い。S205の処理が終わると、S206に進む。   In step S <b> 205, the BDD operation unit 3024 of the local device 302 generates all of the partial problem solutions received from the master device 301 as BDDs. For example, all the solutions of the partial problems A and B are generated as BDD. At this time, the constraint satisfaction check unit 3027 checks whether the generated BDD satisfies the constraint condition. In S205, the BDD operation unit 3024 of the local device 302 may store the generated BDD in the BDD storage unit 3023. When the processing of S205 ends, the process proceeds to S206.

S206でローカルデバイス302のBDDサイズ演算部3025は、S205で生成した部分問題の解を表すBDD、たとえば部分問題A、Bの解を表すBDDのサイズ和S1を計算する。S206の処理が終わると、S207に進む。   In S206, the BDD size calculation unit 3025 of the local device 302 calculates the BDD representing the solution of the partial problem generated in S205, for example, the BDD size sum S1 representing the solutions of the partial problems A and B. When the process of S206 ends, the process proceeds to S207.

S207でローカルデバイス302のBDD演算部3024はS206で生成されたBDDが複数あれば、それらBDD同士でAND演算を行い、一つにする。たとえば、部分問題AとBを表すBDDがあれば、図2AのようにBDD同士に対しAND演算を施し部分問題(A・B)の解を表すBDDを生成する。この際、制約充足チェック部3027で、生成されるBDDが制約条件、たとえば配電網構成問題であれば上記条件(C−1)〜(C−3)を満たすかどうかチェックしても良い。また、S207でBDDサイズ比較部3026は、BDDを一つにする過程で、BDDのサイズがS206で求められたS1になったときは、処理を中止するように、BDD演算部3024に指令を出す。また、S207でローカルデバイス302のBDD演算部3024は、生成されたBDDをBDD記憶部3023に格納する。S207の処理が終わると、S208に進む。   In S207, if there are a plurality of BDDs generated in S206, the BDD operation unit 3024 of the local device 302 performs an AND operation between the BDDs to make one. For example, if there is a BDD representing the subproblems A and B, an AND operation is performed on the BDDs as shown in FIG. 2A to generate a BDD representing the solution of the subproblem (A · B). In this case, the constraint satisfaction check unit 3027 may check whether or not the generated BDD satisfies the above conditions (C-1) to (C-3) if the generated BDD is a constraint condition, for example, a distribution network configuration problem. In S207, the BDD size comparison unit 3026 instructs the BDD operation unit 3024 to stop the process when the BDD size becomes S1 obtained in S206 in the process of uniting the BDDs. put out. In S207, the BDD operation unit 3024 of the local device 302 stores the generated BDD in the BDD storage unit 3023. When the processing of S207 ends, the process proceeds to S208.

S208でローカルデバイス302の入出力制御部3021は、S207で生成されたBDDをマスタデバイス301に送信する。たとえば、部分問題AとBの解を表す2つBDDのサイズの和S1が、部分問題(A・B)の解を表すBDDのサイズより小さければ、ローカルデバイス302の入出力制御部3021は、部分問題AとBの解を表す2つBDDに関する情報をマスタデバイス301に送信する。部分問題AとBの解を表す2つBDDのサイズの和S1が、部分問題(A・B)の解を表すBDDのサイズより大きければ、ローカルデバイス302の入出力制御部3021は、部分問題(A・B)の解を表すBDDに関する情報をマスタデバイス301に送信する。複数のBDDに関する情報を送信する際には、それら複数のBDD同士で行われるべき演算、たとえばAND演算に関する情報も一緒に送信する。S208の処理が終わると、S213に進む。   In step S <b> 208, the input / output control unit 3021 of the local device 302 transmits the BDD generated in step S <b> 207 to the master device 301. For example, if the sum S1 of the sizes of the two BDDs representing the solutions of the subproblems A and B is smaller than the size of the BDD representing the solution of the subproblem (A · B), the input / output control unit 3021 of the local device 302 Information regarding two BDDs representing the solutions of the partial problems A and B is transmitted to the master device 301. If the sum S1 of the sizes of the two BDDs representing the solutions of the partial problems A and B is larger than the size of the BDD representing the solution of the partial problem (A · B), the input / output control unit 3021 of the local device 302 Information related to the BDD representing the solution of (A · B) is transmitted to the master device 301. When transmitting information related to a plurality of BDDs, an operation to be performed between the plurality of BDDs, for example, information related to an AND operation is also transmitted together. When the processing of S208 ends, the process proceeds to S213.

S204の次のS209では、ローカルデバイス303のBDD演算部3034は、マスタデバイス301から受信した部分問題の解の全てをBDDとして生成する。たとえば、部分問題CとDの解の全てをBDDとして生成する。この際、制約充足チェック部3037で、生成されるBDDが制約条件、たとえば配電網構成問題であれば上記条件(C−1)〜(C−3)を満たすかどうかチェックをする。また、S209でローカルデバイス303のBDD演算部3034は、生成されたBDDをBDD記憶部3033に格納しても良い。S209の処理が終わると、S210に進む。   In S209 following S204, the BDD operation unit 3034 of the local device 303 generates all of the partial problem solutions received from the master device 301 as BDDs. For example, all the solutions of the partial problems C and D are generated as BDD. At this time, the constraint satisfaction check unit 3037 checks whether or not the generated BDD satisfies the above conditions (C-1) to (C-3) if the generated BDD is a constraint condition, for example, a distribution network configuration problem. In S209, the BDD operation unit 3034 of the local device 303 may store the generated BDD in the BDD storage unit 3033. When the process of S209 ends, the process proceeds to S210.

S210でローカルデバイス303のBDDサイズ演算部3035は、S209で生成した部分問題の解を表すBDD、たとえば部分問題C、Dの解を表すBDDのサイズ和S2を計算する。S210の処理が終わると、S211に進む。   In S210, the BDD size calculator 3035 of the local device 303 calculates a BDD representing the solution of the partial problem generated in S209, for example, the size sum S2 of BDD representing the solutions of the partial problems C and D. When the processing of S210 ends, the process proceeds to S211.

S211でローカルデバイス303のBDD演算部3034はS210で生成されたBDDが複数あれば、それらBDD同士でAND演算を行い、一つにする。たとえば、部分問題CとDを表すBDDがあれば、図2AのようにBDD同士にAND演算を施し部分問題(C・D)の解を表すBDDを生成する。この際、制約充足チェック部3037で、生成されるBDDが制約条件を満たすかどうかチェックしても良い。また、S211でBDDサイズ比較部3036は、BDDを一つにする過程で、BDDのサイズがS210で求められたS2になったときは、処理を中止するように、BDD演算部3034に指令を出す。また、S211でローカルデバイス303のBDD演算部3034は、生成されたBDDをBDD記憶部3033に格納する。S211の処理が終わると、S212に進む。   In S211, if there are a plurality of BDDs generated in S210, the BDD operation unit 3034 of the local device 303 performs an AND operation between the BDDs to make one. For example, if there is a BDD representing partial problems C and D, an AND operation is performed on the BDDs as shown in FIG. 2A to generate a BDD representing the solution of the partial problem (C · D). At this time, the constraint satisfaction check unit 3037 may check whether the generated BDD satisfies the constraint condition. In S211, the BDD size comparison unit 3036 instructs the BDD calculation unit 3034 to stop the process when the BDD size becomes S2 obtained in S210 in the process of uniting the BDDs. put out. In S211, the BDD operation unit 3034 of the local device 303 stores the generated BDD in the BDD storage unit 3033. When the process of S211 is completed, the process proceeds to S212.

S212でローカルデバイス303の入出力制御部3031は、S211で生成されたBDDをマスタデバイス301に送信する。たとえば、部分問題CとDの解を表す2つBDDのサイズの和S2が、部分問題(C・D)の解を表すBDDのサイズより小さければ、ローカルデバイス303の入出力制御部3031は、部分問題CとDの解を表す2つBDDに関する情報をマスタデバイス301に送信する。部分問題CとDの解を表す2つBDDのサイズの和S2が、部分問題(C・D)の解を表すBDDのサイズより大きければ、ローカルデバイス303の入出力制御部3031は、部分問題(C・D)の解を表すBDDに関する情報をマスタデバイス301に送信する。複数のBDDに関する情報を送信する際には、それら複数のBDD同士で行われるべき演算、たとえばAND演算に関する情報も一緒に送信する。S212の処理が終わると、S213に進む。   In step S <b> 212, the input / output control unit 3031 of the local device 303 transmits the BDD generated in step S <b> 211 to the master device 301. For example, if the sum S2 of the sizes of the two BDDs representing the solutions of the subproblems C and D is smaller than the size of the BDD representing the solution of the subproblem (C · D), the input / output control unit 3031 of the local device 303 Information regarding two BDDs representing solutions of the partial problems C and D is transmitted to the master device 301. If the sum S2 of the sizes of the two BDDs representing the solutions of the subproblems C and D is larger than the size of the BDD representing the solution of the subproblem (C · D), the input / output control unit 3031 of the local device 303 Information regarding the BDD representing the solution of (C · D) is transmitted to the master device 301. When transmitting information related to a plurality of BDDs, an operation to be performed between the plurality of BDDs, for example, information related to an AND operation is also transmitted together. When the process of S212 ends, the process proceeds to S213.

S213でマスタデバイス301の入出力制御部3011は、ローカルデバイス302、303から送られた部分問題の解を表すBDDを受信する。受信したBDDをBDD記憶部3014に格納しても良い。BDD演算部3015は、ローカルデバイス302、303から複数の部分問題の解を表わすBDDが別々に送られてきたときは、それらの間の演算を行う。このような処理を図14では、種類指定のBDD演算と呼んでいる。さらに、BDD演算部3015は、各ローカルデバイスに割り当てられた複数の部分問題の解を表す一つのBDDについてAND演算を行い、全体の問題Q=A・B・C・Dの解を表すBDDを生成する。この際、制約充足チェック部3027で、生成されるBDDが制約条件を満たすかどうかチェックしても良い。全体問題Qに対する解が得られれば、処理は終了する。   In step S <b> 213, the input / output control unit 3011 of the master device 301 receives the BDD that represents the solution to the partial problem transmitted from the local devices 302 and 303. The received BDD may be stored in the BDD storage unit 3014. When BDDs representing solutions of a plurality of partial problems are separately sent from the local devices 302 and 303, the BDD calculation unit 3015 performs a calculation between them. In FIG. 14, such a process is called a type-specified BDD operation. Further, the BDD operation unit 3015 performs an AND operation on one BDD that represents a solution of a plurality of subproblems assigned to each local device, and obtains a BDD that represents the solution of the entire problem Q = A · B · C · D. Generate. At this time, the constraint satisfaction check unit 3027 may check whether the generated BDD satisfies the constraint condition. If a solution to the overall problem Q is obtained, the process ends.

<<変形例>>
図15〜16を参照して、第2の実施形態の変形例を説明する。
<< Modification >>
A modification of the second embodiment will be described with reference to FIGS.

上記実施形態では、各ローカルデバイスは次のような処理を行う。まず、割り当てられた部分問題の制約を満たす解の全ての集合をBDDとして構築する。その際、解候補が制約を満たすかどうかをシミュレーションなどにより計算する。そのローカルデバイスに割り当てられた部分問題が複数あれば、解を表すBDD同士のAND演算を行う。AND演算の途中でBDDのサイズが個々の部分問題の解を表すBDDのサイズの和と等しくなったら、演算を途中でやめ、構築途中のBDDを破棄する。AND演算が完了した場合は個々の部分問題の解を表すBDDを全て破棄し、AND演算によって得られるBDDを結果とする。   In the above embodiment, each local device performs the following processing. First, all the sets of solutions that satisfy the constraints of the assigned subproblem are constructed as BDDs. At that time, whether or not the solution candidate satisfies the constraint is calculated by simulation or the like. If there are a plurality of partial problems assigned to the local device, an AND operation between BDDs representing solutions is performed. If the BDD size becomes equal to the sum of the BDD sizes representing the solutions of the individual subproblems during the AND operation, the operation is stopped halfway and the BDD being built is discarded. When the AND operation is completed, all the BDDs representing the solutions of the individual subproblems are discarded, and the BDD obtained by the AND operation is the result.

それに対して、本変形例では、各ローカルデバイスは次のような処理を行う。そのローカルデバイスに割り当てられた部分問題が複数あれば、それらのAND演算を行って得られるBDDに関する情報の通信にかかる時間Taと、BDDのまま通信する時間Tbを見積り、Taの方が小さい場合、複数の部分問題の解を表すBDDのAND演算をとり、一つにまとめられたBDDを結果とする。   On the other hand, in this modification, each local device performs the following processing. If there are a plurality of partial problems assigned to the local device, a time Ta required for communication of information related to BDD obtained by performing an AND operation thereof and a time Tb for communication while BDD is estimated, and Ta is smaller Then, an AND operation of BDDs representing solutions of a plurality of subproblems is taken, and the BDDs combined into one result are obtained.

このように、本変形例では、BDDのサイズではなく、BDDに関する情報を通信するための通信時間の大きさによって、ローカルデバイスからマスタデバイスに複数の部分問題のそれぞれの解を表すBDDに関する情報か、複数の部分問題の解を表すBDDを演算、たとえばAND演算を実行して得られるBDDを送信するかを決定する。   As described above, in this modification, the information about the BDD representing each solution of the plurality of partial problems from the local device to the master device is not based on the size of the BDD but the size of the communication time for communicating information about the BDD. Then, it is determined whether or not to transmit a BDD obtained by calculating a BDD representing a solution of a plurality of subproblems, for example, performing an AND operation.

一般に、通信時間は、BDDの節点数に比例する部分と、レイテンシーの部分を含む。たとえば、デバイス内の通信では、通信時間は、おおよそ、((節点数)−2)×(節点あたりの容量)/(スループット)+レイテンシーで見積もることができる。((節点数)−2)は、2つの終端節点に起因する。節点あたりの容量は例えば、12バイト、スループットは300Kバイト、レイテンシーは0.001ミリ秒を例示することができる。デバイス間通信では、レイテンシーはデバイス内通信の場合より大きくなる。たとえば、0.1ミリ秒であり得る。   In general, the communication time includes a portion proportional to the number of BDD nodes and a latency portion. For example, in communication within a device, the communication time can be estimated approximately by ((number of nodes) −2) × (capacity per node) / (throughput) + latency. ((Number of nodes) −2) is attributed to the two terminal nodes. For example, the capacity per node is 12 bytes, the throughput is 300 Kbytes, and the latency is 0.001 milliseconds. In inter-device communication, latency is greater than in intra-device communication. For example, it may be 0.1 milliseconds.

図15は、第2の実施形態に従う並列処理の変形例を行うためのローカルデバイス402の機能ブロックの例を示す図である。   FIG. 15 is a diagram illustrating an example of functional blocks of the local device 402 for performing a modification of parallel processing according to the second embodiment.

図15に示されているローカルデバイス402は、図12に示されているローカルデバイス302の代わりに計算システム30で使用され得る。   The local device 402 shown in FIG. 15 may be used in the computing system 30 instead of the local device 302 shown in FIG.

図15に示されているローカルデバイス402は、入出力制御部4021、部分問題分割部4022、BDD記憶部4023、BDD演算部4024、通信時間推定部4025、通信時間比較部4026、制約充足チェック部4027を含む。入出力制御部4021、部分問題分割部4022、BDD記憶部4023、BDD演算部4024、制約充足チェック部4027については、図13に示されているローカルデバイス302の入出力制御部3021、部分問題分割部3022、BDD記憶部3023、BDD演算部3024、制約充足チェック部3027と同一または類似の構成および/または機能を有するので、説明を省略する。   The local device 402 shown in FIG. 15 includes an input / output control unit 4021, a partial problem division unit 4022, a BDD storage unit 4023, a BDD operation unit 4024, a communication time estimation unit 4025, a communication time comparison unit 4026, and a constraint satisfaction check unit. 4027 included. For the input / output control unit 4021, the partial problem division unit 4022, the BDD storage unit 4023, the BDD calculation unit 4024, and the constraint satisfaction check unit 4027, the input / output control unit 3021 of the local device 302 shown in FIG. Since the configuration and / or function is the same as or similar to that of the unit 3022, the BDD storage unit 3023, the BDD operation unit 3024, and the constraint satisfaction check unit 3027, description thereof will be omitted.

通信時間推定部4025は、BDD演算部4024で生成しているBDDを通信するための通信時間を推定する。   The communication time estimation unit 4025 estimates a communication time for communicating the BDD generated by the BDD calculation unit 4024.

通信時間比較部4026では、複数のBDDのそれぞれを通信するための通信時間を比較する。例えば、部分問題AとBのそれぞれに対して得られた解を表すBDDを通信するための通信時間の和と、部分問題(A・B)に対する解を表すBDDを通信するための通信時間を比較する。   The communication time comparison unit 4026 compares the communication time for communicating each of the plurality of BDDs. For example, the sum of communication times for communicating BDDs representing solutions obtained for subproblems A and B and the communication time for communicating BDDs representing solutions for subproblems (A · B) Compare.

図16は、マスタデバイス301、ローカルデバイス402、ローカルデバイス403によって構成される二分決定グラフの並列演算装置30の処理を示す図である。   FIG. 16 is a diagram illustrating processing of the parallel computation device 30 of the binary decision graph configured by the master device 301, the local device 402, and the local device 403.

S301は図14のS201と同一の処理である。ただし、マスタデバイス301の部分問題分割部3013は、分割された部分問題のそれぞれを、ローカルデバイス402、403に割り当てる。例えば、部分問題A、Bはローカルデバイス402に、部分問題C、Dをローカルデバイス403に割り当てる。   S301 is the same process as S201 of FIG. However, the sub-problem dividing unit 3013 of the master device 301 assigns the divided sub-problems to the local devices 402 and 403, respectively. For example, the partial problems A and B are assigned to the local device 402, and the partial problems C and D are assigned to the local device 403.

次のS302でマスタデバイス301の入出力制御部3011は、部分問題をローカルデバイス402、403に送信する。例えば、部分問題A、Bはローカルデバイス402に、部分問題C、Dをローカルデバイス403に送信する。   In next step S <b> 302, the input / output control unit 3011 of the master device 301 transmits the partial problem to the local devices 402 and 403. For example, the partial problems A and B are transmitted to the local device 402, and the partial problems C and D are transmitted to the local device 403.

S303でローカルデバイス402の入出力制御部4021は、マスタデバイス301から部分問題、たとえば部分問題A、Bを受信する。また、S303でローカルデバイス402は、受信した部分問題を部分問題記憶部4022に格納しても良い。S303の処理が終わると、S305に進む。   In step S <b> 303, the input / output control unit 4021 of the local device 402 receives partial problems such as partial problems A and B from the master device 301. In S303, the local device 402 may store the received partial problem in the partial problem storage unit 4022. When the process of S303 ends, the process proceeds to S305.

S304でローカルデバイス403の入出力制御部4031は、マスタデバイス301から部分問題、たとえば部分問題C、Dを受信する。また、S304でローカルデバイス403は、受信した部分問題を部分問題記憶部4032に格納しても良い。S304の処理が終わると、S309に進む。   In step S <b> 304, the input / output control unit 4031 of the local device 403 receives partial problems, for example, partial problems C and D, from the master device 301. In S304, the local device 403 may store the received partial problem in the partial problem storage unit 4032. When the process of S304 ends, the process proceeds to S309.

S203でローカルデバイス402のBDD演算部4024は、マスタデバイス301から受信した部分問題の解の全てをBDDとして生成する。たとえば、部分問題AとBの解の全てをBDDとして生成する。この際、制約充足チェック部4027で、生成されるBDDが制約条件を満たすかどうかチェックをする。また、S305でローカルデバイス402のBDD演算部4024は、生成されたBDDをBDD記憶部4023に格納しても良い。S305の処理が終わると、S306に進む。   In step S <b> 203, the BDD operation unit 4024 of the local device 402 generates all of the partial problem solutions received from the master device 301 as BDDs. For example, all the solutions of the partial problems A and B are generated as BDD. At this time, the constraint satisfaction check unit 4027 checks whether the generated BDD satisfies the constraint condition. In S305, the BDD operation unit 4024 of the local device 402 may store the generated BDD in the BDD storage unit 4023. When the processing of S305 ends, the process proceeds to S306.

S306でローカルデバイス302の通信時間推定部4025は、S205で生成した部分問題の解を表すBDD、たとえば部分問題A、Bの解を表すBDDを通信するために必要な通信時間T1を計算する。S306の処理が終わると、S307に進む。   In S306, the communication time estimation unit 4025 of the local device 302 calculates a communication time T1 necessary for communicating the BDD representing the solution of the partial problem generated in S205, for example, the BDD representing the solutions of the partial problems A and B. When the process of S306 ends, the process proceeds to S307.

S307でローカルデバイス402のBDD演算部4024はS303で生成されたBDDが複数あれば、それらBDD同士でAND演算を行い、一つにする。たとえば、部分問題AとBを表すBDDがあれば、図2AのようにBDD同士に対しAND演算を施し部分問題(A・B)の解を表すBDDを生成する。この際、制約充足チェック部4027で、生成されるBDDが制約条件を満たすかどうかチェックしても良い。また、S307で通信時間比較部4026は、BDDを一つにする過程で、BDDを通信するために必要な通信時間がS306で求められたT1になったときは、処理を中止するように、BDD演算部4024に指令を出す。また、S307でローカルデバイス302のBDD演算部4024は、生成されたBDDをBDD記憶部4023に格納する。S307の処理が終わると、S308に進む。   In S307, if there are a plurality of BDDs generated in S303, the BDD operation unit 4024 of the local device 402 performs an AND operation between the BDDs to make one. For example, if there is a BDD representing the subproblems A and B, an AND operation is performed on the BDDs as shown in FIG. 2A to generate a BDD representing the solution of the subproblem (A · B). At this time, the constraint satisfaction check unit 4027 may check whether the generated BDD satisfies the constraint condition. In S307, the communication time comparison unit 4026 cancels the process when the communication time required for communicating the BDD reaches T1 obtained in S306 in the process of making one BDD. A command is issued to the BDD operation unit 4024. In S307, the BDD operation unit 4024 of the local device 302 stores the generated BDD in the BDD storage unit 4023. When the processing of S307 ends, the process proceeds to S308.

S308でローカルデバイス402の入出力制御部4021は、S307で生成されたBDDをマスタデバイス301に送信する。たとえば、部分問題AとBの解を表す2つBDDを通信するために必要な通信時間の和T1が、部分問題(A・B)の解を表すBDDを通信するために必要な通信時間より小さければ、ローカルデバイス402の入出力制御部4021は、部分問題AとBの解を表す2つBDDに関する情報をマスタデバイス301に送信する。部分問題AとBの解を表す2つBDDを通信するために必要な通信時間の和T1が、部分問題(A・B)の解を表すBDDを通信するために必要な通信時間より大きければ、ローカルデバイス402の入出力制御部4021は、部分問題(A・B)の解を表すBDDに関する情報をマスタデバイス301に送信する。複数のBDDに関する情報を送信する際には、それら複数のBDD同士で行われるべき演算、たとえばAND演算に関する情報も一緒に送信する。S308の処理が終わると、S313に進む。   In step S <b> 308, the input / output control unit 4021 of the local device 402 transmits the BDD generated in step S <b> 307 to the master device 301. For example, the sum T1 of the communication time required to communicate two BDDs representing the solutions of the subproblems A and B is greater than the communication time required to communicate the BDD representing the solutions of the subproblems (A and B). If it is smaller, the input / output control unit 4021 of the local device 402 transmits to the master device 301 information related to two BDDs representing the solutions of the partial problems A and B. If the sum T1 of communication times required for communicating two BDDs representing the solutions of the subproblems A and B is greater than the communication time required for communicating the BDD representing the solutions of the subproblems (A and B) The input / output control unit 4021 of the local device 402 transmits to the master device 301 information related to the BDD representing the solution of the partial problem (A / B). When transmitting information related to a plurality of BDDs, an operation to be performed between the plurality of BDDs, for example, information related to an AND operation is also transmitted together. When the processing of S308 ends, the process proceeds to S313.

S304の次のS309では、ローカルデバイス403のBDD演算部4034は、マスタデバイス301から受信した部分問題の解の全てをBDDとして生成する。たとえば、部分問題CとDの解の全てをBDDとして生成する。この際、制約充足チェック部4037で、生成されるBDDが制約条件を満たすかどうかチェックをする。また、S309でローカルデバイス403のBDD演算部4034は、生成されたBDDをBDD記憶部4033に格納しても良い。S309の処理が終わると、S310に進む。   In S 309 subsequent to S 304, the BDD operation unit 4034 of the local device 403 generates all of the partial problem solutions received from the master device 301 as BDD. For example, all the solutions of the partial problems C and D are generated as BDD. At this time, the constraint satisfaction check unit 4037 checks whether the generated BDD satisfies the constraint condition. In S309, the BDD operation unit 4034 of the local device 403 may store the generated BDD in the BDD storage unit 4033. When the process of S309 ends, the process proceeds to S310.

S310でローカルデバイス403のBDDサイズ演算部4035は、S309で生成した部分問題の解を表すBDD、たとえば部分問題C、Dの解を表すBDDを通信するために必要な通信時間の和T2を計算する。S310の処理が終わると、S311に進む。   In S310, the BDD size calculation unit 4035 of the local device 403 calculates the sum T2 of communication time necessary for communicating the BDD representing the solution of the partial problem generated in S309, for example, the BDD representing the solutions of the partial problems C and D. To do. When the process of S310 ends, the process proceeds to S311.

S311でローカルデバイス403のBDD演算部4034はS310で生成されたBDDが複数あれば、それらBDD同士でAND演算を行い、一つにする。たとえば、部分問題CとDを表すBDDがあれば、図2AのようにBDD同士にAND演算を施し部分問題(C・D)の解を表すBDDを生成する。この際、制約充足チェック部4037で、生成されるBDDが制約条件を満たすかどうかチェックしても良い。また、S311で通信時間比較部4036は、BDDを一つにする過程で、BDDを通信するために必要な通信時間がS310で求められたT2になったときは、処理を中止するように、BDD演算部4034に指令を出す。また、S311でローカルデバイス403のBDD演算部4034は、生成されたBDDをBDD記憶部4033に格納する。S311の処理が終わると、S312に進む。   In S311, if there are a plurality of BDDs generated in S310, the BDD operation unit 4034 of the local device 403 performs an AND operation between the BDDs to make one. For example, if there is a BDD representing partial problems C and D, an AND operation is performed on the BDDs as shown in FIG. 2A to generate a BDD representing the solution of the partial problem (C · D). At this time, the constraint satisfaction check unit 4037 may check whether the generated BDD satisfies the constraint condition. In S311, the communication time comparison unit 4036 cancels the process when the communication time required for communicating the BDD reaches T2 obtained in S310 in the process of uniting the BDD. A command is issued to the BDD operation unit 4034. In S <b> 311, the BDD operation unit 4034 of the local device 403 stores the generated BDD in the BDD storage unit 4033. When the process of S311 ends, the process proceeds to S312.

S312でローカルデバイス403の入出力制御部4031は、S311で生成されたBDDをマスタデバイス301に送信する。たとえば、部分問題CとDの解を表す2つBDDを通信するために必要な通信時間の和T2が、部分問題(C・D)の解を表すBDDを通信するために必要な通信時間より小さければ、ローカルデバイス403の入出力制御部4031は、部分問題CとDの解を表す2つBDDに関する情報をマスタデバイス301に送信する。部分問題CとDの解を表す2つBDDを通信するために必要な通信時間の和T2が、部分問題(C・D)の解を表すBDDを通信するために必要な通信時間より大きければ、ローカルデバイス403の入出力制御部4031は、部分問題(C・D)の解を表すBDDに関する情報をマスタデバイス301に送信する。複数のBDDに関する情報を送信する際には、それら複数のBDD同士で行われるべき演算、たとえばAND演算に関する情報も一緒に送信する。S312の処理が終わると、S313に進む。   In step S <b> 312, the input / output control unit 4031 of the local device 403 transmits the BDD generated in step S <b> 311 to the master device 301. For example, the sum of communication times T2 required to communicate two BDDs representing solutions of the subproblems C and D is greater than the communication time required to communicate BDD representing the solutions of the subproblems (C · D). If it is smaller, the input / output control unit 4031 of the local device 403 transmits information about two BDDs representing the solutions of the partial problems C and D to the master device 301. If the sum T2 of communication times required for communicating two BDDs representing the solutions of the subproblems C and D is greater than the communication time required for communicating the BDD representing the solutions of the subproblems (C · D) The input / output control unit 4031 of the local device 403 transmits information related to the BDD representing the solution of the partial problem (C · D) to the master device 301. When transmitting information related to a plurality of BDDs, an operation to be performed between the plurality of BDDs, for example, information related to an AND operation is also transmitted together. When the process of S312 ends, the process proceeds to S313.

S313でマスタデバイス301の入出力制御部3011は、ローカルデバイス402、403から送られた部分問題の解を表すBDDを受信する。受信したBDDをBDD記憶部3014に格納しても良い。BDD演算部3015は、ローカルデバイス402、403から複数の部分問題の解を表わすBDDが別々に送られてきたときは、それらの間の演算を行う。さらに、BDD演算部3015は、各ローカルデバイスに割り当てられた複数の部分問題の解を表す一つのBDDについてAND演算を行い、全体の問題Q=A・B・C・Dの解を表すBDDを生成する。この際、制約充足チェック部3027で、生成されるBDDが制約条件を満たすかどうかチェックしても良い。全体問題Qに対する解が得られれば、処理は終了する。   In step S <b> 313, the input / output control unit 3011 of the master device 301 receives the BDD that represents the solution to the partial problem transmitted from the local devices 402 and 403. The received BDD may be stored in the BDD storage unit 3014. When BDDs representing solutions of a plurality of subproblems are separately sent from the local devices 402 and 403, the BDD operation unit 3015 performs an operation between them. Further, the BDD operation unit 3015 performs an AND operation on one BDD that represents a solution of a plurality of subproblems assigned to each local device, and obtains a BDD that represents the solution of the entire problem Q = A · B · C · D. Generate. At this time, the constraint satisfaction check unit 3027 may check whether the generated BDD satisfies the constraint condition. If a solution to the overall problem Q is obtained, the process ends.

以上の実施形態に関し、さらに以下の付記を開示する。
(付記1)
マスタデバイスとローカルデバイスとを備える二分決定グラフ処理システムであって、
前記マスタデバイスは、
全体問題を複数の部分問題に分割する部分問題分割部と、
前記複数の部分問題の少なくとも2つの部分問題を前記ローカルデバイスに送信し、前記ローカルデバイスから前記少なくとも2つの部分問題の解を表す1つの二分決定グラフ(BDD)を受信するマスタ入出力制御部と、
を含み、
前記ローカルデバイスは、
前記マスタデバイスから前記少なくとも2つの部分問題を受信し、前記少なくとも2つの部分問題の解を表す前記1つの二分決定グラフ(BDD)を送信するローカル入出力制御部と、
前記少なくとも2つの部分問題のそれぞれの解を表す二分決定グラフを作成し、前記それぞれの解を表す二分決定グラフが所定の条件を満たす場合には、前記少なくとも2つの部分問題のそれぞれの解を表す前記二分決定グラフ同士を演算して、前記1つの二分決定グラフを生成するローカルBDD演算部と、
前記ローカルBDD演算部で生成される二分決定グラフが制約条件を満たすかどうかを判定するローカル制約充足チェック部と、
を含む二分決定グラフ処理システム。
(付記2)
前記マスタデバイスは、前記ローカルデバイスが複数ある場合に、前記ローカルデバイスから送られた前記複数の部分問題の少なくとも2つの部分問題の解を表す二分決定グラフ同士を演算して、前記全体問題の解を表す二分決定グラフを生成するマスタBDD演算部を含む、付記1の二分決定グラフ処理システム。
(付記3)
前記ローカルデバイスはさらに、
前記部分問題のそれぞれの解を表す前記二分決定グラフのサイズの和、および演算して得られる前記1つの二分決定グラフのサイズを計算するBDDサイズ計算部と、
前記BDDサイズ計算部で計算された前記部分問題のそれぞれの解を表す前記二分決定グラフのサイズの和と、前記演算して得られる前記1つの二分決定グラフのサイズを比較するBDDサイズ比較部と、
を含み、
前記所定の条件は、前記部分問題のそれぞれの解を表す前記二分決定グラフのサイズの和が、演算して得られる前記1つの二分決定グラフのサイズより大きいことである、付記1または2の二分決定グラフ処理システム。
(付記4)
前記ローカルデバイスはさらに、
前記部分問題のそれぞれの解を表す前記二分決定グラフを前記マスタデバイスに通信するための通信時間の和、および演算して得られる前記1つの二分決定グラフを前記マスタデバイスに通信するための通信時間を計算する通信時間推定部と、
前記通信時間推定部で計算された前記部分問題のそれぞれの解を表す前記二分決定グラフを前記マスタデバイスに通信するための通信時間の和と、前記演算して得られる前記1つの二分決定グラフを前記マスタデバイスに通信するための通信時間を比較する通信時間比較部と、
を含み、
前記所定の条件は、前記部分問題のそれぞれの解を表す前記二分決定グラフを前記マスタデバイスに通信するための通信時間の和が、演算して得られる前記1つの二分決定グラフを前記マスタデバイスに通信するための通信時間より大きいことである、付記1または2の二分決定グラフ処理システム。
(付記5)
前記全体問題は、論理回路の出力関数の導出する問題、組合せに制約のあるスイッチのオンまたはオフの組合せを列挙する問題、組合せに制約のあるアイテムの選択または非選択の組合せを列挙する問題を含む、論理関数の計算として表現される問題である、付記1乃至4のいずれか一項の二分決定グラフ処理システム。
(付記6)
コンピュータとして構成されるマスタデバイスおよびコンピュータとして構成され、前記マスタデバイスとは異なるローカルデバイスによって処理される二分決定グラフ処理方法であって、
前記マスタデバイスが、全体問題を複数の部分問題に分割することと、
前記マスタデバイスが、前記複数の部分問題の少なくとも2つの部分問題を前記ローカルデバイスに送信することと、
前記ローカルデバイスが、前記マスタデバイスから前記少なくとも2つの部分問題を受信することと、
前記ローカルデバイスが、前記少なくとも2つの部分問題のそれぞれの解を表す二分決定グラフを生成することと、
前記ローカルデバイスが、前記生成される二分決定グラフが制約条件を満たすかどうかを判定することと、
前記ローカルデバイスが、前記それぞれの解を表す二分決定グラフが所定の条件を満たす場合には、前記部分問題のそれぞれの解を表す前記二分決定グラフ同士を演算して、1つの二分決定グラフを生成することと、
前記ローカルデバイスが、前記制約条件を満たすと判定された前記1つの二分決定グラフを前記マスタデバイスに送信することと
前記ローカルデバイスから前記少なくとも2つの部分問題の解を表す前記1つの二分決定グラフ(BDD)を受信することと、
を含む二分決定グラフ処理方法。
(付記7)
さらに、前記マスタデバイスは、前記ローカルデバイスが複数ある場合に、前記ローカルデバイスから送られた前記複数の部分問題の少なくとも2つの部分問題の解を表す二分決定グラフ同士を演算して、前記全体問題の解を表す二分決定グラフを生成することを含む、付記6の並列演算方法。
(付記8)
さらに、前記ローカルデバイスは、前記部分問題のそれぞれの解を表す前記二分決定グラフのサイズの和、および演算して得られる前記1つの二分決定グラフのサイズを計算し、前記計算された前記部分問題のそれぞれの解を表す前記二分決定グラフのサイズの和と、前記演算して得られる前記1つの二分決定グラフのサイズを比較することと、
を含み、
前記所定の条件は、前記部分問題のそれぞれの解を表す前記二分決定グラフのサイズの和が、演算して得られる前記1つの二分決定グラフのサイズより大きいことである、付記6または7の二分決定グラフ処理方法。
(付記8)
さらに、前記ローカルデバイスは、前記部分問題のそれぞれの解を表す前記二分決定グラフを前記マスタデバイスに通信するための通信時間の和、および演算して得られる前記1つの二分決定グラフを前記マスタデバイスに通信するための通信時間を計算し、前記計算された前記部分問題のそれぞれの解を表す前記二分決定グラフを前記マスタデバイスに通信するための通信時間の和と、前記演算して得られる前記1つの二分決定グラフを前記マスタデバイスに通信するための通信時間を比較することと、
を含み、
前記所定の条件は、前記部分問題のそれぞれの解を表す前記二分決定グラフを前記マスタデバイスに通信するための通信時間の和が、演算して得られる前記1つの二分決定グラフを前記マスタデバイスに通信するための通信時間より大きいことである、付記6または7の二分決定グラフ処理方法。
(付記10)
前記全体問題は、論理回路の出力関数の導出する問題、組合せに制約のあるスイッチのオンまたはオフの組合せを列挙する問題、組合せに制約のあるアイテムの選択または非選択の組合せを列挙する問題を含む、論理関数の計算として表現される問題である、付記6乃至9のいずれか一項の二分決定グラフ処理方法。
Regarding the above embodiment, the following additional notes are disclosed.
(Appendix 1)
A binary decision graph processing system comprising a master device and a local device,
The master device is
A sub-problem dividing unit that divides the entire problem into a plurality of sub-problems;
A master I / O controller that transmits at least two subproblems of the plurality of subproblems to the local device and receives a binary decision graph (BDD) representing solutions of the at least two subproblems from the local device; ,
Including
The local device is
A local input / output controller that receives the at least two subproblems from the master device and transmits the one binary decision graph (BDD) representing solutions of the at least two subproblems;
A binary decision graph representing each solution of the at least two subproblems is created, and if the binary decision graph representing the respective solutions satisfies a predetermined condition, the binary decision graph represents each solution of the at least two subproblems A local BDD computing unit that computes the binary decision graphs to generate the one binary decision graph;
A local constraint satisfaction check unit that determines whether the binary decision graph generated by the local BDD calculation unit satisfies a constraint condition;
A binary decision graph processing system.
(Appendix 2)
When there are a plurality of local devices, the master device calculates binary decision graphs representing solutions of at least two partial problems sent from the local device and solves the whole problem. The binary decision graph processing system according to appendix 1, including a master BDD calculation unit that generates a binary decision graph representing
(Appendix 3)
The local device further includes
A BDD size calculation unit for calculating the sum of the sizes of the binary decision graphs representing the respective solutions of the subproblem and the size of the one binary decision graph obtained by calculation;
A BDD size comparison unit that compares the sum of the sizes of the binary decision graphs representing the respective solutions of the subproblem calculated by the BDD size calculation unit and the size of the one binary decision graph obtained by the calculation; ,
Including
The dichotomy according to appendix 1 or 2, wherein the predetermined condition is that a sum of sizes of the binary decision graphs representing respective solutions of the subproblem is larger than a size of the one binary decision graph obtained by calculation. Decision graph processing system.
(Appendix 4)
The local device further includes
Sum of communication times for communicating the binary decision graph representing each solution of the subproblem to the master device, and communication time for communicating the one binary decision graph obtained by calculation to the master device A communication time estimation unit for calculating
A sum of communication times for communicating the binary decision graph representing each solution of the partial problem calculated by the communication time estimation unit to the master device, and the one binary decision graph obtained by the calculation A communication time comparison unit for comparing communication time for communicating with the master device;
Including
The predetermined condition is that the one binary decision graph obtained by computing a sum of communication times for communicating the binary decision graph representing each solution of the partial problem to the master device is stored in the master device. The binary decision graph processing system according to appendix 1 or 2, which is longer than the communication time for communication.
(Appendix 5)
The overall problem includes a problem of deriving an output function of a logic circuit, a problem of enumerating on / off combinations of switches having restrictions on combinations, and a problem of enumerating combinations of selection or non-selection of items having restrictions on combinations. The binary decision graph processing system according to any one of appendices 1 to 4, which is a problem expressed as a calculation of a logical function.
(Appendix 6)
A binary decision graph processing method configured as a master device configured as a computer and a computer configured as a computer and processed by a local device different from the master device,
The master device divides the overall problem into a plurality of partial problems;
The master device sends at least two subproblems of the plurality of subproblems to the local device;
The local device receives the at least two subproblems from the master device;
The local device generates a binary decision graph representing a solution of each of the at least two subproblems;
The local device determines whether the generated binary decision graph satisfies a constraint condition;
When the binary decision graph representing the respective solutions satisfies a predetermined condition, the local device calculates the binary decision graphs representing the respective solutions of the partial problem and generates one binary decision graph. To do
The local device transmitting the one binary decision graph determined to satisfy the constraint condition to the master device; and the one binary decision graph representing solutions of the at least two subproblems from the local device ( Receiving BDD),
A binary decision graph processing method including:
(Appendix 7)
Further, when there are a plurality of local devices, the master device calculates binary decision graphs representing solutions of at least two partial problems of the plurality of partial problems sent from the local device, and calculates the overall problem. The parallel calculation method according to appendix 6, including generating a binary decision graph representing the solution of
(Appendix 8)
Furthermore, the local device calculates the sum of the sizes of the binary decision graphs representing the respective solutions of the subproblems and the size of the one binary decision graph obtained by calculation, and calculates the calculated subproblems. Comparing the sum of the sizes of the binary decision graphs representing the respective solutions of the one and the size of the one binary decision graph obtained by the calculation;
Including
The dichotomy according to appendix 6 or 7, wherein the predetermined condition is that a sum of sizes of the binary decision graphs representing respective solutions of the subproblem is larger than a size of the one binary decision graph obtained by calculation. Decision graph processing method.
(Appendix 8)
Further, the local device is configured to obtain a sum of communication times for communicating the binary decision graph representing each solution of the subproblem to the master device, and the one binary decision graph obtained by calculation. A communication time for communicating with the master device, and a communication time for communicating the binary decision graph representing each solution of the calculated subproblem to the master device, and the computation obtained. Comparing the communication time for communicating one binary decision graph to the master device;
Including
The predetermined condition is that the one binary decision graph obtained by computing a sum of communication times for communicating the binary decision graph representing each solution of the partial problem to the master device is stored in the master device. The binary decision graph processing method according to appendix 6 or 7, which is longer than the communication time for communication.
(Appendix 10)
The overall problem includes a problem of deriving an output function of a logic circuit, a problem of enumerating on / off combinations of switches having restrictions on combinations, and a problem of enumerating combinations of selection or non-selection of items having restrictions on combinations. The binary decision graph processing method according to any one of appendices 6 to 9, which is a problem expressed as a calculation of a logical function.

20、30 二分決定グラフ処理システム
201、301 マスタデバイス
202、203、204、302、303、304、402、403 ローカルデバイス
2011、3011 (第一の)入出力制御部
2012 問題記憶部
2013 (第一の)部分問題分割部
2014 (第一の)BDD記憶部
2015 (第一の)DD演算部
2016 (第一の)制約充足チェック部
2021、2031、2041、3021、3031、3041、4021、4031 (第二の)入出力制御部
2022、2032、2042、3022、3032、3042、4022、4032 (第二の)部分問題記憶部
2023、2033、2043、3023、3033、3043、4023、4033 (第二の)BDD記憶部
2024、2034、2044、3024、3034、3044、4024、4034 (第二の)BDD演算部
2025、2035、2045、3027、3037、3047、4027、4037 (第二の)BDD演算部
3025、3035、3045 BDDサイズ計算部
3026、3036、3046 BDDサイズ比較部
4025、4035、4045 通信時間推定部
4026、4036、4046 通信時間比較部
20, 30 Binary decision graph processing system 201, 301 Master device 202, 203, 204, 302, 303, 304, 402, 403 Local device 2011, 3011 (first) input / output control unit 2012 problem storage unit 2013 (first (First) BDD storage unit 2015 (first) DD operation unit 2016 (first) constraint satisfaction check unit 2021, 2031, 2041, 3021, 3031, 3041, 4021, 4031 (Second) input / output control unit 2022, 2032, 2042, 3022, 3032, 3042, 4022, 4032 (second) partial problem storage unit 2023, 2033, 2043, 3023, 3033, 3043, 4023, 4033 (second) BDD storage units 2024, 2034, 2044, 024, 3034, 3044, 4024, 4034 (Second) BDD operation unit 2025, 2035, 2045, 3027, 3037, 3047, 4027, 4037 (Second) BDD operation unit 3025, 3035, 3045 BDD size calculation unit 3026 , 3036, 3046 BDD size comparison unit 4025, 4035, 4045 Communication time estimation unit 4026, 4036, 4046 Communication time comparison unit

Claims (6)

マスタデバイスとローカルデバイスとを備える二分決定グラフ処理システムであって、
前記マスタデバイスは、
全体問題を複数の部分問題に分割する部分問題分割部と、
前記複数の部分問題の少なくとも2つの部分問題を前記ローカルデバイスに送信し、前記ローカルデバイスから前記少なくとも2つの部分問題の解を表す1つの二分決定グラフ(BDD)を受信するマスタ入出力制御部と、
を含み、
前記ローカルデバイスは、
前記マスタデバイスから前記少なくとも2つの部分問題を受信し、前記少なくとも2つの部分問題の解を表す前記1つの二分決定グラフ(BDD)を送信するローカル入出力制御部と、
前記少なくとも2つの部分問題のそれぞれの解を表す二分決定グラフを作成し、前記それぞれの解を表す二分決定グラフが所定の条件を満たす場合には、前記少なくとも2つの部分問題のそれぞれの解を表す前記二分決定グラフ同士を演算して、前記1つの二分決定グラフを生成するローカルBDD演算部と、
前記ローカルBDD演算部で生成される二分決定グラフが制約条件を満たすかどうかを判定するローカル制約充足チェック部と、
を含む二分決定グラフ処理システム。
A binary decision graph processing system comprising a master device and a local device,
The master device is
A sub-problem dividing unit that divides the entire problem into a plurality of sub-problems;
A master I / O controller that transmits at least two subproblems of the plurality of subproblems to the local device and receives a binary decision graph (BDD) representing solutions of the at least two subproblems from the local device; ,
Including
The local device is
A local input / output controller that receives the at least two subproblems from the master device and transmits the one binary decision graph (BDD) representing solutions of the at least two subproblems;
A binary decision graph representing each solution of the at least two subproblems is created, and if the binary decision graph representing the respective solutions satisfies a predetermined condition, the binary decision graph represents each solution of the at least two subproblems A local BDD computing unit that computes the binary decision graphs to generate the one binary decision graph;
A local constraint satisfaction check unit that determines whether the binary decision graph generated by the local BDD calculation unit satisfies a constraint condition;
A binary decision graph processing system.
前記マスタデバイスは、前記ローカルデバイスが複数ある場合に、前記ローカルデバイスから送られた前記複数の部分問題の少なくとも2つの部分問題の解を表す二分決定グラフ同士を演算して、前記全体問題の解を表す二分決定グラフを生成する第一のBDD演算部を含む、請求項1の二分決定グラフ処理システム。   When there are a plurality of local devices, the master device calculates binary decision graphs representing solutions of at least two partial problems sent from the local device and solves the whole problem. The binary decision graph processing system according to claim 1, further comprising a first BDD operation unit that generates a binary decision graph representing 前記ローカルデバイスはさらに、
前記部分問題のそれぞれの解を表す前記二分決定グラフのサイズの和、および演算して得られる前記1つの二分決定グラフのサイズを計算するBDDサイズ計算部と、
前記BDDサイズ計算部で計算された前記部分問題のそれぞれの解を表す前記二分決定グラフのサイズの和と、前記演算して得られる前記1つの二分決定グラフのサイズを比較するBDDサイズ比較部と、
を含み、
前記所定の条件は、前記部分問題のそれぞれの解を表す前記二分決定グラフのサイズの和が、演算して得られる前記1つの二分決定グラフのサイズより大きいことである、請求項1または2の二分決定グラフ処理システム。
The local device further includes
A BDD size calculation unit for calculating the sum of the sizes of the binary decision graphs representing the respective solutions of the subproblem and the size of the one binary decision graph obtained by calculation;
A BDD size comparison unit that compares the sum of the sizes of the binary decision graphs representing the respective solutions of the subproblem calculated by the BDD size calculation unit and the size of the one binary decision graph obtained by the calculation; ,
Including
The predetermined condition is that a sum of sizes of the binary decision graphs representing respective solutions of the subproblem is larger than a size of the one binary decision graph obtained by calculation. Binary decision graph processing system.
前記ローカルデバイスはさらに、
前記部分問題のそれぞれの解を表す前記二分決定グラフを前記マスタデバイスに通信するための通信時間の和、および演算して得られる前記1つの二分決定グラフを前記マスタデバイスに通信するための通信時間を計算する通信時間推定部と、
前記通信時間推定部で計算された前記部分問題のそれぞれの解を表す前記二分決定グラフを前記マスタデバイスに通信するための通信時間の和と、前記演算して得られる前記1つの二分決定グラフを前記マスタデバイスに通信するための通信時間を比較する通信時間比較部と、
を含み、
前記所定の条件は、前記部分問題のそれぞれの解を表す前記二分決定グラフを前記マスタデバイスに通信するための通信時間の和が、演算して得られる前記1つの二分決定グラフを前記マスタデバイスに通信するための通信時間より大きいことである、請求項1または2の二分決定グラフ処理システム。
The local device further includes
Sum of communication times for communicating the binary decision graph representing each solution of the subproblem to the master device, and communication time for communicating the one binary decision graph obtained by calculation to the master device A communication time estimation unit for calculating
A sum of communication times for communicating the binary decision graph representing each solution of the partial problem calculated by the communication time estimation unit to the master device, and the one binary decision graph obtained by the calculation A communication time comparison unit for comparing communication time for communicating with the master device;
Including
The predetermined condition is that the one binary decision graph obtained by computing a sum of communication times for communicating the binary decision graph representing each solution of the partial problem to the master device is stored in the master device. The binary decision graph processing system according to claim 1 or 2, wherein the communication time is longer than a communication time for communication.
前記全体問題は、論理回路の出力関数の導出する問題、組合せに制約のあるスイッチのオンまたはオフの組合せを列挙する問題、組合せに制約のあるアイテムの選択または非選択の組合せを列挙する問題を含む、論理関数の計算として表現される問題である、請求項1乃至4のいずれか一項の二分決定グラフ処理システム。   The overall problem includes a problem of deriving an output function of a logic circuit, a problem of enumerating on / off combinations of switches having restrictions on combinations, and a problem of enumerating combinations of selection or non-selection of items having restrictions on combinations. The binary decision graph processing system according to any one of claims 1 to 4, which is a problem expressed as a calculation of a logical function. コンピュータとして構成されるマスタデバイスおよびコンピュータとして構成され、前記マスタデバイスとは異なるローカルデバイスによって処理される二分決定グラフ処理方法であって、
前記マスタデバイスが、全体問題を複数の部分問題に分割することと、
前記マスタデバイスが、前記複数の部分問題の少なくとも2つの部分問題を前記ローカルデバイスに送信することと、
前記ローカルデバイスが、前記マスタデバイスから前記少なくとも2つの部分問題を受信することと、
前記ローカルデバイスが、前記少なくとも2つの部分問題のそれぞれの解を表す二分決定グラフを生成することと、
前記ローカルデバイスが、前記生成される二分決定グラフが制約条件を満たすかどうかを判定することと、
前記ローカルデバイスが、前記それぞれの解を表す二分決定グラフが所定の条件を満たす場合には、前記部分問題のそれぞれの解を表す前記二分決定グラフ同士を演算して、1つの二分決定グラフを生成することと、
前記ローカルデバイスが、前記制約条件を満たすと判定された前記1つの二分決定グラフを前記マスタデバイスに送信することと
前記ローカルデバイスから前記少なくとも2つの部分問題の解を表す前記1つの二分決定グラフ(BDD)を受信することと、
を含む二分決定グラフ処理方法。
A binary decision graph processing method configured as a master device configured as a computer and a computer configured as a computer and processed by a local device different from the master device,
The master device divides the overall problem into a plurality of partial problems;
The master device sends at least two subproblems of the plurality of subproblems to the local device;
The local device receives the at least two subproblems from the master device;
The local device generates a binary decision graph representing a solution of each of the at least two subproblems;
The local device determines whether the generated binary decision graph satisfies a constraint condition;
When the binary decision graph representing the respective solutions satisfies a predetermined condition, the local device calculates the binary decision graphs representing the respective solutions of the partial problem and generates one binary decision graph. To do
The local device transmitting the one binary decision graph determined to satisfy the constraint condition to the master device; and the one binary decision graph representing solutions of the at least two subproblems from the local device ( Receiving BDD),
A binary decision graph processing method including:
JP2013025887A 2013-02-13 2013-02-13 Binary decision graph processing system and method Expired - Fee Related JP5987720B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013025887A JP5987720B2 (en) 2013-02-13 2013-02-13 Binary decision graph processing system and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013025887A JP5987720B2 (en) 2013-02-13 2013-02-13 Binary decision graph processing system and method

Publications (2)

Publication Number Publication Date
JP2014154107A JP2014154107A (en) 2014-08-25
JP5987720B2 true JP5987720B2 (en) 2016-09-07

Family

ID=51575880

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013025887A Expired - Fee Related JP5987720B2 (en) 2013-02-13 2013-02-13 Binary decision graph processing system and method

Country Status (1)

Country Link
JP (1) JP5987720B2 (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6451482B2 (en) * 2015-05-08 2019-01-16 富士通株式会社 Load distribution method, load distribution program, and information processing apparatus
KR102433254B1 (en) * 2015-10-28 2022-08-18 구글 엘엘씨 Processing computational graphs
JP6701937B2 (en) * 2016-05-10 2020-05-27 富士通株式会社 Search processing optimization program, search processing optimization method, and search processing optimization device
JP7048032B2 (en) * 2019-02-18 2022-04-05 日本電信電話株式会社 Data generator, data generation method, and program
CN117930669B (en) * 2024-03-20 2024-05-28 山西顺达胜业通信工程有限公司 Intelligent home remote control method based on Internet of things

Also Published As

Publication number Publication date
JP2014154107A (en) 2014-08-25

Similar Documents

Publication Publication Date Title
JP5987720B2 (en) Binary decision graph processing system and method
CN109783472A (en) Moving method, device, computer equipment and the storage medium of table data
CN109344476B (en) CIM model-based power distribution network single line diagram line branch structure generation method and device
CN105446952A (en) Method and system for processing semantic fragments
Segredo et al. Memetic algorithms and hyperheuristics applied to a multiobjectivised two-dimensional packing problem
Moreno Network reliability assessment using a cellular automata approach
US9116751B2 (en) Reconfigurable device, processing assignment method, processing arrangement method, information processing apparatus, and control method therefor
CN110764824A (en) Graph calculation data partitioning method on GPU
EP4012573A1 (en) Graph reconstruction method and apparatus
CN115225515B (en) Network survivability analysis method and related equipment
CN106156065B (en) A kind of file persistence method, delet method and relevant apparatus
Rubio-Solar et al. A FPGA optimization tool based on a multi-island genetic algorithm distributed over grid environments
Yildirim et al. Running genetic algorithms on Hadoop for solving high dimensional optimization problems
Ewetz et al. Fast clock scheduling and an application to clock tree synthesis
Shariff et al. An alternative heuristic for capacitated p-median problem (CPMP)
CN108520025B (en) Service node determination method, device, equipment and medium
US20230017693A1 (en) Topology design apparatus, topology design method and program
WO2011131248A1 (en) Method and apparatus for losslessly compressing/decompressing data
JP2007235351A (en) Method and device for designing network topology
Wybrow et al. Orthogonal hyperedge routing
Hosseini et al. A feasibility evaluation approach for time-evolving multi-item production–distribution networks
WO2018070376A1 (en) Region-securing device, region-securing method, and recording medium onto which region-securing program has been recorded
Post et al. Ensemble visualization of bottlenecks in planar flow networks
WO2017056168A1 (en) Information processing system and information processing method
Ahmad Hosseini et al. A penalty-based scaling algorithm for the multi-period multi-product distribution planning problem

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20151007

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160622

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160725

R150 Certificate of patent or registration of utility model

Ref document number: 5987720

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees