다음과 같은 문제가 NP 완료인지 여부 또는 단순한 무차별 강제 결합 검사보다 실제적으로 더 좋고/더 쉬운 해결책이 있는지를 확인하기를 바랍니다.NP 완료 문제가 있습니까?
우리 소프트웨어에는 일종의 자원 할당 문제가 있는데 예제로 설명하겠습니다.
하루 교대 근무 중에 4 명이 근무해야한다고 가정 해 봅니다. 이 숫자와 그것이 "day-shift"라는 사실이 우리 데이터베이스에 기록됩니다.
그러나 우리는 누군가 그 장소를 채울 필요가 없으며 청구서에 맞게 몇 가지 요구 사항을 채워야합니다.
이들 중 4 분의 2는 간호사이어야하며 그 중 1 분은 의사 여야합니다.
의사 중 한 명이 특정 팀의 일원이기도합니다.
이일 교대 : 4
한 의사
한 의사, A 팀
1에서 작업해야그래서 우리는 정보의 집합을 간호사
위의 내용은 문제가 아닙니다. 문제는 우리가 사람들을 데리러 일일 근무를 시작하고 우리가 지금까지 골랐던 사람들이 실제로 기준을 채울 수 있는지 알아 내려고 할 때입니다.
예를 들어 제임스와 어슐러가 의사이고 존과 메리가 간호사 인 제임스, 존, 어슐러와 메리를 선택한다고합시다.
어슐러는 또한 우리가 법안을 맞게하려고 순서에 따라, 이제
팀 A. 작동, 우리는 우리가 서로 다른 조합을 시도 시작하지 않는 한 우리가 올바른 사람, 또는하지를 가지고 추론 끝낼 수 있습니다.
예를 들어, 목록을 내려 우르술라를 먼저 선택하면 "1 의사"기준과 일치시킬 수 있습니다. 그런 다음 우리는 James에게 간다. 그리고 A 팀에서 일하지 않기 때문에 "A doctor에서 일해야하는 1 명의 의사"에 대한 다른 기준은 그를 채울 수 없다는 것을 알게된다. 다른 두 사람은 간호사이기 때문에 그 기준에 맞지 않습니다.
그래서 우리는 제임스를 역 추적하고 첫 번째로 시도해 봅니다. 그리고 그는 또한 첫 번째 기준에 부합 할 수 있습니다. 그런 다음 어슐러는 그 팀을 필요로하는 기준에 부합 할 수 있습니다.
우리가 모두 시도해 볼 때까지 다른 조합을 시도해야하므로 문제가 발생합니다.이 경우 헤드가 작동하는 총 수를 계산 한 경우에도 아직 채워지지 않은 기준이 있습니다. 필요한 총 헤드 수와 같거나, 적절한 조합을 찾았습니다.
이것이 유일한 해결책입니까, 더 좋은 사람이 될 수 있습니까?
편집 : 일부 설명.
이 질문에 대한 의견은이 소수의 사람들과 함께 우리는 무차별 대항력으로 나가야한다는 것을 언급하며, 우리가 할 수있는 일이라고 생각합니다. 같은 차선에서 정렬 최적화 데이터 크기가 작 으면 초기 오버 헤드가 적은 다른 정렬 알고리즘을 선택합니다.
그러나 문제는 이것이 명단 계획 시스템의 일부라는 점입니다.이 시스템은 상당히 많은 사람들이 참여할 수 있습니다. "우리는 낮 근무일 X 명이 필요합니다"와 "우리는 이것을 가지고 있습니다 우리는이 Y 사람들과 어울려야 할 X 사람들을위한 Z 기준의 목록을 갖고 있습니다. 리더가 명단을 조정할 때 실시간으로 동일한 계산을 수행하는 데 며칠이 걸릴 것이므로 신속한 솔루션의 필요성이 제기됩니다.
기본적으로 리더는 누락 된 사람의 수를 나타내는 화면상의 실시간 합계 정보를 하루 종일 전체적으로 볼 수 있으며 몇 명의 사용자가 다양한 기준에 부합하는지 알 수 있습니다. 우리가 가진 것 외에 실제로 우리가 실제로 접한 많은 사람들. 이 디스플레이는 세미 라이브를 업데이트해야합니다. 리더가 "James가 Ursula 대신 Day Shift를 취하고 Ursula가 야간 근무를하는 경우 어떻게해야합니까?"라고 명단을 조정합니다.
지금까지 답변 한 사람들에게 커다란 감사를드립니다. 제약 조건 만족 문제는 우리가 가야 할 방식처럼 들리지만 여기서는 모든 링크와 알고리즘 이름을 자세히 살펴볼 것입니다.
이것은 I에 유래 :)를 사랑하는 이유입니다
4와 2 같은 숫자를 사용하면 가장 단순한 가능한 무차별 강제 검색을 사용하지 않는 이유를 알 수 없습니다. – ShreevatsaR
나는 항상 작을 경우 그냥 짐작해야한다고 동의한다. 그렇지 않은 경우 휴리스틱을 사용해야합니다. 제 생각에 그것은 배낭 문제의 변형입니다. 나는이 질문에서 그 대답이 왜 제거되었는지 모른다. –
나는 동의한다, 나는 질문을 편집 할 것이다. 그러나 나는 주어진 답이 이미 우리에게 머리를 맞출 수있는 방법을 줄 것이라고 생각한다. –