내가 작업중 인 프로젝트의 경우 높이가 제한된 임의의 스패닝 트리를 생성해야합니다.
기본적으로 다음을 수행합니다. 1) 스패닝 트리 생성 2) 실행 가능 여부를 확인합니다 (가능한 경우).
1) 최소 스패닝 트리 (Prim 또는 Kruskal)에서 시작하여 존재하지 않는 가장자리를 추가하면 사이클이 생성됩니다.이 사이클을 감지 하고이 사이클의 가장자리 중 하나를 제거하여 새로운 스패닝 트리를 제공합니다. 새로운 가장자리를 추가 하여이 스패닝 트리 ...
2) 특별한 정점이 있다고 가정 . 모든 정점경로의 길이 에 그보다 작아야한다 , 어디 주어진 매개 변수입니다.
이것을하는 더 나은 (영리한) 방법이 있습니까?
추신 : 나는 다른 제약 조건 (제 실수)을 지정하는 것을 잊었습니다. 정점의 정도도 제한되어야합니다.