본문 바로가기

load_balancing

(2)
동일한 기계 여러 대에 작업 할당하기 (Load Balancing on Identical Machines) 여러분이 어떤 작업들을 처리해야 한다고 해봅시다. 작업들은 특수한 기계에 의해 처리되며, 여러분은 동일한 성능을 가진 기계를 여러 대 받았습니다. 작업들 사이에는 선후행 관계가 없습니다. 다시 말해, 어떤 작업을 처리하기 위해서 다른 어떤 작업이 처리되어야 한다는 식의 조건은 존재하지 않습니다. 당연히 여러분은 일을 빨리 끝내고 싶어 합니다. 과연 어떻게 작업을 기계에 할당해야 할까요? 만약 모든 작업이 수행되는 시간이 동일하면 이 문제는 쉽게 해결됩니다. 작업의 개수를 \(n\), 기계의 대수를 \(m\)이라고 했을 때, 각 기계마다 최대 \( \lceil n/m \rceil \) 개씩 넣어주면 되겠습니다. 모든 작업이 끝나는 시각이 이보다 빠를 수 없다는 것은 비둘기집 원리를 사용하면 쉽게 증명할 수..
비순환 그래프 간선 방향 정하기 (Edge Orientation on Acyclic Graphs) 이번에 살펴볼 문제는 간단하지만 흥미로운 문제입니다. 우리에게 어떤 방향이 없는 그래프 \(G = (V, E)\)가 주어졌습니다. 이제 이 그래프의 어떤 간선 \((u, v) \in E\)를 \( \langle u, v \rangle \)이나 \( \langle v, u \rangle \)와 같이 방향을 주도록 합시다. 방향을 주는 방법은 여러 가지가 있겠지만, 그중에서 우리는 각 정점마다 들어오는 간선의 개수를 최소화 시키는 것을 구해보고자 합니다. 좀더 엄밀히 말하자면, \(G = (V, E)\)가 주어졌을 때, 우리의 목표는 각 간선 \( (u,v) \in E \)에 대해, \( \langle u, v \rangle \in A \)이거나 \( \langle v, u \rangle \in A \)를 ..