1

I am working on an approximate matching problem, where I have a set of paths in an unknown graph (A) and a partial graph (B), where B is incrementally generated and growing.

The problem is to match the edges in the paths to the graph B, while preserving the ordering of edges across the paths & graph. In my problem, the graph nodes are immaterial and the edges have non-unique labels upon which matching is performed. Also, the paths to be matched can have arbitrary edges added/deleted while matching is to the graph B. If I am not satisfied with the current solution, I can query an oracle, that gives me a more complete (bigger) graph (that's what I mean by growing) but I want to minimize the queries as the graph can potentially be infinite.

shauvik
  • 3,912
  • 2
  • 23
  • 18

1 Answers1

0

I tried to lookup standard solutions from assignment and graph isomorphism but didn’t find anything similar. So, here is a solution I came up with:

  1. I am using a branch and bound algorithm to match every edge in the paths to every edge in the graph (M X N table). For each possible assignment, I am keeping track of which other assignments are possible containing with the particular assignment
  2. The bounding condition (& feasibility) is defined by the same ordering of the edges in the graph as it is in the paths. Also, two paths cannot be mapped such that they violate each others ordering.
  3. If we are not happy with this solution, we can query the oracle, get a bigger graph and repeat 1 & 2. Otherwise, the technique outputs the possible edge mappings.

I am not sure if my solution still falls under branch & bound algorithms, as it no longer follows the standard branch & bound tree structure. Also, it would be great if anyone can point out optimizations or a better way to do this.

Note: At every iteration, N changes and the table grows horizontally. The biggest inefficiency is in step #2, which needs to be recomputed at every stage for safety (e.g., a loop being added in the graph invalidates previous solutions)

shauvik
  • 3,912
  • 2
  • 23
  • 18