다 대다 일반화 할당 문제에 대한 알고리즘


20

다 대다 일반 할당 문제 (GAP), 즉 하나의 에이전트에 더 많은 작업을 할당 할 수있는 모델뿐만 아니라 여러 에이전트도 할당 할 수있는 모델을 해결하는 데 사용할 수있는 알고리즘에 대한 문헌을 찾을 수 없습니다. 하나의 작업에 할당됩니다 (일대일 및 일대 다 AP는 Pentico의 논문에서 설명합니다). 과제 과제의 다음에 나오는 것을 알고 있지만 연구 중에 이와 같은 문제가 발생하여 해결 방법에 대해 더 알고 싶습니다. 그러한 다 대다 GAP가 다른 이름으로 알려진 것일 수 있습니까, 아니면 그것에 대한 문헌이 거의없는 다른 이유가 있습니까?

Pentico, D. 과제 과제 : 황금 기념일 조사 . 유럽 ​​운영 연구 저널 (2007); 176 (2) : 774-793.


1
안녕하세요 GerritJan. Scicomp에 오신 것을 환영합니다! :) 당신은 일반화 된 과제 문제에 대한 lagrangian 휴리스틱에 익숙합니까? sciencedirect.com/science/article/pii/S0898122110002609 또는 irma-international.org/viewtitle/58969 또는 crcnetbase.com/doi/abs/10.1201/9781420010749.ch48 ?
바울

1
하나의 작업을 여러 개의 하위 작업 인 것처럼 처리하여 최소한 비용을 선형으로 배분 한 경우 작업의 일부를 여러 상담원에게 할당하는 경우를 모델링 할 수 있습니다. 더 자세한 내용이 없으면 문제가 일반 할당 문제보다 "일반적인"방법을 알기 어렵습니다. Wikipeida 기사는 주제에 대한 참조의 몇 가지에 좋은 박람회 및 링크가 있습니다.
hardmath

감사합니다, @Paul. 나는 훈련되지 않은 눈에 다소 복잡해 보이지만 논문을 살펴볼 것입니다. 다시 말하지만, 나는 문제가 복잡하다고 생각하며 아마도 단순화해야 할 것입니다. 내 문제는 기본적으로 네트워크에 에너지를 분배하는 문제입니다. 공급과 수요 노드는 모든 수요를 충족시키기 위해 최소한의 공급을 사용하여 가장 최적의 방법으로 그들 사이의 (가중) 연결을 사용하여 일치시켜야합니다. 물론 연결의 최대 용량 등과 같은 추가 제약 조건을 사용할 수 있습니다.
Gerrit Jan

1
@ GerritJan : 그것은 np-hard 문제이므로 근사 체계가 필요합니다. 근사치가 필요한 경우 알고리즘이 약간 복잡해야 할 수 있습니다.
Paul

2
@ GerritJan : 가능한 모든 구성을 확인해야만 정확한 '최적'솔루션을 보장 할 수 있습니다. 이러한 가능한 솔루션은 시간이 지남에 따라 (적어도) 기하 급수적으로 증가하여, 비교적 적은 크기의 문제도 합리적인 시간 내에 정확하게 해결하는 것이 사실상 불가능합니다.
Paul

답변:


1

당신의 문제는 ""에이전트 "의 합이 정확히 이산적인 부분의 에너지를 공급하거나 각 단일 수요에 대해 아무것도 공급하지 않아야한다는 것 같지 않습니까?" 아니면 당신은 나를 이해하지 못했습니다. 그래서 해결책을 찾았 기 때문에 문제를 더 잘 설명하려고 노력할 것입니다.

내 문제에는 각 자원에 특정 자원의 예산이 있고 작업 비용을 공유 할 수있는 에이전트 세트가 있습니다. 모든 작업을 "실행"합니다. 태스크 x에 대한 에이전트의 부분 솔루션 합계는 태스크 x의 비용보다 적거나 같아야합니다. 목표는 에이전트가 지불 할 수있는 가장 가치있는 작업 세트를 찾는 것입니다.

게임 소프트웨어로 작업하고 있으므로 게임 스타일로 설명합니다. 에이전트 설정, 작업 매개 변수 비용 (t), 값 (t) 매개 변수 리소스 (a)

작업 비용 t 목표에 대한 에이전트 a의 일부인 양의 변수 y (a, t) (비 int) :

maxvalue =e= sum((a,t), value(t) * y(a,t) / cost(t) );
agentresource_max_constraint(a).. sum(t, y(a,t)) =l= resources(a);
taskcost_max_constraint.. sum(a, y(a,t)) =l= cost(t);

내가 쓴 것처럼 솔루션이 있었지만 부분 작업 솔루션을 분리하는 방법을 몰랐습니다. 하지만 지금은

이진 변수 z(t)

taskcost_bin_constraint z(t) =e= sum(a, y(a,t)) / cost(t);

sum(a, y(a,t)) / cost(t)방정식 공식에서 0과 1 사이의 값이며이 제약 조건에 따라 z1의 경우 1과 1보다 작은 경우 모두 0입니다.이 taskcost_bin_constraint목표는 다음과 같습니다.

maxvalue =e= sum(t, value(t) * z(t));

나는 궁금해했지만 이것이 효과가 있고 과제를 완전히 작성하기 위해 제약 조건에서 더 나은 솔루션을 제공합니다.

어쩌면 그런 제약을 추가 할 수 있습니까? 0과 1 사이의 값을 가진 표현식으로 표현하여 요구를 정확하게 채우는 구속 조건


1

일대일 할당 문제 또는 동등하게 2 차원 매트릭스 분할 문제를 해결하는 결정 론적 어닐링 알고리즘이 있습니다.

그러나 정수 [0, 1] 값을 사용하는 대신 분수 값을 사용하거나 (알고리즘은 동일하게 유지) 둘 이상의 할당을 처리하도록 확장 할 수 있습니다 (내부 루프를 추가하고 본질적으로 행렬은 초 차원 배열이 됨) 또는 텐서)

논문은 여기에 있습니다 : http://www.researchgate.net/publication/2382666_Pairwise_Data_Clustering_by_Deterministic_Annealing/file/d912f50c75945d835b.pdf

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.