대화식 작업 스케줄링 어플리케이션에서 작업 중입니다. 해당 용량/사용 가능 프로파일이있는 자원 세트, 이러한 자원에서 실행될 작업 세트 및 사용자가 수동으로 이동할 수있게하려는 작업의 작업 순서 및 가장 이른/최신 시작/종료 시간을 결정하는 일련의 제한 조건 주위에 직업. 본질적으로 저는 사용자가 작업 네트워크의 노드를 "잡아"제약 조건을 위반하지 않고 앞으로/뒤로 드래그 할 수 있기를 바랍니다.스케줄링 어플리케이션에서 제한된 그래프 변환
이미지는 간단한 구성 예를 보여줍니다. 끝의 삼각형 작업은 모든 작업의 최신 완료 시간을 나타내며 작업 간 연결 라인은 작업에 대한 주문을 부과하고 회색/녹색 막대는 자원 가용성 및로드를 나타냅니다.
작업을 끌어서 일정을 압축 할 수 있습니다. 작업은 용량 프로파일이 다르므로 길이가 변경됩니다.
나는 약간의 효과가있는 애드혹 (ad-hock) 알고리즘을 구현했습니다. 그러나 여전히 실패하고 일부 제약 조건을 위반하는 경우가 있습니다. 그러나 작업 - 상점 예약은 일반적인 NP 하드 문제에 대한 최적의 (또는 좋은) 해결책을 찾기위한 많은 알고리즘과 경험적 방법을 가진 잘 연구 된 분야이기 때문에 좀 더 쉬운 하위 집합을위한 솔루션이 있어야한다고 생각합니다. 제약 프로그래밍 주제 및 심지어 물리 기반 솔루션 (정적 관절을 통해 연결된 강체)을 살펴 보았지만 지금까지는 아무 것도 찾을 수 없었습니다. 어떤 포인터/힌트/팁/나를위한 핵심 단어 검색?
저는이 문제를 완전히 이해하지 못합니다. 죄송합니다. 왜 일자리가 바뀔까요? 노드를 잡고 움직일 때 무슨 뜻 이니? 직업이 노드입니까? 감사. –
위와 같은 네트워크는 대화식 끌어서 놓기 조작을 통해 수정할 수 있습니다. 작업 ("작업"이라고 표시된 그래프의 노드)을 클릭하고 다른 곳으로 이동하십시오. 작업 기간은 사용 가능한 용량 (회색/녹색 막대)에 따라 달라 지므로 이동하는 동안 작업 길이가 변경됩니다. – BuschnicK
나는 이해하지 못한다. 특정 작업 이동을 만족시키기 위해 다른 작업을 돌아가고 싶습니까? 예를 들어 job032를 왼쪽으로 끌면 job029와 job031이 일정을 재조정하여 job032가 시작되기 전에 job031이 종료됩니다. 그렇다면 다른 작업에 대해 수행 할 수있는 작업 (시간 안에 이동, 자원 변경 등)을 알려줘야합니다. 리소스가 간단하게 공유됩니까? (예 : 동일한 리소스에서 실행되는 두 개의 단위 작업은 완료하는 데 2 단위 시간이 걸립니다)? –