• Sábado 9 de Noviembre de 2024, 03:50

Autor Tema:  Algoritmo Clasificacion de Materiales  (Leído 2899 veces)

sishco

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Algoritmo Clasificacion de Materiales
« en: Lunes 23 de Agosto de 2010, 09:16 »
0
Hola.

Tengo que hacer una funcionalidad en una Base de Datos y tengo un problema con lo siguiente.

Por una parte tengo una tabla con relaciones de padres e hijos.
La tabla tiene los campos IdPadre, IdHijo ademas de  alguno mas.

El caso que con esta clasificacion por ejemplo me podria quedar una cosa como esta:

P1 H1
P1 H2
P1 H3
P1 H4

P2 H5
P2 H6
P2 H7
P2 H8

P3 H1
P3 H2
P3 H3
P3 H4
P3 H9

P4 H5
P4 H6
P4 H7
P4 H8
P4 H9

Ademas de estos padres con sus respectivos hijos, realmente tendra unos 200 padres con conbinaciones de hijos distintas.

El problema biene ahora.
A mi me van a pasar una lista de Hijos, y yo me tengo que encargar  con esa lista de distinguir que padres tengo que crear.
Me podrian pasar por ejemplo una lista de hijos como esta: H1H2H3H4H5H6H7H8   Por lo que yo sabria que tendria que en mi lista
una instancia del padre uno y otra instancia del padre 2

Hasta hay facil. Pero cuando en este ejemplo me meten el Hijo9, me surgue el problema de que hay dos instancias de padres que pueden crearse con
esa lista. La lista seria H1H2H3H4H5H6H7H8H9 y podria crear o P1,P4 o P2,P3.

Estoy intentando crear un algoritmo que me detecte esos casos y me avise con las posibilidades, y que con los que no tenga conflictos modifique un valor guardando para cada hijo su padre asociado.

La verdad que ahora mismo no se por donde cojerlo.
Alguna idea??

jodijo5

  • Miembro HIPER activo
  • ****
  • Mensajes: 518
  • Nacionalidad: pe
    • Ver Perfil
    • http://www.bluetecnologia.com
Re: Algoritmo Clasificacion de Materiales
« Respuesta #1 en: Domingo 29 de Agosto de 2010, 06:49 »
0
de lo que entendí, te dan tantos hijos como conejo, jajaja, y tienes que distribuirlos en distintos casos en grupos de 4 a cada padre.

bueno, te va llevar un poco de tiempo hacer el algoritmo, porque es un poquito largo, no te puedo resolver la tarea porque sino no aprenderias, jeje, pero si te doy el eslabón perdido:

1. calcula el numero de combinaciones sin repeticiones, (permutaciones)
2. para saber todas las combinaciones posibles utiliza el algoritmo de la mochila
http://www.algoritmia.net/articles.php?id=33

saludos, y mucha suerte mano :-D
=============================
Daniel Pomalaza Mendoza
visita el Dinosaurio Azul :-D
http://bluetecnologia.com

sishco

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: Algoritmo Clasificacion de Materiales
« Respuesta #2 en: Lunes 30 de Agosto de 2010, 11:03 »
0
Gracias. Voy a leer la informacion de los algoritmos y cuando avance algo aviso.

Nebire

  • Miembro HIPER activo
  • ****
  • Mensajes: 670
    • Ver Perfil
Re: Algoritmo Clasificacion de Materiales
« Respuesta #3 en: Sábado 4 de Septiembre de 2010, 06:29 »
0
Cita de: "sishco"
Hola.

Tengo que hacer una funcionalidad en una Base de Datos y tengo un problema con lo siguiente.

Por una parte tengo una tabla con relaciones de padres e hijos.
La tabla tiene los campos IdPadre, IdHijo ademas de  alguno mas.

El caso que con esta clasificacion por ejemplo me podria quedar una cosa como esta:
..... ..........

esa lista. La lista seria H1H2H3H4H5H6H7H8H9 y podria crear o P1,P4 o P2,P3.

......

La verdad que ahora mismo no se por donde cojerlo.
Alguna idea??
Tal como yo entiendo que te has expresado, siempre que una lista de hijos parece completa justifica crear un padre, si esto es así, entonces con la lista H1H2H3H4H5H6H7H8H9 , realmente tienes que crear P1, P2, P3 y P4 porque todos tienen ahí sus hijos.

Una forma de realizar el algoritmo sería tal que así:

Código: Text
  1. Si cada padre necesita la lista complea de hijos para crearse el padre, entonces no puede fallar ningún hijo, luego creo un árbol, con tantos nodos como padres hay y a cada nodo le   agrego tantos nodos como hijos  tiene con el correspondiente valor del hijo. Tengo por tanto un árbol con una proofundidad de 2 nodos más la raíz.
  2.  
  3. ...luego cuando se recibe una lista verifico por cada nodo hijo del raíz, recorro los subnodos y trato delocalizarlos en la lista recibida si uno de los nodos en el árbol no encuentra correspondencia en la lista ese padre no será creado (de hecho paro este recorrido tan pronto como un nodo hijo no se encuentra reflejado en la lista recibida y salto a comprobar el caso para el siguiente padre), si todos los nodos hijos de ese padre se localizan en la lista  entonces se crea el padre.
  4.  
Ovbiamente esto te irá bien si entendí correctamente tu planteamiento de que para crear un padre es necesario que en la lista aparezcan todos sus hijos.
«Ma non troppo»
----> ModoVacaciones = False<----