We're given a weighted undirected graph with two sources and two destination vertices (say s1, s2, d1, d2). For going from source 1 to destination 1 and source 2 to destination 2 cost is defined as:
- cost of using an edge is equal to the weight if the edge is used only one of the two paths.
- cost of using an edge is equal to 1.5 times of the weight if the edge is used both of the paths (both s1->..->d1 and s2->..->d2).
In summary, if two paths use the same edge, the total cost increases "1.5 x weight" instead of "2 x weight". Using common edges is encouraged.
If paths uses an edge with opposing directions, it doesn't reduce the cost.
Any help, ideas, or suggestions to determine an algorithm which minimizes the total cost?