• Jueves 16 de Mayo de 2024, 23:39

Autor Tema:  Re: Matrices Esparcidas  (Leído 7015 veces)

thebeast

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: Matrices Esparcidas
« en: Martes 15 de Mayo de 2007, 05:41 »
0
Buenas yo soy nuevo en este forum y no sabia dond poner este post yo creo q no es aqui lo siento pero es que necsito ayuda sobre Matrices Esparcidas alguien me prodria dar ejemplo o algo q me explique matrices esparcidas.

Mollense

  • Miembro de PLATA
  • *****
  • Mensajes: 1755
  • Nacionalidad: ar
    • Ver Perfil
    • http://solocodigo.com/
Re: Matrices Esparcidas
« Respuesta #1 en: Martes 15 de Mayo de 2007, 06:48 »
0
Hola thebeast.

Bienvenido al foro.

Citar
Una matriz esparcida es una matriz en la cual la mayoría de los elementos son 0. Es un desperdicio almacenar estas matrices completas puesto que muy pocos elementos contienen información significativa.
Una forma eficiente de representar una matriz esparcida m x n es un arreglo k x 3, donde K es el número de elementos significativos. En ese arreglo se almacena el índice de la fila, el índice de la columna y el valor de los elementos distintos a cero de la matriz original. Esto se denomina una representación reducida. Por ejemplo, la matriz:

Un saludo
"Los que renuncian son más numerosos que los que fracasan" H.F.
"No se cómo sería la III Guerra Mundial, pero la cuarta sería con piedras" A.E.
"Quién no fía no es de fiar..."


...no te quedes mirando.

thebeast

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: Matrices Esparcidas
« Respuesta #2 en: Miércoles 16 de Mayo de 2007, 08:01 »
0
gracias por haberme respondido pero eso yo ya lo sabia por lo q e medio podido investigar pero  necsito son ejemplos sencillos en c++ para ver como funcionan y entender mucho mejor matris espacidas o mas teoria.

Mollense

  • Miembro de PLATA
  • *****
  • Mensajes: 1755
  • Nacionalidad: ar
    • Ver Perfil
    • http://solocodigo.com/
Re: Matrices Esparcidas
« Respuesta #3 en: Miércoles 16 de Mayo de 2007, 15:47 »
0
Pero si es muy sencillo, mirá...

Si tuvieras por ejemplo esta matriz:
Código: Text
  1. 0 0 0 0 5 0 0 0 6 0 0 0 0 0 1 0
  2. 3 0 0 0 0 0 0 5 0 0 0 0 0 0 1 0
  3. 0 0 0 5 0 0 0 0 0 5 0 0 0 0 0 0
  4. 0 0 0 0 0 0 0 0 0 7 0 0 0 0 0 0
  5. 0 0 4 0 0 0 0 0 6 0 0 0 0 0 0 0
  6. 0 0 3 0 0 3 0 0 0 0 0 0 0 0 0 0
  7. 0 0 0 9 0 0 0 0 0 0 0 0 1 0 0 0
  8.  

Claramente vemos que es esparcida o dispersa por su gran porcentaje de valores nulos.
En el ejemplo, se estarían utilizando 16*7=112 locaciones de memoria para almacenar solamente 15 valores distintos de 0 que son los únicos que nos interesan.
Lo que se hace en estos casos es almacenar en 3 vectores (o un array) las coordenadas  de los valores distintos de cero y su valor.
Ej:
Citar
fil:  0, 0, 0, 1, 1, 1, 2, 2 ...
col: 4, 8, 14, 0, 7, 14, 3, 9 ...
val: 5, 6, 1, 3, 5, 1, 5, 5 ...

Espero que sirva de algo, en cuanto al código si tenés alguna duda puntual, coloca lo que vallas haciendo que seguramente te vamos a ayudar.

Un saludo
"Los que renuncian son más numerosos que los que fracasan" H.F.
"No se cómo sería la III Guerra Mundial, pero la cuarta sería con piedras" A.E.
"Quién no fía no es de fiar..."


...no te quedes mirando.

hackzlatan

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Re: Matrices Esparcidas
« Respuesta #4 en: Miércoles 9 de Enero de 2008, 23:29 »
0
Si pero esos ejemplos son muy triviales. Si alguien tiene un ejemplo de una matriz esparcida pero como estructura de datos, stilo lista enlazadas por favor publiquela en el foro asi tengan solo las primitivas

Amilius

  • Miembro HIPER activo
  • ****
  • Mensajes: 665
    • Ver Perfil
Re: Matrices Esparcidas
« Respuesta #5 en: Lunes 21 de Enero de 2008, 19:46 »
0
:rolleyes: Asi no vas a encontrar nada, tienes que separar la complejidad: Pues al final sería lo mismo que te dijo Mollense, sólo que en lugar de usar un array usas un código para manejar lista enlazadas, que ejemplos hay a montones. Y si quieres más velocidad pues usas unas tablas hash con punteros a los elementos: o puedes tener una tabla hash usando las filas o las columnas o divides el array en sectores, bueno lo que veas más conveniente. Al final todo se reduce a ¿cuanta velocidad quieres sacrificar para ahorrar memoria?.

Dwolfyful

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: Matrices Esparcidas
« Respuesta #6 en: Jueves 22 de Abril de 2010, 06:22 »
0
holas,soy nuevo en el foro,yo tbm estoy interesado en este tema, y sobretodo en la implementacion de la matriz esparcida con listas enlazadas simples,circulares,y dobles, en el anterior post, dice q hay ejemplos a montones acerca de estos,me podria pasar los links, o si tienen algunos,los podria subir,estoy especialmente interesado en la implementacion en C#,pero si esta en otro lenguaje, intentare comprenderlo,soy nuevo en esto de la programacion,gracias de antemano