DISPLACE  1.0
A spatial model of fisheries to help sustainable fishing and maritime spatial planning
vesselsevaluators.h
Go to the documentation of this file.
1 #ifndef VESSELSEVALUATORS_H
2 #define VESSELSEVALUATORS_H
3 
4 #include <Vessel.h>
5 #include <Node.h>
6 #include <helpers.h>
7 #include <numeric> // std::accumulate()
8 
9 namespace dtree {
10 namespace vessels {
12 private:
13 public:
15  double evaluate(int, Vessel *vessel) const {
16  if (vessel->getNumTrips() > 2)
17  return (vessel->getLastTripProfit() < vessel->getAvgTripProfit() ? 1.0 : 0.0);
18  else
19  return 0.0;
20  }
21 };
22 
24 private:
25 public:
27  double evaluate(int, Vessel *vessel) const {
28  if (vessel->getNumTrips() > 2)
29  return (vessel->getLastTripRevenues() < vessel->getAvgTripRevenues() ? 1.0 : 0.0);
30  else
31  return 0.0;
32  }
33 };
34 
36 public:
38  double evaluate(int, Vessel *vessel) const {
39  //cout << vessel->get_name() << " with length " << vessel->get_length() << " is of length class " << (double)vessel->get_length_class() << endl;
40  return static_cast<float>(vessel->get_length_class()) / VariableNames::variableBinCount(Variable::vesselSizeIs);
41  }
42 };
43 
45 public:
47  double evaluate(int, Vessel *vessel) const {
48  vector<int> trgts= vessel->get_metier()->get_metier_target_stocks();
49  return trgts.at(0) / VariableNames::variableBinCount(Variable::stockTargetIs); //WIP: should account for all the targets!
50  }
51 };
52 
53 
55 public:
57  double evaluate(int, Vessel *vessel) const {
58  return static_cast<float>(vessel->get_metier()->get_name()) / VariableNames::variableBinCount(Variable::vesselMetierIs);
59  }
60 };
61 
62 
64 private:
65 public:
66  static constexpr double WorkDay = 0.0;
67  static constexpr double WeekEndDay = 1.0;
68 
70  double evaluate(int tstep, Vessel *vessel) const {
71  int wday = (tstep / 24) % 7;
72  if (vessel->getWeekEndStartDay() > vessel->getWeekEndEndDay()) {
73  if (vessel->getWeekEndEndDay() < wday && wday < vessel->getWeekEndStartDay())
74  return WorkDay;
75  return WeekEndDay;
76  } else {
77  if (vessel->getWeekEndEndDay() >= wday && wday >= vessel->getWeekEndStartDay())
78  return WeekEndDay;
79  return WorkDay;
80  }
81  }
82 };
83 
85 private:
86 public:
87 
89  double evaluate(int tstep, Vessel *vessel) const {
90  UNUSED(vessel);
91  return ((tstep/720) % 12) / 11.0;
92  }
93 };
94 
95 
97 private:
98 public:
100  double evaluate(int, Vessel *v) const {
101  double min_quota_left_among_avoided_stks = v->get_min_prop_remaining_individual_quotas_on_avoided_stks();
102  return min_quota_left_among_avoided_stks < 0.1 ? 1.0 : 0.0; // Is yes (right leaf) or no (left leaf) the individual quotas (for avoided species) left is low
103  }
104 };
105 
107 private:
108 public:
110  double evaluate(int, Vessel *v) const {
111  double min_quota_left_among_avoided_stks = v->get_min_prop_remaining_global_quotas_on_avoided_stks();
112 // cout << "min_quota_left_among_avoided_stks is " << min_quota_left_among_avoided_stks;
113  return min_quota_left_among_avoided_stks < 0.1 ? 1.0 : 0.0; // Is yes (right leaf) or no (left leaf) the global quotas (for avoided species) left is low
114  }
115 };
116 
118 private:
119 public:
121  double evaluate(int, Vessel *v) const {
122  //cout << "vessel specific risk of bycatch being evaluated before trip start..." << endl;
123  vector <double> prop_bycatch = v->get_experienced_avoided_stks_bycatch_prop_on_fgrounds();
124  double average_prop_bycatch= std::accumulate( prop_bycatch.begin(), prop_bycatch.end(), 0.0)/prop_bycatch.size();
125  //cout << "...the average discard ratio for this vessel is: " << average_prop_bycatch << endl;
126  return average_prop_bycatch > 0.2 ? 1.0 : 0.0; // Is yes (right leaf) or no (left leaf) the vessel has experienced large bycatch (>20%) on this ground?
127  }
128 };
129 
130 
131 
133 private:
134 public:
136  double evaluate(int, Vessel *vessel) const {
137  return vessel->get_cumfuelcons() > (vessel->get_tankcapacity()*0.5) ? 1.0 : 0.0; //0: "still ok" node; 1: "low"
138  // a more complicated alternative require computing (all) distance to ports:
139  // return ( vessel->get_tankcapacity() - vessel->get_cumfuelcons()
140  // < ( (a_min_dist /(vessel->get_speed() * NAUTIC)) * vessel->get_fuelcons()*vessel->get_mult_fuelcons_when_steaming() );
141  // ? 1.0 : 0.0);
142  }
143 };
144 
145 
147 private:
148 public:
150  double evaluate(int, Vessel *vessel) const {
151  return vessel->get_cumcatches() > (vessel->get_carrycapacity() *0.5) ? 1.0 : 0.0; //0: "still ok" node; 1: "fullfilled"
152  }
153 };
154 
155 
157 private:
158 public:
160  double evaluate(int, Vessel *vessel) const {
161  return vessel->get_timeatsea() > 5*24 ? 1.0 : 0.0; //0:<5days ; 1:><5days
162  }
163 };
164 
165 
167 private:
168 public:
170  double evaluate(int tstep, Vessel *vessel) const {
171  int current_hour= (int)((tstep % 24)+0.5);
172  return ((
173  // caution: we expect getWorkDayEndHour to be within 0 and 23...(i.e. no 24)
174  (vessel->getWorkDayEndHour() == 23 && current_hour == vessel->getWorkDayEndHour()-1) || // end of day is true if +/- 1 hour of the usual return hour (make flexible because the vessel might be steaming at the exact hour then not taking any stop fishing decision...)
175  (current_hour == vessel->getWorkDayEndHour()) ||
176  (current_hour == vessel->getWorkDayEndHour()+1) ||
177  (vessel->get_timeatsea() > 20) // worst case, end of the day triggered as soon as trying to fish again within the next day...
178  )
179  ? 0.0 : 1.0); //0: "true" node; 1: "false"
180  }
181 };
182 
183 
185 private:
186 public:
188  double evaluate(int fground, Vessel *v) const {
189  auto lst_fgrounds_in_closed_areas=v->get_fgrounds_in_closed_areas();
190  auto it= find (lst_fgrounds_in_closed_areas.begin(), lst_fgrounds_in_closed_areas.end(), types::NodeId(fground));
191  bool isIt= (it != lst_fgrounds_in_closed_areas.end()); // found
192  //cout << "isinareaclosure on this ground evaluated at " << isIt << endl;
193  return isIt ? 1.0 : 0.0; // Is yes or no in closed area?
194 
195  }
196 };
197 
198 
200 private:
201 public:
203  double evaluate(int fground, Vessel *v) const {
204  bool isSmart= (types::NodeId(fground)==v->get_smartcatch());
205  //cout << "smartcatch on this ground evaluated at " << isSmart << endl;
206  return isSmart ? 1.0 : 0.0; // Is yes (right leaf) or no (left leaf) the tested ground a smart catch?
207  }
208 };
209 
210 
212 private:
213 public:
215  double evaluate(int fground, Vessel *v) const {
216  bool isHighPotential=(types::NodeId(fground)==v->get_highpotentialcatch());
217  //cout << "highpotentialcatch on this ground evaluated at " << isHighPotential<< endl;
218  return isHighPotential ? 1.0 : 0.0; // Is yes or no the tested ground the highest cpue ground?
219  }
220 };
221 
223 private:
224 public:
226  double evaluate(int fground, Vessel *v) const {
227  bool isNotFar = (types::NodeId(fground)==v->get_notthatfar());
228  //cout << "notthatfar on this ground evaluated at " << isNotFar << endl;
229  return isNotFar ? 1.0 : 0.0; // Is yes or no the closest ground?
230  }
231 };
232 
234 private:
235 public:
237  double evaluate(int fground, Vessel *v) const {
238  bool isWellKnown = (types::NodeId(fground)==v->get_mosthistoricallyused());
239  //cout << "mosthistoricallyused on this ground evaluated at " << isWellKnown << endl;
240  return isWellKnown ? 1.0 : 0.0; // Is yes or no the ground has been the most historically frequent?
241  }
242 };
243 
245 private:
246 public:
248  double evaluate(int fground, Vessel *v) const {
249  auto the_grds = v->get_fgrounds();
250  int idx_node_r= find(the_grds.begin(), the_grds.end(), types::NodeId(fground)) - the_grds.begin(); // relative node index to this vessel
251  //cout << "risk of bycatch on this ground being evaluated..." << endl;
252  vector <double> prop_bycatch = v->get_experienced_bycatch_prop_on_fgrounds();
253  //cout << "...the discard ratio for that ground is: " << prop_bycatch.at(idx_node_r) << endl;
254  return prop_bycatch.at(idx_node_r) > 0.2 ? 1.0 : 0.0; // Is yes (right leaf) or no (left leaf) the vessel has experienced large bycatch (>20%) on this ground?
255  }
256 };
257 
258 
260 private:
261 public:
263  double evaluate(int fground, Vessel *v) const {
264  auto the_grds = v->get_fgrounds();
265  int idx_node_r= find(the_grds.begin(), the_grds.end(), types::NodeId(fground)) - the_grds.begin(); // relative node index to this vessel
266  //cout << "risk of bycatch on this ground being evaluated..." << endl;
267  vector <double> prop_bycatch = v->get_experienced_avoided_stks_bycatch_prop_on_fgrounds();
268  //cout << "...the discard ratio for that ground is: " << prop_bycatch.at(idx_node_r) << endl;
269  return prop_bycatch.at(idx_node_r) > 0.2 ? 1.0 : 0.0; // Is yes (right leaf) or no (left leaf) the vessel has experienced large bycatch (>20%) on this ground?
270  }
271 };
272 
274 private:
275 public:
277  double evaluate(int fground, Vessel *v) const {
278  double min_quota_left_among_avoided_stks = v->get_min_prop_remaining_individual_quotas_on_avoided_stks();
279  return min_quota_left_among_avoided_stks < 0.1 ? 1.0 : 0.0; // Is yes (right leaf) or no (left leaf) the individual quotas (for avoided species) left is low
280  }
281 };
282 
284 private:
285 public:
287  double evaluate(int fground, Vessel *v) const {
288  double min_quota_left_among_avoided_stks = v->get_min_prop_remaining_global_quotas_on_avoided_stks();
289 // cout << "min_quota_left_among_avoided_stks is " << min_quota_left_among_avoided_stks;
290  return min_quota_left_among_avoided_stks < 0.1 ? 1.0 : 0.0; // Is yes (right leaf) or no (left leaf) the global quotas (for avoided species) left is low
291  }
292 };
293 
295 private:
296 public:
298  double evaluate(int fground, Vessel *v) const {
299  bool LowestTariff = (types::NodeId(fground)==v->get_lowesttariff());
300  //cout << "lowesttariff on this ground evaluated at " << LowestTariff << endl;
301  return LowestTariff ? 1.0 : 0.0; // Is yes or no the closest ground?
302  }
303 
304 };
305 
307 private:
308 public:
310  double evaluate(int fground, Vessel *v) const {
311  //auto the_grds = v->get_fgrounds();
312  //int idx_node_r= find(the_grds.begin(), the_grds.end(), types::NodeId(fground)) - the_grds.begin(); // relative node index to this vessel
313  //cout << "Tariff on this ground being evaluated..." << endl;
314  vector <double> tariffs_over_layers = v->get_map_of_nodes().at(fground)->get_tariffs(); // using the superpower of omniscience (which is anyway quite expected on tariffs!)
315  //cout << "...the overall tariff for that ground is: " << tariffs_over_layers.at(0) << endl;
316  return tariffs_over_layers.at(0) >= 5 ? 1.0 : 0.0; // Is yes (right leaf) or no (left leaf) somewhat high tariff on this ground?
317  }
318 };
319 
320 
321 
322 
323 // StartFishing dtree
325 private:
326 public:
328  double evaluate(int fground, Vessel *v) const {
329  auto the_grds = v->get_fgrounds();
330  int idx_node_r= find(the_grds.begin(), the_grds.end(), types::NodeId(fground)) - the_grds.begin(); // relative node index to this vessel
331  //cout << "risk of bycatch on this ground being evaluated..." << endl;
332  vector <double> prop_bycatch = v->get_experienced_avoided_stks_bycatch_prop_on_fgrounds();
333  //cout << "...the discard ratio for that ground is: " << prop_bycatch.at(idx_node_r) << endl;
334  return prop_bycatch.at(idx_node_r) > 0.2 ? 1.0 : 0.0; // Is yes (right leaf) or no (left leaf) the vessel has experienced large bycatch (>20%) on this ground?
335  }
336 };
337 
338 
339 
341 private:
342 public:
344  double evaluate(int fground, Vessel *v) const {
345  int currentbottom = v->get_loc()->get_marine_landscape();
346  vector<int> suitablebottoms = v->get_metier()->get_metier_suitable_seabottomtypes();
347  return binary_search(suitablebottoms.begin(), suitablebottoms.end(), currentbottom) ? 1.0 : 0.0; // Is yes (right leaf) or no (left leaf)
348  }
349 };
350 
352 private:
353 public:
355  double evaluate(int fground, Vessel *v) const {
356  double min_quota_left_among_avoided_stks = v->get_min_prop_remaining_individual_quotas_on_avoided_stks();
357  return min_quota_left_among_avoided_stks < 0.1 ? 1.0 : 0.0; // Is yes (right leaf) or no (left leaf) the individual quotas (for avoided species) left is low
358  }
359 };
360 
362 private:
363 public:
365  double evaluate(int fground, Vessel *v) const {
366  double min_quota_left_among_avoided_stks = v->get_min_prop_remaining_global_quotas_on_avoided_stks();
367 // cout << "min_quota_left_among_avoided_stks is " << min_quota_left_among_avoided_stks;
368  return min_quota_left_among_avoided_stks < 0.1 ? 1.0 : 0.0; // Is yes (right leaf) or no (left leaf) the global quotas (for avoided species) left is low
369  }
370 };
371 
372 
373 // ChangeGround
375 private:
376 public:
378  double evaluate(int fground, Vessel *v) const {
379  double min_quota_left_among_avoided_stks = v->get_min_prop_remaining_global_quotas_on_avoided_stks();
380 // cout << "min_quota_left_among_avoided_stks is " << min_quota_left_among_avoided_stks;
381  return min_quota_left_among_avoided_stks < 0.1 ? 1.0 : 0.0; // Is yes (right leaf) or no (left leaf) the global quotas (for avoided species) left is low
382  }
383 };
384 
386 private:
387 public:
389  double evaluate(int fground, Vessel *v) const {
390  double min_quota_left_among_avoided_stks = v->get_min_prop_remaining_global_quotas_on_avoided_stks();
391 // cout << "min_quota_left_among_avoided_stks is " << min_quota_left_among_avoided_stks;
392  return min_quota_left_among_avoided_stks < 0.1 ? 1.0 : 0.0; // Is yes (right leaf) or no (left leaf) the global quotas (for avoided species) left is low
393  }
394 };
395 
396 
397 
398 
399 
400 
401 }
402 }
403 
404 #endif // VESSELSEVALUATORS_H
VesselKnowledgeOfThisGroundStateEvaluator()
Definition: vesselsevaluators.h:236
Definition: variables.h:12
VesselHighPotentialCatchStateEvaluator()
Definition: vesselsevaluators.h:214
double get_carrycapacity() const
Definition: Vessel.cpp:769
types::NodeId get_lowesttariff() const
Definition: Vessel.cpp:947
int getWeekEndStartDay() const
Definition: Vessel.h:578
vector< Vessel * > vessels
Definition: main.cpp:199
Definition: vesselsevaluators.h:35
AverageRevenuesComparationStateEvaluator()
Definition: vesselsevaluators.h:26
Metier * get_metier() const
Definition: Vessel.cpp:450
double evaluate(int fground, Vessel *v) const
evaluate the state/variable, and returns the selected output, as double. Client can decide what to do...
Definition: vesselsevaluators.h:355
Definition: vesselsevaluators.h:166
Definition: vesselsevaluators.h:84
int getWorkDayEndHour() const
Definition: Vessel.h:581
double evaluate(int, Vessel *vessel) const
evaluate the state/variable, and returns the selected output, as double. Client can decide what to do...
Definition: vesselsevaluators.h:136
Definition: variables.h:21
double evaluate(int, Vessel *vessel) const
evaluate the state/variable, and returns the selected output, as double. Client can decide what to do...
Definition: vesselsevaluators.h:150
types::NodeId get_smartcatch() const
Definition: Vessel.cpp:932
VesselglobalQuotaLeftOnAvoidedStksIsStateEvaluator()
Definition: vesselsevaluators.h:286
VesselglobalQuotaLeftOnAvoidedStksHereIsStateEvaluator()
Definition: vesselsevaluators.h:364
Definition: vesselsevaluators.h:44
double get_cumcatches() const
Definition: Vessel.cpp:805
double evaluate(int, Vessel *vessel) const
evaluate the state/variable, and returns the selected output, as double. Client can decide what to do...
Definition: vesselsevaluators.h:160
int getNumTrips() const
Definition: Vessel.h:564
double evaluate(int fground, Vessel *v) const
evaluate the state/variable, and returns the selected output, as double. Client can decide what to do...
Definition: vesselsevaluators.h:298
Definition: idtypes.h:52
VesselRiskOfBycatchAvoidedStksIsStateEvaluator()
Definition: vesselsevaluators.h:262
double evaluate(int fground, Vessel *v) const
evaluate the state/variable, and returns the selected output, as double. Client can decide what to do...
Definition: vesselsevaluators.h:263
static constexpr double WorkDay
Definition: vesselsevaluators.h:66
double evaluate(int fground, Vessel *v) const
evaluate the state/variable, and returns the selected output, as double. Client can decide what to do...
Definition: vesselsevaluators.h:378
VesselTargetEvaluator()
Definition: vesselsevaluators.h:46
int tstep
Definition: main.cpp:205
vector< int > get_metier_target_stocks()
Definition: Metier.cpp:192
Definition: vesselsevaluators.h:63
double evaluate(int fground, Vessel *v) const
evaluate the state/variable, and returns the selected output, as double. Client can decide what to do...
Definition: vesselsevaluators.h:328
AverageProfitComparationsStateEvaluator()
Definition: vesselsevaluators.h:14
double get_tankcapacity() const
Definition: Vessel.cpp:763
VesselSeeingOtherVesselFishingElsewhereStateEvaluator()
Definition: vesselsevaluators.h:388
VesselSmartCatchStateEvaluator()
Definition: vesselsevaluators.h:202
double evaluate(int tstep, Vessel *vessel) const
evaluate the state/variable, and returns the selected output, as double. Client can decide what to do...
Definition: vesselsevaluators.h:170
Definition: vesselsevaluators.h:132
Definition: variables.h:13
VesselTodayIsStateEvaluator()
Definition: vesselsevaluators.h:69
VesselTariffThisGroundIsStateEvaluator()
Definition: vesselsevaluators.h:309
double evaluate(int tstep, Vessel *vessel) const
evaluate the state/variable, and returns the selected output, as double. Client can decide what to do...
Definition: vesselsevaluators.h:89
An abstract class to allow internal/External states to be evaluated.
Definition: stateevaluator.h:14
double evaluate(int fground, Vessel *v) const
evaluate the state/variable, and returns the selected output, as double. Client can decide what to do...
Definition: vesselsevaluators.h:310
const std::vector< double > & get_experienced_bycatch_prop_on_fgrounds() const
Definition: Vessel.cpp:542
double evaluate(int, Vessel *vessel) const
evaluate the state/variable, and returns the selected output, as double. Client can decide what to do...
Definition: vesselsevaluators.h:15
int get_length_class() const
Definition: Vessel.cpp:474
double get_min_prop_remaining_individual_quotas_on_avoided_stks()
Definition: Vessel.cpp:876
static constexpr double WeekEndDay
Definition: vesselsevaluators.h:67
#define UNUSED(expr)
Definition: helpers.h:38
VesselsuitableBottomTypeIsStateEvaluator()
Definition: vesselsevaluators.h:343
VesselNotThatFarStateEvaluator()
Definition: vesselsevaluators.h:225
double evaluate(int fground, Vessel *v) const
evaluate the state/variable, and returns the selected output, as double. Client can decide what to do...
Definition: vesselsevaluators.h:389
Definition: vesselsevaluators.h:199
VesselindividualQuotaLeftOnAvoidedStksHereIsStateEvaluator()
Definition: vesselsevaluators.h:354
Definition: Vessel.h:51
double evaluate(int, Vessel *v) const
evaluate the state/variable, and returns the selected output, as double. Client can decide what to do...
Definition: vesselsevaluators.h:110
double evaluate(int, Vessel *vessel) const
evaluate the state/variable, and returns the selected output, as double. Client can decide what to do...
Definition: vesselsevaluators.h:27
Definition: commonstateevaluators.h:8
double evaluate(int, Vessel *vessel) const
evaluate the state/variable, and returns the selected output, as double. Client can decide what to do...
Definition: vesselsevaluators.h:57
VesselFuelTankStateEvaluator()
Definition: vesselsevaluators.h:135
double evaluate(int fground, Vessel *v) const
evaluate the state/variable, and returns the selected output, as double. Client can decide what to do...
Definition: vesselsevaluators.h:226
VesselglobalQuotaLeftOnAvoidedStksNowIsStateEvaluator()
Definition: vesselsevaluators.h:109
types::NodeId get_mosthistoricallyused() const
Definition: Vessel.cpp:952
const std::vector< Node * > & get_map_of_nodes() const
Definition: Vessel.cpp:509
double evaluate(int, Vessel *vessel) const
evaluate the state/variable, and returns the selected output, as double. Client can decide what to do...
Definition: vesselsevaluators.h:38
Node * get_loc() const
Definition: Vessel.cpp:444
VesselIsInAreaClosureEvaluator()
Definition: vesselsevaluators.h:187
int get_marine_landscape() const
Definition: Node.cpp:262
double evaluate(int fground, Vessel *v) const
evaluate the state/variable, and returns the selected output, as double. Client can decide what to do...
Definition: vesselsevaluators.h:287
double getAvgTripRevenues() const
Definition: Vessel.h:555
int getWeekEndEndDay() const
Definition: Vessel.h:579
const std::vector< double > & get_experienced_avoided_stks_bycatch_prop_on_fgrounds() const
Definition: Vessel.cpp:547
VesselCatchVolumeStateEvaluator()
Definition: vesselsevaluators.h:149
double evaluate(int fground, Vessel *v) const
evaluate the state/variable, and returns the selected output, as double. Client can decide what to do...
Definition: vesselsevaluators.h:188
VesselindividualQuotaLeftOnAvoidedStksIsStateEvaluator()
Definition: vesselsevaluators.h:276
VesselRiskOfBycatchAllStksIsStateEvaluator()
Definition: vesselsevaluators.h:247
double getLastTripProfit() const
Definition: Vessel.h:558
double evaluate(int, Vessel *v) const
evaluate the state/variable, and returns the selected output, as double. Client can decide what to do...
Definition: vesselsevaluators.h:121
double evaluate(int fground, Vessel *v) const
evaluate the state/variable, and returns the selected output, as double. Client can decide what to do...
Definition: vesselsevaluators.h:365
VesselindividualQuotaLeftOnAvoidedStksNowIsStateEvaluator()
Definition: vesselsevaluators.h:99
double evaluate(int fground, Vessel *v) const
evaluate the state/variable, and returns the selected output, as double. Client can decide what to do...
Definition: vesselsevaluators.h:237
VesselLowestTariffStateEvaluator()
Definition: vesselsevaluators.h:297
Definition: vesselsevaluators.h:146
Definition: vesselsevaluators.h:222
vector< types::NodeId > & get_fgrounds_in_closed_areas()
Definition: Vessel.cpp:503
double evaluate(int, Vessel *v) const
evaluate the state/variable, and returns the selected output, as double. Client can decide what to do...
Definition: vesselsevaluators.h:100
VesselMonthIsStateEvaluator()
Definition: vesselsevaluators.h:88
types::NodeId get_highpotentialcatch() const
Definition: Vessel.cpp:937
double get_cumfuelcons() const
Definition: Vessel.cpp:698
VesselSizeStateEvaluator()
Definition: vesselsevaluators.h:37
const vector< types::NodeId > & get_fgrounds() const
Definition: Vessel.cpp:492
double evaluate(int tstep, Vessel *vessel) const
evaluate the state/variable, and returns the selected output, as double. Client can decide what to do...
Definition: vesselsevaluators.h:70
VesselEndOfTheDayIsStateEvaluator()
Definition: vesselsevaluators.h:169
static int variableBinCount(Variable var)
Definition: variables.cpp:170
double getAvgTripProfit() const
Definition: Vessel.h:561
VesselRiskOfBycatchAvoidedStksNowIsStateEvaluator()
Definition: vesselsevaluators.h:120
MetierStateEvaluator()
Definition: vesselsevaluators.h:56
Definition: vesselsevaluators.h:184
double get_timeatsea() const
Definition: Vessel.cpp:731
double evaluate(int, Vessel *vessel) const
evaluate the state/variable, and returns the selected output, as double. Client can decide what to do...
Definition: vesselsevaluators.h:47
VesselFeelingForCatchingElsewhereStateEvaluator()
Definition: vesselsevaluators.h:377
double evaluate(int fground, Vessel *v) const
evaluate the state/variable, and returns the selected output, as double. Client can decide what to do...
Definition: vesselsevaluators.h:215
double evaluate(int fground, Vessel *v) const
evaluate the state/variable, and returns the selected output, as double. Client can decide what to do...
Definition: vesselsevaluators.h:203
double evaluate(int fground, Vessel *v) const
evaluate the state/variable, and returns the selected output, as double. Client can decide what to do...
Definition: vesselsevaluators.h:344
VesselNbOfDaysAtSeaSoFarIsStateEvaluator()
Definition: vesselsevaluators.h:159
Definition: vesselsevaluators.h:54
double evaluate(int fground, Vessel *v) const
evaluate the state/variable, and returns the selected output, as double. Client can decide what to do...
Definition: vesselsevaluators.h:248
Definition: vesselsevaluators.h:294
double evaluate(int fground, Vessel *v) const
evaluate the state/variable, and returns the selected output, as double. Client can decide what to do...
Definition: vesselsevaluators.h:277
double get_min_prop_remaining_global_quotas_on_avoided_stks()
Definition: Vessel.cpp:900
double getLastTripRevenues() const
Definition: Vessel.h:549
int get_name()
Definition: Metier.cpp:71
VesselRiskOfBycatchAvoidedStksHereIsStateEvaluator()
Definition: vesselsevaluators.h:327
vector< int > get_metier_suitable_seabottomtypes()
Definition: Metier.cpp:198
types::NodeId get_notthatfar() const
Definition: Vessel.cpp:942