If you want to minimize the number of segment movements:
You can transform the line segment problem to a graph problem:
Each segment is a vertex of the graph and there is an edge between two vertices if the two segments intersect each other. You want to find the minimum number of vertices that contain at least one endpoint of all the edges (because if you move all of these segments there will be no more intersections). This is the vertex cover problem, which is unfortunately NP hard, buth there exist approximation algorithms.
see: http://en.wikipedia.org/wiki/Vertex_cover_problem