Fonctions Objectives
Les fonctions objectives est une famille de méthode de calcul de grandeurs caractéristiques en fin de calcul. Elles ont été développées dans le but de l'utilisation avec des méthodes de calcul paramétrique ou des méthodes d'optimisation.
La norme de chacune des fonctions objectives est écrite dans un fichier objectiveFunction.txt
(dans le répertoire “classique” du test). Pour certaines méthodes d'optimisation il est nécessaire d'avoir accès aux valeurs des écarts à la solution optimale en chaque point de calcul. Celles-ci se trouvent dans le fichier objectiveFunction.py
sous forme de classes exploitables par les méthodes d'optimisation de Metafor.
- Class
ObjectiveFunction
La définition d'objet type ObjectiveFunction
est calcée sur celle des matériaux.
- Définition d'un objet dans le
objectiveFunctionSet
:
objFSet = metafor.getObjectiveFunctionSet() objFSet.define(no,typeFobj)
avec
typeFobj | Type de la Fonction objective à définir |
- Ajout des propriétés : a l'aide d'une des fonctions suivante selon le contexte
fobj = objectiveFunctionSet[no] fobj.put(OFProperty, target_no, target_po, target_prop, target_value) fobj.put(OFProperty, target_no, target_po) fobj.put(OFProperty, target_value)
avec
OFProperty | Définit la propriété |
target_no | Numéro de l'objet sélectionné |
target_po | Type de l'objet sélectionné |
target_prop | Propriété additionelle à appliquer sur l'objet (symétrie par exemple) |
target_value | Valeur soit relative à la propriété additionelle, soit autosuffisante |
Les fonctionnalités additionelles suivantes sont accessibles :
fobj.list() | Imprime les données de la fonction objective |
fobj.check() | Vérifie si les données sont compatibles - suffisante avec la fonction objective définie |
fobj.computeObjFunction() | Calcule la fonction objective |
fobj.verbose(0/1) | Impression du détail des calculs de la fonction objective |
- Class
ObjectiveFunctionSet
Est la classe conteneur des objets ObjectiveFunction
. Elle appartient à l'objet Metafor
du Domain
:
objFSet = metafor.getObjectiveFunctionSet()
Fonctionnalité sur le set:
objFSet.define(no,typeFobj) | Définition d'une Fonction Objective de type typeFobj |
objFSet.list() | Liste des ObjectiveFunction du Set |
objFSet.check() | Execute la commande check() sur chaque fonction objective du set |
objFSet.verbose(0/1) | Execute la commande verbose(0/1) sur chaque fonction objective du Set |
objFSet.compute() | Calcule toute les fonctions objectives (sur l'état actuel de la mémoire) |
objFSet.printToFile() | Ecrit le fichier objectiveFunction.txt |
objFSet.printToPyFile() | Ecrit le fichier objectiveFunction.py |
TestSuiteChecker
Notons que les fonctions objective peuvent être ajoutées au ''TestSuiteChecker''.
- Fonctionnalités accessibles via Python
Divers scripts existent pour utiliser les fonctions objectives en dehors d'une intégration Metafor
.
Les fonctions sont définies dans le module toolbox.objFunctions
:
computeObjF(domain) | Calcule de toute les fonctions objectives d'un domain |
computeObjF_j(domain, no) | Calcule la fonction objective numéro no d'un domain |
vizuObjF_i | vizualise la fonction objective numéro no d'un domain (si elle est vizualisable) |