Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
570 connectés 

  FORUM HardWare.fr
  Programmation
  Algo

  INFO : matrices creuses

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

INFO : matrices creuses

n°470388
jagstang
Pa Capona ಠ_ಠ
Posté le 29-07-2003 à 01:03:06  profilanswer
 

Imaginez le problème suivant.
 
Vous devez stocker une matrice de 100000 x 100000 enregistrements.
 
De plus, vous savez d'avance, que le 90% de cette matrice contiendra un 0.
 
ça peut paraître bizzare comme concept, mais c'est fréquemment utilisé en Biologie.  
 
Comment pallier à ce problème ?
 
En créant un vecteur (ou tableau) de taille 100000.
Les indices de ce derniers pointeront vers une file de structures.
 
Pour finir, la structure contiendra : l'indice, et la valeur (si celle-ci est différente de 0 bien sûr)
 
Gain de place très important, mais accès aux données fortement ralenti (addition de matrice, recherche, etc...)
 
 
 
 
 
 


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
mood
Publicité
Posté le 29-07-2003 à 01:03:06  profilanswer
 

n°470392
burgergold
5$? va chez l'diable!
Posté le 29-07-2003 à 01:12:01  profilanswer
 

flag
 
mais sinon la solution que tu proposes est vivable, maintenant reste a savoir si ca vaut la peine de sauver cet espace au détriment de la vitesse


---------------
http://www.boincstats.com/signature/user_664861.gif
n°470395
jagstang
Pa Capona ಠ_ಠ
Posté le 29-07-2003 à 01:16:40  profilanswer
 

Oui faut pas sauter sur cette soluce à la première occase on est bien d'accord. Mais c'est utilisé en tout cas dans certain cas. Car l'accès est tout de même assez rapide si la matrice est quasi vide


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
n°470396
jagstang
Pa Capona ಠ_ಠ
Posté le 29-07-2003 à 01:17:21  profilanswer
 

http://www-igm.univ-mlv.fr/~beal/E [...] rices.html


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
n°470397
burgergold
5$? va chez l'diable!
Posté le 29-07-2003 à 01:20:37  profilanswer
 

jaime pas le dessin  :lol:  
 
http://www-igm.univ-mlv.fr/~beal/Enseignement/Polytechnique/Td4/representation.gif


---------------
http://www.boincstats.com/signature/user_664861.gif
n°470398
jagstang
Pa Capona ಠ_ಠ
Posté le 29-07-2003 à 01:21:43  profilanswer
 

ou c'est assez flou je trouve. Je prèfère mon explication


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
n°470400
Taz
bisounours-codeur
Posté le 29-07-2003 à 01:42:53  profilanswer
 

le dessin est correcte et la solution OK. mais essaye plutot avec une std::map si tu fais ça en C++

n°470401
burgergold
5$? va chez l'diable!
Posté le 29-07-2003 à 01:46:30  profilanswer
 

Taz a écrit :

le dessin est correcte et la solution OK. mais essaye plutot avec une std::map si tu fais ça en C++


 
explique? quest-ce que ca fait?
 
(mes cours de c remonte à longtemps et jpeux pratiquement dire quon a rien vu sauf comme faire des boucles et le minimum d'objet)


---------------
http://www.boincstats.com/signature/user_664861.gif
n°470403
Taz
bisounours-codeur
Posté le 29-07-2003 à 01:58:34  profilanswer
 

ou dans une hasmap. pas besoin de tout se cogner. il existe déjà des implémentations à base d'arbres ou de table de hashage.
 
apres tu accedes à tes éléments
 
map< pair<unsigned, unsigned>, double> matrice;
 
matrice[pair(0, 0)]; //par exemple
 
tu peux meme wrapper autour si tu veux paremeter la valeur par défaut de retour
 
documenter vous sur les maps, apres je ne saurais pas dire si l'implémentation non ISO sous forme de  hashmap fournit par SGI est plus performante. elle est relativement compatible avec std::map, donc egalement, on wrappe tout ça et on fait des tests pour voi

n°470404
Taz
bisounours-codeur
Posté le 29-07-2003 à 01:59:25  profilanswer
 

bien sur à implémenter comme montre Jag, c'est pas la mer à boire non plus

mood
Publicité
Posté le 29-07-2003 à 01:59:25  profilanswer
 

n°470405
burgergold
5$? va chez l'diable!
Posté le 29-07-2003 à 02:00:56  profilanswer
 

Taz: t un gourrou du C/C++? ou t dans la moyenne?
 
car le 3/4 des trucs que tu lances j'piges rien :D


---------------
http://www.boincstats.com/signature/user_664861.gif
n°470406
Taz
bisounours-codeur
Posté le 29-07-2003 à 02:03:20  profilanswer
 

  [:spamafote] demande, je suis pret à vous aider à fond sur ce truc.
 
pour l'implémentation à la main, on va mettre en pratique nos templates, se poser la question si la taille de la matrice est connue à la compilation.
enfin je sens que ça va partir en std::list< std::vector <double> > >

n°470408
burgergold
5$? va chez l'diable!
Posté le 29-07-2003 à 02:06:54  profilanswer
 

std::list< std::vector <double> > >  
 
rofl, c con mais dans le peu de c que jai fait jai jamais vu ce genre de truc
 
une chance que jai fait du perl un peu et jpige le std::list, mais pour les reste jcrois que jai beaucoup de théorie à faire :D
 
sérieusement présentement jfais un peu de tout, perl de base, php, web, rexx, jai deja fait du c, du progress, vb6( :lol: )
 
tjrs pas de java et mon c/c++ est pas très poussé mais jveux l'améliorer parce que jai possibilité de me brancher les pieds dans une boite de jeu pour mes stages et j'suis plutot quelqu'un pro-optimisation alors codé en couillon ca me tente pas trop


---------------
http://www.boincstats.com/signature/user_664861.gif
n°470411
Taz
bisounours-codeur
Posté le 29-07-2003 à 02:14:37  profilanswer
 

ben tu crois que je me suis démené pour vous faire des petits topics aujourd'hui pour rien?

n°470412
jagstang
Pa Capona ಠ_ಠ
Posté le 29-07-2003 à 02:15:00  profilanswer
 

burger je te rassure. Taz est un gourou. T'es pas le seul à pas tout capter  :p


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
n°470413
jagstang
Pa Capona ಠ_ಠ
Posté le 29-07-2003 à 02:15:59  profilanswer
 

Taz a écrit :

ben tu crois que je me suis démené pour vous faire des petits topics aujourd'hui pour rien?


 
Oui chapeau les topics. ça relève le niveau parce que des fois...


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
n°470415
burgergold
5$? va chez l'diable!
Posté le 29-07-2003 à 02:16:30  profilanswer
 

Taz a écrit :

ben tu crois que je me suis démené pour vous faire des petits topics aujourd'hui pour rien?


 
justement, jviens den lire quelques uns, du genre le pré-incrémentation et post-incrémentation
 
jcomprends ton exemple, mais l'appliquer dans un cas concret j'en serait incapable :D


---------------
http://www.boincstats.com/signature/user_664861.gif
n°470416
burgergold
5$? va chez l'diable!
Posté le 29-07-2003 à 02:17:05  profilanswer
 

JagStang a écrit :

burger je te rassure. Taz est un gourou. T'es pas le seul à pas tout capter  :p  


 
ouf :D
 
jcrois que jvais m'arranger pour etre copaing copaing avec Taz :D


---------------
http://www.boincstats.com/signature/user_664861.gif
n°470419
Taz
bisounours-codeur
Posté le 29-07-2003 à 02:24:58  profilanswer
 

burgergold a écrit :


 
justement, jviens den lire quelques uns, du genre le pré-incrémentation et post-incrémentation
 
jcomprends ton exemple, mais l'appliquer dans un cas concret j'en serait incapable :D

ben peut etre un jour tu vas décrire un type de donner qui a une arithmétique. Jag travaille sur des matrices. on peut tres bien prévoir une sémantique m+=x incrémente tous les éléments de la matrice de x. donc pour des raccourcis, on veut ecrire m++ et ++m.
 
tu la sens la copie inutile là?

n°470421
burgergold
5$? va chez l'diable!
Posté le 29-07-2003 à 02:36:07  profilanswer
 

jcapte pas mais fait toi en pas, p-e que d'ici 1 an jvais comprendre :D
 
deja que jsavais pas que ca se faisait ++m
 
sémantique ? j'ai deja eu des problemes de semaphore sur linux, jconsidere que c par rapport à l'allocation mémoire


---------------
http://www.boincstats.com/signature/user_664861.gif
n°470422
Taz
bisounours-codeur
Posté le 29-07-2003 à 02:38:18  profilanswer
 

burgergold a écrit :

jcapte pas mais fait toi en pas, p-e que d'ici 1 an jvais comprendre :D
 
deja que jsavais pas que ca se faisait ++m
 
sémantique ? j'ai deja eu des problemes de semaphore sur linux, jconsidere que c par rapport à l'allocation mémoire

la sémantique n'a rien à voir avec les sémaphores qui n'ont rien à voir avec l'allocation mémoire qui n'a rien à voir avec la sémantique....
 
 
tu as eu ton bac de français??? ouvre ton dico    [:tomtom75]  :D

n°470423
burgergold
5$? va chez l'diable!
Posté le 29-07-2003 à 02:39:13  profilanswer
 

Taz a écrit :

la sémantique n'a rien à voir avec les sémaphores qui n'ont rien à voir avec l'allocation mémoire qui n'a rien à voir avec la sémantique....
 
 
tu as eu ton bac de français??? ouvre ton dico    [:tomtom75]  :D  


 
ouais bin jsuis au québec moi, et c pas un mot très utilisé :D


---------------
http://www.boincstats.com/signature/user_664861.gif
n°470425
Taz
bisounours-codeur
Posté le 29-07-2003 à 02:45:49  profilanswer
 

Sémantique -> relatif au sens d'un mot, ou d'une unité linguistique. par extension, on parle donc de sméantique dans les langages informatiques. ça se rapporte à l'interprétation et à la signification. la sémantique donne du sens à la synthaxe.


Message édité par Taz le 29-07-2003 à 02:46:27
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Algo

  INFO : matrices creuses

 

Sujets relatifs
[java] rafraichissement jframe + info optimisation [OK]Applet info-bulles
PROJET INFO BTS.. ca arrive...[VB] VFW Codec info ca merde ...
[C] - Recuperer des info sur les signaux posix[C++ Builder] Info version
projet info -> circuits électroniques (en C)[XML-JPG] recupere des info XML et en faire un JPG
Les info temperature, voltage de votre carte gaphique sous MBM5 !Besoin d'info traitement de formulaire
Plus de sujets relatifs à : INFO : matrices creuses


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR