1
- #include " generalizedassignmentsolver/algorithms/lagrelax_lbfgs .hpp"
1
+ #include " generalizedassignmentsolver/algorithms/lagrangian_relaxation_dlib .hpp"
2
2
3
3
#include " generalizedassignmentsolver/algorithm_formatter.hpp"
4
4
@@ -17,17 +17,17 @@ using namespace dlib;
17
17
typedef matrix<double ,0 ,1 > column_vector;
18
18
19
19
// //////////////////////////////////////////////////////////////////////////////
20
- // ///////////////////////// lagrelax_assignment_lbfgs /////// ///////////////////
20
+ // //////////////////// lagrangian_relaxation_assignment_dlib ///////////////////
21
21
// //////////////////////////////////////////////////////////////////////////////
22
22
23
- class LagRelaxAssignmentLbfgsFunction
23
+ class LagrangianRelaxationAssignmentDlibFunction
24
24
{
25
25
26
26
public:
27
27
28
- LagRelaxAssignmentLbfgsFunction (
28
+ LagrangianRelaxationAssignmentDlibFunction (
29
29
const Instance& instance,
30
- LagRelaxAssignmentLbfgsParameters & p,
30
+ LagrangianRelaxationAssignmentDlibParameters & p,
31
31
ItemIdx number_of_unfixed_items,
32
32
const std::vector<ItemIdx>& item_indices):
33
33
instance_ (instance), p_(p), item_indices_(item_indices), grad_(number_of_unfixed_items)
@@ -48,7 +48,7 @@ class LagRelaxAssignmentLbfgsFunction
48
48
kp_indices_.resize (instance.number_of_items ());
49
49
}
50
50
51
- virtual ~LagRelaxAssignmentLbfgsFunction () { }
51
+ virtual ~LagrangianRelaxationAssignmentDlibFunction () { }
52
52
53
53
double f (const column_vector& x);
54
54
@@ -57,7 +57,7 @@ class LagRelaxAssignmentLbfgsFunction
57
57
private:
58
58
59
59
const Instance& instance_;
60
- LagRelaxAssignmentLbfgsParameters & p_;
60
+ LagrangianRelaxationAssignmentDlibParameters & p_;
61
61
/* * item_indices_[item_id] is the index of item j in mu and grad_. */
62
62
const std::vector<ItemIdx>& item_indices_;
63
63
@@ -69,7 +69,7 @@ class LagRelaxAssignmentLbfgsFunction
69
69
70
70
};
71
71
72
- double LagRelaxAssignmentLbfgsFunction ::f (const column_vector& mu)
72
+ double LagrangianRelaxationAssignmentDlibFunction ::f (const column_vector& mu)
73
73
{
74
74
// Initialize bound and gradient;
75
75
double l = 0 ;
@@ -117,13 +117,13 @@ double LagRelaxAssignmentLbfgsFunction::f(const column_vector& mu)
117
117
return l;
118
118
}
119
119
120
- const LagRelaxAssignmentLbfgsOutput generalizedassignmentsolver::lagrelax_assignment_lbfgs (
120
+ const LagrangianRelaxationAssignmentDlibOutput generalizedassignmentsolver::lagrangian_relaxation_assignment_dlib (
121
121
const Instance& instance,
122
- const LagRelaxAssignmentLbfgsParameters & parameters)
122
+ const LagrangianRelaxationAssignmentDlibParameters & parameters)
123
123
{
124
- LagRelaxAssignmentLbfgsOutput o output (instance);
124
+ LagrangianRelaxationAssignmentDlibOutput o output (instance);
125
125
AlgorithmFormatter algorithm_formatter (parameters, output);
126
- algorithm_formatter.start (" Lagrangian relaxation - assignment constraints (LBFGS )" );
126
+ algorithm_formatter.start (" Lagrangian relaxation - assignment constraints (dlib )" );
127
127
algorithm_formatter.print_header ();
128
128
129
129
// Compute c0, item_indices and number_of_unfixed_items
@@ -157,13 +157,13 @@ const LagRelaxAssignmentLbfgsOutput generalizedassignmentsolver::lagrelax_assign
157
157
}
158
158
159
159
// Solve
160
- LagRelaxAssignmentLbfgsFunction func (instance, parameters, number_of_unfixed_items, item_indices);
160
+ LagrangianRelaxationAssignmentDlibFunction func (instance, parameters, number_of_unfixed_items, item_indices);
161
161
auto f = [&func](const column_vector& x) { return func.f (x); };
162
162
auto def = [&func](const column_vector& x) { return func.der (x); };
163
163
auto stop_strategy = objective_delta_stop_strategy (0.0001 );
164
164
// auto stop_strategy = gradient_norm_stop_strategy().be_verbosity_level(),
165
165
double res = find_max (
166
- lbfgs_search_strategy (256 ),
166
+ dlib_search_strategy (256 ),
167
167
stop_strategy,
168
168
f,
169
169
def,
@@ -183,20 +183,20 @@ const LagRelaxAssignmentLbfgsOutput generalizedassignmentsolver::lagrelax_assign
183
183
}
184
184
185
185
// //////////////////////////////////////////////////////////////////////////////
186
- // ////////////////////////// lagrelax_knapsack_lbfgs /////// ////////////////////
186
+ // ///////////////////// lagrangian_relaxation_knapsack_dlib ////////////////////
187
187
// //////////////////////////////////////////////////////////////////////////////
188
188
189
- class LagRelaxKnapsackLbfgsFunction
189
+ class LagrangianRelaxationKnapsackDlibFunction
190
190
{
191
191
192
192
public:
193
193
194
- LagRelaxKnapsackLbfgsFunction (const Instance& instance):
194
+ LagrangianRelaxationKnapsackDlibFunction (const Instance& instance):
195
195
instance_ (instance),
196
196
x_ (instance.number_of_items()),
197
197
grad_ (instance.number_of_agents())
198
198
{ }
199
- virtual ~LagRelaxKnapsackLbfgsFunction () { };
199
+ virtual ~LagrangianRelaxationKnapsackDlibFunction () { };
200
200
201
201
double f (const column_vector& x);
202
202
@@ -212,7 +212,7 @@ class LagRelaxKnapsackLbfgsFunction
212
212
213
213
};
214
214
215
- double LagRelaxKnapsackLbfgsFunction ::f (const column_vector& mu)
215
+ double LagrangianRelaxationKnapsackDlibFunction ::f (const column_vector& mu)
216
216
{
217
217
// Initialize bound and gradient
218
218
double l = 0 ;
@@ -250,13 +250,13 @@ double LagRelaxKnapsackLbfgsFunction::f(const column_vector& mu)
250
250
return l;
251
251
}
252
252
253
- const LagRelaxKnapsackLbfgsOutput generalizedassignmentsolver::lagrelax_knapsack_lbfgs (
253
+ const LagrangianRelaxationKnapsackDlibOutput generalizedassignmentsolver::lagrangian_relaxation_knapsack_dlib (
254
254
const Instance& instance,
255
255
const Parameters& parameters)
256
256
{
257
- LagRelaxKnapsackLbfgsOutput output (instance);
257
+ LagrangianRelaxationKnapsackDlibOutput output (instance);
258
258
AlgorithmFormatter algorithm_formatter (parameters, output);
259
- algorithm_formatter.start (" Lagrangian relaxation - knapsack constraints (LBFGS )" );
259
+ algorithm_formatter.start (" Lagrangian relaxation - knapsack constraints (dlib )" );
260
260
algorithm_formatter.print_header ();
261
261
262
262
// Initialize multipliers
@@ -272,13 +272,13 @@ const LagRelaxKnapsackLbfgsOutput generalizedassignmentsolver::lagrelax_knapsack
272
272
}
273
273
274
274
// Solve
275
- LagRelaxKnapsackLbfgsFunction func (instance);
275
+ LagrangianRelaxationKnapsackDlibFunction func (instance);
276
276
auto f = [&func](const column_vector& x) { return func.f (x); };
277
277
auto def = [&func](const column_vector& x) { return func.der (x); };
278
278
auto stop_strategy = objective_delta_stop_strategy ();
279
279
// auto stop_strategy = gradient_norm_stop_strategy();
280
280
double res = find_max_box_constrained (
281
- lbfgs_search_strategy (256 ),
281
+ dlib_search_strategy (256 ),
282
282
stop_strategy,
283
283
f,
284
284
def,
0 commit comments