[PYTHON] Méthode de description d'optimisation de style Gurobi

1. Préférences

・ Installez la bibliothèque avec pip install mypulp

2. Méthode de montage

#① Appelez la bibliothèque d'optimisation
from mypulp import *

#② Définissez le modèle
model = Model("Le nom peut être n'importe quoi")

#③ Déclarer des variables
X =model.addVar(lb=0,ub=GRB.INFINITY,vtype=‘C’,name=‘’)
#C:Continuous,B:Binary,I:Inter

#④ Mettre à jour le modèle(Après la déclaration de variable)
model.update()
#Requis pour le gurobi mais pas pour la pulpe

#⑤ Définir les contraintes
model.addConstr(Formule du côté gauche==Formule du côté droit, name='Nom') 

#⑥ Définir la fonction objectif
model.setObjective(Formule de la fonction objective, GRB.MINIMIZE)

#⑦ Résolvez le modèle
model.optimize()

#⑧ Sortir le résultat
print('Opt. Value=', model.ObjVal)
print('x=', x.X)

#Stocker le résultat de l'optimisation dans l'état
status = model.Status()
#If status == GRB.Status.OPTIMAL:
#Traiter avec


#Comment vérifier le résultat de la formule
model.write("Nom.lp")

for v in model.getVars():
	print(v, v.X)#Variable à v, v.La solution optimale est en X

for c in model.getConstr():
	print(c.ConstrName, c.Slack, c.Pi)
	#C.ConstrName avec le nom de la contrainte, c.Variables Slack dans Slack,
	#c.Pi contient le multiplicateur de Lagrange

Recommended Posts

Méthode de description d'optimisation de style Gurobi
Optimisation SVM par la méthode de l'ensemble actif
Méthode de description pour réutiliser des variables dans shellscript
Méthode gagnante des courses de chevaux par optimisation des combinaisons