다이어그램에서 교차 모서리 수를 줄이는 방법은 무엇입니까?


10

다이어그램 편집기에서 작업하고 있습니다. 다이어그램 은 커넥터 ( 가장자리 )에 연결된 2D 모양 ( 노드 )을 표시 합니다.

노드를 선택하면 "해제" 되는 작업을 추가하고 싶습니다 . 가능한 경우 교차 가장자리 수를 줄이기 위해 위치를 조정합니다 (가장자리를 구부림 포인트로 그려야하는 경우에도 괜찮습니다). .

따라서 ( 토폴로지 ) 그래프 임베딩과 해당 노드의 하위 집합이 주어지면 교차 에지 수를 최소화하기 위해 해당 노드에서만 임베딩 ( 토폴로지 )을 수정 하는 그래프 알고리즘이 필요 합니다.

읽기에서 정점 그래프에 대한 및 검색 카 벨로와 Mohar (2013) , 나는이 문제를 가정 NP-어렵다. 따라서 주어진 매개 변수 값에 대해 알려진 다항식의 시간 복잡성을 갖는 매개 변수가있는 알고리즘 (예 : 교차 모서리 수)에 만족합니다. 이것은 가능해 보이지만 혼자서 그러한 알고리즘을 생각해내는 것은 쉽지 않습니다.

질문 :

  • 그러한 알고리즘을 어디에서 찾을 수 있습니까?
  • 존재합니까?
  • 기존 소프트웨어에서?
  • 그러한 작업에 대한 실질적인 경험이 있습니까? (이론적으로 좋아 보이는 것이 실제로는 좋지 않거나 그 반대 일 수도 있습니다.)

(이 질문을 가장 잘하는 곳은 확실하지 않습니다 : 여기, StackOverflow 또는 MathOverflow?)


1
이 질문이 StackOverflow에 더 적합하다고 가정하지만 비슷한 질문에 대한 불만족스러운 답변이 있음을 알았습니다. 이론 상으로는 도움이 될만한 답변을 드리겠습니다. 그러나 귀하의 질문이 여기로 마이그레이션되는 것이 가장 좋습니다.
mdxn

매우 심도있는 작업의 존재 여기가 수행됩니다 complang.tuwien.ac.at/cd/ebner/ebner05da.pdf
Dschoni

감사! 그뿐만 아니라 문제를 잘 읽을 수 있고 잘 알려진 접근법을 조사한 것입니다.
reinierpost

답변:


9

관찰 한 바와 같이 절대 최소 교차 수를 계산하는 것은 입니다. 그래프를 그리는 과정은 최소한 어렵습니다.NP-hard

질문에 제기 된 문제는 실제로 위보다 더 어렵고 더 복잡합니다. 결과의 크기 (영역)를 제한하면서 특정 크기와 모양의 그래프 노드를 고려하고 있습니다. 또한, 아직 결정되지 않은 미학의 개념이 요구된다. 분명히 우리는 일반적으로 절대 최소값을 사용하지 않는 휴리스틱을 원합니다. 이러한 응용 프로그램에서 발생하는 노드 수는 평균적으로 크지 않습니다. 작은 크기의 경우 그래프의 최소 모서리 교차 버전을 그리는 것이 가능할 수 있습니다.

자료 :
다음 자료, 특히 첫 자료에 관심이있을 수 있습니다.

다른 많은 자료들도 있습니다. 시작하는 데 도움이됩니다.

추가 생각과 관찰 :

다음은 노드의 모양과 크기에 관한 문제를 해결하기위한 아이디어입니다. 그래프 (무한한 작은 노드)가 주어지면 가장자리를 "푸시"하거나 구부리는 동안 각 노드를 확장합니다 (예 : 근접도를 제한하면서 스플라인 사용). 연쇄 반응을 시작할 수있는 다른 모서리 및 노드와 함께이 작업을 수행해야합니다. 평형을 효율적으로 계산할 수있는 방법 (예 : 분자 구조)을 살펴보십시오. 노드의 모양을 원하는 크기로 얻을 수 없으면 전체 다이어그램의 크기를 조정하십시오.

사용자는 무작위 알고리즘의 결과를 즐길 수 있습니다. 그들은 그들이 좋아하는 것을 얻을 때까지 귀하의 기능을 여러 번 사용할 수 있습니다. 이 경우 중복 계산을 피하십시오 (교차 번호를 다시 계산할 필요가 없음).


미학에 대한 논의를 피하기 위해 특별히 질문 에 토폴로지 를 추가했습니다 . 중요하지만 기본 문제에 크게 영향을 미치지 않는다고 생각 합니다. 노드의 토폴로지를 조정 한 (즉, 어떤 노드가 다른 노드로 둘러싸여 있는지) 별도의 단계에서 처리 할 수 ​​있다고 생각 합니다.
reinierpost

저는 15 년 전에 Graphviz를 처음 사용했습니다. 모든 종류의 그래프에 일주일에 한 번 정도 사용합니다. 나는 그 결과에 너무 감명받지 않았으며 훨씬 더 잘하기 어렵다는 것을 이해합니다.
reinierpost

나는 종종 graphviz.org를 방문하고 그들이 참조하는 논문을 읽었습니다. 그러나 나는 아직이 특정한 질문에 대한 답을 얻지 못했으며, 내 직업 설명에는 문헌에 익숙해지지 않았습니다. 그렇기 때문에 여기에 묻습니다.
reinierpost

그래도 참고 문헌에 감사드립니다-나는 이것이 현재의 연구 라는 것을 알았습니다 .
reinierpost

내가 시도 할 첫 번째 일은 대략 Shabbeer의 아이디어를 기반으로하는 사소한 알고리즘이므로 반드시 유용한 것은 아닙니다. 다시 감사합니다.
reinierpost
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.