The Objective Function of the Fleet
Source:vignettes/articles/objective_function.Rmd
objective_function.RmdObjective function
We define the objective for a single focal fleet .
Effort and fishing mortality
Let denote the effort of fleet in patch . Fleet-specific fishing mortality at age is
where is catchability and is selectivity at age.
Let denote exogenous fishing mortality from all fleets other than , and let denote natural mortality. Total instantaneous mortality is
Revenue (Baranov catch)
Revenue for fleet is given by Baranov catch multiplied by price:
where is biomass and is the time step.
Cost (Normalized Formulation)
Parameters
-
:
cost-per-unit-effort scalar (calibrated by
tune_fleetswhentune_costs = TRUE) - : reference effort level (mean per-patch effort at equilibrium)
- : effort cost exponent (congestion parameter; default 1.2)
- : travel weight, controls relative importance of spatial costs
- : normalized cost per patch (spatial shape with mean 1 across open patches)
User-facing parameters
Users specify the following interpretable parameters in
create_fleet:
| Parameter | Meaning | Default |
|---|---|---|
cr_ratio |
Cost/revenue ratio at equilibrium | 1 |
effort_cost_exponent
() |
Convexity of congestion costs | 1.2 |
travel_fraction |
Share of costs from travel at equilibrium | 0 |
cost_per_patch |
Spatial cost pattern (normalized internally) | uniform |
The travel weight
is derived from travel_fraction as:
This parameterization ensures that travel costs constitute exactly
travel_fraction of total costs at equilibrium when effort
is uniformly distributed across open patches.
Cost formula
Total cost for fleet is:
Key properties:
Effort normalization: Dividing by makes costs scale-invariant. Changing grid resolution or
base_effortdoesn’t affect the relative importance of congestion vs. travel.-
Separable components:
- Convex term : congestion/diminishing returns
- Travel term : spatial heterogeneity
-
Interpretable parameters:
- controls congestion severity (1 = linear, >1 = convex)
-
(via
travel_fraction) controls how much spatial location matters -
is a pure spatial shape (mean 1), making
travel_fractiondirectly interpretable
Tuning
The primary job of tune_fleets is to calibrate each
metier’s catchability
so that fishing mortality drives each species to its target exploitation
rate (init_explt) or depletion (SSB/SSB0); see
?tune_fleets for details. The cost parameters below are
only calibrated as a secondary step, when
tune_costs = TRUE.
When cost calibration is requested, tune_fleets runs the
fishery to equilibrium and solves for
so that the realized cost/revenue ratio matches the fleet’s
cr_ratio:
where is the number of open fishing patches. The function also computes and stores the equilibrium as the mean per-patch effort.