himmel16.gms : Area of Hexagon Test Problem

**Description**

The physical problem is to maximize the area of a hexagon in which the diameter must be less than or equal to one. The formulation in Himmelblau is different from the one given here, because certain fixed variables have been eliminated. However, the formulation given here is more natural and easier to understand. It makes use of the fact that one vertex is fixed at the origin and uses the vector scalar product to calculate the areas of all triangles originating from the origin. All terms in x(1) and y(1) thus vanish when the algebraic expression is simplified. The problem appears many other places, e.g. as example 108 in W. Hock and K. Schittkowski: Test Examples for Nonlinear Programming Codes, Lecture Notes in Economics and Mathematical Systems, 187, Springer Verlag, 1981, and as the test example in P. E. Gill, W. Murray, M. A. Saunders, and M. Wright: User's Guide for SOL/NPSOL: A FORTRAN Package for Nonlinear Programming, Tech. Rep. 83-12, Dept. of Operation Research, Stanford University.

**Reference**

- Himmelblau, D M, Problem Number 16. In Applied Nonlinear Programming. Mc Graw Hill, New York, 1972.

**Small Model of Type :** NLP

**Category :** GAMS Model library

**Main file :** himmel16.gms

$Title Area of Hexagon Test Problem (HIMMEL16,SEQ=36) $Ontext The physical problem is to maximize the area of a hexagon in which the diameter must be less than or equal to one. The formulation in Himmelblau is different from the one given here, because certain fixed variables have been eliminated. However, the formulation given here is more natural and easier to understand. It makes use of the fact that one vertex is fixed at the origin and uses the vector scalar product to calculate the areas of all triangles originating from the origin. All terms in x(1) and y(1) thus vanish when the algebraic expression is simplified. The problem appears many other places, e.g. as example 108 in W. Hock and K. Schittkowski: Test Examples for Nonlinear Programming Codes, Lecture Notes in Economics and Mathematical Systems, 187, Springer Verlag, 1981, and as the test example in P. E. Gill, W. Murray, M. A. Saunders, and M. Wright: User's Guide for SOL/NPSOL: A FORTRAN Package for Nonlinear Programming, Tech. Rep. 83-12, Dept. of Operation Research, Stanford University. Himmelblau, D M, Problem Number 16. In Applied Nonlinear Programming. Mc Graw Hill, New York, 1972. $Offtext Set i indices for the 6 points /1*6/; Alias (i,j); Variable x(i) x-coordinates of the points y(i) y-coordinates of the points area(i) area of the i'th triangle ( 0 -> p(i) -> p(i++1) -> 0 totarea total area of the hexagon Equations areadef(i) area definition for triangle i. maxdist(i,j) maximal distance between i and j obj1 first definition of objective obj2 second definition of objective; maxdist(i,j)$(ord(i) lt ord(j)).. sqr(x(i)-x(j))+sqr(y(i)-y(j)) =l= 1; areadef(i).. area(i) =e= 0.5*(x(i)*y(i++1)-y(i)*x(i++1)) ; obj1.. totarea =e= 0.5*sum(i,x(i)*y(i++1)-y(i)*x(i++1)); obj2.. totarea =e= sum(i,area(i)); Model small /maxdist,obj1/ large /maxdist,obj2,areadef/ ; * * initial conditions * x.fx("1") = 0; y.fx("1") = 0; y.fx("2") = 0; x.l("2") = 0.5; x.l("3") = 0.5; x.l("4") = 0.5; x.l("5") = 0; x.l("6") = 0; y.l("3") = 0.4; y.l("4") = 0.8; y.l("5") = 0.8; y.l("6") = 0.4; Solve large using nlp maximizing totarea;