Pratiquer l'optimisation

162 vues

Publié le

le premier chapitre c'est methode simplex (algebrique et matriciel ) deuxieme chapitre est l'utilisation de logiciel AMPL pour resoudre les systémes linéaire et non linéaire (problème de Thomson et Cargo et Transport et Chaine de suspension ) et aussi faire graphe sous logiciel OCTAVE

Publié dans : Formation
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
162
Sur SlideShare
0
Issues des intégrations
0
Intégrations
4
Actions
Partages
0
Téléchargements
5
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Pratiquer l'optimisation

  1. 1. Université Ibn Zohr Faculté Polydisciplinaire de Ouarzazate Département de Mathématiques, Informatique et Gestion Filière Sciences Mathématiques et Informatique Pratiquer L’Optimisation Projet tutoré préparer par : Lahcen Khaddaoui et Yahia Rkhouya. Sous la direction de Prof. IDRISS BOUTAAYAMOU Soutenu le : 16 Mai 2016. Devant le jury : Prof. IDRISS BOUTAAYAMOU Professeur à la Faculté Polydisciplinaire de Ouarzazate Prof. SALAHDDINE KRIT Professeur à la Faculé Polydisciplinaire de Ouarzazate Année Universitaire : 2015-2016
  2. 2. 2 Remerciements Nous tenons à remercier notre encadrant Monsieur Idriss Boutaayamou Professeur à la Faculté Polydisciplinaire de Ouarzazate, pour avoir accepté d’encadrer ce projet, pour ses encouragements et son soutien. Nous remercions également Monsieur Salahddine Krit Professeur à la Faculté Polydisciplinaire de Ouarzazate, pour avoir accepté d’être examinateur de ce travail. Nous exprimons aussi nos chaleureux remerciements à de nombreux Professeurs de la Faculté Polydisciplinaire de Ouarzazate, pour avoir participé à notre formation, pour leurs aides et précieux conseils. Enfin, nous adressons nos profonds sentiments de gratitudes à nos familles respectives, qui ont toujours été à nos côtés, pour leurs soutiens et leurs encouragements. Nos remerciements vont également à tous nos amis.
  3. 3. 3 Table des matières Remerciements .........................................................................................................2 Introduction :.............................................................................................................4 Chapitre 1 : Algorithmes de Simplexe ...............................................................5 1.1 Méthode Graphique :................................................................................................................... 5 1.2 Méthode algébrique :.................................................................................................................... 6 1.2.1 la forme générale : ................................................................................................................. 6 1.2.2 Algorithme :............................................................................................................................ 6 1.2.3 Exemple :................................................................................................................................ 7 1.3 Méthode Matricielle :.................................................................................................................... 9 1.3.1 Formes générales : ................................................................................................................. 9 1.3.2 Partitionnement des indices :................................................................................................. 9 1.3.4 Solutions de base :................................................................................................................ 10 1.3.2 Algorithme:........................................................................................................................... 10 1.3.3 Exemple:............................................................................................................................... 11 Chapitre 2 : L’optimisation sous AMPL...........................................................14 2.1 Introduction :............................................................................................................................... 14 2.2 AMPL :.......................................................................................................................................... 14 2.2.1 C’est Quoi ?........................................................................................................................... 14 2.2.2 Quelque Solveurs :................................................................................................................ 14 2.3 Problèmes :.................................................................................................................................. 15 2.3.1 Problème 1 : ( Thomson (1856-1940)) ................................................................................. 15 2.3.2 Problème 2 : (un avion-cargo).............................................................................................. 19 2.3.3 Problème 3 : (transport)....................................................................................................... 21 2.2.4 Problème 4 (problème de la chaine de suspension) :.......................................................... 23 Conclusion :....................................................................Erreur ! Signet non défini. Webographie :.........................................................................................................26
  4. 4. 4 Introduction : Tout problème d’optimisation comporte une étape essentielle : la modélisation mathématique. Elle consiste en trois étapes : 1. Identification des variables de décisions, ce sont les paramètres sur lesquels l’utilisateur peut agir pour faire évoluer le système considéré. 2. Définition d’une fonction coût (appelée fonction objectif) permettant d’évaluer l’état du système (ex: rendement, performance,….). 3. Description des contraintes imposées aux variables de décision. Le problème d’optimisation consiste alors { déterminer les variables de décision conduisant aux meilleures conditions de fonctionnement du système (ce qui revient à minimiser ou maximiser la fonction coût), tout en respectant les contraintes d’utilisation définies { l’étape 3. Dans ce projet, le premier chapitre décrit la méthode simplexe pour résoudre des systèmes linéaires (Méthode graphique, Matricielle, Algébrique) ainsi des algorithmes et un exemple pour chaque cas. Le deuxième chapitre traite le fonctionnement d’AMPL et nous mettrons en œuvre quelques exemples d’applications. Aussi nous aurons besoins du logiciel Octave (est un logiciel libre de calcul numérique comparable à MATLAB et à SCILAB) pour faire les représentations graphiques. Pour conclure cette introduction, nous signalons que ce manuscrit est basé sur la webographie que nous donnerons à la fin.
  5. 5. 5 Chapitre 1 : Algorithmes de Simplexe L'algorithme de simplexe est un algorithme de résolution des problèmes d'optimisation linéaire. Il a été introduit par George Dantzig à partir de 1947. C'est probablement le premier algorithme permettant de minimiser une fonction sur un ensemble défini par des inégalités. De ce fait, il a beaucoup contribué au démarrage de l'optimisation numérique. L'algorithme du simplexe a longtemps été la méthode la plus utilisée pour résoudre les problèmes d'optimisation linéaire. 1.1 Méthode Graphique : Cette méthode est souvent utilisée pour le cas de deux variables donnons un exemple illustrons cette méthode : Exemple : Soit le problème suivant : Une usine fabrique 2 produis A et B en utilisant les ressources suivantes : plastique, bois, cuivre. Ces besoins sont indiqué sous le tableau ci-dessous : A B Disponibilité Plastique 3 9 81 Bois 4 5 55 Cuivre 2 1 20 Les produits A et B rapportent à la vente des bénéfices 6DH et 4DH par unité. On veut savoir la quantité de A et B afin de maximiser la fonction coût. D’après le problème on peut écrire le programmation linéaire (PL) suivant (*) : Max Z = 6x1+4x2 s.c 3x1+9x2 ≤ 81 4x1+5x2 ≤55 2x1+x2 ≤20 x1, x2 ≥0
  6. 6. 6 Figure1 : représentation graphique de système linéaire (*). On obtient alors la solution optimal (x1,x2)= (7.5, 5) et ce qui donne la valeur maximale Z = 65. 1.2 Méthode algébrique : 1.2.1 la forme générale : Forme générale d’un programme linéaire : { ∑ ( ) ∑ ( ) (1) fonction objective. (2) m contraintes linéaires. (3) contraintes de positivité. 1.2.2 Algorithme : (1) – Obtenir une solution de base réalisable (2) – Vérifier le critère d’optimalité : si les coûts réduits de toutes les variables hors-base sont négatifs ou nul, Stop. (3) – Choisir la variable , soit celle qui a le coût réduit le plus élevé.
  7. 7. 7 (4) – Déterminer la variable de sortie : Min {̅i÷̅ij |̅ij>0} (5) – Effectuer un pivot et déterminer une nouvelle solution de base réalisable. Retour { l’étape (2). 1.2.3 Exemple : Considérons le problème d’optimisation linéaire: Maximiser Z = 5x1 +4x2 +3x3 Sous les contraintes : 2x1 +3x2 +x3 ≤ 5, 4x1 +x2 +2x3≤ 11, 3x1 +4x2 +2x3 ≤ 8, x1, x2, x3 ≥ 0. Itération 1 : On ajoute les variables d’écart : S1, S2, S3. Le Système devient : max z= 5x1 +4x2 +3x3 2x1 +3x2 +x3 +S1 = 5, 4x1 +x2 +2x3 +S2=11, 3x1 +4x2 +2x3 +S3= 8 x1, x2, x3, S1, S2, S3 ≥ 0. Alors : Les variables hors-base sont : x1, x2, x3. Et les variables de base : S1, S2, S3. Le dictionnaire : S1 = 5 −2x1 −3x2 –x3, S2 = 11 −4x1 –x2 −2x3, S3 = 8 −3x1 −4x2 −2x3, Z = 5x1 +4x2 +3x3, Alors la solution de base est : (0, 0, 0, 5, 11, 8) avec Z =0. Itération 2 : Le coût réduit le plus élevé est : 5 d’où la variable entrante est : x1 On cherche la variable sortante : soit x2 = x3 = 0
  8. 8. 8 S1 ≥ 0 → 5 -2x1 ≥ 0 → x1 ≤ . S2 ≥ 0 → 11 -4 x1 ≥ 0 → x1 ≤ . S3 ≥ 0 → 8 -3 x1 ≥ 0 → x1 ≤ . D’où la variable sortante est : S1 Le dictionnaire devient : x1 = – ( )x2 –( )x3 – ( )S1, S2 = 1 + 5x2 + 2S1, S3 = + ( )x2 – ( )x3 + ( )S1, Z = – ( )x2 + ( )x3 – ( )S1, Donc la solution de base est : ( , 0, 0, 0, , 1, ) avec Z = .  Les variables hors-base : x2, x3, S1.  Les variables de base : x1, S2, S3. Itération 3 : La variable entrante est : x3 car il est le coût réduit le plus élevée. On cherche la variable sortante : x1 ≥ 0 → - ( )x3 ≥ 0 → x3 ≤ 5 S3 ≥ 0 → – ( )x3 ≥ 0 → x3 ≤ 1 D’où la variable sortante est : S3 Le dictionnaire : x1 = 2 – 2x2 – 2S1 – S3, x3 = 1 + x2 + 3S1 – 2S3, S2 = 1 + 5x2 + 2S1, Z = 13 – 3x2 –x4 – S3. Alors : Les variables hors-base : S1, S3, x2. Et les variables de base : x1, x3, S2.
  9. 9. 9 Donc la solution de base (x1, x2, x3, S1, S2, S3) = (2, 0, 1, 0, 1, 0) est optimale car les coûts réduit de toutes les variables hors-base sont négatifs et z=13. 1.3 Méthode Matricielle : 1.3.1 Formes générales : Notons par x=(x1, x2, …, xn)T Le vecteur des variables, b=(b1, b2, … ,bn)T le second membre c=(c1, c2, …, cn)T le vecteur coût ou profit associé aux variables, A la matrice m × n des aij et la fonction objectif à maximiser Forme canonique : { Forme standard :{ La forme canonique est utilisé après la modélisation du problème en question, cependant la forme standard est utilisé l’algorithme employé. 1.3.2 Partitionnement des indices : On peut partitionner les indices en deux sous-ensembles :  B : indices des variables en base.  N : indices des variables hors base. Cette partition peut-être effectué dans chacune des contraintes : ∑ ∑ ∑ , ( ), ( ). 1.3.3 Dictionnaire : On exprime les variables de base en fonction des variables hors base :
  10. 10. 10 Cette réécriture n’est possible que si est inversible. En remplaçant dans l’objectif, on a : ⏟ 1.3.4 Solutions de base : Tout sous matrice carrée de inversible (les colonnes / lignes de sont linéairement independant et forment une base de ) est appelée matrice de base. A chaque matrice de base est associée une solution de base définie par un dictionnaire : S. c  Solution de base : ,  Condition de réalisabilité :  Condition d’optimalité : 1.3.2 Algorithme: On commence avec une solution de base réalisable par un dictionnaire : max z = CBT AB-1 b + (CBT – CBT AB-1 AN)XN s.c. XB = AB-1 b – AB-1 AN XN XB, XN ≥ 0 1) Si ̅ = CNT – CBT AB-1 AN ≤ 0, alors cette solution est optimale, STOP
  11. 11. 11 2) Choisir une variable entrante avec indice k N telle que (̅) > 0. 3)Si (̅i,j)i=1,…,m = (AB-1 AN)k ≤ 0 le problème est non borné, STOP. 4)Choisir une variable sortante avec indice s B telle que : s = argmini B {̅j ÷ ̅j,k = Bj,.-1 b ÷ Bj,.-1 Ni,k : ̅j,k> 0} 5)Pivoter : B = (B/s) k et N = (N/k) s et retourner en (1) 1.3.3 Exemple: Considérons le problème d’optimisation linéaire : Max Z = 5x1 + 4x2 + 3x3 Sc. 2x1 + 3x2 + x3 ≤ 5 4x1 + x2 + 2x3 ≤ 11 3x1 + 4x2 + 2x3≤ 8 On introduit les variables d’écart s1, s2, s3, s4 (il y a une contrainte supplémentaire par rapport au problème précèdent) et on récrit le problème sous la forme : Max Z = 5x1 + 4x2 + 3x3 Sc. 2x1 + 3x2 + x3 + s1= 5 4x1 + x2 + 2x3 + s3=11 3x1 + 4x2+ 2x3 + s3 = 8 x1, x2 ,x3 ,s1, s2, s3≥ 0 On pose : A=( ) , ( ) , cT= ( ) , b=( ) B= , N=
  12. 12. 12 AB=( ) , AN=( ) Iteration 1: =( )  Calcul des coûts réduits : ̅ = CNT – CBT AB-1 AN = (5 , 4 , 3)  On choisie la variable entrante : ̅ij = AB-1 AN =( ) , ̅ = AB-1 b =( )  On cherche la variable sortante : s = argmin{ } , la variable sortante est :  Changement de base : B= , N= AB=( ) , AN=( ) Iteration 2: =( )  Calcul des coûts réduits : ̅ = (-2,5 -3,5 0,5) ≥0  On choisie la variable entrante : ̅ij = ( ) ̅ = =( )
  13. 13. 13  On cherche la variable sortante : s = arming{ } , la variable sortante est :  Changement de base : B= , N= AB=( ) , AN=( ) Iteration 3: =( ) ̅ij =( ) ̅ =( ) ̅ = < 0  Calcul des coûts réduits : ( ) = ( ) ; Z = 5.2+0+1.3 = 13
  14. 14. 14 Chapitre 2 : L’optimisation sous AMPL 2.1 Introduction : Les exemples considérés dans le chapitre 1, sont faisables à la main vu le nombre de variables et d’itérations. Par contre il n’est pas toujours adéquat de calculer à la main si on est dans des cas de problèmes de grand tailles ou une configuration nécessitant un très grand nombre d’itération, et c’est ce qui justifie l’utilisation des logiciels de calculs, dans l’actuel projet, nous avons appris { l’utiliser l’AMPL pour les résolution de certains problèmes qui en plus le problème de taille et d’itération, nous traitons aussi la non linéaire. Dans ce chapitre, nous commençons par une description d’AMPL et nous résolvons quelques problèmes en énergétique et gestion d’entreprises. 2.2 AMPL : 2.2.1 C’est Quoi ? AMPL est un langage qui permet de décrire un problème d’optimisation de façon qui normalisée pour permettre de le résoudre par un solveur spécialisé. AMPL peut être utilisé avec des solveurs pour la programmation linéaire et non linéaire à savoir que nous décrivons par la suite (MINOS, CPLEX, SNOPT,…). AMPL a un consol permettant de :  Décrire un problème à résoudre.  Choisir un solveur et l’exécuter pour résoudre le problème.  Afficher le résultat { l’écran et aussi l’enregistrer dans un fichier. 2.2.2 Quelque Solveurs : Différents solveurs ont leurs propres fonctions, certains peuvent se concentrer principalement pour la résolution des problèmes d’optimisation non linéaire, qui dépendent des algorithmes complexes mis en œuvre { l’intérieur. Voici quelques solveurs compatibles avec AMPL :
  15. 15. 15  CPLEX : Optimiseur résout les problèmes de programmation à variables entière, de très gros problèmes de programmation linéaire en utilisant des variantes soit primal ou double de la méthode simplex ou la méthode du point intérieur barrie, les problèmes de programmation quadratique convexe et non convexe.  MINOS : est un ensemble de programmes pour résoudre des problèmes d’optimisation { grande échelle, il est efficace pour les (PL) et des problèmes avec une fonction objective non linéaire et les contraintes linéaires (par exemple les programmes du second degré).  SNOPT : est pour la résolution des problèmes d’optimisation avec des contraintes non linéaire. Il implémente un algorithme de programmation séquentielle qui utilise une fonction de mérite Lagrangien lisse augmentée et prévoit explicitement infaisabilité dans le problème d’origine et dans les sous-problèmes de programmation quadratique. 2.3 Problèmes : 2.3.1 Problème 1 : ( Thomson (1856-1940)) - Thomson a supposé que tous les atomes contiennent les électrons. - Son modèle consistait en une sphère de charge positive dans laquelle des particules de charge négative sont dispersées. Ce problème ce traite d'autant mieux d'un point de vue expérimental que des meilleures configurations de points à la surface de la sphère, ces configurations ne sont connues que pour quelques N électrons (Travaillons par exemple sur 5, 10 et 50). L’énergie de la configuration de ces N électrons est définie par : Le problème est de déterminé les positions de ces électrons avec moins d’énergie
  16. 16. 16 ∑ L’énergie dans notre cas est une fonction de trois coordonnes (x, y, z) et elle s’écrit sous la forme suivante : f(x,y,z) = ∑ ∑ ( ) ( ) ( )  Cas de contrainte sphère : sous la contrainte + = 1 pour i = 1,….., N . Résolution du problème de Thomson sous AMPL : On résout le système sous AMPL pour les cas suivant (N=5; N=10; N=50) et on obtient :  Cas 1 : (pour 5 électrons) Figure2 : la solution du problème sous AMPL Graphiquement :(sous OCTAVE) Figure 3 : Graphe de 5 électrons sous Octave
  17. 17. 17  Cas 2 : (pour 10 électrons) Figure 4 : la solution du problème sous AMPL Graphiquement : (sous OCTAVE) Figure 5 : Graphe de 10 électrons sous Octave  Cas 3 : (pour 50 électrons) Figure 6 : La solution du problème sous AMPL
  18. 18. 18 Graphiquement:(sous OCTAVE) Figure 7 : Graphe de 50 électrons sous Octave Les résultats par rapport à le nombre des électrons : Paramètre N Résultat Nombre d’itérations MINOS SNOPT 5 6.4746 2 110 10 32.7169 10 310 50 1055.1823 13 417  cas de contrainte ellipse : Dans le cas d’une ellipse en seulement changer le contrainte sous la forme : + = 1. En utilisant AMPL pour résoudre le problème considéré et OCTAVE pour illustrer le résultat. L’état stable des 50 électrons est donné comme suit : Figure 8 : La solution de problème sous AMPL
  19. 19. 19 Graphiquement : (sous OCTAVE) Figure 9 : graphe de 50 électrons (ellipse) sous Octave Tableau comparer nombre d’itérations pour les deux solveurs : Paramètre N Résultat Nombre d’itérations MINOS SNOPT 50 353.1792 12 457 2.3.2 Problème 2 : (un avion-cargo) Un avion-cargo a trois compartiments pour le fret: le stockage avant, central et arrière. Ces compartiments ont las capacités suivants sur le poids et l'espace: Compartiment Capacité de poids (tonnes) La capacité de l’espace (m3) Avant 10 6800 Centre 16 8700 Arrière 8 5300 En outre, le poids de la cargaison dans les compartiments respectifs doit être la même proportion de la capacité en poids de ce compartiment pour maintenir l'équilibre de l'avion. Les quatre cargaisons suivantes sont disponibles pour l'expédition sur le prochain vol: 𝑟𝑥 𝑟𝑦 𝑟𝑧
  20. 20. 20 Cargaison Poids (tonne) Volume (m3/tonne) Profit ($/tonne) C1 18 480 310 C2 15 650 380 C3 23 580 350 C4 12 390 285 Toute proportion de ces cargaisons peut être acceptée. L'objectif est de déterminer à quel point (le cas échéant) de chaque cargaison C1, C2, C3 et C4 doivent être acceptées et comment répartir chacun parmi les compartiments de sorte que le bénéfice total pour le vol est maximisé. Solution : La modélisation de ce problème est donne la forme suivant à résoudre sous AMPL. Max ∑ s.c ∑ ; ∑ ; ∑ ; ∑ ; ∑ ; ∑ ; ; ; ; ; ∑ ; ∑ ; ∑ ; Puisque on a 12 variables et 13 contraintes alors c’est très difficile de résoudre ce problème à la main, alors on doit utiliser AMPL sous les deux solveurs SNOPT et MINOS pour les comparer, voici le résultat :
  21. 21. 21 Figure 10 : La solution du problème de Cargo sous AMPL Les deux solveurs trouvent la même solution, mais nombre d’itération est différent, MINOS utilise 9 itération mais SNOPT utilise seulement 0 itération pour résoudre le problème. 2.3.3 Problème 3 : (transport) Dans un problème de transport, nous avons un ensemble de nœuds d'alimentation avec des valeurs, Si> 0, i S et un ensemble de nœuds de la demande avec des valeurs, dj> 0, j D, chaque arc (i, j) (S, D) a un coût , il est entendu que ∑ =∑ . Soit la couler de nœud d’alimentation i { la demande nœud j. Le problème est de trouver les valeurs qui satisfont aux exigences et qui réduisent au minimum le total coût du transport : ∑ Solution : Si l'on considère pour (i, j) { } { }, que le flux de nœud d'alimentation i { la demande nœud j, le problème peut être modélisé comme suit: Minimiser : ∑ ∑ ; S.c 0≤ ≤1 , pour {i=1…n, j=1…m} ; ∑ , pour {j=1… m} ;
  22. 22. 22 ∑ ≤ 1, pour {i=1… n} ; Où :  C: (n × m) matrice des coûts.  S: vecteur des nœuds d'alimentation.  D: vecteur des nœuds de demande.  Pour la contrainte des limites, je pris dans [0,1], car il représente le pourcentage tiré de l'ensemble des marchandises dans le nœud d'alimentation i au nœud j.  Il y a m contraintes pour garantir que la demande dans chaque nœud est satisfaite comme : ∑ représente la quantité de marchandises reçues dans le nœud j.  ∑ ≤ 1 est le jeton total des marchandises { partir d'un nœud d'alimentation i qui ne doit pas dépasser la marchandise totale disponible dans le nœud d'alimentation. Nous avons utilisé AMPL pour résoudre problème : Pour : s=(35,50,40)T , d=(45,20,30,30)T , c = ( ) Figure 11 : La solution du problème de Transport sous AMPL
  23. 23. 23 2.2.4 Problème 4 (problème de la chaine de suspension) : Le problème est de trouver la forme d'une chaîne suspendue qui est supportée à ses deux extrémités et mis en pratique que par son propre poids. La forme sera trouvée en résolvant un problème d'optimisation sous contrainte. Longueur 4 - 25 liens. Chaîne de longueur 4 avec 25 liaisons et une seconde extrémité fixée à (a, b) = (2, 0). Une chaîne de longueur L> 0 a des liaisons rigides m (m> 1), chacun de longueur égale L / m. Supposons que les deux points de la chaîne d'extrémité sont fixés. En supposant que la masse de chaque maillon est concentrée en son milieu, nous considérons le problème du calcul de la position de la chaîne d'équilibre. Une description formelle du problème suit. Désignerons par ( ) de l'incrément, horizontalement et verticalement, le long de la liaison (voir la figure 2). Les liens sont numérotés de 1 à m. Nous supposons que l'une extrémité est fixée à (0; 0). Figure 11: Les coordonnées de Lien.
  24. 24. 24 Position de l'autre extrémité est ∑ et est contrainte à être (a ,b). L'énergie potentielle de la chaîne est donnée par : ∑ ∑ ∑ Où est défini par pour La position de la chaîne d'équilibre peut être calculée en minimisant l'énergie potentielle sous réserve d'impliquer des contraintes physiques. Ceci conduit au problème d'optimisation suivant: Min s.c ( ) ∑ ∑ Utilisent la formule de Lagrange on obtient : L ((x,y), λ)=∑ ∑ ∑ ∑ ; On a une seule égalité contrainte. Alors utilisent la première condition d’optimalité : k=1...m k=1…m Et pour les contraintes : k=1…m ∑ ∑ ; D’abord on utilise AMPL pour L=25 et (a, b)=(10,5) et m=50 On Obtient le graphe suivant sur OCTAVE lorsque on plot les solutions que on a sur AMPL :
  25. 25. 25 Figure 12 : Chaine de suspension de 50 liaisons Le résultat obtenu :
  26. 26. 26 Webographie :  http://thomson.phy.syr.edu  http://groups.google.com/group/ampl  http://www.ampl.com  http://www.orfe.princeton.edu/~rvdb/ampl/nlmodels  http://www.neos-guide.org/NEOS/index.php/Optimization_Tree  http://plato.asu.edu/guide.html

×