Structure de données venant de l`interface de saisie

publicité
Ex – IUT
Projet MATLAB
Compte rendu de la soutenance intermédiaire du 19/11/02
FIIFO3
Présents
M. Calisti et M. Astier, tous les étudiants ex-DUT-BTS.
Absents
Aucun absent.
Objet
L’objectif était de faire un tour de table pour expliciter les différentes tâches de chacun afin
de déceler les points pouvant poser problème et les éventuels désaccords au niveau du
cahier des charges.
I. Présentation générale
La dernière version du schéma d’enchaînement des différentes tâches sera bientôt à
disposition.
II. Structures de données principales
En ce qui concerne les algorithmes primal et dual, il faut conserver les indices des bases
pour éviter un éventuel bouclage infini.
Remarque : la dégénérescence n’est pas prévisible.
III. Description des différentes parties
a. Saisie
Modification à propos de la solution de base évidente : on n’entre plus les indices des
vecteurs mais le vecteur X = (x1, …, xn ) solution du PL. On vérifie qu’il est solution. Si
oui, on effectue un traitement particulier, sinon, échec (traité par Manuel et Damien).
Aucune limite pour l’affichage (n et m illimités).
Prévoir (mais ce n’est pas prioritaire) le chargement et la sauvegarde des PL dans des
fichiers.
Ajouter la possibilité de choix de l’algorithme à dérouler : indifférent | primal | dualprimal.
b. Choix de l’algorithme, ou résolution
S’il s’agit d’un problème de max, on travaille sur le tableau primal, sinon on utilise le
tableau dual.
Cas où l’utilisateur n’a pas précisé de souhait quant à l’algorithme à dérouler : si le tableau
utilisé est primal admissible, on applique l’algorithme primal, sinon (dans tous les autres
cas), on applique l’algorithme dual-primal (phase I duale et phase II primale).
Attention : il faut néanmoins favoriser la représentation graphique 2D.
18/11/2002
Page 1 sur 3
Ex – IUT
Projet MATLAB
Compte rendu de la soutenance intermédiaire du 19/11/02
FIIFO3
Après un premier affichage du résultat final, on doit pouvoir revenir au choix des options
pour que l’utilisateur puisse, par exemple, modifier le choix de l’algorithme à dérouler pour
le PL.
c. Solution
Il faut avertir l’utilisateur si la solution qu’il a saisi n’est pas bonne et le simplexe sera
lancé. Autrement (si la solution saisie est bonne), ce traitement renvoie un tableau primal
admissible.
Conseil : utiliser les fonctions prédéfinies de Matlab (déterminant…).
d. Algorithmes primal et dual-primal
Prévoir des fonctions qui prennent en paramètre une base donnée.
Stocker toutes les bases (ou plutôt leurs indices) à chaque étape pour déceler le bouclage.
Algorithme dual : si le tableau n’est ni primal admissible, ni dual admissible, il faut ajouter
une fonction objectif auxiliaire (puis la supprimer). Cela doit être géré par l’algorithme
lui-même. S’il est dual admissible, on applique simplement l’algorithme.
e. Affichage du résultat
Proposition : rajouter une barre d’état pour la communication avec l’utilisateur.
Il faudrait indiquer à l’utilisateur le passage de la phase duale à la phase primale (à prévoir
par la partie choix de l’algorithme).
Dans le cas où il n’y a pas de solution admissible, avertir l’utilisateur et faire néanmoins
une représentation graphique (2D uniquement).
Ajouter un bouton pour quitter.
La représentation graphique est une représentation dynamique, fonction des PL.
f. Troncature
Le traitement de la troncature constitue une tâche suffisamment complète, et le traitement
des autres cas proposés peut être annexe.
g. Ajout de contraintes
Cela se fera grâce à l’onglet Edition de l’interface d’affichage du résultat.
Après chaque changement d’un b i, il faut recalculer la solution (traitement particulier).
18/11/2002
Page 2 sur 3
Ex – IUT
Projet MATLAB
Compte rendu de la soutenance intermédiaire du 19/11/02
FIIFO3
Conclusion
Le calendrier est le suivant : tout doit être fini dans les plus courts délais !
18/11/2002
Page 3 sur 3
Téléchargement