문제

소프트웨어 응용 프로그램에서 작업하는 요구를 할당할 수 있어 작업의 그룹에 따라 사용자는 얼마나 많은 작업 그들은 현재는 사용자가 적은 작업은 가능성이 높은 다음 작업입니다.그러나,현재 작업 부하로 처리해야 합 가중치,오히려 보다 절대 순서를 정의합니다.IOW,나를 구현해야중,로드 밸런싱 알고리즘이 있습니다.

말하자 다섯 가지가 있는 사용자만 다음과 같은 작업의 수:

A:4 B:5 C:0 D:7 E:9

고 싶은 우선순위 사용자는 다음 작업 순서대로 CABDE,C 은 대부분을 지정하고 전자,적어도 가능성이 높습니다.두 가지 중요한 것을 참고 여기:

  • 사용자의 수에 따라 다를 수 있습 2 니다.
  • 의 숫자 작업을 할당하여 각 사용자에 따라 다를 수 있습 1 수백.

지금,우리는 치료하는 모든 작업을 동일한 것으로,though I wouldn't 마음을 포함한 어려운 작업을 변수로 사용할 수 있는 미래에-하지만 이것은 순전히 입니다.

아이디어를 함께 왔어 지금까지 아주 좋지 않습니다.그들은 무게 사용자가 너무 밀접하게 함께 있는 경우에는 사용자의 큰 숫자,또는 그들이 떨어질 수 있는 평면 사용자가 현재 작업,또는....

해봤 파고 웹의 주위에,그러나지 않았던 많은 행운입니다.할 수 있는 사람을 나에게 빠르게 요약하는 알고리즘을 작동할 것입니까?내가 필요로 하지 않는 실제 구현--난 부-그냥 좋은 설명이 있습니다.대체,거기에 좋은 웹 사이트는 자유롭게 접근할 수 있나요?

또한,나는 확실히 감사품질이 될 필요는 없다는 통계적으로 완벽합니다.그래서 만약 당신이 생각할 수 있는 좋은 아니지만 훌륭한 기술,내가 관심!

도움이 되었습니까?

해결책

당신,이것이 로드 밸런싱 문제입니다.그것은 정말 예약 문제 때문에,당신이하지 않을 최소화하기 위해 노력하고 아무것도(총 시간,숫자의 동시 작업자,etc.).기 특별 조건(일 기간,시간의 충돌,특기 세트 일치하는 등). 그래서 정말 당신의 문제로 귀결을 선택하는 적절한 가중치는 기능입니다.

당신이 말하는 거기에 몇 가지 상황을 피하고 싶은 당신 같은 사용자에는 너무 가까이 함께.를 제공할 수 있습니의 다양한 제공합니다.예를 들어,어떤 잘못을 만들기와 기회의 할당 그에 비례하는 현재 작업 표준에 의해 작업의 다른 노동자가?할 수 있는 시각화 이 시퀀스로의 블록의 다른 길이(작업),되고 있으로 포장 설정의 용기(노동자),신을 보호하기 위해 노력하고의 전체 높이 궤도로 가능합니다.

더 많은 정보와 함께,우리는 구체적인 권장 사항을 확인하는 함수는 당신을 위해 일할 수 있습니다.

편집:예로 로드 밸런싱 기능

귀하의 의견에 따라,여기에 몇 가지 예를 들어의 간단한 기능을 제공할 수 있는 다른 균형을 잡는 행위.기본적인 질문가할지 여부를 결정적 또는 확률적 행동을 했다.나는 몇 가지 예입니다.

예를 사용해서 질문하기 4 + 5 + 0 + 7 + 9 = 25 작업 현재 할당됩니다.당신을 선택하려면 누가 작업을 26.

1)간단한 작업이 농장도 있습니다. 각 작업에 대해 항상 선택의와 노동자의 적어도 일 현재 계류 중이다.빠른 근로자는 더 많은 것을 얻을 수 있지만,모든 사람에 종료에 대해 동일한 시간입니다.

2)보장하는 공정 작업이 있습니다. 이동 작업에서 다른 속도로,그리고 당신이 원하지 않는 몇 가지 일을 다른 사람보다 더 많은,다음의 수를 추적이 완료+중인 작업을 위해 각 노동자입니다.할당,다음 작업을 계속 이 번호를 고르게 분산시(빠른 근로자 무료로 나누기).

3)기본적인 선형용의 결과다. 선택의 최대 개수 작업이 각자할 수 있습니다.각 작업자의 작업이 표준입니다.는 경우,예를 들어 최대 수를 일/노동자 15,50 이상의 작업을 추가할 수 있습에 도달하기 전에 당신은 용량입니다.그래서 각 작업자의 확률에 할당되는 다음 작업

P(A) = (15 - 4)/50 = 0.22  
P(B) = (15 - 5)/50 = 0.2  
P(C) = (15 - 0)/50 = 0.3  
P(D) = (15 - 7)/50 = 0.16  
P(E) = (15 - 9)/50 = 0.12

당신이 사용하고 싶지 않은 특정 최대값이 사용할 수 있습니 작업자와 함께 가장 높은 현재의 숫자 작업 중인으로 제한.이 경우에는,그의 노동자 전자,이렇게 확률이 될 것입

P(A) = (9 - 4)/20 = 0.25  
P(B) = (9 - 5)/20 = 0.2  
P(C) = (9 - 0)/20 = 0.45 
P(D) = (9 - 7)/20 = 0.1  
P(E) = (9 - 9)/20 = 0

참고 이 경우에는 정규화장 작업자자에 할당할 수 없습은 어떤 작업 그는 이미 한계입니다.또한,때문에 아무것도 없을 의미하지 않는 그는 보장을 받게 될 새로운 일(그것은 단지 더 많은 가능성이 높습니다).

당신은 쉽게 구현할 수 있습니다 선택 기능을 생성하여 임의의 수 r 0 과 1 사이의 비교하는 경우 이러한 경계.그래서 만약 r 가 < 0.25,는 작업을 가져옵니다,0.25< r < 0.45,B 작업을 가져옵니다,등등.

4)비선형용의 결과다. 를 사용하여 로그인 기능(신의 선형 빼기)무게의 숫자가 쉽게 얻을 수 있는 비선형용의 결과다.당신이 사용할 수 있습을 기울이 확률,예를 들어,그것은 훨씬 더 가능성이 높은 노동자없이 많은 작업이 주어진 더 있습니다.

점수의 이렇게 하는 방법은 실로 무한합니다.무엇을 가중치 기능을 사용할에 따라 특정한 행동을 하려고 하는 것입니다.바라기는 몇몇 아이디어를 주로 사용할 수있는 출발점입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top