# data file for space-25-r.mod # AMPL coding: S. Leyffer, University of Dundee, April 2000. # ... modelling discrete sizes with SOS1 variables param Nsize := 30; # ... No. of different sizes # ... definition of set lengths param Ndof := 18; param Nmembers := 25; # ... group members of same areas set group1 := 2 3 4 5 ; set group2 := 6 7 8 9 ; set group3 := 10 11 ; set group4 := 12 13 ; set group5 := 14 15 16 17 ; set group6 := 18 19 20 21 ; set group7 := 22 23 24 25 ; param F := 1 1 2 10 3 -10 5 10 6 -10 7 0.5 16 0.6 ; param truss: dx dy dz := 1 75.0000 0. 0. 2 75.0000 37.5000 -100.0000 3 -75.0000 37.5000 -100.0000 4 75.0000 -37.5000 -100.0000 5 -75.0000 -37.5000 -100.0000 6 0. 37.5000 -100.0000 7 0. -37.5000 -100.0000 8 0. 37.5000 -100.0000 9 0. -37.5000 -100.0000 10 0. -75.0000 0. 11 0. -75.0000 0. 12 75.0000 0. 0. 13 -75.0000 0. 0. 14 -62.5000 -137.5000 -100.0000 15 -62.5000 137.5000 -100.0000 16 62.5000 -137.5000 -100.0000 17 62.5000 137.5000 -100.0000 18 -137.5000 62.5000 -100.0000 19 137.5000 62.5000 -100.0000 20 -137.5000 -62.5000 -100.0000 21 137.5000 -62.5000 -100.0000 22 -62.5000 -62.5000 -100.0000 23 -62.5000 62.5000 -100.0000 24 62.5000 62.5000 -100.0000 25 62.5000 -62.5000 -100.0000; param lv: 1 2 3 4 5 6 := 1 1 2 3 4 5 6 2 1 2 3 10 11 12 3 4 5 6 7 8 9 4 1 2 3 13 14 15 5 4 5 6 16 17 18 6 4 5 6 10 11 12 7 4 5 6 13 14 15 8 1 2 3 7 8 9 9 1 2 3 16 17 18 10 7 8 9 16 17 18 11 10 11 12 13 14 15 12 7 8 9 10 11 12 13 13 14 15 16 17 18 14 7 8 9 0 0 0 15 16 17 18 0 0 0 16 10 11 12 0 0 0 17 13 14 15 0 0 0 18 10 11 12 0 0 0 19 7 8 9 0 0 0 20 13 14 15 0 0 0 21 16 17 18 0 0 0 22 16 17 18 0 0 0 23 7 8 9 0 0 0 24 10 11 12 0 0 0 25 13 14 15 0 0 0 ; # ... discrete sizes are set here let{i in 1..26} size[i] := i/10.0; let size[27] := 2.8; let size[28] := 3.0; let size[29] := 3.2; let size[30] := 3.4; ## display size; # ... lower/upper bounds on u let ul[1] := -0.35; let uu[1] := 0.35; let ul[2] := -0.35; let uu[2] := 0.35; let ul[4] := -0.35; let uu[4] := 0.35; let ul[5] := -0.35; let uu[5] := 0.35; # ... initialize N let{m in members} N[m,1] := 1.0; let{m in members} N[m,2] := -1.0; # ... initialize mC let{m in members} mC[m,1] := -ll[m]; let{m in members} mC[m,2] := -mm[m]; let{m in members} mC[m,3] := -nn[m]; let{m in members} mC[m,4] := ll[m]; let{m in members} mC[m,5] := mm[m]; let{m in members} mC[m,6] := nn[m]; # ... generate C for{m in members, md in mdof} if lv[m,md] > 0 then {let C[m,lv[m,md]] := mC[m,md]}; ## display C; ## solution from Tabu Search paper (infeasible ?) ## fix A[1] := 0.1; ## fix A[2] := 0.6; ## fix A[6] := 3.4; ## fix A[10] := 0.1; ## fix A[12] := 1.8; ## fix A[14] := 0.9; ## fix A[18] := 0.4; ## fix A[22] := 3.4; ## solution from NLP solve by SL ## fix A[1] := 0.1; ## fix A[2] := 0.4; ## fix A[6] := 3.4; ## fix A[10] := 0.1; ## fix A[12] := 2.2; ## fix A[14] := 1.0; ## fix A[18] := 0.4; ## fix A[22] := 3.4;