-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathHUBFIT.SIF
107 lines (100 loc) · 2.58 KB
/
HUBFIT.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
***************************
* SET UP THE INITIAL DATA *
***************************
NAME HUBFIT
* Problem :
* *********
* Variable dimension full rank linear problem
* An elementary fit using the Huber loss function
* Source:
* A.R. Conn, N. Gould and Ph.L. Toint,
* "The LANCELOT User's Manual",
* Dept of Maths, FUNDP, 1991.
* SIF input: Ph. Toint, Jan 1991.
* classification OLR2-AN-2-1
* Data points
RE X1 0.1
RE X2 0.3
RE X3 0.5
RE X4 0.7
RE X5 0.9
* Observed values
RE Y1 0.25
RE Y2 0.3
RE Y3 0.625
RE Y4 0.701
RE Y5 1.0
* Upper bound at 1.0
RE C 0.85
VARIABLES
a
b
GROUPS
* Objective function groups
ZN Obj1 a X1
XN Obj1 b 1.0
XN Obj1 'SCALE' 2.0
ZN Obj2 a X2
XN Obj2 b 1.0
XN Obj2 'SCALE' 2.0
ZN Obj3 a X3
XN Obj3 b 1.0
XN Obj3 'SCALE' 2.0
ZN Obj4 a X4
XN Obj4 b 1.0
XN Obj4 'SCALE' 2.0
ZN Obj5 a X5
XN Obj5 b 1.0
XN Obj5 'SCALE' 2.0
* Constraint group
XL Cons a 1.0 b 1.0
CONSTANTS
Z HUBFIT Obj1 Y1
Z HUBFIT Obj2 Y2
Z HUBFIT Obj3 Y3
Z HUBFIT Obj4 Y4
Z HUBFIT Obj5 Y5
Z HUBFIT Cons C
BOUNDS
XR HUBFIT b
GROUP TYPE
GV HUBER ALPHA
GROUP USES
XT Obj1 HUBER
XT Obj2 HUBER
XT Obj3 HUBER
XT Obj4 HUBER
XT Obj5 HUBER
ENDATA
GROUPS HUBFIT
TEMPORARIES
L OUT
L NEGOUT
L POSOUT
R ABSA
R HUBERK
R FF
R GG
R HH
M ABS
INDIVIDUALS
T HUBER
A HUBERK 1.5
A ABSA ABS( ALPHA )
A OUT ABSA .GT. HUBERK
* Case 1: alpha is outside [-k, k]
I OUT FF HUBERK * ABSA - 0.5 * HUBERK * HUBERK
A NEGOUT OUT .AND. ( ALPHA .LT. 0.0 )
A POSOUT OUT .AND. ( ALPHA .GE. 0.0 )
I POSOUT GG HUBERK
I NEGOUT GG - HUBERK
I OUT HH 0.0
* Case 2: alpha is inside [-k, k]
E OUT FF 0.5 * ABSA * ABSA
E OUT GG ALPHA
E OUT HH 1.0
* Assign the final values
F FF
G GG
H HH
ENDATA