IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Caml Discussion :

Vecteur creux dynamique


Sujet :

Caml

  1. #1
    Membre du Club
    Homme Profil pro
    Chercheur en maths appli
    Inscrit en
    Novembre 2013
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Chercheur en maths appli
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2013
    Messages : 29
    Points : 46
    Points
    46
    Par défaut Vecteur creux dynamique
    Bonsoir,

    j'ai codé un algo de SVM (http://fr.wikipedia.org/wiki/Machine...urs_de_support), dont l'entraînement requiert la résolution d'un problème quadratique.
    De nombreux multiplicateurs de Lagrange étant nuls, on peut utiliser une structure de vecteur creux pour les représenter.

    Seulement, les différentes structures de données implémentées en OCaml ne me satisfont pas. J'aimerais pouvoir :
    - accéder efficacement au ième élément du vecteur.
    - modifier le vecteur durant la résolution QP : passer à 0 un élément non nul, ou donner une valeur non-nulle à un élément nul.
    - parcourir, éventuellement partiellement, les éléments (avec la possibilité de s'arrêter en route, pas comme un fold).

    Une Hashtbl m'aurait paru appropriée s'il n'y avait pas eu le 3e point...
    Des idées ?

  2. #2
    Membre émérite
    Avatar de SpiceGuid
    Homme Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 704
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 704
    Points : 2 990
    Points
    2 990
    Par défaut
    Ça me fait penser à un arbre Patricia.
    (sans oublier de lire le petit guide du bouturage qui donne plusieurs méthodes pour rendre mutable ton arbre Patricia)

    parcourir, éventuellement partiellement, les éléments (avec la possibilité de s'arrêter en route, pas comme un fold)
    Tu peux éventuellement quitter un fold (l'avorter, sans valeur de retour) à l'aide de l'exception Exit.
    Sinon tu ne vas pas trouver ça tout-prêt à l'emploi.
    Tu vas devoir implanter ton propre itérateur/récurseur qui progresse selon ton motif de parcours.

    EDIT: Éventuellement la bibliothèque OCaml Batteries included contient une structure de données prête à ton emploi. Si gasche passe par ici il pourra t'en dire davantage à ce sujet. Sinon je t'invite à consulter la documentation.
    Du même auteur: mon projet, le dernier article publié, le blog dvp et le jeu vidéo.
    Avant de poser une question je lis les règles du forum.

  3. #3
    Membre du Club
    Homme Profil pro
    Chercheur en maths appli
    Inscrit en
    Novembre 2013
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Chercheur en maths appli
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2013
    Messages : 29
    Points : 46
    Points
    46
    Par défaut
    Merci pour ta réponse !

    Pour le moment, j'implémente mon vecteur creux avec 3 structures (un élément x du vecteur appartient à [0, C]) :
    - une hashtable pour 0 < x < C
    - un set pour = 0
    - un set pour = C

    J'ai déjà mesuré un gain en temps sur l'entraînement du SVM
    Je vais regarder du côté des arbres Patricia.

Discussions similaires

  1. Les vecteurs creux
    Par trylam dans le forum Caml
    Réponses: 2
    Dernier message: 16/06/2012, 19h20
  2. Les vecteurs creux
    Par rikudou dans le forum Débuter
    Réponses: 22
    Dernier message: 23/04/2012, 02h34
  3. Jeu de loto & vecteurs dynamiques
    Par popy67 dans le forum Débuter avec Java
    Réponses: 1
    Dernier message: 04/01/2009, 11h35
  4. Réponses: 2
    Dernier message: 01/03/2007, 18h05
  5. Vecteur en dynamique
    Par kmaniche dans le forum C++
    Réponses: 8
    Dernier message: 15/10/2006, 16h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo