Если вы хотите минимизировать количество движений сегмента:
Вы можете преобразовать проблему сегмента линии в задачу графа: каждый сегмент является вершиной графа, и между двумя вершинами есть ребро, еслидва сегмента пересекаются друг с другом.Вы хотите найти минимальное количество вершин, которые содержат хотя бы одну конечную точку всех ребер (потому что, если вы переместите все эти сегменты, пересечений больше не будет).Это проблема покрытия вершин, которая, к сожалению, сложна для NP, но существуют алгоритмы аппроксимации.
см .: http://en.wikipedia.org/wiki/Vertex_cover_problem