용량이있는 회의실 목록과 참석자 수를 가진 회의 목록이 있다고 가정 해보십시오. 각 회의를 다음과 같은 방법으로 하나의 회의실과 일치 시키려합니다.작은 일정 문제에 대한 수학적 솔루션 찾기
-
참석자 수 이상의 회의실에서만 회의를 예약 할 수 있습니다.
- 잉여 객실이있는 경우 가능한 가장 큰 공간이 예약되지 않도록 회의를 예약해야합니다.
- 출석이 큰 회의는 출석이 적은 회의보다 작은 회의실에 예약해서는 안됩니다.
- 주어진 방에서 주어진 회의를 예약하는 것이 불가능한 지 분명히 알아야합니다.
일정에 효율적으로 도착할 수 있습니까? 하나의 패스가 좋을 것입니다. 일부 되돌림은 괜찮지 만, 내가 일할 수있는 유일한 옵션 (거친 알고리즘과 규칙 3의 위반을 동적으로 제거하는 것)은 내가 원하는 것보다 느립니다.
이 질문은 보이는 것처럼 쉽지 않습니다! 우리는 내림차순 각 목록을 정렬하고 가장 큰 세션에 가장 큰 방을 페어링 시작할 수 있습니다
, 우리는 솔루션은 어떤 시간을 올 것이다 : 순진 선형 방법은 적어도 하나의 기준은 실패 가능하지만 우리는 가장 큰 것보다는 남은 가능한 가장 작은 방을 가질 것입니다. (200 명, 30 명, 20 명 수용 인원으로 구성된 10 명 및 15 명 회의의 경우를 고려하십시오.)
회의 목록을 고저원으로 정렬 한 다음 아래로 내려서 이 회의를 수용하기에 충분한 크기의 가장 작은 방을 찾으십시오. 그러나 때로는 더 작은 회의를 위해 더 큰 회의실이 예정되기도합니다. (40 인실 및 80 인실의 40 인 및 30 인 회의 계획을 고려해보십시오.)
그러나이 비교적 간단한 문제를 해결하는 더 좋은 방법이 있습니다.
차이점 (용량 - 출석)을 정렬 기준으로 고려하는 것이 도움이됩니까? – bobs
이것이 "비교적 간단한 문제"입니까? 겉보기에는 고전적인 포장 문제처럼 보입니다. 그 중 많은 부분이 NP 완성입니다. –