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

Algorithmes et structures de données Discussion :

algorithme de résolution d'une unique équation à n variables


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de Mourad
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 152
    Par défaut algorithme de résolution d'une unique équation à n variables
    je précise que ce n'est pas un système linéaire ici on a qu'une seule équation comme donnée le problème c'est de trouver ttes les solutions possibles à cette équation qq'un peut-il m'aider là dessus c urgent je cherche à réaliser l'algorithme permettant de parvenir à ttes les solutions possibles

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 192
    Par défaut
    Ton équation a des particularités spéciales (fonction continue, différentiable, intervalle de recherche borné... ?)

  3. #3
    Membre éprouvé Avatar de Mourad
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 152
    Par défaut
    ben voilà elle a la forme suivante
    A.X1 + B.X2 + ... + Y.Xn = TOTAL

    TOTAL et X1, ..... Xn sont connus et sont des paramètres en entrée pour l'alogorithme
    maintenant comment faire pour trouver toutes les solutions possibles càd : A, B .....et Y

    et tt ceci se passe ds N ts des entiers positifs

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 192
    Par défaut
    Ta fonction est linéaire discrète donc ?
    Une solution brutale est d'utiliser un algo de programmation dynamique (ici de complexité pseudo-polynomiale a priori).
    Ton problème est vaguement similaire au problème de sac-à-dos en nombre entiers, sauf que toi tu n'as pas de fonction économique et tu as une égalité au lieu d'une inégalité.
    En gros, tu énumères toutes les valeurs possibles :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    reste <- TOTAL
    - choisir une valeur entière pour A (tu as le choix entre 0..E(TOTAL/X1)) ; reste<-reste-A
    - choisir une valeur entière pour B (tu a le choix entre 0..E(reste/X2))
    -...
    - faire pareil pour les autres variables ; si tu as l'égalité, tu ajoutes la solution aux possibles
    - tu reviens en arrière en passant à une autre valeur possible pour chacune des variables
    Tu peux améliorer la méthode en t'arrêtant quand reste<min(Xk,...,Xn), ou des règles simples de ce genre.
    Cette méthode a des chances de fonctionner si TOTAL/min(X1,...,Xn) est assez petit et que n aussi.

  5. #5
    Membre éprouvé Avatar de Mourad
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 152
    Par défaut
    à vrai dire c'est la première fois que j'entends parler de ce problème du sac à dos...
    j'ai pas trop saisi ton explication mais je vais réfléchir là dessus...
    merci

  6. #6
    Membre chevronné
    Profil pro
    Directeur Scientifique
    Inscrit en
    Avril 2005
    Messages
    419
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur Scientifique

    Informations forums :
    Inscription : Avril 2005
    Messages : 419
    Par défaut
    Ton problème est NP-complet donc il est difficile d'espérer mieux qu'un algo pseudo-polynomial. Comme borisd, la programmation dynamique me semble tout à fait adaptée. Voici un algo possible:
    J'utiliserais une tableau T de TOTAL booléens initialisés à false. T[i] est mis à true lorsqu'on sait qu'on peut atteindre i.
    A l'étape k, on met à true les totaux qui peuvent être atteint à l'aide des nombres x[1]....x[k]
    Pour cela:
    A l'étape 0 on met T[0] à true et les autres T[i] à false.

    A l'étape k, pour chaque T[i] true, on met à true les valeurs T[i+x[k]], T[i+2x[k]], T[i+3x[k]]....

    Si, à la fin de l'étape, n T[TOTAL] est true, c'est qu'il existe un solution. Pour la retrouver, il faut faire le fameux "parcours arrière" de la programmation dynamique (si tu ne connais pas, n'hésite pas à regarder un bouquin du style Cormen: c'est très bien expliqué).

  7. #7
    Membre confirmé
    Inscrit en
    Juillet 2004
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 74
    Par défaut
    Citation Envoyé par Mourad
    je précise que ce n'est pas un système linéaire ici on a qu'une seule équation comme donnée le problème c'est de trouver ttes les solutions possibles à cette équation qq'un peut-il m'aider là dessus c urgent je cherche à réaliser l'algorithme permettant de parvenir à ttes les solutions possibles
    La ponctuation coûte cher ??

    Désolé pour ce message inutile... Mais j'ai eu un peu de mal...

  8. #8
    Membre éprouvé Avatar de Mourad
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 152
    Par défaut
    @Freyja pourtant on apprend à ponctuer dès l'école primaire :p
    Donc considères ça, comme un exercice pour toi
    à+

  9. #9
    Membre confirmé
    Inscrit en
    Juillet 2004
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 74
    Par défaut
    Citation Envoyé par Mourad
    @Freyja pourtant on apprend à ponctuer dès l'école primaire :p
    Donc considères ça, comme un exercice pour toi
    à+
    ghein ? je ne comprend pas ton message.

    Ce n'est pas une raison d'aller jusqu'à écrire en langage sms juste pour nous donner du travail de décodage !!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Algorithme de résolution de système d'équation
    Par Grinvald dans le forum Mathématiques
    Réponses: 7
    Dernier message: 20/08/2011, 22h11
  2. Résolution d'une équation trigonométrique
    Par tlemcenvisit dans le forum Algorithmes et structures de données
    Réponses: 21
    Dernier message: 20/08/2009, 17h47
  3. Résolution d'une équation
    Par johnvox dans le forum Delphi
    Réponses: 6
    Dernier message: 13/02/2007, 10h04
  4. Résolution d'une équation par Gauss
    Par rahmani01 dans le forum MATLAB
    Réponses: 3
    Dernier message: 03/11/2006, 22h15
  5. Algorithme de résolution d'une grille de scrabble
    Par Muetdhiver dans le forum Algorithmes et structures de données
    Réponses: 9
    Dernier message: 28/07/2006, 19h20

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