-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathPOWELLBC.SIF
138 lines (95 loc) · 2.88 KB
/
POWELLBC.SIF
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
***************************
* SET UP THE INITIAL DATA *
***************************
NAME POWELLBC
* Problem :
* --------
* A bound-constrained optimization problem to
* separate points within a square in the plane
* Given points p_j = ( x_2j-1 , x_2j ), i = 1, ..., p
* minimize sum_k=2^p sum_j=1^k-1 1 / || p_j - p_k ||_2
* subject to 0 <= x_i <= 1, i = 1, ..., 2p = n
* Source:
* M. J. D. Powell
* Private communication (Optbridge, 2006)
* SIF input: Nick Gould, Aug 2006.
* classification OBR2-AN-V-0
* Number of points
*IE P 2 $-PARAMETER
IE P 5 $-PARAMETER
*IE P 10 $-PARAMETER
IE P 100 $-PARAMETER
IE P 500 $-PARAMETER
* other parameter definitions
IE 1 1
IE 2 2
IM N P 2
RI RN N
VARIABLES
DO I 1 N
X X(I)
ND
GROUPS
N OBJ
CONSTANTS
BOUNDS
LO POWELLBC 'DEFAULT' 0.0
UP POWELLBC 'DEFAULT' 1.0
START POINT
* start with X(I) = (I/N)**2
DO I 1 N
RI RI I
R/ T RI RN
R* T T T
ZV POWELLBC X(I) T
ND
ELEMENT TYPE
EV INVNRM XJ YJ
EV INVNRM XK YK
IV INVNRM X Y
ELEMENT USES
XT 'DEFAULT' INVNRM
DO K 2 P
I- K-1 K 1
I* 2K 2 K
I- 2K-1 2K 1
DO J 1 K-1
I* 2J 2 J
I- 2J-1 2J 1
ZV E(K,J) XJ X(2J-1)
ZV E(K,J) XK X(2K-1)
ZV E(K,J) YJ X(2J)
ZV E(K,J) YK X(2K)
ND
GROUP USES
DO K 2 P
I- K-1 K 1
DO J 1 K-1
XE OBJ E(K,J)
ND
OBJECT BOUND
LO POWELLBC 0.0
* Solution
*LO SOLTN ??
ENDATA
***********************
* SET UP THE FUNCTION *
* AND RANGE ROUTINES *
***********************
ELEMENTS POWELLBC
TEMPORARIES
R NORM
INDIVIDUALS
T INVNRM
R X XJ 1.0 XK -1.0
R Y YJ 1.0 YK -1.0
A NORM 1.0 / SQRT( X * X + Y * Y )
F NORM
G X - X * NORM ** 3
G Y - Y * NORM ** 3
H X X ( 3.0 * X * X * NORM ** 2 - 1.0 )
H+ * NORM ** 3
H X Y 3.0 * X * Y * NORM ** 5
H Y Y ( 3.0 * Y * Y * NORM ** 2 - 1.0 )
H+ * NORM ** 3
ENDATA