Déclaration d'une variable avec trois indices avec ilocplex
Fermé
sonya
-
Modifié le 12 avril 2017 à 20:22
[Dal] Messages postés 6204 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 27 février 2025 - 13 avril 2017 à 10:49
[Dal] Messages postés 6204 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 27 février 2025 - 13 avril 2017 à 10:49
A voir également:
- Voici trois pannes que l'on peut rencontrer au démarrage d'un ordinateur pix
- Ordinateur lent au démarrage - Guide
- Voici trois pannes que l’on peut rencontrer au démarrage d’un ordinateur : - Guide
- Qu'est ce qui se lance au démarrage de l'ordinateur - Guide
- Reinitialiser pc au demarrage - Guide
- Forcer demarrage pc - Guide
1 réponse
[Dal]
Messages postés
6204
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
27 février 2025
1 101
12 avril 2017 à 17:57
12 avril 2017 à 17:57
Salut,
Je ne connais pas cplex, cependant, en C, un tableau de taille "nb_nodes" est accessible par des indices allant de 0 à nb_nodes - 1
Une boucle for sur un tel tableau devrait alors s'écrire :
Pour le reste ton code est très bizarre pour moi et ne ressemble guère syntaxiquement à du C.
Dal
Je ne connais pas cplex, cependant, en C, un tableau de taille "nb_nodes" est accessible par des indices allant de 0 à nb_nodes - 1
Une boucle for sur un tel tableau devrait alors s'écrire :
for(i=0; i< nb_nodes; i++) { (...)
Pour le reste ton code est très bizarre pour moi et ne ressemble guère syntaxiquement à du C.
Dal
12 avril 2017 à 18:34
En fait, j'ai intégré le cplex avec visual studio et je cherche à écrire mon programme linéaire en utilisant l'ilocplex et le langage C.
Pour faire, il me faut déclarer une variable que je vais la manipuler avec trois indices. x[i][j][k]
Modifié le 12 avril 2017 à 19:18
si NumVar3Matrix était un type C définit avec typedef, et X un nom de variable, il ne me parait pas qu'il soit correct en C que la déclaration de cette variable soit suivie de paramètres entre parenthèses.
Cela ressemble plutôt à l'appel au constructeur d'un objet C++
en cherchant un peu sur le Net, on trouve cette doc d'IBM :
https://www.ibm.com/support/pages/node/397011
qui évoque un fichier d'exemple "facility.cpp example available in $CPLEXDIR\examples\src" qui est du C++ avec du code qui utilise les indices de tableaux correctement (c'est à dire en comptant à partir de 0), le C++ ne différant pas du C sur ce point.
Dal
12 avril 2017 à 19:24
Pourriez vous m'aider à declarer une variable de type prédefini NumVar3Matrix en C et la manipuler avec langage c aussi.
Merci d'avance.
Modifié le 12 avril 2017 à 20:01
Voir : https://www.ibm.com/support/knowledgecenter/SSSA5P_12.7.0/ilog.odms.studio.help/pdf/usrcplex.pdf (pages 60 et suivantes) mais la doc sur la façon d'utiliser l'API C est très spartiate.
En page 66, on confirme par ailleurs dans "Referencing ranges of objects" que "Consistent with standard C programming practices, in CPLEX an array containing k
items will contain these items in locations 0 (zero) through k-1".
Quand à "NumVar3Matrix" si c'est un type prédéfinit par cplex, il n'est pas mentionné dans cette doc... et cela n'en serait pas un, si on se fie à l'exemple dont j'ai posté le lien ci-dessus, qui le définit ainsi :
c'est à dire un type définit par l'utilisateur (donc une sorte d'alias) sur un template C++.
pourquoi ne le fais-tu pas en C++ cela a l'air bien mieux documenté ?
si je me fie à l'exemple, et sans connaître du tout cplex, ni être en mesure de tester quoi que ce soit, cela donnerait cela en corrigeant simplement les bornes des tableaux :
Dal
12 avril 2017 à 20:17
J'ai déja consulté ce document et j'ai essayé de comprendre comment utiliser l'API c mais je n'arrive pas.
Il me faut travailler avec le langage c , c'est tout un projet de mémoire dont la base est codée en C.
Je vais essayer de changer les bornes et tester.