> 백엔드 개발 > C++ > 다른 모든 노드와 연결이 끊어진 그래프의 노드 수를 최대화합니다.

다른 모든 노드와 연결이 끊어진 그래프의 노드 수를 최대화합니다.

WBOY
풀어 주다: 2023-09-01 13:49:04
앞으로
532명이 탐색했습니다.

다른 모든 노드와 연결이 끊어진 그래프의 노드 수를 최대화합니다.

그래프에서 다른 모든 노드와 연결이 끊어진 노드의 수를 최대화하려면 연결이 가장 적은 노드를 찾아서 격리해야 합니다. 이 전략에서는 더 이상 해당 노드를 찾을 수 없을 때까지 가장 낮은 수준(최소 연결)의 노드를 반복적으로 제거해야 합니다. 그 결과 서로 분리되는 최대 노드 수를 제공하여 그래프에서 서로 다른 구성 요소를 지속적으로 격리합니다. 이 전략은 나머지 노드의 관련성이 무시할 수 있도록 하여 다른 노드와 관련되지 않은 그래프의 노드 수를 확장합니다.

사용방법

  • 탐욕스러운 방법

  • 최대 독립 집합(MIS) 방법

탐욕스러운 방법

그리디 방법은 그래프에서 다른 노드에 연결되지 않은 노드 수를 최대화하기 위해 가장 낮은 수준(최소 연결) 노드를 반복적으로 제거하는 것입니다. 해당 노드가 더 이상 없을 때까지 프로세스가 계속됩니다. 그래프에서 연결이 끊긴 구성 요소를 만들기 위해 가장 적게 연결된 노드를 반복적으로 제거하여 고아 노드 수를 늘립니다. 그리디 접근 방식은 연결이 끊긴 노드의 정확한 최대 수를 일관되게 보장하지 않을 수 있으므로 노드가 제거되는 순서에 따라 달라질 수 있다는 점을 기억하는 것이 중요합니다. 그럼에도 불구하고 그래프에서 연결되지 않은 노드의 수를 늘리는 간단하고 성공적인 전략을 제공합니다.

알고리즘

  • 초기 그래프 G부터 시작하세요.

  • 연결이 끊긴 노드를 저장하려면 처음에 빈 목록을 만듭니다.

  • 더 이상 노드를 삭제할 수 없을 때까지 다음 단계를 반복합니다.

  • a. 현재 그래프 G에서 가장 낮은 차수(최소 연결)를 갖는 노드를 식별합니다.

    b. 최소 차수가 동일한 노드가 여러 개 있는 경우 아무 노드나 선택하세요.

    c. 선택한 노드를 그래프에서 제거한 후 연결이 끊긴 노드 목록에 추가합니다.

  • 가장 낮은 차수를 가진 노드가 하나도 남지 않을 때까지 계속 검색하세요.

  • 그래프에서 서로 고립된 노드의 수는 전략 종료 시 획득한 철회 노드 목록으로 표시됩니다.

으아아아

출력

으아아아

최대 독립 집합(MIS) 방법

최대 독립 집합(MIS) 방법은 다른 모든 노드와 연결이 끊어진 그래프의 노드 수를 늘리기 위해 두 개의 노드가 인접(연결)되지 않은 노드의 가능한 가장 큰 하위 집합을 식별하는 것을 목표로 합니다. 그래프에서 공유 간선이 없는 노드를 찾아 독립적인 집합에 추가하는 과정입니다. 이렇게 하면 연결이 끊긴 노드 수를 최대화하여 선택한 노드가 서로 연결되지 않도록 합니다. 알고리즘이 계속 진행됨에 따라 선택된 노드와 그 이웃이 그래프에서 반복적으로 제거됩니다. 독립 세트에 더 이상 노드를 추가할 수 없을 때까지 이 프로세스를 반복함으로써 그래프의 다른 모든 노드에서 연결이 끊어진 최대 노드 수를 얻습니다.

알고리즘

  • 초기 그래프 G부터 시작하세요.

  • 최대 독립 집합(MIS)을 저장하려면 빈 집합을 초기화하세요.

  • 더 이상 MIS에 노드를 추가할 수 없을 때까지 다음 단계를 반복합니다.

  • a. 공통 간선이나 이웃을 통해 다른 노드에 연결되지 않은 현재 그래프 G에서 노드를 찾습니다.

    b.선택한 노드를 MIS 세트에 포함합니다.

    c. 그래프에서 선택한 노드와 그 이웃을 뺍니다. G.

  • MIS 세트에 더 이상 노드가 포함되지 않을 때까지 이 작업을 계속하세요.

으아아아

출력

으아아아

결론

우리는 그래프에서 서로 연결되지 않은 노드의 수를 최대화하기 위해 그리디(greedy) 방법과 최대 독립 집합(MIS) 방법의 두 가지 활성 방법을 사용합니다. Greedy 방법에는 연결이 끊긴 구성 요소를 만들고, 가장 낮은 수준의 노드를 반복적으로 삭제하고, 고아 노드 수를 늘리는 작업이 포함됩니다. 간단하기는 하지만 항상 정확한 최대 개수를 보장하는 것은 아닙니다. 반면에 MIS 방법은 인접한 연결 없이 가능한 가장 큰 노드 하위 집합을 찾아 노드를 서로 격리하려고 시도합니다. MIS 방법은 반복적으로 독립 세트에 노드를 추가하고 그래프에서 해당 노드와 이웃을 제거함으로써 연결이 끊긴 노드의 최대 수에 체계적으로 도달하는 보다 안정적인 방법을 제공합니다.

위 내용은 다른 모든 노드와 연결이 끊어진 그래프의 노드 수를 최대화합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:tutorialspoint.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿