I would suggest first finding the shortest path of all pairs using Floyd Warshall in O (n ^ 3) time, where n is the number of vertices.
After that, you can calculate the transition cost s1-> d1 and s2-> d2 along the shortest paths, which gives you an upper bound on the cost.
The only way to succeed is to use a common path. If so, then s1 and s2 converge at the vertex A, then follow the common path to the vertex B, and then split into d1 and d2.
, , A, B d (x, y), :
d(s1,A)+d(s2,A)+1.5*d(A,B)+d(B,d1)+d(B,d2)
O (n ^ 2), O (n ^ 2) + O (n ^ 3) = O (n ^ 3)