Méthode du simplexe
Posté le 07/01/2014 22:31
Bonsoir,
J'ai un problème avec le programme suivant que j'ai récupéré sur internet.
Il s'agit d'un programme servant à résoudre des problèmes d'optimisation linéaire par la méthode du simplexe.
Je ne sais pas programmer sur casio mais il me semble que le problème vient de la fonction "&#" qui se répète plusieurs fois. Il y a une erreur de syntaxe dès le premier "&#". Je pense qu'il doit s'agir d'un symbole qui n'est pas passé lors d'un copié collé.
Quelqu'un pourrait-il m'aider à corriger cela ?
Merci d'avance
Code du programme :
"Le tableau doit etre copie dans la matrice A"Ù
"Nombre de lignes"?ãLÙ
"Nombre de colonnes"?ãCÙ
Ù
Lbl 0Ù
ClrTextÙ
Ù
1ãVÙ
For 2ãI To C-1Ù
If Mat A[L,I]>Mat A[L,V]Ù
Then IãVÙ
IfEndÙ
NextÙ
"Colonne du pivot = ":VØ
Ù
1ãWÙ
For 2ãI To L-1Ù
If Mat A[I,V]È0:ThenÙ
If Mat A[W,V]È0Ù
Then If (Mat A[I,C]ÁMat A[I,V]) < (Mat A [W,C]ÁMat A[W,V])Ù
Then IãWÙ
IfEndÙ
Else IãWÙ
IfEndÙ
IfEndÙ
NextÙ
"Ligne du pivot = ":WØ
Ù
Mat A[W,V]ãPÙ
"Pivot = ":PØ
Ù
Mat AãMat BÙ
Ù
For 1ãI To LÙ
For 1ãJ To CÙ
If I=WÙ
Then Mat B[I,J]»PãMat A[I,J]Ù
Else If J=VÙ
Then 0ãMat A[I,J]Ù
Else (Mat B[I,J]-((Mat B[W,J]xMat B[I,V])»P))ãMat A[I,J]Ù
IfEndÙ
IfEndÙ
NextÙ
NextÙ
Ù
For 1ãI To CÙ
If Mat A[L,I]>0Ù
Then C+2ãIÙ
IfEndÙ
NextÙ
If I<C+2Ù
Then "Dernier Tableau !"»Ù
IfEndÙ
Mat A»Ù
Goto 0
Wwwrt Invité
Citer : Posté le 05/12/2021 10:31 | #
Je ne comprends pas comment marche le programme de David … le résultat final nous sort le tableau de depart. De plus le choix du pivot n’est pas correct …
Citer : Posté le 05/12/2021 10:53 | #
Hmm c'est sûr que c'est un peu suspect... je vois pas du tout comment il fonctionne.
J'ai implémenté une version du simplexe en C il y a quelques temps, mais plus je me replonge dedans moins je comprends ce qui se passe dans le programme de David. x)
Je ne vois pas les slack variables, donc je suppose qu'il n'y a pas de phase I/phase II. Mais quand même je ne vois même pas où il stocke la fonction objectif dans la matrice. J'ai tenté de la mettre sur la première ligne, et il a fait un pivot avant de s'arrêter... en modifiant la première ligne. Sur la dernière ligne il ne se passe rien (comme toi, un pivot puis il renvoie le tableau d'origine).
Quelque chose me dit qu'il faudrait analyser pas mal le code pour voir ce qui se passe.