$$$$ EXCE NOTICE KK2000 15/02/03 21:15:06 8353 DATE 15/02/03 Operateur EXCELLENCE Voir aussi : -------------------- TAB1 = EXCE TAB1 ; TAB1.'VX0' .'VF' .'VXMIN' .'VXMAX' .'MC' .'VCMAX' .'METHODE' .'DELTA0' .'MAXITERATION' .'XSMAX' .'VDIS' .'T0' .'S0' Objet : ------- L'operateur EXCELL cherche le minimum d'une fonction F(Xi), la methode utilisee est connue sous le nom de MMA (Method of Moving Asymptotes) proposee par K.Svanberg. Il s'agit donc de trouver le minimum d'une fonction F(Xi) avec i=1,N et sachant que : - il existe des relations Cj(Xi) < Cjmax j > 0 j=1,M - Il existe des relations sur chaque inconnue Ximin < Xi < Ximax La donnee des fonctions F et Cj se fait a l'aide des valeurs des fonctions et de leurs derivees au point de depart X0. Donnees : --------- TAB1.'VX0' : table (sous-type VECTEUR) contenant les valeurs initiales des variables X0i. La table est indicee par les ENTIERs i. (i=1,N) TAB1.'VF' : table (sous-type VECTEUR) contenant : - dans TAB1.'VF'.0 : la valeur de F(X0i) - dans TAB1.'VF'.I : la valeur de la derivee de F par rapport a Xi en X0 (i=1,N). TAB1.'MC' : table indicee par des ENTIERs j (j=1,M) et contenant autant de tables que de relations Cj. TAB1.'MC'.J est une table representant la fonction Cj - dans TAB1.'MC'.J.0 : la valeur initiale de Cj(X0) (j=1,M) - dans TAB1.'MC'.J.I : la valeur de la derivee de Cj par rapport a Xi en X0 (i=1,N). TAB1.'VXMIN' : table indicee par des ENTIERs (i=1,N) et contenant : - dans TAB1.'VXMIN'.I : la valeur de Ximin TAB1.'VXMAX' : table indicee par des ENTIERs (i=1,N) et contenant : - dans TAB1.'VXMAX'.I : la valeur de Ximax TAB1.'VCMAX' : table indicee par des ENTIERs (i=1,M) et contenant : - dans TAB1.'VCMAX'.I : la valeur de Cjmax TAB1.'METHODE' : (facultatif) est un MOT precisant la methode de linearisation a utiliser. - 'STA' pour l'emploi de la methode standard. - 'MOV' si les fonctions sont tres fortement non-lineaires. - 'LIN' si les fonctions sont peu non-lineaires et qu'il y a des variables a variations non continues. TAB1.'T0' : (facultatif) change la valeur du reel compris entre 0. et 1. qui gouverne la convexite des fonctions. Plus t0 est grand plus les fonctions sont convexes. Par defaut, pour la methode standard, t0 est pris egal a 0.3333. TAB1.'S0' : (facultatif) change la valeur du reel compris entre 0. et 1. qui gouverne la convexite des fonctions. Plus s0 est grand plus les fonctions sont convexes. Par defaut, pour la methode MOV, s0 est pris egal a 0.7. TAB1.'MAXITERATION' : (facultatif) change la valeur maximum autorisee pour le nombre d'iterations. (Par defaut 100) TAB1.'VDIS' : table indicee par des ENTIERs k (k=1,KK) et contenant autant de tables que de variables n'ayant que des valeurs discretes autorisees. Cette option n'est pas encore disponible. Remarque : ---------- - Au depart les variables X0i doivent satisfaire aux conditions Ximin < X0i < Ximax - Le point de depart ne satisfait pas forcement les relations Cj < Cjmax Dans ce cas une variables supplementaire de relaxation est introduite et la solution trouvee par EXCELL ne satisfera peut-etre pas non plus les relations. L'influence de cette variable de relaxation peut etre modifiee par deux reels TAB1.'DELTA0' et TAB1.'XSMAX'. Par defaut DELTA0=50. et XSMAX=500. ( il faut DELTA0 >1. et XSMAX > DELTA0) Exemple : --------- La fonction que l'on desire minimiser n'est pas celle qui est minimisee par l'operateur EXCE. La demarche a suivre est de resoudre une succession de probleme. Partant d'un etat connu des variables on demande a EXCE de calculer le minimum d'un probleme approche, la fonction F a minimiser est remplacee par la fonction linearisee decrite ci-dessus ainsi que les fonctions C. Puis on repart de la solution trouvee par EXCE. L'algorithme se presente ainsi : - creation des objets TABLES - initialisations de TAB1.'VX0' ( valeurs de Xi0) - initialisation de TAB1.'VF'. - initialisation de TAB1.'MC'. J . - initialisation de TAB1.'VXMIN' et TAB1.'VXMAX' - initialisation de TAB1.'VCMAX' - repeter 5 fois la suite : - calcul de DF et mise dans TAB1.'VF' , ainsi que F(XI0) - calcul des Cj et mise dans TAB1.'MC'.j. ainsi que Cj(Xi0) - appel a EXCE avec la table TAB1 en entree. - imprimer TAB1.'VX0' - fin de boucle
© Cast3M 2003 - Tous droits réservés.
Mentions légales