저는 컴퓨터 과학 이론가는 아니지만이 실제 문제가 여기에 있다고 생각합니다.
문제
우리 회사에는 전국에 여러 부대가 있습니다.
우리는 직원들에게 다른 부서에서 일할 수있는 가능성을 제공했습니다. 그러나 한 가지 조건이 있습니다. 한 유닛의 총 근로자 수는 변경할 수 없습니다.
즉, 누군가 자신의 자리를 원할 경우 직원이 퇴사 할 수 있습니다.
예 (가상) 요청 데이터 :
Name Origin Destination
Maria 1 -> 2
Marcos 2 -> 3
Jones 3 -> 4
Terry 4 -> 5
Joe 5 -> 6
Rodrigo 6 -> 1
Barbara 6 -> 1
Marylin 1 -> 4
Brown 4 -> 6
Benjamin 1 -> 3
Lucas 4 -> 1
위의 플롯 :
빨간색, 파란색 또는 검은 색 옵션 중에서 어떻게 선택해야합니까?
실제 문제는 27 개와 751 개의 요청이 있기 때문에 조금 더 복잡합니다. 시각화를보십시오
목표
모든 요청을 수집 한 후 대부분의 요청을 충족시키는 방법은 무엇입니까?
이론 (?) 응용
그래프 를 가지고 모든 단위가 꼭짓점 이고 요청이 지향 모서리 E 가되게한다면 성공적인 교환은 지향성 cyle의 형태를 취할 것입니다.V의 E
각주기는 사용해야합니다 (한 번만 노동자 두 번 자신의 장치를 떠날 수 없다 ) 만 방문 할 수 여러 번 ( 단위 떠나고 싶은 많은 노동자를 가질 수있다 ).V
질문
이 문제가 다음과 같이 표현되면
"지향 그래프에서 가장 많은 수의 비공유 에지를 포함하는 사이클을 찾는 방법"?
우리는 대부분의 요청자를 만족시킬 것인가?
사실, 최적의 사이클 세트를 찾는 알고리즘이 있습니까?
이 거친 접근 방식으로 문제가 해결됩니까?
- 에서 가장 큰 지정 사이클을 찾으십시오 .
- 에서 모서리를 제거하십시오 .
- 지시 된 사이클이 없을 때까지 1을 반복하십시오 .
도와 줄래?
원래 문제를 설명하는 또 다른 방법을 알고 있습니까 (대부분의 요청자가 행복해 지도록)?
편집 : 문제를 더 잘 설명하기 위해 부서를 단위로 변경했습니다.