나는 공장을위한 프로젝트 관리 앱을 디자인하고있다. 이 앱은 프로젝트 계획 초안을 작성해야합니다. 리소스가없는 슬롯을 찾는 알고리즘
나는 기계를 추적,
- 작업 의존 관계 : 작업을 예약하려면 응용 프로그램은 세 가지 조건을 확인해야 약혼 :
machine_allocations
테이블 :machine_allocations +------------+--------------+-----------------+---------------+ | machine_id | operation_id | start_timestamp | end_timestamp | +------------+--------------+-----------------+---------------+
근무 시간은 패턴을 따릅니다. 이것은 좋은 방법입니다,
function earliest_slot($machine_id, $for_duration, $no_sooner_than) { // pseudo code 1. get records for the machine in question for after $no_sooner_than 2. put start and end timestamps into $unavailable array 3. add non-working times as new elements to the array 4. in a loop find timeslots which are not in the array 5. if a timeslot is found which is equal to or bigger than $for_duration, return that }
내 질문은 :
지금, 나는 함수 생각하고 작업을위한 가장 빠른 날짜와 시간을 찾는 방법은? 이 작업을 수행하는 더 간단한 방법이 있습니까?
좋은 조언을 해줘서 고맙습니다. 나는 이렇게 생산 된 계획이 최적이 아니라는 것을 알고 있으며, 그것이 내가 '계획 초안'이라고 부르는 이유이다. 나는 고객이 시간표를 손으로 조정할 필요가 없다고 약속하지는 않는다. 그래서 복잡성을 억제하기 위해 접근 중입니다. 그래서 제한된 유틸리티 가격 *에 대해 제안 할 예정입니다. 알고리즘이 가장 간단하다는 것을 알 수 있습니까? –
나는 알고리즘이 중요하지 않기 때문에 충분히 간단하다고 생각한다. 간단한 해결책이있는 경우에, 특히 당신의 필요 조건이 변화 할지도 모른다 간단한 해결책을 찾는 시간을 낭비하지 말라. – Artelius
* 아주 좋은 통보 *의 또 다른 조각. 당신 말이 맞아요. 나는 그것을 구현하는 것이 좋습니다! - 나는이 마지막 것을 기억할 것이다 (나는 약속한다)). –