25 Jun 2023
Fuel Dispatching - Finding the best time to schedule mining haul trucks to fuel "Know how to solve every problem that has been solved." - R. Feynman (1988)
Programming Language: Python
[Link App]
Content 1. Problem statement 2. Literature Review 2.1. Machine learning predicting fuel consumption review 2.2. Fuel dispatching review 3. Methodology 3.1. Data Collection 3.2. Machine Learning 3.3. Optimization 4. Results 4.1. Machine Learning 4.2. Optimization 5. Future work 6. Code source
1. Problem statement Mining Engineers, and this is my kindly opinion, have learned about solving the Ultimate Pit Limit Problems by easy examples, i.e., Lerchs-Grossman 2D Algorithm. However, that is not what we see when running an open-pit mining operation. Software programs have solved most of the current problems, including this, and some mining engineers become users rather than doers. That being said, I decided to code the solution to the ultimate pit limit problem by applying the Pseudoflow algorithm (Hochbaum, 2008 [^1^]).
Given a 3D block model, how do we find the economic envelope/volume that contains the maximum value and fits within our operational constraints? i.e., maximum slope angles?
2. Literature Review 2.1. Machine learning predicting fuel consumption review Author: Dindarloo and S. (2015) Algorithm: ANN Features: Payload, Cycle status Metric: MAPE Perf.: 10% Author: Dindarloo and S. (2016) Algorithm: PLSR Features: Cycle status Metric: MAPE Perf.: 6% Author: Wang et al. (2021) Algorithm: XGBoost Features: Distance, Time, Uphill distance Metric: MAPE Perf.: 8.8% Author: Soofastaei (2022) Algorithm: ANN Features: Payload, Resistance, Speed Metric: R^2 Perf.: 90% 2.2. Fuel dispatching review Approach: Caceres and Well (2017) Features: Automated fuel dispatching Better filling volumes Lower queues and person-hours Lacking: Approach: Modular Mining Systems (2019) Features: Set minimum fuel level Assign manually Lacking: Trial and error approaches Needs customization No benefits and consequences Approach: Leonida (2022) Features: Maximizes fuel utilization Minimizes trips to fuel locations Lacking: Math formulation Multi-objective function No proven results 3. Methodology 3.1. Data Collection Data Retrieved from FMS MF is the match factor 3.2. Machine Learning Features & Labels: Feature: EFH (m), truck model, payload (tons) Label: Fuel consumed (L) Machine learning algorithms: 6 supervised ML algorithms Tuning: Grid search, cross-validation Selection: Accuracy (R-squared), simplicity (tuning time) Coding Environment: Python, Scikit-learn, Tensorflow 3.3. Optimization Optimization model: Binary integer programming model Objective Functions: Maximize match factor Decision variables: If truck h is sent to fuel at time t Constraints: <20% fuel ratio trucks refueled Trucks avoid simultaneous refueling Trucks fueling only once 15-minute refueling window 0% minimum fuel level ensured Coding Environment: Python & Gurobi 4. Results 4.1. Machine Learning | Algorithm | R^2 (Test) | Training Time | Tuning Time | | — | — | — | — | | Multi-Linear Regression (Base Model) | 75% | 126ms | 0s | | Support Vector Regression (SVR) | 75% | 31ms | 5m 21s | | Decision Tree Regression | 55% | 107ms | 5m 25s | | Gradient Boosting Regression | 66% | 139ms | 3m 29s | | Random Forest Regression | 64% | 109ms | 1m 07s | | Artificial Neural Network | 90% | 65ms | 21hr 17min |
4.2. Optimization First Formulation (Fuel time window): (1) Infeasible model, (2) impractical to adjust truck-shovel allocations. Adjustment First Formulation: (1) Penalty for overlapping fueling, (2) non-linearity issue, and (3) variables and constraints = more time Second Formulation (No fuel time window): (1) Feasible (+optimal) model, (2) Match factor improvement (avg.): 1 point, and (3) arrival difference (avg.): 10-minute difference 5. Future work Investigating the impact of different variables; Extending the sample size; Implementation; Mobile stations in the optimization model; Model a complete shift with the truck-shovel allocation engine. 6. Code Source
Tags: Python Machine Learning Optimization Mining