Cómo dividir una matriz en dos subconjuntos y mantener la suma de los subvalores de la matriz lo más equitativa posible

¡Realmente necesito un maestro del algoritmo aquí! Así que la cosa es que tengo, por ejemplo, una matriz como esta:

[
    [870, 23]
    [970, 78]
    [110, 50]
]

Y quiero dividirlo, para que se vea así:

// first array
[
    [970, 78]
]
// second array
[
    [870, 23]
    [110, 50]
]

así que ahora, ¿por qué quiero que se vea así?

Porque quiero mantener la suma de los subvalores lo más igual posible. Asi que970 es sobre870 + 110 y78 es sobre23 + 50. Entonces, en este caso, es muy fácil, ya que si solo los dividiera y observara el primer subvalor, ya será correcto, pero quiero verificar ambos y mantenerlos lo más iguales posible, de modo que también funcione. una matriz que tiene 100 sub-matrices! Entonces, si alguien me puede decir el algoritmo con el que puedo programar esto, ¡sería realmente genial!

Escamas:

~ 1000 elementos (sublistas) en la matrizLos elementos son enteros hasta 10 ^ 9.

Estoy buscando una "solución lo suficientemente cercana" -No tiene que ser la solución óptima exacta.

Respuestas a la pregunta(4)

Su respuesta a la pregunta