Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.

Forum Casio - Autres questions


Index du Forum » Autres questions » Méthode du simplexe
William Hors ligne Membre Points: 4 Défis: 0 Message

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 …
Lephenixnoir En ligne Administrateur Points: 22900 Défis: 149 Message

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.

LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v42 © créé par Neuronix et Muelsaco 2004 - 2023 | Il y a 67 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd