Algorithm for optimal reusing of components from a signal processing graph

31 Views Asked by At

I am working on a signal processing problem where I need to take components of one circuit and reuse them in another. For example, circuit $A$ has a certain number of transistors, resistors, capacitors, switches etc, and they need to be reused if possible in circuit $B$. In addition to node constraints (ie capacitor $c_i$ in graph $I$ can be repurposed as $c_j$ in graph $J$ if their capacitances are within an acceptable threshold), there is an edge constraint that objects that are proximal (ie a capacitor that is connected to a transistor) should stay "close" when reused. In other words, the optimization function needs to assess a penalty when objects that are close in circuit $A$ become far away in circuit $B$, where distance is measured by the number of edges separating two objects.

If the edge constraint were not there, this would be a simple assignment problem. For example, if there were 10 transistors in graph $A$ and 10 transistors in graph $B$, then there would be 100 binary variables and I could work out the constraints. However, the edge constraint explodes the size of the problem from a combinatoric perspective. For example, if the transistors are connected to five capacitors in both graphs, then that's 100*25 edge constraints if I'm counting correctly, which slows the computation down significantly.

I'm trying to find computationally efficient ways to approach this problem and was wondering if there are any classic approaches to this? Thanks!