[Aide] Algorithme du simplexe
Posté le 07/04/2018 17:38
Bonjour à tous,
Je cherche quelqu'un de sympa pour remettre à jour cette algorithme :
Il s'agit de l'algorithme du simplexe que l'on peut résoudre à la main, mais comme je suis fainéant, je préfère passer par la calculatrice
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
j'ai repris ce code sur votre propre site à l'adresse suivante:
https://www.planet-casio.com/Fr/forums/topic12588-1-Methode-du-simplexe.html
Toute aide est la bienvenue
Citer : Posté le 07/04/2018 17:50 | #
Salut ! Je connais pas le catalogue des caractères bizarres par cœur, mais voilà déjà un début. Si tu connais la méthode du simplexe mieux que moi, tu pourras probablement retrouver les trois caractères qui manquent :
È - Probablement un symbole de comparaison, apparaît deux fois
Á - Probablement un symbole d'opération binaire, apparaît deux fois
» - Probablement une opération binaire, apparaît une fois
"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,]⇒P→Mat A[I,J]
Else If J=V
Then 0→Mat A[I,J]
Else (Mat B[I,J]-((Mat B[W,J]×Mat 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
C'est le genre de connaissances vaudoues qui disparaissent avec le temps...
Edit : Erreur de ma part, il y a trois caractères que je n'ai pas trouvés.
Citer : Posté le 07/04/2018 18:05 | #
Les trucs bizarres, c'est parce que FA-124 utilise une police spéciale qui remplace ces caractères par les opcodes. (moi au moins j'ai fait l'effort d'utiliser l'espace unicode privé, mais bon ce programme date donc je l'excuse)
Du coup il suffit de copier coller dans FA-124 (et optionnellement, ouvrir le g1m avec BIDE pour reconvertir en unicode).
Par contre, comme le dit le topic d'où tu l'as pris, il y a des erreurs de syntaxe que j'ai essayé de corriger (des symboles fraction à la fin, et des fractions au lieu des divisés dans certaines formules).
(faudrait que je mette un mode de conversion FA-124 -> unicode dans BIDE, ça pourrait être pratique pour certains programmes)
"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]*Mat 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
Ecrivez vos programmes basic sur PC avec BIDE
Valou14 Invité
Citer : Posté le 09/04/2018 22:50 | #
Super !
Je vous remercie d'avoir déjà répondu, Je reviendrai vers vous prochainement
Pour le/les webmasters :: Je crois que l'alerte par mail lorsqu'une réponse est postée ne fonctionne pas. En tout cas en tant que "visiteur"
Citer : Posté le 09/06/2019 15:07 | #
Pour ceux que ca peut aider, j'ai repris l'algorithme que j'ai un peu modifié, et j'en ai fait un programme dispo ici :
https://www.planet-casio.com/Fr/programmes/voir_un_programme_casio.php?showid=3828
Citer : Posté le 09/06/2019 15:17 | #
Nice ! On dirait que c'est la règle du maximum par contre, qui ne converge pas toujours très bien. Dommage !