I would like to implement the shortest pairs of disjointed Suurballe and Tarjan paths for **multigraphs** in the interpretation of Banerjee *et al.* (http://web.cs.iastate.edu/~pavan/papers/short.pdf, relying only on Section 3).

concerning **simple graphics**, this algorithm can be defined for a *G = (V, E)* simple graphic having a source *s* and non-negative onboard costs *c (u, v)* as following:

(1) Build the tree of the shortest way *T* rooted in *s* for *g* using the Dijkstra algorithm.

(2) reduce the cost on all the edges *(a B)* as *c (a, b) = c (a, b) + d (a) -d (b)*, or *d (a)* is the distance from the top *a* Summit *s*.

(3) Create an auxiliary graph *G = (V,, E)* as follows:

(3.1) together *V = V* and *E & # 39;* = empty,

(3.2) for each non-ridge edge (a, b) of *E T*:

(3.2.1) define *V* * as a set of nodes in the path between *a* and *b* in *T* with the exception of *b*,

(3.2.2) for each *v & # 39;* of *V* *: together *E = E & # 39; U {(v & # 39; b)}* and *it (v,, b) = c (a, b)*.

(4) Build a shortest path tree *T & # 39;* rooted in *s* for *G & # 39;* weighted by the *c & # 39;* function, using Dijkstra 's algorithm.

(5) Save the predecessor of each summit *X* in *T & # 39;* as *q (x)* and the tail of the edge not-in *g* which caused the insertion of the *(q (x), x)* in *G & # 39;*.

(6) Create pairs of edge-disjoint paths for each *v* of *V* As follows:

(6.1) Mark all the vertices of the shortest path of *v* at *s* in *g*.

(6.2) Generate the paths in two iterations of the step *Crossing* given below. In each iteration, a path of the shortest pairs is generated.

*Traversal:* To define *x = v*, the path must be empty and repeat the following steps until *x = s*. Yes *X* is marked then uncheck and add *(p (x), x)* to the path, or add *(y, x)* at the path, where *there* is the parent of *X* in *T*.

Could you help me, please, to rephrase the algorithm for multigraphs? I guess G, p (), q () and *Crossing* of section 3 in Banerjee paper *et al.* should be changed somehow, but I do not know how.