I'm very new to this and looking for some help to point me in the right direction. I'm just beginning to learn the vernacular, so please excuse any errors.
I believe what I'm trying to solve is similar to the "traveling salesman problem". I have an unweighted, directed graph, where nodes will connect to between 1 and 6 other nodes. In total, there will be several thousand nodes. Since the connections are directional, just because you can travel from one node to another, doesn't mean you can travel back the same way. There will always be a path, however, for every node to eventually reach every other node.
With that in mind, I'm trying to locate an algorithm that can build a path/circuit to travel between a given set of nodes in the graph (more important), or even all nodes for that matter (less important, but desired). Backtracking is okay - it will definitely require traversing some of the same nodes more than once to find a path to other nodes.
Are there any algorithms already written in NetworkX (I'm using the python code) that can perform this? I have already written the code to build the graph (adding edges) that NetworkX can read. I'm just trying to find the right algorithm to feed it into at this point. Ideally, I'd give it the graph, a source node, and then a list of nodes for the circuit to build, and then it would find the optimal path to take through the graph to visit the given nodes.
It looks like nx.approximation.traveling_salesman_problem is close to what I'm looking for, except that it seems to only allow 1 visit per node (Hamiltonian?), which won't work with my graphs.
Thanks for any help or pointers. I don't mind reading up, just feeling a bit lost with there being so many different algorithms and not knowing what each do.
-Sherlock