← Back to projects
Optimising the Fisheries Industry in the Philippines

Optimising the Fisheries Industry in the Philippines

Jan 24 - Apr 24

JuliaOptimizationPython

Highlights

GitHub - nathanansel28/40.002-Optimisation-1D

Contribute to nathanansel28/40.002-Optimisation-1D development by creating an account on GitHub.

github.com

Project Background

Protein deficiency and poverty in the Philippines is a an alarming issue, especially among children and pregnant women. Limited access to protein-rich food contributes to malnutrition and stunted growth, affecting health and development while also worsening poverty in the long term. To tackle this issue, citizens of the Philippines have focused on catching fish as one of the ways to provide a more affordable source of protein. However, overfishing and inefficient resource allocation have compromised the steady and reliable supply of fishβ€”and with it, proteinβ€”while also worsening the economic security of the people.

πŸ’‘ Thus, this project strives to create a Mixed Integer Linear Program (MILP) to address this issue. Our MILP is designed to find an optimal strategy to catch and distribute fish among the people so as to maximize the overall protein distribution while minimizing all associated costs.

Model Formulation

The Philippines is one of the world's biggest archipelagos: it is made up of multiple islands interconnected by sea. As such, the Philippines is blessed with abundant natural resources from the sea, namely fish. However, a major challenge is posed in that this fish is not directly accessible to the people. For an ordinary person to consume fish, fish must be distributed through an intricate supply chain involving, from the very beginning, a fishing ground, and then a processing facility, and finally a city from where a person can directly buy fish. Consider the following diagram to illustrate this supply chain.

Fish supply chain diagram from fishing ground to processing facility to city

A major challenge faced in the fisheries industry is thus deciding how to distribute fish in the most logistically efficient manner. Evidently, there are various geographical obstacles that separate the ordinary fish consumer from the fishing groundsβ€”be it sea or land or even other obstaclesβ€”and hence the goal of this project would to be figure out an optimal strategy to distribute the most amount of fish while incurring the least amount of cost possible.

The problem thus centers around: (1) finding the optimal number of fish to be delivered from a fishing ground to a processing facility, (2) finding the optimal number of fish to be delivered from a processing facility to a city, (3) finding the optimal combination of facilities to be opened to ensure adequate fish processing capacity, and finally (4) finding the optimal amount of government subsidies required to provide access to fish consumption for the less fortunateβ€”all while ensuring certain constraints are met.

Indeed, this problem is a "Multi-Stage" Capacitated Facility Location Problem: each processing facility is a client to the fishing grounds, and each city is a client to the processing facilities.

Decision Variables

Objective Function

The objective combines four components: maximizing total protein distributed, minus the total fishing cost, distribution cost (plus facility operating cost), and subsidy cost.

max⁑Z=Mβ‹…Z1βˆ’Z2βˆ’Z3βˆ’Z4\max Z = M \cdot Z_1 - Z_2 - Z_3 - Z_4

where Z1Z_1 is total protein distributed, Z2Z_2 is total fishing cost, Z3Z_3 is distribution cost plus facility operating cost, Z4Z_4 is total subsidies, and M=105M = 10^5 is a large weighting constant that prioritizes maximizing protein distribution over minimizing cost β€” a Big-M-style approach to combining a multi-objective problem into a single linear objective.

Constraints

The model enforces 8 constraint families, several of which encode real domain assumptions rather than generic bounds:

5,840⋅ρjβ€…β€Šβ‰€β€…β€Šβˆ‘fβˆ‘ivfβ‹…yfijβ€…β€Šβ‰€β€…β€Š43,800⋅ρjβˆ€j5{,}840 \cdot \rho_j \;\leq\; \sum_{f}\sum_{i} v_f \cdot y_{fij} \;\leq\; 43{,}800 \cdot \rho_j \qquad \forall j

where ρj\rho_j is the population of city j and vfv_f is the protein value of fish f. The lower bound assumes only 1/3 of a person's protein comes from fish, since people should draw protein from a diverse diet, not fish alone.

Data

The model was parameterized with real 2021 data pulled from Philippine government and industry sources: the Philippines Fisheries Development Authority (PFDA), the Bureau of Fisheries and Aquatic Resources (BFAR), Statista, SimpleMaps, and Payscale, with a few gaps filled via randomization (fishing/transport costs fluctuated Β±30% around their base value to simulate real-world variability; city GDP-per-capita was randomized within Β±20–30% of the national figure based on each city's administrative status, due to unavailable ground-truth data).

Map of fishing grounds and processing facilities (left) and cities (right) used in the model, plotted across the Philippines
Fishing grounds & processing facilities (left) and cities (right) used in the model.

Results

The model was solved to a provably optimal solution using GLPK: Zβˆ—β‰ˆ1.023Γ—1017Z^* \approx 1.023 \times 10^{17}, with a 0% relative optimality gap, in about 117 seconds.

Two results stood out as genuinely interesting:

Limitations

The Big-M weighting on protein maximization (M=105M = 10^5) is a modeling convenience, not a principled choice β€” an arbitrary value for MM can change which solution is optimal, and large constants can introduce numerical instability for the solver. Determining a more rigorous value (or an alternative multi-objective formulation, e.g. via weighted Pareto optimization) would be a natural next step.

Area Covered

Area Covered β€” Google My Maps

google.com

Read the Complete Project Report

40.002 Optimisation - 1D Project ReportDownload / Open in new tab
Your browser can't display this PDF inline. Open it directly.