title: Bipartite graph, shortest connection?
body: <p>I have a bipartite graph where each node has connections (edges) of various lengths to the nodes in the other partition. I want to select edges such that the sum of the lengths is as small as possible, but subject to the constraint that every node should have one and only one selected edge (if the number of nodes in the two partitions is equal - if not, one or more nodes will have no selected edge).</p>
  
  <p>I want to find this matching as quick as possible, but until now I have only found the brute-force approach of trying every possibility, which gives me a O(n!) algorith - which is infeasible. Does somebody have a suggestion for a better approach?</p>
  
  <p>My concrete problem is the following: I have observed more or less randomly moving 3D particles in two different timepoints. I want to know where each particle has moved, i.e. track each particle, assuming that their total movement is as short as possible.</p>