Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
La shoutbox n'est pas chargée par défaut pour des raisons de performances. Cliquez pour charger.

Forum Casio - Projets de programmation


Index du Forum » Projets de programmation » [Aide] Algorithme du simplexe


Valou14 Invité

[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


Lephenixnoir Hors ligne Administrateur Points: 24228 Défis: 170 Message

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

"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,]⇒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.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Zezombye Hors ligne Rédacteur Points: 1756 Défis: 13 Message

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)

"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]*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

Divers jeux : Puissance 4 - Chariot Wars - Sokoban
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"
David Hors ligne Membre Points: 82 Défis: 0 Message

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
Lephenixnoir Hors ligne Administrateur Points: 24228 Défis: 170 Message

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 !
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)

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 v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | 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