Tôi đang làm việc trên một trình soạn thảo sơ đồ. Sơ đồ hiển thị hình dạng 2D ( nút ) được kết nối với đầu nối ( cạnh ).
Tôi muốn thêm một thao tác, đưa ra một lựa chọn các nút, "gỡ rối" chúng: nó định vị lại chúng để giảm số cạnh, nếu có thể (và sẽ ổn nếu các cạnh sẽ được vẽ bằng các điểm uốn cong) .
Vì vậy, tôi muốn một thuật toán đồ thị, đưa ra một nhúng đồ thị ( cấu trúc liên kết ) và một tập hợp con của các nút của nó, sửa đổi việc nhúng ( cấu trúc liên kết của nó ) trên các nút đó để giảm thiểu số lượng các cạnh chéo.
Từ việc đọc về đồ thị đỉnh và duyệt Cabello và Mohar (2013) , tôi cho rằng vấn đề này là NP-hard. Vì vậy, tôi sẽ hài lòng với thuật toán tham số hóa (ví dụ về số cạnh chéo) có độ phức tạp thời gian đã biết, đa thức, cho bất kỳ giá trị tham số đã cho nào. Điều này có vẻ khả thi, nhưng tôi không thấy dễ dàng tự mình nghĩ ra một thuật toán như vậy.
Câu hỏi:
- Tôi tìm một thuật toán như vậy ở đâu?
- Nó tồn tại?
- Trong phần mềm hiện có?
- Có bất kỳ kinh nghiệm thực tế quan trọng với một hoạt động như vậy? (Những gì có vẻ tốt trong lý thuyết có thể không tốt trong thực tế, hoặc ngược lại.)
(Tôi không chắc chắn nơi tốt nhất để đặt câu hỏi này: ở đây, trên StackOverflow hoặc MathOverflow?)