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

Mathématiques Discussion :

Somme minimale entre ensemble


Sujet :

Mathématiques

  1. #1
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2007
    Messages : 94
    Points : 72
    Points
    72
    Par défaut Somme minimale entre ensemble
    Bonjour,

    je suis face à un problème en programmation linéaire. Je dispose d'un ensemble I de complexes (les batiments, pas les nombres), d'un ensemble J de véhicules, et d'un ensemble K de clients.
    La variable Xijk signifie que le client k est associé au véhicule j qui est associé au complexe i lorsqu'elle vaut 1, sinon elle vaut 0.

    Pour respecter les contraintes, je dois faire en sorte qu'un véhicule j ne soit associé qu'à un seul complexes.

    Je dois donc vérifier que :

    Xi1-j-k1 + Xi2-j-k2 <= 1, pour i1 <> i2, et k1 <>k2, et j fixé.

    Pour faire cela, pour toutes les valeurs possibles, j'ai donc fait :
    Code Xpress : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    forall(j in VEHICLES)
    forall(i1 in FACILITIES, i2 in FACILITIES)
    	if ( not((i1 = i2)) ) then
    		forall(k1 in CLIENTS, k2 in CLIENTS)
    			if ( not((k1 = k2)) ) then
    				variables(i1, j, k1) + variables(i2, j, k2) <= 1
    			end-if
    	end-if

    Le problème, c'est que ca prend beaucoup de mémoire pour tout tester. Et surtout, il faut également que je puisse le généraliser, c'est à dire avoir quelque chose de la forme :
    Somme Xi-j-k <= 1 avec les couples (i,k) différents deux à deux.

    Ce que j'ai fait actuellement ne le fait que deux à deux. Je pense que si toutes les équations sont vérifiées, alors la généralisation fonctionne aussi. Mais ca prend énormément de temps. Je recherche donc un moyen de faire la généralisation, pour comparer, mais je n'y arrive pas.

    Merci de votre aide.

  2. #2
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Tu n'as pas d'autre moyen d'accéder aux données que ta méthode "variables(i, j, k)" ? Car cela implique forcement de faire des énumération ("forall") pour avoir des informations du genre "existe", "contient" , "non nul", ...
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

Discussions similaires

  1. calcul de la distance minimale entre un point et un ellipsoïde
    Par kamelcompte dans le forum Mathématiques
    Réponses: 20
    Dernier message: 19/04/2010, 18h57
  2. distance minimale entre point et plan
    Par mar1985 dans le forum Mathématiques
    Réponses: 1
    Dernier message: 22/06/2009, 22h31
  3. Somme de l'ensemble des valeurs d'un tableau
    Par Merlin92 dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 05/08/2008, 15h11
  4. Réponses: 2
    Dernier message: 25/04/2008, 07h49
  5. Double somme (SUM) entre deux tables ?
    Par kibodio dans le forum Langage SQL
    Réponses: 5
    Dernier message: 16/02/2005, 22h26

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