• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

270
Views
Intercambio de valores duplicados entre matrices de subconjuntos con JavaScript

PROBLEMA: el siguiente algoritmo recorre una serie de objetos y asigna los objetos a tres subconjuntos de modo que la suma de cada subconjunto es muy cercana (algoritmo codicioso). Si ejecuta el código, notará que en el primer subconjunto p:11 aparece dos veces y en el tercer subconjunto p:10 aparece dos veces. No quiero que el valor p aparezca en la misma matriz más de una vez.
PREGUNTA: ¿Cómo puedo asegurarme en el algoritmo de que el valor de p no aparece en la misma matriz de subconjuntos más de una vez a medida que los objetos se distribuyen a las matrices de subconjuntos mientras me aseguro de que la suma de cada matriz de subconjuntos sigue siendo la misma?

 let list = [ {p:2, size:50},{p:4, size:50},{p:5,size:25}, {p:6, size:167},{p:6, size:167},{p:7, size:50}, {p:8, size:25},{p:8, size:50},{p:10, size:75}, {p:10, size:75},{p:11, size:25},{p:11, size:50}, {p:12, size:25},{p:13, size:50},{p:14,size:25} ] function balance_load(power_load_array, number_of_phases) { const sorted = power_load_array.sort((a, b) => b.size - a.size); // sort descending const output = [...Array(number_of_phases)].map((x) => { return { sum: 0, elements: [], }; }); for (const item of sorted) { const chosen_subset = output.sort((a, b) => a.sum - b.sum)[0]; chosen_subset.elements.push({p:item.p, size:item.size}); chosen_subset.sum += item.size; } return output } let p = balance_load(list,3) console.log(p)

over 3 years ago · Santiago Trujillo
1 answers
Answer question

0

Esto se puede resolver como un problema de optimización lineal entero con una variable continua, t , y una variable para cada combinación de elementos de list , i y grupo, j :

  • x ij : es igual a 1 si el elemento i de la list se asigna al grupo j , de lo contrario es igual a 0 .

Nos dan los siguientes coeficientes.

  • c i : costo del elemento i de la list ( list[i][:size] )

  • p i : valor de p para el elemento i de la list ( list[i][:p] )

  • S : conjunto de valores únicos list[i][:p] que son compartidos por dos o más elementos de list .

  • U(s) : conjunto de elementos i de list para los cuales list[i][:p] == s , para cada s en S


La formulación es la siguiente.

(1) t min

sujeto a:

(2) t >= ∑ i x ij c ij para cada j

(3) ∑ j x ij = 1 para cada i

(4) ∑ U(s) x ij <= 1 para cada j y s en S

(5) x ij es igual a 0 o 1 para todos los pares i,j


  • (1) y (2) busca una solución minimax que minimice el costo máximo del grupo, que tiende tanto a reducir los costos totales como a igualar los costos de los grupos.
  • (3) requiere que cada elemento de la list se asigne exactamente a un grupo
  • (4) asegura que no se asignen al mismo grupo dos elementos de list que tengan el mismo valor de list[:p] .
over 3 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error