This project implements a numerical optimization model for biomass management, considering both Volterra integral equations (with memory effects) and differential equations approaches.
The Volterra integral equation case is formulated based on my doctorate thesis in 1991, fourth application (pp. 159-169): Thèse de doctorat Yezza Abdel - Ph.D Yezza Abdel, 1991.
The model optimizes the harvesting effort to maximize profit while maintaining sustainable biomass levels. It supports two different modeling approaches:
- Volterra integral equation (with memory/dissipation effects)
- Standard differential equation (logistic growth with harvesting)
- Biomass dynamics simulation using either Volterra or differential equations
- Profit optimization with harvesting constraints
- Detailed visualization of results (5 different plots)
- Export of results to CSV and Excel files
- Configurable parameters via JSON file
- Clone this repository
- Install required dependencies:
pip install numpy pandas scipy matplotlib openpyxlCreate a params.json file with the following parameters that can be modified from which the main program will extract the parameters:
{
"T": 20, // Time horizon generally in years
"N": 240, // Number of time steps for simulation
"x0": 500.0, // Initial biomass
"r_growth": 5.0, // Growth rate
"K": 5000.0, // Carrying capacity
"dissipation_rate": 0.05,// Memory effect parameter (applies to Volterra model only)
"interest_rate": 0.05, // Economic discount rate
"unit_cost": 2.0, // Cost per unit effort
"unit_price": 10.0, // Price per unit biomass
"E": 1.0, // Maximum harvesting effort
"model_type": "volterra" // Model type: "volterra" or "differential"
}Run the model:
python main.pyThe program will:
- Load parameters from
params.json - Optimize the harvesting strategy depending of the model type (Volterra or Differential)
- Generate visualizations and save them as png images in the
outputdirectory - Save results to CSV and Excel files in the
outputdirectory
These graphs are generated in the same figure:
- Biomass trajectory
- Control effort
- Extracted biomass
- Instantaneous profit
- Cumulative profit
All output files are prefixed by a unique GUID:
biomass_optimization_results_GUID.png: Combined visualization of all resultsbiomass_optimization_timeseries_GUID.csv: Time series datadetailed_results_GUID.xlsx: Detailed results with multiple sheets including:- Detailed_Results: Time series of all variables
- Parameters: Model configuration
Maximize the discounted profit:
- 0 ≤ u(t) ≤ E (Harvesting effort bounds)
- x(t) ≥ 0 (Non-negative biomass)
modele_dissipation_ressources/
├── main.py # Main application file with BiomassModel class
├── params.json # Configuration parameters
├── README.md # Project documentation
├── requirements.txt # Python dependencies
└── output/ # Generated output directory
├── biomass_optimization_results_GUID.png # Visualization plots
├── biomass_optimization_timeseries_GUID.csv # Time series data
└── detailed_results_GUID.xlsx # Detailed analysis results
-
main.py: Contains the coreBiomassModelclass implementing:- Biomass dynamics simulation (Volterra/Differential)
- Optimization algorithms
- Visualization methods
- Results generation
-
params.json: Configuration file containing:- Model parameters
- Simulation settings
- Economic parameters
-
output/: Directory containing generated results:- PNG files for visualizations
- CSV files for time series data
- Excel files with detailed analysis
This project is open source and available under the MIT License.
Contributions are welcome! Please feel free to submit a Pull Request.



