Algoritmia - Problema de combinatoria

 
Vista:

Problema de combinatoria

Publicado por Fgmarmol (1 intervención) el 10/12/2014 01:13:05
Hola a todos!!



Tengo el siguiente problema al cual he encontrado una solucion pero necesito optimizar un poco. El problema es el siguiente, tengo una serie de sets con diferentes elementos. Necesito agrupar esos elementos en grupos de seis de la manera mas optimizada posible.



El funcionamiento de mi algoritmo es sencillo; comprueba cada grupo, si el grupo no contiene la secuencia deseada, comprueba si puede generarla incluyendo los elementos que faltan. Si no hay espacio sufiente incluir los elementos, pasa al siguiente grupo y repite. Si no hay mas grupos disponibles, crea un nuevo grupo con la combinacion del set.



Lo explico mejor con un ejemplo de como funciona mi algoritmo:



Iteracion 1.

Set1 = A, B, C, D, E

Creamos el Grupo1 = A, B, C, D, E



Iteracion 2.

Set2 = A, B, F

Incluimos (F) en el Grupo1 = A, B, C, D, E, F (quedando completo con seis elementos)



Iteracion 3.

Set3 = A, B, C, G

Creamos el Grupo2 = A, B, C, G



Iteracion 4.

Set4 = A, B, G, F

Incluimo (F) en el Grupo2 = A, B, C, G, F



Iteracion 5.

Set5 = A, B, C, I

Incluimos (I) en el Grupo2 = A, B, C, G, F, I (quedando completo con seis elementos)



Iteracion 6.

Set6 = A, B, D, G

Creamos el Grupo3 = A, B, D, G



Iteracion 7.

Set7 = A, B, D, H

Incluimos (H) en el Grupo3 = A, B, D, G, H



Iteracion 8.

Set8 = A, B, C, I

Creamos el Grupo4 = A, B, C, I



Al final de todas las iteraciones obtenemos;

Grupo1 = A, B, C, D, E, F

Grupo2 = A, B, C, G, F, I

Grupo3 = A, B, D, G, H

Grupo4 = A, B, C, I



El resultado es valido asi como tengo todos los set clasificados en grupos, pero necesitaria otro algoritmo capaz de proporcionarme una solucion mas eficiente como la siguiente;

Grupo1 = A, B, C, D, H, I

Grupo2 = A, B, C, D, E, H

Grupo3 = A, B, C, D, F, G





Muchas gracias, por dedicar un poco de vuestro tiempo a leer el post.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder