개발자가 서로 다른 프로젝트로 구성된 의 팀으로 일하는 소프트웨어 회사가 있다고 가정합니다. 프로젝트는 할당 된 개발자에게 일정 기술이 필요합니다. 제 목적으로는 간단하게 유지하고 이것을 하나의 기술, 즉 프로그래밍 언어로 제한하고 싶습니다. 따라서 일부 프로젝트는 Java가 필요하고 다른 프로젝트는 등이 필요합니다. 프로젝트의 기간은 고정되어 있으며 각 프로젝트에는 두 명의 개발자가 있어야합니다. .작업장 일정 : 어떤 솔루션을 고려해야합니까?
어느 시점에서든 일부 프로젝트가 진행 중이며 새로운 프로젝트는 에 있으며 향후 어느 시점에서 계획해야합니다. 개발자가 어떤 프로젝트에서 언제 작업해야하는지 일정을 계산하고 싶습니다.
최적의 솔루션을 찾는 것이 아닙니다 (가능한 경우). 나는 인간 관리자가 만들 수있는 일정으로 을 처리하고 있습니다.
리소스 제한 스케줄링 문제 및 할당 문제에 대한 기사를 읽었지만 공식 CS 교육이 거의 없었으며, 은 종종 이러한 다양한 문제의 모든 뉘앙스에서 손실되었습니다.
내 문제는 작업이 개의 프로젝트 인 곳에서 작업 가게 스케줄링의 단순한 변형이라고 생각하며 개발자는 컴퓨터이므로 에 여러 컴퓨터가 필요합니다. 실행중인 프로젝트 을 중단 할 수 없으므로 먼저 완료해야한다는 점에서 선행 조건은 하나뿐입니다.
내가 읽을 수있는 가능한 모든 솔루션에서 유전 알고리즘을 사용하려고합니다. 주로 사람들이 과 함께 좋은 결과를 얻었고 다른 프로젝트를 사용했기 때문에 유전 알고리즘을 사용했습니다. . 선형 프로그래밍을 사용하여 좋은 결과를 읽었지만, 그것에 대해서는 거의 알지 못했습니다. .
유전 알고리즘은 이러한 유형의 문제에 대한 가능한 해결책입니까? 아니면 더 나은 해결책이 있습니까?
작업이 서로 종속되어 있습니까? (I.E. 작업 7은 작업 2가 완료되기 전에 완료되어야 함). 과제가 미리 알려지지 않았습니까? – amit
작업을 할 때 프로젝트 자체를 의미합니까? 프로젝트는 서로 의존하지 않습니다. 그리고 스케줄 생성 시간에 모든 프로젝트가 알려집니다. 명확성을 위해 프로젝트의 개별 작업은이 문제에서 중요하지 않습니다. 프로젝트는 SCRUM 프로젝트 에서처럼 미리 결정된 기간이 경과하면 완료된 것으로 간주됩니다. – mrdg