2017-10-09 4 views
2

Je suis (presque) débutant avec CPLEX et optimisation. J'essaie de mettre en place un problème d'optimisation dans Matlab en utilisant la nouvelle fonctionnalité de CPLEX (12.7.1), qui permet la définition de contraintes linéaires par morceaux (PWL). Cependant, il n'est pas clair pour moi comment le faire dans Matlab. La documentation sur ce sujet est assez éparse. IBM n'a qu'un seul exemple (transport.m), qui définit la contrainte linéaire par morceaux comme une combinaison d'égalités linéaires et de SOS de type 2. Toutefois, cette fonctionnalité n'est pas vraiment utilisée pour spécifier directement une fonction linéaire par morceaux. Et la procédure dans matlab peut devenir très lourde à mesure que le nombre de variables et de contraintes par morceaux augmente. Savez-vous s'il existe un moyen de l'exprimer différemment, dans Matlab?Contrainte linéaire par morceaux dans l'API CPLEX pour MATLAB

Merci

Répondre

2

Le nouveau support de contrainte linéaire par morceaux que vous mentionnez a été annoncé dans le communiqué des notes here (Dans la version 12.7.0). L'API MATLAB n'était pas incluse dans cette liste. Si avoir la fonctionnalité directement dans MATLAB est important pour vous, vous pouvez ajouter une demande pour cela dans le IBM RFE Community. En attendant, vous devrez utiliser l'une des autres API (C, C++, Java, .NET, Python).

Vous pouvez appeler un autre exécutable depuis MATLAB à l'aide de la commande system. D'un autre côté, en plus d'exiger un peu plus de travail, votre technique actuelle devrait être bonne.

+0

Merci pour votre réponse! En effet, je viens de découvrir grâce à votre lien qu'ils ont probablement fait une erreur en écrivant les notes de version. Dans les notes de publication de [12.7.0] (https://www.ibm.com/support/knowledgecenter/en/SSSA5P_12.7.0/ilog.odms.cplex.help/CPLEX/ReleaseNotes/topics/releasenotes127/newPWL. html) ils mentionnent Matlab parmi les API. Cependant, dans les notes de publication pour [12.7.1] (https://www.ibm.com/support/knowledgecenter/SSSA5P_12.7.1/ilog.odms.studio.help/CPLEX/ReleaseNotes/topics/releasenotes127/newPWL.html) ils ont supprimé cela. –