0% ont trouvé ce document utile (0 vote)
6 vues1 page

Optimisation de profit avec JuMP et GLPK

Transféré par

razi.contact3
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats TXT, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
6 vues1 page

Optimisation de profit avec JuMP et GLPK

Transféré par

razi.contact3
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats TXT, PDF, TXT ou lisez en ligne sur Scribd

using JuMP

using GLPK

# Données du problème
poids_max = 15
poids_articles = [12, 4, 2, 2]
profits_articles = [14, 10, 3, 5]
nb_max_articles = 3
cout_elasticite = 0.7
volume_max = 5
volume_articles = [1, 1, 1, 1]
cout_elasticite_volume = 2.3

# Définition du modèle
model = Model([Link])

@variable(model, 0 <= x[1:length(poids_articles)] <= nb_max_articles) # Variable


continue pour la relaxation linéaire
@variable(model, z >= 0, Int) # Variable pour le dépassement de poids
@variable(model, t >= 0) # Variable pour le dépassement de volume
@variable(model, w[1:length(poids_articles)] >= 0) # Variables auxiliaires pour
linéariser les contraintes non linéaires

# Contrainte de poids maximal avec coût élastique


@constraint(model, sum(poids_articles[i] * x[i] for i in 1:length(poids_articles))
+ z <= poids_max)

# Contrainte de volume maximal avec coût élastique de volume


@constraint(model, sum(volume_articles[i] * x[i] for i in
1:length(volume_articles)) + t <= volume_max)

# Linéarisation de la contrainte non linéaire |z - t| <= 1


@constraint(model, z - t <= 1)
@constraint(model, t - z <= 1)

# Fonction objective à maximiser avec coûts élastiques


@objective(model, Max, sum(profits_articles[i] * x[i] for i in
1:length(profits_articles)) -
cout_elasticite * z - cout_elasticite_volume * t)

# Résolution du modèle
optimize!(model)

# Affichage des résultats


println("Nouvelle valeur optimale obtenue avec élasticité : ",
objective_value(model))
println("Quantités optimales d'articles : ", value.(x))
println("Dépassement de poids : ", value(z))
println("Dépassement de volume : ", value(t))

Vous aimerez peut-être aussi