Codage RO signalement d'erreur pulp

Résolu
KABATOURE Messages postés 5 Statut Membre -  
KABATOURE Messages postés 5 Statut Membre -

Bonjour, je travail sur un probleme de RO avecle

from pulp import*

#Specifier le probleme
prob = LpProblem("Agriculteur", LpMaximize)

#Definir les variables de controles
x1 = LpVariable("x1", lowBound=0) # car x1 >=0
x2 = LpVariable("x2", lowBound=0) # car x2 >=0

#Definir la fonction objectif
prob += 10*x1 + 12*x2

#definir les contraintes 
prob += 3*x1 + 4*x2 <= 42 # contraintes sur le temps
prob += 1*x1 + 3*x2 <=24 # contraintes sur l'angrai
prob += 1*x1 + 1*x2 <= 13 # contrainte sur la surface de parcelle cultivable

# verification du resumer de notre probleme
prob

Agriculteur:
MAXIMIZE
10*x1 + 12*x2 + 0
SUBJECT TO
_C1: 3 x1 + 4 x2 <= 42

_C2: x1 + 3 x2 <= 24

_C3: x1 + x2 <= 13

VARIABLES
x1 Continuous
x2 Continuous

# Resoudre avec le solveur par defaut
status = prob.solve()
#Afficher la solution status
LpStatus[status]

Et quand j'essaie  de résoudre le problème avec un solve une erreur du genre ce produit <<

---------------------------------------------------------------------------
IndexError                                Traceback (most recent call last)
Input In [22], in <cell line: 4>()
      2 status = prob.solve()
      3 #Afficher la solution status
----> 4 LpStatus[status]

IndexError: list index out of range

>>


Windows / Chrome 105.0.0.0

5 réponses

  1. hypothetix Messages postés 194 Date d'inscription   Statut Membre Dernière intervention   68
     

    Bonjour,

    Quelle version de python et de pulp utilises-tu ?

    Avec python 3.7.1 win 64 et pulp 2.6.0 ton programme ne sort aucun message d'erreur

    from pulp import*
    
    #Specifier le probleme
    prob = LpProblem("Agriculteur", LpMaximize)
    
    #Definir les variables de controles
    x1 = LpVariable("x1", lowBound=0) # car x1 >=0
    x2 = LpVariable("x2", lowBound=0) # car x2 >=0
    
    #Definir la fonction objectif
    prob += 10*x1 + 12*x2
    
    #definir les contraintes
    prob += 3*x1 + 4*x2 <= 42 # contraintes sur le temps
    prob += 1*x1 + 3*x2 <=24 # contraintes sur l'angrai
    prob += 1*x1 + 1*x2 <= 13 # contrainte sur la surface de parcelle cultivable
    
    # verification du resumer de notre probleme
    prob
    print(prob)
    # Resoudre avec le solveur par defaut
    status = prob.solve()
    #Afficher la solution status
    LpStatus[status]
    print(status)
    print(LpStatus[status])
    *** Python 3.7.1 (v3.7.1:260ec2c36a, Oct 20 2018, 14:57:15) [MSC v.1915 64 bit (AMD64)] on win32. ***
    *** Remote Python engine is active ***
    >>> 
    *** Remote Interpreter Reinitialized ***
    Agriculteur:
    MAXIMIZE
    10*x1 + 12*x2 + 0
    SUBJECT TO
    _C1: 3 x1 + 4 x2 <= 42
    
    _C2: x1 + 3 x2 <= 24
    
    _C3: x1 + x2 <= 13
    
    VARIABLES
    x1 Continuous
    x2 Continuous
    
    Welcome to the CBC MILP Solver 
    Version: 2.10.3 
    Build Date: Dec 15 2019 
    
    command line - C:\Python37\lib\site-packages\pulp\apis\..\solverdir\cbc\win\64\cbc.exe C:\Users\operator\AppData\Local\Temp\5cd7a70bae6e4e0ebe1cbe60def9f728-pulp.mps max timeMode elapsed branch printingOptions all solution C:\Users\operator\AppData\Local\Temp\5cd7a70bae6e4e0ebe1cbe60def9f728-pulp.sol (default strategy 1)
    At line 2 NAME          MODEL
    At line 3 ROWS
    At line 8 COLUMNS
    At line 17 RHS
    At line 21 BOUNDS
    At line 22 ENDATA
    Problem MODEL has 3 rows, 2 columns and 6 elements
    Coin0008I MODEL read with 0 errors
    Option for timeMode changed from cpu to elapsed
    Presolve 3 (0) rows, 2 (0) columns and 6 (0) elements
    0  Obj -0 Dual inf 22 (2)
    0  Obj -0 Dual inf 22 (2)
    3  Obj 136
    Optimal - objective value 136
    Optimal objective 136 - 3 iterations time 0.002
    Option for printingOptions changed from normal to all
    Total time (CPU seconds):       0.00   (Wallclock seconds):       0.00
    
    1
    Optimal
    >>> 

    J'espère que cela t'aidera un peu.

    1
    1. KABATOURE Messages postés 5 Statut Membre 1
       

      Merci pour l'aide j'utilise la version de python 3.9

      0
  2. hypothetix Messages postés 194 Date d'inscription   Statut Membre Dernière intervention   68
     

    Bonsoir,

    Ton programme fonctionne puisqu'il fonctionne sur mon pc.

    Es-tu sous Linux ou windows ou autre ?
    Le solver sous windows est bavard comme tu peux le voir sur ma sortie d'écran.

    Peux-tu nous donner la tienne complete ?

    Et donner la valeur de status après la command du solver

    status = prob.solve()
    print(status)
    
    1
  3. KABATOURE Messages postés 5 Statut Membre 1
     

    Je travail sur Windows / python 3.9 , je vois il vous fait un petit rédaction et je pense la version de votre python serait à l'origine .

    Mois j'obtient directement :

    Agriculteur:
    MAXIMIZE
    10*x1 + 12*x2 + 0
    SUBJECT TO
    _C1: 3 x1 + 4 x2 <= 42
    
    _C2: x1 + 3 x2 <= 24
    
    _C3: x1 + x2 <= 13
    
    VARIABLES
    x1 Continuous
    x2 Continuous
    
    1
    Optimal
    x1 => 10.0
    x2 => 3.0
    Max(z(x1,x2)) => 136.0

    NB: le constat que j'ai fait, lorsque je travail par bloc sur jupyter notebook, mon programme ne marche pas et par contre quand je laisse le code dans un seul bloc, c nickel.

    1
  4. KABATOURE Messages postés 5 Statut Membre 1
     

    Merci pour l'aide j'utilise la version de python 3.9 et ce type de programme marche avec d'autre problème de RO 

    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. KABATOURE Messages postés 5 Statut Membre 1
     

    Je suis actuellement en Licence 3 Modélisation, mathématiques analyse et simulation numérique. Et  comme vous le savez dans l'apprentissage universitaire tout est une question de système, de stratégie et d'optimisation pour réussir  efficacement, afin de devenir un ingénieur exceptionnel, donc j'ai besoin des ressources de cours très pratiques qui me permettront d'avoir des connaissances solide dans le domaine dans le but d'intégrer rapidement et efficacement le monde professionnel des ingénieurs et j'espère que vous pouvez m'aider sur la documentation de qualité.

    0