2017-09-18 17 views
-1

2 차원 배열에 대한 각 행과 열의 합이 주어지고 배열의 각 셀에 양을 분배해야하는 문제가 있습니다. 일부 셀이 잠기고 배포 할 때 사용할 수 없습니다. 또한 행/열의 총 양은 십진 값이 될 수 있습니다. 그래서 예를 들어2 차원 배열의 양 분포 최적화

, 우리는 4 * 3 2-D 배열의 각 행의 합 10,20,30,35 각 열의 합

A B C 
D E F 
G H I 
J K L 

는 35,30,30 인 한 .

E는 I 및 K는 방정식 (X) = 분 (X)와 F 이차 솔버 (X) = 민 (X^2)를 사용

I가 시도
E = I = K = 0 

A + B + C = 10 
D + F = 20 
G + H = 30 
J + L = 35 

A + D + G + H = 30 
B + H = 30 and 
C + F + L = 30 

선형 F 지도록 잠긴 Python scipy 및 IBM CPLEX (C#)가 있습니다.

선형 솔버는 분포를 최적화하지 않습니다.

이차원 솔버는이 방법에 도움이되지만 10 * 10보다 큰 크기의 배열에서는 작동하지 않습니다. 해결할 수없는 상태로 해가 실패했습니다.

합계가 십진수 값을 가질 수 있고 행렬의 크기가 100 * 10000까지 올라갈 수 있다고 가정하면이 문제를 해결하기 위해/라이브러리에 어떤 방법을 사용해야합니까?

+1

어떤 방법을 시도 했습니까? 작동하지 않는 것은 무엇입니까? 아마 당신은 2 차원 어레이의 십진수를 가지며 합계를 하나의 루프로 얻습니다. 어떤 배포판을해야합니까? –

+1

파이썬이나 C#과 어떤 관계가 있습니까? –

+0

내 질문을 업데이트했습니다. @RufusL CPLEX 2 차 해결사를 사용하여 문제를 해결하려고했지만 10 * 10 행렬 후에 실패합니다. –

답변

0

당신이

A + B + C      = 10 
A   + D  + G + H  = 30 
    B     + H  = 30 
     C  + F   + L = 30 
      D + F    = 20 
        G + H  = 30 
          J + L = 35 

로 방정식을 구성 할 경우이 이전 스택 오버플로 논의 된 이러한 시스템을 해결

1,1,1,0,0,0,0,0,0   10 
    1,0,0,1,1,1,0,0,0   30 
    0,1,0,0,0,1,0,0,0   30 
A = 0,0,1,0,0,0,1,1,0 and b = 30 
    0,0,0,1,0,0,1,0,0   20 
    0,0,0,0,1,1,0,0,0   30 
    0,0,0,0,0,0,0,1,1   35 

system of linear equations 도끼 = B입니다 볼 수 있습니다

+0

R * C 미지수에 대한 R + C 방정식이 있습니다. – MBo

+0

예이 경우 무한 수의 솔루션이있을 것입니다. {{A = (-r2) -r1 + 10, B = r2, C = r1, D = 파라미터 r1, r2의 경우, r2 + r1-10, F = (-r2) -r1 + 30, G = r2, H = 30-r2, J = 35-r2, L = r2}' – jq170727

+0

감사합니다. @ jq170727, 선형 방정식은 분포를 최적화하지 않습니다. –